2006-12-12 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob3cf2f683997e05db8367d1a6cc8a21f9a7ada4e3
1 2006-12-12  James Livingston  <doclivingston@gmail.com>
3         * plugins/audioscrobbler/Makefile.am:
4         * metadata/sj-error.c: (sj_error_quark):
5         * metadata/sj-error.h:
6         * metadata/sj-metadata-musicbrainz.c:
7         (sj_metadata_musicbrainz_instance_init),
8         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
9         (get_rdf), (lookup_cd):
10         * metadata/sj-metadata-musicbrainz.h:
11         * metadata/sj-metadata.c: (sj_metadata_get_type):
12         * metadata/sj-metadata.h:
13         * metadata/sj-structures.c:
14         * metadata/sj-structures.h: get bug fixes from S-J and hopefully fix
15         #382954.
17 2006-12-12  James Livingston  <doclivingston@gmail.com>
19         * sources/rb-ipod-source.c: (rb_ipod_load_songs): hopefully fix
20         some corrupt-ipod-db issues. from #358855
22 2006-12-12  James Livingston  <doclivingston@gmail.com>
24         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal): don't
25         try to re-sort the model if it's NULL. Fixes #367646
27 2006-12-12  James Livingston  <doclivingston@gmail.com>
29         * data/rhythmbox.schemas:
30         * lib/rb-util.c: (_threads_enter), (_threads_leave),
31         (rb_threads_init):
32         * plugins/magnatune/magnatune-prefs.glade:
33         * plugins/magnatune/magnatune-purchase.glade:
34         * plugins/magnatune/magnatune/MagnatuneSource.py:
35         * plugins/magnatune/magnatune/__init__.py: add code to use
36         Gnome-Keyring to store the user's credit card details, but force it to
37         be disabled (due to bugs). From #377354
39 2006-12-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
41         * rhythmdb/rhythmdb-query-model.c:
42         (rhythmdb_query_model_remove_from_main_list):
43         Re-find the sequence node pointer after emitting the row-deleted
44         signal, as signal handlers may cause it to change.  Fixes #370443.
46 2006-12-11  James Livingston  <doclivingston@gmail.com>
48         * sources/rb-daap-source.c: (connection_auth_cb): fix a code path
49         trying to free an unset pointer. Fixes #384208
51 2006-12-11  James Livingston  <doclivingston@gmail.com>
53         * sources/rb-library-source.c: (build_filename): deal with URIs that
54         don't have a period in them. Fixes #384016
56 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
58         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
59         Use G_GINT64_FORMAT instead of %lld.
61 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
63         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
64         (rb_encoder_gst_encode):
65         When copying rather than transcoding, do position queries in byte
66         format rather than time.
68         * sources/rb-ipod-source.c: (impl_receive_drag):
69         * sources/rb-library-source.c: (impl_receive_drag):
70         Handle application/x-rhythmbox-entry drops.  Fixes drag and drop from
71         daap shares to library.
73 2006-12-10  James Livingston  <doclivingston@gmail.com>
75         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post): add
76         posts that are missing their date tag.
78 2006-12-09  James Livingston  <doclivingston@gmail.com>
80         * shell/rb-statusbar.c: (rb_statusbar_init): revert the patch from bug
81         #368757
83 2006-12-09  James Livingston  <doclivingston@gmail.com>
85         * configure.ac:
86         * data/rhythmbox.schemas:
87         * plugins/Makefile.am:
88         * plugins/magnatune/magnatune-prefs.glade:
89         * plugins/magnatune/magnatune-purchase.glade:
90         * plugins/magnatune/magnatune/MagnatuneSource.py:
91         * plugins/magnatune/magnatune/__init__.py: revert some stuff I
92         accidently comitted.
94 2006-12-09  James Livingston  <doclivingston@gmail.com>
96         * rhythmdb/rhythmdb-property-model.c:
97         (rhythmdb_property_model_finalize): fix a memory leak.
99 2006-12-09  James Livingston  <doclivingston@gmail.com>
101         * sources/rb-ipod-source.c: (rb_ipod_source_set_ipod_name): don't
102         crash if the iPod's name set to is NULL #358855
104 2006-12-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
106         * widgets/rb-property-view.c: (rb_property_view_class_init),
107         (rb_property_view_dispose), (rb_property_view_finalize):
108         Disconnect signal handlers in dispose, not finalize.  Fixes #374892.
110 2006-12-04  James Livingston  <doclivingston@gmail.com>
112         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
114         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_preprocess):
115         * widgets/rb-query-creator-properties.c:
116         (yearCriteriaSetWidgetData), (yearCriteriaGetWidgetData): stop some
117         critical warnings emitted if a YEAR=0 query was done. Fixes #381839
119 2006-12-03  James Livingston  <doclivingston@gmail.com>
121         * lib/rb-file-helpers.c: (_rb_uri_recurse_data_free),
122         (rb_uri_handle_recursively_cb), (rb_uri_handle_recursively),
123         (_recurse_async_idle_cb), (_recurse_async_data_free),
124         (_recurse_async_cb), (_recurse_async_func),
125         (rb_uri_handle_recursively_async):
126         * lib/rb-file-helpers.h:
127         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
128         (rb_plugins_engine_load_dir):
129         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
130         (rhythmdb_stop_monitoring), (monitor_entry_file),
131         (monitor_subdirectory), (monitor_library_directory),
132         (_monitor_entry_thread), (rhythmdb_start_monitoring),
133         (rhythmdb_monitor_uri_path):
134         * rhythmdb/rhythmdb.c:
135         * sources/rb-static-playlist-source.c:
136         (rb_static_playlist_source_add_location_cb),
137         (rb_static_playlist_source_add_location): add a utility function for
138         doing directory recusion asynchronously, and use it everywhere instead
139         of the old one. Removes one of our biggest do-IO-synchronously issues.
140         From #325215
142 2006-12-03  James Livingston  <doclivingston@gmail.com>
144         * plugins/audioscrobbler/Makefile.am:
145         * plugins/audioscrobbler/audioscrobbler-ui.xml:
146         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
147         (impl_activate), (impl_deactivate):
148         * plugins/audioscrobbler/rb-lastfm-source.c:
149         (rb_lastfm_source_class_init), (rb_lastfm_source_constructor),
150         (impl_activate), (impl_show_popup), (show_entry_popup): add a context
151         menu to the last.fm source, and allow deletion of stations.
153 2006-12-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
155         * plugins/rb-plugin-manager.c: (plugin_manager_populate_lists):
156         gtk_tree_view_get_model doesn't ref the model, so don't unref it
157         when we're done with it.
159 2006-12-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
161         * rhythmdb/rhythmdb.c:
162         (rhythmdb_execute_load), (rhythmdb_add_uri_with_type):
163         Handle rb_uri_resolve_symlink returning NULL, as it does when it
164         encounters a symlink loop.  Create import errors for such URIs.
165         Fixes #380826.
167 2006-11-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
169         patch started by:  James Livingston  <doclivingston@gmail.com>
171         * podcast/rb-podcast-manager.c: (*)
172         * podcast/rb-podcast-manager.h:
173         * sources/rb-podcast-source.c: (rb_podcast_source_set_property),
174         (rb_podcast_source_cmd_cancel_download),
175         (rb_podcast_source_load_finish_cb),
176         (rb_podcast_source_feed_updates_available_cb),
177         (rb_podcast_source_shutdown), (rb_podcast_source_cmd_new_podcast):
178         Remove mutexes and async queues from the podcast manager; just do
179         everything on the main thread and use idle handlers to marshal things
180         across to it.  Should fix crashes on FreeBSD, various other weird
181         stuff, and bug 337332.
183 2006-11-29  James Livingston  <doclivingston@gmail.com>
185         patch from: Glynn Foster <glynn.foster@sun.com>
187         * metadata/sj-metadata-musicbrainz.c:
188         (sj_metadata_musicbrainz_instance_init): fix a typo in the proxy
189         settings.
191 2006-11-29  James Livingston  <doclivingston@gmail.com>
193         patch by: Thomas Thurman  <thomas@thurman.org.uk>
195         * data/glade/song-info-multiple.glade:
196         * data/glade/song-info.glade:
197         * data/glade/station-properties.glade: Make the return key close these
198         dialogs. Fixes #379148
200 2006-11-29  James Livingston  <doclivingston@gmail.com>
202         patch by: Ingo Planz  <planz@mi-fu-berlin.de>
204         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Make the
205         podcast plugin set unknown dates to the current time, not the start of
206         the epoch. Fixes #367572.
208 2006-11-29  James Livingston  <doclivingston@gmail.com>
210         * lib/rb-tree-dnd.c: (rb_tree_drag_source_row_draggable),
211         (rb_tree_drag_source_drag_data_delete),
212         (rb_tree_drag_source_drag_data_get),
213         (rb_tree_drag_dest_drag_data_received),
214         (rb_tree_drag_dest_row_drop_possible),
215         (rb_tree_drag_dest_row_drop_position), (rb_tree_dnd_drag_drop_cb):
216         * lib/rb-tree-dnd.h:
217         * rhythmdb/rhythmdb-property-model.c:
218         (rhythmdb_property_model_drag_source_init):
219         * rhythmdb/rhythmdb-query-model.c:
220         (rhythmdb_query_model_drag_source_init),
221         (rhythmdb_query_model_drag_dest_init):
222         * sources/rb-sourcelist-model.c:
223         (rb_sourcelist_model_drag_dest_init),
224         (rb_sourcelist_model_drag_source_init): don't use the same method
225         names as the GtkTreeDnd ones, since it break bindings to other
226         languages.
228         * shell/rb-shell.c: (_scan_idle), (rb_shell_constructor): run the
229         removable media scan in an idle callback.
231 2006-11-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
233         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct):
234         Use the right variable name when setting the "profile" property on the
235         sink.  Fixes #379532 and closes #379314 again.
237 2006-11-27  James Livingston  <doclivingston@gmail.com>
239         patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
241         * plugins/magnatune/magnatune/MagnatuneSource.py: fix a race condition
242         in the Magnatune plugin, from #373684.
244 2006-11-26  James Livingston  <doclivingston@gmail.com>
246         patch from Alex Jones  <alex@weej.com>
248         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct): set
249         the "profile" on the audio sink, if it's present. Fixes #379314.
251 2006-11-23  James Livingston  <doclivingston@gmail.com>
253         * bindings/python/rhythmdb.defs:
254         * bindings/python/rhythmdb.override: fix some binding stuff.
256 2006-11-23  James Livingston  <doclivingston@gmail.com>
258         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
260         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
261         details from debug output. Fixes #378355.
263 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
265         * shell/rb-shell-player.c: (rb_shell_player_play):
266         Don't crash if current_playing_source is NULL.  Fixes #378195.
267         
268         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
269         rb_shell_player_play isn't very useful, use _playpause if not
270         already playing instead.
272 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
274         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
275         (rhythmdb_property_model_drag_data_get):
276         * rhythmdb/rhythmdb-query-model.c:
277         (rhythmdb_query_model_drag_data_get),
278         (rhythmdb_query_model_drag_data_received):
279         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
280         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
281         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
282         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
283         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
284         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
285         (rhythmdb_tree_entry_count_by_type):
286         * rhythmdb/rhythmdb.c:
287         * rhythmdb/rhythmdb.h:
288         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
289         (rb_daap_share_set_property), (rb_daap_share_get_property),
290         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
291         (send_mapped_file), (databases_cb), (db_entry_added_cb),
292         (db_entry_deleted_cb), (rb_daap_share_server_start),
293         (rb_daap_share_server_stop):
294         * daapsharing/rb-daap-share.h:
295         * daapsharing/rb-daap-sharing.c: (create_share):
296         Move id-to-entry map from daap share into rhythmdb.
298         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
299         (rb_playlist_manager_new_playlist_from_selection_data):
300         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
301         * sources/rb-browser-source.c: (rb_browser_source_constructor):
302         * sources/rb-sourcelist-model.c:
303         (rb_sourcelist_model_drag_data_received),
304         (rb_sourcelist_model_row_drop_position),
305         (rb_sourcelist_model_get_drag_target),
306         (rb_sourcelist_model_drag_data_get):
307         * sources/rb-static-playlist-source.c: (impl_receive_drag),
308         (rb_static_playlist_source_add_id_list),
309         (rb_static_playlist_source_add_uri_list):
310         * widgets/rb-entry-view.c:
311         * widgets/rb-property-view.c:
312         Add a new drag-and-drop type: application/x-rhythmbox-entry
313         containing a list of entry IDs, and use it for DnD within the
314         application.  Avoids having to pick a URI to use for an entry, so we
315         can make DnD of podcast entries (and anything else where playback URI
316         is not the same as the entry location) work as expected.
317         Fixes #343537.
319 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
321         * shell/rb-shell.c: (rb_shell_present):
322         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
324 2006-11-20  James Livingston  <doclivingston@gmail.com>
326         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
327         find the responsible source. Fixes #377029
329 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
331         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
332         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
333         * lib/rb-file-helpers.h:
334         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
335         Implement rb_uri_get_short_path_name to replace
336         gnome_vfs_uri_extract_short_path name with something that doesn't
337         reject unknown URI schemes such as daap://.  Fixes #361077.
339         * tests/Makefile.am:
340         * tests/test-file-helpers.c: (test_get_short_path_name),
341         (START_TEST), (rb_file_helpers_suite), (main):
342         Add tests for the above.
344 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
346         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
347         (bacon_volume_button_new), (bacon_volume_button_style_set),
348         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
349         (bacon_volume_scale_value_changed),
350         (bacon_volume_button_load_icons):
351         * widgets/bacon-volume.h:
352         Update bacon-volume from libbacon CVS again.
354 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
356         * widgets/bacon-volume.c: (bacon_volume_load_icons):
357         Fall back to old icon names if the icon naming spec compliant
358         names don't work.  From #369491.
360 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
362         * plugins/audiocd/Makefile.am:
363         Stop automake complaining about duplicate definitions.
365 2006-11-17  James Livingston  <doclivingston@gmail.com>
367         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
368         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
369         when disposing of the source. Fixes #376155
371         * plugins/daap/Makefile.am: fix some distcheck brokenness.
373 2006-11-17  James Livingston  <doclivingston@gmail.com>
375         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
377 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
379         * shell/rb-playlist-manager.c: (*):
380         General cleanup, add appropriate object references and implement
381         dispose method.  Should fix #357099.
383 2006-11-15  James Livingston  <doclivingston@gmail.com>
385         patch by: William Lachance  <wrlach@gmail.com>
387         * rhythmdb/rhythmdb-query-model.c:
388         (rhythmdb_query_model_album_sort_func): improve sorting when some
389         tracks are missing track/disc number info. Fixes #371322
391 2006-11-14  James Livingston  <doclivingston@gmail.com>
393         patch by: Alex Lancaster
395         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
396         episode dates which are missing the seconds. Fixes #373845
398 2006-11-13  James Livingston  <doclivingston@gmail.com>
400         * bindings/python/rhythmdb.override: bidn a few other pieces of
401         rhythmdb.
403 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
405         * shell/rb-statusbar.c: (rb_statusbar_class_init),
406         (rb_statusbar_dispose), (rb_statusbar_finalize),
407         (rb_statusbar_set_property):
408         Remove idle handler in dispose, rather than finalize.
409         Keep references on all referenced objects (duh?).
410         Fixes #374443.
412 2006-11-12  James Livingston  <doclivingston@gmail.com>
414         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
416         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
417         the status bar smaller, so it isn't too big. Fixes #368757.
419 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
421         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
422         (mdns_service_removed):
423         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
424         disappear.
426 2006-11-12  James Livingston  <doclivingston@gmail.com>
428         * plugins/audioscrobbler/rb-lastfm-source.c:
429         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
430         more supported last.fm radio things. From #373622
432 2006-11-12  James Livingston  <doclivingston@gmail.com>
434         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
435         through the earlier checks. Fixes #373605
437 2006-11-12  James Livingston  <doclivingston@gmail.com>
439         * sources/rb-library-source.c:
440         (rb_library_source_add_child_source): sort the child-library sources
441         the same as the library by default.
443 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
445         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
446         Don't try to report the size if we didn't get one.
447         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
448         work), from #350276.
450 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
452         * daapsharing/rb-daap-sharing.c:
453         (rb_daap_sharing_default_share_name), (create_share),
454         (share_name_changed_cb):
455         * daapsharing/rb-daap-sharing.h:
456         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
457         (make_config_widget), (impl_create_configure_dialog):
458         Update DAAP preferences widget when displaying it, and
459         populate the share name entry with the default if there's nothing
460         there already.  Fixes #340279.
462 2006-11-11  James Livingston  <doclivingston@gmail.com>
464         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
466         * plugins/magnatune/magnatune/MagnatuneSource.py:
467         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
468         Magnatune stuff. From #345783
470 2006-11-10  James Livingston  <doclivingston@gmail.com>
472         * plugins/generic-player/rb-nokia770-source.c:
473         (hal_udi_is_nokia770):
474         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
475         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
476         context if it wasn't inited. Fixes #372824
478 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
480         * plugins/daap/rb-daap-plugin.h:
481         Add the file I missed last time.
483 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
485         * CVS-SURGERY:
486         * backends/gstreamer/Makefile.am:
487         * backends/gstreamer/rb-player-gst.c:
488         * configure.ac:
489         * daapsharing/Makefile.am:
490         * daapsharing/rb-daap-connection.c:
491         (rb_daap_connection_disconnect):
492         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
493         (rb_daap_src_open):
494         * daapsharing/rb-daap-src.h:
495         * data/glade/Makefile.am:
496         * data/rhythmbox.schemas:
497         * data/ui/Makefile.am:
498         * plugins/Makefile.am:
499         * plugins/daap/.cvsignore:
500         * plugins/daap/Makefile.am:
501         * plugins/daap/daap.rb-plugin.desktop.in:
502         * plugins/daap/rb-daap-plugin.c:
503         * shell/Makefile.am:
504         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
505         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
506         * sources/Makefile.am:
507         * sources/rb-daap-source.c: (rb_daap_source_class_init),
508         (rb_daap_source_new), (connection_auth_cb),
509         (connection_connecting_cb), (connection_disconnected_cb),
510         (release_connection), (rb_daap_source_disconnect),
511         (rb_daap_source_show_popup):
512         * sources/rb-daap-source.h:
513         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
514         Fixes #336150.
516 2006-11-09  James Livingston  <doclivingston@gmail.com>
518         * rhythmdb/rhythmdb.c: take the ref before calling the delete
519         implementation, not after. From #372851.
521 2006-11-09  James Livingston  <doclivingston@gmail.com>
523         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
525         * plugins/Makefile.am:
526         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
527         fixes #371178.
529 2006-11-09  James Livingston  <doclivingston@gmail.com>
531         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
532         g_signal_connect_object not g_signal_object, which stops it beign
533         called after the plugin is disposed.
535 2006-11-09  James Livingston  <doclivingston@gmail.com>
537         * plugins/audioscrobbler/rb-audioscrobbler.c:
538         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
539         after we're finalised. Should fix #370513
541 2006-11-08  James Livingston  <doclivingston@gmail.com>
543         patch by: Jerry Tan  <jerry.tan@sun.com>
545         * data/glade/song-info.glade: set more a11y properties on the
546         label-for/labelled-by info. Fixes #368179.
548 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
550         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
551         (rb_entry_view_dispose), (rb_entry_view_finalize):
552         Unref objects and remove idle handlers in dispose rather than
553         finalize.  Should fix #364783.
555 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
557         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
558         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
559         xmlCreateMemoryParserCtxt returning NULL that was previously checking
560         the wrong variable.  Really fixes #336842.
562 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
564         * plugins/iradio/Makefile.am:
565         Actually install the UI file.
567 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
569         * plugins/generic-player/rb-generic-player-source.c:
570         (rb_generic_player_source_constructor),
571         (rb_generic_player_source_dispose),
572         (rb_generic_player_source_load_playlists):
573         Don't crash if the source is destroyed before it gets a chance
574         to load playlists.
576 2006-11-06  James Livingston  <doclivingston@gmail.com>
578         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
579         * rhythmdb/rhythmdb.c: some leak fixes
581 2006-11-06  James Livingston  <doclivingston@gmail.com>
583         * bindings/python/rb.override: change the right function in the last
584         commit.
586 2006-11-06  James Livingston  <doclivingston@gmail.com>
588         * bindings/python/rb.override: unwrap the python string instead of
589         wrapping it. Oops.
591 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
593         * tests/test-utils.c: (test_rhythmdb_setup):
594         Fix build break, #371106.
596 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
598         * tests/Makefile.am:
599         * tests/test-rhythmdb-property-model.c: (_get_property_count),
600         (START_TEST), (rhythmdb_property_model_suite), (main):
601         * tests/test-rhythmdb-query-model.c: (START_TEST),
602         (rhythmdb_query_model_suite), (main):
603         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
604         * tests/test-utils.c: (start_test_case), (end_step),
605         (end_test_case), (mark_signal), (set_waiting_signal),
606         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
607         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
608         * tests/test-utils.h:
609         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
611 2006-11-04  James Livingston  <doclivingston@gmail.com>
613         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
614         we were passed a absolute path, e.g. from the plugin file find
615         function.
617 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
619         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
621         * remote/dbus/rb-client.c: (main):
622         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
623         * shell/rb-shell.h:
624         * shell/rb-shell.xml:
625         Add dbus method to request a notification for the playing song, and
626         an argument to rhythmbox-client to use it.  Fixes #359593.
628 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
630         * remote/dbus/rb-print-playing.py:
631         Revert changes I accidentally committed a while ago.
633 2006-11-03  James Livingston  <doclivingston@gmail.com>
635         * data/glade/song-info.glade: make more labels selectable, from #368641
637 2006-11-03  James Livingston  <doclivingston@gmail.com>
639         * shell/rb-shell-clipboard.c: (get_focussed_widget),
640         (rb_shell_clipboard_cmd_select_all),
641         (rb_shell_clipboard_cmd_select_none): make Select All select text in
642         the focussed widget if it's a text entry. Fixes #364590
644 2006-11-03  James Livingston  <doclivingston@gmail.com>
646         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
647         (bacon_volume_button_init), (bacon_volume_button_dispose),
648         (bacon_volume_button_new), (bacon_volume_button_realize),
649         (bacon_volume_button_press), (bacon_volume_key_release),
650         (bacon_volume_release_grab), (cb_dock_key_release),
651         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
652         (bacon_volume_theme_changed), (bacon_volume_load_icons):
653         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
654         Fixes #369491
656 2006-10-31  James Livingston  <doclivingston@gmail.com>
658         * configure.ac: remove spaces around '=' where they shouldn't be,
659         fixes building when you have libgpod 0.3.x
661 2006-10-31  James Livingston  <doclivingston@gmail.com>
663         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
665         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
666         period is 0. Fixes #351425
668 2006-10-31  James Livingston  <doclivingston@gmail.com>
670         patch by: Luca Ferretti  <elle.uca@libero.it>
672         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
673         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
674         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
675         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
676         * plugins/ipod/ipod.rb-plugin.desktop.in:
677         * plugins/iradio/iradio.rb-plugin.desktop.in:
678         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
679         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
680         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
681         of the plugins. Fixes #365326
683 2006-10-31  James Livingston  <doclivingston@gmail.com>
685         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
687 2006-10-31  James Livingston  <doclivingston@gmail.com>
689         * data/glade/song-info.glade: set the mnemonic target for the labels
690         in the details tab. Fixes #368179.
692 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
694         * configure.ac:
695         When complaining about GStreamer being too old, use the right variable
696         name for the version we want.
698 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
700         * shell/rb-shell.h:
701         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
702         * shell/rb-tray-icon.h:
703         * bindings/python/rb.defs:
704         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
705         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
706         * sources/rb-playlist-source-recorder.c: (burn_cd):
707         * sources/rb-podcast-source.c:
708         (rb_podcast_source_start_download_cb),
709         (rb_podcast_source_finish_download_cb),
710         (rb_podcast_source_feed_updates_avaliable_cb):
711         Change the various notification functions to take a parameter
712         specifying whether the notification was explicitly requested by the
713         user.  Add a function to display a notification for an entry,
714         including streaming song metadata.
716         * shell/rb-shell-player.c: (rb_shell_player_stop):
717         Emit playing-song-changed and playing-uri-changed when stopping
718         playback.
720         * sources/Makefile.am:
721         * sources/rb-streaming-source.c:
722         * sources/rb-streaming-source.h:
723         Add a base class for streaming sources, handling streaming song
724         metadata and buffering messages, emitting notifications on song
725         changes, and updating play count statistics when playback stops.
727         * plugins/audioscrobbler/Makefile.am:
728         * plugins/audioscrobbler/rb-lastfm-source.c:
729         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
730         (rb_lastfm_source_constructor), (impl_get_status),
731         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
732         (rb_lastfm_source_title_from_uri),
733         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
734         (rb_lastfm_song_changed_cb), (impl_activate):
735         * plugins/audioscrobbler/rb-lastfm-source.h:
736         * plugins/iradio/Makefile.am:
737         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
738         (rb_iradio_source_constructor), (impl_get_status),
739         (info_available_cb), (playing_source_changed_cb):
740         * sources/rb-iradio-source.h:
741         Use the new streaming source base class for iradio and last.fm
742         sources.  Fixes #364094.
744 2006-10-30  James Livingston  <doclivingston@gmail.com>
746         * podcast/rb-podcast-manager.c:
747         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
748         any downloads from it before deleting the post entry. Fixes #366567.
750 2006-10-30  James Livingston  <doclivingston@gmail.com>
752         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
753         move-to-trash, since there have been reports of people accidently
754         deleting tracks and it probably isn't a common enough operation to be
755         worth a shortcut.
757 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
759         * backends/gstreamer/rb-player-gst.c:
760         * configure.ac:
761         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
762         Fix GStreamer 0.8 build (and some typos in configure.ac).
764 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
766         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
768         * sources/rb-source.c: (rb_source_class_init),
769         (rb_source_set_property), (rb_source_get_property):
770         Add a property to RBSource for plugin-created sources to have a
771         pointer to the RBPlugin object that created them.
773         * plugins/audiocd/Makefile.am:
774         * plugins/audiocd/multiple-album.glade:
775         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
776         * sources/Makefile.am:
777         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
778         * sources/rb-audiocd-source.h:
779         If musicbrainz returns multiple albums, present the user with a
780         choice between them.  Fixes #333215.
782         * configure.ac:
783         * plugins/Makefile.am:
784         Remove unused old audio CD stuff, only build audiocd plugin if we have
785         libnautilus-burn.  Fixes #367440.
787 2006-10-30  James Livingston  <doclivingston@gmail.com>
789         patch by: Brian McKenna  <puffnfresh@gmail.com>
791         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
792         handle blocks. Fixes #366696.
794 2006-10-30  James Livingston  <doclivingston@gmail.com>
796         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
798 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
800         * shell/rb-shell-player.c: (rb_shell_player_class_init),
801         (rb_shell_player_sync_with_source),
802         (rb_shell_player_get_playing_time_string), (tick_cb):
803         * widgets/rb-header.c: (rb_header_sync_time),
804         (slider_moved_callback), (rb_header_update_elapsed),
805         (rb_header_elapsed_changed_cb):
806         Revert dbus interface breakage introduced in the fix for #365908.
808 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
810         patch by: Luca Ferretti  <elle.uca@libero.it>
812         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
813         Remove the access keys from the podcast-specific column headers.
814         Fixes #360640 again.
816 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
818         patch by: James Livingston <doclivingston@gmail.com>
820         * sources/rb-browser-source.c: (rb_browser_source_constructor):
821         Only register the search actions once.  From #346801.
823 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
825         * shell/rb-shell-player.c: (rb_shell_player_error):
826         When handling an error, try playing the next stream URL if we have
827         one, rather than stopping playback.  From #358140.
829 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
831         * shell/rb-shell.c: (handle_playlist_entry_cb):
832         Don't crash if we can't guess a source for a URI in the playlist.
833         Fixes #366261.
835 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * shell/rb-shell-player.c: (rb_shell_player_class_init),
838         (rb_shell_player_sync_with_source),
839         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
840         (tick_cb):
841         * widgets/rb-header.c: (rb_header_sync_time),
842         (rb_header_elapsed_changed_cb):
843         Treat elapsed time as signed, since rb_player_get_time returns a
844         signed value.  When actually using the value, mostly treat negative
845         values as 0.  Fixes #365908.
847 2006-10-27  James Livingston  <doclivingston@gmail.com>
849         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
851         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
852         returning 0 for the year/month/day. Fixes #364837.
854 2006-10-27  James Livingston  <doclivingston@gmail.com>
856         patch by: Luca Ferretti  <elle.uca@libero.it>
858         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
859         access keys from the entry view columns headers - they cause
860         keybindings conflicts, headaches for translators and the HIG says
861         they are bad. Fixes #360640.
863 2006-10-27  James Livingston  <doclivingston@gmail.com>
865         patch by: Luca Ferretti  <elle.uca@libero.it>
867         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
868         access keys from the entry view columns headers - they cause
869         keybindings conflicts, headaches for translators and the HIG says
870         they are bad. Fixes #360640.
872 2006-10-27  James Livingston  <doclivingston@gmail.com>
874         * rhythmdb/rhythmdb-private.h:
875         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
876         issues
878 2006-10-27  James Livingston  <doclivingston@gmail.com>
880         * plugins/artdisplay/Makefile.am:
881         * plugins/audioscrobbler/Makefile.am:
882         * plugins/iradio/Makefile.am: fix make clean
884 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
886         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
887         Fall back to strtod() if g_ascii_strtod() doesn't work.
889         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
890         Write floating point values using g_ascii_dtostr() to avoid
891         problems with locale-specific representations.  From #353205.
893 2006-10-25  James Livingston  <doclivingston@gmail.com>
895         * plugins/artdisplay/Makefile.am:
896         * plugins/audioscrobbler/Makefile.am:
897         * plugins/iradio/Makefile.am: fix "make distcheck"
899 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
901         patch by: Brian Cameron <brian.cameron@sun.com>
903         * plugins/audiocd/Makefile.am:
904         Link audiocd plugin with libnautilus-burn as required to get it to work
905         on Solaris.  Fixes #363288.
907 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
909         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
911         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
912         Clarify that we don't submit actual songs to last.fm, just information
913         on what you're listening to.  Fixes #364014.
915 2006-10-24  Bastien Nocera  <hadess@hadess.net>
917         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
918         (bacon_volume_button_class_init), (bacon_volume_button_new),
919         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
920         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
921         (bacon_volume_scale_value_changed): update from libbacon, to get
922         better accessibility support (Closes: #364637)
924 2006-10-24  James Livingston  <doclivingston@gmail.com>
926         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
928         * configure.ac: fix some typos and leftovers from disabled->enabled
929         changes. Fixes #364217
931 2006-10-23  William Jon McCann  <mccann@jhu.edu>
933         * shell/rb-source-header.c (rb_source_header_init):
934         Don't require source header cells to be homogeneous.
935         Patch from #359188
937 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
939         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
940         Pause the pipeline while buffering.  Fixes #358290.
942 2006-10-23  Bastien Nocera  <hadess@hadess.net>
944         * configure.ac: update required libgpod version to avoid crashes
945         when starting up with an iPod connect (Closes: #352972)
946         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
947         (hal_udi_is_ipod): remove outdated ifdefs
949 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
951         * plugins/Makefile.am:
952         * plugins/power-manager/rb-power-manager-plugin.c:
953         Don't try to build the power-manager plugin with dbus < 0.35.
955 2006-10-22  James Livingston  <doclivingston@gmail.com>
957         patch by: Ed Catmur  <ed@catmur.co.uk>
959         * plugins/artdisplay/Makefile.am:
960         * plugins/artdisplay/artdisplay/__init__.py:
961         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
962         placeholder art when none is available, to avoid having the widget pop
963         in and out of existance.
965 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
967         * plugins/lyrics/lyrics.py:
968         Set the lyrics window transient for the main window so it can
969         actually be seen in party mode.  Fixes #362981.
971 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
973         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
974         * sources/rb-source.c: (rb_source_class_init),
975         (rb_source_can_show_properties), (rb_source_song_properties):
976         * sources/rb-source.h:
977         Only enable the 'properties' item in the 'music' menu if the selected
978         source implements the show_properties method.  Fixes #356485.
980 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
982         * shell/rb-shell-player.c:
983         (rb_shell_player_property_row_activated_cb):
984         Take the entry to play from the play order, rather than grabbing the
985         first entry in the query model.  Fixes #362042.
987 2006-10-16  James Livingston  <doclivingston@gmail.com>
989         * shell/main.c: (main): save custom menu accelerators before exiting.
990         Fixed #362300
992 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
994         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
995         I HATE adding this patch, but I'm sick of hitting Yes once
996         and hour.  Working around brain-dead podcasts.
998 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1000         * plugins/lyrics/lyrics.py:
1001         Disconnect the create-song-info handler when deactivated.
1002         Fixes #361882.
1004 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1006         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
1007         Reset the style when clearing the search text.  Fixes #361295.
1009 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1011         * rhythmdb/rhythmdb-query-model.c:
1012         (rhythmdb_query_model_entry_changed_cb):
1013         Don't emit entry-prop-changed for hidden signals from chained query
1014         models, as the model will also propagate the parent model's
1015         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
1017 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1019         * sources/rb-ipod-source.c: (generate_ipod_filename):
1020         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
1021         * lib/rb-cut-and-paste-code.h:
1022         Move eel_make_valid_utf8 to lib/, make the replacement
1023         character a parameter.
1025         * rhythmdb/rhythmdb.c: (make_access_failed_error),
1026         (rhythmdb_execute_multi_stat_info_cb),
1027         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
1028         When constructing an error message that includes a URI, make sure the
1029         URI is valid utf-8.  Fixes #353588.
1031 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1033         * player/rb-recorder-gst.c: (rb_recorder_construct),
1034         (acb_wave_time):
1035         Add an extra audioconvert element to allow endianness conversion on
1036         big-endian machines, and fix a few endianness issues in the .wav
1037         reading code.  Fixes #355611.
1039 2006-10-09  James Livingston  <doclivingston@gmail.com>
1041         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1043         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
1044         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
1045         Fixes #357553.
1047 2006-10-09  James Livingston  <doclivingston@gmail.com>
1049         patch by: Luca Ferretti  <elle.uca@libero.it>
1051         * data/glade/song-info-multiple.glade:
1052         * data/glade/song-info.glade: Fix a few HIG issues.
1054 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1056         * plugins/audioscrobbler/rb-lastfm-source.c:
1057         (rb_lastfm_source_class_init):
1058         Return TRUE from impl_try_playlist so playback starts in a separate
1059         thread.
1061 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1063         * shell/main.c: (main):
1064         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
1065         UTF-8 GStreamer messages.  Fixes #357973.
1067 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1069         * shell/rb-shell.c: (rb_shell_constructor):
1070         Remove a line that accidentally slipped in from some other universe.
1072 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1074         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
1075         Don't remove sources from the hash table while iterating it on
1076         shutdown.  Fixes #359583.
1078 2006-10-07  James Livingston  <doclivingston@gmail.com>
1080         patch from Alex Lancaster  <alexl@users.sourceforge.net>
1082         * shell/rb-shell.c: change the keybinding for "Plugins" to not
1083         conflict with others. Fixes #355904
1085 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1087         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
1088         (rhythmdb_query_model_chain),
1089         (rhythmdb_query_model_entry_changed_cb),
1090         (rhythmdb_query_model_base_entry_prop_changed),
1091         (rhythmdb_query_model_base_entry_removed):
1092         For chained models, propagate the parent model's entry-prop-changed
1093         signal rather than emitting one from the db entry-changed handler.
1094         This ensures that when the change filters the entry out of the parent
1095         model, property models attached to the child model get the entry
1096         change signal before the post-entry-delete signal, so they can
1097         decrement the refcount for the right property value.  Fixes #359083.
1099 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1101         * plugins/audioscrobbler/Makefile.am:
1102         define NULL
1104 2006-10-07  James Livingston  <doclivingston@gmail.com>
1106         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1107         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
1108         * plugins/audioscrobbler/rb-lastfm-source.c:
1109         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
1110         hypens in URI schemes.
1112 2006-10-06  William Jon McCann  <mccann@jhu.edu>
1114         * plugins/iradio/Makefile.am:
1115         * plugins/audioscrobbler/Makefile.am:
1116         * plugins/cd-recorder/Makefile.am:
1117         Don't clean all plugin_DATA.
1118         Fixes #360210
1120 2006-10-06  James Livingston  <doclivingston@gmail.com>
1122         patch from Matt N  <fisxoj@gmail.com>
1124         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
1125         (rb_player_gst_bus_cb):
1126         * backends/rb-player.c: (rb_player_interface_init),
1127         (_rb_player_emit_tick), (_rb_player_emit_event):
1128         * backends/rb-player.h: let the backend emit named "events", for
1129         things that the core shouldn't know about.
1131         * rhythmdb/rhythmdb.h:
1132         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
1133         support for streams containing album metadata.
1135         * plugins/audioscrobbler/Makefile.am:
1136         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1137         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1138         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
1139         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1140         * plugins/audioscrobbler/rb-lastfm-source.c:
1141         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
1142         of last.fm streams. From #313049.
1144 2006-10-06  James Livingston  <doclivingston@gmail.com>
1146         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
1147         committing. Oops.
1149 2006-10-06  James Livingston  <doclivingston@gmail.com>
1151         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
1153         * configure.ac:
1154         * data/rhythmbox.schemas:
1155         * plugins/Makefile.am:
1156         * plugins/magnatune/Makefile.am:
1157         * plugins/magnatune/magnatune-loading.glade:
1158         * plugins/magnatune/magnatune-prefs.glade:
1159         * plugins/magnatune/magnatune-purchase.glade:
1160         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
1161         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
1162         * plugins/magnatune/magnatune/MagnatuneSource.py:
1163         * plugins/magnatune/magnatune/TrackListHandler.py:
1164         * plugins/magnatune/magnatune/__init__.py:
1165         * plugins/magnatune/magnatune_circle_small.png:
1166         * plugins/magnatune/magnatune_logo_color_small.png:
1167         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
1168         play and download tracks from the MagnaTune online music store. From
1169         #345783.
1171 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1173         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1174         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
1175         (check_auto_proxy_config), (get_proxy_config):
1176         Don't crash when eel_gconf_get_string returns NULL.
1177         Fixes #359974.
1179 2006-10-04  James Livingston  <doclivingston@gmail.com>
1181         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
1183         * plugins/audiocd/Makefile.am: fix the plugin when linking with
1184         --as-needed. Fixes #358730
1186 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1188         patch by:  William Jon McCann  <mccann@jhu.edu>
1190         * sources/rb-iradio-source.c: (playing_source_changed_cb):
1191         Fix some stupidity I introduced that caused crashes on shutdown.
1192         Fixes #359181.
1194 2006-10-02  William Jon McCann  <mccann@jhu.edu>
1196         * plugins/audiocd/Makefile.am:
1197         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
1198         * plugins/iradio/.cvsignore:
1199         * plugins/iradio/Makefile.am:
1200         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
1201         (impl_deactivate):
1202         * plugins/power-manager/.cvsignore:
1203         Install missing iradio ui file.  Don't leak ui filename.
1204         Fix iradio install dir. Fix audiocd install dir.
1205         Remove unused code from audio cd plugin.
1207         Fixes #359170
1209 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1211         * sources/rb-ipod-source.c: (impl_move_to_trash):
1212         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
1213         commented out while fixing bug 355235.  Oops.
1215 2006-10-03  James Livingston  <doclivingston@gmail.com>
1217         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
1218         non-unicode warnings to debug statements, since they can occur with
1219         slightly broken files.
1221         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
1222         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
1223         iradio plugin is disabled and re-enabled.
1225 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1227         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
1228         (rhythmdb_entry_podcast_post_get_type):
1229         * rhythmdb/rhythmdb.h:
1230         * tests/bench-rhythmdb-load.c: (main):
1231         Add definitions for some common extra-metadata fields,
1232         remove iradio entry type definition, add the concept of entry type
1233         categories, define categories for the core entry types.
1234         Categories are used to decide if an entry can be copied to a removable
1235         device, if it should be reported to audioscrobbler, etc.
1237         * shell/Makefile.am:
1238         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1239         (rb_shell_player_constructor), (rb_shell_player_init),
1240         (rb_shell_player_get_property), (open_location_thread),
1241         (rb_shell_player_open_location),
1242         (rb_shell_player_sync_with_source),
1243         (rb_shell_player_set_playing_source_internal), (tick_cb):
1244         * shell/rb-shell.c: (construct_widgets), (construct_sources),
1245         (rb_shell_player_elapsed_changed_cb):
1246         Remove iradio-specific code, use extra metadata fields for streaming
1247         title and artist name.
1249         * data/ui/rhythmbox-ui.xml:
1250         Add a placeholder for 'new ...' menu items.
1252         * Makefile.am:
1253         * sources/Makefile.am:
1254         * configure.ac:
1255         * data/rhythmbox.schemas:
1256         * plugins/Makefile.am:
1257         * plugins/iradio/Makefile.am:
1258         * plugins/iradio/iradio-ui.xml:
1259         * plugins/iradio/iradio.rb-plugin.desktop.in:
1260         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1261         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1262         (rb_iradio_plugin_class_init):
1263         iradio plugin, enabled and hidden by default.
1265         * plugins/audioscrobbler/rb-audioscrobbler.c:
1266         (rb_audioscrobbler_song_changed_cb):
1267         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1268         * sources/rb-daap-source.c: (rb_daap_source_new):
1269         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1270         Define entry type categories, and use them where appropriate.
1272         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1273         (rb_iradio_source_constructor), (rb_iradio_source_new),
1274         (impl_get_status), (impl_want_uri), (buffering_cb),
1275         (check_entry_type), (streaming_title_request_cb),
1276         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1277         (info_available_cb), (playing_entry_changed_cb),
1278         (playing_source_changed_cb):
1279         Move streaming metadata and buffering handling here from
1280         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1281         title or artist changes, and handle request and gather signals for
1282         those.
1284         * widgets/rb-header.c: (rb_header_class_init),
1285         (rb_header_set_property), (rb_header_get_property),
1286         (rb_header_new), (append_and_free), (rb_header_sync):
1287         * widgets/rb-header.h:
1288         Rework to use streaming artist and title extra-metadata.
1289         streaming-artist overrides entry artist, and streaming-title means
1290         entry title is a stream name, displayed in brackets.
1292         * doc/reference/Makefile.am:
1293         * doc/reference/rhythmbox.types:
1294         Remove iradio stuff from gtk-doc build.
1296         Fixed #347097.
1298 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1300         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1302         * bindings/python/rhythmdb.defs:
1303         * lib/rb-marshal.list:
1304         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1305         (rhythmdb_emit_entry_deleted),
1306         (rhythmdb_entry_extra_metadata_accumulator),
1307         (rhythmdb_entry_request_extra_metadata),
1308         (rhythmdb_emit_entry_extra_metadata_notify),
1309         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1310         * rhythmdb/rhythmdb.h:
1311         Add signals for dealing with transient metadata outside the set stored
1312         in RhythmDBEntry:
1313         - entry_extra_metadata_request returns a value for the requested
1314           metadata field
1315         - entry_extra_metadata_notify notifies observers of a change to an
1316           extra metadata field
1317         - entry_extra_metadata_gather returns the values of all extra metadata
1318           fields
1320         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1321         (rb_shell_player_extra_metadata_cb):
1322         Sync the display on extra metadata changes and emit dbus signals when
1323         we can marshal the value.
1325         * shell/rb-shell.c: (rb_shell_get_song_properties):
1326         Implement rb_shell_song_get_properties using
1327         rhythmdb_entry_gather_metadata.
1329         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1330         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1331         * configure.ac:
1332         Add GValue marshaller for python (until bug 351072 is fixed)
1334         From #345592.
1336 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1338         * configure.ac:
1339         * data/rhythmbox.schemas:
1340         * plugins/Makefile.am:
1341         * plugins/power-manager/Makefile.am:
1342         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1343         * plugins/power-manager/rb-power-manager-plugin.c:
1344         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1345         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1346         (playing_changed_cb), (impl_activate), (impl_deactivate):
1347         gnome-power-manager integration: inhibit suspend while playing.
1348         Fixes #344979.
1350 2006-10-02  James Livingston  <doclivingston@gmail.com>
1352         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1353         and Alex Lancaster  <alexl@users.sourceforge.net>
1355         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1356         Fixes #353143, #353146 and #353147.
1358 ============ Version 0.9.6
1360 2006-10-01  James Livingston  <doclivingston@gmail.com>
1362         * configure.ac: bump version to 0.9.6. enable tag-writing and
1363         ipod-writing by default
1365         * NEWS: update NEWS
1367 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1369         patch by:  William Jon McCann  <mccann@jhu.edu>
1371         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1372         Use a local GError in case no error pointer pointer is passed in.
1373         From bug #358396.
1375 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1377         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1378         Don't reference members of freed structures.
1380 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1382         patch by:  William Jon McCann  <mccann@jhu.edu>
1384         * player/rb-recorder-gst.c: (rb_recorder_burn):
1385         Drop GDK lock before entering n-c-b.  Fixes #353894?
1387 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1389         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1390         (impl_activate):
1391         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1393 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1395         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1396         Call lirc_init before lirc_readconfig so we don't crash if the user's
1397         .lircrc file has any mode sections. Fixes #357419.
1399 2006-09-24  James Livingston  <doclivingston@gmail.com>
1401         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1402         if we get called twice, as that can happen. Fixes #357214.
1404 2006-09-24  James Livingston  <doclivingston@gmail.com>
1406         * backends/rb-encoder.h: add "file access" error
1408         * lib/rb-file-helpers.c: (rb_dot_dir):
1409         * podcast/rb-podcast-manager.c:
1410         (rb_podcast_manager_download_file_info_cb): remove directory creation
1411         race condition.
1413         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1414         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1415         directory creation. Fixes #347743
1417 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1419         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1420         Strip trailing whitespace
1422 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1424         * rhythmdb/Makefile.am:
1425         * rhythmdb/rhythmdb-private.h:
1426         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1427         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1428         * rhythmdb/rhythmdb-tree.h:
1429         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1430         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1431         * rhythmdb/rhythmdb.h:
1432         Rather than aborting, show an error and refuse to load the database when
1433         it appears to come from the future.  From bug #350304.
1435 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1437         * bindings/python/rhythmdb.override:
1438         Make entry_foreach usable.
1440 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1442         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1443         Scale the icon so it matches the rest of the sources.
1444         Fixes #351410.
1446 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1448         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1449         (rhythmdb_property_model_set_query_model_internal),
1450         (rhythmdb_property_model_row_inserted_cb),
1451         (rhythmdb_property_model_prop_changed_cb),
1452         (rhythmdb_property_model_entry_removed_cb),
1453         (rhythmdb_property_model_delete),
1454         (rhythmdb_property_model_perform_sync):
1455         Use the hash table to track hidden entries, rather than visible
1456         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1458 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1460         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1461         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1463 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1465         * sources/rb-ipod-source.c: (add_rb_playlist),
1466         (impl_move_to_trash), (impl_delete_thyself):
1467         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1469         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1470         Make sure we don't leave the sourcelist thinking a deleted source is
1471         still playing.  Fixes nothing.
1473 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1475         * shell/rb-shell.c:
1476         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1477         'Music->Import Folder' menu item for better icon theme coverage.
1478         Fixes #354575.
1480 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1482         * rhythmdb/rhythmdb-private.h:
1483         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1484         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1485         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1486         (rhythmdb_load), (rhythmdb_save_async):
1487         Use a limited thread pool for adding URIs to the database.
1488         Fixes #352494.
1490 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1492         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1493         Do something like the previous change, but for gstreamer 0.10
1494         this time.  Oops.  Really fixes #349569.
1496 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1498         * backends/gstreamer/rb-player-gst.c: (error_cb):
1499         Ignore 'internal data flow error' messages if we've already got an
1500         error for the file.  Fixes #349569.
1502 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1504         * shell/rb-shell-clipboard.c:
1505         (rb_shell_clipboard_playlist_deleted_cb):
1506         Rebuild 'add to playlist' menu before removing actions for deleted
1507         playlists, and don't unref the action, as we never had a reference on
1508         it to begin with.  Fixes #354599.
1510 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1512         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1513         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1514         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1516 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1518         * daapsharing/rb-daap-connection.c: (handle_playlists):
1519         Reverse the list of playlists on the DAAP server so it ends up in the
1520         right order.  Fixes #353926.
1522 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1524         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1525         Fully process each code so the LIRC client returns to its normal state
1526         when we're done.  Makes LIRC actually work properly for me.
1528 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1530         patch by: Ed Catmur  <ed@catmur.co.uk>
1532         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1533         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1534         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1536 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1538         patch by: James Livingston <doclivingston@gmail.com>
1540         * configure.ac:
1541         * data/rhythmbox.schemas:
1542         * metadata/Makefile.am:
1543         * plugins/Makefile.am:
1544         * plugins/audiocd/.cvsignore:
1545         * plugins/audiocd/Makefile.am:
1546         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1547         * plugins/audiocd/rb-audiocd-plugin.c:
1548         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1549         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1550         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1551         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1552         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1553         (rb_audiocd_plugin_playing_uri_changed_cb),
1554         (nautilus_burn_drive_get_device),
1555         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1556         (impl_activate), (_delete_cb), (impl_deactivate):
1557         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1558         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1559         * shell/main.c: (main):
1560         * shell/rb-removable-media-manager.c:
1561         (rb_removable_media_manager_finalize),
1562         (rb_removable_media_manager_load_media),
1563         (rb_removable_media_manager_mount_volume),
1564         (rb_removable_media_manager_scan):
1565         * sources/Makefile.am:
1566         * sources/rb-audiocd-source.c:
1567         * sources/rb-audiocd-source.h:
1568         Make auto CD support a plugin.
1570         Fixes #349415.
1572 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1574         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1575         Add a final rhythmdb_commit to make sure all songs from the share show
1576         up in the daap source.  Fixes #353913.
1578 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1580         * sources/rb-sourcelist-model.c:
1581         (rb_sourcelist_model_drag_data_received),
1582         (rb_sourcelist_model_row_drop_possible):
1583         Re-enable dragging of a set of tracks to the source list to create a
1584         new static playlist.  Fixes #353893.
1586 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1588         * widgets/bacon-volume.c: (cb_button_timeout):
1589         Actually drop the GDK lock, rather than returning while holding it.
1590         Fixes #353895.
1592 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1594         * plugins/generic-player/rb-generic-player-source.c:
1595         (rb_generic_player_source_constructor),
1596         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1597         (rb_generic_player_source_load_songs), (load_playlist_file),
1598         (default_load_playlists), (get_hal_context):
1599         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1600         Fixes #353483.
1602 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1604         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1605         Canonicalise URIs received from gnome-vfs file monitor.
1606         Fixes #353447.
1608 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1610         * help/C/rhythmbox.xml: unbreak help build
1611         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1612         Unbuffer the IO channel.  Fixes some weirdness for me.
1614 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1616         * help/C/rhythmbox.xml:
1617         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1618         (impl_activate), (impl_deactivate):
1619         Add 'playpause' LIRC command.
1621 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1623         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1624         (rb_source_finalize):
1625         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1626         when disconnecting generic audio players.
1628 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1630         patch by: Paolo Borelli  <pborelli@katamail.com>
1632         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1633         Fix a small leak.
1635 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1637         * backends/gstreamer/rb-player-gst.c:
1638         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1639         Don't actually disable the seek bar for non-seekable songs,
1640         because we can't reliably tell yet.
1642 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1644         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1645         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1646         (db_entry_deleted_cb), (rb_daap_share_server_start),
1647         (rb_daap_share_server_stop):
1648         * rhythmdb/rhythmdb-private.h:
1649         * rhythmdb/rhythmdb-tree.c: (save_entry):
1650         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1651         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1652         (rhythmdb_entry_get_ulong):
1653         * rhythmdb/rhythmdb.h:
1654         Give db entries a numeric ID property, replacing the daap server's
1655         entry->id map.  From #347665.
1657 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1659         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1660         * widgets/rb-header.c: (rb_header_class_init),
1661         (rb_header_set_property), (rb_header_get_property),
1662         (rb_header_set_playing_entry), (rb_header_sync),
1663         (rb_header_sync_time):
1664         * widgets/rb-header.h:
1665         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1666         insensitive when the player backend tells us we can't seek in the
1667         current song.  From #330410.
1669 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1671         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1672         Don't try to unref previous/next entries if they aren't there.
1673         Fixes #351806.
1675 2006-08-15  James Livingston  <doclivingston@gmail.com>
1677         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1678         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1679         mountpoint into a RBRefString and compare equality of those, rather
1680         than doign lots of strcmp()s.
1682         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1683         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1684         status notification as well as the visibility update in an idle
1685         callback. Makes it take much less time to update after a volume
1686         mount/unmount event.
1688 2006-08-15  James Livingston  <doclivingston@gmail.com>
1690         patch by: Christian Becke  <christianbecke@web.de>
1692         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1693         multiple selections in the Import Folder dialog. Fixes #351414.
1695 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1697         * shell/rb-shell.c: (construct_widgets):
1698         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1699         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1700         (rb_statusbar_get_property), (rb_statusbar_new):
1701         * shell/rb-statusbar.h:
1702         Use the connect-proxy signal from the UI manager, which covers all
1703         action groups, rather than just one.  Fixes #351280.
1705 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1707         * widgets/rb-library-browser.c: (rebuild_child_model):
1708         Fix query model reference counts (bug #349601).
1710 2006-08-15  James Livingston  <doclivingston@gmail.com>
1712         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1713         Error signals be non-recursive. Fixes a highly-unlikely issue that
1714         could have caused #322972.
1716 2006-08-14  James Livingston  <doclivingston@gmail.com>
1718         * sources/rb-auto-playlist-source.c:
1719         (rb_auto_playlist_source_init):
1720         * sources/rb-static-playlist-source.c:
1721         (rb_static_playlist_source_init):
1723 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1725         * sources/rb-browser-source.c:
1726         * sources/rb-import-errors-source.c:
1727         * sources/rb-iradio-source.c:
1728         * sources/rb-library-source.c:
1729         * sources/rb-missing-files-source.c:
1730         * sources/rb-play-queue-source.c:
1731         * sources/rb-playlist-source.c:
1732         * sources/rb-podcast-source.c:
1733         * sources/rb-source.c:
1734         Make entry-type a property on RBSource, rather than on most of its
1735         subclasses.  Fixes #347288.
1737 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1739         * remote/dbus/rb-client.c: (parse_pattern),
1740         (create_rb_shell_proxies), (main):
1741         Actually implement %ag and %aG (genre) for --print-playing-format
1743 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1745         * lib/rb-debug.c: (rb_debug_real):
1746         No point allocating a buffer for the timestamp when we can just put it
1747         on the stack.
1749 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1751         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1752         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1754 2006-08-11  James Livingston  <doclivingston@gmail.com>
1756         * podcast/rb-podcast-manager.c:
1757         (rb_podcast_manager_update_synctime): fix accidental commit in the
1758         last, which caused a warning.
1760 2006-08-11  James Livingston  <doclivingston@gmail.com>
1762         * data/rhythmbox.schemas:
1763         * podcast/rb-podcast-manager.c:
1764         (rb_podcast_manager_update_synctime): change the schema's
1765         update-inteval value from 0 to 1, which causes it to update on
1766         startup, rather than never. Should fixs #343818.
1768 2006-08-11  James Livingston  <doclivingston@gmail.com>
1770         * configure.ac:
1771         * data/Makefile.am:
1772         - data/rhythmbox.desktop.in:
1773         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1774         the @VERSION@ can be substituted in. Fix some issues with newer
1775         bug-buddy versions. Fixes #348853.
1777 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1779         * data/rhythmbox.schemas:
1780         * plugins/Makefile.am:
1781         * plugins/artdisplay/Makefile.am:
1782         * plugins/audioscrobbler/Makefile.am:
1783         * plugins/cd-recorder/Makefile.am:
1784         * plugins/generic-player/Makefile.am:
1785         * plugins/ipod/Makefile.am:
1786         * plugins/lirc/Makefile.am:
1787         * plugins/lyrics/Makefile.am:
1788         * plugins/pythonconsole/Makefile.am:
1789         * plugins/rb-module.c:
1790         * plugins/rb-module.h:
1791         * plugins/rb-plugin-manager.c: (configure_button_cb),
1792         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1793         (plugin_manager_populate_lists), (plugin_manager_set_active),
1794         (plugin_manager_toggle_active),
1795         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1796         (rb_plugin_manager_finalize):
1797         * plugins/rb-plugin-manager.h:
1798         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1799         (rb_plugin_find_file):
1800         * plugins/rb-plugin.h:
1801         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1802         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1803         (rb_plugins_engine_init), (rb_plugin_info_free),
1804         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1805         (rb_plugins_engine_deactivate_plugin),
1806         (rb_plugins_engine_plugin_is_active),
1807         (rb_plugins_engine_plugin_is_visible),
1808         (rb_plugins_engine_plugin_is_configurable),
1809         (rb_plugins_engine_configure_plugin),
1810         (rb_plugins_engine_get_plugin_name),
1811         (rb_plugins_engine_get_plugin_description),
1812         (rb_plugins_engine_get_plugin_authors),
1813         (rb_plugins_engine_get_plugin_website),
1814         (rb_plugins_engine_get_plugin_copyright),
1815         (rb_plugins_engine_get_plugin_icon):
1816         * plugins/rb-plugins-engine.h:
1817         * plugins/rb-python-module.c: (rb_python_module_init_python),
1818         (rb_python_module_load), (rb_python_module_unload),
1819         (rb_python_module_class_init), (rb_python_module_new),
1820         (finalise_collect_cb), (rb_python_shutdown):
1821         * plugins/rb-python-module.h:
1822         * plugins/rb-python-plugin.c: (call_python_method),
1823         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1824         (impl_is_configurable), (rb_python_object_get_type):
1825         * plugins/rb-python-plugin.h:
1826         * plugins/rb/Makefile.am:
1828         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1829         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1830         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1831         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1832         special case loading of dirs.  Install plugins to subdirectors of
1833         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1834         not DATADIR.  Fixes #350352
1836 2006-08-10  James Livingston  <doclivingston@gmail.com>
1838         * daapsharing/rb-daap-connection.c: (connection_connected),
1839         (connection_disconnected), (connection_operation_done):
1840         * daapsharing/rb-daap-share.c: (name_collision_cb):
1841         * plugins/generic-player/rb-generic-player-source.c:
1842         (rb_generic_player_source_load_playlists):
1843         * podcast/rb-podcast-manager.c:
1844         (rb_podcast_manager_download_entry),
1845         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1846         (end_job), (rb_podcast_manager_event_loop):
1847         * rhythmdb/rhythmdb-property-model.c:
1848         (rhythmdb_property_model_perform_sync):
1849         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1850         (rhythmdb_query_model_process_update), (idle_process_update),
1851         (rhythmdb_query_model_reapply_query_cb):
1852         * shell/rb-play-order.c: (sync_playing_entry_cb):
1853         * shell/rb-removable-media-manager.c:
1854         (rb_removable_media_manager_load_media):
1855         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1856         (rb_shell_clipboard_sync),
1857         (rb_shell_clipboard_entryview_changed_cb),
1858         (rb_shell_clipboard_entries_changed_cb),
1859         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1860         (rebuild_playlist_menu_idle),
1861         (rb_shell_clipboard_playlist_added_cb):
1862         * shell/rb-shell-player.c: (notify_playing_idle),
1863         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1864         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1865         (rb_shell_quit):
1866         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1867         * sources/rb-library-source.c: (add_child_sources_idle):
1868         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1869         (burn_cd_idle):
1870         * sources/rb-source.c: (update_visibility_idle):
1871         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1872         (cb_button_press):
1873         * widgets/rb-druid.c: (idle_set_sensitive):
1874         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1875         take the GDK lock when we should be, from #348588
1877 2006-08-09  James Livingston  <doclivingston@gmail.com>
1879         * rhythmdb/rhythmdb-property-model.c:
1880         (rhythmdb_property_model_get_path),
1881         (rhythmdb_property_model_get_value),
1882         (rhythmdb_property_model_iter_next): don't attempt to verify the
1883         iterator if it's the All value, since it isn't valid. Fixes a
1884         potential crasher.
1886 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1888         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1889         (rb_podcast_manager_download_file_info_cb),
1890         (rb_podcast_manager_abort_download), (download_info_free),
1891         (download_info_new):
1892         Use gnome_vfs_async_get_file_info to figure out the local filename for
1893         a podcast episode, so we get the filename from the target of any
1894         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1895         the query string, then append it later, to stop gnome-vfs from
1896         converting 'http://' to 'http:/'.  If the local filename ends with the
1897         query string, remove it.  Fixes #330766 and #321991.
1899 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1901         * sources/rb-library-source.c: (impl_want_uri):
1902         * sources/rb-static-playlist-source.c: (impl_want_uri):
1903         Treat sftp:// URIs as likely indicators of songness.
1905 2006-08-07  James Livingston  <doclivingston@gmail.com>
1907         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1908         remote tracks with GStreamer 0.10, and remember their visibility like
1909         local ones.
1911 2006-08-07  James Livingston  <doclivingston@gmail.com>
1913         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1914         apparently it's a borrowed reference. Should fix #347072.
1916 2006-08-06  James Livingston  <doclivingston@gmail.com>
1918         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1919         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1920         (rb_shuffle_play_order_get_previous),
1921         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1922         (remove_from_history), (add_randomly_to_history),
1923         (rb_shuffle_sync_history_with_query_model),
1924         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1925         (query_model_and_history_contents_match): remove the tentatative
1926         history stuff, which is from older code, like we did for -random a few
1927         weeks ago.
1929 2006-08-06  James Livingston  <doclivingston@gmail.com>
1931         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1932         (rb_queue_play_order_get_previous):
1933         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1934         (rb_random_play_order_go_next),
1935         (rb_random_play_order_get_previous), (rb_random_db_changed):
1936         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1937         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1938         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1939         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1940         (rb_shuffle_entry_removed),
1941         (query_model_and_history_contents_match):
1942         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1943         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1944         (default_has_next), (default_has_previous),
1945         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1946         various play orders, after reviewing the code. Should fix #349601.
1948 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1950         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1951         Pass the items_per_notification parameter to
1952         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1953         with some versions of python.
1955 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1957         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1958         Don't try to draw the icon if the drawable area is too small.
1959         Fixes #349838.
1961 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1963         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1965         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1967 2006-08-05  James Livingston  <doclivingston@gmail.com>
1969         * configure.ac: tell libtool not to check for C++/fortran/ etc
1970         compilers
1972         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1973         watch, to fix some gconf warnings.
1975 2006-08-04  James Livingston  <doclivingston@gmail.com>
1977         patch by: William Jon McCann  <mccann@jhu.edu>
1979         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1981 2006-08-04  James Livingston  <doclivingston@gmail.com>
1983         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1984         actually fix #349722 this time
1986 2006-08-04  James Livingston  <doclivingston@gmail.com>
1988         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1989         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1990         know about. Fixes #348571.
1992 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1994         various fixes for valgrind complaints:
1995         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1996         (init_rb_tree_dnd_data):
1997           free the associated target list, too
1998         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1999           initialize allocation.{x,y,width,height} correctly
2000         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
2001         (rb_entry_view_constructor):
2002           free strings when no longer needed
2004 2006-08-03  James Livingston  <doclivingston@gmail.com>
2006         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
2007         real GtkTreeModel not the filter. Fixes #349722
2009 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2011         * backends/gstreamer/rb-player-gst.c:
2012         Only use DAAP seek hacks for GStreamer 0.8 builds.
2014         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
2015         (rb_daap_src_open):
2016         * daapsharing/rb-daap-src.h:
2017         Implement normal GStreamer seeking for GStreamer 0.10 builds.
2019         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2020         (rb_daap_source_get_headers):
2021         * sources/rb-daap-source.h:
2022         Reimplement rb_daap_source_get_headers for the case where we've
2023         already got the byte offset.  Add a small hack to
2024         rb_daap_source_class_init to prevent the linker from dropping
2025         rb-daap-src.o entirely.
2027         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
2029 2006-08-02  James Livingston  <doclivingston@gmail.com>
2031         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
2032         (handle_song_listing), (handle_playlist_entries),
2033         (rb_daap_connection_dispose):
2034         * sources/rb-daap-source.c: (_add_location_to_playlist),
2035         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
2036         for playlist URIs, not pointless duplicate strings. From #347425.
2038 2006-08-02  James Livingston  <doclivingston@gmail.com>
2040         * data/rhythmbox.schemas:
2041         * lib/rb-preferences.h:
2042         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
2043         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
2044         (plugin_manager_set_active), (plugin_manager_toggle_active),
2045         (plugin_manager_get_selected_plugin), (name_search_cb),
2046         (plugin_manager_construct_tree), (rb_plugin_manager_new),
2047         (rb_plugin_manager_finalize):
2048         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
2049         (rb_plugins_engine_load_all), (rb_plugin_info_free),
2050         (rb_plugins_engine_plugin_is_visible),
2051         (rb_plugins_engine_plugin_visible_cb):
2052         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
2053         per-user plugins, and 2) hide plugins from the manager UI. From #349395
2055 2006-08-02  James Livingston  <doclivingston@gmail.com>
2057         * sources/rb-sourcelist-model.c:
2058         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
2059         drop on a source. Fixes #349580.
2061 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2063         * configure.ac:
2064         * daapsharing/rb-daap-dialog.c:
2065         * daapsharing/rb-daap-dialog.h:
2066         * shell/Makefile.am:
2067         * sources/Makefile.am:
2068         * sources/rb-daap-source.c: (connection_auth_cb),
2069         (rb_daap_source_connection_cb), (rb_daap_source_activate):
2070         Add gnome-keyring support for DAAP passwords and use
2071         gnome-password-dialog instead of our own.  
2072         Patch mostly by James Livingston.  Fixes bug #330346.
2074 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2076         * shell/rb-shell-player.c:
2077         (rb_shell_player_set_playing_source_internal),
2078         (rb_shell_player_sync_with_selected_source):
2079         Remove call to rb_source_have_url, as we never did anything with the
2080         result.
2082         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2083         * sources/rb-import-errors-source.c:
2084         (rb_import_errors_source_class_init):
2085         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2086         (impl_song_properties), (impl_want_uri), (impl_add_uri):
2087         * sources/rb-library-source.c: (rb_library_source_class_init),
2088         (impl_want_uri), (impl_add_uri):
2089         * sources/rb-missing-files-source.c:
2090         (rb_missing_files_source_class_init):
2091         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2092         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2093         (impl_want_uri), (impl_add_uri):
2094         * sources/rb-source.c: (rb_source_class_init),
2095         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
2096         * sources/rb-source.h:
2097         * sources/rb-static-playlist-source.c:
2098         (rb_static_playlist_source_class_init), (search_action_changed),
2099         (impl_want_uri):
2100         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
2101         When adding a URI, want_uri gets called for each source; the one that
2102         wants it most gets the URI passed to its add_uri method.
2103         
2104         * shell/rb-shell.h:
2105         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
2106         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
2107         (handle_playlist_entry_cb), (rb_shell_load_uri):
2108         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2109         Use want_uri and add_uri to simplify and make generic
2110         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
2112         If a source that returns TRUE from try_playlist wants all the URIs in
2113         the playlist, give it the playlist URI instead.  This retains the
2114         existing behaviour for adding iradio playlists.
2116         * bindings/python/rb.defs: Update for above changes.
2118         From bug #347097.
2120 2006-07-31  James Livingston  <doclivingston@gmail.com>
2122         * data/Makefile.am:
2123         * data/generate-keys.sh: fix the build I broke with the last commit.
2124         Oops.
2126 2006-07-31  James Livingston  <doclivingston@gmail.com>
2128         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
2129         in a long time. Fixes #349179.
2131 2006-07-30  James Livingston  <doclivingston@gmail.com>
2133         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
2134         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2135         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
2137 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2139         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2140         Don't tell the browser the query is still pending when doing a subset
2141         search.  Fixes #348617 again.
2143 2006-07-30  James Livingston  <doclivingston@gmail.com>
2145         * bindings/python/rb.override: remove an extraneous _wrap_ from the
2146         override definition. Fixes #348893.
2148 2006-07-30  James Livingston  <doclivingston@gmail.com>
2150         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
2151         rb_error_dialog, as it's above this in the stack.
2153         * lib/rb-util.c: (rb_gvalue_compare):
2154         * lib/rb-util.h: change the return type to int, as we're returning
2155         -1/0/1
2157         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
2158         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2159         (rb_query_creator_set_sorting): minor leak fixes
2161 2006-07-28  James Livingston  <doclivingston@gmail.com>
2163         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2164         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
2165         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
2166         (get_or_create_genre), (remove_entry_from_album),
2167         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2168         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
2169         (rhythmdb_tree_entry_lookup_by_location),
2170         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2171         (rhythmdb_hash_tree_foreach),
2172         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
2173         threadsafe. Fix a nasty problem if the _foreach callback function
2174         caused the addition/removal of entries.
2176 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2178         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
2179         Clear selection before changing our idea of the model.  Fixes crashes
2180         on model changes while playing.
2182 2006-07-27  James Livingston  <doclivingston@gmail.com>
2184         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
2185         a missing rb_refstring_unref.
2187         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2188         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
2189         oops. should hopefully fix the crash reported on #347425.
2191 2006-07-27  James Livingston  <doclivingston@gmail.com>
2193         * backends/gstreamer/rb-encoder-gst.c:
2194         (get_profile_from_mime_type): fix encoding error issue, from #310774.
2196         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
2197         thread-safety issue.
2199 2006-07-27  James Livingston  <doclivingston@gmail.com>
2201         * rhythmdb/rb-refstring.c: (rb_refstring_find):
2202         * rhythmdb/rb-refstring.h: add a new function which returns the
2203         RBRefString that matches a string, but never creates a new one.
2205         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2206         (monitor_entry_file), (rhythmdb_check_changed_file),
2207         (rhythmdb_directory_change_cb):
2208         * rhythmdb/rhythmdb-private.h:
2209         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2210         (unparent_entries), (free_unknown_entries),
2211         (rhythmdb_tree_parser_start_element),
2212         (rhythmdb_tree_parser_end_element), (save_entry),
2213         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
2214         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2215         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
2216         (rhythmdb_tree_entry_type_registered):
2217         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
2218         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
2219         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
2220         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2221         (rhythmdb_process_metadata_load),
2222         (rhythmdb_process_file_created_or_modified),
2223         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
2224         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2225         (action_thread_main), (rhythmdb_entry_set_internal),
2226         (rhythmdb_entry_move_to_trash_set_error),
2227         (rhythmdb_entry_move_to_trash),
2228         (rhythmdb_entry_lookup_by_location),
2229         (rhythmdb_entry_lookup_by_location_refstring),
2230         (default_sync_metadata), (rhythmdb_entry_get_string),
2231         (rhythmdb_entry_get_refstring):
2232         * rhythmdb/rhythmdb.h:
2233         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
2234         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2235         (rb_playlist_source_row_deleted),
2236         (rb_playlist_source_entry_added_cb),
2237         (rb_playlist_source_location_in_map),
2238         (rb_playlist_source_add_to_map): Make the LOCATION field of
2239         RhythmDBEntry be a RBRefString instead, which reduces some of the
2240         memory-fragmentation on startup and saves RBStaticPlaylistSource
2241         duplicating all the strings.
2243 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2245         * rhythmdb/rhythmdb-query-model.c:
2246         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
2247         * rhythmdb/rhythmdb-query-model.h:
2248         Add function to copy contents from one query model to another,
2249         filtered by the destination model's query.
2251         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2252         Use the above to create a new query model for subset searches, rather
2253         than filtering the existing model. Fixes #348617.
2255 2006-07-25  James Livingston  <doclivingston@gmail.com>
2257         * rhythmdb/rhythmdb-query-model.c:
2258         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2259         lost from static playlists. Yet again. Fixes #323095.
2261         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2262         case for the above, so that we should know if a change will break it
2263         again.
2265 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2267         * data/rhythmbox.schemas: Fix for last commit.
2269         * podcast/rb-podcast-manager.c:
2270         (rb_podcast_manager_download_entry),
2271         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2272         (rb_podcast_manager_db_entry_deleted_cb):
2273         * rhythmdb/rhythmdb-property-model.c:
2274         (rhythmdb_property_model_set_query_model_internal),
2275         (rhythmdb_property_model_set_property),
2276         (rhythmdb_property_model_finalize),
2277         (rhythmdb_property_model_drag_data_get):
2278         * rhythmdb/rhythmdb-query-model.c:
2279         (rhythmdb_query_model_set_query_internal),
2280         (rhythmdb_query_model_set_property),
2281         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2282         * rhythmdb/rhythmdb-query-model.h:
2283         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2284         (rb_browser_source_do_query):
2285         * sources/rb-import-errors-source.c:
2286         (rb_import_errors_source_constructor):
2287         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2288         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2289         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2290         (impl_search), (impl_get_status),
2291         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2292         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2293         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2294         * sources/rb-missing-files-source.c:
2295         (rb_missing_files_source_constructor),
2296         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2297         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2298         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2299         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2300         (rb_playlist_source_save_playlist),
2301         (rb_playlist_source_new_from_xml),
2302         (rb_playlist_source_save_to_xml),
2303         (rb_playlist_source_setup_entry_view),
2304         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2305         (rb_playlist_source_get_query_model),
2306         (rb_playlist_source_mark_dirty),
2307         (rb_playlist_source_location_in_map),
2308         (rb_playlist_source_add_to_map):
2309         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2310         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2311         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2312         (impl_delete), (rb_podcast_source_state_prefs_sync),
2313         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2314         (impl_get_config_widget), (rb_podcast_source_add_feed),
2315         (rb_podcast_source_cmd_download_post),
2316         (rb_podcast_source_cmd_cancel_download),
2317         (rb_podcast_source_cmd_delete_feed),
2318         (rb_podcast_source_cmd_update_feed),
2319         (rb_podcast_source_cmd_update_all),
2320         (rb_podcast_source_cb_interval_changed_cb),
2321         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2322         (rb_podcast_source_entry_activated_cb):
2323         * sources/rb-source.c: (rb_source_finalize),
2324         (rb_source_set_query_model_internal), (rb_source_set_property),
2325         (default_get_status):
2326         * sources/rb-static-playlist-source.c:
2327         (rb_static_playlist_source_dispose),
2328         (rb_static_playlist_source_finalize),
2329         (rb_static_playlist_source_constructor),
2330         (rb_static_playlist_source_do_query):
2331         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2332         (rb_entry_view_set_shell_player_internal),
2333         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2334         (rb_entry_view_set_model), (rb_entry_view_append_column),
2335         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2336         (rb_entry_view_set_state):
2337         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2338         (rb_library_browser_finalize), (rb_library_browser_new),
2339         (update_browser_property_visibilty), (view_selection_reset_cb),
2340         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2341         (restore_selection), (rebuild_child_model),
2342         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2343         * widgets/rb-property-view.c:
2344         (rb_property_view_set_model_internal),
2345         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2346         (rb_property_view_get_model), (rb_property_view_set_model),
2347         (rb_property_view_get_num_properties),
2348         (rb_property_view_set_selection),
2349         (rb_property_view_append_column_custom),
2350         (rb_property_view_set_search_func):
2351         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2352         From #347446
2354 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2356         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2357         Work around a small n-c-b API change.
2359 2006-07-25  James Livingston  <doclivingston@gmail.com>
2361         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2363         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2364         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2365         aborting entry-emission on finalise
2367 2006-07-25  James Livingston  <doclivingston@gmail.com>
2369         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2370         warning when entry is NULL.
2372 2006-07-25  James Livingston  <doclivingston@gmail.com>
2374         * help/sv/.cvsignore:
2375         * lib/.cvsignore:
2376         * plugins/generic-player/.cvsignore:
2377         * remote/.cvsignore:
2378         * remote/dbus/.cvsignore:
2379         * shell/.cvsignore:
2380         * tests/.cvsignore: more .cvsignore updates
2382 2006-07-24  James Livingston  <doclivingston@gmail.com>
2384         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2385         (transparent_expose_event), (make_transparent_again),
2386         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2387         apply a patch for EggTrayIcon so that it handled transparent panels
2388         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2389         Fixes #348208.
2391 2006-07-24  James Livingston  <doclivingston@gmail.com>
2393         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2394         queries rather than taking ownership when parsing a subquery. Fixed a
2395         crash exposed by the recent leak fixes.
2397         * doc/reference/tmpl/disclosure-widget.sgml:
2398         * doc/reference/tmpl/rb-debug.sgml:
2399         * doc/reference/tmpl/rb-metadata.sgml:
2400         * doc/reference/tmpl/rb-play-order.sgml:
2401         * doc/reference/tmpl/rb-playlist-manager.sgml:
2402         * doc/reference/tmpl/rb-playlist-source.sgml:
2403         * doc/reference/tmpl/rb-shell-player.sgml:
2404         * doc/reference/tmpl/rb-shell.sgml:
2405         * doc/reference/tmpl/rb-song-display-box.sgml:
2406         * doc/reference/tmpl/rhythmbox-unused.sgml:
2407         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2409 2006-07-24  James Livingston  <doclivingston@gmail.com>
2411         * lib/.cvsignore:
2412         * plugins/artdisplay/.cvsignore:
2413         * plugins/artdisplay/artdisplay/.cvsignore:
2414         * plugins/lyrics/.cvsignore:
2415         * plugins/pythonconsole/.cvsignore:
2416         * plugins/rb/.cvsignore: add/update various .cvsignore files
2418 2006-07-24  James Livingston  <doclivingston@gmail.com>
2420         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2421         (rb_refstring_ref): don't emit critical warnings when the refstring
2422         is NULL, as that happens often for podcast metadata.
2424         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2425         missing rhythmdb_entry_ref call
2427 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2429         * bindings/python/rb.override:
2430         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2431         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2432         (playlist_row_inserted_cb):
2433         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2434         * plugins/rb-plugin-manager.c:
2435         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2436         (rb_podcast_manager_copy_post),
2437         (rb_podcast_manager_db_entry_deleted_cb),
2438         (rb_podcast_manager_insert_feed):
2439         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2440         (rb_refstring_ref), (rb_refstring_get_sort_key):
2441         * rhythmdb/rhythmdb-private.h:
2442         * rhythmdb/rhythmdb-property-model.c:
2443         (rhythmdb_property_model_set_property),
2444         (rhythmdb_property_model_get_property),
2445         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2446         (rhythmdb_property_model_row_inserted_cb),
2447         (rhythmdb_property_model_prop_changed_cb),
2448         (rhythmdb_property_model_compare),
2449         (rhythmdb_property_model_insert),
2450         (rhythmdb_property_model_iter_from_string),
2451         (rhythmdb_property_model_get_column_type),
2452         (rhythmdb_property_model_get_iter),
2453         (rhythmdb_property_model_get_value),
2454         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2455         (rhythmdb_property_model_enable_drag):
2456         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2457         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2458         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2459         (rhythmdb_query_model_chain),
2460         (rhythmdb_query_model_entry_added_cb),
2461         (rhythmdb_query_model_entry_changed_cb),
2462         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2463         (rhythmdb_query_model_add_entry),
2464         (rhythmdb_query_model_insert_into_main_list),
2465         (rhythmdb_query_model_insert_into_limited_list),
2466         (rhythmdb_query_model_remove_from_main_list),
2467         (rhythmdb_query_model_remove_from_limited_list),
2468         (rhythmdb_query_model_update_limited_entries),
2469         (rhythmdb_query_model_emit_reorder),
2470         (rhythmdb_query_model_do_reorder),
2471         (rhythmdb_query_model_do_insert),
2472         (rhythmdb_query_model_move_entry),
2473         (rhythmdb_query_model_remove_entry),
2474         (rhythmdb_query_model_entry_to_iter),
2475         (rhythmdb_query_model_iter_to_entry),
2476         (rhythmdb_query_model_get_previous_from_entry),
2477         (rhythmdb_query_model_row_draggable),
2478         (rhythmdb_query_model_drag_data_delete),
2479         (rhythmdb_query_model_drag_data_get),
2480         (rhythmdb_query_model_drag_data_received),
2481         (rhythmdb_query_model_row_drop_possible),
2482         (rhythmdb_query_model_row_drop_position),
2483         (rhythmdb_query_model_add_results),
2484         (rhythmdb_query_model_query_complete),
2485         (rhythmdb_query_model_get_column_type),
2486         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2487         (rhythmdb_query_model_iter_nth_child),
2488         (apply_updated_entry_sequence),
2489         (rhythmdb_query_model_child_index_to_base_index),
2490         (rhythmdb_query_model_get_entry_index),
2491         (rhythmdb_query_model_base_row_inserted),
2492         (rhythmdb_query_model_base_row_deleted),
2493         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2494         (rhythmdb_query_model_location_sort_func),
2495         (rhythmdb_query_model_title_sort_func),
2496         (rhythmdb_query_model_album_sort_func),
2497         (rhythmdb_query_model_artist_sort_func),
2498         (rhythmdb_query_model_track_sort_func),
2499         (rhythmdb_query_model_double_ceiling_sort_func),
2500         (rhythmdb_query_model_ulong_sort_func),
2501         (rhythmdb_query_model_date_sort_func),
2502         (rhythmdb_query_model_string_sort_func),
2503         (rhythmdb_query_model_within_limit):
2504         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2505         (rhythmdb_tree_parser_start_element),
2506         (rhythmdb_tree_parser_end_element),
2507         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2508         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2509         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2510         (save_entry_uint64), (save_entry_double), (save_entry),
2511         (set_entry_album), (rhythmdb_tree_entry_new),
2512         (get_genres_hash_for_type), (get_or_create_genre),
2513         (get_or_create_artist), (get_or_create_album), (remove_child),
2514         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2515         (rhythmdb_tree_entry_delete), (remove_one_song),
2516         (rhythmdb_tree_entry_delete_by_type),
2517         (rhythmdb_tree_evaluate_query), (search_match_properties),
2518         (evaluate_conjunctive_subquery), (do_conjunction),
2519         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2520         (conjunctive_query_albums), (conjunctive_query_artists),
2521         (conjunctive_query_genre), (conjunctive_query),
2522         (split_query_by_disjunctions), (do_query_recurse),
2523         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2524         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2525         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2526         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2527         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2528         (extract_gtype_from_enum_entry),
2529         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2530         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2531         (rhythmdb_event_free), (rhythmdb_finalize),
2532         (rhythmdb_set_property), (rhythmdb_get_property),
2533         (rhythmdb_thread_create), (free_entry_changes),
2534         (emit_entry_changed), (sync_entry_changed),
2535         (process_added_entries_cb), (process_deleted_entries_cb),
2536         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2537         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2538         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2539         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2540         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2541         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2542         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2543         (rhythmdb_process_metadata_load),
2544         (rhythmdb_process_file_created_or_modified),
2545         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2546         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2547         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2548         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2549         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2550         (record_entry_change), (rhythmdb_entry_set_internal),
2551         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2552         (rhythmdb_entry_move_to_trash_cb),
2553         (rhythmdb_entry_move_to_trash_set_error),
2554         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2555         (rhythmdb_nice_elt_name_from_propid),
2556         (rhythmdb_propid_from_nice_elt_name),
2557         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2558         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2559         (rhythmdb_compute_status_normal), (default_sync_metadata),
2560         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2561         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2562         (podcast_get_playback_uri), (podcast_data_destroy),
2563         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2564         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2565         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2566         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2567         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2568         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2569         * rhythmdb/rhythmdb.h:
2570         * shell/rb-play-order-linear-loop.c:
2571         (rb_linear_play_order_loop_get_next),
2572         (rb_linear_play_order_loop_get_previous):
2573         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2574         (rb_linear_play_order_get_previous):
2575         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2576         * shell/rb-play-order-random.c: (get_query_model_contents):
2577         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2578         (get_query_model_contents):
2579         * shell/rb-play-order.c: (rb_play_order_constructor),
2580         (rb_play_order_finalize),
2581         (rb_play_order_set_playing_entry_internal),
2582         (rb_play_order_set_property), (rb_play_order_new),
2583         (rb_play_order_get_player), (rb_play_order_get_source),
2584         (rb_play_order_get_db), (rb_play_order_get_query_model),
2585         (rb_play_order_player_is_playing),
2586         (rb_play_order_set_playing_entry),
2587         (rb_play_order_get_playing_entry),
2588         (rb_play_order_playing_source_changed),
2589         (rb_play_order_query_model_changed),
2590         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2591         (default_has_next), (default_has_previous),
2592         (sync_playing_entry_cb), (default_playing_entry_removed),
2593         (rb_play_order_has_next), (rb_play_order_get_next),
2594         (rb_play_order_go_next), (rb_play_order_has_previous),
2595         (rb_play_order_get_previous), (rb_play_order_go_previous),
2596         (rb_play_order_model_not_empty),
2597         (rb_play_order_update_have_next_previous):
2598         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2599         (rb_playlist_manager_save_playlists),
2600         (rb_playlist_manager_set_automatic_playlist),
2601         (rb_playlist_manager_cmd_edit_automatic_playlist),
2602         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2603         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2604         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2605         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2606         (volume_pre_unmount_cb), (reemit_playing_signal),
2607         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2608         (rb_shell_player_handle_eos_unlocked),
2609         (rb_shell_player_handle_eos), (rb_shell_player_init),
2610         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2611         (playlist_entry_cb), (rb_shell_player_open_entry),
2612         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2613         (rb_shell_player_set_play_order),
2614         (rb_shell_player_set_playback_state),
2615         (rb_shell_player_sync_play_order),
2616         (rb_shell_player_play_order_update_cb),
2617         (rb_shell_player_jump_to_current), (swap_playing_source),
2618         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2619         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2620         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2621         (rb_shell_player_entry_activated_cb),
2622         (rb_shell_player_property_row_activated_cb),
2623         (rb_shell_player_entry_changed_cb),
2624         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2625         (rb_shell_player_pause),
2626         (rb_shell_player_get_playing_song_duration),
2627         (rb_shell_player_error), (error_cb), (tick_cb),
2628         (info_available_cb), (buffering_cb),
2629         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2630         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2631         (rb_shell_jump_to_current):
2632         * sources/rb-auto-playlist-source.c:
2633         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2634         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2635         (rb_auto_playlist_source_get_query):
2636         * sources/rb-auto-playlist-source.h:
2637         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2638         * sources/rb-import-errors-source.c:
2639         (rb_import_errors_source_constructor):
2640         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2641         * sources/rb-library-source.c: (filepath_parse_pattern):
2642         * sources/rb-missing-files-source.c:
2643         (rb_missing_files_source_constructor):
2644         * sources/rb-play-queue-source.c:
2645         (rb_play_queue_source_clear_queue),
2646         (rb_play_queue_source_track_info_cell_data_func):
2647         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2648         (rb_playlist_source_get_property), (playlist_iter_func),
2649         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2650         (rb_playlist_source_track_cell_data_func):
2651         * sources/rb-podcast-source.c: (construct_query_from_selection),
2652         (rb_podcast_source_post_status_cell_data_func),
2653         (rb_podcast_source_post_feed_cell_data_func),
2654         (rb_podcast_source_feed_title_search_func),
2655         (rb_podcast_source_post_date_cell_data_func):
2656         * sources/rb-source.c: (default_get_status),
2657         (rb_source_get_status), (rb_source_browser_toggled),
2658         (rb_source_update_play_statistics), (rb_source_search),
2659         (rb_source_get_config_widget), (default_add_to_queue),
2660         (rb_source_add_to_queue), (rb_source_receive_drag),
2661         (rb_source_gather_hash_keys):
2662         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2663         (rb_sourcelist_model_is_row_visible),
2664         (rb_sourcelist_model_row_is_separator),
2665         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2666         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2667         (rb_sourcelist_model_drag_data_get):
2668         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2669         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2670         (rb_sourcelist_visible_source_to_iter),
2671         (rb_sourcelist_edit_source_name), (set_source_playing),
2672         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2673         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2674         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2675         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2676         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2677         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2678         (rb_static_playlist_source_add_location_internal),
2679         (rb_static_playlist_source_row_inserted):
2680         * widgets/rb-entry-view.c: (type_ahead_search_func),
2681         (rb_entry_view_finalize), (rb_entry_view_set_model),
2682         (rb_entry_view_playing_cell_data_func),
2683         (rb_entry_view_rating_cell_data_func),
2684         (rb_entry_view_long_cell_data_func),
2685         (rb_entry_view_play_count_cell_data_func),
2686         (rb_entry_view_duration_cell_data_func),
2687         (rb_entry_view_year_cell_data_func),
2688         (rb_entry_view_quality_cell_data_func),
2689         (rb_entry_view_location_cell_data_func),
2690         (rb_entry_view_string_cell_data_func),
2691         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2692         (rb_entry_view_get_sorting_order),
2693         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2694         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2695         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2696         (rb_entry_view_playing_song_changed), (harvest_entries),
2697         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2698         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2699         (set_column_visibility):
2700         * widgets/rb-entry-view.h:
2701         * widgets/rb-header.c: (rb_header_new),
2702         (rb_header_set_playing_entry), (rb_header_set_title):
2703         * widgets/rb-library-browser.c: (rebuild_child_model),
2704         (rb_library_browser_set_model):
2705         * widgets/rb-property-view.c:
2706         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2707         (rb_property_view_set_property), (rb_property_view_get_property),
2708         (rb_property_view_reset), (rb_property_view_get_model),
2709         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2710         (rb_property_view_button_press_cb):
2711         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2712         (rb_query_creator_get_property), (rb_query_creator_load_query),
2713         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2714         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2715         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2716         (lookup_row_by_widget), (remove_button_click_cb),
2717         (add_button_click_cb), (create_property_option_menu):
2718         * widgets/rb-song-info.c: (rb_song_info_constructor),
2719         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2720         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2721         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2722         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2724 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2726         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2727         (rb_shell_player_get_property):
2728         Add a property providing access to the player backend object.
2730 2006-07-23  James Livingston  <doclivingston@gmail.com>
2732         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2733         (get_history), (rb_random_filter_history),
2734         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2735         remove the tentative history, since it appears to be a remanent from
2736         older play order code. The only thing it was doing was using up
2737         CPU-time and memory. From #345857
2739 2006-07-23  James Livingston  <doclivingston@gmail.com>
2741         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2743         * shell/main.c: (main):
2744         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2745         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2746         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2747         (rb_playlist_manager_load_playlists),
2748         (rb_playlist_manager_save_data):
2749         * shell/rb-playlist-manager.h:
2750         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2751         (rb_shell_get_property), (rb_shell_sync_state),
2752         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2753         (construct_sources), (idle_handle_load_complete):
2754         * shell/rb-shell.h: Add a command-line option for changing the
2755         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2757 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2759         * daapsharing/rb-daap-share.c: (databases_cb):
2760         Make sure we set status codes on HTTP responses.
2762 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2764         * configure.ac:
2765         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2766         (chunked_message_finished), (send_chunked_file),
2767         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2768         Use GMappedFile to send local files to DAAP clients where possible.  
2769         iTunes can't seek properly in files sent using chunked transfer 
2770         encoding.  Also remove the useless bitrate calculation code, as we
2771         never even used the result anyway.  From #330410.
2773 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2775         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2777         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2778         Enable multiple selection for 'import file'.  Fixes #347478.
2780 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2782         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2783         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2784         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2785         Fixes #348098.
2787 2006-07-20  James Livingston  <doclivingston@gmail.com>
2789         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2790         aren't NULL before calling strstr. Fixes #347998.
2792 2006-07-19  James Livingston  <doclivingston@gmail.com>
2794         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2796         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2797         MB that only have years. Fixes #347906.
2799 2006-07-19  James Livingston  <doclivingston@gmail.com>
2801         * rhythmdb/rhythmdb-private.h:
2802         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2803         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2804         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2805         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2806         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2807         (rhythmdb_execute_stat), (queue_stat_uri),
2808         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2809         (rhythmdb_load), (rhythmdb_entry_register_type),
2810         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2811         asynchronous vfs operations, and cancel them when shutting down the
2812         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2814         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2815         (test_rhythmdb_shutdown): wait until the db has been finalised before
2816         continuing on to the next test.
2818 2006-07-19  James Livingston  <doclivingston@gmail.com>
2820         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2821         right thing in the #ifdef. From #347832.
2823 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2825         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2826         Fix compile warning.
2828 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2830         * rhythmdb/rhythmdb-query-model.c:
2831         (rhythmdb_query_model_set_property),
2832         (rhythmdb_query_model_reapply_query_cb):
2833         Ignore old query == new query case.
2834         Fixes auto playlists with time-relative queries.
2836         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2837         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2838         (rhythmdb_query_to_string):
2839         * rhythmdb/rhythmdb.h:
2840         Add debug helper for printing queries in case someone needs it again.
2842 2006-07-18  James Livingston  <doclivingston@gmail.com>
2844         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2845         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2846         Fixes #347832
2848         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2849         write then into files.
2851 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2853         * daapsharing/rb-daap-connection.c:
2854         (rb_daap_connection_set_property):
2855         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2856         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2857         (add_playlist_to_mlcl), (databases_cb):
2858         * daapsharing/rb-daap-sharing.c: (create_share):
2859         * iradio/rb-new-station-dialog.c:
2860         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2861         * iradio/rb-station-properties-dialog.c:
2862         (rb_station_properties_dialog_finalize),
2863         (rb_station_properties_dialog_set_property),
2864         (rb_station_properties_dialog_get_current_entry):
2865         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2866         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2867         * plugins/generic-player/rb-generic-player-source.c:
2868         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2869         (handle_playlist_entry_cb):
2870         * plugins/generic-player/rb-nokia770-source.c:
2871         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2872         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2873         (visit_playlist_dirs), (hal_udi_is_psp):
2874         * podcast/rb-podcast-manager.c:
2875         * podcast/rb-podcast-properties-dialog.c:
2876         (rb_podcast_properties_dialog_finalize),
2877         (rb_podcast_properties_dialog_set_entry_view),
2878         (rb_podcast_properties_dialog_set_property):
2879         * rhythmdb/rhythmdb-property-model.c:
2880         * rhythmdb/rhythmdb-query-model.c:
2881         (rhythmdb_query_model_set_property),
2882         (rhythmdb_query_model_reapply_query_cb):
2883         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2884         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2885         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2886         (rhythmdb_event_free), (rhythmdb_shutdown),
2887         (rhythmdb_thread_create), (action_thread_main),
2888         (rhythmdb_do_full_query_async_parsed),
2889         (rhythmdb_do_full_query_internal):
2890         * shell/main.c: (main):
2891         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2892         * shell/rb-play-order.c: (rb_play_order_finalize),
2893         (rb_play_order_set_player),
2894         (rb_play_order_set_playing_entry_internal),
2895         (rb_play_order_set_property),
2896         (rb_play_order_playing_source_changed),
2897         (rb_play_order_query_model_changed):
2898         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2899         (rb_playlist_manager_set_source),
2900         (rb_playlist_manager_set_shell_internal),
2901         (rb_playlist_manager_set_property):
2902         * shell/rb-removable-media-manager.c:
2903         (rb_removable_media_manager_set_property),
2904         (rb_removable_media_manager_set_uimanager),
2905         (rb_removable_media_manager_cmd_eject_medium),
2906         (rb_removable_media_manager_cmd_copy_tracks):
2907         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2908         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2909         (rb_shell_clipboard_set),
2910         (rb_shell_clipboard_cmd_add_to_playlist_new),
2911         (rb_shell_clipboard_playlist_add_cb),
2912         (rb_shell_clipboard_playlist_renamed_cb),
2913         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2914         (rebuild_playlist_menu):
2915         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2916         (rb_shell_player_set_queue_source_internal),
2917         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2918         (rb_shell_player_entry_activated_cb),
2919         (rb_shell_player_property_row_activated_cb),
2920         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2921         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2922         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2923         (rb_shell_finalize), (construct_widgets),
2924         (rb_shell_playing_from_queue_cb),
2925         (rb_shell_player_stream_song_changed_cb),
2926         (rb_shell_player_volume_changed_cb):
2927         * shell/rb-statusbar.c: (rb_statusbar_new):
2928         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2929         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2930         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2931         * sources/rb-auto-playlist-source.c:
2932         (rb_auto_playlist_source_class_init),
2933         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2934         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2935         (rb_auto_playlist_source_do_query),
2936         (rb_auto_playlist_source_set_query),
2937         (rb_auto_playlist_source_browser_changed_cb),
2938         (search_action_changed):
2939         * sources/rb-auto-playlist-source.h:
2940         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2941         (search_action_changed), (rb_browser_source_constructor),
2942         (rb_browser_source_cmd_choose_artist), (impl_delete),
2943         (rb_browser_source_browser_changed_cb),
2944         (rb_browser_source_do_query):
2945         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2946         (rb_daap_source_finalize), (rb_daap_source_class_init),
2947         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2948         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2949         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2950         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2951         (rb_daap_source_get_headers):
2952         * sources/rb-import-errors-source.c:
2953         (rb_import_errors_source_constructor),
2954         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2955         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2956         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2957         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2958         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2959         (impl_paste), (impl_receive_drag):
2960         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2961         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2962         (impl_song_properties):
2963         * sources/rb-library-source.c: (rb_library_source_constructor),
2964         (rb_library_source_new), (impl_paste),
2965         (rb_library_source_add_child_source):
2966         * sources/rb-missing-files-source.c: (impl_delete),
2967         (impl_get_status):
2968         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2969         (rb_play_queue_source_class_init),
2970         (rb_play_queue_source_constructor):
2971         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2972         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2973         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2974         (rb_playlist_source_new_from_xml),
2975         (rb_playlist_source_save_to_xml):
2976         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2977         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2978         (search_action_changed), (rb_podcast_source_constructor),
2979         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2980         (construct_query_from_selection),
2981         (rb_podcast_source_cmd_download_post),
2982         (rb_podcast_source_cmd_cancel_download),
2983         (rb_podcast_source_cmd_delete_feed),
2984         (rb_podcast_source_start_download_cb),
2985         (rb_podcast_source_finish_download_cb),
2986         (rb_podcast_source_feed_updates_avaliable_cb),
2987         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2988         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2989         (impl_get_status):
2990         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2991         * sources/rb-source.c: (rb_source_get_property),
2992         (default_add_to_queue), (default_move_to_trash),
2993         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2994         (_rb_source_register_action_group):
2995         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2996         (rb_sourcelist_model_is_row_visible),
2997         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2998         (rb_sourcelist_model_row_draggable),
2999         (rb_sourcelist_model_drag_data_get):
3000         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
3001         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
3002         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
3003         (visibility_notify_cb):
3004         * sources/rb-static-playlist-source.c:
3005         (rb_static_playlist_source_class_init),
3006         (rb_static_playlist_source_init),
3007         (rb_static_playlist_source_finalize),
3008         (rb_static_playlist_source_constructor), (impl_delete),
3009         (rb_static_playlist_source_browser_changed_cb),
3010         (rb_static_playlist_source_add_location_internal),
3011         (search_action_changed):
3012         * sources/rb-static-playlist-source.h:
3013         * widgets/rb-druid.c:
3014         * widgets/rb-entry-view.c:
3015         (rb_entry_view_set_shell_player_internal),
3016         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
3017         (rb_entry_view_get_property), (rb_entry_view_new),
3018         (rb_entry_view_button_press_cb):
3019         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
3020         (rb_library_browser_set_property),
3021         (rb_library_browser_get_property):
3022         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
3023         (get_entry_for_property), (get_property_index_from_proptype):
3024         * widgets/rb-song-info.c: (rb_song_info_constructor),
3025         (rb_song_info_finalize), (rb_song_info_set_source_internal),
3026         (rb_song_info_set_property), (rb_song_info_get_property):
3028         More leak and reference counting fixes.  From bug #347446.
3030 2006-07-17  James Livingston  <doclivingston@gmail.com>
3032         * sources/rb-auto-playlist-source.c:
3033         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
3034         rather than setting the base model, as that lets us not import all the
3035         entries from the base model. This fixes some issues whether the search
3036         box wasn't filting automatic playlists.
3038 2006-07-17  James Livingston  <doclivingston@gmail.com>
3040         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
3041         error, which caused blacklist creation to fail.
3043 2006-07-17  James Livingston  <doclivingston@gmail.com>
3045         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
3046         running with -n, because we don't start it then. Fixes a crash on
3047         exit.
3049 2006-07-17  James Livingston  <doclivingston@gmail.com>
3051         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3053         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
3054         Save not Open for the button. Fixes #345816
3056 2006-07-17  James Livingston  <doclivingston@gmail.com>
3058         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3060         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
3061         when track transfer is disabled. Fixes #347705
3063 2006-07-17  James Livingston  <doclivingston@gmail.com>
3065         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3067         * sources/rb-library-source.c: (impl_get_config_widget): fix build
3068         with track transfer disabled. Fixes #347705
3070 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3072         * rhythmdb/rhythmdb-query-model.c:
3073         (rhythmdb_query_model_set_property):
3074         * shell/main.c: (main):
3075         * shell/rb-shell-clipboard.c: (unset_source_internal),
3076         (rb_shell_clipboard_finalize),
3077         (rb_shell_clipboard_set_source_internal),
3078         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
3079         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
3080         (rb_shell_player_set_db_internal),
3081         (rb_shell_player_set_queue_source_internal),
3082         (rb_shell_player_finalize), (rb_shell_player_set_property):
3083         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
3084         * sources/rb-auto-playlist-source.c:
3085         (rb_auto_playlist_source_constructor),
3086         (rb_auto_playlist_source_new_from_xml):
3087         * sources/rb-daap-source.c: (create_pixbufs):
3088         * sources/rb-ipod-source.c:
3089         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
3090         * sources/rb-library-source.c:
3091         (rb_library_source_add_child_source):
3092         * sources/rb-play-queue-source.c:
3093         (rb_play_queue_sync_playing_state),
3094         (rb_play_queue_source_track_info_cell_data_func):
3095         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3096         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
3097         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
3098         (impl_can_add_to_queue), (impl_add_to_queue):
3099         * sources/rb-source.c: (rb_source_set_property):
3100         * sources/rb-sourcelist.c: (rb_sourcelist_append):
3101         * sources/rb-static-playlist-source.c:
3102         (rb_static_playlist_source_constructor),
3103         (rb_static_playlist_source_load_from_xml):
3104         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3105         * widgets/rb-entry-view.c: (rb_entry_view_init),
3106         (rb_entry_view_finalize), (rb_entry_view_append_column),
3107         (rb_entry_view_constructor):
3108         * widgets/rb-song-info.c: (rb_song_info_set_property):
3109         Fix leaks.  From bug #347446.
3111 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3113         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
3114         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
3115         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
3116         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
3117         (add_decoding_pipeline), (profile_bin_find_encoder),
3118         (get_profile_from_mime_type), (extract_track), (transcode_track),
3119         (rb_encoder_gst_encode):
3120         * backends/gstreamer/rb-encoder-gst.h:
3121         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
3122         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3123         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
3124         (rb_player_gst_construct):
3125         * backends/gstreamer/rb-player-gst.h:
3126         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
3127         * backends/rb-encoder.h:
3128         * backends/rb-player.c: (_rb_player_emit_tick):
3129         * backends/rb-player.h:
3130         * daapsharing/rb-daap-connection.c: (build_message),
3131         (actual_http_response_handler), (http_response_handler),
3132         (http_get), (entry_set_string_prop), (emit_progress_idle),
3133         (handle_server_info), (handle_database_info),
3134         (handle_song_listing), (handle_playlists),
3135         (handle_playlist_entries), (rb_daap_connection_new),
3136         (connected_cb), (rb_daap_connection_do_something),
3137         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
3138         (rb_daap_connection_get_property):
3139         * daapsharing/rb-daap-connection.h:
3140         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
3141         (rb_daap_collision_dialog_new_run):
3142         * daapsharing/rb-daap-dialog.h:
3143         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
3144         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
3145         (DigestToString), (rb_daap_hash_generate):
3146         * daapsharing/rb-daap-hash.h:
3147         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3148         (resolve_cb), (browse_cb):
3149         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
3150         (resolve_cb), (rb_daap_mdns_browser_resolve),
3151         (rb_daap_mdns_browser_start), (resolver_free):
3152         * daapsharing/rb-daap-mdns-browser.h:
3153         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
3154         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
3155         (publish_cb):
3156         * daapsharing/rb-daap-mdns-publisher.h:
3157         * daapsharing/rb-daap-share.c: (name_collision_cb),
3158         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
3159         (message_set_from_rb_daap_structure), (content_codes_cb),
3160         (session_id_validate), (logout_cb), (update_cb),
3161         (add_entry_to_mlcl), (add_playlist_to_mlcl),
3162         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
3163         (rb_daap_share_server_start), (rb_daap_share_server_stop),
3164         (rb_daap_share_publish_start):
3165         * daapsharing/rb-daap-share.h:
3166         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
3167         (share_password_changed_cb), (rb_daap_sharing_shutdown):
3168         * daapsharing/rb-daap-sharing.h:
3169         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
3170         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
3171         (rb_daap_src_open):
3172         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
3173         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
3174         (rb_daap_structure_parse_container_buffer),
3175         (rb_daap_structure_parse), (gnode_find_node),
3176         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
3177         (print_rb_daap_item):
3178         * daapsharing/rb-daap-structure.h:
3179         * iradio/rb-new-station-dialog.c:
3180         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
3181         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
3182         (rb_new_station_dialog_text_changed):
3183         * iradio/rb-station-properties-dialog.c:
3184         (rb_station_properties_dialog_init),
3185         (rb_station_properties_dialog_new),
3186         (rb_station_properties_dialog_response_cb),
3187         (rb_station_properties_dialog_get_current_entry),
3188         (rb_station_properties_dialog_rated_cb),
3189         (rb_station_properties_dialog_update_rating),
3190         (rb_station_properties_dialog_update_playback_error),
3191         (rb_station_properties_dialog_sync_entries):
3192         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
3193         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
3194         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
3195         (rb_metadata_can_save), (rb_metadata_save):
3196         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
3197         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
3198         (_handle_message), (_new_connection), (main):
3199         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
3200         (rb_metadata_dbus_read_from_message):
3201         * metadata/rb-metadata-dbus.h:
3202         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
3203         (rb_add_id3_tagger), (rb_metadata_init),
3204         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
3205         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
3206         (rb_metadata_gst_new_decoded_pad_cb),
3207         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3208         * metadata/sj-error.c: (sj_error_quark):
3209         * metadata/sj-error.h:
3210         * metadata/sj-metadata-musicbrainz.c:
3211         (sj_metadata_musicbrainz_instance_init),
3212         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
3213         (get_rdf), (lookup_cd):
3214         * metadata/sj-metadata.c: (sj_metadata_get_type):
3215         * metadata/sj-structures.c:
3216         * metadata/sj-structures.h:
3217         * metadata/test-metadata.c: (load_metadata_cb), (main):
3218         * podcast/rb-feed-podcast-properties-dialog.c:
3219         (rb_feed_podcast_properties_dialog_init),
3220         (rb_feed_podcast_properties_dialog_update_title):
3221         * podcast/rb-feed-podcast-properties-dialog.h:
3222         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3223         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
3224         (rb_new_podcast_dialog_text_changed):
3225         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3226         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3227         (rb_podcast_manager_set_property),
3228         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
3229         (rb_podcast_manager_download_entry),
3230         (rb_podcast_manager_update_feeds),
3231         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
3232         (rb_podcast_manager_copy_post),
3233         (rb_podcast_manager_thread_parse_feed),
3234         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
3235         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
3236         (download_info_free), (download_info_new), (start_job),
3237         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
3238         (download_progress_cb), (download_progress_update_cb),
3239         (rb_podcast_manager_remove_feed),
3240         (rb_podcast_manager_db_entry_deleted_cb),
3241         (rb_podcast_manager_cancel_download),
3242         (rb_podcast_manager_update_synctime),
3243         (rb_podcast_manager_set_remove_files),
3244         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3245         (rb_podcast_manager_abort_subscribe),
3246         (rb_podcast_manager_get_podcast_dir):
3247         * podcast/rb-podcast-manager.h:
3248         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
3249         (rb_validate_channel_propert), (rb_validate_item_propert),
3250         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3251         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3252         (rb_podcast_parse_date), (rb_podcast_parse_time),
3253         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3254         * podcast/rb-podcast-parse.h:
3255         * podcast/rb-podcast-properties-dialog.c:
3256         (rb_podcast_properties_dialog_init),
3257         (rb_podcast_properties_dialog_get_current_entry),
3258         (rb_podcast_properties_dialog_update_title),
3259         (rb_podcast_properties_dialog_update_duration),
3260         (rb_podcast_properties_dialog_update_date):
3261         * podcast/rb-podcast-properties-dialog.h:
3262         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3263         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3264         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3265         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3266         (g_sequence_search), (g_sequence_set_aggregate_data),
3267         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3268         (find_min), (g_sequence_node_find_by_pos),
3269         (g_sequence_node_find_closest), (g_sequence_node_free),
3270         (g_sequence_node_split), (g_sequence_node_insert_before),
3271         (g_sequence_node_get_length), (g_sequence_node_remove),
3272         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3273         (g_sequence_calc_tree_height):
3274         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3275         (rb_refstring_get):
3276         * rhythmdb/rb-refstring.h:
3277         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3278         (rhythmdb_gda_init), (dump_model), (execute_query),
3279         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3280         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3281         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3282         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3283         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3284         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3285         * rhythmdb/rhythmdb-gda.h:
3286         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3287         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3288         (monitor_library_directory), (rhythmdb_check_changed_file),
3289         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3290         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3291         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3292         * rhythmdb/rhythmdb-private.h:
3293         * rhythmdb/rhythmdb-property-model.c:
3294         (rhythmdb_property_model_set_property),
3295         (rhythmdb_property_model_row_inserted_cb),
3296         (rhythmdb_property_model_prop_changed_cb),
3297         (rhythmdb_property_model_compare),
3298         (rhythmdb_property_model_get_value),
3299         (rhythmdb_property_model_iter_nth_child),
3300         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3301         (rhythmdb_property_model_drag_data_get),
3302         (rhythmdb_property_model_enable_drag),
3303         (rhythmdb_property_model_column_get_type):
3304         * rhythmdb/rhythmdb-property-model.h:
3305         * rhythmdb/rhythmdb-query-model.c:
3306         (rhythmdb_query_model_class_init),
3307         (rhythmdb_query_model_set_property),
3308         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3309         (rhythmdb_query_model_has_pending_changes),
3310         (rhythmdb_query_model_entry_changed_cb),
3311         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3312         (rhythmdb_query_model_add_entry),
3313         (rhythmdb_query_model_remove_from_main_list),
3314         (rhythmdb_query_model_remove_entry),
3315         (rhythmdb_query_model_drag_data_received),
3316         (rhythmdb_query_model_row_drop_possible),
3317         (rhythmdb_query_model_compute_status_normal),
3318         (rhythmdb_query_model_set_sort_order),
3319         (rhythmdb_query_model_get_entry_index),
3320         (rhythmdb_query_model_base_row_inserted),
3321         (rhythmdb_query_model_base_row_deleted),
3322         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3323         (rhythmdb_query_model_date_sort_func),
3324         (rhythmdb_query_model_within_limit):
3325         * rhythmdb/rhythmdb-query-model.h:
3326         * rhythmdb/rhythmdb-query-results.c:
3327         (rhythmdb_query_results_query_complete):
3328         * rhythmdb/rhythmdb-query-results.h:
3329         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3330         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3331         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3332         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3333         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3334         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3335         (rhythmdb_tree_parser_start_element),
3336         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3337         (save_entry), (save_entry_type), (save_unknown_entry_type),
3338         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3339         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3340         (get_or_create_genre), (remove_entry_from_album),
3341         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3342         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3343         (search_match_properties), (evaluate_conjunctive_subquery),
3344         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3345         (conjunctive_query_artists), (conjunctive_query_genre),
3346         (conjunctive_query), (split_query_by_disjunctions),
3347         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3348         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3349         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3350         (rhythmdb_hash_tree_foreach),
3351         (rhythmdb_tree_entry_type_registered):
3352         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3353         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3354         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3355         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3356         (rhythmdb_shutdown), (rhythmdb_finalize),
3357         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3358         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3359         (rhythmdb_entry_example_new),
3360         (set_metadata_string_default_unknown), (is_ghost_entry),
3361         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3362         (rhythmdb_process_metadata_load),
3363         (rhythmdb_process_queued_entry_set_event),
3364         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3365         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3366         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3367         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3368         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3369         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3370         (rhythmdb_entry_delete_by_type),
3371         (rhythmdb_propid_from_nice_elt_name),
3372         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3373         (rhythmdb_compute_status_normal),
3374         (rhythmdb_entry_register_type_alias),
3375         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3376         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3377         (rhythmdb_entry_import_error_get_type),
3378         (rhythmdb_entry_podcast_post_get_type),
3379         (rhythmdb_entry_podcast_feed_get_type),
3380         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3381         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3382         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3383         * rhythmdb/rhythmdb.h:
3384         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3385         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3386         (rb_history_limit_size):
3387         * shell/rb-history.h:
3388         * shell/rb-play-order-linear-loop.c:
3389         (rb_linear_play_order_loop_get_next):
3390         * shell/rb-play-order-linear-loop.h:
3391         * shell/rb-play-order-linear.c:
3392         * shell/rb-play-order-linear.h:
3393         * shell/rb-play-order-queue.c:
3394         (rb_queue_play_order_playing_entry_removed):
3395         * shell/rb-play-order-queue.h:
3396         * shell/rb-play-order-random-by-age-and-rating.c:
3397         * shell/rb-play-order-random-by-age-and-rating.h:
3398         * shell/rb-play-order-random-by-age.c:
3399         (rb_random_by_age_get_entry_weight):
3400         * shell/rb-play-order-random-by-age.h:
3401         * shell/rb-play-order-random-by-rating.c:
3402         * shell/rb-play-order-random-by-rating.h:
3403         * shell/rb-play-order-random-equal-weights.c:
3404         * shell/rb-play-order-random-equal-weights.h:
3405         * shell/rb-play-order-random.c: (rb_random_filter_history),
3406         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3407         (rb_random_db_changed), (rb_random_playing_entry_changed),
3408         (rb_random_db_entry_deleted):
3409         * shell/rb-play-order-shuffle.c: (remove_from_history),
3410         (add_randomly_to_history), (get_query_model_contents),
3411         (rb_shuffle_playing_entry_changed):
3412         * shell/rb-play-order-shuffle.h:
3413         * shell/rb-play-order.c: (rb_play_order_class_init),
3414         (rb_play_order_set_property),
3415         (rb_play_order_playing_source_changed),
3416         (rb_play_order_query_model_changed_cb),
3417         (rb_play_order_query_model_changed),
3418         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3419         * shell/rb-play-order.h:
3420         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3421         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3422         (rb_playlist_manager_set_property),
3423         (rb_playlist_manager_parse_file),
3424         (rb_playlist_manager_load_playlists),
3425         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3426         (rb_playlist_manager_save_playlists),
3427         (rb_playlist_manager_new_playlist),
3428         (rb_playlist_manager_new_playlist_from_selection_data),
3429         (rb_playlist_manager_cmd_new_automatic_playlist),
3430         (rb_playlist_manager_cmd_edit_automatic_playlist),
3431         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3432         (save_playlist_response_cb), (export_set_extension_cb),
3433         (filter_get_export_filter_label), (setup_format_menu),
3434         (rb_playlist_manager_cmd_save_playlist),
3435         (rb_playlist_manager_get_playlists),
3436         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3437         (rb_playlist_manager_delete_playlist),
3438         (rb_playlist_manager_export_playlist):
3439         * shell/rb-playlist-manager.h:
3440         * shell/rb-removable-media-manager.c:
3441         (rb_removable_media_manager_class_init),
3442         (rb_removable_media_manager_dispose),
3443         (rb_removable_media_manager_finalize),
3444         (rb_removable_media_manager_set_property),
3445         (split_drive_from_cdda_uri),
3446         (rb_removable_media_manager_playing_uri_changed_cb),
3447         (rb_removable_media_manager_load_media),
3448         (rb_removable_media_manager_volume_mounted_cb),
3449         (remove_volume_by_source),
3450         (rb_removable_media_manager_source_deleted_cb),
3451         (rb_removable_media_manager_volume_unmounted_cb),
3452         (rb_removable_media_manager_mount_volume),
3453         (rb_removable_media_manager_set_uimanager),
3454         (rb_removable_media_manager_scan), (do_transfer),
3455         (rb_removable_media_manager_cmd_copy_tracks):
3456         * shell/rb-removable-media-manager.h:
3457         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3458         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3459         (rb_shell_clipboard_sync),
3460         (rb_shell_clipboard_idle_poll_deletions),
3461         (rb_shell_clipboard_cmd_add_to_playlist_new),
3462         (rb_shell_clipboard_playlist_add_cb),
3463         (rb_shell_clipboard_playlist_deleted_cb),
3464         (rb_shell_clipboard_playlist_renamed_cb),
3465         (rb_shell_clipboard_playlist_visible_cb),
3466         (rb_shell_clipboard_playlist_added_cb):
3467         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3468         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3469         (rb_shell_player_init), (rb_shell_player_set_property),
3470         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3471         (rb_shell_player_open_location),
3472         (rb_shell_player_set_playing_entry),
3473         (rb_shell_player_play_order_update_cb),
3474         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3475         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3476         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3477         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3478         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3479         (gconf_song_position_slider_visibility_changed),
3480         (rb_shell_player_entry_activated_cb),
3481         (rb_shell_player_property_row_activated_cb),
3482         (rb_shell_player_entry_changed_cb),
3483         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3484         (actually_set_playing_source),
3485         (rb_shell_player_set_playing_source_internal),
3486         (rb_shell_player_get_playing_song_duration), (eos_cb),
3487         (rb_shell_player_error), (error_cb), (info_available_cb),
3488         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3489         (rb_shell_player_error_get_type):
3490         * shell/rb-shell-player.h:
3491         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3492         (rb_shell_preferences_append_page),
3493         (share_check_button_toggled_cb),
3494         (password_check_button_toggled_cb), (add_daap_preferences),
3495         (rb_shell_preferences_column_check_changed_cb),
3496         (rb_shell_preferences_sync_column_button),
3497         (rb_shell_preferences_sync),
3498         (rb_shell_preferences_browser_views_activated_cb):
3499         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3500         (rb_shell_set_property), (rb_shell_get_property),
3501         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3502         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3503         (rb_shell_get_visibility), (rb_shell_set_visibility),
3504         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3505         (rb_shell_register_entry_type_for_source),
3506         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3507         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3508         (rb_shell_player_stream_song_changed_cb),
3509         (rb_shell_set_window_title),
3510         (rb_shell_view_smalldisplay_changed_cb),
3511         (rb_shell_view_queue_as_sidebar_changed_cb),
3512         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3513         (rb_shell_cmd_add_folder_to_library),
3514         (rb_shell_cmd_add_file_to_library),
3515         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3516         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3517         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3518         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3519         (handle_playlist_entry_cb), (rb_shell_load_uri),
3520         (rb_shell_add_to_queue), (rb_shell_present),
3521         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3522         (rb_shell_volume_widget_changed_cb),
3523         (rb_shell_player_volume_changed_cb),
3524         (rb_shell_ui_location_get_type):
3525         * shell/rb-shell.h:
3526         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3527         (rb_source_header_init), (rb_source_header_set_source_internal),
3528         (rb_source_state_sync), (rb_source_header_clear_search),
3529         (rb_source_header_view_browser_changed_cb):
3530         * shell/rb-source-header.h:
3531         * shell/rb-statusbar.c: (rb_statusbar_construct),
3532         (rb_statusbar_init), (rb_statusbar_finalize),
3533         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3534         (rb_statusbar_source_status_changed_cb):
3535         * shell/rb-statusbar.h:
3536         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3537         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3538         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3539         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3540         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3541         (rb_audiocd_create_track_entry):
3542         * sources/rb-auto-playlist-source.c:
3543         (rb_auto_playlist_source_class_init),
3544         (rb_auto_playlist_source_constructor),
3545         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3546         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3547         (rb_auto_playlist_source_query_complete_cb),
3548         (rb_auto_playlist_source_do_query),
3549         (rb_auto_playlist_source_set_query),
3550         (rb_auto_playlist_source_browser_changed_cb),
3551         (search_action_to_prop):
3552         * sources/rb-auto-playlist-source.h:
3553         * sources/rb-browser-source.c: (rb_browser_source_init),
3554         (rb_browser_source_dispose), (search_action_to_prop),
3555         (rb_browser_source_constructor),
3556         (rb_browser_source_cmd_choose_genre),
3557         (rb_browser_source_cmd_choose_artist),
3558         (rb_browser_source_cmd_choose_album), (impl_search),
3559         (rb_browser_source_browser_changed_cb),
3560         (rb_browser_source_do_query):
3561         * sources/rb-browser-source.h:
3562         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3563         (rb_daap_source_init), (rb_daap_source_dispose),
3564         (rb_daap_source_set_property), (start_browsing),
3565         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3566         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3567         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3568         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3569         * sources/rb-daap-source.h:
3570         * sources/rb-import-errors-source.h:
3571         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3572         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3573         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3574         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3575         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3576         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3577         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3578         (generate_ipod_filename), (ipod_path_from_unix_path),
3579         (impl_delete_thyself):
3580         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3581         (rb_iradio_source_init), (rb_iradio_source_constructor),
3582         (rb_iradio_source_new), (guess_uri_scheme),
3583         (rb_iradio_source_add_station),
3584         (rb_iradio_source_async_update_play_statistics),
3585         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3586         (stations_view_drag_data_received_cb),
3587         (rb_iradio_source_cmd_new_station):
3588         * sources/rb-iradio-source.h:
3589         * sources/rb-library-source.c: (rb_library_source_dispose),
3590         (rb_library_source_constructor),
3591         (rb_library_source_location_button_clicked_cb),
3592         (impl_get_config_widget), (rb_library_source_library_location_cb),
3593         (sanitize_path), (filepath_parse_pattern),
3594         (layout_example_label_update),
3595         (rb_library_source_layout_filename_changed), (build_filename),
3596         (impl_can_paste), (impl_paste),
3597         (rb_library_source_add_child_source),
3598         (rb_library_source_sync_child_sources):
3599         * sources/rb-library-source.h:
3600         * sources/rb-missing-files-source.h:
3601         * sources/rb-play-queue-source.c:
3602         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3603         * sources/rb-play-queue-source.h:
3604         * sources/rb-playlist-source-recorder.c:
3605         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3606         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3607         (rb_playlist_source_recorder_init),
3608         (rb_playlist_source_recorder_new):
3609         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3610         (rb_playlist_source_save_playlist),
3611         (rb_playlist_source_entry_added_cb),
3612         (rb_playlist_source_set_query_model),
3613         (rb_playlist_source_add_to_map):
3614         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3615         (rb_podcast_source_init), (rb_podcast_source_dispose),
3616         (rb_podcast_source_finalize), (search_action_to_prop),
3617         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3618         (rb_podcast_source_get_property), (rb_podcast_source_new),
3619         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3620         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3621         (rb_podcast_source_show_browser), (construct_query_from_selection),
3622         (rb_podcast_source_do_query), (impl_get_config_widget),
3623         (rb_podcast_source_btn_file_change_cb),
3624         (posts_view_drag_data_received_cb),
3625         (rb_podcast_source_cmd_download_post),
3626         (rb_podcast_source_cmd_cancel_download),
3627         (rb_podcast_source_cmd_delete_feed),
3628         (rb_podcast_source_cmd_properties_feed),
3629         (rb_podcast_source_cmd_update_feed),
3630         (rb_podcast_source_post_status_cell_data_func),
3631         (rb_podcast_source_post_feed_cell_data_func),
3632         (rb_podcast_source_post_date_cell_data_func),
3633         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3634         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3635         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3636         (impl_get_status):
3637         * sources/rb-podcast-source.h:
3638         * sources/rb-removable-media-source.c:
3639         (rb_removable_media_source_constructor):
3640         * sources/rb-removable-media-source.h:
3641         * sources/rb-source.h:
3642         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3643         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3644         (rb_sourcelist_model_row_is_separator),
3645         (rb_sourcelist_model_drag_data_received),
3646         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3647         (rb_sourcelist_model_row_drop_position),
3648         (rb_sourcelist_model_get_drag_target),
3649         (rb_sourcelist_model_row_draggable),
3650         (rb_sourcelist_model_drag_data_get),
3651         (rb_sourcelist_model_row_inserted_cb),
3652         (rb_sourcelist_model_get_group_path):
3653         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3654         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3655         (rb_sourcelist_visible_source_to_iter),
3656         (rb_sourcelist_edit_source_name),
3657         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3658         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3659         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3660         * sources/rb-static-playlist-source.c:
3661         (rb_static_playlist_source_class_init),
3662         (rb_static_playlist_source_constructor),
3663         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3664         (impl_search), (rb_static_playlist_source_do_query),
3665         (rb_static_playlist_source_browser_changed_cb),
3666         (impl_receive_drag), (impl_save_contents_to_xml),
3667         (rb_static_playlist_source_add_location_swapped),
3668         (search_action_to_prop):
3669         * sources/rb-static-playlist-source.h:
3670         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3671         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3672         (egg_tray_icon_get_orientation_property),
3673         (egg_tray_icon_send_manager_message),
3674         (egg_tray_icon_update_manager_window),
3675         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3676         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3677         * widgets/eggtrayicon.h:
3678         * widgets/rb-cell-renderer-pixbuf.c:
3679         (rb_cell_renderer_pixbuf_get_property),
3680         (rb_cell_renderer_pixbuf_set_property),
3681         (rb_cell_renderer_pixbuf_get_size),
3682         (rb_cell_renderer_pixbuf_render),
3683         (rb_cell_renderer_pixbuf_activate):
3684         * widgets/rb-cell-renderer-rating.c:
3685         (rb_cell_renderer_rating_class_init),
3686         (rb_cell_renderer_rating_get_property),
3687         (rb_cell_renderer_rating_set_property),
3688         (rb_cell_renderer_rating_get_size),
3689         (rb_cell_renderer_rating_render),
3690         (rb_cell_renderer_rating_activate):
3691         * widgets/rb-dialog.c:
3692         * widgets/rb-dialog.h:
3693         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3694         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3695         (rb_druid_page3_finish_cb):
3696         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3697         (rb_entry_view_init), (rb_entry_view_set_property),
3698         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3699         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3700         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3701         (rb_entry_view_set_sorting_order),
3702         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3703         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3704         (rb_entry_view_playing_song_changed),
3705         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3706         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3707         (rb_entry_view_set_fixed_column_width),
3708         (rb_entry_view_get_time_date_column_sample),
3709         (rb_entry_view_state_get_type):
3710         * widgets/rb-entry-view.h:
3711         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3712         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3713         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3714         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3715         (update_browser_property_visibilty),
3716         (rb_library_browser_construct_query), (restore_selection),
3717         (rebuild_child_model), (rb_library_browser_set_selection),
3718         (rb_library_browser_set_model):
3719         * widgets/rb-library-browser.h:
3720         * widgets/rb-property-view.c: (rb_property_view_class_init),
3721         (rb_property_view_set_property), (rb_property_view_reset),
3722         (rb_property_view_get_model), (rb_property_view_constructor),
3723         (rb_property_view_set_selection),
3724         (rb_property_view_selection_changed_cb),
3725         (rb_property_view_button_press_cb),
3726         (rb_property_view_set_search_func):
3727         * widgets/rb-query-creator-private.h:
3728         * widgets/rb-query-creator-properties.c:
3729         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3730         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3731         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3732         (relativeTimeCriteriaCreateWidget),
3733         (relativeTimeCriteriaSetWidgetData):
3734         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3735         (rb_query_creator_dispose), (rb_query_creator_load_query),
3736         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3737         (get_property_index_from_proptype), (select_criteria_from_value),
3738         (create_property_option_menu), (create_criteria_option_menu),
3739         (sort_option_menu_changed), (setup_sort_option_menu):
3740         * widgets/rb-query-creator.h:
3741         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3742         (rb_rating_render_stars):
3743         * widgets/rb-rating-helper.h:
3744         * widgets/rb-rating.c: (rb_rating_expose):
3745         * widgets/rb-rating.h:
3746         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3747         (rb_search_entry_timeout_cb):
3748         * widgets/rb-search-entry.h:
3749         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3750         (rb_song_info_constructor), (rb_song_info_new),
3751         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3752         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3753         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3754         (rb_song_info_query_model_changed_cb),
3755         (rb_song_info_sync_entries_multiple),
3756         (rb_song_info_sync_entry_single):
3757         Strip all trailing whitespace.  Fixes #344293.
3759 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3761         * doc/reference/Makefile.am: Fix GTK Doc Build
3763 2006-07-13  James Livingston  <doclivingston@gmail.com>
3765         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3767         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3768         instead of the LOCATION, and don't try to get the directory listing
3769         for http URI schemes
3771         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3772         invalid utf8 in the error message, since apparently it can happen.
3774 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3776         * sources/rb-import-errors-source.c:
3777         (rb_import_errors_source_class_init),
3778         (rb_import_errors_source_init),
3779         (rb_import_errors_source_constructor),
3780         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3781         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3782         * sources/rb-missing-files-source.c:
3783         (rb_missing_files_source_class_init),
3784         (rb_missing_files_source_init),
3785         (rb_missing_files_source_constructor),
3786         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3787         (rb_missing_files_source_songs_sort_order_changed_cb),
3788         (impl_get_status):
3789         * sources/rb-source.c: (rb_source_class_init),
3790         (rb_source_finalize), (update_visibility_idle),
3791         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3792         (rb_source_set_property), (rb_source_get_property),
3793         (default_get_status), (rb_source_update_play_statistics),
3794         (default_add_to_queue), (_rb_source_show_popup),
3795         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3796         (rb_source_gather_selected_properties),
3797         (_rb_source_register_action_group):
3798         * sources/rb-source.h:
3799         * sources/rb-sourcelist.c: (visibility_notify_cb):
3800         Don't use a fake model for import-errors and missing-files
3801         sources.  Add a new source property "hidden-when-empty".
3802         Update source visibility in an idle.  Clean up some whitespace.
3803         From bug #346800
3805 2006-07-12  James Livingston  <doclivingston@gmail.com>
3807         * bindings/python/rb.defs:
3808         * bindings/python/rb.override: bind rb_error_dialog
3810         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3811         the current working directory for uninstalled plugins, and add the
3812         class name to the method name.
3814 2006-07-12  James Livingston  <doclivingston@gmail.com>
3816         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3817         the sources EOF type if it's NULL. Fixes #346284.
3819 2006-07-12  James Livingston  <doclivingston@gmail.com>
3821         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3822         I accidently committed. Nothing to see here, move along...
3824 2006-07-11  James Livingston  <doclivingston@gmail.com>
3826         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3827         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3828         Unknown.
3830 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3832         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3834 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3836         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3837         Don't try to set mtime if we've deleted the entry.
3839 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3841         * bindings/python/rhythmdb.defs:
3842         * rhythmdb/rhythmdb.c:
3843         * rhythmdb/rhythmdb.h:
3844         * rhythmdb/rhythmdb-private.h:
3845         * rhythmdb/rhythmdb-query.c:
3846         Move data structures holding registered entry types inside the
3847         RhythmDB object, and add a vfunc called when new types are registered.
3848         Add a flag to RhythmDBEntryType specifying whether entries of the type
3849         should be saved to the on-disk database.
3851         * sources/rb-audiocd-source.c:
3852         * sources/rb-daap-source.c:
3853         * sources/rb-ipod-source.c:
3854         * plugins/generic-player/rb-generic-player-source.c:
3855         * plugins/generic-player/rb-nokia770-source.c:
3856         * plugins/generic-player/rb-psp-source.c:
3857         Adjust to the above changes.
3859         * rhythmdb/rhythmdb-tree.c:
3860         If the type for an entry hasn't been registered yet, store the entry's
3861         properties as-is, and convert them to a real entry when the type is
3862         registered.  If the type doesn't get registered, save the entry back
3863         to the database unmodified.  From #330226.
3865 2006-07-10  James Livingston  <doclivingston@gmail.com>
3867         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3868         os.path.unlink to os.unlink, so removing stuff works.
3870 2006-07-10  James Livingston  <doclivingston@gmail.com>
3872         patch by: Ed Catmur  <ed@catmur.co.uk>
3873               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3875         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3876         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3877         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3878         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3879         internals of the cover database and Amazon lookup engine, and add
3880         support for loading art from the local file system. Fixes #345688.
3882         * plugins/rb/Coroutine.py:
3883         * plugins/rb/Makefile.am:
3884         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3885         plugin classes.
3887 2006-07-10  James Livingston  <doclivingston@gmail.com>
3889         * tests/Makefile.am: don't run the benchmark when doing "make check"
3891         * po/POTFILES.in: more build fixes, from Matti Lindell
3892         <feenixx@hotmail.com>. Fixes #347049.
3895 2006-07-10  James Livingston  <doclivingston@gmail.com>
3897         * plugins/cd-recorder/Makefile.am: build fixes
3899         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3900         attempt to change properties if we couldn't create an entry.
3902         * shell/rb-source-header.c: (rb_source_header_init),
3903         (rb_source_header_view_browser_changed_cb),
3904         (rb_source_header_sync_control_state):
3905         * shell/rb-tray-icon.c:
3906         * widgets/Makefile.am:
3907         * widgets/disclosure-widget.c:
3908         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3909         widget, as it hasn't been used for a while.
3911 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3913         * Makefile.am:
3914         * configure.ac:
3915         * data/ui/rhythmbox-ui.xml:
3916         * plugins/Makefile.am:
3917         * plugins/cd-recorder/.cvsignore:
3918         * plugins/cd-recorder/Makefile.am:
3919         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3920         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3921         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3922         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3923         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3924         (playlist_row_inserted_cb), (update_source),
3925         (shell_selected_source_notify_cb), (impl_activate),
3926         (impl_deactivate):
3927         * shell/Makefile.am:
3928         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3929         (rb_playlist_manager_cmd_save_playlist):
3930         * shell/rb-shell.c: (rb_shell_select_source):
3931         * sources/Makefile.am:
3932         * sources/rb-playlist-source-recorder.c:
3933         (rb_playlist_source_recorder_new):
3934         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3935         (rb_playlist_source_add_to_map):
3936         * sources/rb-playlist-source.h:
3937         Move cd burning into a plugin.  Fixes #344300.
3939 2006-07-10  James Livingston  <doclivingston@gmail.com>
3941         * lib/eel-gconf-extensions.c:
3942         * shell/rb-shell.c: remove some ununsed gnomeui includes
3944         * widgets/Makefile.am:
3945         * widgets/rb-song-display-box.c:
3946         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3947         since it isn't acutally used anywhere. Fixes #346926
3949 2006-07-09  James Livingston  <doclivingston@gmail.com>
3951         * bindings/python/rb.defs:
3952         * bindings/python/rb.override:
3953         * lib/rb-debug.c: (rb_debug_real):
3954         * lib/rb-debug.h:
3955         * plugins/rb/__init__.py: don't print out an extra newline when
3956         diverting python print statements to RB's debug log.
3958 2006-07-09  James Livingston  <doclivingston@gmail.com>
3960         * rhythmdb/rhythmdb-property-model.c:
3961         (rhythmdb_property_model_drag_data_get):
3962         * sources/rb-sourcelist-model.c:
3963         (rb_sourcelist_model_row_draggable),
3964         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3965         from the row reference is still valid. Fixes #346709.
3967 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3969         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3971         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3972         If all selected entries have the same rating, use that as the initial
3973         rating for the multiple song info dialog.  Fixes #345970.
3975 2006-07-09  James Livingston  <doclivingston@gmail.com>
3977         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3978         to prevent #343345:
3979                 - don't ever scale to 1x1, just hide the image in that case
3980                 - don't fade when the window is minimised
3981                 - use the last-good allocation width, not the current one - as
3982                   it sometimes get weird values.
3984 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3986         * data/ui/rhythmbox-ui.xml:
3987         * shell/rb-shell.c:
3988         Remove Import audio CD from menu.  Fixes #339732
3990 2006-07-08  James Livingston  <doclivingston@gmail.com>
3992         * metadata/test-metadata.c: (print_metadata_string),
3993         (load_metadata_cb): print out all the metadata we have read, not just
3994         a few.
3996         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3997         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3999 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4001         * plugins/lyrics/lyrics.py:
4002         Change the lyrics cache location to match Quod Libet's,
4003         and fix the '&' -> 'and' substitution to require spaces.
4005 2006-07-08  James Livingston  <doclivingston@gmail.com>
4007         * bindings/python/rb.defs:
4008         * bindings/python/rb.override: bind rb_debug_real to rb._debug
4010         * configure.ac:
4011         * plugins/Makefile.am:
4012         * plugins/rb-python-module.c: (rb_python_module_init_python):
4013         * plugins/rb/Makefile.am: add a place to put common python classes.
4014         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
4015         rb module/
4017         * plugins/lyrics/Makefile.am:
4018         * plugins/lyrics/Loader.py:
4019         * plugins/artdisplay/artdisplay/Makefile.am:
4020         * plugins/artdisplay/artdisplay/Loader.py:
4021         * plugins/rb/Loader.py: move the loader class to rb.Loader
4023         * plugins/rb/__init__.py: redirect stdout from python (e.g.
4024         "print ...") to rb_debug. error output (e.g. exceptions) are still
4025         printed on stderr.
4027         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4028         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4029         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
4030         instead of Loader.
4032         Fixes #346895.
4034 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4036         * shell/rb-shell-player.xml:
4037         * shell/rb-shell-player.h:
4038         Correct the details of the playing-song-property-changed signal.
4040 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4042         * lib/rb-marshal.list:
4043         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4044         (rb_shell_player_entry_changed_cb):
4045         * shell/rb-shell-player.h:
4046         * shell/rb-shell-player.xml:
4047         Emit a dbus signal when a property is changed on the playing entry.
4048         Fixes #332461.
4050 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4052         * rhythmdb/rhythmdb-private.h:
4053         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4054         Fix build break with gcc 4.1 by changing RBRefString pointers into
4055         gpointers.
4057 2006-07-07  James Livingston  <doclivingston@gmail.com>
4059         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
4060         remove an extraneous !, which caused it not to monitor folders in the
4061         library with no tracks in them. Fixes #346759.
4063 2006-07-07  James Livingston  <doclivingston@gmail.com>
4065         * rhythmdb/rhythmdb-private.h:
4066         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4067         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
4068         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
4069         (rhythmdb_entry_get_string):
4070         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
4071         flags for the affected properties. _sync_mirrored will get run
4072         automatically when a dirty property is accessed, which improves
4073         performance a bit (especially during startup) as we don't need to sync
4074         every time they change. From #325215.
4076         * tests/bench-rhythmdb-load.c
4077         * tests/Makefile.am: add a RhythmDB loading benchmark.
4079 2006-07-06  James Livingston  <doclivingston@gmail.com>
4081         * bindings/python/rb.defs:
4082         * bindings/python/rb.override: some more fixes, so that
4083         python classes derived from RBSource work correctly.
4085 2006-07-06  James Livingston  <doclivingston@gmail.com>
4087         * configure.ac: bump pygtk requirements to 2.8, since we're already
4088         using some features of it, and weird things will happen if people are
4089         actually trying to use pygtk 2.6.
4091         * bindings/python/rb.override:
4092         * bindings/python/rhythmdb.defs:
4093         * bindings/python/rhythmdb.override: allow python to set
4094         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
4096         * sources/rb-browser-source.c: remove some left over member variables
4098 2006-07-06  James Livingston  <doclivingston@gmail.com>
4100         * rhythmdb/rhythmdb.c:
4101         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4102         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
4103         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
4104         former is pointless (as rhythmdb already knows which it should use)
4105         and the latter doesn't seem useful at all, and possibly bad. From
4106         #330226.
4108         * bindings/python/rhythmdb.defs:
4109         * bindings/python/rhythmdb.override:
4110         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
4111         (handle_song_listing):
4112         * podcast/rb-podcast-manager.c:
4113         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
4114         (rb_podcast_manager_insert_feed):
4115         * sources/rb-audiocd-source.c: (entry_set_string_prop),
4116         (rb_audiocd_create_track_entry):
4117         * sources/rb-ipod-source.c: (entry_set_string_prop),
4118         (add_ipod_song_to_db):
4119         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
4120         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
4122 2006-07-05  James Livingston  <doclivingston@gmail.com>
4124         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4125         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
4126         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
4127         totem-plparser gives us, or the file name if it doesn't give us
4128         anything. Set the default file name when saving too. Fixes #345261
4130 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4132         patch by: Ed Catmur  <ed@catmur.co.uk>
4134         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
4135         Skip all hidden directories, not just trash, and skip unreadable
4136         files.  Fixes #346322.
4138 2006-07-04  James Livingston  <doclivingston@gmail.com>
4140         * plugins/rb-module.h:
4141         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
4142         (rb_module_new):
4143         * plugins/rb-plugin.h:
4144         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
4145         (rb_plugin_finalise), (rb_plugin_set_property),
4146         (rb_plugin_get_property), (rb_plugin_activate),
4147         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
4148         (rb_plugin_find_file):
4149         * plugins/rb-plugins-engine.c: (load_plugin_module):
4150         * plugins/rb-python-module.c: (rb_python_module_new_object),
4151         (rb_python_module_new):
4152         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
4153         rb_plugin_find_file method for locating plugin-specific data. Fixes
4154         346473.
4156         * bindings/python/rb.defs:
4157         * plugins/Makefile.am:
4158         * plugins/generic-player/rb-generic-player-plugin.c:
4159         (create_source_cb):
4160         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
4162 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4164         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
4165         (rb_metadata_can_save), (rb_metadata_save):
4166         Protect the dbus connection with a mutex.
4168 2006-07-03  James Livingston  <doclivingston@gmail.com>
4170         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
4171         case of the parser/tagger not being able to be created.
4173 2006-07-03  James Livingston  <doclivingston@gmail.com>
4175         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4177         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
4178         window resizable, as it used to be. Fixes #345940.
4180 2006-07-01  James Livingston  <doclivingston@gmail.com>
4182         Patch from Ståle Lyngaas  <staale@lyngaas.com>
4184         * rhythmdb/rhythmdb.h:
4185         * rhythmdb/rhythmdb-private.h:
4186         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4187         (rhythmdb_tree_parser_end_element), (save_entry):
4188         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
4189         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
4190         (set_props_from_metadata), (rhythmdb_entry_set_internal),
4191         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
4192         MusicBrainz track IDs in the database, and bump the on-disk version
4193         number to trigger a metadata reload.
4195         * backends/gstreamer/rb-player-gst.c: (process_tag):
4196         * metadata/rb-metadata-common.c:
4197         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
4198         (rb_metadata_gst_field_to_gst_tag):
4199         * metadata/rb-metadata.h: grab MB track IDs and use them.
4201         * plugins/audioscrobbler/rb-audioscrobbler.c:
4202         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4203         (rb_audioscrobbler_timeout_cb),
4204         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
4205         the other metadata. Fixes #343491.
4207 2006-06-30  James Livingston  <doclivingston@gmail.com>
4209         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
4210         method.
4212 2006-06-30  James Livingston  <doclivingston@gmail.com>
4214         * bindings/python/rb.defs:
4215         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4216         (rb_browser_source_songs_show_popup_cb),
4217         (default_show_entry_popup):
4218         * sources/rb-browser-source.h:
4219         * sources/rb-library-source.c: (rb_library_source_class_init),
4220         (rb_library_source_constructor), (impl_show_popup): allow
4221         RBBrowserSource-derived sources to override the entry context menu
4222         properly - by making it a virtual function, rather than relying on
4223         signal handler order (which doesn't really work).
4225 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4227         * rhythmdb/rhythmdb-query-model.c:
4228         (rhythmdb_query_model_reapply_query_cb):
4229         Use the original query, not the preprocessed query, when redoing
4230         the query to pick up entries that previously didn't match.
4231         Preprocessing the query twice is bad.  Fixes #346186.
4233 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4235         * plugins/audioscrobbler/rb-audioscrobbler.c:
4236         (rb_audioscrobbler_song_changed_cb):
4237         Just check if the elapsed time has been reset, rather
4238         than checking if it's a different track.  Fixes #344827.
4240 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4242         * backends/gstreamer/rb-player-gst.c:
4243         Set cdda source read-speed to 1.  Fixes gaps in playback while the
4244         drive spins up, #344576.
4246 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4248         * plugins/audioscrobbler/rb-audioscrobbler.c:
4249         (rb_audioscrobbler_perform):
4250         Use HTTP/1.1.  Fixes #345895.
4252 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4254         * lib/rb-preferences.h:
4255         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4256         (check_auto_proxy_config), (get_proxy_config):
4257         Don't try to use a HTTP proxy if no proxy host is specified.
4258         Alert the user to the fact that we don't support automatic proxy
4259         configuration as infrequently as possible.  From #345712.
4261 2006-06-25  James Livingston  <doclivingston@gmail.com>
4263         * rhythmdb/rhythmdb-property-model.c:
4264         (rhythmdb_property_model_set_property): connect to the
4265         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4266         things get removed correctly, fixes #338183.
4268 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4270         * rhythmdb/rhythmdb-query-model.c:
4271         (rhythmdb_query_model_drag_data_received):
4272         Fix build break.
4274 2006-06-25  James Livingston  <doclivingston@gmail.com>
4276         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4278         * widgets/rb-search-entry.c: (rb_search_entry_init),
4279         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4280         search box have a pale yellow background when it's in use, except for
4281         when the user has an "accessability" theme. Code based heavily on
4282         Epiphany's. Fixes #344416.
4284 2006-06-25  James Livingston  <doclivingston@gmail.com>
4286         * plugins/lyrics/lyrics.py:
4287         * plugins/pythonconsole/pythonconsole.py:
4288         * plugins/sample-python/sample-python.py: don't import gettext stuff
4289         as _, as the C code does this for us. Fixes i18n for python plugins,
4290         #343081
4292 2006-06-25  James Livingston  <doclivingston@gmail.com>
4294         * rhythmdb/rhythmdb-query-model.c:
4295         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4296         a model use a reorder rather then deleting and re-adding the entry.
4297         This means it does do weird things like stop playback of a track that
4298         is dragged, fixing #337657.
4300 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4302         * metadata/rb-metadata-dbus-service.c:
4303         Add missing #include <glib/gi18n.h> from previous commit.
4305 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4307         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4309         * metadata/rb-metadata-dbus-service.c: (main):
4310         Initialize gettext in the metadata helper.
4311         * metadata/rb-metadata-gst.c:
4312         Make some strings translatable.  Fixes #345286.
4314 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4316         * configure.ac:
4317         * lib/Makefile.am:
4318         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4319         Inline the custom icons so they can always be loaded, but are still
4320         themable.  Fixes #345796.
4322 2006-06-23  James Livingston  <doclivingston@gmail.com>
4324         * sources/rb-auto-playlist-source.c:
4325         (rb_auto_playlist_source_do_query): stop the search box being applied
4326         for limits in auto playlists. Fixes #345307.
4328 2006-06-23  James Livingston  <doclivingston@gmail.com>
4330         * shell/rb-shell-clipboard.c:
4331         (rb_shell_clipboard_set_source_internal),
4332         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4333         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4334         non-library tracks, as we don't supprot it yet. From #345248.
4336 2006-06-23  James Livingston  <doclivingston@gmail.com>
4338         patch by: Brian Cameron  <brian.cameron@sun.com>
4340         * plugins/generic-player/rb-generic-player-plugin.c:
4341         * plugins/generic-player/rb-generic-player-source.c:
4342         * plugins/generic-player/rb-nokia770-source.c:
4343         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4344         Fixes 345673.
4346 2006-06-22  James Livingston  <doclivingston@gmail.com>
4348         * backends/rb-player.c: (rb_player_interface_init):
4349         * lib/rb-marshal.list:
4350         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4351         * rhythmdb/rhythmdb-query-model.c:
4352         (rhythmdb_query_model_class_init):
4353         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4354         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4355         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4356         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4357         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4358         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4359         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4360         possible not.
4362 2006-06-20  James Livingston  <doclivingston@gmail.com>
4364         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4366         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4367         metadata to clients. Fixes #345276.
4369 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4371         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4372         (rb_add_id3_tagger):
4373         Fix plugin/element version detection for id3v2mux.
4375 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4377         * sources/rb-source.c: (rb_source_finalize),
4378         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4379         (_autohide_update_visibility),
4380         (_rb_autohide_source_post_entry_deleted_cb),
4381         (_rb_autohide_source_row_inserted_cb),
4382         (_rb_source_hide_when_empty):
4383         Use post-entry-delete signal to update status and autohide sources.
4385 2006-06-20  James Livingston  <doclivingston@gmail.com>
4387         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4388         "selection changed" idle callback, if present.
4390 2006-06-19  James Livingston  <doclivingston@gmail.com>
4392         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4394         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4395         don't try to translate the empty string. Fixes #345285.
4397 2006-06-19  James Livingston  <doclivingston@gmail.com>
4399         * bindings/python/rhythmdb.override: more python binding fixes
4401 2006-06-19  James Livingston  <doclivingston@gmail.com>
4403         * lib/rb-util.c: (rb_copy_function):
4404         * lib/rb-util.h: add a function that returns the same pointer it was
4405         passed.
4407         * rhythmdb/rhythmdb.h:
4408         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4409         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4410         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4411         and RhythmDBEntryType into boxed types. This allows them to be used
4412         from python. Note that entry-types aren't actually reference counted
4413         (yet).
4415         * bindings/python/rb.defs:
4416         * bindings/python/rhythmdb.defs:
4417         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4418         return types of some bindings.
4420         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4421         (process_added_entries_cb), (rhythmdb_entry_finalize),
4422         (rhythmdb_entry_delete):
4423         * daapsharing/rb-daap-connection.c:
4424         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4425         (rb_daap_connection_get_property):
4426         * plugins/generic-player/rb-generic-player-source.c:
4427         (rb_generic_player_source_load_songs), (load_playlist_file):
4428         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4429         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4430         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4431         (idle_process_update), (rhythmdb_query_model_add_entry),
4432         (rhythmdb_query_model_insert_into_main_list),
4433         (rhythmdb_query_model_insert_into_limited_list),
4434         (rhythmdb_query_model_remove_from_main_list),
4435         (rhythmdb_query_model_remove_from_limited_list),
4436         (rhythmdb_query_model_drag_data_received),
4437         (rhythmdb_query_model_add_results),
4438         (rhythmdb_query_model_get_column_type),
4439         (rhythmdb_query_model_get_value):
4440         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4441         (rhythmdb_tree_entry_delete), (remove_one_song):
4442         * shell/rb-play-order-linear-loop.c:
4443         (rb_linear_play_order_loop_get_next),
4444         (rb_linear_play_order_loop_get_previous):
4445         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4446         (rb_linear_play_order_get_previous):
4447         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4448         (rb_queue_play_order_get_previous):
4449         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4450         (rb_random_filter_history), (rb_random_play_order_get_next),
4451         (rb_random_play_order_go_next), (rb_random_db_changed),
4452         (rb_random_playing_entry_changed):
4453         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4454         (remove_from_history), (add_randomly_to_history),
4455         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4456         * shell/rb-play-order.c: (rb_play_order_class_init),
4457         (rb_play_order_set_property), (rb_play_order_get_property),
4458         (rb_play_order_update_have_next_previous):
4459         * shell/rb-play-order.h:
4460         * shell/rb-shell-clipboard.c:
4461         (rb_shell_clipboard_process_deletions),
4462         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4463         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4464         * sources/rb-auto-playlist-source.c:
4465         (rb_auto_playlist_source_constructor):
4466         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4467         (rb_browser_source_set_property), (rb_browser_source_get_property),
4468         (rb_browser_source_do_query):
4469         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4470         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4471         * sources/rb-ipod-source.c: (add_rb_playlist),
4472         (add_ipod_song_to_db), (impl_paste):
4473         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4474         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4475         * sources/rb-library-source.c: (layout_example_label_update):
4476         * sources/rb-missing-files-source.c:
4477         (rb_missing_files_source_class_init),
4478         (rb_missing_files_source_set_property),
4479         (rb_missing_files_source_get_property),
4480         (rb_missing_files_source_new):
4481         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4482         (rb_playlist_source_set_property),
4483         (rb_playlist_source_get_property):
4484         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4485         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4486         (construct_query_from_selection):
4487         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4488         * sources/rb-static-playlist-source.c:
4489         (rb_static_playlist_source_constructor),
4490         (rb_static_playlist_source_add_location_internal):
4491         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4492         * widgets/rb-header.c: (rb_header_class_init),
4493         (rb_header_set_property), (rb_header_get_property):
4494         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4495         (rb_library_browser_set_property),
4496         (rb_library_browser_get_property):
4497         * widgets/rb-song-info.c: (rb_song_info_class_init),
4498         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4499         change, do s/pointer/boxed/ in many places and free entry-types
4500         properly.
4502 2006-06-18  James Livingston  <doclivingston@gmail.com>
4504         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4505         unushed GThreadPool non-exclusive threads every now and then.
4507         * rhythmdb/rhythmdb-private.h:
4508         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4509         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4510         threads. Fixes #341593
4512 2006-06-19  James Livingston  <doclivingston@gmail.com>
4514         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4515         the "Track number" checkbox actually work for playlists. From #329986.
4517 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4519         * plugins/generic-player/rb-generic-player-source.c:
4520         Get playlist and audio folder information from HAL.  Fixes #333845.
4522 2006-06-18  James Livingston  <doclivingston@gmail.com>
4524         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4526         * widgets/rb-entry-view.h:
4527         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4528         (rb_entry_view_append_column_custom),
4529         (rb_entry_view_insert_column_custom): add support for inserting custom
4530         columns at arbitrary locations, rather than just appending to the end.
4532         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4533         the playlists "track number" column go at the start, and add a normal
4534         track number column. Fixes #329986.
4536 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4538         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4539         a mnemonic conflict.  Add ellipses to the edit button.
4540         * sources/rb-library-source.c:
4541         (rb_library_source_edit_profile_clicked_cb),
4542         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4543         mnemonic widget to the labels. Fixes #344114.
4545 2006-06-18  James Livingston  <doclivingston@gmail.com>
4547         * configure.ac: bump version
4548         * NEWS: add NEWS for 0.9.5
4550 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4552         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4553         (rb_uri_handle_recursively):
4554         Don't attempt to recurse into directories we can't open.  
4555         Fixes #341485.
4557 2006-06-18  James Livingston  <doclivingston@gmail.com>
4559         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4561         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4562         #344610.
4564 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4566         * bindings/python/rb.defs:
4567         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4568         * shell/rb-shell-player.h:
4569         * shell/rb-shell.c: (rb_shell_play_entry):
4570         Add source parameter to rb_shell_player_play_entry, using the selected
4571         source if not specified.
4573         * shell/rb-play-order.c: (rb_play_order_class_init),
4574         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4575         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4576         (default_playing_entry_removed):
4577         * shell/rb-play-order.h:
4578         Move entry removal handling back to the row-deleted signal, as we need
4579         the entry to be present in the model.  When changing to the next entry
4580         after the playing entry is deleted, set the new entry as the playing
4581         entry and then sync it to the player in an idle handler, so we don't
4582         end up playing it if it was removed too.
4583         * shell/rb-play-order-queue.c:
4584         (rb_queue_play_order_playing_entry_changed),
4585         (rb_queue_play_order_playing_entry_removed):
4586         Use the playing-entry-removed handler from the play order class,
4587         setting a flag so we don't try to remove the already-removed entry
4588         from the model.
4590         This makes removal of the playing entry from playlists etc. work more
4591         or less correctly for all play orders.  Fixes #344627.
4593 2006-06-17  James Livingston  <doclivingston@gmail.com>
4595         patch by: Elijah Newren  <newren@gmail.com>
4597         * tests/test-rhythmdb.c: fix the build with older versions of check
4598         (again). Fixes #343718.
4600 2006-06-17  James Livingston  <doclivingston@gmail.com>
4602         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4603         name for capsfilter's "caps" property. Fixes #344968.
4605 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4607         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4608         Don't leak the selected entry list when finding an entry to play.
4610 2006-06-17  James Livingston  <doclivingston@gmail.com>
4612         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4613         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4614         as a O(1) one works fine, and it will get called often when the user
4615         deleted multiple tracks. Part of #344922.
4617 2006-06-17  James Livingston  <doclivingston@gmail.com>
4619         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4620         rb_shell_player_stop and rb_shell_player_playpause not mutually
4621         recursive. Fixed #336912.
4623 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4625         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4626         Treat nested elements inside properties as unknown.  Fixes parsing of
4627         podcast feeds with unescaped HTML in description tags, bug #344532.
4629 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4631         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4632         when quitting.  Fixes #344875.
4634 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4636         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4637         Move the playing-entry-removed handling to after the normal entry
4638         delete handling, since we're called after the entry has been removed
4639         from the query model now.  Fixes crashes described in #344627.
4641 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4643         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4644         (rb_rating_get_rating_from_widget):
4645         * widgets/rb-rating.c: (rb_rating_class_init),
4646         (rb_rating_finalize), (rb_rating_get_property),
4647         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4648         (rb_rating_button_press_cb):
4649         Don't crash when ratings icons can't be found.  Fixes #344533.
4651 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4653         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4655 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4657         * Makefile.am:
4658         * configure.ac:
4659         * remote/Makefile.am:
4660         * remote/dbus/Makefile.am:
4661         * remote/dbus/rb-client.c:
4662         * shell/Makefile.am:
4663         New dbus client program providing --play/--next etc. arguments.
4664         Fixes #340863, #155763.
4666 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4668         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4669         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4671 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4673         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4675         * rhythmdb/rhythmdb-query-model.c:
4676         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4677         to Library incorrectly
4679 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4681         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4682         Return input string untouched if gnome_vfs_uri_new returns NULL.
4683         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4684         (rb_static_playlist_source_add_list_uri):
4685         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4686         URIs don't break it.  Fixes #339033.
4688 2006-06-08  James Livingston  <doclivingston@gmail.com>
4690         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4691         for sources on the edge (i.e. the queue). Fixes #328409.
4693         * sources/rb-ipod-source.c: fix typo
4695 2006-06-08  James Livingston  <doclivingston@gmail.com>
4697         * configure.ac:
4698         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4699         --enable-ipod-writing to enable the ipod syncing code.
4701 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4703         * sources/rb-library-source.c: (layout_example_label_update):
4704         add missing comma so we don't generate broken markup.
4706 2006-06-08  James Livingston  <doclivingston@gmail.com>
4708         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4709         tag-merging with id3v2mux as well as id3mux. From #342330.
4711 2006-06-07  James Livingston  <doclivingston@gmail.com>
4713         * tests/test-rhythmdb.c: #define fail_if for old version of check
4714         which don't have it. Hopefully fixes #343718.
4716 2006-06-07  James Livingston  <doclivingston@gmail.com>
4718         * shell/rb-playlist-manager.c:
4719         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4720         g_value_array_free with NULL. Fixes #341053.
4722 2006-06-07  James Livingston  <doclivingston@gmail.com>
4724         * shell/rb-playlist-manager.c:
4725         (rb_playlist_manager_playlist_entries_changed),
4726         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4727         instead of "row-removed", which fixes updating "burn playlist"
4728         sensitivity. Fixes #331119.
4730 2006-06-07  James Livingston  <doclivingston@gmail.com>
4732         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4733         rather than restarting if the source uses _RETRY and there is an
4734         actual error (like an undecodable stream) rather than it just dropping
4735         out and causing EOS.
4737 2006-06-07  James Livingston  <doclivingston@gmail.com>
4739         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4740         free the pixbufs if they couldn't be loaded. Fixed #343852.
4742 2006-06-07  James Livingston  <doclivingston@gmail.com>
4744         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4745         the close button on the dialog work. Fixes #335346.
4747 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4749         * sources/rb-sourcelist-model.c: (path_is_droppable),
4750         (path_is_reorderable):
4751         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4752         (row_activated_cb), (emit_show_popup), (key_release_cb),
4753         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4754         Ignore group marker rows in the source list.  Fixes #344089, a couple
4755         of other crashers, and some weird UI glitches too.
4757 2006-06-07  James Livingston  <doclivingston@gmail.com>
4759         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4760         the seeking query fails. This is needed because many gst elements
4761         don't implement the seeking query yet. Should fix 329977.
4763 2006-06-06  James Livingston  <doclivingston@gmail.com>
4765         * configure.ac: bump version for a prerelease, turn on track transfer
4766         by default.
4768         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4769         ipod transfer stuff, since it has big issues and we'll hopefully land
4770         real support (bug 310774) after 0.9.5
4772 2006-06-06  James Livingston  <doclivingston@gmail.com>
4774         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4775         id3v2mux once we've detected it.
4777 2006-06-06  James Livingston  <doclivingston@gmail.com>
4779         * lib/Makefile.am:
4780         * tests/test-rhythmdb.c: undo accidental commit which caused
4781         rb-thread.c to be built (which it isn't normally)
4783 2006-06-06  James Livingston  <doclivingston@gmail.com>
4785         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4786         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4787         fail_{if/unless} calls, as some versions of check need them (they are
4788         optional in others). Should fix bug 343718.
4790 2006-06-06  James Livingston  <doclivingston@gmail.com>
4792         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4793         343836.
4794         
4795         * lib/Makefile.am:
4796         * lib/rb-thread.c: (process_actions):
4797         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4798         tests that don't pass.
4800 2006-06-05  James Livingston  <doclivingston@gmail.com>
4802         * data/glade/Makefile.am:
4803         * data/glade/load-failure.glade:
4804         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4805         dialog.
4807 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4809         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4810         checked in.
4812 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4814         * bindings/python/rb.defs:
4815         * sources/rb-source.h:
4816         * sources/rb-source.c: (rb_source_class_init),
4817         (rb_source_set_property), (rb_source_get_property),
4818         (rb_sourcelist_group_get_type):
4819         Add 'sourcelist-group' property on the RBSource class, describing how
4820         sources should be grouped in the source list.
4822         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4823         (rb_sourcelist_model_new), (real_row_is_separator),
4824         (rb_sourcelist_model_is_row_visible),
4825         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4826         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4827         (rb_sourcelist_model_row_draggable),
4828         (rb_sourcelist_model_row_inserted_cb),
4829         (rb_sourcelist_model_row_deleted_cb),
4830         (rb_sourcelist_model_get_group_path):
4831         * sources/rb-sourcelist-model.h:
4832         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4833         (rb_sourcelist_append):
4834         Add group marker rows for each sourcelist group, and use these to
4835         insert sources in the right place.  Sort transient sources (DAAP
4836         shares) by name.  Show the group marker rows as separators when the
4837         next visible row is a source.  Make persistant sources (playlists) and
4838         removable sources reorderable using drag and drop, restricting them
4839         within the source groups.
4840         
4841         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4842         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4843         * sources/rb-daap-source.c: (rb_daap_source_new):
4844         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4845         * sources/rb-static-playlist-source.c:
4846         (rb_static_playlist_source_new):
4847         * plugins/generic-player/rb-generic-player-source.c:
4848         (rb_generic_player_source_new):
4849         * plugins/generic-player/rb-nokia770-source.c:
4850         (rb_nokia770_source_new):
4851         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4852         Add source list group information to existing source classes.
4854         Fixes #318754 and #336492.
4856 2006-06-04  James Livingston  <doclivingston@gmail.com>
4858         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4859         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4860         win32 build fixes.
4862 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4864         * rhythmdb/rhythmdb-query-model.c:
4865         (rhythmdb_query_model_class_init),
4866         (rhythmdb_query_model_remove_from_main_list):
4867         * rhythmdb/rhythmdb-query-model.h:
4868         Add a new 'post-entry-delete' signal, emitted when the entry has been
4869         removed from the model's data structures.
4871         * shell/rb-play-order.c: (rb_play_order_finalize),
4872         (rb_play_order_query_model_changed),
4873         (rb_play_order_post_entry_delete_cb):
4874         Use the new signal to update the play order, so the queue play order
4875         doesn't try to scroll to entries that don't exist in a way that causes
4876         the tree view to crash.  Fixes #340216.
4878 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4880         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4881         Fix rb_debug call I missed previously.
4883 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4885         * metadata/rb-metadata-gst.c:
4886         Don't use NULL as the error message for ignored files, as it crashes
4887         with some C libraries.  Fixes #343713.
4889 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4891         * widgets/rb-dialog.c: (rb_error_dialog):
4892         * widgets/rb-dialog.h:
4893         Mark rb_error_dialog as taking printf-like arguments, and use a format
4894         string for the primary message rather than passing in the message
4895         directly.
4897         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4898         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4899         (info_available_cb):
4900         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4901         * shell/rb-removable-media-manager.c:
4902         (rb_removable_media_manager_eject_medium_cb):
4903         Make sure all calls to rb_error_dialog use string constants for the
4904         format string rather than passing the error message directly.  Remove
4905         an extra %s from the message used when playback fails.  Fixes #343562.
4907         * lib/rb-debug.h:
4908         * sources/rb-audiocd-source.c:
4909         * plugins/audioscrobbler/rb-audioscrobbler.c:
4910         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4911         Mark rb_debug as taking printf-like arguments and fix a few resulting
4912         warnings.
4914 2006-06-02  James Livingston  <doclivingston@gmail.com>
4916         * configure.ac:
4917         + macros/check.m4: add support for using check for unit tests, the .m4
4918         files is so autogen can run without check being installed
4920         * tests/Makefile.am:
4921         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4922         some of the old tests, and add some new ones. Currently
4923         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4924         yet (the query doesn't return any entries).
4926         - tests/deserialization-test1.xml:
4927         - tests/deserialization-test2.xml:
4928         - tests/deserialization-test3.xml:
4929         - tests/test-rhythmdb-indexing.c:
4930         - tests/test-rhythmdb-simple.c:
4931         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4932         have been ported
4934         - tests/test-cd.c:
4935         - tests/test-cmdline.c: remove obsolete tests
4937 2006-06-02  James Livingston  <doclivingston@gmail.com>
4939         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4940         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4941         id3v2mux, and check whether we are using a version of id3mux that has
4942         the correct merge-mode behaviour.
4944         * plugins/sample-python/Makefile.am: fix distcheck.
4946         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4947         the changed-files source was added before trying to remove it.
4949         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4950         *old* bug which would crash if a query with top-level disjunctions
4951         tried to check later disjunctive parts. Hooray for unit-testing.
4953 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4955         * player/rb-recorder-gst.c (rb_recorder_set_device):
4956         Check for a null drive.
4958 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4960         * lib/Makefile.am:
4961         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4962         Register the app icon as a builtin if the icon theme can't find it.
4964 2006-05-31  James Livingston  <doclivingston@gmail.com>
4966         * player/rb-recorder-gst.c: add missing include.
4968 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4970         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4971         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4972         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4973         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4974         (rb_recorder_set_device), (rb_recorder_get_default_device):
4975         * shell/main.c: (main):
4976         * shell/rb-removable-media-manager.c:
4977         (rb_removable_media_manager_finalize),
4978         (get_nautilus_burn_drive_for_path),
4979         (rb_removable_media_manager_playing_uri_changed_cb),
4980         (rb_removable_media_manager_load_media),
4981         (nautilus_burn_drive_get_device),
4982         (rb_removable_media_manager_scan):
4983         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4985         Update for libnautilus-burn 2.15.3 API changes.
4986         Fixes #342604
4988 2006-05-30  James Livingston  <doclivingston@gmail.com>
4990         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4991         "return" to that it asks for the password again if it was wrong.
4993 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4995         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4996         typefind element.
4998 2006-05-30  James Livingston  <doclivingston@gmail.com>
5000         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5001         (download_progress_cb): don't do wonky things if the transfer
5002         "suceeds" without transferring any data.
5004 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5006         * sources/rb-library-source.c: (layout_example_label_update),
5007         (build_filename):  Fix crash when no audio profile is selected.
5008         Fixes #341447.
5010 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5012         * shell/rb-shell.c: (rb_shell_clear_queue):
5013         * shell/rb-shell.h:
5014         * shell/rb-shell.xml:
5015         * sources/rb-play-queue-source.c:
5016         (rb_play_queue_source_clear_queue),
5017         (rb_play_queue_source_cmd_clear):
5018         * sources/rb-play-queue-source.h:
5019         Add clearQueue dbus method.
5021 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5023         * shell/main.c: (main):  Implement --quit option.
5025 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5027         * rhythmdb/rhythmdb-private.h:
5028         * rhythmdb/rhythmdb-tree.h:
5029         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
5030         (rhythmdb_entry_insert), (rhythmdb_entry_set),
5031         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
5032         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
5033         (rhythmdb_entry_get_boolean):
5034         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
5035         bitmask, giving the db backend anything past the first 16 bits for 
5036         its own private use.
5038         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5039         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
5040         Add a 'loading' flag to indicate that an entry is being loaded from
5041         disk, and use that to ignore entry_set operations on such entries
5042         rather than the 'inserted' flag, which doesn't quite mean the same
5043         thing.  Fixes #342694.
5045 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5047         * shell/rb-shell.xml: Remove visibility property, since it causes
5048         crashes (dbus bug 7057) and doesn't do much else.
5050 2006-05-28  James Livingston  <doclivingston@gmail.com>
5052         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
5054         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5055         * po/POTFILES.in: fix some more i18n issues.
5057 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5059         * bindings/python/rb.defs:
5060         * shell/rb-shell-player.c: (rb_shell_player_playpause),
5061         (filter_mmkeys):
5062         * shell/rb-shell-player.h:
5063         Deprecate the useless 'ignore_stop' parameter to
5064         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
5065         API.  From bug #334829.
5067 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5069         * plugins/generic-player/rb-generic-player-source.c:
5070         (visit_playlist_dirs), (default_transform_playlist_uri):
5071         When playlist parsing fails, unref the playlist, not the parent
5072         source.  Fix memory leak in playlist uri transform.
5073         * plugins/generic-player/rb-nokia770-source.c:
5074         (impl_transform_playlist_uri):
5075         Fix memory leak in playlist uri transform.
5077 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
5079         * doc/reference/Makefile.am: fix grk-doc build
5081 2006-05-27  James Livingston  <doclivingston@gmail.com>
5083         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5085         * plugins/lyrics/lyrics.py:
5086         * po/POTFILES.in: Make strings in plugins translatable. From bug
5087         343081.
5089 2006-05-27  James Livingston  <doclivingston@gmail.com>
5091         * backends/Makefile.am:
5092         * backends/gstreamer/Makefile.am:
5093         * lib/Makefile.am:
5094         * plugins/audioscrobbler/Makefile.am:
5095         * plugins/generic-player/Makefile.am:
5096         * po/POTFILES.in:
5097         * rhythmdb/rhythmdb-monitor.c:
5098         * rhythmdb/rhythmdb.c:
5099         * sources/Makefile.am:
5100         * widgets/Makefile.am: fix compilation after some CVS surgery was
5101         done.
5103 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5105         * bindings/python/rhythmdb.defs:
5106         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
5107         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
5108         (rhythmdb_query_deserialize):
5109         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
5110         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
5111         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
5112         (rhythmdb_entry_register_type_alias),
5113         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
5114         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
5115         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
5116         (rhythmdb_entry_podcast_feed_get_type),
5117         (rhythmdb_entry_import_error_get_type),
5118         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
5119         * rhythmdb/rhythmdb.h:
5120         Allocate a specified amount of extra memory for each db entry, to be
5121         used to store fields specific to the entry type.  Optionally associate
5122         a name with each entry type, to be used when saving entries and
5123         auto playlists to disk.  Allow entry types to have multiple names
5124         to handle older playlist files that used '0' to represent 'song'.
5125         Use private data to store podcast fields.
5127         * rhythmdb/rhythmdb-private.h:
5128         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5129         (rhythmdb_tree_parser_end_element), (save_entry),
5130         (rhythmdb_tree_entry_set):
5131         Simplify property handling by using existing code to convert
5132         properties from strings to GValues and to set properties on entries.
5133         Other assorted changes due to the above.
5135         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5136         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
5137         * sources/rb-generic-player-source.c:
5138         (rb_generic_player_source_new):
5139         * sources/rb-ipod-source.c: (rb_ipod_source_new):
5140         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
5141         * sources/rb-psp-source.c: (rb_psp_source_new):
5142         Update for changes to rhythmdb_entry_register_type.  None of these
5143         entry types need names or use private data.
5145         Fixes #337429.
5147 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5149         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5150         Fix creation of ignored-file db entries - need to check for
5151         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
5153 2006-05-25  James Livingston  <doclivingston@gmail.com>
5155         * AUTHORS:
5156         * MAINTAINERS: update my email address
5158 2006-05-25  James Livingston  <doclivingston@gmail.com>
5160         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
5161         "(... mix)" when searching for lyrics. Cache the lyrics under
5162         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
5164 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5166         * sources/rb-import-errors-source.c:
5167         (rb_import_errors_source_class_init):
5168         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5169         * sources/rb-browser-source.c: (rb_browser_source_class_init):
5170         * sources/rb-source.c: (rb_source_class_init),
5171         (default_move_to_trash):
5172         Implement the basic move-to-trash operation once in rb-source.c, 
5173         rather than in each source type that supports it.
5175         * plugins/ipod/rb-ipod-plugin.c:
5176         * shell/rb-removable-media-manager.c:
5177         * shell/rb-shell.c: (rb_shell_constructor):
5178         Only scan removable media once after loading plugins.  Add a flag
5179         plugins can use to check if the initial scan has been done.
5181         * data/rhythmbox.schemas:
5182         Enable ipod and generic-player plugins by default.
5183         
5184         * configure.ac:
5185         * data/ui/Makefile.am:
5186         * data/ui/generic-player-ui.xml:
5187         * data/ui/rhythmbox-ui.xml:
5188         * plugins/Makefile.am:
5189         * plugins/generic-player/Makefile.am:
5190         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
5191         * plugins/generic-player/rb-generic-player-plugin.c:
5192         * sources/Makefile.am:
5193         * sources/rb-generic-player-source.c:
5194         * sources/rb-generic-player-source.h:
5195         * sources/rb-nokia770-source.c:
5196         * sources/rb-nokia770-source.h:
5197         * sources/rb-psp-source.c: (visit_playlist_dirs):
5198         * sources/rb-psp-source.h:
5199         Pluginise generic player (and nokia770 and PSP) support and add
5200         move-to-trash for players not mounted read-only.
5201         Fixes #342868.
5203 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5205         * daapsharing/rb-daap-connection.c (handle_song_listing):
5206         Lower bound check for batch commit.  Fixes #342848
5208         * sources/rb-daap-source.c (rb_daap_source_get_status):
5209         Always set output variables if provided.
5211 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5213         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
5214         (rhythmdb_tree_entry_delete), (remove_one_song):
5215         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
5216         Fix two db entry reference counting problems.
5217         The initial reference on the entry is held by the db backend, but it
5218         was never being dropped.  The reference count was incremented when
5219         adding an entry to the deleted_entries map and to the
5220         deleted_entries_to_emit list, but only decremented for one of those.
5222 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5224         * daapsharing/rb-daap-connection.c (http_response_handler) 
5225         (rb_daap_connection_dispose):
5226         Call soup_session_abort to make sure there are no outstanding
5227         requests when we dispose of the connection.  Ignore cancelled
5228         messages in the callback.
5230 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5232         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
5233         (rb_daap_source_disconnect): Set a flag when disconnecting
5234         the source.  Check this flag in connection callback
5235         to see if we should release the connection.
5237 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5239         * daapsharing/Makefile.am:
5240         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
5241         (rb_daap_connection_class_init), (connection_connected),
5242         (connection_disconnected), (connection_operation_done),
5243         (build_message), (connection_set_error_message),
5244         (actual_http_response_handler), (http_get),
5245         (entry_set_string_prop), (emit_progress_idle),
5246         (handle_server_info), (handle_login), (handle_update),
5247         (handle_database_info), (handle_song_listing), (handle_playlists),
5248         (handle_playlist_entries), (handle_logout),
5249         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5250         (connection_response_data_free), (connected_cb),
5251         (rb_daap_connection_connect), (disconnected_cb),
5252         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5253         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5254         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5255         (rb_daap_connection_get_property):
5256         * daapsharing/rb-daap-connection.h:
5257         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5258         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5259         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5260         (rb_daap_hash_generate):
5261         * daapsharing/rb-daap-hash.h:
5262         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5263         (rb_daap_get_icon), (remove_source), (stop_browsing),
5264         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5265         (connection_connecting_cb), (connection_disconnected_cb),
5266         (release_connection), (rb_daap_source_connection_cb),
5267         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5268         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5270         Adds a better async API for connect and disconnect.  Doesn't share
5271         callback data for every async call.  Adds a connect signal.  Uses
5272         an operation-done signal to trigger the callbacks.  Displays an
5273         error when connections fail.  A few refcounting fixes to fix
5274         crashes.  Uses a weak pointer to set the connection to NULL so we
5275         don't clobber references.  Wait for each disconnect when shutting
5276         down sources.  Split out DAAP hash stuff into its own file.  Fix
5277         typo in header.
5279         Fixes #342643
5280         
5281 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5283         * sources/rb-auto-playlist-source.c:
5284         (rb_auto_playlist_source_new_from_xml):
5285         Initialize the gvalue used to hold the size limit correctly.
5286         Fixes #342744.
5288 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5290         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5291         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5292         * shell/rb-shell.h:
5293         * shell/rb-shell.xml:
5294         Convert rb_shell_quit into a dbus method, and add visibility dbus
5295         property.
5297 2006-05-22  James Livingston  <doclivingston@gmail.com>
5299         * rhythmdb/rhythmdb.h:
5300         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5301         (rhythmdb_entry_is_editable), (action_thread_main),
5302         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5303         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5304         false, and syncing into the file.
5306         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5307         (rhythmdb_entry_iradio_get_type),
5308         (rhythmdb_entry_import_error_get_type):
5309         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5310         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5311         change the DB.
5313 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5315         * rhythmdb/Makefile.am:
5316         * rhythmdb/rhythmdb-monitor.c:
5317         * rhythmdb/rhythmdb-private.h:
5318         * rhythmdb/rhythmdb-query.c:
5319         * rhythmdb/rhythmdb.c:
5320         Split up rhythmdb.c a bit.
5322 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5324         * data/glade/audioscrobbler-prefs.glade:
5325         Add a link to the last.fm server status page.
5327 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5329         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5330         Capitalization fix.
5331         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5332         (impl_create_configure_dialog):  UI layout fixes, remove
5333         dialog separator, and capitalization fix for window title.
5334         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5335         and remove dialog separator.
5336         * data/glade/plugins.glade:  UI layout fixes.
5337         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5338         and capitalization fix.  Fixes #342438.
5340 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5342         * data/glade/podcast-properties.glade:  Fix layout of the download 
5343         location.  Fixes #342431.
5345 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5347         * data/ui/rhythmbox-ui.xml:
5348         We only need one copy of the 'add to queue' action in the edit menu.
5350 2006-05-20  James Livingston  <doclivingston@gmail.com>
5352         * data/ui/rhythmbox-ui.xml:
5353         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5354         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5355         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5356         (rb_shell_clipboard_sync),
5357         (rb_shell_clipboard_cmd_add_to_playlist_new),
5358         (rb_shell_clipboard_cmd_queue_song_info),
5359         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5360         (rb_shell_clipboard_playlist_deleted_cb),
5361         (rb_shell_clipboard_playlist_renamed_cb),
5362         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5363         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5364         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5365         dynamically generated with all the static playlists. Fixes bug 323364.
5367         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5368         right child, so it doesn't go weird when art appears and disappears.
5370 2006-05-20  James Livingston  <doclivingston@gmail.com>
5372         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5374         * rhythmdb/rhythmdb-query-model.c:
5375         (rhythmdb_query_model_set_property),
5376         (rhythmdb_query_model_finalize),
5377         (rhythmdb_query_model_reapply_query_cb):
5378         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5379         (rhythmdb_query_append_prop_multiple),
5380         (rhythmdb_query_is_time_relative):
5381         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5382         time-based criteria, fixes bug 341131.
5384 2006-05-20  James Livingston  <doclivingston@gmail.com>
5386         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5387         we have already changed playing entries. Interpolate the art size so
5388         it doesn't jump when the old and new images have different aspect
5389         ratios.
5391 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5393         * rhythmdb/rhythmdb-private.h:
5394         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5395         (save_entry):
5396         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5397         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5398         (rhythmdb_entry_get_ulong):
5399         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5400         and elsewhere, use them on the stack rather than allocating on 
5401         the heap.  From bug #342333.
5403 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5405         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5406         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5407         (add_track), (eos_cb), (error_signal_idle),
5408         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5409         (rb_recorder_construct), (recorder_track_free),
5410         (rb_recorder_finalize):
5411         * sources/rb-playlist-source-recorder.c:
5412         Support libnautilus-burn size -> capacity API change.  Add
5413         some braces to blocks.
5415 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5417         * metadata/sj-metadata-musicbrainz.c:
5418         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5419         Sync with sound-juicer in CVS.  Fixes #342177
5420         * sources/rb-audiocd-source.c: Don't declare variables
5421         in the middle of a block (c99ism).  Fix order of #includes.
5422         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5423         one variable per line.  Update copyright date.
5425 2006-05-19  James Livingston  <doclivingston@gmail.com>
5427         patch by: Hendrik Richter  <hendi@gnome-de.org>
5429         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5430         "translator_credits" to a hyphen, so it doesn't cause problems for
5431         tools that check access keys. Fixes bug 341832.
5433 2006-05-19  James Livingston  <doclivingston@gmail.com>
5435         * po/POTFILES.in: remove references to files that don't exist any more
5436         (fixes make distcheck).
5438 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5440         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5441         Song Lyrics dialog. Fixes bug 342322.
5443 2006-05-19  James Livingston  <doclivingston@gmail.com>
5445         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5447         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5448         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5449         version checks not break when libnotify goes to 1.0.0. Fixes bug
5450         342244.
5452 2006-05-18  James Livingston  <doclivingston@gmail.com>
5454         * shell/rb-shell-clipboard.c:
5455         * shell/rb-shell.c:
5456         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5458 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5460         * sources/rb-playlist-source-recorder.c (get_song_description):
5461         Reverse artist and title in song description.  This
5462         is useful because at least the title will be visible
5463         when there is limited space.
5465 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5467         * daapsharing/rb-daap-connection.c: (connection_get_password):
5468         Take gdk lock before emitting authenticate signal.
5469         * sources/rb-daap-source.c: (connection_connecting_cb):
5470         Get rid of the unnecessary idle handler (it's already called from one)
5471         Fixes #342047 once more.
5473 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5475         * shell/rb-shell.c: (rb_shell_class_init):
5476         * shell/rb-shell.h:
5477         * widgets/rb-song-info.c: (rb_song_info_class_init),
5478         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5479         (rb_song_info_constructor), (rb_song_info_get_property),
5480         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5481         (rb_song_info_forward_clicked_cb):
5482         * widgets/rb-song-info.h:
5483         * data/glade/song-info-multiple.glade:
5484         * lib/rb-marshal.list:
5485         * bindings/python/Makefile.am:
5486         * bindings/python/rb.defs:
5487         * bindings/python/rb.override:
5488         Allow plugins to add pages to the notebooks used in song info windows,
5489         and to track the current song displayed in single-entry windows.
5490         
5491         * configure.ac:
5492         * plugins/Makefile.am:
5493         * plugins/lyrics/Loader.py:
5494         * plugins/lyrics/Makefile.am:
5495         * plugins/lyrics/lyrics.py:
5496         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5497         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5498         as a separate window (for the playing song) or as a page in the song
5499         info window.  A few TODO items left, but this fixes #319320.
5501 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5503         Patch by:  Roozbeh Pournader
5505         * configure.ac:
5506         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5507         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5509 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5510         
5511         * sources/rb-daap-source.c: (update_connection_status):
5512         Correct return value.  Fixes #342047 again.
5514 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5516         * sources/rb-daap-source.c: (update_connection_status),
5517         (connection_connecting_cb):
5518         Update status in an idle handler so we don't rely on the gdk lock
5519         being recursive (because it isn't any more).  Fixes #342047.
5521 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5523         * lib/rb-util.c: (rb_make_duration_string),
5524         (rb_make_elapsed_time_string):
5525         * lib/rb-util.h:
5526         Add a function for formatting an elapsed time string.
5528         * shell/rb-shell-player.c: (rb_shell_player_init),
5529         (rb_shell_player_sync_with_source),
5530         (rb_shell_player_get_playing_time_string), (tick_cb):
5531         Store elapsed time in the private data structure, and use the above
5532         function.
5533         
5534         * widgets/rb-header.c:
5535         * widgets/rb-header.h:
5536         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5537         object, so everything has the same idea of the elapsed time.
5538         Fixes #339693.
5540 2006-05-16  James Livingston  <doclivingston@gmail.com>
5542         * bindings/python/rhythmdb.defs:
5543         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5544         some parametre defaults, so you don't have to pass None, False for the
5545         sorting order.
5547 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5549         * bindings/python/rhythmdb.defs:
5550         * rhythmdb/rhythmdb-query-model.c:
5551         (rhythmdb_query_model_compute_status_normal):
5552         * rhythmdb/rhythmdb-query-model.h:
5553         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5554         * rhythmdb/rhythmdb.h:
5555         Change the various compute_status methods to accept a singular/plural
5556         pair to use in the status string.
5557         
5558         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5559         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5560         * sources/rb-source.c: (default_get_status):
5561         Call entries 'songs' by default, and 'episodes' in the podcast source.
5562         Fixes #340227.
5564 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5566         patch by:  Paul Drain
5568         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5569         Fixes #341817.
5571 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5573         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5574         Generate reorder maps correctly.
5575         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5576         Scroll to the first entry from the old selection.
5577         Fixes #322992.
5579 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5581         * data/ui/rhythmbox-ui.xml:
5582         * lib/rb-preferences.h:
5583         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5584         (rb_shell_playlist_created_cb),
5585         (rb_shell_view_sidepane_changed_cb),
5586         (rb_shell_sync_sidepane_visibility),
5587         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5588         (sidepane_visibility_changed_cb):
5589         * sources/rb-podcast-source.c:
5590         Convert sourcelist visibility to side-pane visbility.
5591         Fixes #339733
5593 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5595         * widgets/rb-header.c:
5596         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5597         'player', and make it use the private data structure allocated for it.
5599 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5601         * configure.ac: enable metadata helper with dbus < 0.35.
5603 2006-05-15  James Livingston  <doclivingston@gmail.com>
5605         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5607         * data/glade/song-info.glade:
5608         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5609         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5610         (rb_song_info_update_filesize): Add the file size into the song info
5611         window. Fixes bug 340861.
5613 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5615         * bindings/python/rhythmdb.defs:
5616         * rhythmdb/rhythmdb-query-model.c:
5617         (rhythmdb_query_model_set_property),
5618         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5619         * rhythmdb/rhythmdb-query-model.h:
5620         Add a new method to chain query models without importing entries from
5621         the parent into the child.  This is useful when the subset of entries
5622         in the child can be more easily determined by running a query than by
5623         filtering entries from the parent.
5625         * bindings/python/rb.defs:
5626         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5627         (rb_library_browser_set_property),
5628         (rb_library_browser_get_property), (rb_library_browser_new),
5629         (rebuild_child_model):
5630         * widgets/rb-library-browser.h:
5631         * sources/rb-auto-playlist-source.c:
5632         (rb_auto_playlist_source_constructor):
5633         * sources/rb-static-playlist-source.c:
5634         (rb_static_playlist_source_constructor):
5635         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5636         Use more efficient queries for constructing the browser query model
5637         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5638         backend to optimise the query) and run new queries rather than
5639         filtering entries from the parent.  Fixes #341402.
5641         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5643 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5645         * configure.ac:
5646         * shell/Makefile.am:
5647         * shell/main.c: (main), (load_uri_args), (send_present_message),
5648         (unregister_dbus_handler), (handle_dbus_message),
5649         (register_dbus_handler):
5650         Add minimal support for dbus 0.31 - 0.35.
5652         * doc/reference/Makefile.am:
5653         * doc/reference/rhythmbox.types:
5654         * data/Makefile.am:
5655         * data/GNOME_Rhythmbox.server.in:
5656         * data/rhythmbox.pc.in:
5657         * remote/*:
5658         * remote/bonobo/*:
5659         Remove remaining bonobo and generic remote interface files.
5661 2006-05-14  James Livingston  <doclivingston@gmail.com>
5663         * shell/rb-shell.c: (construct_widgets):
5664         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5665         resize the browser and queue-sidebar section of their panes, unless
5666         the other section is below the minimum size. Fixes bug 331927.
5668 2006-05-13  James Livingston  <doclivingston@gmail.com>
5670         * rhythmdb/rhythmdb-query-model.c:
5671         (rhythmdb_query_model_class_init),
5672         (rhythmdb_query_model_set_property),
5673         (rhythmdb_query_model_get_property),
5674         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5675         (rhythmdb_query_model_insert_into_main_list),
5676         (rhythmdb_query_model_insert_into_limited_list),
5677         (rhythmdb_query_model_do_reorder),
5678         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5679         (rhythmdb_query_model_location_sort_func),
5680         (rhythmdb_query_model_title_sort_func),
5681         (rhythmdb_query_model_album_sort_func),
5682         (rhythmdb_query_model_artist_sort_func),
5683         (rhythmdb_query_model_genre_sort_func),
5684         (rhythmdb_query_model_track_sort_func),
5685         (rhythmdb_query_model_double_ceiling_sort_func),
5686         (rhythmdb_query_model_ulong_sort_func),
5687         (rhythmdb_query_model_date_sort_func),
5688         (rhythmdb_query_model_string_sort_func):
5689         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5690         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5691         "data destroy" property. Fixed bug 341543.
5693         * bindings/python/rhythmdb.defs:
5694         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5695         rhythmdb_query_model_set_sorting_order
5697         * rhythmdb/rhythmdb-property-model.c:
5698         (rhythmdb_property_model_drag_data_get):
5699         * sources/rb-import-errors-source.c:
5700         (rb_import_errors_source_constructor):
5701         * sources/rb-missing-files-source.c:
5702         (rb_missing_files_source_constructor):
5703         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5704         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5705         * widgets/rb-entry-view.h: adapt to the above change.
5707 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5709         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5710         (rhythmdb_tree_load):
5711         Commit loaded entries in batches, rather than individually.  
5712         More startup time reduction.
5714 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5716         * doc/reference/Makefile.am: fix gtk-doc compilation
5718 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5720         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5721         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5722         * plugins/artdisplay/artdisplay/Loader.py:
5723         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5724         Only call the first artist the best match when album==Unknown.
5725         Don't perform each query twice if album doesn't include "Vol N".
5726         Fix searching for compilations.  Fix blacklisting.
5727         Part of bug #307848
5729 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5731         * Makefile.am:
5732         * bindings/python/Makefile.am:
5733         * bindings/python/rb.defs:
5734         * bindings/python/rb.override:
5735         * configure.ac:
5736         * doc/reference/Makefile.am:
5737         * plugins/Makefile.am:
5738         * plugins/audioscrobbler/Makefile.am:
5739         * plugins/ipod/Makefile.am:
5740         * plugins/lirc/Makefile.am:
5741         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5742         (impl_activate), (impl_deactivate):
5743         * plugins/sample/Makefile.am:
5744         * remote/Makefile.am:
5745         * shell/Makefile.am:
5746         * shell/main.c: (main), (main_shell_weak_ref_cb):
5747         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5748         (rb_shell_get_property), (rb_shell_window_state_cb),
5749         (idle_hide_mainwindow), (rb_shell_set_visibility),
5750         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5751         (rb_shell_set_song_property):
5752         * shell/rb-shell.h:
5753         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5754         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5755         (rb_tray_icon_get_property), (rb_tray_icon_new),
5756         (rb_tray_icon_button_press_event_cb),
5757         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5758         (rb_tray_icon_show_window_changed_cb):
5759         * shell/rb-tray-icon.h:
5761         Remove bonobo, require DBUS.
5762         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5763         Fixes #339720
5765 2006-05-13  James Livingston  <doclivingston@gmail.com>
5767         * bindings/python/rb.override: fix some pointer-type warnings
5769 2006-05-12  James Livingston  <doclivingston@gmail.com>
5771         * lib/rb-util.c: (rb_value_free):
5772         * lib/rb-util.h: Add function to unset and free a GValue* that was
5773         allocated in the heap.
5775         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5776         the metadata hastable values
5777         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5778         leak the metadata hashtable structure
5779         * metadata/rb-metadata-dbus.c:
5780         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5781         using g_strdup and then _take_string
5783         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5784         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5785         stat something.
5787         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5788         leak the encoded string
5790         * widgets/rb-property-view.c:
5791         (rb_property_view_selection_changed_cb): set some variables to have
5792         inital values, because some code paths may not set them before we use
5793         them.
5795         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5796         don't have python warning into a debug message".
5798 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5800         * data/rhythmbox.schemas: Use zero instead of null for
5801         default burn speed.  Fixes #341283.
5803 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5805         * bindings/python/rb.defs:
5806         * widgets/rb-library-browser.c:
5807         (rb_library_browser_get_property_view):
5808         * widgets/rb-library-browser.h:
5809         Add a method to get the property view for a given property.
5811         * sources/rb-browser-source.c:
5812         (rb_browser_source_cmd_choose_genre),
5813         (rb_browser_source_cmd_choose_artist),
5814         (rb_browser_source_cmd_choose_album):
5815         Change the browser selection by changing the property view selection. 
5816         Makes the selection change visible, fixing #331740.
5818 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5820         * bindings/python/rb.defs:
5821         * bindings/python/rb.override:
5822         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5823         * shell/rb-statusbar.c: (*),
5824         * sources/rb-import-errors-source.c: (impl_get_status):
5825         * sources/rb-iradio-source.c: (impl_get_status):
5826         * sources/rb-missing-files-source.c: (impl_get_status):
5827         * sources/rb-source.c: (default_get_status),
5828         (rb_source_get_status):
5829         * sources/rb-source.h:
5830         Allow sources to provide a progress value for the status bar.
5831         Simplify status bar processing (much less polling).
5832         Consider rhythmdb busy while it's still loading the database.
5834         * daapsharing/rb-daap-connection.c: (*)
5835         * daapsharing/rb-daap-connection.h:
5836         * lib/rb-marshal.list:
5837         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5838         (rb_daap_source_init), (connection_connecting_cb),
5839         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5840         (rb_daap_source_get_status):
5841         Provide status information for DAAP connections, and move processing
5842         of large responses into a separate thread.
5843         Fixes bugs #322020 and #338978.
5845 2006-05-09  James Livingston  <doclivingston@gmail.com>
5847         Split the artdisplay plugin into several files.
5848         Fix loader and amazon-search re-use issues.
5849         Add some better search heuristics.
5851         * configure.ac:
5852         * plugins/artdisplay/Makefile.am:
5853         * plugins/artdisplay/artdisplay.py:
5854         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5855         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5856         * plugins/artdisplay/artdisplay/Loader.py:
5857         * plugins/artdisplay/artdisplay/Makefile.am:
5858         * plugins/artdisplay/artdisplay/__init__.py:
5860 2006-05-09  James Livingston  <doclivingston@gmail.com>
5862         * sources/rb-browser-source.h: remove the _has_first_added_column
5863         stuff since it isn't actually used anywhere. Sources that want it
5864         should just add it themselves, as the library already does
5866         * bindings/python/rb.defs:
5867         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5868         * sources/rb-library-source.c: (rb_library_source_class_init):
5869         * sources/rb-removable-media-source.c:
5870         (rb_removable_media_source_class_init): Remove the remanants of the
5871         above.
5873 2006-05-09  James Livingston  <doclivingston@gmail.com>
5875         * bindings/python/rb.defs:
5876         * sources/rb-browser-source.h: remove a function that was declared in
5877         the header, but not defined anywhere.
5879 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5881         * plugins/artdisplay/.cvsignore:
5882         * plugins/ipod/.cvsignore: Added.
5884 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5886         * sources/rb-auto-playlist-source.c:
5887         (rb_auto_playlist_source_new_from_xml):
5888         Fix reading of older playlist files where all three limits were
5889         specified so we take the first nonzero limit.  From #341053.
5891 2006-05-09  James Livingston  <doclivingston@gmail.com>
5893         * bindings/python/Makefile.am:
5894         * bindings/python/rb.defs:
5895         * bindings/python/rb.override: bind RBBrowserSource,
5896         RBRemovableMediaSource and RBRemovableMediamanager.
5898 2006-05-09  James Livingston  <doclivingston@gmail.com>
5900         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5902         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5903         Fixes bug 339221.
5905 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5907         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5908         Don't explode when trying to edit a query with no limit set.
5910 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5912         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5913         Clear the should_queue flag when switching to a non-submittable entry,
5914         so we don't submit songs that played for three seconds before
5915         switching to a podcast episode.
5917         * rhythmdb/rhythmdb-query-model.c
5918         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5919         in the drag data list.
5921 2006-05-08  James Livingston  <doclivingston@gmail.com>
5923         * lib/rb-util.c: (rb_value_array_append_data):
5924         * lib/rb-util.h: add function which is basically a combination of
5925         G_VALUE_COLLECT and g_value_array_append.
5927         * rhythmdb/rhythmdb-query-model.h:
5928         * rhythmdb/rhythmdb-query-model.c:
5929         (rhythmdb_query_model_class_init),
5930         (rhythmdb_query_model_set_property),
5931         (rhythmdb_query_model_get_property),
5932         (rhythmdb_query_model_finalize),
5933         (rhythmdb_query_model_update_limited_entries),
5934         (rhythmdb_query_model_set_sort_order),
5935         (rhythmdb_query_model_within_limit),
5936         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5937         saner. Rather than having <count=N, time=N, size=N> we now have a
5938         <type, value> pair. This will also make it much easier to add new
5939         limit types in the future.
5941         * shell/rb-playlist-manager.c:
5942         (rb_playlist_manager_set_automatic_playlist),
5943         (rb_playlist_manager_cmd_edit_automatic_playlist):
5944         * sources/rb-auto-playlist-source.c:
5945         (rb_auto_playlist_source_finalize),
5946         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5947         (_save_write_ulong), (_save_write_uint64),
5948         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5949         (rb_auto_playlist_source_set_query),
5950         (rb_auto_playlist_source_get_query):
5951         * sources/rb-auto-playlist-source.h:
5952         * sources/rb-library-source.c:
5953         (rb_library_source_add_child_source):
5954         * sources/rb-psp-source.c: (visit_playlist_dirs):
5955         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5956         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5957         * widgets/rb-query-creator.h: Adapt to the above change.
5959 2006-05-08  James Livingston  <doclivingston@gmail.com>
5961         * shell/rb-playlist-manager.c:
5962         (rb_playlist_manager_cmd_edit_automatic_playlist):
5963         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5964         (rb_auto_playlist_source_set_query),
5965         (rb_auto_playlist_source_get_query): copy the query in the _get method
5966         and free it in things calling that. Fixes a crasher.
5968 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5970         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5971         Make entries on newly mounted volumes visible immediately, hiding them
5972         later if they turn out to be missing.  Fixes #340068.
5974 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5976         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5977         Ignore zip files and ignore errors for files we've decided to ignore.
5979 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5981         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5982         Add missing }, should fix #340844.
5984 2006-05-06  James Livingston  <doclivingston@gmail.com>
5986         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5987         typo.
5989 2006-05-06  James Livingston  <doclivingston@gmail.com>
5991         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5992         that we work with libnotify >= 0.4
5994 2006-05-06  James Livingston  <doclivingston@gmail.com>
5996         patch by: Joe Barnett  <thejoe@gmail.com>
5998         * configure.ac: check if we're using a version of libgpod that
5999         supports the Motorola ROKR
6001         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
6002         for the db path, if we using the newer version.
6004         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
6006 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6008         * rhythmdb/rhythmdb-query-model.c:
6009         (rhythmdb_query_model_drag_data_get):
6010         Use playback URI, not location, for drag data.  Fixes #322597.
6012 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
6014         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
6016 2006-05-03  James Livingston  <doclivingston@gmail.com>
6018         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
6019         (rb_add_id3_tagger), (rb_metadata_save):
6020         Set the tags on the tagging element when it is
6021         created, not during pipeline creation - which is required for
6022         dynamically created elements.
6024         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
6025         support for using the "vorbistag" element to re-tag ogg vorbis files.
6026         Fixes bug 339878.
6028 2006-05-03  James Livingston  <doclivingston@gmail.com>
6030         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
6032         * plugins/artdisplay/artdisplay.py:
6033         - Fix small bug callback of data loader getting overwritten on fast
6034         connections.
6035         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
6036         Jonathan Matthew)
6037         - Fix Rhythmbox UI blocking while loading/searching cover art
6038         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
6039         - Initial approach to allow additional "art search engines"
6040         - Further modularization in a couple of places
6041         - Minor fixes for empty entries (iradio, album, artist etc.)
6043 2006-05-03  James Livingston  <doclivingston@gmail.com>
6045         * shell/rb-playlist-manager.c:
6046         (rb_playlist_manager_playlist_entries_changed),
6047         (rb_playlist_manager_set_source): don't show the edit/delete/rename
6048         options for non-local sources, rather than showing disabled ones.
6050         * sources/rb-library-source.c: (add_child_sources_idle),
6051         (rb_library_source_constructor), (rb_library_source_new),
6052         (rb_library_source_library_location_changed),
6053         (rb_library_source_add_child_source),
6054         (rb_library_source_sync_child_sources): Create "child library" sources
6055         when the user has multiple library locations set. Fixes bug 100552.
6057 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6059         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
6060         * plugins/sample/sample.rb-plugin.desktop.in:
6061         Finish changing 'Author' to 'Authors'
6062         
6063         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
6064         (rhythmdb_entry_import_error_get_type):
6065         Implement get_playback_uri for import errors (returns NULL)
6067         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6068         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
6069         entry, rather than doing entry type checks.
6071 2006-05-02  James Livingston  <doclivingston@gmail.com>
6073         patch from Alessandro Decina  <alessandro@nnva.org>
6075         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
6076         the signal emission in the case of fatal-on-init errors. From bug
6077         322268.
6079 2006-05-02  James Livingston  <doclivingston@gmail.com>
6081         * rhythmdb/rhythmdb.h:
6082         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
6083         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
6084         (rhythmdb_entry_podcast_post_get_type),
6085         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
6086         virtual function to entry-types for getting the playback URI. From bug
6087         330226.
6089         * backends/gstreamer/rb-encoder-gst.c:
6090         (create_pipeline_and_source), (extract_track):
6091         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
6092         to get the URI.
6094 2006-05-02  James Livingston  <doclivingston@gmail.com>
6096         patch by: Brian Cameron  <brian.cameron@sun.com>
6098         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
6099         340337.
6101 2006-05-01  William Jon McCann  <mccann@jhu.edu>
6103         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
6104         instead of clear.  Use regex matching to strip "disc N"
6105         from album.  Match titles in ProductName.  Perform
6106         fallback queries including various artist compilations.
6107         Include "us" locale.  Improve queries when artist or album
6108         is unknown.  Use medium size image if large is unavailable.
6110         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
6111         William Jon McCann  <mccann@jhu.edu>
6112         
6113 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6115         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
6116         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
6117         (conjunctive_query): Sanity check.
6118         (evaluate_conjunctive_subquery): 
6119         Don't return TRUE immediately when a relative-time query criterion
6120         matches.  Fixes #339972.
6122 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6124         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6125         Don't crash if primary or secondary are NULL.
6127 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6129         * doc/reference/Makefile.am: fix gtk-doc build yet again
6131 2006-04-28  James Livingston  <doclivingston@gmail.com>
6133         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
6134         python console. Fixes bug 339934.
6136 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6138         * rhythmdb/rhythmdb-property-model.c:
6139         (rhythmdb_property_model_drag_data_get):
6140         When creating uri list drag data, create a new query model based on
6141         the query model the property model is attached to.  Makes the
6142         resulting query use the right entry type and include the upstream
6143         query criteria.  Fixes half of #327540.
6145 2006-04-27  James Livingston  <doclivingston@gmail.com>
6147         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
6148         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
6149         build fixes.
6151 2006-04-27  James Livingston  <doclivingston@gmail.com>
6153         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
6155 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6157         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
6158         (rb_playlist_manager_save_data),
6159         (rb_playlist_manager_save_playlists):
6160         * shell/rb-playlist-manager.h:
6161         * shell/rb-shell.c: (rb_shell_sync_state),
6162         (idle_save_playlist_manager):
6163         Remove a bit more threading insanity from the playlist manager.
6165 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6167         * shell/rb-playlist-manager.c: 
6168         * shell/rb-playlist-manager.h:
6169         Remove dead code, add gtk-doc, remove threading insanity (mostly).
6170         
6171         * shell/rb-shell.c: (rb_shell_sync_state),
6172         (idle_save_playlist_manager), (construct_sources),
6173         (rb_shell_select_source), (rb_shell_sync_party_mode):
6174         Adjustments for above changes.
6176 2006-04-26  William Jon McCann  <mccann@jhu.edu>
6178         * sources/rb-browser-source.c (impl_browser_toggled):
6179         Reset browser when hidden.  Fixes #339617.
6181 2006-04-26  James Livingston  <doclivingston@gmail.com>
6183         * backends/Makefile.am:
6184         * backends/gstreamer/Makefile.am: work again with separated
6185         built-roots
6187 2006-04-26  James Livingston  <doclivingston@gmail.com>
6189         * shell/rb-removable-media-manager.c:
6190         (rb_removable_media_manager_set_uimanager): fix compilation with
6191         -Werror and --enable-track-transfer.
6193 2006-04-26  James Livingston  <doclivingston@gmail.com>
6195         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
6196         implementing class. In theory allows alternate player implementations
6197         to be selected at run-time rather than compile-time. Fixes bug 338667.
6199         * Makefile.am:
6200         * backends/Makefile.am:
6201         * backends/gstreamer/Makefile.am:
6202         * backends/gstreamer/rb-player-gst.h:
6203         * backends/rb-player.c: (rb_player_interface_init),
6204         (rb_player_get_type), (rb_player_open), (rb_player_opened),
6205         (rb_player_close), (rb_player_play), (rb_player_pause),
6206         (rb_player_playing), (rb_player_set_volume),
6207         (rb_player_get_volume), (rb_player_set_replaygain),
6208         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
6209         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
6210         (_rb_player_emit_buffering), (_rb_player_emit_error),
6211         (_rb_player_emit_tick), (rb_player_error_quark):
6212         * player/Makefile.am:
6213         * player/rb-player-gst.c: (rb_player_gst_class_init),
6214         (rb_player_init), (tick_timeout), (rb_player_gst_init),
6215         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
6216         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
6217         (process_tag), (found_tag_cb), (buffering_cb),
6218         (rb_player_gst_bus_cb), (rb_player_gst_construct),
6219         (rb_player_gst_new):
6220         * player/rb-player.h:
6221         * shell/Makefile.am:
6222         * sources/rb-audiocd-source.c:
6223         * widgets/Makefile.am:
6224         * widgets/rb-header.c: (rb_header_class_init):
6226 2006-04-26  James Livingston  <doclivingston@gmail.com>
6228         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6229         don't try to download an episode if it couldn't be parsed. Fixes bug
6230         339712.
6232         * shell/rb-removable-media-manager.c:
6233         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
6234         Library" option when track transfer is disabled. Fixes bug 339728.
6236 2006-04-26  James Livingston  <doclivingston@gmail.com>
6238         * data/ui/Makefile.am:
6239         * data/ui/daap-ui.xml:
6240         * data/ui/rhythmbox-ui.xml:
6241         * sources/rb-daap-source.c: (rb_daap_sources_init),
6242         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
6243         way that the ipod ui is. Fixes bug 339743.
6245 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6247         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
6248         (process_added_entries_cb), (process_deleted_entries_cb),
6249         (rhythmdb_commit_internal): 
6250         Combine the idle functions to emit entry-added and entry-deleted,
6251         and combine as many invocations of same as possible.  Another
6252         significant reduction in startup time.
6253         
6254         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6255         Delay the next call to rhythmdb_process_events if the queue is
6256         empty or if we can't process any of the events in the queue because
6257         the database is read only.
6259         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6261 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6263         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6265         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6266         Don't special case errors quite so much.
6268 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6270         * data/rhythmbox.schemas: Remove default speed.
6272         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6273         Add n-c-b 2.15 support.  Make the default speed to slowest since
6274         that is all that works reliably.
6276 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6278         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6279         Fix compiler error from last commit.
6281 2006-04-25  James Livingston  <doclivingston@gmail.com>
6283         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6284         transcoding-related issues. From bug 322268.
6286         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6287         don't emit the signal, since the object is being finalised, which os a
6288         Bad Thing To Do.
6290         (profile_bin_find_encoder), (get_profile_from_mime_type),
6291         (transcode_track): find the encoding element by iterating looking for
6292         element in the class Codec/Encoder/Audio rather than the one named
6293         "enc".
6295 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6297         * shell/rb-shell-player.xml:
6298         * shell/rb-shell.xml:
6299         Add signal argument information.  
6300         Patch by Tim Moloney  <t.moloney@verizon.net>
6302         * shell/rb-shell.c: (rb_shell_window_state_cb):
6303         Use the right value for the visibility_changed signal.  Most of the
6304         time, anyway.
6306 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6308         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6309         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6310         (impl_create_configure_dialog):
6311         * data/glade/audioscrobbler-prefs.glade:
6312         * shell/rb-audioscrobbler.c (*):
6313         * lib/rb-preferences.h:
6314         * data/rhythmbox.schemas:
6315         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6316         Add status information (# tracks submitted, # queued, last submit
6317         time, result of last submission) to the plugin config window.
6318         Remove 'enabled' setting, since it's easier to just disable the
6319         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6320         nonexistant (so far) 'last.fm streaming' plugin.
6321         
6322         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6323         plugin
6325         Fixes some of #325848.  We still don't provide a way to view the
6326         submission queue.
6328 2006-04-25  James Livingston  <doclivingston@gmail.com>
6330         patch by: Anders Petersson  <demitar@worldforge.org>
6332         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6333         the YY-MM-DD format.
6335 2006-04-23  James Livingston  <doclivingston@gmail.com>
6337         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6338         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6339         * bindings/python/override_common.h:
6340         * bindings/python/rb.override: python binding fixes
6342 2006-04-23  James Livingston  <doclivingston@gmail.com>
6344         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6345         (rb_statusbar_sync_with_source),
6346         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6347         callback, rather than immediately every time. Takes ~5% off my warm-cache
6348         startup time.
6350         * bindings/python/rhythmdb.defs: fix the types using for
6351         RhythmDBEntryTypes.
6353 2006-04-22  James Livingston  <doclivingston@gmail.com>
6355         * data/ui/rhythmbox-ui.xml:
6356         * shell/rb-shell.c:
6357         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6358         (remove_source), (rb_daap_sources_init),
6359         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6360         (rb_daap_source_disconnect):
6361         * sources/rb-source.c: (rb_source_class_init),
6362         (rb_source_deactivate):
6363         * sources/rb-source.h: move the "disconnect" functionality from into
6364         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6366 2006-04-22  James Livingston  <doclivingston@gmail.com>
6368         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6369         actually get the translated strings for browser headers (they were
6370         already marked as translatable). Fixes bug 339380.
6372 2006-04-22  James Livingston  <doclivingston@gmail.com>
6374         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6375         submission timeout when the object is finalised.
6377         * bindings/python/Makefile.am:
6378         * bindings/python/rb.defs:
6379         * bindings/python/rb.override:
6380         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6382         * widgets/rb-library-browser.c:
6383         (rb_library_browser_construct_query), (rebuild_output_model),
6384         (rebuild_child_model):
6385         * widgets/rb-library-browser.h: change from GPtrArray to
6386         RhythmDBQuery (which in C is the same thing).
6388 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6390         * shell/rb-shell.c: (rb_shell_get_song_properties):
6391         Don't try to include entry-type (or anything else not easily
6392         marshallable) in the song properties hash table.
6394         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6396         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6397         (rb_playlist_source_constructor): Fix entry-type initialization as
6398         with previous commit.
6400 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6402         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6403         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6404         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6405         (rb_podcast_source_constructor):
6406         Set default values for entry-type after base class construction,
6407         rather than in _init, because gobject will set the entry-type property
6408         to NULL after _init if no value is provided.  Fixes #339206.
6410 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6412         patch by: Gunnar Steinn Magnusson
6414         * COPYING:
6415         * backends/gstreamer/rb-encoder-gst.c:
6416         * backends/gstreamer/rb-encoder-gst.h:
6417         * backends/rb-encoder.c:
6418         * backends/rb-encoder.h:
6419         * bindings/python/override_common.c:
6420         * bindings/python/override_common.h:
6421         * daapsharing/rb-daap-connection.c:
6422         * daapsharing/rb-daap-connection.h:
6423         * daapsharing/rb-daap-dialog.c:
6424         * daapsharing/rb-daap-dialog.h:
6425         * daapsharing/rb-daap-mdns-browser-avahi.c:
6426         * daapsharing/rb-daap-mdns-browser-howl.c:
6427         * daapsharing/rb-daap-mdns-browser.h:
6428         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6429         * daapsharing/rb-daap-mdns-publisher-howl.c:
6430         * daapsharing/rb-daap-mdns-publisher.h:
6431         * daapsharing/rb-daap-share.c:
6432         * daapsharing/rb-daap-share.h:
6433         * daapsharing/rb-daap-sharing.c:
6434         * daapsharing/rb-daap-sharing.h:
6435         * daapsharing/rb-daap-src.c:
6436         * daapsharing/rb-daap-src.h:
6437         * daapsharing/rb-daap-structure.c:
6438         * daapsharing/rb-daap-structure.h:
6439         * help/C/fdl-appendix.xml:
6440         * help/es/es.po:
6441         * help/ja/fdl-appendix.xml:
6442         * iradio/rb-new-station-dialog.c:
6443         * iradio/rb-new-station-dialog.h:
6444         * iradio/rb-station-properties-dialog.c:
6445         * iradio/rb-station-properties-dialog.h:
6446         * lib/mkdtemp.c:
6447         * lib/mkdtemp.h:
6448         * lib/rb-cut-and-paste-code.c:
6449         * lib/rb-cut-and-paste-code.h:
6450         * lib/rb-debug.c:
6451         * lib/rb-debug.h:
6452         * lib/rb-file-helpers.c:
6453         * lib/rb-file-helpers.h:
6454         * lib/rb-glade-helpers.c:
6455         * lib/rb-glade-helpers.h:
6456         * lib/rb-preferences.h:
6457         * lib/rb-proxy-config.c:
6458         * lib/rb-stock-icons.c:
6459         * lib/rb-stock-icons.h:
6460         * lib/rb-thread.c:
6461         * lib/rb-thread.h:
6462         * lib/rb-tree-dnd.c:
6463         * lib/rb-tree-dnd.h:
6464         * lib/rb-util.c:
6465         * lib/rb-util.h:
6466         * metadata/rb-metadata-common.c:
6467         * metadata/rb-metadata-dbus-client.c:
6468         * metadata/rb-metadata-dbus-service.c:
6469         * metadata/rb-metadata-dbus.c:
6470         * metadata/rb-metadata-dbus.h:
6471         * metadata/rb-metadata-gst.c:
6472         * metadata/rb-metadata.h:
6473         * metadata/sj-error.c:
6474         * metadata/sj-error.h:
6475         * metadata/sj-metadata-musicbrainz.c:
6476         * metadata/sj-metadata-musicbrainz.h:
6477         * metadata/sj-metadata.c:
6478         * metadata/sj-metadata.h:
6479         * metadata/sj-structures.c:
6480         * metadata/sj-structures.h:
6481         * metadata/test-metadata.c:
6482         * player/rb-player-gst.c:
6483         * player/rb-player.h:
6484         * player/rb-recorder-gst.c:
6485         * player/rb-recorder.h:
6486         * plugins/artdisplay/artdisplay.py:
6487         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6488         * plugins/ipod/rb-ipod-plugin.c:
6489         * plugins/lirc/rb-lirc-plugin.c:
6490         * plugins/pythonconsole/pythonconsole.py:
6491         * plugins/rb-module.c:
6492         * plugins/rb-module.h:
6493         * plugins/rb-plugin-manager.c:
6494         * plugins/rb-plugin-manager.h:
6495         * plugins/rb-plugin.c:
6496         * plugins/rb-plugin.h:
6497         * plugins/rb-plugins-engine.c:
6498         * plugins/rb-plugins-engine.h:
6499         * plugins/rb-python-module.c:
6500         * plugins/rb-python-module.h:
6501         * plugins/rb-python-plugin.c:
6502         * plugins/rb-python-plugin.h:
6503         * plugins/sample/rb-sample-plugin.c:
6504         * po/de.po:
6505         * po/el.po:
6506         * po/en_CA.po:
6507         * po/eu.po:
6508         * po/fi.po:
6509         * po/fr.po:
6510         * po/it.po:
6511         * po/ja.po:
6512         * po/mk.po:
6513         * po/pt_BR.po:
6514         * po/ru.po:
6515         * podcast/rb-feed-podcast-properties-dialog.c:
6516         * podcast/rb-feed-podcast-properties-dialog.h:
6517         * podcast/rb-new-podcast-dialog.c:
6518         * podcast/rb-new-podcast-dialog.h:
6519         * podcast/rb-podcast-manager.c:
6520         * podcast/rb-podcast-manager.h:
6521         * podcast/rb-podcast-parse.c:
6522         * podcast/rb-podcast-parse.h:
6523         * podcast/rb-podcast-properties-dialog.c:
6524         * podcast/rb-podcast-properties-dialog.h:
6525         * remote/bonobo/libmain.c:
6526         * remote/bonobo/rb-nautilus-context-menu.c:
6527         * remote/bonobo/rb-nautilus-context-menu.h:
6528         * remote/bonobo/rb-remote-bonobo.c:
6529         * remote/bonobo/rb-remote-bonobo.h:
6530         * remote/rb-remote-client-proxy.c:
6531         * remote/rb-remote-client-proxy.h:
6532         * remote/rb-remote-common.c:
6533         * remote/rb-remote-common.h:
6534         * remote/rb-remote-proxy.c:
6535         * remote/rb-remote-proxy.h:
6536         * rhythmdb/gsequence.c:
6537         * rhythmdb/gsequence.h:
6538         * rhythmdb/rb-refstring.c:
6539         * rhythmdb/rb-refstring.h:
6540         * rhythmdb/rhythmdb-gda.c:
6541         * rhythmdb/rhythmdb-gda.h:
6542         * rhythmdb/rhythmdb-private.h:
6543         * rhythmdb/rhythmdb-property-model.c:
6544         * rhythmdb/rhythmdb-property-model.h:
6545         * rhythmdb/rhythmdb-query-model.c:
6546         * rhythmdb/rhythmdb-query-model.h:
6547         * rhythmdb/rhythmdb-query-results.c:
6548         * rhythmdb/rhythmdb-query-results.h:
6549         * rhythmdb/rhythmdb-tree.c:
6550         * rhythmdb/rhythmdb-tree.h:
6551         * rhythmdb/rhythmdb.c:
6552         * rhythmdb/rhythmdb.h:
6553         * shell/main.c:
6554         * shell/rb-audioscrobbler.c:
6555         * shell/rb-audioscrobbler.h:
6556         * shell/rb-history.c:
6557         * shell/rb-history.h:
6558         * shell/rb-play-order-linear-loop.c:
6559         * shell/rb-play-order-linear-loop.h:
6560         * shell/rb-play-order-linear.c:
6561         * shell/rb-play-order-linear.h:
6562         * shell/rb-play-order-queue.c:
6563         * shell/rb-play-order-queue.h:
6564         * shell/rb-play-order-random-by-age-and-rating.c:
6565         * shell/rb-play-order-random-by-age-and-rating.h:
6566         * shell/rb-play-order-random-by-age.c:
6567         * shell/rb-play-order-random-by-age.h:
6568         * shell/rb-play-order-random-by-rating.c:
6569         * shell/rb-play-order-random-by-rating.h:
6570         * shell/rb-play-order-random-equal-weights.c:
6571         * shell/rb-play-order-random-equal-weights.h:
6572         * shell/rb-play-order-random.c:
6573         * shell/rb-play-order-random.h:
6574         * shell/rb-play-order-shuffle.c:
6575         * shell/rb-play-order-shuffle.h:
6576         * shell/rb-play-order.c:
6577         * shell/rb-play-order.h:
6578         * shell/rb-playlist-manager.c:
6579         * shell/rb-playlist-manager.h:
6580         * shell/rb-removable-media-manager.c:
6581         * shell/rb-removable-media-manager.h:
6582         * shell/rb-shell-clipboard.c:
6583         * shell/rb-shell-clipboard.h:
6584         * shell/rb-shell-player.c:
6585         * shell/rb-shell-player.h:
6586         * shell/rb-shell-preferences.c:
6587         * shell/rb-shell-preferences.h:
6588         * shell/rb-shell.c:
6589         * shell/rb-shell.h:
6590         * shell/rb-source-header.c:
6591         * shell/rb-source-header.h:
6592         * shell/rb-statusbar.c:
6593         * shell/rb-statusbar.h:
6594         * shell/rb-tray-icon.c:
6595         * shell/rb-tray-icon.h:
6596         * sources/rb-audiocd-source.c:
6597         * sources/rb-audiocd-source.h:
6598         * sources/rb-auto-playlist-source.c:
6599         * sources/rb-auto-playlist-source.h:
6600         * sources/rb-browser-source.c:
6601         * sources/rb-browser-source.h:
6602         * sources/rb-daap-source.c:
6603         * sources/rb-daap-source.h:
6604         * sources/rb-generic-player-source.c:
6605         * sources/rb-generic-player-source.h:
6606         * sources/rb-import-errors-source.c:
6607         * sources/rb-import-errors-source.h:
6608         * sources/rb-ipod-source.c:
6609         * sources/rb-ipod-source.h:
6610         * sources/rb-iradio-source.c:
6611         * sources/rb-iradio-source.h:
6612         * sources/rb-library-source.c:
6613         * sources/rb-library-source.h:
6614         * sources/rb-missing-files-source.c:
6615         * sources/rb-missing-files-source.h:
6616         * sources/rb-nokia770-source.c:
6617         * sources/rb-nokia770-source.h:
6618         * sources/rb-play-queue-source.c:
6619         * sources/rb-play-queue-source.h:
6620         * sources/rb-playlist-source-recorder.c:
6621         * sources/rb-playlist-source-recorder.h:
6622         * sources/rb-playlist-source.c:
6623         * sources/rb-playlist-source.h:
6624         * sources/rb-playlist-xml.h:
6625         * sources/rb-podcast-source.c:
6626         * sources/rb-podcast-source.h:
6627         * sources/rb-psp-source.c:
6628         * sources/rb-psp-source.h:
6629         * sources/rb-removable-media-source.c:
6630         * sources/rb-removable-media-source.h:
6631         * sources/rb-source.c:
6632         * sources/rb-source.h:
6633         * sources/rb-sourcelist-model.c:
6634         * sources/rb-sourcelist-model.h:
6635         * sources/rb-sourcelist.c:
6636         * sources/rb-sourcelist.h:
6637         * sources/rb-static-playlist-source.c:
6638         * sources/rb-static-playlist-source.h:
6639         * tests/test-cd.c:
6640         * tests/test-cmdline.c:
6641         * tests/test-rhythmdb-indexing.c:
6642         * tests/test-rhythmdb-query.c:
6643         * tests/test-rhythmdb-simple.c:
6644         * tests/test-rhythmdb-tree-deserialization.c:
6645         * tests/test-rhythmdb-tree-serialization.c:
6646         * tests/test-rhythmdb-view.c:
6647         * widgets/bacon-volume.c:
6648         * widgets/bacon-volume.h:
6649         * widgets/disclosure-widget.c:
6650         * widgets/disclosure-widget.h:
6651         * widgets/eel-gconf-extensions.c:
6652         * widgets/eel-gconf-extensions.h:
6653         * widgets/eggtrayicon.c:
6654         * widgets/eggtrayicon.h:
6655         * widgets/libsexy/sexy-icon-entry.c:
6656         * widgets/libsexy/sexy-icon-entry.h:
6657         * widgets/rb-cell-renderer-pixbuf.c:
6658         * widgets/rb-cell-renderer-pixbuf.h:
6659         * widgets/rb-cell-renderer-rating.c:
6660         * widgets/rb-cell-renderer-rating.h:
6661         * widgets/rb-dialog.c:
6662         * widgets/rb-dialog.h:
6663         * widgets/rb-druid.c:
6664         * widgets/rb-druid.h:
6665         * widgets/rb-entry-view.c:
6666         * widgets/rb-entry-view.h:
6667         * widgets/rb-header.c:
6668         * widgets/rb-header.h:
6669         * widgets/rb-library-browser.c:
6670         * widgets/rb-library-browser.h:
6671         * widgets/rb-property-view.c:
6672         * widgets/rb-property-view.h:
6673         * widgets/rb-query-creator-private.h:
6674         * widgets/rb-query-creator-properties.c:
6675         * widgets/rb-query-creator.c:
6676         * widgets/rb-query-creator.h:
6677         * widgets/rb-rating-helper.c:
6678         * widgets/rb-rating-helper.h:
6679         * widgets/rb-rating.c:
6680         * widgets/rb-rating.h:
6681         * widgets/rb-search-entry.c:
6682         * widgets/rb-search-entry.h:
6683         * widgets/rb-song-display-box.c:
6684         * widgets/rb-song-display-box.h:
6685         * widgets/rb-song-info.c:
6686         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6688 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6690         patch by: Gareth Murphy, James Livingston
6692         * bindings/python/rb.defs:
6693         * configure.ac:
6694         * plugins/Makefile.am:
6695         * plugins/artdisplay/Makefile.am:
6696         * plugins/artdisplay/artdisplay.py:
6697         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6698         * plugins/rb-python-module.c: (rb_python_module_init_python):
6699         * shell/rb-shell.c: (construct_widgets),
6700         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6701         (rb_shell_add_widget), (rb_shell_remove_widget),
6702         (rb_shell_ui_location_get_type):
6703         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6705 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6707         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6708         Fix build failure caused by the combination of the previous two
6709         commits.
6711 2006-04-20  James Livingston  <doclivingston@gmail.com>
6713         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6714         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6715         table to the entry types, which will allow us to get rid of some of
6716         the "if entry type == WHATEVER" code everywhere. From bug 
6718         * bindings/python/rb.defs:
6719         * bindings/python/rb.override:
6720         * bindings/python/rhythmdb.defs:
6721         * bindings/python/rhythmdb.override:
6722         * daapsharing/rb-daap-connection.c:
6723         (rb_daap_connection_class_init), (rb_daap_connection_init),
6724         (rb_daap_connection_set_property),
6725         (rb_daap_connection_get_property):
6726         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6727         * podcast/rb-podcast-manager.c:
6728         (rb_podcast_manager_entry_downloaded),
6729         (rb_podcast_manager_subscribe_feed),
6730         (rb_podcast_manager_db_entry_added_cb),
6731         (rb_podcast_manager_db_entry_deleted_cb),
6732         (rb_podcast_manager_insert_feed):
6733         * rhythmdb/rhythmdb-private.h:
6734         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6735         (conjunctive_query):
6736         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6737         (process_added_entries_cb), (rhythmdb_entry_allocate),
6738         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6739         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6740         (rhythmdb_process_metadata_load),
6741         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6742         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6743         (write_encoded_gvalue), (read_encoded_property),
6744         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6745         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6746         (rhythmdb_entry_iradio_get_type),
6747         (rhythmdb_entry_podcast_post_get_type),
6748         (rhythmdb_entry_podcast_feed_get_type),
6749         (rhythmdb_entry_import_error_get_type),
6750         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6751         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6752         (rhythmdb_entry_type_get_type):
6753         * rhythmdb/rhythmdb.h:
6754         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6755         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6756         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6757         (rb_shell_player_entry_activated_cb), (info_available_cb):
6758         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6759         (rb_shell_register_entry_type_for_source),
6760         (rb_shell_playing_from_queue_cb),
6761         (rb_shell_playing_entry_changed_cb),
6762         (rb_shell_player_stream_song_changed_cb),
6763         (rb_shell_jump_to_entry_with_source),
6764         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6765         (handle_playlist_entry_cb), (rb_shell_load_uri):
6766         * shell/rb-shell.h:
6767         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6768         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6769         (rb_browser_source_init), (rb_browser_source_set_property),
6770         (rb_browser_source_get_property):
6771         * sources/rb-ipod-source.c: (impl_paste):
6772         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6773         (rb_iradio_source_init), (rb_iradio_source_set_property),
6774         (rb_iradio_source_get_property):
6775         * sources/rb-library-source.c: (impl_paste):
6776         * sources/rb-missing-files-source.c:
6777         (rb_missing_files_source_class_init),
6778         (rb_missing_files_source_init),
6779         (rb_missing_files_source_set_property),
6780         (rb_missing_files_source_get_property):
6781         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6782         (rb_playlist_source_init), (rb_playlist_source_set_property),
6783         (rb_playlist_source_get_property):
6784         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6785         (rb_podcast_source_init), (rb_podcast_source_set_property),
6786         (rb_podcast_source_get_property):
6787         * sources/rb-static-playlist-source.c:
6788         (rb_static_playlist_source_add_location_internal):
6790 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6792         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6793         (rhythmdb_add_import_error_entry),
6794         (entry_volume_mounted_or_unmounted),
6795         (rhythmdb_volume_unmounted_cb):
6796         When a volume is unmounted, delete import errors for files stored on
6797         it.  When a volume is mounted, stat all tracks stored on it, rather
6798         than assuming they're present.  Fixes #339023.
6800 2006-04-20  James Livingston  <doclivingston@gmail.com>
6802         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6803         browser visibility for non-gconf-using sources (like playlists). Part
6804         of bug 118862.
6806         * shell/rb-source-header.c: (sourcestate_free),
6807         (rb_source_header_init), (rb_source_header_finalize),
6808         (rb_source_header_source_weak_destroy_cb): switch from storing the
6809         search string to storing a "source state" structure
6811         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6812         (rb_source_header_search_cb), (rb_source_header_clear_search),
6813         (rb_source_header_disclosure_toggled_cb): as well as storing the
6814         string, stop the visibility of the source's browser.
6816 2006-04-20  James Livingston  <doclivingston@gmail.com>
6818         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6819         library entries back into the library. Fixes bug 339065.
6821 2006-04-20  James Livingston  <doclivingston@gmail.com>
6823         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6824         only exists in glib 2.10.
6826 2006-04-20  James Livingston  <doclivingston@gmail.com>
6828         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6829         Solaris. From bug 335318.
6831         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6832         * shell/rb-audioscrobbler.c:
6833         * sources/rb-psp-source.c:
6835 2006-04-20  James Livingston  <doclivingston@gmail.com>
6837         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6838         issues for some people.
6840         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6841         accidental s/suffix/prefix/
6843         * sources/rb-auto-playlist-source.c:
6844         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6845         you from sorting playlists which aren't limited by time.
6847 2006-04-19  James Livingston  <doclivingston@gmail.com>
6849         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6850         duration or bitrate back to the file, since they are properties of the
6851         audio data, not tags we can set.
6853 2006-04-19  James Livingston  <doclivingston@gmail.com>
6855         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6856         of libtool, to fix builds which are using a different version. Fixes
6857         bug 338996.
6859         * shell/Makefile.am:
6861 2006-04-19  James Livingston  <doclivingston@gmail.com>
6863         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6864         to sync data to a file which is uneditable.
6866 2006-04-19  James Livingston  <doclivingston@gmail.com>
6868         patch by: Gavin Stewart  <gavin@brokentrain.net>
6870         * data/glade/playlist-save.glade:
6871         * data/glade/Makefile.am:
6872         * po/POTFILES.in: add the playlist saving dialog.
6874         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6875         (export_set_extension_cb), (filter_get_export_filter_label),
6876         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6877         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6878         formats (PLS and M3U at the moment). Fixes bug 316295.
6880 2006-04-19  James Livingston  <doclivingston@gmail.com>
6882         * shell/rb-playlist-manager.c:
6883         (rb_playlist_manager_set_source_internal): don't let you edit remove
6884         auto playlists.
6886         * sources/rb-auto-playlist-source.c:
6887         (rb_auto_playlist_source_set_query): correctly handle time-limited
6888         playlists.
6890 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6892         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6894         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6895         Don't crash if the queue file contains no newlines.
6896         Fixes #338924.
6898 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6900         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6901         condition
6903 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6905         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6906         case. Moreover, they may not exist yet, so take that into account when
6907         generating the iPod filename.
6909 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6911         * sources/rb-ipod-source.c: added support for drag and drop from the
6912         library to the iPod (only enabled if --enable-track-transfer was
6913         passed to configure)
6915 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6917         * configure.ac:
6918         * lib/rb-marshal.list:
6919         * lib/rb-util.c: 
6920         * lib/rb-util.h:
6921         * plugins/Makefile.am:
6922         * plugins/ipod/Makefile.am:
6923         * plugins/ipod/ipod.rb-plugin.desktop.in:
6924         * plugins/ipod/rb-ipod-plugin.c: 
6925         * plugins/rb-plugin.h:
6926         * shell/Makefile.am:
6927         * shell/rb-removable-media-manager.c:
6928         * shell/rb-removable-media-manager.h:
6929         * shell/rb-shell.c: 
6930         * sources/Makefile.am:
6931         * sources/rb-ipod-source.c: 
6932         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6933         various iPod related files should be moved to plugins/ipod/ now...
6935 2006-04-17  James Livingston  <doclivingston@gmail.com>
6937         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6938         and "vic".
6940         * help/C/figures/rb-iradio-main.png:
6941         * help/C/figures/rb-notification-area-menu.png:
6942         * help/C/figures/rb-notification-window.png:
6943         * help/C/figures/rb-notification-zone.png:
6944         * help/C/figures/rb-podcast-main.png:
6945         * help/C/figures/rb-statusbar.png:
6946         * help/C/figures/rb-volume-changer.png:
6947         * help/C/figures/rb-window-small.png:
6948         * help/C/figures/rb-window.png:
6949         * help/C/rhythmbox.xml:
6951 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6953         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6954         more obviously.
6956         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6957         (make_undecodable_error), (rb_metadata_gst_error_cb),
6958         (rb_metadata_gst_new_decoded_pad_cb),
6959         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6960         Ignore really small files (<4kB) for which typefinding fails.
6961         Always link decoded pads from decodebin to fakesink.
6962         Shut the pipeline down by posting an error on the bus when decodebin
6963         emits unknown-type signals.  Fixes bug #338062.
6965 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6967         * shell/rb-shell.c: (rb_shell_load_uri):
6968         Fix glaring mistakes in previous commit: actually pass arguments to
6969         rb_debug, and specify the right entry type when adding a new iradio
6970         station so we don't try to add local playlist files to the library.
6972 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6974         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6975         before trying to add them, as iradio streams often fail rb_uri_exists().
6977         * shell/rb-shell-player.c: (notify_playing_idle),
6978         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6979         (open_location_thread), (rb_shell_player_open_location),
6980         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6981         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6982         of all the stream URLs, and try them in turn.  If we get through the
6983         whole playlist too quickly, error out.  Various other fixes that make
6984         iradio work a lot better.
6986         * shell/rb-shell.c: (add_to_library_response_cb),
6987         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6988         (handle_playlist_entry_cb), (rb_shell_load_uri):
6989         Add playlists containing streams as iradio stations.  If the playlist
6990         is local, add each stream URL, but if the playlist is remote, just add
6991         the playlist URL.
6992         
6993         * sources/rb-iradio-source.c: (new_station_location_added):
6994         Add new station URLs as-is, rather than parsing the playlist and
6995         adding the streams.
6996         
6997         * rhythmdb/rhythmdb-query-model.c:
6998         (rhythmdb_query_model_entry_changed_cb),
6999         (rhythmdb_query_model_emit_reorder),
7000         (rhythmdb_query_model_do_reorder):
7001         Emit row-changed notifications when an entry changes but is not
7002         reordered.
7004         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
7005         Display the playback error icon when the entry has an error and
7006         there's nothing else to display.
7007         
7008         Fixes bug #320336 and some of #324402.
7009         
7010 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7012         * sources/rb-ipod-source.c: use a GHashTable for the
7013         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
7014         time, this fixes compilation breakage for people not having libgpod
7015         CVS HEAD
7017 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
7019         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7021         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
7022         (rb_podcast_manager_insert_feed):
7023         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
7024         fixes bug 321945
7026 2006-04-16  James Livingston  <doclivingston@gmail.com>
7028         * sources/rb-library-source.c:
7029         (rb_library_source_library_location_cb): return FALSE like we are
7030         supposed to, not void.
7032         patch by: FreeBSD GNOME Project
7033         * configure.ac: fix some bash-isms.
7035         patch by: Pawel Worach  <pawel.worach@gmail.com>
7036         * metadata/rb-metadata-dbus-client.c:
7037         * rhythmdb/rhythmdb-query-model.c:
7038         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
7041 2006-04-16  James Livingston  <doclivingston@gmail.com>
7043         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
7044         for transcoding to RBEncoderGst.
7046         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
7047         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
7048         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
7049         (add_decoding_pipeline), (encoder_match_mime),
7050         (get_profile_from_mime_type), (extract_track), (transcode_track),
7051         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
7053 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7055         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
7056         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
7057         load_ipod_db_idle_cb to a new separate function
7059 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7061         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
7062         source
7064 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7066         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
7067         variables
7069 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7071         * data/ui/Makefile.am:
7072         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
7073         menu
7074         * lib/rb-util.c: check if the widget we got from the UI manager isn't
7075         NULL before using it as a popup menu
7076         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
7077         'eject' an iPod
7079 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7081         * sources/rb-ipod-source.c: when hal tells us a partition is on an
7082         iPod, check if it contains an iPod database before using it (in case
7083         the iPod was repartitionned somehow). Should fix bug #325034
7085 2006-04-16  Steve Frécinaux  <steve@istique.net>
7087         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
7089         * data/Makefile.am: install application icon into the default theme.
7091         * data/rhythmbox.desktop.in: don't specify icon file extension.
7092         
7093         * shell/main.c: (main): set default window icon from theme.
7094         
7095         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
7096         code concerning window icon, and fix leak by unreferencing the about
7097         logo pixbuf once it's not used anymore.
7099 2006-04-16  James Livingston  <doclivingston@gmail.com>
7101         * configure.ac: bump version to 0.9.4
7102         * NEWS: update NEWS and 0.9.4 insert translations
7104 2006-04-16  James Livingston  <doclivingston@gmail.com>
7106         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
7107         namespace automatically.
7109 2006-04-16  James Livingston  <doclivingston@gmail.com>
7111         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
7113         * doc/reference/Makefile.am:
7114         * doc/reference/rhythmbox.types: make distcheck work again
7116         * doc/reference/tmpl/eggnotificationbubble.sgml:
7117         * doc/reference/tmpl/eggtrayicon.sgml:
7118         * doc/reference/tmpl/rb-debug.sgml:
7119         * doc/reference/tmpl/rb-entry-view.sgml:
7120         * doc/reference/tmpl/rb-enums.sgml:
7121         * doc/reference/tmpl/rb-metadata.sgml:
7122         * doc/reference/tmpl/rb-new-station-dialog.sgml:
7123         * doc/reference/tmpl/rb-playlist-manager.sgml:
7124         * doc/reference/tmpl/rb-refstring.sgml:
7125         * doc/reference/tmpl/rb-shell-player.sgml:
7126         * doc/reference/tmpl/rb-shell-preferences.sgml:
7127         * doc/reference/tmpl/rb-shell.sgml:
7128         * doc/reference/tmpl/rb-song-info.sgml:
7129         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
7130         * doc/reference/tmpl/rb-statusbar.sgml:
7131         * doc/reference/tmpl/rhythmbox-unused.sgml:
7132         * doc/reference/tmpl/rhythmdb-query-model.sgml:
7133         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
7135 2006-04-16  James Livingston  <doclivingston@gmail.com>
7137         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
7139         * po/LINGUAS: don't split the variable across two lines, as it breaks
7140         the build. Fixes bug 338625.
7142 2006-04-15  James Livingston  <doclivingston@gmail.com>
7144         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
7145         add a "sourcelist-model" gobject property.
7147 2006-04-14  William Jon McCann  <mccann@jhu.edu>
7149         * .cvsignore:
7150         * backends/.cvsignore:
7151         * backends/gstreamer/.cvsignore:
7152         * bindings/.cvsignore:
7153         * bindings/python/.cvsignore:
7154         * help/es/.cvsignore:
7155         * metadata/.cvsignore:
7156         * plugins/.cvsignore:
7157         * plugins/audioscrobbler/.cvsignore:
7158         * plugins/lirc/.cvsignore:
7159         * plugins/pythonconsole/.cvsignore:
7160         * plugins/sample-python/.cvsignore:
7161         * plugins/sample/.cvsignore:
7162         * shell/.cvsignore:
7163         * widgets/libsexy/.cvsignore:
7164         Make CVS ignore files.
7166 2006-04-14  James Livingston  <doclivingston@gmail.com>
7168         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
7169         the track-loading thread hold a reference on the source, so it doesn't
7170         explode if the cd is removed before it is done. Fixes bug 337237.
7172 2006-04-14  James Livingston  <doclivingston@gmail.com>
7174         * bindings/python/override_common.c:
7175         (_helper_unwrap_pointer_pylist):
7176         * bindings/python/override_common.h:
7177         * bindings/python/rb.override:
7178         * bindings/python/rhythmdb.override: Bind some more functions and
7179         virtual functions.
7181         * shell/rb-shell.c: (rb_shell_select_source):
7182         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
7183         * sources/rb-audiocd-source.c:
7184         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
7185         * sources/rb-browser-source.c: (impl_get_search_actions):
7186         * sources/rb-iradio-source.c: (impl_get_ui_actions):
7187         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
7188         * sources/rb-playlist-source.c: (impl_get_ui_actions):
7189         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7190         (impl_get_search_actions):
7191         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
7192         the impl_get_ui_actions and impl_get_search_actions functions return
7193         lists that contain copies of the strings, instead of constant ones.
7194         Needed to bindings
7196 2006-04-14  James Livingston  <doclivingston@gmail.com>
7198         * bindings/python/rhythmdb.defs:
7199         * bindings/python/rhythmdb.override: fix the method argument format
7200         specifiers.
7202 2006-04-14  James Livingston  <doclivingston@gmail.com>
7204         * bindings/python/rhythmdb.defs:
7205         * bindings/python/rhythmdb.override:
7206         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
7207         (entry_to_rb_metadata), (record_entry_change),
7208         (rhythmdb_entry_set_visibility):
7209         * rhythmdb/rhythmdb.h:
7210         * shell/rb-shell.c: (rb_shell_get_song_properties): change
7211         rhythmdb_entry_get to take the db as the first parameter. Fixes the
7212         python bindings of it. The rhythmdb_entry_get_* ones are left the same
7213         since they are used in too many places, and not in the Python
7214         bindings.
7216 2006-04-13  William Jon McCann  <mccann@jhu.edu>
7218         * lib/rb-debug.c: (_rb_profile_log):
7219         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
7220         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7221         * shell/main.c: (main):
7222         * shell/rb-shell.c: (rb_shell_constructor),
7223         (rb_shell_set_visibility), (rb_shell_sync_window_state),
7224         (rb_shell_present):
7225         Fix profile output indentation.  Add more profiling points.
7226         Fixes part of #338114
7228 2006-04-13  James Livingston  <doclivingston@gmail.com>
7230         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
7231         library source being deleted, by setting the active source to NULL.
7232         From bug 338116.
7234 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7236         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7237         Update the last-seen string when hiddenness changes.
7239 2006-04-12  James Livingston  <doclivingston@gmail.com>
7241         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
7242         which caused the first-seen time to be reset when a metadata load was
7243         done. Fixes bug 336874.
7245         * shell/rb-shell.h: remove old function declaration.
7247         * bindings/python/rhythmdb.defs:
7248         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7250 2006-04-11  James Livingston  <doclivingston@gmail.com>
7252         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7253         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7254         interaction. Fixes bug 337999.
7256 2006-04-11  James Livingston  <doclivingston@gmail.com>
7258         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7259         track transfer. Fixes bug 338056.
7261         * shell/Makefile.am:
7263 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7265         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7267 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7269         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7270         (_rb_profile_log):
7271         * lib/rb-debug.h:
7272         * shell/rb-shell.c: (construct_db), (construct_widgets),
7273         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7274         Add profiling.  Fixes #337387
7276 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7278         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7279         * widgets/rb-header.c:
7280         Use italics for artist and album. Fixes #336748
7282 2006-04-10  James Livingston  <doclivingston@gmail.com>
7284         * Makefile.am:
7285         * backends/gstreamer/Makefile.am:
7286         * configure.ac:
7287         * data/glade/library-prefs.glade:
7288         * shell/Makefile.am:
7289         * shell/rb-removable-media-manager.c:
7290         * shell/rb-removable-media-manager.h:
7291         * sources/Makefile.am:
7292         * sources/rb-audiocd-source.c:
7293         * sources/rb-library-source.c: (rb_library_source_class_init),
7294         (rb_library_source_finalize), (impl_get_config_widget),
7295         (rb_library_source_preferences_sync), (impl_can_paste): add a
7296         --enable-track-transfer configure option, abd make cd ripping disabled
7297         by default.
7299         * shell/rb-source-header.c:
7300         * sources/rb-source.c: (rb_source_class_init),
7301         (rb_source_delete_thyself), (default_get_entry_view):
7302         * lib/rb-glade-helpers.c:
7303         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7304         some compiler warnings, and also bug 337427.
7306 2006-04-10  James Livingston  <doclivingston@gmail.com>
7308         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7309         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7310         if the gconf key is missing. Fixes bug 337742.
7312 2006-04-10  James Livingston  <doclivingston@gmail.com>
7314         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7315         to fix build problems I caused with a commit yesterday. Fixed bug
7316         337806.
7318         * daapsharing/rb-daap-mdns-browser-howl.c:
7319         (rb_daap_mdns_browser_class_init):
7320         * podcast/Makefile.am:
7321         * rhythmdb/Makefile.am:
7322         * widgets/eggtrayicon.h:
7324 2006-04-09  Steve Frécinaux  <steve@istique.net>
7326         * configure.ac:
7327         * po/LINGUAS:
7328         
7329         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7330         translators' life easier.
7332 2006-04-09  James Livingston  <doclivingston@gmail.com>
7334         * bindings/python/rb.defs:
7335         * bindings/python/rb.override: add bindings for most RBSource virtual
7336         functions.
7338         * sources/rb-source.h:
7339         * sources/rb-source.c: (rb_source_class_init): make
7340         impl_get_browser_key return a non-consht string, since Python can't
7341         really give us constant strings.
7343         * shell/rb-source-header.c: (rb_source_header_finalize),
7344         (rb_source_header_set_source_internal):
7345         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7346         * sources/rb-iradio-source.c: (impl_get_browser_key):
7347         * sources/rb-library-source.c: (impl_get_browser_key):
7348         * sources/rb-playlist-source.c:
7349         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7350         (rb_browser_source_state_prefs_sync):
7351         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7352         above change.
7354         * plugins/sample-python/sample-python.py: show how to add a new
7355         source.
7357 2006-04-09  James Livingston  <doclivingston@gmail.com>
7359         * daapsharing/Makefile.am:
7360         * daapsharing/rb-daap-connection.c:
7361         (rb_daap_connection_class_init):
7362         * daapsharing/rb-daap-marshal.list:
7363         * daapsharing/rb-daap-mdns-browser-avahi.c:
7364         (rb_daap_mdns_browser_class_init):
7365         * lib/rb-marshal.list:
7366         * player/Makefile.am:
7367         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7368         * player/rb-recorder-marshal.list:
7369         * podcast/Makefile.am:
7370         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7371         * podcast/rb-podcast-marshal.list:
7372         * rhythmdb/Makefile.am:
7373         * rhythmdb/rhythmdb-marshal.list:
7374         * rhythmdb/rhythmdb-query-model.c:
7375         (rhythmdb_query_model_class_init):
7376         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7377         into one file, as there is no point having several of them.
7379 2006-04-09  James Livingston  <doclivingston@gmail.com>
7381         * lib/Makefile.am:
7382         * lib/rb-enums.h:
7383         * widgets/Makefile.am:
7384         * widgets/eggnotificationbubble.c:
7385         * widgets/eggnotificationbubble.h:
7386         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7387         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7389         * rhythmdb/rhythmdb-property-model.h:
7390         * rhythmdb/rhythmdb-query-model.h:
7391         * rhythmdb/rhythmdb.h:
7392         * shell/rb-playlist-manager.h:
7393         * widgets/rb-cell-renderer-pixbuf.h:
7394         * widgets/rb-cell-renderer-rating.h:
7395         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7397 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7399         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7400         so we can build without a system-wide installed copy.
7402 2006-04-09  James Livingston  <doclivingston@gmail.com>
7404         * data/glade/general-prefs.glade:
7405         * data/rhythmbox.schemas:
7406         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7407         (rb_combo_box_hyphen_separator_func):
7408         * lib/rb-glade-helpers.h:
7409         * lib/rb-preferences.h:
7410         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7411         (rb_shell_preferences_sync),
7412         (rb_shell_preferences_toolbar_style_cb),
7413         (rb_shell_preferences_browser_views_activated_cb):
7414         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7415         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7416         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7418 2006-04-09  James Livingston  <doclivingston@gmail.com>
7420         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7421         data that MusicBrainz returns to us. Last part of bug 334167.
7423 2006-04-09  James Livingston  <doclivingston@gmail.com>
7425         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7426         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7428 2006-04-09  James Livingston  <doclivingston@gmail.com>
7430         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7431         the entry view properly when the rows are reordered. Fixes bug 337019.
7433 2006-04-09  James Livingston  <doclivingston@gmail.com>
7435         * configure.ac:
7436         * widgets/Makefile.am:
7437         * widgets/libsexy/Makefile.am:
7438         * widgets/libsexy/sexy-icon-entry.c:
7439         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7440         libsexy, and allow building against it or a system-wide installed
7441         copy.
7444         * widgets/rb-search-entry.c: (rb_search_entry_init),
7445         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7446         search box. Fixes bug 128109.
7448 2006-04-09  James Livingston  <doclivingston@gmail.com>
7450         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7452         * widgets/rb-entry-view.c: (rb_entry_view_init),
7453         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7454         and Pause icons rather than the volume ones in the Now Playing column.
7455         Closes bug 336482.
7457 2006-04-08  James Livingston  <doclivingston@gmail.com>
7459         * bindings/python/override_common.h:
7460         * bindings/python/rb.override:
7461         * bindings/python/rhythmdb.override: bind some more functions 
7463 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7465         * metadata/rb-metadata-dbus-service.c: (_send_error):
7466         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7467         are sent properly and we don't get 'method doesn't exist' messages
7468         from dbus instead.
7470 2006-04-08  James Livingston  <doclivingston@gmail.com>
7472         * bindings/python/override_common.h:
7473         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7474         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7475         more utility functions for C<->Python conversions
7477         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7478         (rb_entry_view_state_get_type):
7479         * widgets/rb-entry-view.h: make the colume type and entry view state
7480         GTypes
7482         * bindings/python/Makefile.am:
7483         * bindings/python/rb.defs:
7484         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7485         RBSource.
7487 2006-04-08  James Livingston  <doclivingston@gmail.com>
7489         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7490         initialiser for a GError
7492         * sources/rb-source.c: (rb_source_eof_type_get_type):
7493         * sources/rb-source.h: add a GType for RBSourceEOFType
7495         * bindings/python/Makefile.am:
7496         * bindings/python/rb.defs:
7497         * bindings/python/rb.override: bind RBSource and RBSourceList
7499 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7501         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7502         (rb_shell_player_get_property),
7503         (rb_shell_player_get_active_source),
7504         (rb_shell_player_set_playing_source_internal):
7505         * shell/rb-shell-player.h:
7506         Change 'playing-from-queue' from being a signal to being a property.
7508         * shell/rb-shell.c: (rb_shell_constructor),
7509         (rb_shell_playing_from_queue_cb),
7510         (rb_shell_view_queue_as_sidebar_changed_cb),
7511         (rb_shell_jump_to_entry_with_source):
7512         When the queue side pane is used, make 'jump to current' jump to the
7513         entry in the registered source for its type, rather than in the queue,
7514         and show it as playing in that source.
7515         
7516         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7517         * sources/rb-sourcelist.h:
7518         Remove the 'preempted source' stuff, since it wasn't doing anything
7519         anyway.
7521 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7523         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7524         (download_progress_cb): Canonicalise downloaded file location before
7525         setting the mountpoint property of the corresponding entry.
7526         Fixes #337287 and a couple of memory leaks.
7528 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7530         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7531         (test_load), (main): Call g_set_prgname, report errors more
7532         usefully in test mode.
7533         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7534         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7535         files.  Run the event loop when the state change fails so we get the
7536         error messages from the bus.  Fixes #336921.
7538 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7540         * data/art/Makefile.am: Install media-eject.
7542         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7543         return value of rb_file.
7545         Fixes #337209
7547 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7549         Patch by: William Jon McCann  <mccann@jhu.edu>
7551         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7552         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7553         Fix GError leak.
7555 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7557         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7558         Don't try to add a date when we don't have one.  Fixes #336741.
7560         Also fix variable declaration in middle of block.
7562 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7564         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7565         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7567 2006-04-02  James Livingston  <doclivingston@gmail.com>
7569         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7570         inverted logic causing imports to fail.
7572 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7574         * shell/main.c: (main): Fix dbusless build.
7576 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7578         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7579         wav header for non-gcc compilers (not tested much, was only written
7580         according to docs)
7582 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7584         * shell/main.c: (main): Check if we got a dbus connection before
7585         trying to create a proxy for the shell object.  Fixes #336634.
7587 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7589         * doc/reference/Makefile.am:
7590         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7591         * shell/rb-source-header.c:
7592         * sources/rb-generic-player-source.c:
7593         (default_transform_playlist_uri):
7594         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7595         <alexl@users.sourceforge.net>
7597 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7599         * configure.ac: Detect LIRC.
7600         
7601         * plugins/Makefile.am:
7602         * plugins/lirc/Makefile.am:
7603         * plugins/lirc/lirc.rb-plugin.desktop.in:
7604         * plugins/lirc/rb-lirc-plugin.c:
7605         LIRC plugin.
7607         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7608         Remove obsolete files.
7610 2006-04-02  James Livingston  <doclivingston@gmail.com>
7612         * sources/rb-generic-player-source.c:
7613         (default_transform_playlist_uri): consider playlist paths as relative
7614         to the volume root by default, since that is what most players use.
7616 2006-04-02  James Livingston  <doclivingston@gmail.com>
7618         * lib/rb-util.c: (rb_mime_get_friendly_name):
7619         * lib/rb-util.h: add helper function to get the "friendly" name for a
7620         mime-type
7622         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7623         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7624         the user better error messages about undecodable streams, using the
7625         "friendly" name if possible. Fixes bug 128109.
7627 2006-04-02  James Livingston  <doclivingston@gmail.com>
7629         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7630         (start_pipeline): fix building with gstreamer 0.8
7632 2006-04-02  James Livingston  <doclivingston@gmail.com>
7634         * sources/rb-podcast-source.c: (impl_delete),
7635         (rb_podcast_source_cmd_delete_feed),
7636         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7637         it, since it may change during traversal. Fixes bug 336204.
7639 2006-04-01  James Livingston  <doclivingston@gmail.com>
7641         * data/art/media-eject.png: add the media-eject icon from Banshee
7642         (BSD-licensed), for use when the user's icon theme doesn't have one.
7644         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7645         bug 334897.
7647 2006-04-01  James Livingston  <doclivingston@gmail.com>
7649         * shell/rb-shell-player.h:
7650         * shell/rb-shell-player.c: (rb_shell_player_play),
7651         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7652         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7653         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7655         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7656         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7657         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7659         * bindings/python/rb.defs: bind the above to Python, and remove some
7660         useless stuff from the bindings.
7662 2006-04-01  James Livingston  <doclivingston@gmail.com>
7664         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7665         number tag.
7667         * shell/rb-shell.c:
7668         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7670         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7671         to true.
7673         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7674         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7675         method assigning, so it's understandable
7677         * sources/rb-library-source.c: (rb_library_source_class_init),
7678         (impl_paste): rather than hard-coding the types to ignore, use
7679         rb_source_can_copy.
7681 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7683         * sources/rb-library-source.c:
7684         (rb_library_source_preferences_sync):
7685         Don't crash if no audio profile is selected and the gconf schemas are 
7686         not installed.
7688 2006-03-31  James Livingston  <doclivingston@gmail.com>
7690         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7691         "*" which caused compilation to fail
7693 2006-03-31  James Livingston  <doclivingston@gmail.com>
7695         * configure.ac:
7696         * Makefile.am:
7697         * backends/Makefile.am:
7698         * backends/gstreamer/Makefile.am:
7699         * backends/gstreamer/rb-encoder-gst.c:
7700         * backends/gstreamer/rb-encoder-gst.h:
7701         * backends/rb-encoder.c:
7702         * backends/rb-encoder.h: add a interface for transcoding, and a
7703         GStreamer implementation of it (based on Sound-Juicer's code).
7705         * shell/Makefile.am:
7706         * shell/rb-removable-media-manager.c:
7707         (rb_removable_media_manager_class_init),
7708         (rb_removable_media_manager_init),
7709         (rb_removable_media_manager_dispose),
7710         (rb_removable_media_manager_finalize),
7711         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7712         (progress_cb), (completed_cb), (do_transfer),
7713         (rb_removable_media_manager_queue_transfer), (copy_entry),
7714         (rb_removable_media_manager_cmd_copy_tracks):
7715         * shell/rb-removable-media-manager.h: use the encoder interface to
7716         perform transfers of entries to other locations
7718         * shell/rb-shell-player.c: (open_location_thread):
7719         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7720         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7721         (rb_shell_quit):
7722         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7723         progress in the status bar.
7725         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7726         (rb_shell_preferences_sync),
7727         (rb_shell_preferences_browser_views_activated_cb):
7728         * data/glade/general-prefs.glade: move the browser views setting from
7729         the library tab to the general one.
7731         * data/glade/library-prefs.glade: add settings for the layout of the
7732         user's library, and their preferred encoding format (e.g. for CD
7733         ripping).
7735         * lib/rb-preferences.h:
7736         * data/rhythmbox.schemas: add keys for the above options (and a few
7737         other minor ones)
7739         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7740         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7741         entry, that isn't inserted into the database.
7743         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7744         (rb_audiocd_create_track_entry):
7745         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7746         cds, and set the mime-type of audio cd tracks correctly.
7748         * sources/rb-library-source.c: (rb_library_source_class_init),
7749         (rb_library_source_finalize),
7750         (rb_library_source_edit_profile_clicked_cb),
7751         (impl_get_config_widget), (rb_library_source_preferences_sync),
7752         (impl_receive_drag), (rb_library_source_path_changed_cb),
7753         (rb_library_source_filename_changed_cb),
7754         (rb_library_source_format_changed_cb), (sanitize_path),
7755         (filepath_parse_pattern), (layout_example_label_update),
7756         (rb_library_source_layout_path_changed),
7757         (rb_library_source_layout_filename_changed), (build_filename),
7758         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7759         entries to the library. Large chunks of code for determining the
7760         destination file name stolen from Sound-Juicer.
7762         * sources/rb-sourcelist-model.c: (path_is_droppable):
7763         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7764         * sources/rb-static-playlist-source.c:
7765         (rb_static_playlist_source_class_init):
7766         * sources/rb-removable-media-source.c:
7767         (rb_removable_media_source_class_init):
7768         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7769         (rb_source_can_paste):
7770         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7771         than _can_copy) to determine whether we can paste into the source.
7774 2006-03-31  Steve Frécinaux  <steve@istique.net>
7776         * plugins/rb-python-module.c: allow import of python modules with a '.'
7777         (gedit's bug 336403). Patch by Johan Dahlin.
7779 2006-03-31  James Livingston  <doclivingston@gmail.com>
7781         * sources/rb-library-source.c: 
7782         * sources/rb-library-source.h:
7783         * sources/rb-browser-source.c:
7784         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7785         RBBrowserSource now contains all the stuff for having a source which
7786         views a particular entry type (including browsers and searching).
7787         RBLibrarySource derives from this, and includes the library-specific
7788         stuff, like importing and library watching. Fixes some issues where
7789         library-derived sources were doing things that should be
7790         library-specific. Fixes bug 335185.
7792         * data/ui/rhythmbox-ui.xml:
7793         * sources/Makefile.am: modifications for the above
7795         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7796         (rb_daap_source_get_paned_key):
7797         * sources/rb-daap-source.h:
7798         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7799         * sources/rb-removable-media-source.c:
7800         (rb_removable_media_source_class_init):
7801         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7802         instead of RBLibrarySource.
7804 2006-03-31  James Livingston  <doclivingston@gmail.com>
7806         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7807         I buggered up when changing from GnomeVFSFileSize.
7809 2006-03-30  James Livingston  <doclivingston@gmail.com>
7811         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7812         for "-Wno-error".
7814         * bindings/python/rb.override:
7815         * bindings/python/Makefile.am: make the RB python bindings depend on
7816         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7817         code sometimes emits warnings.
7819         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7820         (rb_shell_player_error_get_type):
7821         * shell/rb-shell-player.h:
7822         * bindings/python/rb.defs: add bindings for RBShellPlayer
7824         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7825         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7826         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7827         * rhythmdb/rhythmdb.h:
7828         * shell/rb-shell.c: (rb_shell_get_song_properties):
7829         * widgets/rb-entry-view.c: (propid_from_name):
7830         * widgets/rb-property-view.c: (rb_property_view_class_init):
7831         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7832         than just plain GPtrArray, and add bindings for it.
7834         * bindings/python/rhythmdb.override: wrap some functions that use
7835         GValues
7837 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7839         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7840         Only watch directories from which entries of type SONG have been
7841         added.
7843 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7845         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7846         No need to restore the selection after rebuilding the child model,
7847         since that can't have changed the selection.
7849 2006-03-29  James Livingston  <doclivingston@gmail.com>
7851         * bindings/python/override_common.c:
7852         * bindings/python/override_common.h: add some for missing files to
7853         cvs.
7855 2006-03-29  James Livingston  <doclivingston@gmail.com>
7857         * configure.ac:
7858         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7859         copied from gedit's autofoo and we don't need it
7861         * bindings/python/rhythmdb.defs:
7862         * bindings/python/rhythmdb.override: add missing files to cvs
7864 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7866         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7867         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7868         before running any of the debug/test modes.
7869         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7870         Make plugin loading work when running uninstalled from the shell/
7871         directory.
7873 2006-03-29  James Livingston  <doclivingston@gmail.com>
7875         * rhythmdb/rhythmdb-property-model.c:
7876         (rhythmdb_property_model_sync),
7877         (rhythmdb_property_model_column_get_type):
7878         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7880         * rhythmdb/rhythmdb-private.h:
7881         * rhythmdb/rhythmdb-query-model.c:
7882         (rhythmdb_query_model_class_init):
7883         * rhythmdb/rhythmdb-query-model.h:
7884         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7885         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7886         (rhythmdb_entry_get_type):
7887         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7889         * widgets/rb-query-creator-properties.c:
7890         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7891         was missing.
7893         * bindings/python/Makefile.am:
7894         * bindings/python/rb.defs:
7895         * bindings/python/rb.override:
7896         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7897         Python bindings for RhythmDB.
7899 2006-03-29  James Livingston  <doclivingston@gmail.com>
7901         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7902         sharing when using --no-registration
7904 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7906         * rhythmdb/rhythmdb-query-model.c:
7907         (rhythmdb_query_model_reapply_query):
7908         Don't remove entries while iterating, as it breaks the sequence
7909         nodes.  Instead, collect a list of removed entries and process it
7910         after iterating the sequence.  Fixes #334642.
7912 2006-03-29  James Livingston  <doclivingston@gmail.com>
7914         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7915         (row_activated_cb), (plugin_manager_toggle_all):
7916         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7917         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7918         (button_press_cb), (source_name_edited_cb):
7919         * widgets/rb-property-view.c: (rb_property_view_set_property),
7920         (rb_property_view_post_row_deleted_cb),
7921         (rb_property_view_row_activated_cb),
7922         (rb_property_view_selection_changed_cb),
7923         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7924         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7926 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7928         * rhythmdb/rhythmdb-query-model.c:
7929         (rhythmdb_query_model_drag_data_received):
7930         Increment the reference count for entries added by drag and drop.
7931         Fixes #336045.
7933 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7935         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7936         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7937         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7939 2006-03-27  James Livingston  <doclivingston@gmail.com>
7941         * shell/rb-shell.c: (rb_shell_constructor),
7942         (rb_shell_sync_window_state): fix a maximise-realise race that would
7943         cause some widgets to be resized after we had explicity set theri
7944         size. Hopefully fixes bug 331927.
7946 2006-03-27  James Livingston  <doclivingston@gmail.com>
7948         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7949         (row_activated_cb), (plugin_manager_set_active),
7950         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7951         configure button sensitivity when a plugin is enabled/disabled.
7953 2006-03-27  James Livingston  <doclivingston@gmail.com>
7955         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7956         stop warnings, only the vbos is used anyway
7958         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7959         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7960         collection every now an then.
7962         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7963         if we are finalising because the python object couldn't be created.
7965         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7966         NULL if the python-side object couldn't be created. Stops crashes when
7967         the object is later used when it doesn't exist in Python.
7969         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7970         (rb_python_shutdown): do better garbage collection when shutting down.
7971         Fixes the problem where Python was holding a reference to the shell,
7972         causing RB not to exit.
7974 2006-03-27  James Livingston  <doclivingston@gmail.com>
7976         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7977         336131.
7979 2006-03-27  James Livingston  <doclivingston@gmail.com>
7981         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7982         From bug 334829.
7984 2006-03-26  James Livingston  <doclivingston@gmail.com>
7986         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7987         library location list to NULL after we free it. Fixes bug 336047.
7989 2006-03-26  James Livingston  <doclivingston@gmail.com>
7991         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7993         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7994         supplies. Fixes bug 335947.
7996 2006-03-25  James Livingston  <doclivingston@gmail.com>
7998         * data/glade/audioscrobbler-prefs.glade:
7999         * shell/rb-audioscrobbler.c:
8000         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
8001         "submit songs" checkbox, and make it not disable username/password
8002         entry. This will be needed when we support other last.fm stuff
8003         (profile access, radio, etc).
8005 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
8007         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
8008         Volume should not display stock_volume-0 for volume > 0. Fixes bug
8009         335777.
8011 2006-03-24  James Livingston  <doclivingston@gmail.com>
8013         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8014         (rb_shell_player_sync_play_order),
8015         (rb_shell_player_play_order_update_cb),
8016         (actually_set_playing_source): update the next/previous availablility
8017         in places where it was missing. Fixes bug 335490.
8019 2006-03-24  James Livingston  <doclivingston@gmail.com>
8021         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
8022         can't find the widget
8024         * lib/rb-util.c: (rb_uri_list_parse):
8025         * lib/rb-util.h: add function for parsing a URI list into strings.
8027         * metadata/Makefile.am: make the metdata helper build when linking
8028         with --as-needed
8030         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
8031         g_mkdir_with_parents instead of coding our own.
8033         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
8034         <itunes:author> over <generator>, instead of using whichever comes
8035         last.
8037         * rhythmdb/rhythmdb-private.h:
8038         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
8039         field, as we don't ever check it (to detect corruption). Saves a bit
8040         of memory.
8042 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8044         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
8045         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
8046         Escape '&' and '=' in the paths we get back from
8047         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
8049 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8051         * shell/rb-shell.c: (rb_shell_constructor):
8052         Issue startup notification after creating the main window, so
8053         notification is issued whether the window is visible or not.
8054         Fixes #335086.
8056 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8058         * sources/rb-auto-playlist-source.c: (impl_search),
8059         (rb_auto_playlist_source_query_complete_cb),
8060         (rb_auto_playlist_source_do_query):
8061         * sources/rb-library-source.c: (impl_search),
8062         (rb_library_source_query_complete_cb),
8063         (rb_library_source_do_query):
8064         Defer subset searches (where text is appended to an existing search)
8065         until the original query is complete.
8067 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
8069         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
8071         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8072         (rb_refstring_get_sort_key): fixes for strict-aliasing
8074 2006-03-21  James Livingston  <jrl@ids.org.au>
8076         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
8077         importing a single file. Fixes bug 335307.
8079 2006-03-21  James Livingston  <jrl@ids.org.au>
8081         * shell/Makefile.am: remove the reference to backends/ that I
8082         accidently included.
8084 2006-03-21  James Livingston  <jrl@ids.org.au>
8086         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
8087         with Forte (on Solaris). Closes bug 335318.
8089         * configure.ac:
8090         * lib/Makefile.am:
8091         * player/rb-recorder-gst.c:
8092         * podcast/rb-podcast-parse.c:
8093         * remote/bonobo/Makefile.am:
8094         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
8095         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
8096         (rhythmdb_query_model_add_entry),
8097         (rhythmdb_query_model_add_results):
8098         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
8099         * rhythmdb/rhythmdb.h:
8100         * shell/Makefile.am:
8101         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
8102         (update_speed_combobox):
8103         * sources/rb-sourcelist-model.c:
8105 2006-03-21  James Livingston  <jrl@ids.org.au>
8107         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8109         * player/Makefile.am:
8110         * shell/Makefile.am: work correctly with a separate build root.
8112 2006-03-21  James Livingston  <jrl@ids.org.au>
8114         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
8115         get handed NULL.
8117 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8119         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
8120         Only create ignore entries when importing into the library.  
8121         Ignore entries for files in removable media sources don't help.
8123 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8125         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
8126         * shell/rb-source-header.h:
8127         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
8128         * widgets/rb-search-entry.h:
8129         Add functions to make the search box grab focus.
8131         * shell/rb-shell.c: (rb_shell_cmd_view_all):
8132         Focus the search box after handling the 'view all' action.
8134 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8136         * rhythmdb/rhythmdb.h:
8137         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8138         (rhythmdb_execute_multi_stat_info_cb),
8139         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
8140         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
8141         (action_thread_main):
8142         Collect all the get_file_info requests on startup into one gnome-vfs
8143         job to reduce overhead and avoid contention for the rhythmdb lock.
8144         Add a new method to call when all initial query models are set up.
8145         
8146         * shell/rb-shell.c: (idle_handle_load_complete):
8147         Call rhythmdb startup complete function when we've loaded all the
8148         playlists.  Fixes #334106.
8150 2006-03-20  James Livingston  <jrl@ids.org.au>
8152         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
8153         (rb_entry_view_selection_changed_cb),
8154         (rb_entry_view_have_complete_selection): make has_complete_selection
8155         not slow. Fixes a performance issue I added a week or so ago.
8157 2006-03-20  James Livingston  <jrl@ids.org.au>
8159         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
8160         before passing to strcmp. From bug 334559.
8162 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8164         * configure.ac:
8165         * lib/Makefile.am:
8166         * lib/rb-proxy-config.c:
8167         * lib/rb-proxy-config.h:
8168         Add a new object to watch the HTTP proxy configuration and emit
8169         signals when it changes.
8171         * shell/rb-audioscrobbler.c:
8172         * shell/rb-audioscrobbler.h:
8173         Use rb-proxy-config to watch HTTP proxy configuration.
8175         * shell/rb-shell.c:
8176         Construct rb-proxy-config object on startup, and remove all
8177         audioscrobbler references.
8179         * shell/Makefile.am:
8180         * plugins/audioscrobbler/Makefile.am:
8181         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
8182         Move all audioscrobbler code into the plugin.  We should move
8183         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
8184         point.  Don't use a private data structure in the plugin, since the
8185         class definition isn't in a header file.  Fixes #335091.
8187 2006-03-20  James Livingston  <jrl@ids.org.au>
8189         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
8190         don't enable Next if the source has an EOS type other than
8191         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
8193 2006-03-20  James Livingston  <jrl@ids.org.au>
8195         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
8196         (rb_song_info_forward_clicked_cb): deal with there being no
8197         next/previous entry.
8199         (rb_song_info_query_model_inserted_cb),
8200         (rb_song_info_query_model_deleted_cb),
8201         (rb_song_info_query_model_reordered_cb),
8202         (rb_song_info_query_model_changed_cb): monitor the query for changes,
8203         to update the button status. Fixes bug 333293.
8205 2006-03-20  James Livingston  <jrl@ids.org.au>
8207         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
8208         caused by my last commit
8210 2006-03-20  James Livingston  <jrl@ids.org.au>
8212         * bindings/python/Makefile.am:
8213         * bindings/python/rb.defs:
8214         * bindings/python/rb.override: add python bindings of RBRemoteProxy
8216         * shell/rb-shell.c: (rb_shell_constructor),
8217         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
8218         tray-icon detection slightly
8220 2006-03-19  Steve Frécinaux  <steve@istique.net>
8222         * data/ui/rhythmbox-ui.xml:
8223         * shell/rb-shell.c:
8225         Add an empty Tool Menu (hidden by default) containing placeholders for
8226         plugins.
8228         * configure.ac:
8229         * plugins/Makefile.am:
8230         * plugins/pythonconsole/Makefile.am:
8231         * plugins/pythonconsole/pythonconsole.py:
8232         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
8233         
8234         Python Console plugin
8236 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8238         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
8239         Extra step to encode '&' and '=' to match what gnome-vfs does
8240         internally.
8241         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8242         (rhythmdb_tree_save):
8243         Increment rhythmdb xml version to 1.2, and force another uri
8244         re-canonicalisation when loading v1.1 databases.
8245         Fixes bug #333998.
8247 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8249         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8250         (avahi_client_init), (browse_cb):
8251         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8252         (avahi_client_init):
8253         Fix compilation with Avahi 0.5.x (bug #334551).
8255 2006-03-19  James Livingston  <jrl@ids.org.au>
8257         Add Increase/Decrease Volume menu items and keybindings. From bug
8258         123383.
8260         * data/ui/rhythmbox-ui.xml:
8261         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8262         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8263         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8265 2006-03-19  James Livingston  <jrl@ids.org.au>
8267         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8269         * shell/Makefile.am: fix the link order, so that we compile with
8270         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8272 2006-03-19  James Livingston  <jrl@ids.org.au>
8274         patch by: Adam Petaccia  <adam@tpetaccia.com>
8276         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8277         plugins". Fixes bug 335037.
8279 2006-03-18  James Livingston  <jrl@ids.org.au>
8281         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8282         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8283         332992.
8285         * widgets/rb-header.c: don't make artist/album info in the header the
8286         small size, since it's hard to read.
8288 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8290         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8291         (rhythmdb_finalize): Don't leak the hash tables.
8292         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8293         (rhythmdb_commit_internal): Make sure to process the deletions.
8294         (rhythmdb_entry_delete): Use a hash.
8296         * podcast/rb-podcast-manager.c: Random analness about char*
8297         (rb_podcast_manager_remove_feed): Add debugging.
8298         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8299         the result of gnome_vfs_unlink.  Don't leak a uri.
8301         Fixes #334786
8303 2006-03-18  James Livingston  <jrl@ids.org.au>
8305         * NEWS: update NEWS file
8307 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8309         * rhythmdb/rhythmdb-property-model.c:
8310         (rhythmdb_property_model_prop_changed_cb):
8311         Remove entries from the hash table after processing visible->hidden
8312         changes.
8314 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8316         * sources/rb-daap-source.c (connection_connected_cb) 
8317         (connection_disconnected_cb): Add debug.
8318         (rb_daap_source_get_headers): Check for NULL connection.
8320         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8321         Check return value of rb_daap_source_get_headers.
8323         Fixes #332089
8325 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8327         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8328         Restore the selection after rebuilding the child model, so the
8329         selection is shown correctly after using the 'browse this
8330         album/artist/genre' menu items.
8332 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8334         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8335         Clear the selection before changing the active model.
8336         Fixes crash reported in bug 334549.
8338 2006-03-15  James Livingston  <jrl@ids.org.au>
8340         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8341         (rb_tray_icon_sync_action):
8342         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8343         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8344         for non-libnotify notification bubbles. Fixes bug 331721.
8346 2006-03-15  James Livingston  <jrl@ids.org.au>
8348         Add search-bar options to playlists. Fixes bug 334407.
8350         * sources/rb-auto-playlist-source.c:
8351         (rb_auto_playlist_source_class_init),
8352         (rb_auto_playlist_source_constructor),
8353         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8354         (search_action_to_prop), (search_action_changed):
8355         * sources/rb-static-playlist-source.c:
8356         (rb_static_playlist_source_class_init),
8357         (rb_static_playlist_source_constructor),
8358         (construct_query_from_selection), (impl_get_search_actions),
8359         (search_action_to_prop), (search_action_changed):
8361 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8363         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8364         Remove broken attempt at making the search bar buttons not
8365         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8367 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8369         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8370         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8372 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8374         * widgets/rb-header.c (rb_header_sync): Escape album and
8375         artist before adding to markup.
8377 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8379         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8380         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8381         (rb_header_set_property), (rb_header_get_property),
8382         (rb_header_sync):
8383         Remove the GnomeUrl song links until we can do it properly.
8384         Fixes #334453.
8386 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8388         * shell/rb-source-header.c: (rb_source_header_clear_search):
8389         Remove the stored search text from the hash table, so it doesn't
8390         reappear after switching to another source and back.
8392         * sources/rb-auto-playlist-source.c: (impl_search):
8393         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8394         * sources/rb-static-playlist-source.c: (impl_search):
8395         Make sure all sources treat impl_search(NULL) and impl_search("") the
8396         same.  Fixes #334525.
8398 2006-03-14  James Livingston  <jrl@ids.org.au>
8400         Store which thread created new entries, and make rhythmdb_commit only
8401         insert the entries for the thread that calls it. This stops one thread
8402         calling rhythmdb_commit inserting entries that are half-way through
8403         construction by another thread (as happens with audio cds). From bug
8404         330226.
8406         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8407         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8408         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8409         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8410         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8411         (rhythmdb_process_metadata_load),
8412         (rhythmdb_process_queued_entry_set_event),
8413         (rhythmdb_prop_get_type):
8415 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8417         * rhythmdb/rhythmdb-query-model.c:
8418         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8419         (rhythmdb_query_model_finalize):
8420         Move object unrefs from _finalize into _dispose.
8421         
8422         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8423         Remove extra g_object_ref that was causing query model leaks.
8424         
8425         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8426         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8427         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8428         Remove the cached 'all' query, since it doesn't really help and it
8429         makes the code more complicated.  Attach the genre property view to
8430         the query model build from the search text, so only genres for
8431         stations matching the search terms are displayed.  Preserve the genre
8432         selection across searches.
8434         * widgets/rb-library-browser.c: 
8435         (rb_library_browser_class_init), (rb_library_browser_get_property):
8436         Add properties for the input and output models for the browser, and
8437         remove the 'changed' signal as we can just use notify::output-model.
8438         (ignore_selection_changes),
8439         (selection_restore_data_destroy), (query_complete_cb),
8440         (restore_selection): Helper functions for preserving selections across
8441         query model rebuilds.
8442         (rebuild_output_model):  New function for creating a query model to
8443         use as the display model for a source using the browser.
8444         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8445         g_object_unrefs, reuse the parent's query model when there's no
8446         selection, and use ignore_selection_changes and restore_selection.
8447         (rb_library_browser_set_selection): rebuild_child_model emits the
8448         changed signal, so no need to do it here.
8449         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8450         ignore_selection_changes and restore_selection. 
8451         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8452         flag to rb_library_browser_set_model indicating whether the query is
8453         asynchronous.
8455         * sources/rb-static-playlist-source.c:
8456         (rb_static_playlist_source_class_init),
8457         (rb_static_playlist_source_dispose):
8458         (rb_static_playlist_source_constructor):  Add an extra reference on
8459         the base model, so it doesn't vanish when we set a new display model
8460         based on a search or browser selection.
8461         (impl_search): Ensure the search_text field in the source is NULL if
8462         the search box is empty.
8463         (construct_query_from_selection),
8464         (rb_static_playlist_source_do_query): Use the query model constructed
8465         from the search as the input model for the browser.
8466         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8467         output model as the query model for the source.
8469         * sources/rb-auto-playlist-source.c:
8470         (rb_auto_playlist_source_finalize): Free more stuff.
8471         (rb_auto_playlist_source_constructor),
8472         (rb_auto_playlist_source_browser_changed_cb):
8473         Update for rb-library-browser changes, use the browser's output query
8474         model as the query model for the source.
8475         (impl_reset_filters), (impl_search), 
8476         (rb_auto_playlist_source_do_query),
8477         (rb_auto_playlist_source_set_query):
8478         Use the query model constructed from the search text as the input to
8479         the library browser, and when adding text to an existing search, apply
8480         the new query to the existing query model.
8481         
8482         * sources/rb-library-source.c: (rb_library_source_dispose):
8483         (rb_library_source_finalize): Chain dispose up to the parent class.
8484         (rb_library_source_constructor): Update for rb-library-browser
8485         changes. 
8486         (impl_search): Ensure search_text is NULL if the search box is empty,
8487         and use the subset flag to _do_query if text has been appended to an
8488         existing search.
8489         (search_action_changed), (impl_reset_filters):
8490         (rb_library_source_browser_changed_cb),
8491         (rb_library_source_do_query): Use the browser's output model as the
8492         query model for the source.
8494         Rework library and playlist sources to use a single query chain,
8495         and to limit the entries shown in property views based on the search
8496         terms.  Fixes bug #322787.
8498 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8500         * configure.ac:  Enable metadata helper by default, and fix a typo.
8502 2006-03-13  James Livingston  <jrl@ids.org.au>
8504         Make RBRefStrings lazily create the folded and sort-key strings when
8505         they are first used. This will same some memory by not creating ones
8506         that are never used, and delaying some of the others to when the user
8507         resorts or performs a similar action. Fixes bug 332992.
8509         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8510         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8511         (rb_refstring_get), (rb_refstring_get_folded),
8512         (rb_refstring_get_sort_key), (rb_refstring_hash),
8513         (rb_refstring_equal):
8514         * rhythmdb/rb-refstring.h:
8515         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8517 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8519         * data/ui/rhythmbox-ui.xml:
8520         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8521         * lib/rb-stock-icons.h:
8522         * shell/rb-shell-player.c:
8523         * shell/rb-shell.c: (rb_shell_constructor):
8524         * shell/rb-source-header.c: (force_no_shadow),
8525         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8526         (rb_source_header_class_init), (rb_source_header_init),
8527         (merge_source_ui_cb), (toolbar_set_homogeneous),
8528         (rb_source_header_set_source_internal),
8529         (rb_source_header_set_property), (rb_source_header_get_property),
8530         (rb_source_header_set_source), (rb_source_header_new),
8531         (rb_source_header_filter_changed_cb):
8532         * shell/rb-source-header.h:
8533         * sources/rb-library-source.c: (rb_library_source_class_init),
8534         (rb_library_source_init), (search_action_to_prop),
8535         (search_action_changed), (rb_library_source_constructor),
8536         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8537         (construct_query_from_selection):
8538         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8539         (rb_podcast_source_init), (search_action_to_prop),
8540         (search_action_changed), (rb_podcast_source_constructor),
8541         (construct_query_from_selection), (impl_get_ui_actions),
8542         (impl_get_search_actions):
8543         * sources/rb-source.c: (rb_source_class_init),
8544         (rb_source_get_ui_actions), (default_get_search_actions),
8545         (rb_source_get_search_actions):
8546         * sources/rb-source.h:
8548         Add a search bar.  Fixes #328618
8550 2006-03-12  James Livingston  <jrl@ids.org.au>
8552         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8553         * shell/main.c: (main): make --no-update not stat files checking for
8554         changes, instead of doing nothing. Fixes bug 125177.
8556 2006-03-12  James Livingston  <jrl@ids.org.au>
8558         * podcast/rb-podcast-manager.c:
8559         (rb_podcast_manager_thread_parse_feed):
8560         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8561         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8562         having an invalid mime-type. Fixed bug 329813.
8564 2006-03-12  James Livingston  <jrl@ids.org.au>
8566         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8567         Finally lets us close bug 309609.
8569         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8570         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8571         0.10
8573         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8574         inverted logic of the editable check.
8576 2006-03-12  James Livingston  <jrl@ids.org.au>
8578         Make API doc generation work again. Fixes bug 334276.
8580         * doc/reference/Makefile.am:
8581         * doc/reference/tmpl/rb-debug.sgml:
8582         * doc/reference/tmpl/rb-druid.sgml:
8583         * doc/reference/tmpl/rb-entry-view.sgml:
8584         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8585         * doc/reference/tmpl/rb-metadata.sgml:
8586         * doc/reference/tmpl/rb-shell.sgml:
8587         * doc/reference/tmpl/rhythmbox-unused.sgml:
8588         * doc/reference/tmpl/rhythmdb.sgml:
8590 2006-03-12  James Livingston  <jrl@ids.org.au>
8592         * shell/rb-shell-clipboard.c:
8593         (rb_shell_clipboard_set_source_internal),
8594         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8595         it doesn't have one. Fixes bug 331673.
8597         * sources/rb-source.c: (rb_source_class_init): provide a default
8598         have_url implementation that returns FALSE.
8600 2006-03-12  James Livingston  <jrl@ids.org.au>
8602         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8603         doing a distclean. Fixes bug 334221.
8606         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8608         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8610 2006-03-11  James Livingston  <jrl@ids.org.au>
8612         * shell/rb-shell.c: (rb_shell_window_state_cb),
8613         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8614         update the window width/height when iconified. Stops the window
8615         changing size when it is restored from the tray, fixing bug 333824. 
8617 2006-03-11  James Livingston  <jrl@ids.org.au>
8619         Try to get cvs to actually add the necessary files for plugin support
8621 2006-03-11  James Livingston  <jrl@ids.org.au>
8623         Add a plugin framework, with basic support for Python plugins (based
8624         on gedit's). Closes bug 330523.
8626         * Makefile.am:
8627         * shell/Makefile.am:
8628         * configure.ac: necessary autofoo.
8630         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8632         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8633         * lib/rb-file-helpers.h:
8635         * data/glade/plugins/glade:
8636         * lib/rb-preferences.h:
8637         * plugins/*:
8638         * bindings/*: plugin framework
8640         * plugins/sample/*:
8641         * plugins/sample-python/*: sample plugins
8643         * plugins/audioscrobbler/*:
8644         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8645         (rb_audioscrobbler_set_property),
8646         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8647         submission into a plugin. shell/audioscrobbler.* should really be
8648         moved, but that sucks with cvs.
8650         * shell/rb-shell.h:
8651         * shell/rb-shell.c: (rb_shell_constructor),
8652         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8653         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8654         (rb_shell_quit): start and stop plugin framework.
8656 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8658         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8659         (rhythmdb_entry_delete):
8660         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8661         immediately, so we can't get change notifications afterwards.  
8662         Fixes #331732.
8663         (rhythmdb_process_metadata_load): Add a commit after removing an
8664         entry so we can recreate it with a different type without getting
8665         confused.
8667 2006-03-11  James Livingston  <jrl@ids.org.au>
8669         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8670         use the drive name for audio CDs, use "Unknown CD".
8672 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8674         patch by:  James Henstridge  <james@jamesh.id.au>
8676         * sources/rb-removable-media-source.c:
8677         (rb_removable_media_source_constructor):
8678         Get the device name from the GnomeVFSDrive if possible,
8679         since this is usually a more descriptive name.  Fixes #333080.
8681 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8683         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8685         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8686         Don't automatically download episodes when configured for manual
8687         updating.  Fixes #331564.
8689 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8691         * rhythmdb/rhythmdb-property-model.c:
8692         (rhythmdb_property_model_iter_from_string):
8693         Return an iterator for the 'all' property when name == NULL,
8694         and don't write to *iter if iter == NULL.
8696 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8698         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8699         When switching to the play queue, still call _go_next on the normal
8700         play order, so self-emptying auto playlists ("play count = 0" etc.)
8701         don't restart once the queue is empty.
8703         * shell/rb-tray-icon.c:
8704         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8705         with 'next'.
8707 2006-03-05  James Livingston  <jrl@ids.org.au>
8709         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8710         don't submit tracks which could not be played. Fixed bug 333013.
8712         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8713         tracks which could not be played.
8715 2006-03-05  James Livingston  <jrl@ids.org.au>
8717         Sync musicbrainz lookup code from Sound-Juicer cvs.
8719         * metadata/sj-metadata-musicbrainz.c:
8720         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8721         (get_offline_track_listing), (artist_and_title_from_title),
8722         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8723         (mb_list_albums), (mb_get_submit_url):
8724         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8725         * metadata/sj-metadata.h:
8726         * metadata/sj-structures.c: (track_details_free),
8727         (album_details_free):
8728         * metadata/sj-structures.h:
8730 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8732         * lib/rb-debug.h:
8733         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8734         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8735         (rb_profiler_reset), (rb_profiler_free):
8736         Filter debug output by matching the file and function names against a
8737         match string.
8739         * shell/main.c: (main):
8740         Add -D command line option to specify the debug match string.
8742         * shell/rb-removable-media-manager.c:
8743         (rb_removable_media_manager_mount_volume):
8744         Fix some typos in debug output.
8746 2006-03-03  James Livingston  <jrl@ids.org.au>
8748         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8749         * shell/rb-shell.c: (rb_shell_load_uri):
8750         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8751         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8752         use the new "recurse" property from totem-plparser, if present. Stop
8753         RB hanging for new users who don't have a 'net connection. From bug
8754         331508.
8756 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8758         * shell/rb-removable-media-manager.c:
8759         (rb_removable_media_manager_mount_volume):
8760         * sources/Makefile.am:
8761         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8762         Fix missing files on make dist (conditional files), only build the
8763         N770 support if there's HAL support, as we have no other ways of
8764         detecting it
8766 2006-03-03  James Livingston  <jrl@ids.org.au>
8768         * shell/rb-shell-clipboard.c:
8769         (rb_shell_clipboard_set_source_internal): really fix it this time.
8770         hopefully.
8772 2006-03-03  James Livingston  <jrl@ids.org.au>
8774         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8775         with the idle function not being removed.
8777 2006-03-02  James Livingston  <jrl@ids.org.au>
8779         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8780         * widgets/rb-entry-view.h: add function for determining whether all
8781         entries are selected.
8783         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8784         (rb_shell_clipboard_set_source_internal),
8785         (rb_shell_clipboard_finalize),
8786         (rb_shell_clipboard_idle_poll_deletions),
8787         (rb_shell_clipboard_entryview_changed_cb),
8788         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8789         removals, to update things.
8791         (rb_shell_clipboard_sync): update the Select All and Select None
8792         sensitivity, based on what is selected. Fixed bug 172220.
8794 2006-03-02  James Livingston  <jrl@ids.org.au>
8796         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8797         restore the selections of later models. This means that selecting the
8798         artist for the selected album does not reset the album selection.
8800 2006-03-02  James Livingston  <jrl@ids.org.au>
8802         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8803         Stops it emitting critical warnings.
8805 2006-03-02  James Livingston  <jrl@ids.org.au>
8807         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8808         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8809         second fragment is already escaped.
8811         * sources/rb-generic-player-source.c:
8812         (rb_generic_player_source_class_init),
8813         (rb_generic_player_source_constructor), (impl_show_popup),
8814         (rb_generic_player_source_load_playlists),
8815         (rb_generic_player_source_transform_playlist_uri),
8816         (handle_playlist_entry_cb), (visit_playlist_dirs),
8817         (default_load_playlists), (default_transform_playlist_uri):
8818         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8819         the device. Allow subclasses to override the playlist loading, and
8820         (playlist uri)->(actual uri) mapping. A lot of devices which have
8821         playlists won't work right now, but people will see them and hopefully
8822         file bugs.
8824         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8825         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8826         
8827         * sources/Makefile.am:
8828         + sources/rb-nokia770-source.{c,h}:
8829         * shell/rb-removable-media-manager.c:
8830         (rb_removable_media_manager_mount_volume): Add support for reading
8831         playlists of Nokia 770s.
8833 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8835         * data/glade/podcast-properties.glade:
8836         * podcast/rb-podcast-properties-dialog.c:
8837         (rb_podcast_properties_dialog_init),
8838         (rb_podcast_properties_dialog_update),
8839         (rb_podcast_properties_dialog_update_location),
8840         (rb_podcast_properties_dialog_update_download_location):
8841         Add 'download location' field showing the path to the downloaded copy.
8842         Fixes #330696.
8844 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8846         * configure.ac: simplify HAVE_HAL define
8848 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8850         * configure.ac:
8851         * lib/rb-file-helpers.c: (rb_uri_append_path):
8852         * lib/rb-file-helpers.h:
8853         * shell/rb-removable-media-manager.c:
8854         (rb_removable_media_manager_mount_volume):
8855         * sources/Makefile.am:
8856         * sources/rb-ipod-source.c:
8857         * sources/rb-psp-source.*:
8858         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8859         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8861 2006-03-02  James Livingston  <jrl@ids.org.au>
8863         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8864         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8865         (swap_playing_source), (rb_shell_player_playpause),
8866         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8867         (rb_shell_player_set_playing_source_internal): check for the entry
8868         view being NULL before trying to use it. Lets us support sources which
8869         don't have an entry view. From bug 331673.
8871 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8873         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8874         use gnome_vfs_read_entire_file with a URI, not a local filename
8876 2006-03-01  James Livingston  <jrl@ids.org.au>
8878         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8879         first-seen and last-seen when merging duplicate entries.
8881 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8883         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8884         * widgets/rb-property-view.h:  New function, allowing custom 
8885         interactive search functions for property views.
8886         
8887         * sources/rb-podcast-source.c: 
8888         (feed_select_change_cb): Only do a new query when the selection
8889         actually changes.
8890         (rb_podcast_source_constructor),
8891         (rb_podcast_source_feed_title_search_func):
8892         Interactive search function for podcast feed titles.  Fixes #327451.
8894 2006-03-01  James Livingston  <jrl@ids.org.au>
8896         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8897         the uri in the callback, since it causes symbols to not be escaped.
8898         Fixes bug 332976.
8900         * data/ui/rhythmbox-ui.xml:
8901         * sources/rb-import-errors-source.c:
8902         (rb_import_errors_source_class_init),
8903         (rb_import_errors_source_constructor), (impl_get_status),
8904         (impl_move_to_trash),
8905         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8906         import errors source
8907         
8908         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8909         (rb_entry_view_append_column): unescape the URI for display.
8911 2006-03-01  James Livingston  <jrl@ids.org.au>
8913         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8914         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8915         function fails.
8917 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8919         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8920         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8921         * sources/rb-play-queue-source.c:
8922         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8923         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8924         of "Queued Songs".
8926         Fixes #331637.
8928 2006-03-01  James Livingston  <jrl@ids.org.au>
8930         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8931         Fixes bug 332913.
8933 2006-03-01  James Livingston  <jrl@ids.org.au>
8935         * daapsharing/rb-daap-mdns-browser-howl.c:
8936         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8937         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8938         (rb_daap_mdns_publisher_class_init),
8939         (rb_daap_mdns_publisher_finalize):
8940         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8941         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8942         (rb_recorder_finalize):
8943         * rhythmdb/rhythmdb-query-model.c:
8944         (rhythmdb_query_model_constructor):
8945         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8946         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8947         * sources/rb-playlist-source-recorder.c:
8948         (rb_playlist_source_recorder_style_set),
8949         (rb_playlist_source_recorder_class_init),
8950         (rb_playlist_source_recorder_finalize):
8951         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8952         other classes in the same way, so they don't break when derived from.
8954 2006-03-01  James Livingston  <jrl@ids.org.au>
8956         * sources/rb-generic-player-source.c:
8957         (rb_generic_player_source_constructor): don't get the parent class in
8958         a dumb way, and it breaks when the class is derived from.
8960 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8962         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8964 2006-03-01  James Livingston  <jrl@ids.org.au>
8966         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8967         not work in glib 2.8 systems.
8969 2006-03-01  James Livingston  <jrl@ids.org.au>
8971         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8972         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8973         say it is crap.
8975         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8976         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8977         podcasts on ion-local places
8979         * rhythmdb/gsequence.c: (g_sequence_node_new),
8980         (g_sequence_node_free): use gslice if we are building against glib
8981         2.10.
8983         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8984         local files too, so it doesn't block.
8986 2006-02-28  James Livingston  <jrl@ids.org.au>
8988         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8989         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8990         stats the file. Stops the UI blocking while stats are done.
8992 2006-02-28  James Livingston  <jrl@ids.org.au>
8994         * sources/rb-static-playlist-source.c:
8995         (rb_static_playlist_source_class_init),
8996         (rb_static_playlist_source_constructor), (impl_reset_filters),
8997         (impl_get_property_views), (impl_browser_toggled),
8998         (rb_static_playlist_source_do_query),
8999         (rb_static_playlist_source_browser_changed_cb): add browsers to static
9000         playlists. From bug 118862.
9002         * sources/rb-play-queue-source.c:
9003         (rb_play_queue_source_class_init): disable them for the play queue.
9005 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
9007         * data/glade/library-prefs.glade:  Add a mnemonic.
9008         * sources/rb-library-source.c:
9009         (rb_library_source_location_button_clicked_cb):  Use title
9010         capitalization for window title.
9012 2006-02-28  James Livingston  <jrl@ids.org.au>
9014         * sources/rb-auto-playlist-source.c:
9015         (construct_query_from_selection): don't create a subquery for only one
9016         criteria, as it's a silly effifiency degredation.
9018 2006-02-28  James Livingston  <jrl@ids.org.au>
9020         * rhythmdb/rhythmdb.h:
9021         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9022         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
9023         saved to disk
9025         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
9026         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
9027         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
9028         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
9029         IGNORE (e.g. known video stream) create an entry of the Ignore type.
9030         This will make importing files quicker as we don't need to try files
9031         that we know are not going to be interesting - especially useful when
9032         using the library watching facility.
9034         Fixes bug 323179.
9036 2006-02-28  James Livingston  <jrl@ids.org.au>
9038         * shell/rb-shell.c: (rb_shell_constructor),
9039         (rb_shell_set_visibility): fix browser and source-list pane
9040         positioning, that I broke with the "remember visibility" patch.
9042 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9044         * metadata/rb-metadata-dbus-service.c: (main):
9045         Change argument handling so you can use --debug with the --load and
9046         --can-save test modes.
9047         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
9048         Use a separate GMainContext, not the default one.  Probably fixes
9049         #332344.
9051 2006-02-27  James Livingston  <jrl@ids.org.au>
9053         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
9054         first starting up. Fixes bug 330342.
9056 2006-02-27  James Livingston  <jrl@ids.org.au>
9058         * sources/rb-sourcelist-model.c:
9059         (rb_sourcelist_model_set_dnd_targets):
9060         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
9061         COPY action for draging sources and tracks, not MOVE as well. Stops
9062         Nautilus moving file away, and fixes bug 332488.
9064 2006-02-27  James Livingston  <jrl@ids.org.au>
9066         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
9068         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
9069         and Last Played metadata off iPods. Closes bug 324648.
9071 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9073         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
9074         Disable audioscrobbler when run with the --no-registration flag, since
9075         last.fm doesn't allow multiple concurrent clients per user.
9077 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9079         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
9080         Rename renamable sources when F2 is pressed when the sourcelist has
9081         focus.  Fixes #330700.
9083 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9085         * shell/rb-playlist-manager.c: (cleanup_edit_data),
9086         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
9087         (rb_playlist_manager_cmd_edit_automatic_playlist):
9088         Fix various crashes when deleting auto playlists previously edited
9089         by disconnecting signal handlers when the query editor is closed or
9090         the playlist is deleted.
9092 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9094         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
9095         removed load failure dialog, and actually use the friendly file type
9096         name in error messages.
9098 2006-02-24  James Livingston  <jrl@ids.org.au>
9100         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9102         * sources/rb-library-source.c:
9103         (rb_library_source_location_button_clicked_cb),
9104         (rb_library_source_preferences_sync),
9105         (rb_library_source_library_location_cb): convert the library URI to
9106         for display, and back again. Fixes bug 332356.
9108 2006-02-23  James Livingston  <jrl@ids.org.au>
9110         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9111         (rhythmdb_process_metadata_load), (monitor_subdirectory),
9112         (rhythmdb_sync_library_location): don't monitor files at all if
9113         watching is turned off. From bug 323096.
9115 2006-02-23  James Livingston  <jrl@ids.org.au>
9117         * data/rhythmbox.schemas:
9118         * lib/rb-preferences.h:
9119         * shell/rb-shell.c: (rb_shell_constructor),
9120         (rb_shell_set_visibility): remember main window visibility between
9121         sessions. Fixes bug 127320.
9123 2006-02-23  James Livingston  <jrl@ids.org.au>
9125         * data/glade/library-prefs.glade:
9126         * sources/rb-library-source.c: (impl_get_config_widget),
9127         (rb_library_source_location_button_clicked_cb),
9128         (rb_library_source_preferences_sync),
9129         (rb_library_source_library_location_cb),
9130         (rb_library_source_watch_toggled_cb): change the library-location
9131         widgets from the file-chooser drop menu to a text entry and Browse
9132         button. This is needed to prevent the location from chaning if the
9133         directory cannot be found. Fixes bug 328414.
9135 2006-02-23  James Livingston  <jrl@ids.org.au>
9137         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
9138         item. Fixes bug 329042.
9140 2006-02-23  James Livingston  <jrl@ids.org.au>
9142         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
9144         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
9145         comma in some podcast feeds. Fixes bug 332194.
9147 2006-02-23  James Livingston  <jrl@ids.org.au>
9149         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
9150         lower priority.
9152         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
9153         the internal audio cd URIs from "cdda://device:track" to
9154         "cdda://track#device" as it makes processing much easier.
9156         * shell/rb-shell-player.c: (rb_shell_player_open_location):
9157         * player/rb-player-gst.c: don't have the shell close the player
9158         between songs, as doing that should be backend-specific. Make the
9159         gstreamer backend close before starting a new track, unless the old
9160         and new ones are both tracks on the same audio cd. Just seek in that
9161         case.
9163 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9165         * doc/reference/rhythmbox.types: Fix doc build a bit more.
9167 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9169         * configure.ac: Enable more warnings in my stupid setup too.
9170         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
9171         #332210.
9173 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9175         * sources/rb-missing-files-source.h,
9176         * sources/rb-missing-files-source.c,
9177         * sources/rb-import-errors-source.h,
9178         * sources/rb-import-errors-source.c:
9179         Add library meta-sources, showing missing files and import errors.
9180         Fixes #167763, #142322.
9182         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
9183         * sources/rb-sourcelist-model.h:
9184         * sources/rb-sourcelist.c: (rb_sourcelist_append),
9185         (match_source_to_iter), (rb_sourcelist_source_to_iter),
9186         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
9187         (visibility_notify_cb):
9188         Store source visibility in the sourcelist model, so we can determine
9189         child source counts correctly and get the sourcelist expander column
9190         right.
9191         
9192         * widgets/rb-entry-view.h:
9193         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9194         (rb_entry_view_append_column), (set_column_visibility):
9195         Allow the creator of the entry view to specify which columns are
9196         always visible.
9198         * sources/rb-source.h:
9199         * sources/rb-source.c: (_autohide_update_visibility),
9200         (_rb_autohide_source_row_deleted_cb),
9201         (_rb_autohide_source_row_inserted_cb),
9202         (_rb_source_hide_when_empty):
9203         Allow sources to automatically hide themselves when empty.
9204         
9205         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
9206         * sources/rb-library-source.c: (rb_library_source_constructor):
9207         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9208         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9209         Explicitly specify which columns are always visible.
9210         
9211         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9212         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
9213         Remove load error signal handling and load failure dialog.
9214         Create missing files and import errors sources for the library.
9216         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9217         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
9218         Create DB entries for import errors rather than emitting the 'load
9219         error' signal; mark loaded entries visible.
9220         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
9221         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
9222         (rhythmdb_prop_get_type): Store string form of last seen time for
9223         hidden entries, since it's used in the missing files source.
9224         (rhythmdb_entry_import_error_get_type): 
9225         Add entry type for import errors.
9226         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
9227         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
9228         (rhythmdb_entry_move_to_trash_set_error),
9229         (rhythmdb_entry_move_to_trash):  
9230         Correct spelling, add missing rhythmdb_commit.
9231         * rhythmdb/rhythmdb.h:  
9232         Add import error entry type and last seen string property.
9233         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
9234         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9235         (save_entry):  Ignore string form of 'last seen' property.
9237         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9238         Don't try to play hidden entries or import error entries.
9240         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
9241         * sources/Makefile.am: Add meta-source files
9242         * widgets/Makefile.am: Remove load failure dialog files
9244 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9246         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9247         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
9248         few bits and pieces.
9250 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9252         * metadata/test-metadata.c: (load_metadata_cb):
9253         Fix compile warning for ignoring return value from getcwd, #332064.
9255 2006-02-21  James Livingston  <jrl@ids.org.au>
9257         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9258         (edit_auto_playlist_deleted_cb),
9259         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9260         playlist editor non-modal. Fixes bug 320030.
9262 2006-02-21  James Livingston  <jrl@ids.org.au>
9264         * shell/rb-shell.c: (rb_shell_constructor):
9265         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9266         (rb_header_set_show_artist_album):
9267         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9268         (rb_song_display_box_sync): make the queue sidebar and song display
9269         not get affected by gtk_widget_show_all. Fixes bug 332001.
9271 2006-02-21  James Livingston  <jrl@ids.org.au>
9273         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9275         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9276         feeds which use timezone names instead of offsets. Doesn't actually
9277         parse the timezone name since they are not standardised. Fixes bug
9278         331691.
9280 2006-02-21  James Livingston  <jrl@ids.org.au>
9282         * help/C/figures/rb-notification-area.png:
9283         * help/C/figures/rb-sidebar.png:
9284         * help/C/quick-reference.xml: remove obsolete files from CVS.
9286         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9287         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9288         (rhythmdb_query_free), (rhythmdb_query_serialize),
9289         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9290         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9292         * widgets/rb-query-creator-properties.c: add prefix and suffix
9293         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9294         doesn't escape the ':' separator in uris.
9296 2006-02-21  James Livingston  <jrl@ids.org.au>
9298         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9299         on startup.
9301 2006-02-21  James Livingston  <jrl@ids.org.au>
9303         * NEWS: update with recent changes
9305 2006-02-21  James Livingston  <jrl@ids.org.au>
9307         * shell/rb-shell.c: (rb_shell_constructor),
9308         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9309         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9310         (rb_druid_browse_clicked_cb), (do_response):
9311         * widgets/rb-druid.h: Make running the druid not block RBShell
9312         starting up. This is required so that bonobo registration doesn't time
9313         out. Fixed bug 318766.
9315 2006-02-21  James Livingston  <jrl@ids.org.au>
9317         * rhythmdb/rhythmdb-property-model.c:
9318         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9319         hash table after using it, not before. Fixed bug 331922.
9321 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9323         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9324         (rb_shell_view_queue_as_sidebar_changed_cb):
9325         When playing from the queue, only attempt to highlight the queue
9326         source in the source list if it's actually visible there.  Otherwise,
9327         leave the preempted source highlighted.  Mostly fixes #330819.
9329 2006-02-20  James Livingston  <jrl@ids.org.au>
9331         * rhythmdb/rhythmdb-property-model.c:
9332         (rhythmdb_property_model_row_inserted_cb),
9333         (rhythmdb_property_model_prop_changed_cb),
9334         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9335         store the roperty value in the entry-mapping table, so that receiving
9336         the remove signal from a query model before we get notified of a
9337         change doesn't cause a crash. Fixes bug 331770.
9339 2006-02-20  James Livingston  <jrl@ids.org.au>
9341         * data/ui/rhythmbox-ui.xml:
9342         * sources/rb-play-queue-source.c:
9343         (rb_play_queue_source_class_init),
9344         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9345         playlist things in the queue popup source. From 330490.
9347         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9348         previous commit
9350 2006-02-20  James Livingston  <jrl@ids.org.au>
9352         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9353         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9354         attempt to sync data for non-editable entries when using
9355         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9356         331762.
9358 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9360         * .cvsignore:
9361         * Makefile.am:
9362         * autogen.sh:
9363         * configure.ac:
9364         * help/.cvsignore:
9365         * help/Makefile.am: ported to gnome-doc-utils
9366         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9367         * help/ChangeLog: added, for translators
9368         * help/C/rhytmbox-C.omf: removed, no longer used
9369         Know issue: figures are installed, but some are not showed; manual
9370         description added, but not showed in Yelp while browsing. I'll
9371         investigate, maybe are needed some little changes to
9372         help/C/rhythmbox.xml.
9374 2006-02-20  James Livingston  <jrl@ids.org.au>
9376         * data/ui/rhythmbox-ui.xml:
9377         * help/C/figures/rb-adv.png:
9378         * help/C/figures/rb-asst-finish.png:
9379         * help/C/figures/rb-asst-library.png:
9380         * help/C/figures/rb-asst-start.png:
9381         * help/C/figures/rb-basic.png:
9382         * help/C/figures/rb-browser.png:
9383         * help/C/figures/rb-context-menu.png:
9384         * help/C/figures/rb-empty.png:
9385         * help/C/figures/rb-full-play.png:
9386         * help/C/figures/rb-group-auto.png:
9387         * help/C/figures/rb-group-create.png:
9388         * help/C/figures/rb-group.png:
9389         * help/C/figures/rb-imported.png:
9390         * help/C/figures/rb-iradio-add.png:
9391         * help/C/figures/rb-iradio.png:
9392         * help/C/figures/rb-nextprev.png:
9393         * help/C/figures/rb-nobrowse-play.png:
9394         * help/C/figures/rb-notification-area-menu.png:
9395         * help/C/figures/rb-player.png:
9396         * help/C/figures/rb-prefs-general.png:
9397         * help/C/figures/rb-prefs-ipod.png:
9398         * help/C/figures/rb-prefs-library.png:
9399         * help/C/figures/rb-prefs.png:
9400         * help/C/figures/rb-repeat.png:
9401         * help/C/figures/rb-search.png:
9402         * help/C/figures/rb-shuffle.png:
9403         * help/C/figures/rb-stats.png:
9404         * help/C/figures/rb-toolbar-editor.png:
9405         * help/C/figures/rb-volume-mute.png:
9406         * help/C/figures/rhythmbox-group.png:
9407         * help/C/figures/rhythmbox-tray-icon.png:
9408         * help/C/user-guide.xml: remove old stuff from cvs
9410 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9412         * metadata/rb-metadata-dbus-client.c: 
9413         * metadata/rb-metadata-dbus-service.c:
9414         * metadata/rb-metadata-dbus.c:
9415         * metadata/rb-metadata-dbus.h:
9416         New files, adding an external service for reading and writing
9417         metadata, and an implementation of the RBMetaData interface that uses
9418         dbus to communicate with it.
9419         
9420         * metadata/rb-metadata.h,
9421         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9422         (rb_metadata_get_field_name): Put metadata details in a static array
9423         instead of using a hash table, and add a field for language code (not
9424         used for anything)
9425         * metadata/rb-metadata-gst.c: Updates for changes in
9426         rb-metadata-common.c, fix signal handler closure leak for the typefind
9427         element's have-type signal, and add XML to the list of types we ignore.
9428         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9429         Update for changes to rb_metadata_get_field_type
9430         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9431         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9432         here and there.
9433         
9434         * configure.ac: Add --enable-metadata-helper option (not enabled by
9435         default) to use the external metadata service
9436         * metadata/Makefile.am: Add new files
9437         * metadata/test-metadata.c:  Test program for the metadata service
9439         Fixes #329597. 
9441 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9443         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9444         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9445         (rb_podcast_source_cmd_new_podcast):
9446         Move 'new podcast' action to the podcast source, and add it to the
9447         toolbar.  Fixes #331562.
9449 2006-02-19  James Livingston  <jrl@ids.org.au>
9451         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9452         menus, and away from move-to-trash. Fixes bug 331013.
9454 2006-02-19  James Livingston  <jrl@ids.org.au>
9456         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9457         when deleting last entry. Fixes bug 331712.
9459 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9461         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9462         (rb_entry_view_button_press_cb):
9463         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9464         anywhere, and include a flag indicating whether the click was over an
9465         entry or not.
9466         
9467         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9468         (rb_playlist_source_songs_show_popup_cb):
9469         * sources/rb-playlist-source.h:
9470         Add the 'over entry' flag to the class show popup method, and in the
9471         default handler, ignore right clicks when not over an entry.
9472         
9473         * sources/rb-iradio-source.c:
9474         (rb_iradio_source_songs_show_popup_cb):
9475         * sources/rb-library-source.c:
9476         (rb_library_source_songs_show_popup_cb):
9477         * sources/rb-podcast-source.c:
9478         (rb_podcast_source_songs_show_popup_cb):
9479         Show the source list popup menu when right clicked while not over an
9480         entry.
9482         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9483         For the queue sidebar, always display the popup so the 'clear queue'
9484         action is available regardless of where you click.  For the queue
9485         source, only display the popup when right clicked over an entry.
9486         Fixes #331392.
9488 2006-02-19  James Livingston  <jrl@ids.org.au>
9490         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9491         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9492         entry view, when we're not even using it
9494         * rhythmdb/rhythmdb-property-model.c:
9495         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9496         function, rather than a copy of the code.
9498         * shell/rb-playlist-manager.c:
9499         (rb_playlist_manager_playlist_row_inserted_cb),
9500         (rb_playlist_manager_set_source_internal),
9501         (rb_playlist_manager_playlist_entries_changed): use the query-model
9502         directly, rather than the source's entry view.
9504         * shell/rb-source-header.c: don't use the entry view, just select the
9505         source widget.
9507 2006-02-18  James Livingston  <jrl@ids.org.au>
9509         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9511         * help/C/figures/rb-iradio-main.png:
9512         * help/C/figures/rb-notification-area-menu.png:
9513         * help/C/figures/rb-notification-window.png:
9514         * help/C/figures/rb-notification-zone.png:
9515         * help/C/figures/rb-podcast-main.png:
9516         * help/C/figures/rb-statusbar.png:
9517         * help/C/figures/rb-toolbar-prevplaynext.png:
9518         * help/C/figures/rb-toolbar-repeat.png:
9519         * help/C/figures/rb-toolbar-shuffle.png:
9520         * help/C/figures/rb-toolbar.png:
9521         * help/C/figures/rb-volume-changer.png:
9522         * help/C/figures/rb-window-small.png:
9523         * help/C/figures/rb-window.png:
9524         * help/C/rhythmbox.xml: Update user guide with some of the changes
9525         that have occurred after 0.8.8. From bug 314001.
9527 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9529         * rhythmdb/rhythmdb-query-results.h,
9530           rhythmdb/rhythmdb-query-results.c:
9531         New interface for objects that accept query results from RhythmDB.
9533         * rhythmdb/rhythmdb-query-model.c:
9534         (rhythmdb_query_model_query_results_init),
9535         (rhythmdb_query_model_set_query),
9536         (rhythmdb_query_model_add_results),
9537         (rhythmdb_query_model_query_complete):
9538         * rhythmdb/rhythmdb-query-model.h:
9539         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9541         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9542         (rhythmdb_tree_do_full_query):
9543         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9544         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9545         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9546         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9547         * rhythmdb/rhythmdb.h:
9548         Pass query results through the RhythmDBQueryResults interface, rather
9549         than directly to a RhythmDBQueryModel.
9551         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9552         (rb_podcast_manager_db_entry_deleted_cb):
9553         * sources/rb-auto-playlist-source.c:
9554         (rb_auto_playlist_source_do_query),
9555         (rb_auto_playlist_source_set_query):
9556         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9557         * sources/rb-library-source.c: (rb_library_source_constructor),
9558         (rb_library_source_do_query):
9559         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9560         (rb_podcast_source_do_query):
9561         * rhythmdb/rhythmdb-property-model.c:
9562         (rhythmdb_property_model_drag_data_get):
9563         Cast the query model to RhythmDBQueryResults when passing to one of
9564         the RhythmDB query methods.
9566         * rhythmdb/Makefile.am: Add new files.
9568 2006-02-18  James Livingston  <jrl@ids.org.au>
9570         * data/ui/rhythmbox-ui.xml:
9571         * shell/rb-playlist-manager.c:
9572         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9573         "queue playlist" item to source context menu. Fixes bug 330490.
9575 2006-02-18  James Livingston  <jrl@ids.org.au>
9577         * data/glade/general-prefs.glade:
9578         * shell/rb-shell-preferences.c:
9579         (rb_shell_preferences_column_check_changed_cb),
9580         (rb_shell_preferences_sync):
9581         * sources/rb-library-source.c: (rb_library_source_constructor):
9582         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9583         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9584         (rb_entry_view_append_column): Add a "quality" colume which indicates
9585         the bitrate of media. Part of bug 167659.
9587 2006-02-18  James Livingston  <jrl@ids.org.au>
9589         * shell/rb-play-order.c: (do_next_idle_cb),
9590         (default_playing_entry_removed): move to next track when playing entry
9591         is deleted. Fixes bug 131150.
9593         * shell/rb-shell-player.h: remove ancient stuff
9595 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9597         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9598         (rb_shell_clipboard_set_property): 
9599         * shell/rb-shell.c (rb_shell_sync_party_mode):
9600         Trigger a resync of the clipboard properties when changing party mode.
9602 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9604         * sources/rb-static-playlist-source.c: Fix includes.
9606         * sources/rb-source.c (rb_source_can_rename) 
9607         (rb_source_can_delete, rb_source_can_move_to_trash):
9608         Return FALSE if in party mode.
9610         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9611         Replace fullscreen with party mode.
9612         (rb_shell_window_delete_cb): Don't quit if in party mode.
9613         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9614         (window_state_event_cb): Try to deiconify shell when iconified
9615         in party mode.
9616         (rb_shell_sync_party_mode): Sync party mode properties.
9617         Currently, that means [de]sensitizing close, quit, and small-display,
9618         going into fullscreen mode with window stuck and kept above, and
9619         toggling queue-only for the shell player.
9620         (rb_shell_sync_smalldisplay): Sensitive party mode.
9621         (rb_shell_get_party_mode): Get party mode setting.
9623         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9624         (rb_shell_player_set_property, rb_shell_player_get_property):
9625         Add queue-only property.
9626         (rb_shell_player_entry_activated_cb): If in party mode
9627         only queue the entry on activation.
9629         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9630         Break out from set_properties.  Desensitize some actions when
9631         in party mode.
9632         (rb_playlist_manager_set_property): Break out set_source_internal.
9634         * data/rhythmbox.schemas: Remove fullscreen mode.
9636         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9637         action with party mode.
9639         Partial fix for #323933
9641 2006-02-17  James Livingston  <jrl@ids.org.au>
9643         * configure.ac:
9644         * shell/rb-removable-media-manager.c:
9645         (get_nautilus_burn_drive_for_path),
9646         (rb_removable_media_manager_playing_uri_changed_cb): only use
9647         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9648         over the list when it doesn't.
9650 2006-02-17  James Livingston  <jrl@ids.org.au>
9652         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9653         (rb_iradio_source_first_time_changed): Only do the import on the
9654         first change from FALSE to TRUE.
9656         * sources/rb-library-source.c:
9657         (rb_library_source_preferences_sync),
9658         (rb_library_source_library_location_cb): set the first-run done flag
9659         if the user presses close and then sets their watches library
9660         location. Fixes bug 325997.
9662 2006-02-17  James Livingston  <jrl@ids.org.au>
9664         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9665         removable media manager gobject properties
9667         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9668         (split_drive_from_cdda_uri),
9669         (rb_removable_media_manager_playing_uri_changed_cb),
9670         (rb_removable_media_manager_load_media): stop polling a cd drive
9671         when we are playing from it. Part of bug 330716.
9673 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9675         * rhythmdb/rhythmdb-query-model.c:
9676         (rhythmdb_query_model_set_property),
9677         (rhythmdb_query_model_finalize),
9678         (rhythmdb_query_model_base_entry_removed):
9679         Propagate entry removal from base models out to attached property
9680         models.  Fixes the rest of #331165.
9682 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9684         * rhythmdb/rhythmdb-property-model.c:
9685         (rhythmdb_property_model_row_inserted_cb),
9686         (rhythmdb_property_model_prop_changed_cb),
9687         (rhythmdb_property_model_insert):
9688         Don't store NULL as a hash table value if we want to use
9689         g_hash_table_lookup to check if a key exists, and get the checks for
9690         how and whether to handle entry changes the right way around.
9691         Fixes #331211 and half of #331165.
9693 2006-02-16  James Livingston  <jrl@ids.org.au>
9695         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9696         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9697         Fixes bug 329942.
9699 2006-02-16  James Livingston  <jrl@ids.org.au>
9701         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9702         actually reset the browsers.
9704 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9706         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9707         Escape the strings we pass into libnotify so we don't get blank
9708         notifications when the song name contains '&' etc.  Fixes #330784.
9710 2006-02-16  James Livingston  <jrl@ids.org.au>
9712         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9713         enable "View All" when there is only a search box and no browser.
9714         Fixes bug 331395.
9716 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9718         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9719         popup menu, which I forgot to commit with the patch for bug #330014.
9721 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9723         * shell/rb-shell-player.c: (open_location_thread):
9724         Sync button and entry view state once we've started the player, so the
9725         entry view gets into the playing state for iradio.
9727 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9729         * shell/rb-shell-player.c: (open_location_thread):
9730         Take GDK lock before doing anything UI-related.
9732 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9734         * shell/rb-shell.c: Move 'new iradio station' action to
9735         iradio source.
9737         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9738         (rb_iradio_source_init), (rb_iradio_source_finalize),
9739         (rb_iradio_source_constructor):
9740         Remove some unused stuff.
9742         (guess_uri_scheme), (rb_iradio_source_add_station),
9743         (rb_iradio_source_add_from_playlist),
9744         (impl_get_ui_actions), (new_station_location_added),
9745         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9746         action, include it in the toolbar, and make sure the URI we add has a
9747         scheme.  Fixes #327059, more or less.
9749 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9751         * sources/rb-play-queue-source.c:
9752         (rb_play_queue_source_class_init),
9753         (rb_play_queue_source_constructor),
9754         (rb_play_queue_source_update_count),
9755         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9756         Add a toolbar button to clear the play queue, and make it sensitive
9757         only when there are entries in the queue.  Fixes #330014.
9759         * sources/rb-source.c: (_rb_source_register_action_group):
9760         * sources/rb-source.h:  Add helper function to register an
9761         action group for a source.
9763         * sources/rb-library-source.c: (rb_library_source_constructor):
9764         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9765         (register_action_group):  Use _rb_source_register_action_group.
9767 2006-02-15  James Livingston  <jrl@ids.org.au>
9769         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9770         (rb_song_info_constructor), (rb_song_info_set_property): make
9771         tag-editing completion work for albums too.
9773 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9775         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9776         Check the 'limit' checkbox for time-limited playlists.
9778 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9780         * widgets/rb-song-info.c: Prove text-completion when editing title,
9781         artist or album
9783 2006-02-14  James Livingston  <jrl@ids.org.au>
9785         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9786         tray icon popup menu. Fixes bug 331026.
9788 2006-02-14  James Livingston  <jrl@ids.org.au>
9790         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9791         Ogg Vorbis streams, instead of the MP3 ones.
9793 2006-02-14  James Livingston  <jrl@ids.org.au>
9795         * rhythmdb/rhythmdb-property-model.c:
9796         (rhythmdb_property_model_class_init),
9797         (rhythmdb_property_model_drag_data_get):
9798         * rhythmdb/rhythmdb-query-model.c:
9799         (rhythmdb_query_model_title_sort_func):
9800         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9801         LOCATION as the key. Fixes bug 330601.
9803 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9805         * sources/rb-playlist-source.c: (playlist_iter_func):
9806         Make it compile with older versions of totem-plparser too.      
9808 2006-02-13  James Livingston  <jrl@ids.org.au>
9810         * rhythmdb/rhythmdb.h:
9811         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9812         structure private, since things should use the accessor functions
9813         rather than manipulating it directly - Only RhythmDB and the
9814         implementation classes should access it directly. Part of the RhythmDB
9815         cleanup of bug 330226.
9817         * iradio/rb-station-properties-dialog.c:
9818         (rb_station_properties_dialog_update_title),
9819         (rb_station_properties_dialog_update_title_entry),
9820         (rb_station_properties_dialog_update_genre),
9821         (rb_station_properties_dialog_update_location),
9822         (rb_station_properties_dialog_update_play_count),
9823         (rb_station_properties_dialog_update_bitrate),
9824         (rb_station_properties_dialog_update_last_played),
9825         (rb_station_properties_dialog_update_rating),
9826         (rb_station_properties_dialog_update_playback_error),
9827         (rb_station_properties_dialog_sync_entries):
9828         * podcast/rb-feed-podcast-properties-dialog.c:
9829         (rb_feed_podcast_properties_dialog_update_title),
9830         (rb_feed_podcast_properties_dialog_update_title_label),
9831         (rb_feed_podcast_properties_dialog_update_author),
9832         (rb_feed_podcast_properties_dialog_update_location),
9833         (rb_feed_podcast_properties_dialog_update_copyright),
9834         (rb_feed_podcast_properties_dialog_update_language),
9835         (rb_feed_podcast_properties_dialog_update_summary):
9836         * podcast/rb-podcast-manager.c:
9837         (rb_podcast_manager_entry_downloaded),
9838         (rb_podcast_manager_db_entry_added_cb),
9839         (download_progress_update_cb),
9840         (rb_podcast_manager_db_entry_deleted_cb):
9841         * podcast/rb-podcast-properties-dialog.c:
9842         (rb_podcast_properties_dialog_update_title),
9843         (rb_podcast_properties_dialog_update_title_label),
9844         (rb_podcast_properties_dialog_update_feed),
9845         (rb_podcast_properties_dialog_update_location),
9846         (rb_podcast_properties_dialog_update_play_count),
9847         (rb_podcast_properties_dialog_update_bitrate),
9848         (rb_podcast_properties_dialog_update_last_played),
9849         (rb_podcast_properties_dialog_update_rating),
9850         (rb_podcast_properties_dialog_update_date),
9851         (rb_podcast_properties_dialog_update_description):
9852         * rhythmdb/rhythmdb-query-model.c:
9853         (rhythmdb_query_model_entry_changed_cb),
9854         (rhythmdb_query_model_remove_from_main_list),
9855         (rhythmdb_query_model_update_limited_entries),
9856         (rhythmdb_query_model_drag_data_get),
9857         (rhythmdb_query_model_album_sort_func):
9858         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9859         (save_entry):
9860         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9861         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9862         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9863         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9864         (rhythmdb_entry_get_double):
9865         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9866         * shell/rb-play-order-random-by-age-and-rating.c:
9867         (rb_random_by_age_and_rating_get_entry_weight):
9868         * shell/rb-play-order-random-by-age.c:
9869         (rb_random_by_age_get_entry_weight):
9870         * shell/rb-play-order-random-by-rating.c:
9871         (rb_random_by_rating_get_entry_weight):
9872         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9873         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9874         (rb_shell_player_set_playing_entry),
9875         (rb_shell_player_sync_replaygain),
9876         (rb_shell_player_sync_with_source),
9877         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9878         * sources/rb-playlist-source.c: (playlist_iter_func),
9879         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9880         (rb_playlist_source_entry_added_cb):
9881         * sources/rb-podcast-source.c:
9882         (rb_podcast_source_post_status_cell_data_func):
9883         * sources/rb-source.c: (rb_source_update_play_statistics):
9884         * sources/rb-sourcelist-model.c:
9885         (rb_sourcelist_model_drag_data_get):
9886         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9887         (rb_static_playlist_source_add_entry),
9888         (rb_static_playlist_source_remove_entry):
9889         * widgets/rb-entry-view.c: (type_ahead_search_func),
9890         (rb_entry_view_playing_cell_data_func),
9891         (rb_entry_view_rating_cell_data_func),
9892         (rb_entry_view_pixbuf_clicked_cb):
9893         * widgets/rb-header.c: (rb_header_get_duration):
9894         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9895         (rb_song_info_populate_dialog),
9896         (rb_song_info_update_playback_error),
9897         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9898         (rb_song_info_update_location), (rb_song_info_update_play_count),
9899         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9900         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9901         (rb_song_info_sync_entry_single): fix the huge number of times that
9902         the internals got accessed directly.
9904 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9906         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9907         trash' are grouped together.
9908         * shell/main.c: (main): Pass no-registration flag in to RBShell
9909         constructor, rather than mysteriously always passing TRUE.
9910         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9911         Set dirty flag when entries are removed from the model, so the play
9912         queue is marked dirty appropriately.
9913         * AUTHORS: update my email address
9915 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9917         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9919         * widgets/rb-druid.c: (path_dialog_response_cb):
9920         If the URI is local, don't display the 'file://' prefix.  
9921         Fixes #330919.
9923 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9925         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9926         Attach the notification to the tray icon widget, so libnotify
9927         positions it less badly.  Fixes #330876.
9929 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9931         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9932         Reverse the selection list before returning it, so we get it in the
9933         right order.  Fixes #330283 and some other weirdness.
9935 2006-02-11  James Livingston  <jrl@ids.org.au>
9937         * shell/rb-shell.c: (rb_shell_constructor),
9938         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9939         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9940         make small-mode and fullscreen mutually exclusive, since they don't
9941         work together
9943         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9944         Mode.
9946 2006-02-10  James Livingston  <jrl@ids.org.au>
9948         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9949         since it can cause it to be slower than real-time. Should fix bug
9950         322270.
9952 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9954         * rhythmdb/rhythmdb-query-model.c:
9955         (rhythmdb_query_model_set_property):
9956         Think just a little bit harder about that last commit.
9958 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9960         * rhythmdb/rhythmdb-query-model.c:
9961         (rhythmdb_query_model_set_property):
9962         Get the check for hidden entries the right way around.
9963         Fixes #330527, #330514.
9965         (rhythmdb_query_model_set_sort_order):
9966         Ignore no-op sort order changes, so we don't get critical
9967         messages when selecting 'all' in auto playlist browsers.
9969 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9971         Patch by: Christophe Fergeau  <teuf@gnome.org>
9973         * sources/rb-removable-media-source.c:
9974         (rb_removable_media_source_init),
9975         (rb_removable_media_source_constructor):
9976         Move icon setup code to the constructor, as the volume property
9977         haven't been set yet when _init is called.
9979 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9981         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9982         Make the source pixbuf a dynamic property.
9984         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9985         (rb_source_set_pixbuf, rb_source_set_property) 
9986         (rb_source_get_property): Add icon property.
9988         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9989         (rb_auto_playlist_source_init):
9990         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9991         (rb_static_playlist_source_init):
9992         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9993         (rb_removable_media_source_init): 
9994         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9995         (rb_podcast_source_init): 
9996         * sources/rb-library-source.c (rb_library_source_class_init) 
9997         (rb_library_source_set_property, rb_library_source_get_property): 
9998         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9999         (rb_iradio_source_init): Remove impl_get_pixbuf and
10000         set icon property on source base class.
10002         * sources/rb-daap-source.c (rb_daap_get_icon): Get
10003         a different icon for when the share is password protected
10004         and locked.
10005         (rb_daap_source_new): Set icon property.
10006         (composite_icons): Composite an emblem on a pixbuf.
10007         (create_pixbufs): Load global pixbufs.
10008         (destroy_pixbufs): unref global pixbufs.
10009         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
10010         (connection_auth_cb, connection_connected_cb) 
10011         (connection_disconnected_cb): Update icon when connection
10012         status changes.
10013         (rb_daap_source_activate): Connect signals.
10015         * daapsharing/rb-daap-share.c (name_collision_cb): Run
10016         dialog with parent.
10018         * daapsharing/rb-daap-marshal.list: Add new signal.
10020         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
10021         (rb_daap_collision_dialog_new_run): Set parent of dialog.
10023         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
10024         Add authenticate, connected, and disconnected signals.
10025         (connection_get_password): emit authenticate signal instead
10026         of running dialog directly.
10027         (connection_connected, connection_disconnected): Emit signals.
10028         (handle_login): Emit connected signal.
10029         (handle_logout): Emit disconnected signal.
10030         (rb_daap_connection_do_something): Fix leak.
10032         Fixes #330291
10034 2006-02-09  James Livingston  <jrl@ids.org.au>
10036         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
10037         entries from the base model if we don't have show-hidden set. Fixes
10038         bug 330514.
10040 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10042         * daapsharing/rb-daap-share.c (message_get_session_id):
10043         Ugh. Use strtoul instead of atoi.
10044         (session_id_validate): Add debug statements.
10046 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10048         * daapsharing/rb-daap-connection.c (http_response_handler):
10049         Report the actual uri from the message in debug statements.
10051 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10053         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
10054         Add context argument.
10055         (message_get_session_id): New function to parse session id from
10056         the message.
10057         (message_get_revision_number): Break out function to parse
10058         revision number from the message.
10059         (session_id_validate): New function to validate given session id
10060         is valid for given context (ie. client address).
10061         (session_id_generate): Generate a random session id.
10062         (session_id_create): Create a unique session id and store it.
10063         (session_id_remove): Remove a session id from the store.
10064         (login_cb): Create a session id instead of using a constant one.
10065         (logout_cb): Validate session id.
10066         (update_cb): Use new message_get_revision_number function.
10067         (databases_cb): Validate session id.
10068         (server_cb): Add server context to argument list for callbacks.  It
10069         is needed to look up the remote host.
10070         (db_entry_changed_cb): Use braces.
10071         (soup_auth_callback): Remove FIXME.
10072         (rb_daap_share_server_start): Create session id store.
10073         (rb_daap_share_server_stop): Destroy session id store.
10075         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
10076         Don't base64-encode password here since it needs to be
10077         combined with the username first.
10079         * daapsharing/rb-daap-connection.c (build_message):
10080         Add username to Authorization token.
10081         (handle_login, handle_song_listing) 
10082         (rb_daap_connection_do_something): Session id
10083         must be an unsigned int.
10085         Fixes #329814
10087 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10089         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10090         Don't check if we've got a playing entry, ask the player object (duh).
10091         Might actually fix #329993.     
10093 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10095         * sources/rb-static-playlist-source.c:
10096         (rb_static_playlist_source_add_list_uri):
10097         Canonicalise URIs before trying to add them to the playlist, and 
10098         don't try to add files to the database for which there is 
10099         already an entry.
10101 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10103         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10104         Don't ask the entry view if we're playing, just check if we've got a
10105         playing entry.  Fixes #329993.
10107 2006-02-08  James Livingston  <jrl@ids.org.au>
10109         * rhythmdb/rhythmdb-query-model.c:
10110         (rhythmdb_query_model_set_property),
10111         (rhythmdb_query_model_finalize),
10112         (rhythmdb_query_model_base_complete): remove
10113         rhythmdb_query_model_base_entry_prop_changed, so that two signals
10114         don't get emitted for entry changes. Fixes bug 330301.
10116         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
10117         (rb_library_browser_init), (rb_library_browser_constructor),
10118         (rb_library_browser_new): do stuff in the constructor, not the init
10119         function, so that the db property gets set on RBPropertyViews
10120         correctly. Fixes a crash when dragging properties to a playlist.
10122 2006-02-07  William Jon McCann  <mccann@jhu.edu>
10124         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
10125         Actually stop soup server.  Fixes #329816.
10127 2006-02-07  James Livingston  <jrl@ids.org.au>
10129         * lib/rb-util.h:
10130         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
10131         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
10132         (collate_values_cb), (rb_collate_hash_table_keys),
10133         (rb_collate_hash_table_values): add functions to compare, copy and
10134         free string-lists. add functions to collate the keys or values of a
10135         hash table into a list.
10137         * rhythmdb/rhythmdb-property-model.c:
10138         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
10139         (_remove_entry_cb), (_add_entry_cb),
10140         (rhythmdb_property_model_set_property),
10141         (rhythmdb_property_model_get_property),
10142         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10143         (rhythmdb_property_model_row_inserted_cb),
10144         (rhythmdb_property_model_prop_changed_cb),
10145         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
10146         that are hidden, storing those that we have counted in a hash-table.
10148         * shell/Makefile.am: fix build order issue
10150         * shell/rb-shell-player.c: (rb_shell_player_set_property):
10151         * sources/rb-source.h:
10152         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10153         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10154         * sources/rb-podcast-source.c: (feed_select_change_cb): add
10155         browser-toggled method, rename _get_exta_views to _get_property_views,
10156         since several things depend on returning only that.
10158         * sources/rb-source.c: (rb_source_class_init),
10159         (rb_source_browser_toggled), (default_get_property_views),
10160         (rb_source_get_property_views), (rb_source_row_deleted_cb),
10161         (rb_source_gather_hash_keys),
10162         (rb_source_gather_selected_properties): above changes, and move some
10163         utility functions up from RBLibraryView
10165         * widgets/rb-property-view.c:
10166         (rb_property_view_selection_changed_cb): fix leak.
10168         * rhythmdb/rhythmdb-query-model.c:
10169         (rhythmdb_query_model_set_property),
10170         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
10171         (rhythmdb_query_model_set_sort_order),
10172         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
10173         query model being resorted.
10175         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
10176         NULL query.
10178         * rhythmdb/rhythmdb.h:
10179         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
10180         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
10181         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
10182         two queries. Add a function to append "property={X,Y,Z,...}" to a
10183         query.
10185         * sources/rb-library-source.c: (rb_library_source_class_init),
10186         (rb_library_source_finalize), (rb_library_source_constructor),
10187         (rb_library_source_cmd_choose_genre),
10188         (rb_library_source_cmd_choose_artist),
10189         (rb_library_source_cmd_choose_album), (impl_search),
10190         (impl_get_property_views), (impl_reset_filters),
10191         (rb_library_source_preferences_sync),
10192         (rb_library_source_browser_views_activated_cb),
10193         (rb_library_source_state_prefs_sync),
10194         (construct_query_from_selection), (rb_library_source_do_query),
10195         (rb_library_source_browser_changed_cb):
10196         * widgets/Makefile.am:
10197         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
10198         browser" widgets, which contains several property views, based on the
10199         code from RBLibrarySource. Make RBLibrarySource use it.
10201         * sources/rb-auto-playlist-source.c:
10202         (rb_auto_playlist_source_class_init),
10203         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
10204         (rb_auto_playlist_source_constructor), (impl_reset_filters),
10205         (impl_get_property_views), (impl_browser_toggled),
10206         (construct_query_from_selection),
10207         (rb_auto_playlist_source_do_query),
10208         (rb_auto_playlist_source_set_query),
10209         (rb_auto_playlist_source_browser_changed_cb): Use the new
10210         library-browser widget to add browsers to automatic playlists.
10212 2006-02-07  James Livingston  <jrl@ids.org.au>
10214         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
10215         properly.
10216         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
10217         type of the source is taken into account. Fixes bug 329621.
10219 2006-02-07  James Livingston  <jrl@ids.org.au>
10221         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10222         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
10223         1.1, and perform URI canonicalistion when first upgrading. This should
10224         fix our remaining canonicalisation issues, such as bug 329988.
10226 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10228         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
10229         Track the playing entry when the entry view isn't in the playing
10230         state, so we don't have to get the state changes exactly right.
10231         Fixes #330135.
10233 2006-02-06  James Livingston  <jrl@ids.org.au>
10235         * shell/rb-shell-player.c: (open_location_thread),
10236         (rb_shell_player_open_location): fix several iradio issues: having to
10237         press play after double-clicking on a station, not working correctly
10238         without a http:// prefix, and ignoring totem-plparser results other
10239         than success or error (e.g. IGNORE).
10241 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10243         Addition of dbus methods for dealing with static playlists and the
10244         play queue.  Fixes #329958.
10246         * shell/Makefile.am:
10247         * shell/rb-playlist-manager.h:
10248         * shell/rb-playlist-manager.xml:
10249         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10250         (rb_playlist_manager_get_playlists),
10251         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10252         (rb_playlist_manager_create_static_playlist),
10253         (rb_playlist_manager_delete_playlist),
10254         (rb_playlist_manager_add_to_playlist),
10255         (rb_playlist_manager_remove_from_playlist),
10256         (rb_playlist_manager_export_playlist):
10257         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10258         to create, delete, list, modify, export, and import  static playlists.
10259         
10260         * shell/main.c: (main): Register playlist manager object with dbus.
10262         * shell/rb-shell.h:
10263         * shell/rb-shell.xml:
10264         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10265         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10266         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10267         object, and implement the addToQueue and removeFromQueue methods.
10268         
10269         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10270         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10271         formats.
10273 2006-02-05  James Livingston  <jrl@ids.org.au>
10275         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10276         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10277         (save_entry): allow storage of booleans in the on-disk db, and
10278         save/load the HIDDEN property.
10280         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10281         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10282         to the state it was when RB shutdown. This makes RB appear to start
10283         faster, as tracks can appear before the stat is done. Remote files
10284         still start hidden. From bug 325215.
10286 2006-02-05  James Livingston  <jrl@ids.org.au>
10288         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10289         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10290         really cares about the difference from "entry-added", and it isn't
10291         emitted by the tree backend anyway.
10293         * rhythmdb/rhythmdb-query-model.c:
10294         (rhythmdb_query_model_constructor):
10295         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10296         remove the references to the entry-restored signal.
10298 2006-02-05  James Livingston  <jrl@ids.org.au>
10300         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10301         issue.
10303 2006-02-05  James Livingston  <jrl@ids.org.au>
10305         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10306         things are NULL before using g_object_unref. Fixes bug 327452.
10308         * player/rb-recorder-gst.c: (rb_recorder_construct):
10309         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10310         rather than assertion.
10312         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10313         emit a warning, rather than asserting if an unknown playlist type is
10314         encountered.
10316 2006-02-05  James Livingston  <jrl@ids.org.au>
10318         * widgets/Makefile.am:
10319         * widgets/rb-simple-view.c:
10320         * widgets/rb-simple-view.h: Move the two features that this class
10321         provides into RBPropertyView, and remove this class. Closes bug
10322         327500.
10324         * podcast/rb-feed-podcast-properties-dialog.c:
10325         * podcast/rb-feed-podcast-properties-dialog.h:
10326         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10327         (rb_podcast_source_feeds_show_popup_cb):
10328         * sources/rb-podcast-source.h:
10329         * widgets/rb-property-view.c: (rb_property_view_class_init),
10330         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10331         (rb_property_view_append_column_custom),
10332         (rb_property_view_button_press_cb):
10333         * widgets/rb-property-view.h: Updated for the above change.
10335 2006-02-04  James Livingston  <jrl@ids.org.au>
10337         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10338         too close to Move to Trash and people aren't likely to use it often.
10340 2006-02-04  James Livingston  <jrl@ids.org.au>
10342         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10344 2006-02-04  James Livingston  <jrl@ids.org.au>
10346         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10347         passed a path instead of a URI.
10349         * sources/rb-generic-player-source.c: (default_get_mount_path):
10350         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10351         the path. This fixes bug 329723.
10353 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10355         * daapsharing/rb-daap-structure.c:
10356         (rb_daap_content_code_string_as_int32):
10357         Use network byte order.
10359 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10361         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10362         Use a hash for source lookup.
10363         (mdns_service_added, mdns_service_removed): Handle
10364         service-added and service-removed signals from RBDaapMdnsBrowser.
10365         (remove_source): GDestroyNotify function for when sources
10366         are removed from the hash.
10367         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10368         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10369         (rb_daap_sources_shutdown): Update.
10370         (source_host_find): GHRFunc for finding a source by ip.
10371         (rb_daap_source_find_for_uri): Use the hash source lookup.
10373         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10374         Namespace keys.
10375         (password_check_button_toggled_cb): Handle password enabled.
10376         (share_name_entry_focus_out_event_cb): Namespace keys.
10377         Handle changes more robustly.
10378         (share_password_entry_focus_out_event_cb): Handle password entry.
10379         (add_daap_preferences): Connect to password signals.
10381         * lib/rb-preferences.h: Add DAAP keys.
10383         * data/glade/daap-prefs.glade: Add password UI.
10385         * data/rhythmbox.schemas: Add password keys.
10387         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10388         assert with warning.
10390         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10391         gconf keys to lib/rb-preferences.h.  Namespace
10392         the gconf keys.
10393         (create_share): Add password support.
10394         (enable_sharing_changed_cb): Namespaced keys.
10395         (require_password_changed_cb): Handle key change.
10396         (share_name_changed_cb): Namespaced keys.
10397         (share_password_changed_cb): Handle key change.
10398         (rb_daap_sharing_init): Namespaced keys.
10399         (rb_daap_sharing_shutdown): Ditto.
10401         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10402         Add password property.
10403         (rb_daap_share_set_name): Break out prop set function.
10404         (published_cb): New RBDaapMdnsPublisher signal handler.
10405         (name_collision_cb): Ditto.
10406         (rb_daap_share_init): Create publisher object and
10407         connect to signals.
10408         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10409         (rb_daap_share_set_property): Break out prop set functions.
10410         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10411         Unref publisher.
10412         (rb_daap_share_new): Add password argument.  Start
10413         publishing and DAAP server.
10414         (message_set_from_rb_daap_structure): Change print to debug.
10415         (server_info_cb): Set auth method to publish.
10416         (logout_cb): Handle DAAP client logout.
10417         (update_cb): Remove C++ comments.
10418         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10419         (server_cb): Add debug.
10420         (soup_auth_callback): Handle auth requests.
10421         (rb_daap_share_server_start): Split up functions for starting
10422         server and publishing.  Add auth handling to server.
10423         (rb_daap_share_server_stop): Split stop server and publish.
10424         No C++ comments.
10425         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10426         Start and stop publishing.
10427         (rb_daap_share_restart): Restart server and publishing.
10428         (rb_daap_share_maybe_restart): Conditionally restart.
10430         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10431         (rb_daap_collision_dialog_new_run): Don't use
10432         separators in dialogs.
10434         * daapsharing/rb-daap-connection.h: Add private
10435         data to class structure.
10437         * daapsharing/rb-daap-connection.c: Move
10438         some includes to top of file.  Make private
10439         data struct name consistent with others.
10440         (rb_daap_connection_class_init): Rename
10441         private.
10442         (rb_daap_connection_init): Get and store the pointer
10443         to the private data once instead of in every
10444         function.  Create a username value "Rhythmbox_VERSION".
10445         (connection_get_password): Don't get private.
10446         (build_message): Ditto.
10447         (http_response_handler): Don't init variables in
10448         declaration.  Add debug.  Spacing.
10449         (http_get, entry_set_string_prop, handle_server_info) 
10450         (handle_login, handle_update, handle_database_info) 
10451         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10452         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10453         (rb_daap_connection_state_done): Don't get private.
10454         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10455         spacing.  Correctly base64 encode the Authentication token.
10456         Add username to auth token.
10457         (rb_daap_connection_get_playlists): Don't get private.
10458         (rb_daap_connection_dispose): Ditto.  Free username.
10459         (rb_daap_connection_set_property) 
10460         (rb_daap_connection_get_property): Don't get private.
10462         * daapsharing/Makefile.am: Conditionally
10463         compile MDNS backends.  Add marshall stuff.
10465         * daapsharing/.cvsignore: Update.
10467         * configure.ac: Add conditional to see which
10468         MDNS backend we should use.
10470         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10472         * daapsharing/rb-daap-marshal.list:
10473         * daapsharing/rb-daap-mdns-browser-avahi.c:
10474         * daapsharing/rb-daap-mdns-browser-howl.c:
10475         * daapsharing/rb-daap-mdns-browser.h:
10476         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10477         * daapsharing/rb-daap-mdns-publisher-howl.c:
10478         * daapsharing/rb-daap-mdns-publisher.h:
10479         Split rb-daap-mdns.c into two classes.  One for
10480         publishing and one for browsing.  Split out
10481         the avahi and howl backends into different files.
10483         Fixes #322966
10484         
10485 2006-02-04  James Livingston  <jrl@ids.org.au>
10487         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10489         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10490         crash if metadata reader gives us NULL for strings.
10492 2006-02-03  James Livingston  <jrl@ids.org.au>
10494         * shell/rb-shell-player.c: (open_location_thread),
10495         (rb_shell_player_open_location):
10496         retrieve iradio playlists files in a thread, so that with GStreamer
10497         0.10 the UI doesn't block while connecting to stations. The streamer
10498         connection is synchronous with 0.8, so that will still block (a bit).
10499         Fixed bug 128106.
10501         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10502         because _open_entry does that automatically when it is ready to.
10504 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10506         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10507         (rb_podcast_source_post_status_cell_data_func):
10508         Leave the podcast status column blank for episodes that have not been
10509         downloaded.
10511 2006-02-03  James Livingston  <jrl@ids.org.au>
10513         Add support for source-specific toolbar items, and make the Burn
10514         Playlist item only available for playlists. Also add Update All
10515         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10517         * data/ui/rhythmbox-ui.xml:
10518         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10519         (impl_get_ui_actions): make the Burn CD toolbar item only for
10520         playlists
10522         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10523         * lib/rb-stock-icons.h: load the Eject icon as stock.
10525         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10526         action
10528         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10529         (rb_shell_select_source):
10530         * sources/rb-source.c: (rb_source_class_init),
10531         (rb_source_disconnect), (default_get_ui_actions),
10532         (rb_source_get_ui_actions):
10533         * sources/rb-source.h: add support for source-specific toolbar items
10535         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10536         Eject and Rip toolbar items
10538         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10539         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10540         item.
10542 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10544         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10545         * shell/main.c: (main):
10546         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10547         Replace all g_critical calls with g_warning, since none of them are
10548         the sort of thing the process should die over.  Fixes #329398.
10550 2006-02-03  James Livingston  <jrl@ids.org.au>
10552         * configure.ac: mention gst-plugins-base in the error message for not
10553         finding GStreamer 0.10, since not having that will cause it to fail.
10555 2006-02-03  James Livingston  <jrl@ids.org.au>
10557         * configure.ac: fix typo that means you get the wrong error message if
10558         you explicity request a particular playback engine, and it can't be
10559         found.
10561 2006-02-03  James Livingston  <jrl@ids.org.au>
10563         * data/glade/library-prefs.glade: allow the watched library location
10564         to be a non-local place.
10566 ============ Version 0.9.3
10569 2006-02-02  James Livingston  <jrl@ids.org.au>
10571         * NEWS: update NEWS
10572         * configure.ac: bump version to 0.9.3
10574         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10575         <caillon@redhat.com>, fixed bug 329517. 
10577 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10579         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10581         * widgets/rb-song-info.c: (rb_song_info_constructor):
10582         Make year and disc number fields non-editable if tag editing
10583         is disabled.  Fixes #329463.
10585 2006-02-01  James Livingston  <jrl@ids.org.au>
10587         * rhythmdb/rhythmdb-property-model.c:
10588         (rhythmdb_property_model_row_inserted_cb),
10589         (rhythmdb_property_model_prop_changed_cb),
10590         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10591         correctly. Fixes bug 327061.
10593         * rhythmdb/rhythmdb-query-model.c:
10594         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10595         the HIDDEN property when an entry is removed for being hidden.
10597         * rhythmdb/rhythmdb-query-model.h:
10598         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10599         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10600         models's "connected" property. Whatever it was needed for seems to
10601         have gone.
10603 2006-02-01  James Livingston  <jrl@ids.org.au>
10605         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10607         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10608         (rb_shell_player_playing_changed_cb): block the signal to prevent
10609         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10610         button pausing.
10612 2006-02-01  James Livingston  <jrl@ids.org.au>
10614         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10615         /should/ now work, if the neccessary plugins get ported.
10617 2006-01-30  James Livingston  <jrl@ids.org.au>
10619         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10620         string properties to "Unknown" is the string is empty. Kind of fixes
10621         bug 327495.
10623         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10624         gettext calls once, rather than once per time the function is used.
10625         This stops us making tens of thousands of gettext calls on startup,
10626         which reduces the cpu-time of startup by 10-20%
10628 2006-01-29  James Livingston  <jrl@ids.org.au>
10630         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10631         (rhythmdb_add_uri):
10632         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10633         for files containing known video streams.
10636 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10638         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10639         required.
10641 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10643         * INSTALL.quick: More random updates
10645         * rhythmdb/rhythmdb-query-model.c:
10646         (rhythmdb_query_model_class_init),
10647         (rhythmdb_query_model_set_property),
10648         (rhythmdb_query_model_get_property),
10649         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10650         Remove user sort data handling, take a property ID and a reverse
10651         flag instead.
10652         (rhythmdb_query_model_insert_into_main_list),
10653         (rhythmdb_query_model_insert_into_limited_list),
10654         (rhythmdb_query_model_do_reorder),
10655         (_reverse_sorting_func):
10656         Handle reverse sorting by calling _reverse_sorting_func, which
10657         calls the real sort function and reverses the result.
10658         (rhythmdb_query_model_set_sort_order):
10659         Allow this to be called to set the initial sort order for limited
10660         queries, and handle reverse sorting when reordering.
10661         (rhythmdb_query_model_location_sort_func),
10662         (rhythmdb_query_model_album_sort_func),
10663         (rhythmdb_query_model_artist_sort_func),
10664         (rhythmdb_query_model_genre_sort_func),
10665         (rhythmdb_query_model_track_sort_func),
10666         (rhythmdb_query_model_double_ceiling_sort_func),
10667         (rhythmdb_query_model_ulong_sort_func),
10668         (rhythmdb_query_model_date_sort_func),
10669         (rhythmdb_query_model_string_sort_func):
10670         Sort functions moved from rb-entry-view.c.
10671         * rhythmdb/rhythmdb-query-model.h:
10672         Add the sort functions, and update the changed functions.
10673         
10674         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10675         Just call _resort_model when the query model is set, since it
10676         does all the same things.
10677         (rb_entry_view_append_column):
10678         Rework bits so the rating column doesn't have to be so much of a
10679         special case.
10680         (rb_entry_view_append_column_custom):
10681         Take a property ID to sort on, rather than arbitrary custom data.
10682         (rb_entry_view_resort_model):
10683         Query model does all the reverse sort handling now.
10684         * widgets/rb-entry-view.h: Update _append_column_custom.
10686         * sources/rb-play-queue-source.c:
10687         (rb_play_queue_source_constructor):
10688         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10689         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10690         (rb_podcast_source_post_date_cell_sort_func),
10691         (rb_podcast_source_post_status_cell_sort_func),
10692         (rb_podcast_source_post_feed_cell_sort_func):
10693         Updates required by all the other changes.
10695         * rhythmdb/rhythmdb-property-model.c:
10696         (rhythmdb_property_model_drag_data_get):
10697         Sort the query results on the selected property,
10698         so they arrive in the expected order.  All the other changes were made
10699         to make this possible.  Fixes bug #327494.
10701 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10702         
10703         * shell/rb-shell-clipboard.c:
10704         Use GTK_STOCK_REMOVE icon for the remove action in
10705         the play queue too.
10707 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10709         * sources/rb-play-queue-source.c:
10710         (rb_play_queue_source_constructor),
10711         (rb_play_queue_source_update_count):
10712         Don't make the 'queued songs' column clickable,
10713         and add the queued song count to the column title.
10715 2006-01-29  James Livingston  <jrl@ids.org.au>
10717         * configure.ac: remove "experimental" marking from DAAP, and enable by
10718         default if the dependencies are found.
10720 2006-01-29  James Livingston  <jrl@ids.org.au>
10722         * NEWS: update NEWS
10724 2006-01-29  James Livingston  <jrl@ids.org.au>
10726         patch by: William Jon McCann  <mccann@jhu.edu>
10728         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10729         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10730         property used for the feed list. Fixes problem with feeds with no
10731         episodes not showing up.
10733 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10734         
10735         * shell/rb-play-order-random-by-age-and-rating.c:
10736         (rb_random_by_age_and_rating_get_entry_weight):
10737         Fix compile errors, bug #328978.
10739 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10741         * INSTALL.quick, README: Random updates
10742         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10744 2006-01-28  James Livingston  <jrl@ids.org.au>
10746         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10747         default rating back to 0 (from 2.5, which was needed for autorating).
10749         * shell/rb-play-order-random-by-age-and-rating.c:
10750         (rb_random_by_age_and_rating_get_entry_weight):
10751         * shell/rb-play-order-random-by-rating.c:
10752         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10753         2.5 for the purposes of weighting entries.
10755 2006-01-28  James Livingston  <jrl@ids.org.au>
10757         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10758         translator comments, to make it clearer what the "friendly time"
10759         formatting strings mean.
10761 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10763         * daapsharing/rb-daap-connection.c: (http_response_handler):
10764         Fix the sense of the overflow check so it'll accept valid input.
10766 2006-01-27  James Livingston  <jrl@ids.org.au>
10768         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10770         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10771         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10773 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10775         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10776         
10777         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10778         Don't include the artist field in the window title if it's blank.
10779         Fixes #325973.
10781 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10783         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10784         Use stock delete icon for move to trash and stock remove
10785         for remove menu item.
10787 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10789         * shell/rb-shell.c: (rb_shell_constructor),
10790         (idle_handle_load_complete):  Don't start the playlist save
10791         timeout until we've loaded the playlists, otherwise we'll
10792         write an empty playlist file if startup takes too long.
10794 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10796         * shell/rb-shell.c: Make view toolbar toggle use
10797         shift+ctrl+t.  Fixes #327585.
10799 2006-01-25  James Livingston  <jrl@ids.org.au>
10801         patch by: Christope Fergeau  <teuf@gnome.org>
10803         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10804         (http_response_handler): fix a potential buffer overflow issue.
10806 2006-01-25  James Livingston  <jrl@ids.org.au>
10808         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10809         Year column wide enough to display "Unknown"
10811 2006-01-25  James Livingston  <jrl@ids.org.au>
10813         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10814         (rb_podcast_source_post_status_cell_data_func): make the episode
10815         status wording better. Part of bug 321607.
10817 2006-01-25  James Livingston  <jrl@ids.org.au>
10819         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10820         others with a separator.
10822         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10823         stock Delete icon.
10825 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10827         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10829 2006-01-23  James Livingston  <jrl@ids.org.au>
10831         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10832         0.3.2. Fixed bug 328158.
10834 2006-01-23  James Livingston  <jrl@ids.org.au>
10836         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10837         (gulong_gst_date_transform), (rb_metadata_class_init):
10838         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10840 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10842         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10843         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10844         (record_entry_change): Protect added_entries and changed_entries with
10845         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10847 2006-01-23  James Livingston  <jrl@ids.org.au>
10849         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10850         the browser for audio CDs.
10852 2006-01-22  James Livingston  <jrl@ids.org.au>
10854         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10855         NEVER_FAIL as it causes the daemon-not-running error to never be
10856         reported, resulting in bug 319438 re-occurring.
10858 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10860         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10861         Just call the podcast manager's update method.  Unbreaks the 'update
10862         all feeds' command.
10864 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10866         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10868 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10870         * configure.ac: Don't disable DAAP with gstreamer 0.10
10872         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10873         (rb_daap_src_class_init), (rb_daap_src_init),
10874         (rb_daap_src_finalize), (rb_daap_src_set_property),
10875         (rb_daap_src_get_property), (rb_daap_src_write),
10876         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10877         (_split_uri), (rb_daap_src_open):
10878         * daapsharing/rb-daap-src.h:
10879         Mostly fix seeking, handle chunked transfer encoding, and port to
10880         gstreamer 0.10.
10881         
10882         * player/rb-player-gst.c:
10883         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10884         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10886         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10887         being fixed.
10889 2006-01-21  James Livingston  <jrl@ids.org.au>
10891         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10892         for Year metadata in DAAP sources. Fixes bug 327700.
10894         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10896 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10898         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10899         enum values instead of magic numbers.
10901         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10902         Add number of songs that match each property title into
10903         the cell.  Also show the number of properties that match
10904         in the All entry.
10905         (rb_property_view_constructor): Use enum values instead of
10906         magic numbers.
10908         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10909         Query podcast posts instead of feeds for browser.  Use
10910         post SUBTITLE which is the location for the property view.
10911         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10912         (construct_query_from_selection) 
10913         (rb_podcast_source_cmd_delete_feed) 
10914         (rb_podcast_source_cmd_properties_feed) 
10915         (rb_podcast_source_cmd_update_feed): Use variable to make
10916         it clear what the selection data represents.
10917         (rb_podcast_source_feed_title_cell_data_func): Add number
10918         of posts that belong to each feed in the browser.
10920         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10921         (rhythmdb_property_model_delete_prop): Decrement the refcount
10922         for the All entry.
10923         (rhythmdb_property_model_get_column_type): Use column enum
10924         values instead of magic numbers.  Add NUMBER column.
10925         (rhythmdb_property_model_get_value): Use enum.
10926         Add NUMBER column that represents the refcount for
10927         the title of that property.
10928         (rhythmdb_property_model_perform_sync): Don't fake up
10929         a title for All here.
10931         Fixes #327372.
10932         
10933 2006-01-21  James Livingston  <jrl@ids.org.au>
10935         Make Rhythmbox start faster by not blocking the UI while database
10936         initialisation and loading occurs. Closes bug 323348.
10938         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10939         start 10 seconds later instead of immediately.
10940         
10941         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10942         safe to call from any thread.
10944         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10945         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10946         so the UI doesn't block.
10948 2006-01-18  James Livingston  <jrl@ids.org.au>
10950         * sources/rb-static-playlist-source.c:
10951         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10952         cause crashes. Oops. fixes bug 327477.
10954 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10956         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10957         Set GST element state to NULL before unreffing.
10958         Fixes #327422.
10960 2006-01-18  James Livingston  <jrl@ids.org.au>
10962         * sources/rb-static-playlist-source.c:
10963         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10964         type, since the playlists can contain non-song entries. Fixes bug
10965         327448.
10967         * sources/rb-play-queue-source.c:
10968         (rb_play_queue_source_class_init): disable the search box for the
10969         queue.
10971 2006-01-18  James Livingston  <jrl@ids.org.au>
10973         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10974         dragging of podcast episodes. Fixed bug 327450.
10976 2006-01-18  James Livingston  <jrl@ids.org.au>
10978         * rhythmdb/rhythmdb-query-model.c:
10979         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10980         dragging to an emoty playlist.
10982 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10984         * sources/rb-playlist-source-recorder.c:
10985         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10987 2006-01-17  James Livingston  <jrl@ids.org.au>
10989         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10991         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10992         different number of tracks than exist on the cd, since that happens
10993         with audio+data hybrid CDs. Part of bug 325046.
10995 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10997         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10998         Remove useless call to gtk_tree_view_column_set_clickable().
11000         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
11001         Don't store sort data for columns if the sort function is NULL,
11002         so only sortable columns will be in the column sort data map.
11003         (rb_entry_view_set_columns_clickable): Only make columns we can sort
11004         on clickable.
11005         (rb_entry_view_constructor):  The 'playing icon' column is never
11006         clickable, so don't connect a signal handler for it.
11008         Fixes bug 326811.
11010 2006-01-17  James Livingston  <jrl@ids.org.au>
11012         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
11013         are 0.8 only. Fix element detection.
11015         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
11016         saving the new metadata failed
11018 2006-01-17  James Livingston  <jrl@ids.org.au>
11020         * shell/rb-shell-player.c: (do_next_idle),
11021         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
11022         (eos_cb): release audio device when a playlist finishes. Fixes bug
11023         323679.
11025 2006-01-17  James Livingston  <jrl@ids.org.au>
11027         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
11028         canonicalise the URIs when things are added via library watching.
11030 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11032         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11033         Off by one error in default speed index.
11035 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11037         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
11038         (update_speed_combobox, update_speed_combobox):
11039         Get a list of the actually supported write speeds from
11040         n-c-b >= 2.13.90.  Otherwise use fallback list.
11042 2006-01-17  James Livingston  <jrl@ids.org.au>
11044         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
11045         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
11046         don't get stuck on recursive symlinks. Fixed bug 125452.
11048 2006-01-17  James Livingston  <jrl@ids.org.au>
11050         Add support for mass-storage audio players. Players are detected via
11051         either the HAL "audio_player" capability, or a ".is_audio_player" file
11052         in the root of the volume. Closes bug 325602.
11054         * configure.ac: separate using HAL from ipod support.
11056         * lib/rb-file-helpers.c: (rb_uri_is_local):
11057         * lib/rb-file-helpers.h: add function to determine whether a URI is
11058         local.
11060         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
11061         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
11062         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
11063         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
11064         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
11065         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
11066         directories can be scanned for files to add as  non-SONG entries.
11068         * shell/rb-removable-media-manager.c:
11069         (rb_removable_media_manager_mount_volume): add checking for
11070         mass-storage players.
11072         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
11073         * sources/rb-ipod-source.c: (rb_ipod_source_new),
11074         (hal_udi_is_ipod):
11075         * sources/rb-removable-media-source.c:
11076         (rb_removable_media_source_class_init),
11077         (rb_removable_media_source_constructor): move some things up to the
11078         RBRemovableMediaSource, rather than making subclasses do it.
11080         * sources/Makefile.am:
11081         * sources/rb-generic-player-source.c:
11082         * sources/rb-generic-player-source.h: add mass-storage player source.
11084 2006-01-16  James Livingston  <jrl@ids.org.au>
11086         patch by: William Jon McCann  <mccann@jhu.edu>
11088         * rhythmdb/rhythmdb-query-model.c:
11089         (rhythmdb_query_model_base_row_deleted): fix build issue from last
11090         commit.
11092 2006-01-16  James Livingston  <jrl@ids.org.au>
11094         Patch to add support for "chained queries" and putting hidden tracks
11095         in query models. Use chained queries to add search box support to
11096         normal playlists, and to make hidden entries not get lost. Fixes bug
11097         319278.
11099         * rhythmdb/rhythmdb-query-model.h:
11100         * rhythmdb/rhythmdb-query-model.c:
11101         (rhythmdb_query_model_class_init),
11102         (rhythmdb_query_model_set_property),
11103         (rhythmdb_query_model_get_property):
11104         (rhythmdb_query_model_finalize): add "show-hidden" and
11105         "base-model" properties.
11107         (rhythmdb_query_model_set_connected),
11108         (rhythmdb_query_model_has_pending_changes),     
11109         (rhythmdb_query_model_entry_added_cb),
11110         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
11111         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
11112         (rhythmdb_query_model_remove_entry),
11113         (rhythmdb_query_model_drag_data_received),
11114         (rhythmdb_query_model_base_row_inserted),
11115         (rhythmdb_query_model_base_row_deleted),
11116         (rhythmdb_query_model_base_non_entry_dropped),
11117         (rhythmdb_query_model_base_complete),
11118         (rhythmdb_query_model_base_entry_prop_changed),
11119         (rhythmdb_query_model_base_rows_reordered),
11120         (rhythmdb_query_model_row_drop_possible): handle base-model by
11121         chaining events and operations where necessary. Make hidden entries
11122         not get added only if "show-hidden" is false.
11124         (rhythmdb_query_model_child_index_to_base_index),
11125         (rhythmdb_query_model_base_index_to_child_index),
11126         (rhythmdb_query_model_get_entry_index): utility functions for handling
11127         base-model entries.
11129         (rhythmdb_query_model_reapply_query): apply the current query, and
11130         remove entries that don't match it.
11132         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
11133         empty queries.
11135         * sources/rb-source.c: (rb_source_set_property): move the unref later
11136         to fix problem if it is the last reference.
11138         * sources/rb-static-playlist-source.c:
11139         (rb_static_playlist_source_class_init),
11140         (rb_static_playlist_source_init),
11141         (rb_static_playlist_source_finalize),
11142         (rb_static_playlist_source_constructor), (impl_reset_filters),
11143         (impl_search), (rb_static_playlist_source_do_query),
11144         (impl_save_contents_to_xml),
11145         (rb_static_playlist_source_add_location_internal): use a chained query
11146         model to filter out hidden entries and implement the search box.
11148 2006-01-15  James Livingston  <jrl@ids.org.au>
11150         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
11151         the default playlist loading, which I broke earlier.
11153 2006-01-15  James Livingston  <jrl@ids.org.au>
11155         patch by: William Jon McCann  <mccann@jhu.edu>
11157         * sources/rb-playlist-source.c: (playlist_iter_func): use
11158         totem-plparser's new API version macros to check for API changes.
11159         Handle the recent API change.
11161 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11163         * sources/rb-library-source.c: (impl_get_config_widget):
11164         Ref the preferences object to match the unref in the
11165         finalizer.  Fixes some portion of #323505.
11167 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11169         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
11170         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
11171         Fix valgrind warnings about accessing uninitialised values.
11173 2006-01-14  William Jon McCann  <mccann@jhu.edu>
11175         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
11177 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11179         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
11180         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
11181         Stops the 'now playing' icon from being displayed after the play
11182         order finishes.
11184 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11186         * podcast/rb-podcast-manager.c:
11187         (rb_podcast_manager_db_entry_deleted_cb):
11188         Don't try to delete files we never downloaded, and cancel downloads
11189         for deleted episodes.  Fixes bug #326862.
11190         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
11191         Don't complain about NULL data items in the selection list.
11193 2006-01-14  James Livingston  <jrl@ids.org.au>
11195         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11196         Make the name ofthe queue non editable. Fixes bug 326918.
11198 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11200         * sources/rb-playlist-source-recorder.c (burn_cd) 
11201         (ask_rewrite_disc): Don't use our locally copied functions
11202         if we have at least 2.13.
11204 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11206         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
11207         Correct the argument type for the process_error signal.
11208         May fix bug #323154.
11210 2006-01-13  James Livingston  <jrl@ids.org.au>
11212         save the queue to disk when exiting, and reload on startup. Fixed bug
11213         326677 .
11215         * shell/rb-playlist-manager.c:
11216         (rb_playlist_manager_load_playlists),
11217         (rb_playlist_manager_save_playlists_async): don't disable saving of
11218         the queue
11220         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11221         add the queue source as a gobject property.
11223         * sources/rb-play-queue-source.c:
11224         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
11225         code to save the queue to xml
11227         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
11228         load the queue from xml.
11229         * sources/rb-playlist-xml.h:
11231         * sources/rb-static-playlist-source.c:
11232         (rb_static_playlist_source_load_from_xml),
11233         (rb_static_playlist_source_new_from_xml):
11234         * sources/rb-static-playlist-source.h: split the playlist xml loading
11235         from the static playlist creation function, so the queue can use it.
11237 2006-01-13  James Livingston  <jrl@ids.org.au>
11239         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
11240         assertion that should be there. Fixes bug 325923.
11241         
11242         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
11243         return NULL if the entry already exists (e.g. as another type).
11244         * daapsharing/rb-daap-connection.c: (handle_song_listing):
11245         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11246         (rb_podcast_manager_insert_feed):
11247         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
11248         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
11249         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11250         for the above function returning NULL.
11252 2006-01-12  James Livingston  <jrl@ids.org.au>
11254         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11255         is enabled. Fixes bug 326673.
11256         
11257         * doc/reference/tmpl/eggtrayicon.sgml:
11258         * doc/reference/tmpl/rb-daap-src.sgml:
11259         * doc/reference/tmpl/rb-source.sgml:
11260         * doc/reference/tmpl/rb-statusbar.sgml:
11261         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11262         * doc/reference/tmpl/rhythmbox-unused.sgml:
11263         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11265 2006-01-11  James Livingston  <jrl@ids.org.au>
11267         * widgets/rb-song-info.c: (rb_song_info_constructor),
11268         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11269         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11270         the same value for properties. From bug 326054.
11272 2006-01-11  James Livingston  <jrl@ids.org.au>
11274         * sources/rb-source.h:
11275         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11276         (rb_shell_player_set_playing_source_internal), (eos_cb):
11277         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11278         every entry.
11280         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11281         source use this. Closes bug 322077.
11283 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11285         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11286         In order for set_icon_data_from_pixbuf() to be
11287         effective, one must not set an icon in _new().
11289 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11291         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11292         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11293         (egg_tray_icon_notify): Add support for libnotify 0.3.
11294         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11295         * configure.ac: Determine the version of libnotify.
11296         Fixes #326333.
11298 2006-01-08  James Livingston  <jrl@ids.org.au>
11300         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11301         trying to share a track with unknown length.
11303 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11305         * shell/rb-shell-player.c: (rb_shell_player_init):
11306         Sync volume on startup so it doesn't default to 0.
11308 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11310         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11311         (rb_shell_player_get_property), (rb_shell_player_open_location),
11312         (info_available_cb):  Add the iradio streamed song title as a
11313         property, and emit a signal when it changes.
11315         * shell/rb-shell.c: (rb_shell_constructor),
11316         (rb_shell_player_elapsed_changed_cb),
11317         (rb_shell_player_stream_song_changed_cb):
11318         Issue a notification when the iradio song title changes.
11319         Fixes #326166.
11321 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11323         * shell/rb-shell-player.c: (rb_shell_player_init),
11324         (rb_shell_player_finalize), (rb_shell_player_set_property),
11325         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11326         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11327         (rb_shell_player_set_volume_relative),
11328         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11329         (rb_shell_player_get_mute):
11330         * shell/rb-shell-player.h:
11331         * shell/rb-shell-player.xml:
11332         Store volume as a property on RBShellPlayer, rather than in gconf.
11333         Add some methods to control volume via dbus.
11335         * shell/rb-shell.c: (rb_shell_constructor),
11336         (rb_shell_volume_widget_changed_cb),
11337         (rb_shell_player_volume_changed_cb):
11338         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11339         Update volume using player properties rather than gconf, and sync the
11340         volume with the volume control button when something else changes it.
11341         Fixes #323840.
11343 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11345         * shell/rb-tray-icon.c (tray_popup_position_menu):
11346         Make tray menu align with edge of panel.
11348         patch from Jaap A. Haitsma <jaap@haitsma.org>
11349         Fixes #319913
11351 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11352         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11353         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11354         (rb_playlist_manager_new_playlist_from_selection_data):
11355         Make a reasonable default name for playlists created from
11356         dropped data.  Fixes #326116.
11358 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11360         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11361         Use new gconf key.
11362         (burn_cd): Always eject CD after burning.  Too many drives
11363         get confused if we don't.  Save the speed used if the burn
11364         was completed successfully.
11366         * data/rhythmbox.schemas: Use our own speed instead of from
11367         n-c-b. The situation is that the default_speed for n-c-b is most
11368         likely the maximum write speed.  This is fine for n-c-b because it
11369         has burn-proof turned on.  We can't turn it on for audio CDs
11370         because the results are poor in quality.  So we'll just pick a
11371         default that should work for everyone (4).
11373 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11374         
11375         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11376         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11378 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11380         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11381         in my previous commit.  Fixes #326037.
11383 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11385         patch by: Jonathan Matthew
11387         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11388         error on Fedora Rawhide.
11390 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11392         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11393         Assume HTTP URLs ending with .xml or .rss are podcasts.
11394         (rb_shell_add_uri): Handle adding podcast feeds.
11396         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11397         Register as the source for podcast feeds.
11399 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11401         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11402         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11403         (rb_shell_preferences_append_view_page):
11404         * shell/rb-shell-preferences.h:
11405         Fix typo in function name.  Fixes #325992.
11407 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11409         * shell/rb-audioscrobbler.c:
11410         Add '+' to the list of characters to URI-encode, so it doesn't get
11411         interpreted as a space.
11413 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11415         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11416         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11417         goes away while we're still trying to log in.
11419 2006-01-06  James Livingston  <jrl@ids.org.au>
11421         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11423 2006-01-06  James Livingston  <jrl@ids.org.au>
11425         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11426         support for Year to automatic playlists. Closes bug 321341.
11428         * rhythmdb/rhythmdb-query-model.c:
11429         (rhythmdb_query_model_set_property):
11430         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11431         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11432         (rhythmdb_query_free), (rhythmdb_query_serialize),
11433         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11434         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11435         * rhythmdb/rhythmdb.h: Support special
11436         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11437         year in date.
11439         * widgets/rb-query-creator-properties.c:
11440         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11441         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11443 2006-01-06  James Livingston  <jrl@ids.org.au>
11445         * configure.ac: make the playback backend selection work correctly
11447         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11448         (rb_daap_src_class_init), (rb_daap_src_dispose),
11449         (rb_daap_src_change_state), (rb_daap_src_initialize):
11450         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11451         doesn't work for this class. Fixes bug 325934
11453 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11455         * configure.ac: Fix check for libnotify.
11457 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11459         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11460         Get name element for current lang and remove all name nodes
11461         from the XML tree.
11462         (get_playlist_name_from_xml): Try to get name element or
11463         fall back to name attribute.
11464         (rb_playlist_source_new_from_xml): Get name before turning over
11465         to sub-types for parsing so that we can remove name elements
11466         from the tree if necessary.
11468         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11469         Load default playlists file if per user playlists are not found.
11471         * data/playlists.xml.in: 
11472         * data/Makefile.am: 
11473         * data/.cvsignore: Add default set of playlists.
11474         Fixes #323004
11476 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11478         * shell/main.c: (main): Don't use the dbus interface to show the
11479         window if we're also going to use the bonobo interface.
11481 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11483         * shell/rb-history.c: (rb_history_set_playing):
11484         Allow setting the playing song to NULL.
11485         (rb_history_append), (rb_history_delete_link):
11486         Don't randomly change position when entries are added and removed,
11487         it confuses play orders.
11488         
11489         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11490         Random orders always have a next entry if the model is not empty.
11491         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11492         Go back to the start of the history if we're past its end.
11494         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11495         (rb_shuffle_play_order_go_next): Go back to the start of the history
11496         if we're past its end.
11497         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11498         the history if the current entry is removed.
11500         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11501         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11502         the play order when the query has finished. This wasted about 10% CPU
11503         while the query was running.
11505         Fixes #324641: assertion failures when the query model was changed
11506         such that the playing song was no longer present.
11508 2006-01-05  James Livingston  <jrl@ids.org.au>
11510         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11511         (rb_daap_src_dispose), (rb_daap_src_change_state):
11512         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11513         (rhythmdb_gda_finalize):
11514         * widgets/rb-cell-renderer-pixbuf.c:
11515         * widgets/rb-cell-renderer-rating.c:
11516         (rb_cell_renderer_rating_class_init),
11517         (rb_cell_renderer_rating_finalize):
11518         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11519         * widgets/rb-load-failure-dialog.c:
11520         (rb_load_failure_dialog_class_init),
11521         (rb_load_failure_dialog_finalize):
11522         * widgets/rb-rating.c: (rb_rating_class_init),
11523         (rb_rating_finalize):
11524         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11525         (rb_search_entry_finalize): use G_DEFINE_TYPE
11527         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11529 2006-01-05  James Livingston  <jrl@ids.org.au>
11531         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11533         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11534         the tarball.
11536         * shell/rb-history.c: (rb_history_class_init),
11537         (rb_history_finalize):
11538         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11539         (rb_playlist_manager_finalize):
11540         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11541         (rb_remote_init): use G_DEFINE_TYPE.
11543 2006-01-05  James Livingston  <jrl@ids.org.au>
11545         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11546         changes
11548 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11550         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11551         Disable burn action when source is not a playlist.
11552         Fixes #323578.
11554 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11556         Optionally use libnotify to display song change and other
11557         notifications, and provide an option to disable notifications.
11558         Fixes #320355 and innumerable informal complaints.
11560         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11561         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11562         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11563         (egg_tray_icon_notify):
11564         * widgets/eggtrayicon.h:
11565         * configure.ac:
11566         * shell/Makefile.am:
11567         Optionally use libnotify instead of eggnotificationbubble.
11569         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11570         (rb_tray_icon_constructor), 
11571         (rb_tray_icon_show_notifications_changed_cb),
11572         (rb_tray_icon_hide_notify_cb)
11573         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11574         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11575         EggNotificationBubble pointer to eggtrayicon.
11577         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11578         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11579         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11581 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11583         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11584         Request a minimum size for the progress bar so that
11585         the window doesn't shrink too small.
11587 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11589         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11590         (add_db_entry), (db_entry_deleted_cb):
11591         Don't track the number of songs currently present, track the next ID
11592         to assign.  Fixes potential ID conflict problems.
11593         
11594         (db_entry_changed_cb), (rb_daap_share_start_publish),
11595         (rb_daap_share_stop_publish):
11596         Watch for db entry changes, and when songs become non-hidden after
11597         a successful stat, add them to the mapping tables.   Fixes #325178,
11598         making the DAAP server usable again.
11600 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11601         
11602         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11603         (rb_statusbar_construct), (rb_statusbar_init),
11604         (rb_statusbar_finalize), (rb_statusbar_set_property),
11605         (rb_statusbar_get_property), (rb_statusbar_new),
11606         (rb_statusbar_sync_with_source):
11607         * shell/rb-statusbar.h:
11608         Remove visibility management code, stop watching for play order
11609         changes (status bar doesn't show play order any more), remove unused
11610         'player' property, and some other minor cleanup.
11611         
11612         * shell/rb-shell.c: (rb_shell_constructor),
11613         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11614         (rb_shell_sync_statusbar_visibility):
11615         Manage status bar visibility here rather than in the status bar
11616         itself, so we can take small mode into account.  Fixes #323589.
11618 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11620         * widgets/eggnotificationbubble.c: (draw_bubble):
11621         Move the bubble off the visible screen while setting up bevels.  
11622         Fixes #316810.
11624 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11626         * shell/rb-shell-player.c: (rb_shell_player_init),
11627         (rb_shell_player_finalize): 
11628         Remove unused structure members.
11629         
11630         (do_next_idle), (rb_shell_player_error):
11631         Only queue one call to do_next_idle, so we don't skip tracks if we get
11632         two errors for the same song.  Fixes #325216.
11634 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11636         * data/glade/podcast-feed-properties.glade,
11637          podcast/rb-feed-podcast-properties-dialog.c:
11638         (rb_feed_podcast_properties_dialog_init),
11639         (rb_feed_podcast_properties_dialog_update):
11640         Add 'last episode' field to the podcast feed properties dialog.
11642         * podcast/rb-feed-podcast-properties-dialog.c:
11643         (rb_feed_podcast_properties_dialog_update_last_update),
11644         (rb_feed_podcast_properties_dialog_update_last_episode),
11645          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11646         Use last-seen property for the time at which we last updated the feed,
11647         and post-time for the time the last episode was published.
11649         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11650         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11651         feed, use last-seen (which in 0.9.2 was the last post time).
11653         Fixes #323894.
11655 2006-01-01  James Livingston  <jrl@ids.org.au>
11657         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11659         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11660         year from the ipod database.
11662 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11664         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11665         Only set the pipeline back to NULL state for really uninteresting
11666         files.  This was causing deadlocks with various video files.
11667         Fixes #324912.
11669 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11671         * data/glade/song-info-multiple.glade:
11672         Add disc number label and field.
11673         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11674         (rb_song_info_constructor): 
11675         Handle widgets for disc number.
11676         (rb_song_info_sync_entries_multiple):
11677         Set disc number property on selected entries.
11678         Fixes #324777.
11680 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11682         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11683         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11684         Activate the default widget when enter is pressed in these dialogs.
11685         Fixes #322887.
11687 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11689         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11690         Use rb_shell_player_get_playing_entry, so we get the right entry
11691         when playing from the queue.  Fixes #325379.
11693 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11695         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11696         Include podcast posts with no publication date.  Typically
11697         seen in static collections rather than feeds.
11699 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11701         * shell/main.c: (main): Don't attempt to handle
11702         bonobo-only arguments if we couldn't get a bonobo
11703         client proxy.
11705 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11707         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11708         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11709         abort if daap sharing is disabled and then re-enabled.
11711 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11713         * podcast/rb-podcast-parse.c (rb_insert_item):
11714         Add debugging.
11715         (rb_podcast_parser_start_element): Support itunes:image.
11716         Add debugging.  Don't abuse the break statement.  Warn
11717         if state is unknown.
11718         (rb_podcast_parser_end_element): Add debugging.  Warn
11719         if state is unknown.
11720         (rb_podcast_parser_characters): Warn if state is unknown.
11722         Fixes parsing of feeds that use the itunes:image element.
11723         Fixes #324632
11725 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11727         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11728         (stations_view_drag_data_received_cb):
11729         Remove calls to rhythmdb_entry_lookup_by_location, as
11730         rb_iradio_source_add_station does that anyway.
11731         
11732         (rb_iradio_source_add_from_playlist):
11733         If the URL doesn't point to a playlist, add it as the stream
11734         URL instead.
11736 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11738         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11739         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11740         so we don't get an assertion failure.
11741         Fixes #325025.
11743 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11745         * shell/main.c: (load_uri_args): don't compile this in if
11746         neither bonobo nor dbus are enabled.  Fixes #324890.
11748 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11750         * sources/rb-audiocd-source.c:
11751         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11752         so it closes the device.
11754 2005-12-20  James Livingston  <jrl@ids.org.au>
11756         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11757         so that it doesn't spend forever getting stuck on the one file. Don't
11758         report errors for failing to change state on known non-audio files.
11760         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11761         audio sink creation if we can't create the gconfaudiosink. This lets
11762         it work with only gst-plugins-base on 0.10.
11764 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11766         * rhythmdb/rhythmdb-query-model.c:
11767         (rhythmdb_query_model_set_sort_order):
11768         Fix a tiny memory leak in the previous commit.
11770 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11772         * rhythmdb/rhythmdb-query-model.c:
11773         (rhythmdb_query_model_set_sort_order):
11774         Don't try to emit reorders for empty query models, since it doesn't
11775         achieve anything and it results in a few warnings.
11777 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11779         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11780         Make burn dialog non-resizable so that the expander can shrink.
11781         Fixes #308951.
11783 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11785         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11786         add entries without a location, rather than those with one.
11788 2005-12-19  James Livingston  <jrl@ids.org.au>
11790         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11791         the error isn't set.
11793 2005-12-19  James Livingston  <jrl@ids.org.au>
11794         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11795         add entries without a location. Fixes bug 324290.
11797         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11798         without a location.
11800         * shell/main.c: (main): don't crash if dbus initialisation fails
11801         without setting an error
11803 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11805         * sources/rb-library-source.c: Remove unused structure members
11806         (rb_library_source_do_query): Actually use the cached 'all' query.
11807         Fixes #324025.
11808         
11809 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11811         * sources/rb-audiocd-source.c 
11812         (rb_audiocd_get_cd_info): tab
11813         (rb_audiocd_scan_songs): Return boolean success/failure,
11814         fix error messages a bit.
11815         (metadata_cb): Don't crash if we have no tracks
11816         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11817         the CD.
11818         Fixes #324222.
11820 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11822         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11823         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11824         key.
11826         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11827         Fixes #324157
11829 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11831         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11832         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11833         (fullscreen_changed_cb): 
11834         * lib/rb-preferences.h: 
11835         * data/ui/rhythmbox-ui.xml: 
11836         * data/rhythmbox.schemas:
11837         Add fullscreen mode.
11839         Fixes #324075.
11841 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11843         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11844         configure.  It was not working with RPM.
11845         * data/Makefile.am: Switched dbus directory location to use
11846         datadir instead of variable that was not working.
11848 2005-12-13  James Livingston  <jrl@ids.org.au>
11850         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11852         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11853         the podcast browser work again. Closes bug 323856.
11855 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11857         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11858         Remove C99ism.
11860         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11861         (rb_utf_friendly_time):
11862         * lib/rb-cut-and-paste-code.h:
11864         * podcast/rb-feed-podcast-properties-dialog.c:
11865         (rb_feed_podcast_properties_dialog_parse_time):
11866         * podcast/rb-podcast-properties-dialog.c:
11867         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11868         to display the date in a more user friendly way.
11869         For example, if the feed was updated yesterday it will say:
11870         Last updated: Yesterday 10:00 AM
11871         instead of printing the date.
11873 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11875         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11876         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11877         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11878         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11879         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11880         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11881         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11882         (rb_podcast_parse_date): Add support for some real world
11883         date formats.
11884         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11885         (rb_podcast_parse_item_free): Style and no need to check
11886         for NULL before g_free.
11888         May fix #323742
11890 2005-12-12  James Livingston  <jrl@ids.org.au>
11892         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11893         with gstreamer 0.10, which replaced audioscale.
11895         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11896         function to free the SoupSession
11898         * shell/rb-source-header.c: (rb_source_header_set_property),
11899         (rb_source_header_disclosure_toggled_cb),
11900         (rb_source_header_view_browser_changed_cb),
11901         (rb_source_header_sync_control_state):
11902         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11903         * sources/rb-library-source.c: (rb_library_source_class_init):
11904         * sources/rb-source.c: (rb_source_class_init),
11905         (rb_source_get_status), (default_get_browser_key),
11906         (rb_source_get_browser_key), (rb_source_can_browse),
11907         (rb_source_notify_status_changed),
11908         (rb_source_notify_filter_changed):
11909         * sources/rb-source.h: seperate the enabling of browsers from the use
11910         of a gconf key.
11912 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11914         * data/glade/podcast-feed-properties.glade: 
11915         * data/glade/podcast-properties.glade: Use scrolled viewports
11916         for description text.  Fix regression of #320509.
11918 2005-12-11  James Livingston  <jrl@ids.org.au>
11920         * sources/rb-auto-playlist-source.c:
11921         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11922         (impl_search), (rb_auto_playlist_source_do_query),
11923         (rb_auto_playlist_source_set_query),
11924         (rb_auto_playlist_source_get_query): add support for the search box
11925         to automatic playlists.
11927         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11928         memory leak.
11930 2005-12-11  James Livingston  <jrl@ids.org.au>
11932         * NEWS: update NEWS
11934 2005-12-11  James Livingston  <jrl@ids.org.au>
11936         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11937         (rhythmdb_load), (monitor_subdirectory),
11938         (rhythmdb_sync_library_location):  start the library sync and
11939         monitoring in an idle callback.
11941 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11943         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11944         (rb_podcast_source_constructor): Remove unused pixbuf column.
11945         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11946         Use consistent style.
11948         Fixes #322961.
11950 2005-12-11  James Livingston  <jrl@ids.org.au>
11952         * rhythmdb/rhythmdb-property-model.c:
11953         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11954         (rhythmdb_property_model_insert),
11955         (rhythmdb_property_model_delete_prop):
11956         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11957         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11958         (destroy_tree_property):
11959         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11960         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11961         GMemChunks, they are crap and deprecated. Improves startup-time and
11962         memory usage slightly.
11964 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11966         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11967         Added license and website info.
11969         * MAINTAINERS.old: Add Colin.
11970         * MAINTAINERS: Add James.
11971         * AUTHORS: Put back in order.  Add extra space between name and email
11972         to make it easier to read.  Add James and jonathan.
11974         * widgets/rb-song-info.c (rb_song_info_init) 
11975         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11977 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11979         Play queue implementation. Closes bug 107787.
11981         * data/rhythmbox.schemas: add items for whether the queue should be
11982         displayed as a sidebar, and the height of the sourcelist if it is.
11984         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11985         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11986         add popups for queue as source and as sidebar.  We need a separate
11987         popup for the sidebar view because otherwise it's hard to tell which
11988         of the visible entry views the action came from.
11990         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11992         * po/POTFILES.in: Add new file
11994         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11995         Add helper function for deciding if a podcast episode is available for
11996         playback.
11998         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11999         reorder entries in the query model.
12000         (idle_process_update): Handle new update type used to insert entries
12001         at a particular position in the query model.
12002         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
12003         parameter to specify the position (-1 meaning 'at the end').
12004         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
12005         parameter.
12006         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
12007         bad entry removal updates for entries that aren't in the model.
12008         (rhythmdb_query_model_emit_reorder): Add helper function for
12009         reordering rows.
12010         (rhythmdb_query_model_move_entry): New method for moving entries
12011         around in the model
12012         (rhythmdb_query_model_entry_added_cb),
12013         (rhythmdb_query_model_update_limited_entries),
12014         (rhythmdb_query_model_do_reorder),
12015         (rhythmdb_query_model_do_insert): Pass through the index parameter,
12016         use rhythmdb_query_model_emit_reorder where appropriate.
12018         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12019         Don't allow the queue to be deleted.
12020         (handle_playlist_entry_cb): Update for method signature change
12021         (rb_playlist_manager_save_playlists_async),
12022         (rb_playlist_manager_get_playlists): Don't save the play queue,
12023         don't report it as a playlist.
12025         * shell/rb-play-order.c: Include queue play order in the list of
12026         available orders.
12028         * shell/rb-shell.c
12029         (rb_shell_class_init), (rb_shell_get_property): Add new property 
12030         for access to the clipboard object.
12031         (rb_shell_constructor): Handle playing-from-queue signal to update the
12032         sourcelist display; add queue sidebar in to UI, listen for queue
12033         sidebar pane changes, and read initial settings from gconf.
12034         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
12035         Only tell the sourcelist the source has changed if the new source is 
12036         not the queue, as we update the sourcelist differently in that case.
12037         (rb_shell_set_window_title): Only use the cached window title if the
12038         playing state was the same when it was created.
12039         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
12040         (rb_shell_sync_pane_visibility): Only hide the side pane if the
12041         sourcelist is hidden and the queue is shown as a source.
12042         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
12043         mode, since it doesn't make any sense.
12044         (sourcelist_visibility_changed_cb): Update the visibility of the pane
12045         too.
12046         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
12047         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
12048         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
12049         playing from queue shown as sidebar.
12051         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
12052         MusicProperties action here from rb-shell-player.c, since it acts like
12053         cut/copy/paste etc.
12054         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
12055         (rb_shell_clipboard_get_property): new property for queue source.
12056         Watch for selection changes in the sidebar entry view as well as the
12057         normal one.
12058         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
12059         actions and MusicProperties.
12060         (rb_shell_clipboard_cmd_queue_delete),
12061         (rb_shell_clipboard_cmd_add_song_to_queue),
12062         (rb_shell_clipboard_cmd_song_info),
12063         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
12065         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
12066         actually came from (could be the playing source, or the queue), add a 
12067         new play order object for the queue, add a property for the queue
12068         source, add a signal for when we switch between playing from the
12069         source and from the queue.
12070         (rb_shell_player_set_property): Handle playing directly from the
12071         queue so we stop once the queue is empty.  Create queue play order
12072         when we get the queue source.
12073         (rb_shell_player_get_playing_source): Return the source we're actually
12074         playing from.
12075         (rb_shell_player_get_playing_entry): Get playing entry from queue if
12076         that's where it is.
12077         (rb_shell_player_set_playing_entry): Update the queue play order if 
12078         that's where we're playing from.
12079         (rb_shell_player_play_order_update_cb): Take has next/previous for the
12080         queue into consideration too.
12081         (swap_playing_source): Helper function for switching the playing
12082         source.
12083         (rb_shell_player_do_previous): Check the queue, even though there's
12084         never a previous entry in it (yet), swap playing source if it changed.
12085         (rb_shell_player_do_next): Check the queue for entries to play before
12086         the normal play order, and swap playing source if it changed.
12087         (rb_shell_player_do_previous_or_seek): Check the queue for previous
12088         entries to go to as well.
12089         (rb_shell_player_playpause): Check the queue before the selection and
12090         the play order, and swap playing source if it changed.
12091         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
12092         (rb_shell_player_entry_activated_cb): Use
12093         rb_podcast_manager_entry_downloaded, do some tapdancing to make
12094         activating queue entries work properly (move the activated entry to
12095         the start of the queue and then play it); if we were playing from the
12096         queue, clear its playing entry so it'll start again from the start
12097         after the activated entry.
12098         (rb_shell_player_sync_buttons): MusicProperties action handler moved
12099         to rb-shell-clipboard.c
12100         (actually_set_playing_source): Add helper for updating the playing
12101         source.
12102         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
12103         signal if we stop or start doing so; use actually_set_playing_source; 
12104         emit playing-source-changed if we actually did change source.
12106         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
12107         rb_static_playlist_source_add_location.
12109         * sources/rb-library-source.c (rb_library_source_class_init): Allow
12110         enqueueing of songs from the library.
12112         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
12113         enqueueing of sonsg from playlists.
12114         (rb_playlist_source_entry_added_cb): Add extra parameter for
12115         rhythmdb_query_model_add_entry.
12116         
12117         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
12118         Implement (can_)add_to_queue for this class.
12119         (rb_podcast_source_entry_activated): Use
12120         rb_podcast_manager_entry_downloaded.
12121         (impl_can_add_to_queue): Return TRUE if at least one entry that has
12122         been downloaded is selected.
12123         (impl_add_to_queue): Only add downloaded entries to the queue.
12125         * sources/rb-source.{c,h}:
12126         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
12127         methods.
12128         (rb_source_class_init): Don't allow enqueueing by default; implement 
12129         add_to_queue though.
12130         (default_add_to_queue): Add all selected entries to the queue.
12131         
12132         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
12133         would be playing if there wasn't anything in the queue).
12134         (set_source_playing): Helper function for manipulating tree store.
12135         (rb_sourcelist_set_playing_source): Use set_source_playing
12136         (rb_sourcelist_preempt_playing_source): Update preempted source
12137         pointer, manipulate source states.
12139         * sources/rb-static-playlist-source.{c,h}:
12140         (rb_static_playlist_source_add_location_internal),
12141         (rb_static_playlist_source_add_location),
12142         (rb_static_playlist_source_add_entry): Add index parameter for
12143         specifying where in the playlist the new entry goes.
12144         (rb_static_playlist_source_new_from_xml), (impl_paste),
12145         (rb_static_playlist_source_add_list_uri),
12146         (rb_static_playlist_source_add_location_swapped),
12147         (rb_static_playlist_source_add_locations),
12148         (rb_static_playlist_source_non_entry_dropped),
12149         (rb_static_playlist_source_row_inserted):
12150         Handle new index parameter everywhere it appears
12151         (rb_static_playlist_source_move_entry): New method for moving entries
12152         around in the playlist.
12154         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
12155         warnings when trying to scroll entry views that have never been
12156         displayed.
12158         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
12159         play order that removes the old entry when switching to a new one.
12161         * sources/rb-play-queue-source.{c,h}: New files, implementing a
12162         static playlist subclass that has a second entry view for the sidebar
12163         view using alternate formatting, and that displays the number of
12164         entries it contains in its source list entry.
12166 2005-12-10  James Livingston  <jrl@ids.org.au>
12168         * rhythmdb/rhythmdb-query-model.c:
12169         (rhythmdb_query_model_add_entry),
12170         (rhythmdb_query_model_drag_data_received):
12171         * sources/rb-static-playlist-source.c:
12172         (rb_static_playlist_source_non_entry_dropped): when things are
12173         dropped, ignore any blank lines in the list of uris. Make the source
12174         responsible for adding new items to the db.
12176         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
12177         empty string.
12179 2005-12-10  James Livingston  <jrl@ids.org.au>
12181         * shell/rb-shell-player.c: (rb_shell_player_set_property),
12182         (rb_shell_player_sync_buttons),
12183         (rb_shell_player_selection_changed_cb): watch for the
12184         "selection-changed" signal, so that the Song Properties get enabled.
12185         Closes bug 323694.
12187 2005-12-10  James Livingston  <jrl@ids.org.au>
12189         * data/rhythmbox.schemas: fix the gconf schema
12191 2005-12-10  James Livingston  <jrl@ids.org.au>
12193         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
12194         the decoded-pad callback with gstreamer 0.8, it causes problems.
12196 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12198         Remove more junk from RBEntryView. Closes bug 323640.
12200         * widgets/rb-entry-view.{c,h}:
12201         Remove unused private structure members, replace 'playing' boolean
12202         with an enum (so we know if we're paused too), and store a pointer to
12203         the RBShellPlayer too.  
12204         (rb_entry_view_class_init), (rb_entry_view_set_property),
12205         (rb_entry_view_get_property):
12206         Remove 'entry-selected' and 'changed' signals and
12207         'playing-entry' property, add 'selection-changed' signal and
12208         'shell-player' and 'playing-state' properties.
12209         (rb_entry_view_new): Take the shell player object reference
12210         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
12211         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
12212         No longer needed, shell player is the place to get this information.
12213         (rb_entry_view_busy), (rb_entry_view_get_duration),
12214         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
12215         (rb_entry_view_get_next_from_entry),
12216         (rb_entry_view_get_previous_from_entry),
12217         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
12218         (rb_entry_view_get_num_entries):
12219         Removed, callers should go to the query model directly.
12220         (rb_entry_view_playing_song_changed): Update active query model, emit
12221         row changed signals to update pixbufs, and scroll to the playing song
12222         when the playing song changes, based on a signal from the shell
12223         player.
12224         (queue_changed_sig), (rb_entry_view_row_changed_cb),
12225         (emit_entry_changed): Evil, removed.
12226         (rb_entry_view_selection_changed_cb): Remove old signals, add new
12227         selection-changed signal.
12228         (rb_entry_view_select_none), (rb_entry_view_select_entry):
12229         Remove selection lock.  It didn't work anyway.
12230         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
12231         (rb_entry_view_emit_row_changed): Simple helper function to emit
12232         row-changed signals.
12234         * widgets/Makefile.am: Entry view needs headers from the shell/
12235         directory.
12236         * widgets/rb-song-info.{c,h}: Use the query model for everything except
12238         scrolling the entry view to show the entry being displayed.
12239         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
12240         'source' property so we can watch for query model changes.
12241         (rb_song_info_finalize): Unref objects, disconnect signal handlers
12242         (rb_song_info_set_property): Watch for query model changes, don't
12243         watch for entry view changes.
12244         (rb_song_info_new): Take source as a parameter, use the source's entry
12245         view unless one was specifically supplied.
12246         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
12247         Use query model rather than entry view to move between songs.
12248         (rb_song_info_update_buttons): Use query model.
12249         (rb_song_info_query_model_changed_cb): Handle query model changes.
12251         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12252         Only one copy of the code to enable/disable the CD burning action
12253         (rb_playlist_manager_playlist_entries_changed):
12254         Use the query model to get the number of entries, not the entry view.
12256         * shell/rb-play-order-random-by-age-and-rating.c,
12257         shell/rb-play-order-random-by-age.c,
12258         shell/rb-play-order-random-by-rating.c,
12259         shell/rb-play-order-random-equal-weights.c:
12260         Use G_DEFINE_TYPE
12262         * shell/rb-shell-player.{c,h}:
12263         Remove a few unused entries from the structure.
12264         (rb_shell_player_set_property):
12265         Don't use the 'changed' signal on the entry view (it's evil)
12266         (rb_shell_player_have_first): No longer needed
12267         (rb_shell_player_play): Just tell the entry view it's playing
12268         (rb_shell_player_playpause): Tell the entry view it's paused
12269         when pausing.
12270         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12271         (rb_shell_player_property_row_activated_cb):
12272         Get the entry to play using the query model, not the entry view.
12273         (rb_shell_player_sync_buttons): Update entry view state while we're
12274         here.
12275         (rb_shell_player_set_playing_source_internal): Update entry view state
12276         (rb_shell_player_get_playing): Ask the entry view, not the player.
12277         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12278         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12279         the window title and tray icon tooltip.
12280         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12282         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12283         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12284         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12285         view constructor, pass the source in to the song info widget
12286         constructor.
12288         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12289         Use 'selection-changed' instead of 'changed', since that's what the
12290         clipboard cares about.
12291         (rb_shell_clipboard_set_source): Don't die if source == NULL
12293 2005-12-10  James Livingston  <jrl@ids.org.au>
12295         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12296         * sources/rb-playlist-source-recorder.c:
12297         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12298         stuff not use the deprecated API when compiled against 2.13
12300 2005-12-10  James Livingston  <jrl@ids.org.au>
12302         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12304         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12305         problem where the genre tag was getting set to the artist. Closes bug
12306         323642.
12308 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12310         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12311         Return NULL if can't get first iter.
12313         Fixes #323663
12315 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12317         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12318         updated rb_station_properties_dialog_new API.
12319         (rb_iradio_source_add_from_playlist): New public function.
12320         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12322         * shell/rb-shell.c (new_station_location_added): Handle
12323         iradio location added signal.
12324         (rb_shell_cmd_new_station): Use new iradio station dialog.
12326         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12327         (rb_station_properties_dialog_new): Don't squeeze new
12328         station functionality into this class.
12329         (rb_station_properties_dialog_response_cb): ditto.
12330         (rb_station_properties_dialog_update_title): Make
12331         consistent with other properties dialogs.
12332         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12334         * iradio/rb-new-station-dialog.[ch]: 
12335         * iradio/Makefile.am: Add new station dialog.
12337         * data/glade/station-new.glade: New file based on
12338         new podcast feed dialog.
12339         * data/glade/station-properties.glade: Updated to
12340         be consistent with song properties dialog.
12342         Fixes #323306.
12344 2005-12-10  James Livingston  <jrl@ids.org.au>
12346         patch by: Ståle Lyngaas <staale@lyngaas.com>
12348         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12349         submit songs longer than 30 minutes. Fixes bug 323639.
12351 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12353         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12354         async save function.
12355         (rb_shell_finalize): Remove save timeout sources.  Reorder
12356         steps a bit to make saving db and playlists a bit more
12357         failsafe in case something goes wrong later.
12358         (rb_shell_constructor): Keep track of save timeout source.
12359         (add_to_library_response_cb): Keep track of db save timeout source.
12361         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12362         g_atomic.
12363         (rb_playlist_manager_shutdown): New function to shutdown
12364         threads etc. before exit.
12365         (rb_playlist_manager_finalize): Moved handling outstanding
12366         threads stuff to shutdown since if there are outstanding threads
12367         they hold a ref and finalize is never called.
12368         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12369         of signal which may be required for sync save.
12370         (rb_playlist_manager_save_playlists_async): Renamed old
12371         save_playlists to save_playlists_async.  Use g_atomic.
12372         (rb_playlist_manager_save_playlists): New function to
12373         perform sync saves (symmetric with RhythmDB API).
12374         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12376         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12377         Style consistency anality.
12378         (rhythmdb_finalize): Remove save timeout source.
12379         (rhythmdb_set_property, rhythmdb_get_property) 
12380         (rhythmdb_process_events): More anality and keep track of
12381         save timeout source.
12382         (action_thread_main): No need to call g_thread_exit.
12383         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12384         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12385         (write_encoded_gvalue, read_encoded_property): La la la.
12387         Fixes #322940.
12389 2005-12-10  James Livingston  <jrl@ids.org.au>
12391         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12392         non-audio files.
12394 2005-12-10  James Livingston  <jrl@ids.org.au>
12396         * Makefile.am:
12397         * configure.ac: remove the rpm spec files, so that automake works.
12398         oops
12400         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12401         locking issue
12403 2005-12-09  James Livingston  <jrl@ids.org.au>
12405         * debian/: try to get cvs to actually remove the files
12407 2005-12-09  James Livingston  <jrl@ids.org.au>
12409         * rhythmbox.spec.in:
12410         * debian/: remove the distro package stuff, they are *really* old, and
12411         downstream manage it anyway.
12413 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12415         Rework play orders to work off query models rather than 
12416         entry views, and track the playing entry themselves rather
12417         than relying on the entry view to do it.  This makes the entry
12418         view mostly just a widget. Closes bug 323612.
12420         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12421         Use query model rather than entry view to get the number
12422         of entries in playlists.
12424         * rhythmdb/rhythmdb-query-model.{c.h}
12425         (rhythmdb_query_model_tree_path_to_entry),
12426         (rhythmdb_query_model_iter_to_entry),
12427         (rhythmdb_query_model_get_next_from_entry),
12428         (rhythmdb_query_model_get_previous_from_entry):
12429         New utility functions for iterating through query models.
12430         (rhythmdb_query_model_compute_status_normal):
12431         Have one copy of this code, not four.
12433         * shell/rb-play-order.{c,h}:
12434         Add signals for when next/previous availability changes, and
12435         when the playing entry is removed, and add a property for
12436         the current playing entry.  Add gtkdoc comments too.
12437         (rb_play_order_class_init): Add new property and signals.
12438         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12439         (rb_play_orer_query_model_changed_cb),
12440         (rb_play_order_query_model_changed): 
12441         Use query model rather than entry view.
12442         (rb_play_order_set_property), (rb_play_order_get_property):
12443         Handle new playing-entry property.  Call playing_entry_changed virtual
12444         method so subclasses can do any processing required.
12445         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12446         (rb_play_order_set_playing_entry):
12447         Just use the playing-entry property.
12448         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12449         Utility methods for subclasses.
12450         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12451         Update next/previous availability, check if the playing entry
12452         was removed.
12453         (default_playing_entry_removed):
12454         Keep the current behaviour of just stopping playback when the 
12455         playing entry is deleted.
12456         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12457         these for subclasses that don't have go_next/go_previous, but do
12458         have get_next/get_previous.
12459         (rb_play_order_update_have_next_previous): Emit signal if the
12460         availability of next/previous entries has changed.
12462         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12463         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12464         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12465         methods.
12466         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12467         on the last song in the shuffled order, go back to the start. This
12468         means if you press 'play' again you'll get the whole order again, not
12469         just one song.
12471         * shell/rb-shell-player.c:
12472         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12473         play order rather than the entry view.
12474         (rb_shell_player_set_property): Update the play order when the
12475         selected source changes and we aren't playing anything.
12476         (rb_shell_player_sync_play_order): Copy the playing entry across to
12477         the new play order so playback continues from the same song, and watch
12478         for updates to have_next/have_previous.
12479         (rb_shell_player_play_order_update_cb): Enable/disable the
12480         next/previous actions when next/previous entry availability changes.
12481         (rb_shell_player_jump_to_current): Just use the play order's idea of
12482         what's playing, not the entry view's; if not playing anything, clear
12483         the selection, so when a playlist ends and you hit play again, it'll
12484         start at the start rather than the end.
12485         (rb_shell_player_do_previous): restructure a bit.
12486         (rb_shell_player_do_next): restructure, jump to new playing entry in
12487         an idle handler instead of directly.
12488         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12489         song if there is one.
12490         (rb_shell_player_playpause): Jump to playing song, don't update the
12491         play order if we got the song from the selection.
12492         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12493         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12494         looks after next/previous actions now.  Don't break if called while
12495         there is no selected source.
12496         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12497         (rb_shell_player_set_playing_source_internal),
12498         (rb_shell_player_error): No need to track the attempted playing entry
12499         any more, since the play order does that.
12501         * shell/rb-shell.c:
12502         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12503         rb_shell_player_get_playing_entry rather than going through the entry
12504         view.
12506         * shell/rb-statusbar.c (rb_statusbar_set_property),
12507         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12508         than the entry view for status bar text changes.
12509         (rb_statusbar_sync_status): Ask the query model directly
12511         * sources/rb-source.{c}: Add query model property.
12512         (default_get_status): Get status text from query model, should be
12513         suitable for most sources.
12514         (rb_source_set_property): Listen for changes to the query model 
12515         to update the status text.
12516         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12517         (idle_emit_status_changed): Emit status-changed signals when query
12518         model changes. 
12520         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12521         (impl_get_status): Not needed, RBSource does this now
12522         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12523         Update RBSource's query model reference.
12525         * sources/rb-playlist-source.c:
12526         Remove query-model property, since RBSource has one now
12527         (impl_get_status): Not needed, RBSource does this now
12528         (rb_playlist_source_row_deleted): Use query model iterator helper
12529         function.
12530         (rb_playlist_source_set_query_model): Update RBSource's query model
12531         reference too.
12533         * sources/rb-iradio-source.c:
12534         (impl_get_status): Ask the query model directly.
12535         (rb_iradio_source_do_query): Update RBSource's query model reference
12536         when we create a new query.
12538         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12539         Use query model rather than entry view.
12541         * widgets/rb-entry-view.{c,h}: 
12542         Remove playing_entry_deleted signal (now in play order).
12543         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12544          as RhythmDBQueryModel has equivalent helper functions.
12545         (rb_entry_view_*): Use query model helpers instead of the above two
12546         functions.
12548 2005-12-09  James Livingston  <jrl@ids.org.au>
12550         * configure.ac:
12551         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12552         (rb_recorder_enabled):
12553         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12554         * sources/rb-playlist-source-recorder.c:
12555         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12556         whether libnautilusburn has the _drive_unref function, and if so use
12557         it. Stops it complaining about deprecated API.
12559 2005-12-09  James Livingston  <jrl@ids.org.au>
12561         * configure.ac: drop the minimum gstreamer version back down, it
12562         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12564 2005-12-09  James Livingston  <jrl@ids.org.au>
12566         * widgets/rb-song-info.c: (rb_song_info_class_init),
12567         (rb_song_info_show), (rb_song_info_constructor),
12568         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12569         (rb_song_info_forward_clicked_cb): save metadata changes when the
12570         Next/Previous buttons are pressed (closes bug 320952). use
12571         G_DEFINE_TYPE.
12573 2005-12-09  James Livingston  <jrl@ids.org.au>
12575         Patch by: <jonathan@kaolin.hn.org>
12577         * sources/rb-iradio-source.c:
12578         (stations_view_drag_data_received_cb):
12579         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12580         of urls. Fixes bug 323610.
12582 2005-12-09  James Livingston  <jrl@ids.org.au>
12584          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12585          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12587         * configure.ac:
12588         * metadata/rb-metadata-gst.c:
12589         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12590         (rb_player_construct), (rb_player_new):
12591         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12592         (rb_recorder_gst_signal_error), (pipe_message),
12593         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12594         (rb_recorder_new):
12595         * shell/main.c: (main):
12596         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12597         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12599 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12601         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12603         * shell/rb-playlist-manager.c:
12604           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12605           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12606           (rb_playlist_manager_set_automatic_playlist),
12607           (rb_playlist_manager_cmd_new_automatic_playlist),
12608           (rb_playlist_manager_cmd_edit_automatic_playlist):
12609            Use new playlist subclasses.
12610           (rb_playlist_manager_save_playlists): Only read the dirty flag
12611            for local playlists, minor pointless reformatting
12613         * sources/Makefile.am: add new files
12615         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12616           split lots of stuff out into two
12617           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12618           make RBPlaylistSource abstract, add virtual methods for showing a
12619           popup for the entry view and saving the playlist to XML.
12620           Other stuff is subclass-specific, or already virtual in RBSource.
12622         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12623           in one place, since they're used across three source files now
12625         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12626           Use new static playlist class
12628         * sources/rb-ipod-source.c: (add_rb_playlist):
12629           Use new static playlist class
12631         * sources/rb-static-playlist-source.{c,h},
12632         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12633         files.
12635         * po/POTFILES.in: add new files
12637 2005-12-07  James Livingston  <jrl@ids.org.au>
12639         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12640         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12641         metadata loads not attempt to write changes to disk.
12643 2005-12-07  James Livingston  <jrl@ids.org.au>
12645         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12647         * data/glade/song-info-multiple.glade:
12648         * widgets/rb-song-info.c: (rb_song_info_constructor),
12649         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12650         multiple songs at once.
12652 2005-12-06  James Livingston  <jrl@ids.org.au>
12654         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12655         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12657 2005-12-06  James Livingston  <jrl@ids.org.au>
12659         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12660         names rather than adding a horizontal scroll bar.
12662 2005-12-06  James Livingston  <jrl@ids.org.au>
12664         * rhythmdb/rhythmdb-query-model.c:
12665         (rhythmdb_query_model_update_limited_entries),
12666         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12667         messages
12669         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12670         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12671         always hide rather than remove DB entries, which will make RB not lose
12672         information when tag editing happens or people move files to trash and
12673         then change their mind. Also fix some races where the monitoring code
12674         would notice the temporary files generated by saving metadata.
12676 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12678         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12679         Hide internals and add tooltips.
12680         (rb_song_display_box_size_allocate): Hide internals.
12681         (sanitize_string, info_url): Copied from rb-header.
12682         (rb_song_display_box_sync): New public function.
12684         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12685         (rb_header_init): Use a separate row for the seek bar.
12686         (rb_header_finalize): Don't unref widgets.
12687         (rb_header_sync): Use rb_song_display_box_sync.
12688         (rb_header_set_urldata)
12689         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12690         (rb_header_set_show_position_slider): Set visibility of seek bar.
12691         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12692         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12694         * shell/rb-statusbar.c (rb_statusbar_init)
12695         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12697         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12698         (rb_shell_constructor): Remove hseparator.  Monitor
12699         toolbar visibility settings.  Add toolbar.  Add
12700         volume button to toolbar.  Add tooltips for volume button.
12701         (rb_shell_view_toolbar_changed_cb) 
12702         (rb_shell_sync_toolbar_visibility)
12703         (toolbar_visibility_changed_cb): Set visibility of
12704         toolbar.
12705         (rb_shell_sync_smalldisplay): Set the toolbar style to
12706         icons only when in small display mode.
12707         (rb_shell_volume_widget_changed_cb): Save volume setting.
12709         * shell/rb-shell-player.c (rb_shell_player_constructor):
12710         Remove pause and stop actions.  Make play action "important"
12711         so that text is visible in horizontal toolbar position.
12712         Remove control buttons.
12713         (rb_shell_player_init) 
12714         (rb_shell_player_sync_song_position_slider_visibility):
12715         Set visbibility of seek bar.
12716         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12717         Make play action a toggle.
12718         (rb_shell_player_sync_volume): Volume control moved
12719         to player.
12720         (gconf_song_position_slider_visibility_changed):
12721         Set visbibility of seek bar.
12722         (rb_shell_player_sync_buttons):
12723         Set sensitivity of actions instead of buttons.
12724         (rb_shell_player_playing_changed_cb): Add callback
12725         for player notify::playing changes.
12727         * lib/rb-preferences.h: Add hide toolbar and seek
12728         bar key names.
12730         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12731         seek bar menu items.  Remove pause and stop actions
12732         from the control menu.  Add a toolbar.
12734         * data/rhythmbox.schemas: Add toolbar_hidden
12735         song_position_slider_hidden keys.
12737         Patch by: James Livingston  <jrl@ids.org.au>
12738                   William Jon McCann  <mccann@jhu.edu>
12739         Fixes #316238.
12741 2005-12-05  James Livingston  <jrl@ids.org.au>
12743         * data/glade/library-prefs.glade:
12744         * data/rhythmbox.schemas:
12745         * lib/rb-preferences.h:
12746         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12747         (rhythmdb_sync_library_location):
12748         * sources/rb-library-source.c: (rb_library_source_class_init),
12749         (rb_library_source_finalize), (rb_library_source_constructor),
12750         (impl_get_config_widget), (rb_library_source_preferences_sync),
12751         (rb_library_source_watch_toggled_cb): allow people to disable library
12752         monitoring, because with nothing set the file chooser button selects
12753         the Home folder (and hence that will get monitored).
12755 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12757         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12758         attempt to fix problem with RSS parsing showing invalid feed types.
12759         Fixes bug 323153
12761 2005-12-04  James Livingston  <jrl@ids.org.au>
12763         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12764         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12765         importing a remote directory not block the UI.
12767 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12769         * data/glade/podcast-feed-properties.glade:
12770         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12772 2005-12-04  James Livingston  <jrl@ids.org.au>
12774         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12776         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12777         to && to fix a mistake in the earlier podcast patch.
12779 2005-12-03  James Livingston  <jrl@ids.org.au>
12781         * data/glade/podcast-new.glade:
12782         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12783         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12785         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12786         GValue, which stops occasional errors.
12788         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12789         compile issue.
12791 2005-12-03  James Livingston  <jrl@ids.org.au>
12793         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12795         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12796         crasher with some podcasts feeds.
12798 2005-12-03  James Livingston  <jrl@ids.org.au>
12800         * data/rhythmbox.schemas: fix the gconf schema
12802 2005-12-03  James Livingston  <jrl@ids.org.au>
12804         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12805         add a selection timeout to the sourcelist. This lets you hold a track
12806         over the playlist source, and then have the view switch so you can
12807         insert the track in the middle of the playlist. Closes bug 323044.
12809         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12810         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12811         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12812         (rb_tree_dnd_add_drag_dest_support):
12813         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12814         timeout.
12816         * sources/rb-sourcelist-model.c:
12817         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12818         the source list.
12820 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12822         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12823         links, so that the text doesn't touch the button
12825 2005-12-02  James Livingston  <jrl@ids.org.au>
12827         Add full support for gnome-vfs remote files. Closes bug 140355.
12829         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12830         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12831         for authentication information from the user doesn't block the UI.
12833         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12835         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12836         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12837         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12838         (rhythmdb_process_stat_event), (emit_load_error_idle),
12839         (rhythmdb_process_metadata_load),
12840         (rhythmdb_process_queued_entry_set_event),
12841         (rhythmdb_process_file_created_or_modified),
12842         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12843         (queue_stat_uri), (add_thread_main),
12844         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12845         (rhythmdb_load), (rhythmdb_save_thread_main),
12846         (threadsafe_entry_set), (rhythmdb_query_internal),
12847         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12848         (rhythmdb_do_full_query_internal),
12849         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12850         (rhythmdb_volume_unmounted_cb),
12851         (rhythmdb_check_changed_file): trivial changes to support the
12852         asynchronous stats.
12854         * shell/main.c: (main): activate the authentication manager.
12856         * shell/rb-playlist-manager.c:
12857         (rb_playlist_manager_cmd_load_playlist),
12858         (rb_playlist_manager_cmd_save_playlist):
12859         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12860         (rb_shell_cmd_add_file_to_library):
12861         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12862         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12863         remote files.
12865 2005-12-02  James Livingston  <jrl@ids.org.au>
12867         * shell/rb-playlist-manager.c: makes playlist menu items use the
12868         elipses correctly. Fixes bug 322283.
12870 2005-12-02  James Livingston  <jrl@ids.org.au>
12872         * shell/rb-playlist-manager.c:
12873         (rb_playlist_manager_load_playlists): fix silly mistake
12875 2005-12-02  James Livingston  <jrl@ids.org.au>
12877         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12878         print out metadata-write unless --debug was passed.
12880         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12881         * shell/rb-playlist-manager.c:
12882         (rb_playlist_manager_load_playlists): block writes to disk if they are
12883         still being loaded.
12885 2005-12-02  James Livingston  <jrl@ids.org.au>
12887         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12888         ctrl-T, because Ctrl-D is used by "small mode"
12890 2005-12-02  James Livingston  <jrl@ids.org.au>
12892         * shell/rb-shell-preferences.c:
12893         (rb_shell_preferences_append_view_page):
12894         * sources/rb-library-source.c: (impl_get_config_widget):
12895         * sources/rb-podcast-source.c: (impl_get_config_widget):
12896         * sources/rb-source.c: (rb_source_get_config_widget):
12897         * sources/rb-source.h: Make the preference actually work.
12899         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12900         if Rhythmbox is being run for the first time.
12902 2005-12-02  James Livingston  <jrl@ids.org.au>
12904         Add support for Rhythmbox to watch your library, and automatically add
12905         new tracks. Fixes bug 160159.
12907         * data/glade/library-prefs.glade: add "library location" preference
12908         * data/rhythmbox.schemas: add gconf key for the library location
12910         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12911         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12912         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12913         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12914         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12915         (rhythmdb_load_thread_main), (rhythmdb_load),
12916         (monitor_subdirectory), (monitor_library_directory),
12917         (monitor_entry_file), (rhythmdb_sync_library_location),
12918         (library_location_changed_cb), (rhythmdb_check_changed_file),
12919         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12920         specifiec in the gconf key for new additions. Also fix monitoring code
12921         so that it works properly, and notices deletions.
12923         * lib/rb-preferences.h:
12924         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12925         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12926         * shell/rb-audioscrobbler.h:
12927         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12928         (rb_shell_preferences_append_view_page),
12929         (rb_shell_preferences_new):
12930         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12931         it's preferences pane, so that we don't need #ifdef's through
12932         rb-shell-preferences.
12934         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12935         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12936         "preferences" property, so that sources can acccess it. This is needed
12937         because the library location pref needs to take effect when the window
12938         is closed.
12940         * sources/rb-library-source.c:
12941         (rb_library_source_library_location_changed),
12942         (rb_library_source_dispose), (rb_library_source_finalize),
12943         (rb_library_source_constructor), (impl_get_config_widget),
12944         (rb_library_source_preferences_sync),
12945         (rb_library_source_process_library_location_change),
12946         (rb_library_source_prefs_update),
12947         (rb_library_source_process_library_handle_selection),
12948         (rb_library_source_library_location_cb): set up and control the
12949         "library location" preference.
12951         * sources/rb-audiocd-source.c:(rb_source_class_init):
12952         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12953         code.
12955 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12957         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12958         (rb_feed_podcast_properties_dialog_update_title): 
12959         * data/glade/podcast-feed-properties.glade:
12960         Make the feed properties dialog consistent with the podcast
12961         properties dialog.
12963 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12965         * metadata/.cvsignore: 
12966         * po/.cvsignore: 
12967         * podcast/.cvsignore: Updated.
12969         * shell/main.c (main): Support DBus 0.6 flags.
12971 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12973         * data/ui/rhythmbox-ui.xml:
12974         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12975         (rhythmbd_entry_move_to_trash_set_error),
12976         (rhythmdb_entry_move_to_trash):
12977         * rhythmdb/rhythmdb.h:
12978         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12979         (rb_shell_clipboard_cmd_delete),
12980         (rb_shell_clipboard_cmd_move_to_trash):
12981         * sources/rb-library-source.c: (rb_library_source_class_init),
12982         (impl_delete), (impl_move_to_trash):
12983         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12984         (impl_delete), (impl_move_to_trash):
12985         * sources/rb-removable-media-source.c:
12986         (rb_removable_media_source_class_init):
12987         * sources/rb-source.c: (rb_source_class_init),
12988         (rb_source_can_move_to_trash), (rb_source_delete),
12989         (rb_source_move_to_trash):
12990         * sources/rb-source.h:
12991         Add move_to_trash member for the sources, implement move to trash for
12992         the library and playlists
12993         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12994         local files to the trash, and deleting them from the database
12995         (Closes: #315389)
12997 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12999         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
13000         (rb_tray_icon_init, rb_tray_icon_finalize): 
13001         * shell/rb-statusbar.c (rb_statusbar_class_init) 
13002         (rb_statusbar_init, rb_statusbar_finalize): 
13003         * shell/rb-source-header.c (rb_source_header_class_init) 
13004         (rb_source_header_init, rb_source_header_finalize): 
13005         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
13006         (rb_shell_finalize): 
13007         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
13008         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
13009         * shell/rb-shell-player.c (rb_shell_player_class_init) 
13010         (rb_shell_player_init, rb_shell_player_finalize): 
13011         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
13012         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
13013         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
13014         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
13015         * shell/rb-play-order.c (rb_play_order_class_init) 
13016         (rb_play_order_init, rb_play_order_finalize): 
13017         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
13018         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
13019         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
13020         (rb_random_play_order_init, rb_random_play_order_finalize): 
13021         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
13022         (rb_history_finalize): 
13023         * shell/rb-commander.c (rb_commander_class_init) 
13024         (rb_commander_init, rb_commander_finalize): 
13025         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
13026         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
13027         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
13028         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
13029         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
13030         (rb_podcast_properties_dialog_init) 
13031         (rb_podcast_properties_dialog_finalize): 
13032         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
13033         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
13034         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
13035         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
13036         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
13037         (rb_feed_podcast_properties_dialog_init) 
13038         (rb_feed_podcast_properties_dialog_finalize): 
13039         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
13040         (rb_metadata_init, rb_metadata_finalize): 
13041         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
13042         (rb_station_properties_dialog_init) 
13043         (rb_station_properties_dialog_finalize): 
13044         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
13045         (rb_daap_share_init, rb_daap_share_dispose): 
13047         Use g_type_class_add_private in all classes. Closes bug 313688.
13048         
13049 2005-11-30  James Livingston  <jrl@ids.org.au>
13051         patch by: William Jon McCann <mccann@jhu.edu> to use
13052         g_type_class_add_private in all classes. Closes bug 313688.
13054         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
13055         (rb_thread_finalize):
13056         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
13057         (rb_player_finalize):
13058         * rhythmdb/rhythmdb-property-model.c:
13059         (rhythmdb_property_model_class_init),
13060         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
13061         * rhythmdb/rhythmdb-query-model.c:
13062         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
13063         (rhythmdb_query_model_finalize):
13064         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
13065         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
13066         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
13067         (rhythmdb_finalize):
13068         * sources/rb-daap-source.c: (rb_daap_source_class_init),
13069         (rb_daap_source_init), (rb_daap_source_dispose):
13070         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13071         (rb_iradio_source_init), (rb_iradio_source_finalize):
13072         * sources/rb-library-source.c: (rb_library_source_class_init),
13073         (rb_library_source_init), (rb_library_source_finalize):
13074         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13075         (rb_playlist_source_init), (rb_playlist_source_dispose):
13076         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13077         (rb_podcast_source_init), (rb_podcast_source_finalize):
13078         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13079         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
13080         * sources/rb-sourcelist-model.h:
13081         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13082         (rb_sourcelist_init), (rb_sourcelist_finalize):
13083         * sources/rb-sourcelist.h:
13084         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
13085         * widgets/rb-cell-renderer-rating.c:
13086         (rb_cell_renderer_rating_init),
13087         (rb_cell_renderer_rating_class_init),
13088         (rb_cell_renderer_rating_finalize):
13089         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
13090         (rb_druid_finalize):
13091         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13092         (rb_entry_view_init), (rb_entry_view_finalize):
13093         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
13094         (rb_header_finalize):
13095         * widgets/rb-load-failure-dialog.c:
13096         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
13097         (rb_load_failure_dialog_finalize):
13098         * widgets/rb-property-view.c: (rb_property_view_class_init),
13099         (rb_property_view_init), (rb_property_view_finalize):
13100         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
13101         (rb_rating_finalize):
13102         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13103         (rb_search_entry_init), (rb_search_entry_finalize):
13104         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13105         (rb_simple_view_init), (rb_simple_view_finalize):
13106         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
13107         (rb_song_display_box_init), (rb_song_display_box_finalize):
13108         * widgets/rb-song-info.c: (rb_song_info_class_init),
13109         (rb_song_info_init), (rb_song_info_finalize):
13110         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
13111         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
13113 2005-11-30  James Livingston  <jrl@ids.org.au>
13115         * iradio/rb-station-properties-dialog.c:
13116         (rb_station_properties_dialog_init),
13117         (rb_station_properties_dialog_new):
13118         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
13119         * lib/rb-glade-helpers.h:
13120         * podcast/rb-feed-podcast-properties-dialog.c:
13121         (rb_feed_podcast_properties_dialog_init),
13122         (rb_feed_podcast_properties_dialog_new):
13123         * podcast/rb-podcast-properties-dialog.c:
13124         (rb_podcast_properties_dialog_init),
13125         (rb_podcast_properties_dialog_new):
13126         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
13127         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13128         * sources/rb-library-source.c: (impl_get_config_widget):
13129         * sources/rb-playlist-source-recorder.c:
13130         (rb_playlist_source_recorder_init):
13131         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13132         (rb_song_info_constructor): create a single rb_glade_boldify_label()
13133         in rb-glade-helpers, rather than having eight implementation
13134         throughout the code.
13136 2005-11-30  James Livingston  <jrl@ids.org.au>
13138         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
13139         * lib/rb-util.h:
13140         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13141         move the duration->string function into rb-utils, as it gets used in a
13142         few places.
13144         patch by: William Jon McCann <mccann@jhu.edu>
13146         * data/glade/podcast-properties.glade:
13147         * podcast/rb-podcast-properties-dialog.c:
13148         (rb_podcast_properties_dialog_init),
13149         (rb_podcast_properties_dialog_update),
13150         (rb_podcast_properties_dialog_update_title),
13151         (rb_podcast_properties_dialog_update_feed),
13152         (rb_podcast_properties_dialog_update_duration),
13153         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
13154         info dialog look more like the song info dialog. Use the same "Feed"
13155         value that is displayed in the treeview (ie. the album field), displays
13156         the duration, uses units in the bitrate field, and sort the fields in
13157         the same order.
13159 2005-11-29  James Livingston  <jrl@ids.org.au>
13161         * rhythmdb/rhythmdb-marshal.list:
13162         * rhythmdb/rhythmdb.h:
13163         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
13164         (emit_load_error_idle), (rhythmdb_process_metadata_load),
13165         (entry_to_rb_metadata), (emit_save_error_idle),
13166         (action_thread_main): emit error signal when metadata write fails.
13168         * shell/rb-shell.c: (rb_shell_constructor),
13169         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
13170         "metadata save" error and display it to the user.
13172 2005-11-29  James Livingston  <jrl@ids.org.au>
13174         * data/ui/rhythmbox-ui.xml:
13175         * sources/rb-podcast-source.c:
13176         (rb_podcast_source_songs_show_popup_cb),
13177         (rb_podcast_source_cmd_download_post),
13178         (rb_podcast_source_cmd_cancel_download): split download and cancel
13179         download commands. Replace usage of "Post" with "Esisode". Fixes bug
13180         321653.
13182 2005-11-18  William Jon McCann  <mccann@jhu.edu>
13184         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
13185         title on alert dialogs per the HIG.
13187         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
13188         the term Burn.
13189         (free_song_list): Routine to free song list.
13190         (rb_playlist_source_recorder_finalize): Use free_song_list.
13191         (rb_playlist_source_recorder_add_from_model): Return FALSE
13192         if unable to add all songs.  Check that duration of all
13193         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
13194         Fixes #321753.
13196         * sources/rb-playlist-source-recorder.c (check_media_length)
13197         (rb_playlist_source_recorder_start): Only check the duration
13198         and current media if the playlist length is longer than a
13199         standard CD (74 min).  Otherwise, just let the Recorder do the
13200         check.
13201         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
13202         drive at init.
13203         (rb_recorder_set_device): Don't leak drives.
13204         (rb_recorder_get_media_length): Use drive that was already set.
13205         (rb_recorder_burn): Let the recorder handle checking media type/size.
13206         Fixes bug 321754.
13208 2005-11-29  James Livingston  <jrl@ids.org.au>
13210         * rhythmdb/rhythmdb-query-model.c:
13211         (rhythmdb_query_model_set_sort_order):
13212         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
13213         emitting the tree-model "resorted" signal.
13215         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13216         (rb_entry_view_finalize), (rb_entry_view_set_property),
13217         (rb_entry_view_constructor), (rb_entry_view_resort_model):
13218         * widgets/rb-entry-view.h: add a function to resort the entry view,
13219         using the above function.
13221         * sources/rb-iradio-source.c:
13222         (rb_iradio_source_songs_view_sort_order_changed_cb):
13223         * sources/rb-library-source.c: (rb_library_source_finalize),
13224         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
13225         * sources/rb-playlist-source.c:
13226         (rb_playlist_source_songs_sort_order_changed_cb):
13227         * sources/rb-podcast-source.c:
13228         (rb_podcast_source_posts_view_sort_order_changed_cb),
13229         (rb_podcast_source_do_query): use the above function instead of
13230         re-creating the query model. This makes changing the sorting an order
13231         of magnitude faster, as it uses a single resorted signal rather than
13232         deleting and re-adding everything (which emits 2N signals). Closes bug
13233         315389.
13235 2005-11-29  James Livingston  <jrl@ids.org.au>
13237         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
13238         autosizing, which results in large speedups. Closes bug 312122.
13240         * po/ja.po: change the date format, so that it is a constant width
13242         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13243         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13244         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
13245         (rb_entry_view_constructor): make columns use fixed widths,
13246         disable column autosizing, and enable fixed-height mode.
13248         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
13249         (rb_entry_view_get_time_date_column_sample):
13250         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13251         and get the canonical date format for the locale.
13253 ============ Version 0.9.2
13255 2005-11-28  James Livingston  <jrl@ids.org.au>
13257         * configure.ac: bump version to 0.9.2
13258         * NEWS: update with changes for 0.9.2
13260 2005-11-28  James Livingston  <jrl@ids.org.au>
13262         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13264         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13265         Disable saving, renaming and delting for DAAP playlists.
13266         Fixes bug 322627.
13268 2005-11-28  James Livingston  <jrl@ids.org.au>
13270         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13271         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13272         prevent bug 322619.
13274         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13275         * sources/rb-removable-media-source.c:
13276         (rb_removable_media_source_class_init): fix ipod browser visibility
13277         problem.
13279 2005-11-28  James Livingston  <jrl@ids.org.au>
13281         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13282         Avahi 0.6 support actually work. Fixes bug 322519.
13284 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13286         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13287         avahi is specified in --with-mdns
13289 2005-11-27  James Livingston  <jrl@ids.org.au>
13291         patch by: Bastien Nocera <hadess@hadess.net>
13293         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13294         not the private one. Fixes bug 322485.
13296 2005-11-26  James Livingston  <jrl@ids.org.au>
13298         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13299         Avahi 0.6, as well as 0.5.
13301         * configure.ac:
13302         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13303         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13304         (add_service):
13306 2005-11-25  James Livingston  <jrl@ids.org.au>
13308         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13309         321926.
13311 2005-11-25  James Livingston  <jrl@ids.org.au>
13313         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13314         correct type for checking the date against 0. Stops a warning when
13315         saving metadata.
13317 2005-11-25  James Livingston  <jrl@ids.org.au>
13319         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13320         adjustment to be inside the element's limits. Without this songs that
13321         have large ReplayGain values will recieve no increase because they are
13322         outside the acceptable range, causing them to remain quiet.
13324 2005-11-25  James Livingston  <jrl@ids.org.au>
13326         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13327         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13328         * sources/rb-ipod-source.c:
13329         * sources/rb-source.h:
13330         * sources/rb-library-source.h:
13331         * sources/rb-library-source.c: (rb_library_source_class_init),
13332         (rb_library_source_constructor),
13333         (rb_library_source_has_first_added_column),
13334         (rb_library_source_has_drop_support):
13335         * sources/rb-removable-media-source.c:
13336         (rb_removable_media_source_class_init): Make library-derived sources
13337         not show the Date Added column, as it doesn't make sense. Fixes bug
13338         322269.
13339         Move some of the feature funcs from the ipod and audio cd sources up to
13340         the removable media source.
13342 2005-11-24  James Livingston  <jrl@ids.org.au>
13344         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13345         errors. oops.
13347 2005-11-24  James Livingston  <jrl@ids.org.au>
13349         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13350         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13351         (rb_iradio_source_constructor): Chain up dispose method and use
13352         G_DEFINE_TYPE
13354 2005-11-24  James Livingston  <jrl@ids.org.au>
13356         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13357         mistake in the last commit that can cause crashes.
13359 2005-11-24  James Livingston  <jrl@ids.org.au>
13361         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13362         instead of g_printerr.
13364         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13365         rb_debug instead of g_warning. The message happens every time for
13366         removable media/daap shares, so it's not unusual.
13368 2005-11-24  James Livingston  <jrl@ids.org.au>
13370         patch by: Tom Parker <palfrey@tevp.net>
13372         * configure.ac: fix libsoup test for enabling daap
13374 2005-11-23  James Livingston  <jrl@ids.org.au>
13376         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13377         (rb_query_creator_init), (rb_query_creator_constructor),
13378         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13379         empty row to queries with no criteria. Fixes bug 322078. use
13380         G_DEFINE_TYPE.
13382 2005-11-23  James Livingston  <jrl@ids.org.au>
13384         patch by:  <baptiste.millemathias@gmail.com>
13386         * help/C/quick-reference.xml: update the quick reference to have the
13387         correct key bindings.
13389 2005-11-22  James Livingston  <jrl@ids.org.au>
13391         * sources/rb-library-source.c: (genres_selection_reset_cb),
13392         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13393         reset the query when all browser selections are removed.
13395 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13397         * podcast/rb-podcast-manager.c:
13398         (rb_podcast_manager_db_entry_deleted_cb):
13399         Use a custom loop to remove podcast posts, rather than
13400         gtk_tree_model_foreach(), as deleting the entries within
13401         that loop causes the iterator to return the first entry
13402         twice.  Instead, we need to find the next entry before
13403         removing the current one. Fixes bug 321956.
13404         (rb_podcast_manager_entry_remove_cb): No longer needed.
13406 2005-11-22  James Livingston  <jrl@ids.org.au>
13408         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13409         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13410         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13412 2005-11-22  James Livingston  <jrl@ids.org.au>
13414         * sources/rb-podcast-source.c:
13415         (rb_podcast_source_post_date_cell_sort_func),
13416         (rb_podcast_source_post_status_cell_sort_func),
13417         (rb_podcast_source_post_feed_cell_sort_func):
13418         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13419         (rb_entry_view_album_sort_func),
13420         (rb_entry_view_double_ceiling_sort_func),
13421         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13422         the entry's location as a last resort when sorting, so the sort order
13423         is stable. This will stop entries moving around when two entries have
13424         the same sorting, and one of them gets played.
13426 2005-11-22  James Livingston  <jrl@ids.org.au>
13428         * daapsharing/rb-daap-connection.c:
13429         (rb_daap_connection_class_init), (rb_daap_connection_init),
13430         (connection_get_password), (build_message),
13431         (http_response_handler), (http_get), (handle_server_info),
13432         (handle_login), (handle_update), (handle_database_info),
13433         (handle_song_listing), (handle_playlists),
13434         (handle_playlist_entries), (rb_daap_connection_new),
13435         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13436         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13437         (rb_daap_connection_get_headers),
13438         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13439         (rb_daap_connection_set_property),
13440         (rb_daap_connection_get_property):
13441         * daapsharing/rb-daap-connection.h:
13442         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13443         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13444         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13445         of destroying the object when it is going to be used by a callback and
13446         fixes a double-free. Fixes bugs 321930 and 322007.
13448 2005-11-22  James Livingston  <jrl@ids.org.au>
13450         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13451         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13452         notification if there aren't any. Fixes bug 321968.
13454 2005-11-22  James Livingston  <jrl@ids.org.au>
13456         * rhythmdb/rhythmdb-property-model.c:
13457         (rhythmdb_property_model_set_property),
13458         (rhythmdb_property_model_finalize),
13459         (rhythmdb_property_model_compare),
13460         (rhythmdb_property_model_insert),
13461         (rhythmdb_property_model_delete_prop): Fix property model sorting
13462         where the display and sort keys are different. Fixes bug 321980.
13464 2005-11-22  James Livingston  <jrl@ids.org.au>
13466         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13467         when import as a file or passed on the command line, and load them as
13468         playlists.
13470 2005-11-22  James Livingston  <jrl@ids.org.au>
13472         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13474         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13475         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13476         a broken daap server. Fixes bug 321919.
13478 2005-11-22  James Livingston  <jrl@ids.org.au>
13480         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13481         drag-and-drop for both the episodes and feeds list.
13482         
13483         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13484         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13485         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13487         * widgets/rb-property-view.c: (rb_property_view_class_init),
13488         (rb_property_view_set_property), (rb_property_view_get_property),
13489         (rb_property_view_new), (rb_property_view_constructor):
13490         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13491         (rb_simple_view_new), (rb_simple_view_constructor):
13492         * widgets/rb-simple-view.h: add a "draggable" property to property
13493         views and set it to false for the feed list. Fixes bug 321284.
13495 2005-11-22  James Livingston  <jrl@ids.org.au>
13497         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13499         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13500         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13501         * sources/rb-ipod-source.c: (add_rb_playlist):
13502         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13503         (rb_playlist_source_set_property),
13504         (rb_playlist_source_get_property), (rb_playlist_source_new),
13505         (impl_receive_drag), (rb_playlist_source_add_location),
13506         (rb_playlist_source_new_from_xml):
13507         * sources/rb-playlist-source.h: give playlists and (optional)
13508         entry-type, and reject entries that don't match. Fixes bug 322006.
13510 2005-11-21  James Livingston  <jrl@ids.org.au>
13512         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13513         (rb_source_header_finalize): remove the weak references when the
13514         source header is finalised. Stops the callbacks being called after the
13515         object is destroyed.
13517 2005-11-21  James Livingston  <jrl@ids.org.au>
13519         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13520         --no-registration was passed. It causes warnings that make it
13521         impossible to run with --no-registration --g-fatal-warnings
13523 2005-11-21  James Livingston  <jrl@ids.org.au>
13525         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13526         of strings when they are still in use. Fixes bug 321547.
13528         (rb_daap_connection_destroy): fix memory leak
13530 2005-11-21  James Livingston  <jrl@ids.org.au>
13532         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13533         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13534         (rb_daap_mdns_resolve_cancel), (publish_cb),
13535         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13536         support.
13538 2005-11-21  James Livingston  <jrl@ids.org.au>
13540         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13541         sorting by genre
13543 2005-11-20  James Livingston  <jrl@ids.org.au>
13545         * podcast/rb-podcast-manager.c:
13546         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13547         that we don't leak thread structures. Fixes bug 321636, and probably
13548         321775.
13550 2005-11-20  James Livingston  <jrl@ids.org.au>
13552         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13553         (lookup_cd):
13554         * podcast/rb-podcast-manager.c: (start_job),
13555         (rb_podcast_manager_db_entry_deleted_cb),
13556         (rb_podcast_manager_entry_remove_cb):
13557         * podcast/rb-podcast-parse.c: (rb_insert_item),
13558         (rb_podcast_parse_load_feed):
13559         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13560         * shell/rb-removable-media-manager.c:
13561         (rb_removable_media_manager_append_media_source):
13562         * shell/rb-shell.c: (add_to_library_response_cb):
13563         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13564         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13565         * sources/rb-iradio-source.c:
13566         (stations_view_drag_data_received_cb):
13567         * sources/rb-library-source.c: (string_list_equal),
13568         (impl_get_extra_views), (impl_receive_drag):
13569         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13570         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13571         (impl_receive_drag):
13572         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13573         (rb_entry_view_append_column_custom), (harvest_entries):
13574         * widgets/rb-property-view.c:
13575         (rb_property_view_selection_changed_cb):
13576         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13577         switch from using g_list_append to g_list_prepend. This changes
13578         operations from O(n^2) to O(n), which in cases like deleting a lot of
13579         tracks can give huge improvements in speed. Closes bug 321696.
13581 2005-11-20  James Livingston  <jrl@ids.org.au>
13583         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13584         (rb_sourcelist_update_expander_visibility): fix indenting of child
13585         sources.
13587 2005-11-20  James Livingston  <jrl@ids.org.au>
13589         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13590         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13591         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13592         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13593         (add_service), (entry_group_cb): dynamically allocate memory, rather
13594         than using static variables.
13596         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13597         re-enable the daap share if the name hasn't changed.
13598         * shell/rb-shell-preferences.c:
13599         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13600         change it's name when the checkbox is disabled. Fixed bug 321748.
13602 2005-11-18  James Livingston  <jrl@ids.org.au>
13604         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13605         as hidden if it is on the current workspace.
13607 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13609         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13610         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13611         (rb_podcast_properties_dialog_parse_time): 
13612         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13613         (rb_feed_podcast_properties_dialog_parse_time):
13614         Rework the way the last mod time strings are created.  It was using
13615         thread unsafe functions, not creating value UTF, and not not checking
13616         the value of the result before modifying it.  This new method fixes
13617         these problems.
13619 2005-11-18  James Livingston  <jrl@ids.org.au>
13621         Don't reset the search box when viewing a different source, because it
13622         will change what is being played. Closes 321593.
13624         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13625         the search box
13627         * shell/rb-source-header.c: (rb_source_header_class_init),
13628         (rb_source_header_init), (rb_source_header_finalize): use
13629         G_DEFINE_TYPE.
13631         (rb_source_header_set_property),
13632         (rb_source_header_source_weak_destroy_cb),
13633         (rb_source_header_search_cb): store the search text when leaving a
13634         source and put it in the search box when viewing it again.
13636 2005-11-18  James Livingston  <jrl@ids.org.au>
13638         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13639         (save_entry):
13640         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13641         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13642         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13643         time stamp.
13645         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13646         last-seen as the timestamp of the last update of the feed. Don't
13647         re-add episodes that have been deleted. Closes 319759.
13649 2005-11-18  James Livingston  <jrl@ids.org.au>
13651         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13652         that don't have the day name at the start. Closes 321645.
13654 2005-11-18  James Livingston  <jrl@ids.org.au>
13656         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13657         (rb_podcast_manager_copy_post),
13658         (rb_podcast_manager_get_podcast_dir):
13659         * podcast/rb-podcast-manager.h:
13660         * sources/rb-podcast-source.c: (impl_get_config_widget),
13661         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13662         download location switching to / if the prefs were opened before
13663         downloading an episode. Closes 321611.
13665 2005-11-18  James Livingston  <jrl@ids.org.au>
13667         * data/glade/podcast-new.glade:
13668         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13669         (rb_new_podcast_dialog_set_property),
13670         (rb_new_podcast_dialog_get_property),
13671         (rb_new_podcast_dialog_response_cb),
13672         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13673         for entering new podcast urls in. Closes bug 321610.
13675 2005-11-18  James Livingston  <jrl@ids.org.au>
13677         * sources/rb-podcast-source.c: (construct_query_from_selection),
13678         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13679         without restarting RB. Closes bug 321612.
13681 2005-11-18  James Livingston  <jrl@ids.org.au>
13683         * widgets/rb-entry-view.c: (set_column_visibility),
13684         (rb_entry_view_sync_columns_visible): when changing visibility of one
13685         column, don't hide and re-show all the others. Makes a show/hide
13686         column operation a lot faster.
13688 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13690         Closes bug 321702.
13692         * iradio/rb-station-properties-dialog.c
13693          (rb_station_properties_dialog_update_bitrate):
13694         Mark the bitrate value as being kbps, using the same
13695         translatable format string as rb-song-info.c
13697         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13698          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13700         * shell/rb-shell-player.c (info_available_cb):
13701          Use RB_METADATA_FIELD_BITRATE to update the iradio
13702          station's bitrate value.
13704 2005-11-17  James Livingston  <jrl@ids.org.au>
13706         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13708         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13709         free a NULL date.
13711 2005-11-17  James Livingston  <jrl@ids.org.au>
13713         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13715         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13716         assertions. Lookup the icon size correctly.
13718 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13720         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13721         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13722         Fix build errors.
13724 2005-11-16  James Livingston  <jrl@ids.org.au>
13726         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13727         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13728         (rb_shell_preferences_sync_column_button): block the toggle signal of
13729         the column checkboxes while setting their initial state. This stops
13730         the visibility being re-set, which causes a lot of time being spent
13731         measuring the columns aagin when opening the prefs window.
13733         Use G_DEFINE_TYPE.
13735 2005-11-16  James Livingston  <jrl@ids.org.au>
13737         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13738         (rb_sourcelist_edit_source_name): don't assume that the editable
13739         source name is in the first column, because it isn't. Fixes bug
13740         320137.
13742 2005-11-16  James Livingston  <jrl@ids.org.au>
13744         * daapsharing/rb-daap-mdns.h:
13745         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13746         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13747         parts can know why operations failed. Avahi can report that the daemon
13748         was not running. Howl doesn't do this (yet).
13749         
13750         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13751         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13752         (browse_cb): don't display mdns errors to the user, if it wa because
13753         the daemon was not running.
13755 2005-11-16  James Livingston  <jrl@ids.org.au>
13757         * rhythmdb/rhythmdb-property-model.c:
13758         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13759         (rhythmdb_property_model_compare),
13760         (rhythmdb_property_model_insert),
13761         (rhythmdb_property_model_insert_prop),
13762         (rhythmdb_property_model_delete),
13763         (rhythmdb_property_model_delete_prop),
13764         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13765         copying the string and re-creating the sort key. Saves a little bit of
13766         memory and time.
13768         (rhythmdb_property_model_perform_sync),
13769         (rhythmdb_property_model_sync): perform the count sync in an idle
13770         callback, so that it doesn't have to be re-run once per value when
13771         loading.
13773 2005-11-16  James Livingston  <jrl@ids.org.au>
13775         * rhythmdb/rhythmdb-query-model.c:
13776         (rhythmdb_query_model_entry_deleted_cb),
13777         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13778         limited list. Stops problems if they are deleted, and then things on
13779         the main list are
13781 2005-11-16  James Livingston  <jrl@ids.org.au>
13783         * NEWS: update NEWS
13785         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13786         button's minimise-to-tray action
13788 2005-11-16  James Livingston  <jrl@ids.org.au>
13790         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13791         leak. Disable adding newly created files for now, because it doesn't
13792         work properly.
13794         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13795         (rb_sourcelist_model_finalize):
13796         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13797         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13799 2005-11-16  James Livingston  <jrl@ids.org.au>
13801         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13802         problem where a GError* wasn't being set to NULL. Actually check the
13803         result.
13805 2005-11-16  James Livingston  <jrl@ids.org.au>
13807         * doc/reference/tmpl/rb-entry-view.sgml:
13808         * doc/reference/tmpl/rhythmbox-unused.sgml:
13809         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13810         * doc/reference/tmpl/rhythmdb.sgml:
13811         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13812         docs, including the patch that was on bug 
13814         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13815         API, because it should only be used by RhythmDB itself.
13817 2005-11-16  James Livingston  <jrl@ids.org.au>
13819         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13820         pausing by middle clicking on the tray icon.
13822 2005-11-15  James Livingston  <jrl@ids.org.au>
13824         * configure.ac: enable audioscrobbler support by default, if libsoup
13825         is present.
13827 2005-11-15  James Livingston  <jrl@ids.org.au>
13829         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13830         Closes bug 321157.
13832         * configure.ac:
13833         * daapsharing/rb-daap-connection.c: (build_message),
13834         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13835         support gzip encoded daap connections.
13837         (handle_song_listing): fix leak
13839 2005-11-15  James Livingston  <jrl@ids.org.au>
13841         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13842         * sources/rb-podcast-source.c:
13843         (rb_podcast_source_post_date_cell_data_func): make the date format
13844         translatable again, so that translators can choose the best format for
13845         their locale (%x is huge in some locales)
13847 2005-11-15  James Livingston  <jrl@ids.org.au>
13849         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13850         (end_job): mark podcast episodes as failed, if the metadata load
13851         fails. This will prevent people playing non-audio enclosures, helping
13852         stop bug 320366.
13854 2005-11-14  James Livingston  <jrl@ids.org.au>
13856         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13857         video sink to fakesink. This will stop problems (potentially crashers)
13858         that will occur if the file contains a video stream.
13860         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13861         rather than using magic numbers everywhere.
13863         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13864         * sources/rb-podcast-source.c:
13865         (rb_podcast_source_songs_show_popup_cb),
13866         (rb_podcast_source_cmd_download_post),
13867         (rb_podcast_source_post_status_cell_data_func),
13868         (rb_podcast_source_entry_activated_cb): use the above constants.
13870         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13871         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13872         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13873         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13874         (cancel_job), (download_progress_cb),
13875         (rb_podcast_manager_cancel_download),
13876         (rb_podcast_manager_insert_feed): use the constants, and fix a
13877         trhead-safety issue.
13879 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13881         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13882         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13883         entry-changed events after stats on startup, fixes entry deleted from
13884         filtered views not disappearing
13886 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13888         Fix rhythmdb query model refcount and polling problems. Closes bug
13889         321410.
13891         * rhythmdb/rhythmdb-property-model.c:
13892         (rhythmdb_property_model_finalize):
13893          Unref the query model if we have one.
13895         * rhythmdb/rhythmdb-query-model.h:
13896          Remove poll and cancel methods.  Query cancellation
13897          never did anything anyway.
13899         * rhythmdb/rhythmdb-query-model.c:
13900         (rhythmdb_query_model_init): Remove GAsyncQueues.
13901          Replace the GAsyncQueue-based update processing
13902          with a simpler g_idle_add approach; still has the
13903          same queueing properties, but now we don't poll the
13904          model forever and updates are processed immediately.
13906         (_unref_entry), (rhythmdb_query_model_finalize):
13907          Unref DB entries when finalized
13909         (rhythmdb_query_model_has_pending_changes):
13910          Use our own counter to decide if there are updates pending
13912         (rhythmdb_query_model_process_update), (idle_process_update):
13913          Process updates using g_idle_add, or directly if possible
13915         (rhythmdb_query_model_signal_complete),
13916         (rhythmdb_query_model_add_entries):
13917          Change to new update processing method
13919         (idle_poll_model), (rhythmdb_query_model_poll):
13920          Remove GAsyncQueue-based update processing.
13922         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13923          No need to poll the model any more - updates are processed
13924          directly for synchronous queries.
13926         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13927          Property model needs to be unref'd here
13929         * sources/rb-library-source.c: (rb_library_source_do_query):
13930          Don't try to cancel the active query (it never worked anyway),
13931          remove obsolete poll call, unref property models as required,
13932          and don't unref the cached 'all' query, since hold on to it.
13933          We unref it when the sort order changes, which forces the query
13934          to be rerun.
13936         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13937          Unref the property model as required
13939         (rb_podcast_source_do_query):
13940          Treat any query with no selected feeds and no search text as
13941          an 'all' query.  Unref query models except for the cached
13942          'all' query, since we hold on to that.
13944         (rb_podcast_source_cmd_update_all):
13945          Unref the property model as required.
13947         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13948          Don't try to cancel the query (it never worked anyway)
13950         (rb_entry_view_poll_model):
13951          No need for this any more.
13953         * widgets/rb-entry-view.h:
13954          Remove obsolete function rb_entry_view_poll_model
13956         * widgets/rb-property-view.c: (rb_property_view_set_property):
13957          Ref and unref the property model as required.
13959 2005-11-14  James Livingston  <jrl@ids.org.au>
13961         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13963         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13964         for error. Closes bug 321416.
13966 2005-11-14  James Livingston  <jrl@ids.org.au>
13968         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13970         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13971         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13973 2005-11-14  James Livingston  <jrl@ids.org.au>
13975         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13976         * shell/rb-removable-media-manager.c:
13977         (rb_removable_media_manager_set_uimanager):
13978         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13979         translation domain for GTK action groups.
13981 2005-11-12  James Livingston  <jrl@ids.org.au>
13983         * po/POTFILES.in: remove the old station-new files
13985 2005-11-12  James Livingston  <jrl@ids.org.au>
13987         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13988         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13989         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13990         when upgrading from a pre-Date-supporting version to a version that
13991         supports Date metadata. Closes bug 320760.
13993 2005-11-12  James Livingston  <jrl@ids.org.au>
13995         Add "update all podcast feeds" command. Closes bug 319954.
13997         * data/ui/rhythmbox-ui.xml: add to source context menu.
13999         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14000         (register_action_group), (rb_podcast_source_cmd_download_post),
14001         (rb_podcast_source_cmd_delete_feed),
14002         (rb_podcast_source_cmd_properties_feed),
14003         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
14004         rather than the shell.
14006         (rb_podcast_source_update_feed_func),
14007         (rb_podcast_source_cmd_update_all): update every feed.
14009 2005-11-11  James Livingston  <jrl@ids.org.au>
14011         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14012         (rb_shell_player_constructor), (rb_shell_player_finalize):
14013         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
14014         others follow the HIG recommentations.
14016 2005-11-11  James Livingston  <jrl@ids.org.au>
14018         * podcast/rb-podcast-manager.c:
14019         (rb_podcast_manager_subscribe_feed): check that the url is valid,
14020         before trying to use it.
14022 2005-11-11  James Livingston  <jrl@ids.org.au>
14024         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
14025         (rb_entry_view_append_column): When sorting by year, sort by album
14026         within a particular year.
14028 2005-11-11  James Livingston  <jrl@ids.org.au>
14030         * NEWS: updates
14032 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
14033         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
14034         spelling of "Language."
14036 2005-11-11  James Livingston  <jrl@ids.org.au>
14038         * rhythmdb/rhythmdb-property-model.c:
14039         (rhythmdb_property_model_row_inserted_cb),
14040         (rhythmdb_property_model_prop_changed_cb),
14041         (rhythmdb_property_model_entry_removed_cb),
14042         (rhythmdb_property_model_insert_prop),
14043         (rhythmdb_property_model_sync): display the count after the "All"
14044         entry of a property model.
14046         * widgets/rb-property-view.c: (rb_property_view_class_init),
14047         (rb_property_view_finalize), (rb_property_view_constructor): use
14048         G_DEFINE_TYPE
14050 2005-11-10  James Livingston  <jrl@ids.org.au>
14052         * rhythmdb/rhythmdb-query-model.c:
14053         (rhythmdb_query_model_remove_entry):
14054         * rhythmdb/rhythmdb-query-model.h: make
14055         rhythmdb_query_model_remove_entry return whether the entry was in the
14056         model.
14058         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
14059         don't add non-SONG entries, as it doesn't really work and can cause
14060         crashes.
14062         (rb_playlist_source_remove_location): assert if the playlist and model
14063         differ on whether the entry is in the playlist
14065 2005-11-10  James Livingston  <jrl@ids.org.au>
14067         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
14068         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
14069         (rb_podcast_manager_thread_parse_feed),
14070         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
14071         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
14072         emulating one with a list and mutex. Fixes a couple of threading
14073         issues.
14074         
14075         (rb_podcast_manager_insert_feed): fix some problems with ignoring
14076         updated feeds.
14077         
14078         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
14079         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
14080         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
14081         * podcast/rb-podcast-parse.c: (rb_insert_item),
14082         (rb_podcast_parse_channel_free):
14083         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
14084         fix some typos, and make a bit of code clearer.
14086 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
14088         Make the "delete podcast" dialog better. Closes bug 320899.
14090         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
14091         Add PROP_WINDOW for rb_shell_get_property so we can access the
14092         GtkWindow widget of the main window. 
14093         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
14094         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
14095         podcast feed delete dialog less confusing as well.
14097 2005-11-09  James Livingston  <jrl@ids.org.au>
14099         * shell/rb-removable-media-manager.c:
14100         (rb_removable_media_manager_mount_volume),
14101         (rb_removable_media_manager_scan): Fix a crasher where we were getting
14102         NULL for a cd volume.
14104 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14106         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
14107         method return a gboolean indicating whether the changes
14108         to the entry have already been applied.
14110         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
14111         only modify the entry if impl_entry_set returns FALSE.
14113         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
14114         When setting the location of an entry, update the
14115         hash table mapping locations to entries.
14117 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14119         * data/glade/Makefile.am:
14120         * iradio/Makefile.am:
14121           Remove 'new station' dialog.
14123         * iradio/rb-station-properties-dialog.h:
14124         * sources/rb-iradio-source.c: (impl_song_properties):
14125         * shell/rb-shell.c: (rb_shell_cmd_new_station):
14126          Add 'new station' mode parameter to
14127          rb_station_properties_dialog_new.
14129         * (rb_station_properties_dialog_response_cb),
14130         (rb_station_properties_dialog_create_station):
14131          When in 'new station' mode, create the station
14132          when OK button is pressed.
14134         * iradio/rb-station-properties-dialog.c:
14135         (rb_station_properties_dialog_location_changed_cb):
14136          Only enable OK button if a location is specified
14137         (rb_station_properties_dialog_init),
14138         (rb_station_properties_dialog_new),
14139         (rb_station_properties_dialog_update),
14140         (rb_station_properties_dialog_update_title),
14141         (rb_station_properties_dialog_rated_cb),
14142         (rb_station_properties_dialog_update_play_count),
14143         (rb_station_properties_dialog_update_bitrate),
14144         (rb_station_properties_dialog_update_last_played),
14145         (rb_station_properties_dialog_update_rating),
14146         (rb_station_properties_dialog_update_playback_error),
14147         (rb_station_properties_dialog_show):
14148          Handle 'new station' mode, where there's no current
14149          station to edit.
14151 2005-11-08  James Livingston  <jrl@ids.org.au>
14153         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
14154         keybinding for track columns consistent between library and playlist
14155         sources.
14157 2005-11-07  James Livingston  <jrl@ids.org.au>
14159         * data/ui/rhythmbox-ui.xml:
14160         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
14161         "Edit" item to playlist menu. Closes bug 311470.
14163 2005-11-07  James Livingston  <jrl@ids.org.au>
14165         patch by: Jaap A. Haitsma <jaap@haitsma.org>
14167         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
14168         confirmation to save dialogs, with gtk 2.8 or higher.
14170 2005-11-07 James Livingston  <jrl@ids.org.au>
14171         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
14172         requirement to a general on, because people are going to have it for
14173         the other dependencies.
14175 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
14177         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
14178         delete dialog less confusing.  Use HIG recommended button order.
14179         Closes bug 320840.
14181 2005-11-06  James Livingston  <jrl@ids.org.au>
14183         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
14184         drag-and-drop error.
14185         
14186         * sources/rb-library-source.c: (rb_library_source_constructor): only
14187         add drag-and-drop for the Library itself, subclasses can add support
14188         themselves if they want it.
14190         * sources/rb-removable-media-source.c:
14191         (rb_removable_media_source_class_init): by default removable media
14192         sources do not support dnd
14194 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
14196         * data/glade/station-properties.glade:
14197          Add box containing error icon and error message label
14198         * iradio/rb-station-properties-dialog.c:
14199         (rb_station_properties_dialog_class_init),
14200         (rb_station_properties_dialog_finalize):
14201          Change this class to use G_DEFINE_TYPE
14202         (rb_station_properties_dialog_init),
14203         (rb_station_properties_dialog_update),
14204         (rb_station_properties_dialog_update_playback_error):
14205          Display error icon and message when there is one, and hide the error
14206          box otherwise.
14207         (rb_station_properties_dialog_show): Hack widget show
14208          method to update the visibility of the error info box when showing
14209          the widget.  Otherwise the icon is displayed all the time (same thing
14210          is done in rb-song-info). Closes bug 320749.
14212 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
14214         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
14215         parsing of the duration of podcast episodes from the feed. Closes bug
14216         320748.
14218 2005-11-05  James Livingston  <jrl@ids.org.au>
14220         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
14221         release date metadata ("Year"). Closes bug 166093.
14223         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
14224         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
14225         (rb_metadata_gst_add_tag_data):
14226         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14227         (save_entry):
14228         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
14229         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
14230         (set_props_from_metadata), (rhythmdb_entry_set_internal),
14231         (rhythmdb_prop_get_type):
14232         * rhythmdb/rhythmdb.h: add support for "date" property
14233         
14234         * data/glade/general-prefs.glade:
14235         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
14236         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
14237         (rb_entry_view_append_column):
14238         * widgets/rb-entry-view.h:
14239         * sources/rb-library-source.c: (rb_library_source_constructor):
14240         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
14241         "Year" colums
14243         * data/glade/song-info.glade:
14244         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
14245         (rb_song_info_construct_single), (rb_song_info_constructor),
14246         (rb_song_info_populate_dialog), (rb_song_info_update_year),
14247         (rb_song_info_sync_entry_single): Add "Year" to song info window
14249         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14250         sorted by year.
14252 2005-11-05  James Livingston  <jrl@ids.org.au>
14254         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14255         description if it's very long.
14257 2005-11-05  James Livingston  <jrl@ids.org.au>
14259         pathc by: Artem Baguinski <femistofel@gmail.com>
14261         * help/C/Makefile.am:
14262         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14263         Closes bug 320613.
14265 2005-11-05  James Livingston  <jrl@ids.org.au>
14267         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14269         * daapsharing/rb-daap-share.c: (write_next_chunk),
14270         (message_finished), (databases_cb): Use chunked file loading and
14271         sending in the DAAP server. This should reduce the amount of memory
14272         required to send files to the client.
14274 2005-11-05  James Livingston  <jrl@ids.org.au>
14276         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14277         work better on some systems. Closes 320622.
14279 2005-11-05  James Livingston  <jrl@ids.org.au>
14281         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14282         homepage, so that users can find out what AudioScrobbler is. Add
14283         access keys.
14285         * data/glade/daap-prefs.glade:
14286         * data/glade/general-prefs.glade:
14287         * data/glade/library-prefs.glade: make the indent be more consistent
14289         * data/glade/podcast-prefs.glade: 
14290         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14291         (impl_get_config_widget): move thing out of code into glade, where
14292         they belong
14294 2005-11-05  James Livingston  <jrl@ids.org.au>
14296         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14297         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14299 2005-11-04  James Livingston  <jrl@ids.org.au>
14301         * configure.ac: don't print DAAP configure info twice
14303 2005-11-04  James Livingston  <jrl@ids.org.au>
14305         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14306         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14307         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14308         #ifdefs, since we removed the symbol. Oops
14310 2005-11-04  James Livingston  <jrl@ids.org.au>
14312         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14313         after the connect line, not before. Oops.
14315 2005-11-04  James Livingston  <jrl@ids.org.au>
14317         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14318         fix some warnings
14320 2005-11-03  James Livingston  <jrl@ids.org.au>
14322         * NEWS: update the news file
14324         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14325         "duration" column.
14327         * data/ui/rhythmbox-ui.xml:
14328         * shell/rb-playlist-manager.c:
14329         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14330         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14331         and "delete" for feeds.
14333 2005-11-03  James Livingston  <jrl@ids.org.au>
14335         * sources/rb-podcast-source.c: (impl_delete),
14336         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14337         feed. Closes 319760.
14339 2005-11-03  James Livingston  <jrl@ids.org.au>
14341         Don't start playing from the remote site when a un-downloaded podcast
14342         is activated. Closes 319983.
14343         
14345         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14346         (write_job_data), (download_progress_cb): write the local location as
14347         soon as any data is recieved
14349         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14350         the mountpoint to NULL for podcast episodes that haven't yet been
14351         downloaded.
14352         
14353         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14354         start playing a podcast if it hasn't been downloaded.
14355         
14356         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14357         (rb_podcast_source_entry_activated_cb): begin downloading when the
14358         podcast is activated.
14360 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14362         * data/glade/general-prefs.glade:  Fix capitalization.
14363         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14364         * sources/rb-podcast-source.c:
14365         (rb_podcast_source_songs_show_popup_cb),
14366         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14368 2005-11-03  James Livingston  <jrl@ids.org.au>
14370         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14372         * shell/rb-removable-media-manager.c:
14373         (rb_removable_media_manager_mount_volume): don't check network or
14374         autofs mounts, as they're not going to be removable media. Stops
14375         sending lots of warnings to syslog. Closes 320571.
14377         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14378         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14379         320570.
14381 2005-11-03  James Livingston  <jrl@ids.org.au>
14383         Add support for playing audio CDs. Metadata lookup is done using
14384         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14385         the library when it gets broken out of S-J.
14386         
14387         Add a "rescan media" menu item, and commands for ejecting removable
14388         media.
14390         Move nautilus-cd-burner from optional to required depenency.
14392         * configure.ac:
14393         * data/ui/rhythmbox-ui.xml:
14394         * metadata/Makefile.am:
14395         + metadata/sj-error.c:
14396         + metadata/sj-error.h:
14397         + metadata/sj-metadata-marshal.list:
14398         + metadata/sj-metadata-musicbrainz.c:
14399         + metadata/sj-metadata-musicbrainz.h:
14400         + metadata/sj-metadata.c:
14401         + metadata/sj-metadata.h:
14402         + metadata/sj-structures.c:
14403         + metadata/sj-structures.h:
14404         * player/Makefile.am:
14405         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14406         * po/POTFILES.in:
14407         * shell/Makefile.am:
14408         * shell/rb-removable-media-manager.c:
14409         (rb_removable_media_manager_dispose), (poll_tray_opened),
14410         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14411         (rb_removable_media_manager_load_media),
14412         (rb_removable_media_manager_mount_volume),
14413         (rb_removable_media_manager_cmd_eject_medium),
14414         (rb_removable_media_manager_cmd_scan_media),
14415         (rb_removable_media_manager_check_volume),
14416         (rb_removable_media_manager_unmount_volume_swap),
14417         (rb_removable_media_manager_scan):
14418         * sources/Makefile.am:
14419         + sources/rb-audiocd-source.c:
14420         + sources/rb-audiocd-source.h:
14421         * tests/Makefile.am:
14423 2005-11-02  James Livingston  <jrl@ids.org.au>
14425         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14427         * sources/rb-iradio-source.c:
14428         (stations_view_drag_data_received_cb):
14429         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14430         don't crash when the second uri is missing frm the drop, which
14431         browsers sometimes do.
14433 2005-11-01  James Livingston  <jrl@ids.org.au>
14435         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14436         (rb_podcast_manager_insert_feed):
14437         * podcast/rb-podcast-manager.h:
14438         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14439         (rb_set_item_value), (rb_validate_item_propert),
14440         (rb_podcast_parse_date), (rb_podcast_parse_time):
14441         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14442         from the feed.
14444 2005-10-31  James Livingston  <jrl@ids.org.au>
14446         * ChangeLog:
14447         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14448         huge
14450 2005-10-31  James Livingston  <jrl@ids.org.au>
14452         * sources/rb-podcast-source.c:
14453         (rb_podcast_source_post_date_cell_data_func): generate the date string
14454         in a way that is correct in all locales.
14455         
14456         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14457         (rhythmdb_entry_sync_mirrored): make the last played/date added
14458         columns use the same format.
14460 2005-10-30  James Livingston  <jrl@ids.org.au>
14463         * podcast/rb-podcast-manager.c:
14464         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14465         
14466         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14467         iradio errors better.
14469 2005-10-30  James Livingston  <jrl@ids.org.au>
14471         patch by: Artem Baguinski <femistofel@gmail.com>
14473         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14475 2005-10-30  James Livingston  <jrl@ids.org.au>
14477         * podcast/rb-podcast-manager.c:
14478         (rb_podcast_manager_subscribe_feed),
14479         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14480         already been added, usually as a radio station. Closes 319434.
14482 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14484         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14485         mnemonics & resize issues)
14486         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14487         & mnemonics)
14488         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14489         widget for the "download location" label.
14491         Closes bug 320184.
14493 2005-10-29  James Livingston  <jrl@ids.org.au>
14495         Allow the search box to match words from multiple properties. Closes
14496         bug 139196. Thanks to the person from IRC who did a lot of the initial
14497         work.
14500         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14501         * lib/rb-util.h: Add functions to split a string into words, and one
14502         to perform "search folding" which is currently like casefolding but
14503         also strips punctuation
14504         
14505         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14506         (rhythmdb_query_preprocess):
14507         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14508         against title, artist, album and genre (for the search box)
14509         
14510         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14511         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14512         (save_entry), (search_match_properties),
14513         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14514         splitting into words and matching across multiple properties.
14515         
14516         * sources/rb-library-source.c: (construct_query_from_selection): use
14517         the new SEARCH_MATCH property for the search box
14518         
14519         * widgets/rb-entry-view.c: (type_ahead_search_func):
14521 2005-10-29  James Livingston  <jrl@ids.org.au>
14523         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14524         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14525         
14526         * shell/rb-playlist-manager.c:
14527         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14528         correctly.
14529         
14530         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14531         initial state of the shuffle/repeat menu items correctly. Patch from
14532         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14534 2005-10-29  James Livingston  <jrl@ids.org.au>
14536         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14537         double-free.
14538         
14539         * widgets/rb-cell-renderer-pixbuf.c:
14540         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14541         icon go black when row is not selected
14542         
14543         * doc/reference/tmpl/rb-daap-connection.sgml:
14544         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14546 2005-10-29  James Livingston  <jrl@ids.org.au>
14548         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14549         silly mistake, where it could think partial downloads has been
14550         completed.
14552 2005-10-29  James Livingston  <jrl@ids.org.au>
14554         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14556         * data/glade/song-info.glade:
14557         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14558         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14559         (rb_song_info_sync_entry_single): show the disc number in the song
14560         info window. From bug 311199.
14562 2005-10-29  James Livingston  <jrl@ids.org.au>
14564         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14565         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14566         regularly. Closes 155306.
14568 2005-10-29  James Livingston  <jrl@ids.org.au>
14570         * podcast/rb-podcast-manager.c:
14571         (rb_podcast_manager_download_entry),
14572         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14573         (rb_podcast_manager_insert_feed):
14574         * podcast/rb-podcast-manager.h:
14575         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14576         (rb_podcast_parser_start_element):
14577         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14578         don't download them again. However, it can't resume
14579         partially-downloaded ones.
14581 2005-10-28  James Livingston  <jrl@ids.org.au>
14583         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14584         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14585         work. Don't attempt to write duration as a tag.
14587         Thanks to Artem Baguinski <femistofel@gmail.com>
14589 2005-10-28  James Livingston  <jrl@ids.org.au>
14591         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14592         don't disable the status-bar menu item when the current source doesn't
14593         use the search box.
14595 2005-10-28  James Livingston  <jrl@ids.org.au>
14597         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14598         crash if the file has unknown length
14600 2005-10-27  James Livingston  <jrl@ids.org.au>
14602         * daapsharing/rb-daap-connection.c:
14603         (rb_daap_connection_state_done): don't assert when a daap server
14604         doesn't have any playlists
14606 2005-10-27  James Livingston  <jrl@ids.org.au>
14608         * sources/rb-sourcelist-model.c:
14609         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14610         source for the sourcelist. Closes bug 319817.
14612 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14614         Patch by: Renato Araujo <renatox@gmail.com>
14616         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14617           Fix for a crasher caused by previous patch.
14619 2005-10-26  James Livingston  <jrl@ids.org.au>
14621         * data/glade/podcast-prefs.glade:
14622         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14623         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14624         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14625         * podcast/rb-podcast-manager.c:
14626         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14627         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14628         * shell/rb-shell.c: Change some strings to make them more consistent.
14629         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14630         makes it clearer which is which. "Episode" may not be the best term,
14631         but it seems to be widely used.
14632         
14633         Also fix some strings that weren't marked as translatable.
14634         
14635         * podcast/rb-feed-podcast-properties-dialog.c:
14636         (rb_feed_podcast_properties_dialog_class_init),
14637         (rb_feed_podcast_properties_dialog_finalize):
14638         * podcast/rb-new-podcast-dialog.c:
14639         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14640         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14641         (rb_simple_view_finalize), (rb_simple_view_constructor):
14642         * podcast/rb-podcast-properties-dialog.c:
14643         (rb_podcast_properties_dialog_class_init),
14644         (rb_podcast_properties_dialog_finalize):
14645         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14646         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14647         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14648         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14649         use G_DEFINE_TYPE, instead of doing it manually.
14651 2005-10-26  James Livingston  <jrl@ids.org.au>
14653         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14654         <jrl@ids.org.au>
14656         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14657         (rb_metadata_init): Check that the necessary plugins are present to do
14658         id3 editing.
14659         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14660         corrupted before replacing the original.
14662 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14664         reviewed by: James Livingston <jrl@ids.org.au>
14666         Assign sequential IDs to playlists for DAAP rather than using the
14667         address of the playlist object.  Less flaky, and should work on 64bit
14668         platforms. Closes bug 319304.
14670         * daapsharing/rb-daap-share.c: 
14671         (rb_daap_share_set_property): watch for playlist creation
14672         (_find_by_id), (_find_by_source): playlist list search functions
14673         (rb_daap_share_playlist_created),
14674         (rb_daap_share_process_playlist),
14675         (rb_daap_share_playlist_destroyed):
14676          update playlist list as it changes, use weak refs on 
14677          playlists to get notified on destroy.
14678         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14679          destroy playlist list on shutdown
14680         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14681          DAAP response
14682         (databases_cb): search for playlist ID in list rather than just
14683          converting it to a pointer; return HTTP 404 if playlist not 
14684          found.
14685         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14686          is already used for the main library
14688 2005-10-26  James Livingston  <jrl@ids.org.au>
14690         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14692         * daapsharing/rb-daap-connection.c: (build_message),
14693         (http_response_handler), (http_get), (handle_server_info),
14694         (handle_login), (handle_update), (handle_database_info),
14695         (handle_song_listing), (handle_playlists),
14696         (handle_playlist_entries), (handle_logout),
14697         (rb_daap_connection_new), (rb_daap_connection_logout),
14698         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14699         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14700         * daapsharing/rb-daap-connection.h:
14701         * sources/rb-daap-source.c: (rb_daap_source_activate),
14702         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14703         (rb_daap_source_disconnect): Make connecting to DAAP sources
14704         asynchronous, so that non-responsive servers don't hang the UI. Closes
14705         316225.
14707 2005-10-26  James Livingston  <jrl@ids.org.au>
14709         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14711         * rhythmdb/rhythmdb-query-model.c:
14712         (rhythmdb_query_model_do_reorder): generate the row re-order map
14713         correctly.
14714         
14715         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14716         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14717         Update selection when rows get re-ordered. Closes 319718.
14719 2005-10-26  James Livingston  <jrl@ids.org.au>
14721         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14723         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14724         actually set the db pointer in play orders. Closes 319818.
14726 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14728         Patch by: Renato Araujo <renatox@gmail.com>
14730         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14731         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14732         (rb_podcast_manager_update_synctime),
14733         (rb_podcast_manager_config_changed),
14734         (rb_podcast_manager_insert_feed):
14735         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14736         (save_entry):
14737         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14738         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14739         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14741 2005-10-25  James Livingston  <jrl@ids.org.au>
14743         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14744         (db_entry_deleted_cb): don't share tracks that are hidden because the
14745         file is missing.
14747 2005-10-22  James Livingston  <jrl@ids.org.au>
14749         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14750         crash if an entry couldn't be playerd, without streamer setting an
14751         error.
14753         
14754         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14756         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14757         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14758         is pasted into the dialog.
14759         
14760         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14761         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14762         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14763         (rb_podcast_parse_channel_free):
14764         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14765         feeds
14767 2005-10-22  James Livingston  <jrl@ids.org.au>
14769         * sources/rb-iradio-source.c:
14770         (rb_iradio_source_first_time_changed): Make merging the default
14771         stations actually work.
14772         
14773         * sources/rb-podcast-source.c:
14774         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14775         people weren't seing the percentages in the stats column.
14777 2005-10-21  James Livingston  <jrl@ids.org.au>
14779         Patch from Caio Marcelo <cmarcelo@gmail.com>
14781         * shell/rb-shell.c: (rb_shell_window_state_cb),
14782         (rb_shell_get_visibility), (idle_hide_mainwindow),
14783         (rb_shell_set_visibility): Make the "show window" item in the tray
14784         icon menu show the toggle state correctly. Use a better policy on
14785         deciding whether the window is "visible" or not. Closes bug 308053.
14787 2005-10-21  James Livingston  <jrl@ids.org.au>
14789         * doc/reference/tmpl/rb-shell-preferences.sgml:
14790         * shell/Makefile.am: fix building with gtk-doc
14792         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14793         don't submit podcasts to audioscrobbler
14794         
14795         
14796         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14797         
14798         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14799         (rb_set_item_value): strip spaces surrounding podcast urls
14800         
14802         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14803         
14804         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14806 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14808         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14809          Audioscrobbler/Last.fm support
14811         * configure.ac:
14812         * data/glade/Makefile.am:
14813         * data/glade/audioscrobbler-prefs.glade:
14814         * data/rhythmbox.schemas:
14815         * lib/Makefile.am:
14816         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14817         * lib/md5.h:
14818         * lib/rb-preferences.h:
14819         * po/POTFILES.in:
14820         * shell/Makefile.am:
14821         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14822         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14823         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14824         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14825         (rb_audioscrobbler_timeout_cb), (mkmd5),
14826         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14827         (rb_audioscrobbler_do_handshake),
14828         (rb_audioscrobbler_do_handshake_cb),
14829         (rb_audioscrobbler_submit_queue),
14830         (rb_audioscrobbler_submit_queue_cb),
14831         (rb_audioscrobbler_import_settings),
14832         (rb_audioscrobbler_preferences_sync),
14833         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14834         (rb_audioscrobbler_gconf_changed_cb),
14835         (rb_audioscrobbler_song_changed_cb),
14836         (rb_audioscrobbler_username_entry_changed_cb),
14837         (rb_audioscrobbler_username_entry_activate_cb),
14838         (rb_audioscrobbler_password_entry_changed_cb),
14839         (rb_audioscrobbler_password_entry_activate_cb),
14840         (rb_audioscrobbler_enabled_check_changed_cb),
14841         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14842         (rb_audioscrobbler_load_entry_from_string),
14843         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14844         (rb_audioscrobbler_print_queue),
14845         (rb_audioscrobbler_free_queue_entries):
14846         * shell/rb-audioscrobbler.h:
14847         * shell/rb-shell-preferences.c:
14848         (rb_shell_preferences_append_audioscrobbler_config):
14849         * shell/rb-shell-preferences.h:
14850         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14851         (rb_shell_select_source), (rb_shell_cmd_preferences):
14852         * sources/Makefile.am:
14854 2005-10-21  James Livingston  <jrl@ids.org.au>
14856         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14858         * Makefile.am:
14859         * NEWS:
14860         * configure.ac:
14861         * data/art/Makefile.am:
14862         * data/glade/Makefile.am:
14863         * data/rhythmbox.schemas:
14864         * data/ui/rhythmbox-ui.xml:
14865         * doc/reference/Makefile.am:
14866         * doc/reference/tmpl/rhythmdb.sgml:
14867         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14868         * lib/rb-stock-icons.h:
14869         * po/POTFILES.in:
14870         * podcast/Makefile.am:
14871         + podcast/rb-feed-podcast-properties-dialog.c:
14872         + podcast/rb-feed-podcast-properties-dialog.h:
14873         + podcast/rb-new-podcast-dialog.c:
14874         + podcast/rb-new-podcast-dialog.h:
14875         + podcast/rb-podcast-manager.c:
14876         + podcast/rb-podcast-manager.h:
14877         + podcast/rb-podcast-marshal.list:
14878         + podcast/rb-podcast-parse.c:
14879         + podcast/rb-podcast-parse.h:
14880         + podcast/rb-podcast-properties-dialog.c:
14881         + podcast/rb-podcast-properties-dialog.h:
14882         * rhythmdb/rhythmdb-property-model.c:
14883         (rhythmdb_property_model_set_property),
14884         (rhythmdb_property_model_enable_drag):
14885         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14886         (rhythmdb_tree_parser_end_element), (save_entry),
14887         (rhythmdb_tree_save):
14888         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14889         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14890         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14891         (rhythmdb_entry_podcast_feed_get_type):
14892         * rhythmdb/rhythmdb.h:
14893         * shell/Makefile.am:
14894         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14895         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14896         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14897         (rb_shell_quit):
14898         * sources/Makefile.am:
14899         + sources/rb-podcast-source.c:
14900         + sources/rb-podcast-source.h:
14901         * widgets/Makefile.am:
14902         * widgets/rb-property-view.c: (rb_property_view_class_init),
14903         (rb_property_view_constructor),
14904         (rb_property_view_selection_changed_cb),
14905         (rb_property_view_get_treeview):
14906         * widgets/rb-property-view.h:
14907         + widgets/rb-simple-view.c:
14908         + widgets/rb-simple-view.h:
14910 2005-10-20  James Livingston  <jrl@ids.org.au>
14912         * NEWS: update with changes since 0.9.1
14914         * configure.ac: check whether collate_key_for_filename is available
14915         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14916         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14917         it if it isn't available in glib (i.e. building against 2.6)
14918         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14919         collation to get "natural sorting". Closes bug 158599.
14921 2005-10-20  James Livingston  <jrl@ids.org.au>
14923         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14925         * doc/reference/tmpl/rb-shell-player.sgml:
14926         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14927         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14928         (rb_shell_player_get_playing),
14929         (rb_shell_player_get_playing_time_string),
14930         (rb_shell_player_get_playing_time),
14931         (rb_shell_player_set_playing_time), (tick_cb),
14932         (rb_shell_player_get_playing_path), (filter_mmkeys):
14933         * shell/rb-shell-player.h:
14934         * shell/rb-shell-player.xml:
14935         * shell/rb-shell.c: (rb_shell_constructor),
14936         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14937         (rb_shell_set_window_title), (rb_shell_playing_impl),
14938         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14939         Merge the duration_changed and elapsed_changed DBUS signals into one
14940         elapsed_changed signal. Check that the output argument isn't NULL
14941         before trying to put things in it.
14943 2005-10-20  James Livingston  <jrl@ids.org.au>
14945         * rhythmdb/rhythmdb-query-model.c:
14946         (rhythmdb_query_model_entry_added_cb),
14947         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14948         problem where hidden entries could be shown in playlists.
14949         
14950         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14951         issues when switching in and out of small mode.
14953 2005-10-19  James Livingston  <jrl@ids.org.au>
14955         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14956         (rb_shell_constructor), (rb_shell_window_state_cb),
14957         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14958         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14959         (rb_shell_view_smalldisplay_changed_cb),
14960         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14961         (rb_shell_sync_paned): remove gconf window-state races, prevent
14962         changing small mode too often, fix window event races. Closes 122806.
14964         
14965         Patch from Caio Marcelo <cmarcelo@gmail.com>
14967         * data/rhythmbox.schemas:
14968         * shell/rb-shell.c: (rb_shell_window_state_cb),
14969         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14970         Remember the position of the window. Closes 315289.
14972 2005-10-19  James Livingston  <jrl@ids.org.au>
14974         Patch from Christophe Fergeau  <teuf@gnome.org>
14976         * configure.ac: determine whether libgpod is present when neither
14977         --with-ipod nor --without-ipod is passed
14979 2005-10-19  James Livingston  <jrl@ids.org.au>
14981         Patch from Caio Marcelo <cmarcelo@gmail.com>
14983         * shell/rb-shell-player.c: (do_next_idle),
14984         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14985         (rb_shell_player_do_previous_or_seek),
14986         (rb_shell_player_previous_button_cb),
14987         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14988         (rb_shell_player_cmd_next), (eos_cb):
14989         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14990         end of the playlist is reached.
14992 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14994         * lib/rb-thread.c: fix a few GSource leaks
14996 2005-10-19  James Livingston  <jrl@ids.org.au>
14998         * doc/reference/tmpl/bacon-volume.sgml:
14999         * doc/reference/tmpl/disclosure-widget.sgml:
15000         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15001         * doc/reference/tmpl/eggnotificationbubble.sgml:
15002         * doc/reference/tmpl/eggtrayicon.sgml:
15003         * doc/reference/tmpl/gsequence.sgml:
15004         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15005         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15006         * doc/reference/tmpl/rb-daap-connection.sgml:
15007         * doc/reference/tmpl/rb-daap-dialog.sgml:
15008         * doc/reference/tmpl/rb-daap-mdns.sgml:
15009         * doc/reference/tmpl/rb-daap-share.sgml:
15010         * doc/reference/tmpl/rb-daap-sharing.sgml:
15011         * doc/reference/tmpl/rb-daap-source.sgml:
15012         * doc/reference/tmpl/rb-daap-src.sgml:
15013         * doc/reference/tmpl/rb-daap-structure.sgml:
15014         * doc/reference/tmpl/rb-debug.sgml:
15015         * doc/reference/tmpl/rb-dialog.sgml:
15016         * doc/reference/tmpl/rb-druid.sgml:
15017         * doc/reference/tmpl/rb-entry-view.sgml:
15018         * doc/reference/tmpl/rb-enums.sgml:
15019         * doc/reference/tmpl/rb-file-helpers.sgml:
15020         * doc/reference/tmpl/rb-glade-helpers.sgml:
15021         * doc/reference/tmpl/rb-header.sgml:
15022         * doc/reference/tmpl/rb-history.sgml:
15023         * doc/reference/tmpl/rb-ipod-source.sgml:
15024         * doc/reference/tmpl/rb-iradio-source.sgml:
15025         * doc/reference/tmpl/rb-library-source.sgml:
15026         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15027         * doc/reference/tmpl/rb-metadata.sgml:
15028         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15029         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15030         * doc/reference/tmpl/rb-play-order-linear.sgml:
15031         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15032         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15033         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15034         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15035         * doc/reference/tmpl/rb-play-order-random.sgml:
15036         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15037         * doc/reference/tmpl/rb-play-order.sgml:
15038         * doc/reference/tmpl/rb-player.sgml:
15039         * doc/reference/tmpl/rb-playlist-manager.sgml:
15040         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15041         * doc/reference/tmpl/rb-playlist-source.sgml:
15042         * doc/reference/tmpl/rb-preferences.sgml:
15043         * doc/reference/tmpl/rb-property-view.sgml:
15044         * doc/reference/tmpl/rb-query-creator-private.sgml:
15045         * doc/reference/tmpl/rb-query-creator.sgml:
15046         * doc/reference/tmpl/rb-rating-helper.sgml:
15047         * doc/reference/tmpl/rb-rating.sgml:
15048         * doc/reference/tmpl/rb-recorder.sgml:
15049         * doc/reference/tmpl/rb-refstring.sgml:
15050         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15051         * doc/reference/tmpl/rb-removable-media-source.sgml:
15052         * doc/reference/tmpl/rb-search-entry.sgml:
15053         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15054         * doc/reference/tmpl/rb-shell-glue.sgml:
15055         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15056         * doc/reference/tmpl/rb-shell-player.sgml:
15057         * doc/reference/tmpl/rb-shell-preferences.sgml:
15058         * doc/reference/tmpl/rb-shell.sgml:
15059         * doc/reference/tmpl/rb-song-display-box.sgml:
15060         * doc/reference/tmpl/rb-song-info.sgml:
15061         * doc/reference/tmpl/rb-source-header.sgml:
15062         * doc/reference/tmpl/rb-source.sgml:
15063         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15064         * doc/reference/tmpl/rb-sourcelist.sgml:
15065         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15066         * doc/reference/tmpl/rb-statusbar.sgml:
15067         * doc/reference/tmpl/rb-stock-icons.sgml:
15068         * doc/reference/tmpl/rb-string-helpers.sgml:
15069         * doc/reference/tmpl/rb-thread.sgml:
15070         * doc/reference/tmpl/rb-tray-icon.sgml:
15071         * doc/reference/tmpl/rb-tree-dnd.sgml:
15072         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15073         * doc/reference/tmpl/rb-util.sgml:
15074         * doc/reference/tmpl/rhythmbox-unused.sgml:
15075         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15076         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15077         * doc/reference/tmpl/rhythmdb-tree.sgml:
15078         * doc/reference/tmpl/rhythmdb.sgml: update for changes
15079         
15080         * doc/reference/Makefile.am: make docs build with changed ipod support
15081         
15082         * po/POTFILES.in: remove sources/itunesdb
15084 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
15086         * sources/itunesdb.c:
15087         * sources/itunesdb.h: removed now useless files
15089 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
15091         * configure.ac:
15092         * shell/Makefile.am:
15093         * sources/Makefile.am:
15094         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
15095         code
15096         [1]: http://www.gtkpod.org/libgpod.html
15099 2005-10-18  James Livingston  <jrl@ids.org.au>
15101         patch from Funda Wang <fundawang@linux.net.cn>
15103         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
15104         the notification bubble string translatable.
15106 ============ Version 0.9.1
15108 2005-10-16  James Livingston  <jrl@ids.org.au>
15110         * configure.ac: bump version to 0.9.1
15111         * NEWS: update translation credits
15113 2005-10-16  James Livingston  <jrl@ids.org.au>
15115         * rhythmdb/rhythmdb-query-model.c:
15116         (rhythmdb_query_model_class_init),
15117         (rhythmdb_query_model_drag_data_received): 
15118         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
15119         notified when things are dropped into the entry view.
15120         
15121         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15122         (rb_playlist_source_add_location_swapped),
15123         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
15124         (rb_playlist_source_non_entry_dropped),
15125         (rb_playlist_source_row_inserted): Use the new signal so that dropping
15126         things onto a playlist's entry view work correctly, and doesn't cause
15127         crashes. Allow folders to be dropped as well. (Closes 318308)
15129 2005-10-16  James Livingston  <jrl@ids.org.au>
15131         * NEWS: Update some more
15133         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15134         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
15135         with the paned size, so that it doesn't move when the window is
15136         maximised/restored. Closes bug 315852.
15138         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
15139         display the playcount column, as it's useless (it never get changed).
15141 2005-10-14  James Livingston  <jrl@ids.org.au>
15143         * Makefile.am:
15144         * data/Makefile.am:
15145         * doc/reference/Makefile.am: get "make distcheck" to pass again
15147 2005-10-11  James Livingston  <jrl@ids.org.au>
15149         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
15150         destroy the connection when retrieving the playlists fails, because
15151         tracks have already been added. Closes 318380.
15153 2005-10-11  James Livingston  <jrl@ids.org.au>
15155         * sources/rb-sourcelist.c: (rb_sourcelist_append),
15156         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
15157         (source_name_edited_cb): Ask for the columns to be resized when a
15158         source is added, deleted or changes name.
15160 2005-10-11  James Livingston  <jrl@ids.org.au>
15162         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
15163         create a thread when processing a directory. This stops up created one
15164         thread for each file in a playlist we're trying to load. Closes
15165         317850.
15167         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
15168         typo that made sort-by-artist not work correctly.
15170 2005-10-11  James Livingston  <jrl@ids.org.au>
15172         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
15173         support is enabled
15175 2005-10-11  James Livingston  <jrl@ids.org.au>
15177         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
15178         * lib/rb-file-helpers.h: add a function to turn uris into our
15179         canonical path-escaped form
15180         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
15181         above function when import playlists. This will fix the problem of
15182         duplicate entries due to different representations of the uri (bug
15183         158211).
15185 2005-10-11  James Livingston  <jrl@ids.org.au>
15187         * shell/rb-shell.c: (rb_shell_get_visibility),
15188         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
15189         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
15190         window hiding so that Alt-F4 works again.
15192         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
15193         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
15194         (rb_entry_view_string_sort_func): Stop some crashes where a string
15195         property was set to NULL.
15197 2005-10-10  James Livingston  <jrl@ids.org.au>
15199         * doc/reference/rhythmbox.types: fix gtk-doc generation
15201 2005-10-09  James Livingston  <jrl@ids.org.au>
15203         * sources/rb-sourcelist.c: (rb_sourcelist_init):
15204         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
15205         accelerators, so that we don't have as many conflicting keys.
15207 2005-10-08  James Livingston  <jrl@ids.org.au>
15209         * data/iradio-initial.pls: Update the list of radio stations. Thanks
15210         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
15211         bug 129285.
15213 2005-10-07  James Livingston  <jrl@ids.org.au>
15215         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
15216         local path names in the same way as every other URI. This should stop
15217         duplicates occurring due to different escapings. Closes bug 158211.
15219 2005-10-06  James Livingston  <jrl@ids.org.au>
15221         * NEWS: more updates
15222         
15223         patch from Jaap Haitsma <jaap@haitsma.org>:
15225         * configure.ac:
15226         * data/Makefile.am:
15227         * data/art/Makefile.am:
15228         - data/art/rhythmbox-paused.png:
15229         - data/art/rhythmbox-playback-error.png:
15230         - data/art/rhythmbox-playing.png:
15231         - data/art-clearlooks/:
15232         * lib/rb-file-helpers.c: (rb_file):
15233         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15234         * lib/rb-stock-icons.h:
15235         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
15236         * widgets/rb-cell-renderer-pixbuf.c:
15237         (rb_cell_renderer_pixbuf_render):
15238         * widgets/rb-entry-view.c: (rb_entry_view_init),
15239         (rb_entry_view_set_playing):
15240         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
15241         stock icons instead of custom art. Drop remanents of art-clearlooks.
15243 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
15245         * configure.ac: Added ne in ALL_LINGUAS
15247 2005-10-02  James Livingston  <jrl@ids.org.au>
15249         * data/glade/Makefile.am: actually install the daap prefs glade file
15251 2005-09-30  James Livingston  <jrl@ids.org.au>
15253         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15254         translatable files, so that make check works and we don't annoy the
15255         translators.
15256         
15257         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15258         sanity checking, in case a db entry is missing some properties.
15260 2005-09-29  James Livingston  <jrl@ids.org.au>
15262         - lib/rb-string-helpers.c:
15263         - lib/rb-string-helpers.h:
15264         * lib/Makefile.am:
15265         * rhythmdb/rhythmdb-tree.c:
15266         * rhythmdb/rhythmdb.c:
15267         * shell/main.c: (main):
15268         * shell/rb-shell.c:
15269         * widgets/rb-entry-view.c:
15270         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15271         utility functions haven't been used in a while.
15273 2005-09-27  James Livingston  <jrl@ids.org.au>
15275         * data/art-clearlooks/Makefile.am:
15276         - data/art-clearlooks/rhythmbox-album.png:
15277         - data/art-clearlooks/rhythmbox-audiocd.png:
15278         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15279         - data/art-clearlooks/rhythmbox-dnd.png:
15280         - data/art-clearlooks/rhythmbox-ipod.png:
15281         - data/art-clearlooks/rhythmbox-iradio.png:
15282         - data/art-clearlooks/rhythmbox-library.png:
15283         - data/art-clearlooks/rhythmbox-next.png:
15284         - data/art-clearlooks/rhythmbox-pause.png:
15285         - data/art-clearlooks/rhythmbox-play.png:
15286         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15287         - data/art-clearlooks/rhythmbox-playlist.png:
15288         - data/art-clearlooks/rhythmbox-previous.png:
15289         - data/art-clearlooks/rhythmbox-repeat.png:
15290         - data/art-clearlooks/rhythmbox-rewind.png:
15291         - data/art-clearlooks/rhythmbox-shuffle.png:
15292         - data/art-clearlooks/rhythmbox-stop.png:
15293         - data/art-clearlooks/rhythmbox-visuals.png:
15294         - data/art-clearlooks/rhythmbox-volume-max.png:
15295         - data/art-clearlooks/rhythmbox-volume-medium.png:
15296         - data/art-clearlooks/rhythmbox-volume-min.png:
15297         - data/art-clearlooks/rhythmbox-volume-mute.png:
15298         - data/art-clearlooks/rhythmbox-volume-zero.png:
15299         * data/art/Makefile.am:
15300         - data/art/rhythmbox-album.png:
15301         - data/art/rhythmbox-audiocd.png:
15302         - data/art/rhythmbox-automatic-playlist.png:
15303         - data/art/rhythmbox-dnd.png:
15304         - data/art/rhythmbox-ipod.png:
15305         - data/art/rhythmbox-iradio.png:
15306         - data/art/rhythmbox-library.png:
15307         - data/art/rhythmbox-next.png:
15308         - data/art/rhythmbox-pause.png:
15309         - data/art/rhythmbox-play.png:
15310         - data/art/rhythmbox-playlist-menu.png:
15311         - data/art/rhythmbox-playlist.png:
15312         - data/art/rhythmbox-previous.png:
15313         - data/art/rhythmbox-repeat.png:
15314         - data/art/rhythmbox-rewind.png:
15315         - data/art/rhythmbox-shuffle.png:
15316         - data/art/rhythmbox-stop.png:
15317         - data/art/rhythmbox-visuals.png:
15318         - data/art/rhythmbox-volume-max.png:
15319         - data/art/rhythmbox-volume-medium.png:
15320         - data/art/rhythmbox-volume-min.png:
15321         - data/art/rhythmbox-volume-mute.png:
15322         - data/art/rhythmbox-volume-zero.png:
15323         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15324         * lib/rb-stock-icons.h:
15325         * shell/rb-playlist-manager.c:
15326         * shell/rb-shell-player.c:
15327         * sources/rb-daap-source.c: (rb_daap_get_icon):
15328         * sources/rb-ipod-source.c:
15329         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15330         * sources/rb-library-source.c: (rb_library_source_new):
15331         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15332         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15333         that hasn't been used in a LONG time, and also remove art that are
15334         now stock icons.
15336 2005-09-27  James Livingston  <jrl@ids.org.au>
15338         * README: point to the gnome.org web sites, and update the example
15339         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15340         
15341         * rhythmdb/rhythmdb-query-model.c:
15342         (rhythmdb_query_model_set_property),
15343         (rhythmdb_query_model_get_property),
15344         (rhythmdb_query_model_finalize):
15345         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15346         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15347         * rhythmdb/rhythmdb.h:
15348         * sources/rb-iradio-source.c: (impl_search):
15349         * sources/rb-library-source.c: (impl_search): Add query
15350         "preprocessing", which performs operations such as casefolding any
15351         strings that will be compared to any of the *_FOLDED properties.
15352         Closes bug 316039
15354 2005-09-27  James Livingston  <jrl@ids.org.au>
15356         * data/glade/daap-prefs.glade:
15357         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15358         file for the daap preferences pane
15359         
15360         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15361         (rb_sourcelist_append), (rb_sourcelist_remove),
15362         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15363         don't display the column for source expanders unless there is an
15364         expandable source.
15366 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15368         * .cvsignore:
15369         * Makefile.am:
15370         * configure.ac:
15371         * doc/.cvsignore:
15372         * doc/Makefile.am:
15373         * doc/reference/.cvsignore:
15374         * doc/reference/Makefile.am:
15375         * doc/reference/rhythmbox-docs.sgml:
15376         * doc/reference/rhythmbox-sections.txt:
15377         * doc/reference/rhythmbox.types:
15378         * doc/reference/tmpl/bacon-volume.sgml:
15379         * doc/reference/tmpl/disclosure-widget.sgml:
15380         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15381         * doc/reference/tmpl/eggnotificationbubble.sgml:
15382         * doc/reference/tmpl/eggtrayicon.sgml:
15383         * doc/reference/tmpl/gsequence.sgml:
15384         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15385         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15386         * doc/reference/tmpl/rb-daap-connection.sgml:
15387         * doc/reference/tmpl/rb-daap-dialog.sgml:
15388         * doc/reference/tmpl/rb-daap-mdns.sgml:
15389         * doc/reference/tmpl/rb-daap-share.sgml:
15390         * doc/reference/tmpl/rb-daap-sharing.sgml:
15391         * doc/reference/tmpl/rb-daap-source.sgml:
15392         * doc/reference/tmpl/rb-daap-src.sgml:
15393         * doc/reference/tmpl/rb-daap-structure.sgml:
15394         * doc/reference/tmpl/rb-debug.sgml:
15395         * doc/reference/tmpl/rb-dialog.sgml:
15396         * doc/reference/tmpl/rb-druid.sgml:
15397         * doc/reference/tmpl/rb-entry-view.sgml:
15398         * doc/reference/tmpl/rb-enums.sgml:
15399         * doc/reference/tmpl/rb-file-helpers.sgml:
15400         * doc/reference/tmpl/rb-glade-helpers.sgml:
15401         * doc/reference/tmpl/rb-header.sgml:
15402         * doc/reference/tmpl/rb-history.sgml:
15403         * doc/reference/tmpl/rb-ipod-source.sgml:
15404         * doc/reference/tmpl/rb-iradio-source.sgml:
15405         * doc/reference/tmpl/rb-library-source.sgml:
15406         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15407         * doc/reference/tmpl/rb-metadata.sgml:
15408         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15409         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15410         * doc/reference/tmpl/rb-play-order-linear.sgml:
15411         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15412         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15413         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15414         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15415         * doc/reference/tmpl/rb-play-order-random.sgml:
15416         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15417         * doc/reference/tmpl/rb-play-order.sgml:
15418         * doc/reference/tmpl/rb-player.sgml:
15419         * doc/reference/tmpl/rb-playlist-manager.sgml:
15420         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15421         * doc/reference/tmpl/rb-playlist-source.sgml:
15422         * doc/reference/tmpl/rb-preferences.sgml:
15423         * doc/reference/tmpl/rb-property-view.sgml:
15424         * doc/reference/tmpl/rb-query-creator-private.sgml:
15425         * doc/reference/tmpl/rb-query-creator.sgml:
15426         * doc/reference/tmpl/rb-rating-helper.sgml:
15427         * doc/reference/tmpl/rb-rating.sgml:
15428         * doc/reference/tmpl/rb-recorder.sgml:
15429         * doc/reference/tmpl/rb-refstring.sgml:
15430         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15431         * doc/reference/tmpl/rb-removable-media-source.sgml:
15432         * doc/reference/tmpl/rb-search-entry.sgml:
15433         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15434         * doc/reference/tmpl/rb-shell-glue.sgml:
15435         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15436         * doc/reference/tmpl/rb-shell-player.sgml:
15437         * doc/reference/tmpl/rb-shell-preferences.sgml:
15438         * doc/reference/tmpl/rb-shell.sgml:
15439         * doc/reference/tmpl/rb-song-display-box.sgml:
15440         * doc/reference/tmpl/rb-song-info.sgml:
15441         * doc/reference/tmpl/rb-source-header.sgml:
15442         * doc/reference/tmpl/rb-source.sgml:
15443         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15444         * doc/reference/tmpl/rb-sourcelist.sgml:
15445         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15446         * doc/reference/tmpl/rb-statusbar.sgml:
15447         * doc/reference/tmpl/rb-stock-icons.sgml:
15448         * doc/reference/tmpl/rb-string-helpers.sgml:
15449         * doc/reference/tmpl/rb-thread.sgml:
15450         * doc/reference/tmpl/rb-tray-icon.sgml:
15451         * doc/reference/tmpl/rb-tree-dnd.sgml:
15452         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15453         * doc/reference/tmpl/rb-util.sgml:
15454         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15455         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15456         * doc/reference/tmpl/rhythmdb-tree.sgml:
15457         * doc/reference/tmpl/rhythmdb.sgml:
15458         * macros/.cvsignore:
15459         * shell/Makefile.am:
15460         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15461         (rb_source_finalize), (rb_source_set_property),
15462         (rb_source_get_property), (default_get_pixbuf),
15463         (_rb_source_show_popup):
15464         * sources/rb-source.h:
15465         Add support for gtk-doc in rhythmbox.
15466         Convert RBSource to use newer glib functions, such as add_private.
15467         Gives RBSource a default get_pixbuf implementation.
15469 2005-09-25  James Livingston  <jrl@ids.org.au>
15471         * NEWS: Update with about a months worth of changes
15473         * data/glade/song-info-multiple.glade:
15474         * data/glade/song-info.glade:
15475         * data/rhythmbox.schemas:
15476         * lib/rb-preferences.h:
15477         * rhythmdb/rhythmdb.h:
15478         * shell/rb-shell-player.c:
15479         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15480         few remaining parts of autorating.
15482 2005-09-24  James Livingston  <jrl@ids.org.au>
15484         * shell/rb-shell.c: (rb_shell_constructor),
15485         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15486         (rb_shell_window_configure_cb): store window state in the gconf keys,
15487         so that it gets used. Closes bugs 313893 and 137068.
15489 2005-09-20  James Livingston  <jrl@ids.org.au>
15491         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15492         crash if the entry has a NULL string in a property
15493         
15494         * shell/rb-removable-media-manager.c:
15495         (rb_removable_media_manager_load_media): fix some memory leaks
15496         
15497         (rb_removable_media_manager_mount_volume),
15498         (rb_removable_media_manager_eject_medium_cb),
15499         (rb_removable_media_manager_cmd_eject_medium): use
15500         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15501         
15502         * sources/rb-removable-media-source.c:
15503         (rb_removable_media_source_set_property),
15504         (rb_removable_media_source_get_property): use
15505         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15507 2005-09-18  James Livingston  <jrl@ids.org.au>
15509         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15510         column
15512         * data/glade/general-prefs.glade:
15513         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15514         (rb_shell_preferences_column_check_changed_cb),
15515         (rb_shell_preferences_sync): add checkbox to control visibility
15516         of the column
15517         
15518         
15519         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15520         (save_entry):
15521         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15522         (rhythmdb_prop_get_type):
15523         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15524         was as "last played" is handled
15525         
15526         * sources/rb-library-source.c: (rb_library_source_constructor):
15527         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15528         Make the column show in the library and playlists
15529         
15530         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15531         * widgets/rb-entry-view.h: add the column
15532         
15533         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15534         be sorted by the column
15536 2005-09-16  James Livingston  <jrl@ids.org.au>
15538         * shell/rb-shell-player.c: (rb_shell_player_init),
15539         (rb_shell_player_do_previous_or_seek),
15540         (rb_shell_player_previous_button_cb),
15541         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15542         (rb_shell_player_playpause_button_cb): Make the previous button act
15543         the same as the menu item. Fix an inversion of the "previous track or
15544         seek" logic.
15545         
15546         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15547         
15548         (rb_shell_player_playpause): make --play-pause stop source that can't
15549         be paused
15551 2005-09-15  James Livingston  <jrl@ids.org.au>
15553         * configure.ac: increase totem-plparser requirements to 1.1.5
15555         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15556         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15557         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15558         use the newer playlist APIs to save the name of the playlist, and use
15559         the name of a loaded playlist.
15561         Closes bug 309817.
15563 2005-09-15  James Livingston  <jrl@ids.org.au>
15565         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15567         * shell/Makefile.am: stop some linker warnings
15569         * shell/main.c: (main): make --no-registration work with dbus
15571 2005-09-15  James Livingston  <jrl@ids.org.au>
15573         * daapsharing/rb-daap-sharing.c: (create_share):
15574         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15575         reference sinking and counting issues that I caused.
15577 2005-09-15  James Livingston  <jrl@ids.org.au>
15579         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15580         playing" icon in the "now playing" column header.
15582 2005-09-14  James Livingston  <jrl@ids.org.au>
15584         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15585         daap shares, when sharing is turned off.
15587 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15589         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15590         the GConf value's default, especially for badly installed schema
15591         files
15593 2005-09-12  James Livingston  <jrl@ids.org.au>
15595         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15597         Patch from Paolo Borelli <pborelli@katamail.com>
15599         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15600         grip when maximised. Closes bug 316055.
15602 2005-09-11  James Livingston  <jrl@ids.org.au>
15604         Patch from William Jon McCann <mccann@jhu.edu>
15606         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15607         subclass of GtkStatusbar instead of GtkHBox.
15608         (rb_statusbar_construct): Don't set border width.
15609         (rb_statusbar_init): Use resize grip.  Don't use
15610         markup.
15611         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15612         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15613         Connect tooltips for actions.
15614         (rb_statusbar_sync_status): Push new message to statusbar.
15615         (rb_statusbar_set_progress): Don't use markup.
15616         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15617         flag here since it prevents actually showing or hiding.
15618         (rb_statusbar_sync_with_source): Push new message to statusbar.
15620 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15622         * daapsharing/rb-daap-structure.c:
15623         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15624         around debugging definition.
15626 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15627         
15628         * daapsharing/rb-daap-structure.c:
15629         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15630         type = version.
15632         * daapsharing/rb-daap-mdns.c/h:
15633         (resolve_cb): Updated mDNS resolve callback to send service-name &
15634         name (read from Machine Name in the TXT data or equal to service-name
15635         if not in TXT).
15637         * daapsharing/rb-daap-source.c:
15638         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15639         (rb_daap_source_get_property), (rb_daap_source_new),
15640         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15641         (stop_resolver), (start_browsing), (stop_browsing), 
15642         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15643         and added 'host' and 'port' gobject properties.  Updated to use new
15644         mDNS resolve callback sending service-name & name arguments.
15646 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15648         * daapsharing/rb-daap-mdns.c:
15649         (howl_strerror): New function to report errors from Howl
15650         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15651         (get_sw_discovery), (get_avahi_client): Better error reporting from
15652         Howl & Avahi.
15654         * sources/rb-daap-source.:
15655         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15656         not get started or stopped in some situations.
15657         
15658 2005-09-12  James Livingston  <jrl@ids.org.au>
15660         * shell/rb-removable-media-manager.c: add a missing include, that
15661         would stop compilation if ipod support wasn't turned on
15663 2005-09-11  James Livingston  <jrl@ids.org.au>
15665         * daapsharing/rb-daap-dialog.c: (encode_base64),
15666         (rb_daap_password_dialog_new_run),
15667         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15668         it is no broken in to two pieces, and remove a use of a goto
15669         
15670         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15671         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15672         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15673         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15674         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15675         memory leaks, and some code style things.
15676         
15677         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15678         (rb_daap_share_init), (rb_daap_share_set_property),
15679         (rb_daap_share_dispose), (rb_daap_share_new),
15680         (rb_daap_share_get_property): make the DB and the playlist manager
15681         gobject properties.
15682         
15683         (message_add_standard_headers),
15684         (message_set_from_rb_daap_structure), (server_info_cb),
15685         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15686         (server_cb), (add_db_entry), (db_entry_added_cb),
15687         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15688         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15689         style and use CONF_PREFIX in the gconf keys
15690         
15691         * daapsharing/rb-daap-sharing.c: (create_share),
15692         (enable_sharing_changed_cb), (share_name_changed_cb),
15693         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15694         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15695         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15696         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15697         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15698         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15699         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15700         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15701         hasn't actually changed, fix some memory leaks, code style and release
15702         gconf notifications when the object is destroyed.
15703         
15704         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15705         (rb_daap_source_class_init), (rb_daap_source_init),
15706         (rb_daap_source_dispose), (rb_daap_source_set_property),
15707         (rb_daap_source_get_property), (rb_daap_source_new),
15708         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15709         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15710         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15711         (rb_daap_source_activate), (rb_daap_source_disconnect),
15712         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15713         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15714         release gconf notifications, handle gconf callbacks where the key
15715         hasn't changed, make "real name" and "password protected" gobject
15716         properties, fix some code style and fix a memory leak.
15718 2005-09-11  James Livingston  <jrl@ids.org.au>
15720         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15722         * shell/rb-playlist-manager.c:
15723         (rb_playlist_manager_save_playlists),
15724         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15725         when we aren't supposed to. (Closes bug 315886)
15727 2005-09-11  James Livingston  <jrl@ids.org.au>
15729         * shell/rb-removable-media-manager.c:
15730         (rb_removable_media_manager_class_init),
15731         (rb_removable_media_manager_init),
15732         (rb_removable_media_manager_dispose),
15733         (rb_removable_media_manager_set_property),
15734         (rb_removable_media_manager_get_property),
15735         (rb_removable_media_manager_new),
15736         (rb_removable_media_manager_load_media),
15737         (rb_removable_media_manager_volume_mounted_cb),
15738         (rb_removable_media_manager_volume_unmounted_cb),
15739         (rb_removable_media_manager_mount_volume),
15740         (rb_removable_media_manager_unmount_volume),
15741         (rb_removable_media_manager_source_deleted_cb),
15742         (rb_removable_media_manager_append_media_source),
15743         (rb_removable_media_manager_set_uimanager),
15744         (rb_removable_media_manager_eject_medium_cb),
15745         (rb_removable_media_manager_cmd_eject_medium):
15746         * shell/rb-removable-media-manager.h:
15747         * sources/rb-removable-media-source.c:
15748         (rb_removable_media_source_class_init),
15749         (rb_removable_media_source_init),
15750         (rb_removable_media_source_dispose),
15751         (rb_removable_media_source_set_property),
15752         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15753         (impl_delete_thyself):
15754         * sources/rb-removable-media-source.h: Add the four files that I
15755         somehow managed not to add to cvs in the last commit. Oops.
15757 2005-09-11  James Livingston  <jrl@ids.org.au>
15759         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15760         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15761         
15762         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15763         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15764         removable-media-manager on startup, and handle creation of sources.
15765         
15766         * sources/rb-ipod-source.h:
15767         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15768         (rb_ipod_source_init), (rb_ipod_source_constructor),
15769         (rb_ipod_source_dispose), (rb_ipod_source_new),
15770         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15771         the iPod source over to the removable media framework.
15772         
15773         * sources/rb-library-source.c: (paned_size_allocate_cb),
15774         (rb_library_source_get_paned_key): fix a potential bug is a
15775         library-derived source doesn't have a paned-key
15777 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15779         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15780         mp3 when we can't get the suffix of a file (Closes: #315941)
15782 2005-09-10  James Livingston  <jrl@ids.org.au>
15784         * configure.ac: fix the mdns tests, so that it doesn't complain about
15785         not finding one, if daap support isn't being compiled in
15787 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15789         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15791         * daapsharing/rb-daap-dialog.c:
15792         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15793         HIG compliancy & images.
15795         * daapsharing/rb-daap-mdns.c:
15796         (browse_cb), (resolve_cb): Better detection of local services.  
15797         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15798         Howl's limitations.  Fix the way collision handling is done under
15799         Avahi.
15801         * daapsharing/rb-daap-share.c:
15802         (publish_cb): Better name collision handling (at least for Avahi).
15804 2005-09-10  James Livingston  <jrl@ids.org.au>
15806         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15807         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15808         preferences more HIG compliant (Closes #315889)
15809         
15810         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15811         list of files to be translated
15813 2005-09-10  James Livingston  <jrl@ids.org.au>
15815         * configure.ac: fix it so that --enable-daap=no works
15816         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15817         uninstalled
15819 2005-09-10  James Livingston  <jrl@ids.org.au>
15821         Patch from Christophe Fergeau <teuf@gnome.org>
15823         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15824         the ipod code.
15826 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15827         * README.daap: Updating documentation
15829 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15830         * AUTHORS: Added myself.
15832         * daapsharing/rb-daap-connection.c:
15833         (connection_login), (rb_connection_new): Reorganized password
15834         handling.
15836         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15838         * shell/rb-shell.c:
15839         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15841         * sources/rb-daap-source.c:
15842         (rb_daap_source_activate): Better error handling when we are unable to
15843         connect.
15844         
15845 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15846         * README.daap: Fixed some terminology.
15848         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15849         New --with-mdns=auto|howl|avahi flag to specify.
15851         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15852         name collision dialogs.
15854         * daapsharing/rb-daap-connection.c:
15855         (connection_get_password), (build_message), (http_get)
15856         (connection_login): Ask for & use a password if the share demands it.
15858         * daapsharing/rb-daap-connection.h: Changed prototype of
15859         rb_daap_connection_new.
15860         
15861         * daapsharing/rb-daap-mdns.c: 
15862         (resolve_cb): Better detection of your own music share so it doesn't 
15863         appear in the sourcelist.
15865         * daapsharing/rb-daap-share.c:
15866         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15867         that start on any available port.
15869         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15871         * sources/rb-daap-source.c:
15872         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15873         (browse_cb): Handle passworded shares. Resolve the host immediately
15874         instead of when activated.
15875         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15876         (rb_daap_source_new): New GConf keys for UI state.
15877         (rb_daap_source_activate): Use RBPlaylistSource instead of
15878         RBDAAPPlaylistSource
15879         
15880         * sources/rb-daap-playlist-source.c/h: Removed
15882         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15883         if the playlist is local (i.e. not DAAP or iPod).
15884         
15885         * shell/rb-playlist-manager.c:
15886         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15887         wouldn't get saved if the last playlist hadn't changed.  Only save
15888         local playlists.
15889         
15890 2005-09-09  James Livingston  <jrl@ids.org.au>
15892         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15893         iPod preferences pane, as it already uses the browser views as the
15894         library.
15896 2005-09-09  James Livingston  <jrl@ids.org.au>
15898         * sources/rb-library-source.c: (rb_library_source_finalize),
15899         (rb_library_source_constructor): fix gconf monitoring of library
15900         preference keys.
15901         * sources/rb-library-source.h: remove declaration of function that
15902         does not exist
15904 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15906         * player/rb-player-gst.c:
15907         (rb_player_set_time): Fix seeking in daap streams.
15909 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15911         * data/rhythmbox.schemas: Turn music share browsing on by default.
15913 2005-09-07  James Livingston  <jrl@ids.org.au>
15915         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15917 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15918         * player/rb-player-gst.c: 
15919         (rb_player_get_time): Fix for extra << & == that accidentally made
15920         it in.
15922         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15923         
15924 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15925         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15926         it in last time.  Sorry.
15928 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15929         
15930         * player/rb-player-gst.c:
15931         (rb_player_get_time): Fix a small crash appearing when
15932         the uri isn't set in the player, but rb_player_get_time() is
15933         still called.
15935         * configure.ac: Also check for libsoup 2.4, which is what ships with
15936         Gnome 2.12.
15938         * po/POTFILES.in: Added music sharing files that have translatable 
15939         strings.
15941         * README.daap: New file explaining "How Music Sharing Works"  
15943 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15945         * daapsharing/.cvsignore: added
15947 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15949         * daapsharing/*: Music sharing library.
15950         
15951         * sources/rb-daap-source.c/h: Music share RBSource.
15952         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15954         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15955         libsoup and a mutlicast DNS implementation (howl or avahi).
15957         * data/rhythmbox.schemas: New GConf keys for music sharing.
15959         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15960         source right click menu.
15962         * player/rb-player-gst.c: Changes to properly play & seek in remote
15963         music share files.
15965         * shell/rb-playlist-manager.c/h:
15966         (rb_playlist_manager_get_playlists): New function to get a GList * of
15967         the playlists.
15968         (rb_playlist_manager_save_playlists): Don't save music share playlists
15969         and fixed a GObject reference leak.
15971         * shell/rb-shell.c/h:
15972         (rb_shell_append_source): No longer a local function.  Now takes a
15973         parent RBSource * argument, NULL to append a toplevel source.
15974         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15975         source (useful for disconnecting from remote music share,
15976         specifically).
15977         (rb_shell_quit): Stop music sharing/browsing.
15978         (rb_shell_playlist_added_cb): Work with tree source structure.
15979         (rb_shell_get_property): "playlist-manager" property accessor.
15980         (rb_shell_class_init): New "playlist-manager" property.
15981         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15982         daap sharing/browsing.
15983         (rb_shell_select_source): Notify source of activation/deactivation.
15985         * shell/rb-shell-prefernces.c: Music sharing preferences.
15987         * sources/rb-source.c/h: New activate, deactivate and disconnect
15988         class functions.  Activate & deactivate are notification style 
15989         functions that will tell a source when it is selected/unselected.
15990         Disconnect can be hooked up to a UI object to disconnect the source.
15992         * sources/rb-sourcelist-model.c:
15993         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15994         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15995         append a toplevel source.
15997 2005-09-05  James Livingston  <jrl@ids.org.au>
15999         * rhythmdb/rhythmdb-query-model.c:
16000         (rhythmdb_query_model_entry_changed_cb),
16001         (rhythmdb_query_model_do_reorder): Update the query model's totals if
16002         the duration of filesize of an entry changes.  Emit the row-changed
16003         signals that I forgot to put back in, when I was doing query sorting.
16005         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
16006         out "0 minutes" or "0 bytes".
16008 2005-09-04  James Livingston  <jrl@ids.org.au>
16010         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
16011         remove a leftover bit of the "internal-name" property of sources.
16013 2005-09-03  James Livingston  <jrl@ids.org.au>
16015         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
16016         extraneous debug message
16017         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
16018         crasher would affect any library-derived sources (which was also a
16019         memory leak).
16021 2005-09-02  Colin Walters  <walters@verbum.org>
16023         * configure.ac: Fix sytnax error.
16025         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
16026         code to disable minimization icons - need to figure out
16027         why it doesn't work...
16029 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
16031         * data/glade/song-info-multiple.glade:
16032         * data/glade/song-info.glade:
16033         * widgets/rb-song-info.c: (rb_song_info_constructor):
16034         Add a mnemonic to the newly added "Automatically rate" label
16035         in the properties dialog and use a bold typeface like all the 
16036         other labels in the dialog. (Closes bug 315089)
16038 2005-09-03  James Livingston  <jrl@ids.org.au>
16040         * sources/rb-library-source.c: (rb_library_source_class_init),
16041         (rb_library_source_finalize), (rb_library_source_constructor),
16042         (rb_library_source_set_property), (rb_library_source_get_property),
16043         (impl_get_paned_key), (paned_size_allocate_cb),
16044         (rb_library_source_state_prefs_sync), (impl_show_popup),
16045         (rb_library_source_get_paned_key):
16046         * sources/rb-library-source.h: Allow sources derived from
16047         RBLibrarySource to use different gconf keys for sort order, browser
16048         visibility and browser pane position. Fix a crasher if a derived
16049         source overrides _get_pixbuf.
16051 2005-09-02  Colin Walters  <walters@verbum.org>
16053         * shell/rb-shell.c (rb_shell_set_visibility): Move
16054         hint setting which seems to avoid races more.
16055         
16056 2005-09-03  James Livingston  <jrl@ids.org.au>
16058         * shell/rb-shell.c: fix compilation with iPod support enabled
16059         
16060 2005-09-02  Colin Walters  <walters@verbum.org>
16062         * shell/rb-shell.c (struct RBShellPrivate): Add
16063         idle_hide_mainwindow_id.
16064         (rb_shell_constructor): Move taskbar skipping hint into
16065         rb_shell_set_visibility.
16066         (idle_hide_mainwindow): New function.
16067         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
16068         racy hack to avoid rb appearing in taskbar when minimized.
16070 2005-09-01  Colin Walters  <walters@verbum.org>
16072         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
16074         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
16075         from gtkstatusicion.c.
16077         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
16079         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
16080         TrayShowWindow entry.
16081         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
16082         (rb_tray_icon_constructor): Create action group here.
16083         (rb_tray_icon_finalize): Destroy action group.
16084         (rb_tray_icon_set_property): Don't take an action group.
16085         (rb_tray_icon_new): Ditto.
16086         (tray_popup_position_menu): Some mostly boilerplate code
16087         to position menu.
16088         (rb_tray_icon_button_press_event_cb): Position menu.
16089         (rb_tray_icon_get_geom): New function used for the shell
16090         to set minimization hints.
16092         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
16094         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
16095         (struct RBShellPrivate): Change visible to iconified.
16096         (set_icon_geometry): New function from Søren Sandmann to
16097         tell Metacity where to draw the minimization animiation.
16098         (rb_shell_window_state_cb): Update iconified.
16099         (rb_shell_get_visibility): New function to say whether
16100         or not we're currently visible.
16101         (rb_shell_set_visibility): Update to minimize to
16102         tray or present as appropriate.
16103         (rb_shell_window_delete_cb): On window close, just
16104         minimize to tray if we're deleted.
16105         (rb_shell_set_window_title): Kill old notification code.
16106         (rb_shell_toggle_visibility): Nwe function.
16107         (rb_shell_cmd_toggle_visibility): Call it.
16108         (rb_shell_constructor): Skip the taskbar.
16109         (tray_destroy_cb): Better debugging.
16110         
16111 2005-09-01  Colin Walters  <walters@verbum.org>
16113         * data/ui/rhythmbox-ui.xml: Add MusicClose.
16115         * configure.ac: Enable bonobo by default.
16116         
16117 2005-09-01  Colin Walters  <walters@verbum.org>
16119         * configure.ac: Default to old art.  Add macros subdir.
16121         * Makefile.am (SUBDIRS): Add macros.
16123         * macros/Makefile.am: New.
16124         
16125 2005-09-01  Colin Walters  <walters@verbum.org>
16127         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
16128         rb-shell-player.xml.
16130         * remote/dbus/rb-remote-dbus.h: Deleted.
16131         
16132         * remote/dbus/Makefile.am: Delete all the junk, just dist
16133         rb-print-playing.py and rb-set-rating.py.
16135         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
16137         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
16139 2005-09-02  James Livingston  <jrl@ids.org.au>
16141         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
16142         file from cvs
16144         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
16145         (rb_shell_constructor): Patches from Jonathan Matthew
16146         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
16147         a crash when using "browse this artist".
16149 2005-08-31  Colin Walters  <walters@verbum.org>
16151         * configure.ac: Add --with-old-art configure switch.  Also
16152         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
16153         but it doesn't work.
16155         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
16156         Don't use eel_create_colorized_pixbuf for new art.
16157         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
16159         * data/art-clearlooks: New artwork.
16160         
16161 2005-08-31  Colin Walters  <walters@verbum.org>
16163         * shell/main.c (main): Fix Bastien's commit to continue to focus
16164         the window with GTK+ 2.8 at least.
16165         
16166 2005-08-31  Colin Walters  <walters@verbum.org>
16168         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
16169         is already loaded.
16171         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
16173 2005-08-31  Bastien Nocera  <hadess@hadess.net>
16175         * README: remove mentions of the xine-lib backend
16176         * shell/main.c: (main): make it compilable with gtk+ < 2.8
16178 2005-08-30  Colin Walters  <walters@verbum.org>
16180         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
16181         Make non-visible sources insensitive.
16182         
16183 2005-08-30  Colin Walters  <walters@verbum.org>
16185         * shell/rb-shell.c: Don't use GConf for selected source; it's
16186         confusing to have the selected source change after startup,
16187         and since we don't save other things it's not worth saving this.
16189         * sources/rb-playlist-source.c:
16190         * sources/rb-library-source.c:
16191         * sources/rb-iradio-source.c:
16192         * sources/rb-ipod-source.c: Delete internal-name property usage.
16193         * sources/rb-source.c: Delete internal-name property.
16195         * data/rhythmbox.schemas: Delete selected_source.
16196         
16197 2005-08-30  Colin Walters  <walters@verbum.org>
16199         * sources/rb-sourcelist.c: Make playing source bold instead of
16200         displaying a pixbuf; it's much less ugly.
16201         
16202 2005-08-30  Colin Walters  <walters@verbum.org>
16204         * sources/rb-source.c:
16205         * sources/rb-source.h: New virtual method try_playlist.
16207         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
16208         impl_try_playlist.
16209         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
16210         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
16211         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
16212         need to.
16213         (stations_view_drag_data_received_cb): Don't check for iradio uris;
16214         in theory we should though...
16216         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
16217         list in rb_shell_construct now.
16218         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
16219         RBiPodSource.
16220         (rb_shell_constructor): Create library, iradio, ipod here.
16221         (rb_shell_source_deleted_cb): Use source directly instead of
16222         indirecting through type.
16223         (rb_shell_sync_selected_source): Ditto.
16224         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
16225         from the type instead of special-casing.
16226         (rb_shell_guess_type_for_uri) 
16227         (rb_shell_add_uri)
16228         (handle_one_uri_with_possible_metadata): New functions.
16229         (rb_shell_load_uri): Refactor to allow loading playlists again,
16230         also use other URI infrastructure.
16232         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
16233         (rb_shell_player_error): Always set entry error on error, instead
16234         of depending on EOF behavior.
16236         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
16237         to just invoke rb_shell_add_uri.
16238         (rb_playlist_manager_parse_file): Return error instead of tossing
16239         up dialog box directly.
16240         (load_playlist_response_cb): Display error here.
16241         (add_uri_to_playlist): Delete.
16242         (handle_playlist_entry_into_playlist_cb): Renamed to
16243         handle_playlist_entry_cb.
16245         * shell/rb-playlist-manager.h: Add error, update prototype.
16247         * lib/rb-file-helpers.c:
16248         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16250 2005-08-29  Colin Walters  <walters@verbum.org>
16252         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16253         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16255         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16256         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16257         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16259         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16260         Prototype rb_shell_set_song_property.
16262         * shell/rb-shell.xml: Export setSongProperty.
16264         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16265         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16266         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16268         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16269         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16270         want to notify of the change.
16271         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16273         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16274         logic error; idle functions would be enqueued for each set.
16275         (rhythmdb_entry_set): Fix assertion logic error.
16277         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16278         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16279         Return if the entry already exists.
16280         
16281 2005-08-29  Colin Walters  <walters@verbum.org>
16283         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16284         "inserted" member which we use to keep track of
16285         whether or not an entry is in the DB.  Prototype
16286         rhythmdb_entry_set_uninserted.
16288         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16289         flag.
16290         (rhythmdb_entry_insert): Assert entry is not already inserted.
16291         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16292         just after creating entry.
16293         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16294         (rhythmdb_entry_set_nonotify): Ditto.
16295         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16296         entries.
16297         (rhythmdb_entry_set_internal): Change notify flag to
16298         notify_if_inserted.  Also move notification after assertions.
16300         Update all existing callers of rhythmdb_entry_set_internal
16301         to give TRUE for notify_if_inserted; this should be what
16302         we want but may be an efficiency hit.
16303         
16304 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16306         * shell/rb-shell-player.c: (rb_shell_player_init),
16307         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16308         (rb_shell_player_set_playing_source_internal),
16309         (rb_shell_player_sync_with_selected_source): Notify the player when an
16310         entry has updated the title, album or artist field, and resync the big
16311         display.
16312         
16313         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16314         * sources/rb-library-source.c: (rb_library_source_class_init),
16315         (impl_get_config_widget):
16316         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16317         * sources/rb-source.c:
16318         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16319         get_album functions in rb-source and adapted other sources accordingly.
16320         
16321 2005-08-29  Colin Walters  <walters@verbum.org>
16323         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16324         signal_change member.
16325         (threadsafe_entry_set): New function.
16326         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16327         (rhythmdb_entry_set_nonotify): New function; just call
16328         threadsafe_entry_set with FALSE.
16329         (rhythmdb_entry_set_internal): Take a notify flag; if true
16330         add the change to our pending set.
16332         Also update all internal callers of rhythmdb_entry_set_internal
16333         to pass FALSE.  Some of these may be bugs however and need to
16334         pass TRUE...
16336         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16337         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16338         rhythmdb_entry_set_nonotify.
16340         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16341         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16343         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16345         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16346         * sources/rb-source.c (rb_source_update_play_statistics): 
16347         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16348         * sources/rb-ipod-source.c (entry_set_string_prop) 
16349         (load_ipod_db_idle_cb): 
16350         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16351         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16352         (info_available_cb): 
16353         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16354         (rb_station_properties_dialog_sync_entries): 
16355         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16357         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16358         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16359         
16360 2005-08-29  Colin Walters  <walters@verbum.org>
16362         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16364         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16365         linking insanity.
16367         * widgets/rb-header.c (sanitize_string): New function, extracted
16368         from old info_url.  Be sure to always strip the string.
16369         (info_url): Rewrite to take artist/album, and generate a sane
16370         URL for them from last.fm, which is better than allmusic.com in
16371         that they support Rhythmbox, and have a *SANE* URL scheme.
16372         (artist_info_url, album_info_url): Delete.
16373         (rb_header_sync): Use info_url.
16375 2005-08-29  James Livingston  <jrl@ids.org.au>
16377         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16378         is implemented before calling it. Many sources don't implement the
16379         method.
16381 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16383         * data/glade/create-playlist.glade:  Cleanup the layout,
16384         and add a few more mnemonics.
16385         * shell/rb-playlist-manager.c:
16386         (rb_playlist_manager_cmd_load_playlist),
16387         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16388         capitalization for window titles.
16389         * widgets/rb-query-creator-properties.c: Add mnemonics
16390         to checkbutton labels.
16391         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16392         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16394 2005-08-28  Colin Walters  <walters@verbum.org>
16396         * data/rhythmbox.schemas: Delete search_text for library
16397         and iradio; this isn't a persistent value anymore.
16398         Closes #313757.
16399         
16400         * sources/rb-source.h:
16401         * sources/rb-source.c: Delete impl_can_search.
16403         * sources/rb-iradio-source.c: Delete search_text usage.
16404         * sources/rb-library-source.c: Ditto.
16406         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16407         search when source is set, and just do rb_source_search in
16408         rb_source_header_search_cb.
16410         * shell/rb-shell.c (rb_shell_append_source): Don't
16411         initiate search.
16413         * shell/Makefile.am: Don't dist dashboard.c.
16415 2005-08-28  Colin Walters  <walters@verbum.org>
16417         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16418         
16419 2005-08-28  Colin Walters  <walters@verbum.org>
16421         * data/org.gnome.Rhythmbox.service.in: New.
16423         * data/Makefile.am: Install service file.
16425         * configure.ac: Define DBUS_SERVICES_DIR.
16427         * autogen.sh: Set ACLOCAL_FLAGS.
16429         * macros/acinclude.m4: New.
16430         
16431 2005-08-28  Colin Walters  <walters@verbum.org>
16433         Initial patch from Jonathan Matthew; closes 313684.
16435         * rhythmdb/rhythmdb-tree.c:
16436         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16437         (save_entry): Return on error.
16438         (rhythmdb_tree_save): Handle error when saving the
16439         db; additionally, handle errors from fclose and unlink,
16440         and print error too.
16442 2005-08-28  Colin Walters  <walters@verbum.org>
16444         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16445         extra _.
16446         
16447 2005-08-28  Colin Walters  <walters@verbum.org>
16449         * configure.ac: Change iPod support to --with-ipod;
16450           automatically enable it if we have HAL.  Try to
16451           support both HAL 0.5 and HAL 0.2.  Break out
16452           totem-plparser into its own check so later we
16453           can do version tests there too.
16454           Kill dashboard support.
16455         
16456         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16457         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16458         Closes #310017.
16459         
16460         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16461         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16463         * sources/Makefile.am: Also handle
16464         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16466         * shell/dashboard.c: Delete; someone should just write a little
16467         python shim which lists on the D-BUS interface and writes the
16468         stuff to Dashboard.  Even better Dashboard should be ported
16469         to D-BUS and do the listening itself, perhaps on an abstract
16470         "org.gnome.MusicPlayer" interface or something.
16472         * shell/rb-shell.c: Kill dashboard support.
16474 2005-08-28  Colin Walters  <walters@verbum.org>
16476         * remote/dbus/rb-print-playing.py: New file.
16478 2005-08-28  Colin Walters  <walters@verbum.org>
16480         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16481         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16483         * shell/rb-shell-player.h:
16484         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16485         * shell/rb-shell-player.xml: Export it.
16487         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16488         (rb_shell_error_quark): New.
16490         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16491         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16492         
16493 2005-08-28  Colin Walters  <walters@verbum.org>
16495         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16496         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16497         bonobo_unlock.
16498         (rb_remote_bonobo_preinit): Lock setting moved here.
16499         (rb_remote_bonobo_init): From here.
16501         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16502         Also invoke handle_cmdline in the right place.
16503         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16504         GFunc.
16506 2005-08-28  James Livingston  <jrl@ids.org.au>
16508         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16509         when 0.9.1 comes around.
16511 2005-08-28  James Livingston  <jrl@ids.org.au>
16513         * iradio/rb-new-station-dialog.c:
16514         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16515         bug 314477.
16517 2005-08-28  James Livingston  <jrl@ids.org.au>
16519         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16521         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16522         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16523         is a song is longer than 60 minutes. Closes bug 313311.
16525 2005-08-27  James Livingston  <jrl@ids.org.au>
16527         * data/glade/create-playlist.glade:
16528         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16529         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16530         "minutes" as an option in the playlist limit menu.
16532         * rhythmdb/rhythmdb-query-model.c:
16533         (rhythmdb_query_model_class_init),
16534         (rhythmdb_query_model_set_property),
16535         (rhythmdb_query_model_get_property),
16536         (rhythmdb_query_model_update_limited_entries): Allow query models to
16537         have a time limit
16538         
16539         * shell/rb-playlist-manager.c:
16540         (rb_playlist_manager_set_automatic_playlist),
16541         (rb_playlist_manager_cmd_edit_automatic_playlist):
16542         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16543         (rb_playlist_source_get_query), (impl_receive_drag),
16544         (rb_playlist_source_new_from_xml),
16545         (rb_playlist_source_save_to_xml),
16546         (rb_playlist_source_songs_sort_order_changed_cb),
16547         (rb_playlist_source_do_query):
16548         * sources/rb-playlist-source.h:
16549         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16551 2005-08-27  James Livingston  <jrl@ids.org.au>
16553         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16555         * configure.ac:
16556         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16557         non-standard location. Closes bug 314640.
16559 2005-08-26  Colin Walters  <walters@verbum.org>
16560         
16561         Patch from Olivier Blin <oblin@mandriva.com>
16563         * widgets/eggnotificationbubble.c (draw_bubble): 
16564         Handle extreme-left case as well.
16565         
16566 2005-08-26  Colin Walters  <walters@verbum.org>
16568         * shell/rb-shell.c (idle_save_state): Don't do this.
16569         (rb_shell_construct): Remove idle calls to idle_save_state.
16570         We should save the playlists automatically when they're
16571         modified.
16572         (rb_shell_load_uri): Don't try to re-stat entry if it already
16573         exists.
16575         * shell/rb-shell-player.c: Keep track of entry we are attempting
16576         to play.
16577         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16578         Don't double-free error.
16579         (rb_shell_player_play_entry): Signal errors.
16580         (rb_shell_player_entry_activated_cb): Ditto.
16581         (rb_shell_player_property_row_activated_cb): Ditto.
16582         (rb_shell_player_set_playing_source_internal): Unset attempted
16583         playing entry.
16584         (rb_shell_player_error): Refactor to be usable both sync and
16585         async.  Handle case where displayed entry differs from entry.
16586         (error_cb): Move GDK locking here.
16588         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16589         people can just use dbus-send or python.  We only support focusing
16590         and loading files.
16591         (load_uri_args): New function, extracted from handle_cmdline.
16592         (dbus_load_uri, bonobo_load_uri): New functions.
16594         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16595         appropriate.
16597         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16598         * remote/dbus/rb-remote-dbus.c: Deleted.
16600         * player/rb-player-gst.c: Clear any pending idle handlers when we
16601         close the player.  Signal errors generated during open/play etc
16602         as synchronous errors.
16604         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16605         
16606 2005-08-26  Colin Walters  <walters@verbum.org>
16608         * shell/rb-shell.c (rb_shell_present): Try harder.
16610 2005-08-26  Colin Walters  <walters@verbum.org>
16612         * shell/rb-shell.c (rb_shell_present): Try to handle
16613         GTK_MINOR_VERSION < 8.
16615 2005-08-26  James Livingston  <jrl@ids.org.au>
16617         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16618         <pbrobinson@gmail.com>
16620 2005-08-26  Colin Walters  <walters@verbum.org>
16622         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16624 2005-08-25  Colin Walters  <walters@verbum.org>
16626         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16627         Delete.
16628         (rb_shell_player_do_next_with_rating): Move back into
16629         rb_shell_player_do_next.
16630         (rb_shell_player_entry_activated_cb): Remove call to
16631         rb_shell_player_auto_adjust_rating.
16632         (do_next_idle): Just call rb_shell_player_do_next.
16634         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16636 2005-08-25  Colin Walters  <walters@verbum.org>
16638         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16639         before gtk_window_present_with_time.
16640         
16641 2005-08-25  Colin Walters  <walters@verbum.org>
16643         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16644         default.
16646         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16647         rb_shell_construct.  This is so we only have to do g_object_new.
16648         (rb_shell_get_player): New function.
16649         (rb_shell_get_player_path): Ditto.
16650         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16651         
16652         * shell/rb-shell.h: Prototype them.
16654         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16655         export over D-BUS.
16656         (reemit_playing_signal): New function.
16657         (rb_shell_player_open_playlist_location): Use return values from
16658         rb_player_open, rb_player_close, etc. instead of checking "error".
16659         Return a gboolean on failure.
16660         (rb_shell_player_open_entry): Just open entry location, don't
16661         print to stderr.
16662         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16663         a gboolean.
16664         (do_next_idle): Move logic for handling of end of playlist here.
16665         (rb_shell_player_set_playing_entry): Take a GError, return a
16666         gboolean.  Update to use gboolean return values.
16667         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16668         logic.  Signal an error on end of playlist.  Also signal error if
16669         we're not playing.  Move heuristic for replaying the song into
16670         rb_shell_player_cmd_previous.
16671         (rb_shell_player_do_next_with_rating): Signal error on end of
16672         playlist.
16673         (rb_shell_player_do_next): Return errors.
16674         (rb_shell_player_cmd_previous): Heuristic for restarting song
16675         moved here; the idea is you generally only want that from the GUI.
16676         (rb_shell_player_cmd_play): Handle error.
16677         (rb_shell_player_playpause): Signal errors.
16678         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16679         rb_shell_player_cmd_next in favor of the internal _do functions.
16680         
16681         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16682         errors.  Update prototypes for above changes.
16684         * shell/main.c: More tightly integrate D-BUS; register various
16685         major singleton objects here.  Fix handle_cmdline so we only
16686         process extra arguments, not every argument.
16688         * shell/Makefile.am: Generate D-BUS glue headers.
16690         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16691         into shell/main.c.  Now this file just acts as a client library.
16692         Not heavily tested.
16694         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16695         Moved here.
16696         (rb_remote_bonobo_init): Move long CORBA rant here along with
16697         setting of lock functions.
16699         * player/rb-player-gst.c (rb_player_construct)
16700         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16701         on error.
16703         * player/rb-player.h: Update prototypes.
16705         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16706         rb-remote-bonobo.c.
16707         (rb_threads_init): Don't set gdk lock functions here.
16709 2005-08-25  James Livingston  <jrl@ids.org.au>
16711         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16713         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16714         * lib/rb-tree-dnd.h:
16715         * rhythmdb/rhythmdb-property-model.c:
16716         (rhythmdb_property_model_class_init),
16717         (rhythmdb_property_model_drag_source_init),
16718         (rhythmdb_property_model_iter_parent),
16719         (rhythmdb_property_model_row_draggable),
16720         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16721         (rhythmdb_property_model_drag_data_get),
16722         (rhythmdb_property_model_enable_drag):
16723         * rhythmdb/rhythmdb-property-model.h:
16724         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16725         (rb_playlist_manager_set_property), (append_new_playlist_source),
16726         (rb_playlist_manager_save_playlists):
16727         * shell/rb-shell.c: (rb_shell_construct),
16728         (sourcelist_drag_received_cb):
16729         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16730         * sources/rb-playlist-source.c: (impl_receive_drag):
16731         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16732         (rb_sourcelist_model_drag_dest_init),
16733         (rb_sourcelist_model_set_dnd_targets),
16734         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16735         (rb_sourcelist_model_row_drop_position),
16736         (rb_sourcelist_model_get_drag_target),
16737         (rb_sourcelist_model_drag_data_get):
16738         * sources/rb-sourcelist-model.h:
16739         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16740         (rb_sourcelist_init), (rb_sourcelist_get_property),
16741         (rb_sourcelist_selection_changed_cb):
16742         * sources/rb-sourcelist.h:
16743         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16744         improve drag-n-drop support. Allow dragging of item from property
16745         views to the source list, to create new automatic playlists. Allow
16746         playlist re-ordering. Fix dragging from Rhythmbox to other
16747         applications. (Closes bug 147337)
16749 2005-08-24  Colin Walters  <walters@verbum.org>
16751         Patch from Olivier Blin <oblin@mandriva.com>
16753         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16754         correctly in the case where the window is next to monitor edge.
16756 2005-08-24  James Livingston  <jrl@ids.org.au>
16758         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16759         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16760         a gobject property to get the query model that backs the playlist.
16762 2005-08-24  James Livingston  <jrl@ids.org.au>
16764         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16765         (handle_playlist_entry_into_playlist_cb),
16766         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16767         audio cd" menu item when a non-playlist source is selected, or the
16768         playlist is empty. (Closes Bug 313253)
16770 2005-08-24  James Livingston  <jrl@ids.org.au>
16772         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16773         Fix the playlist length checkso it doesn't report 0 for automatic
16774         playlists. This was stopping automati playlists being burnt to cd.
16776 2005-08-24  James Livingston  <jrl@ids.org.au>
16778         * configure.ac:
16779         * sources/rb-playlist-source-recorder.c: (burn_cd):
16780         * sources/rb-playlist-source.c:
16781         (rb_playlist_source_songs_sort_order_changed_cb):
16782         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16783         more warnings that occur when compiling RPMs on Fedora.
16785 2005-08-24  James Livingston  <jrl@ids.org.au>
16787         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16788         was stopping some distros gcc version compiling.
16790 2005-08-24  James Livingston  <jrl@ids.org.au>
16792         * NEWS:
16793         * data/glade/create-playlist.glade:
16794         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16795         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16796         (rhythmdb_query_free), (rhythmdb_query_serialize),
16797         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16798         * rhythmdb/rhythmdb.h:
16799         * shell/rb-playlist-manager.c:
16800         (rb_playlist_manager_set_automatic_playlist),
16801         (rb_playlist_manager_cmd_edit_automatic_playlist):
16802         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16803         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16804         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16805         (rb_playlist_source_save_to_xml),
16806         (rb_playlist_source_songs_sort_order_changed_cb),
16807         (rb_playlist_source_do_query):
16808         * sources/rb-playlist-source.h:
16809         * widgets/Makefile.am:
16810         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16811         (rb_entry_view_set_sorting_order):
16812         * widgets/rb-query-creator-private.h:
16813         * widgets/rb-query-creator-properties.c:
16814         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16815         (stringCriteriaGetWidgetData),
16816         (escapedStringCriteriaSetWidgetData),
16817         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16818         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16819         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16820         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16821         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16822         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16823         (relativeTimeCriteriaCreateWidget),
16824         (relativeTimeCriteriaSetWidgetData),
16825         (relativeTimeCriteriaGetWidgetData):
16826         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16827         (rb_query_creator_class_init), (rb_query_creator_constructor),
16828         (rb_query_creator_dispose), (rb_query_creator_set_property),
16829         (rb_query_creator_get_property), (rb_query_creator_load_query),
16830         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16831         (get_entry_for_property), (rb_query_creator_get_query),
16832         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16833         (limit_toggled_cb), (lookup_row_by_widget),
16834         (remove_button_click_cb), (append_row),
16835         (get_property_index_from_proptype), (select_criteria_from_value),
16836         (property_option_menu_changed), (create_property_option_menu),
16837         (create_criteria_option_menu), (sort_option_menu_changed),
16838         (setup_sort_option_menu):
16839         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16840         playlists. The two most notable improvements are 1) adding more
16841         properties to the query creator, making it much easier to add more in
16842         the future, and 2) allow playlists to be sorted, from the query editor
16843         if they gave limits, and by clicking on column headers if they don't.
16845         Files added: widgets/rb-query-creator-private.h,
16846         sources/rb-query-creator-properties.c
16848 2005-08-21  James Livingston  <jrl@ids.org.au>
16850         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16851         error=NULL. This stops some crashes.
16853 2005-08-19  Colin Walters  <walters@verbum.org>
16855         Patch from Olivier Blin <oblin@mandriva.com>
16857         * widgets/eggnotificationbubble.c (force_window): Support top
16858         orientation.
16859         * widgets/eggnotificationbubble.h: Remove
16860         egg_notification_bubble_force_window from header.
16861         
16862 2005-08-18  James Livingston  <jrl@ids.org.au>
16864         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16865         with the changes since then.
16867 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16869         * shell/rb-shell-player.c: (rb_shell_player_init),
16870         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16871         (rb_shell_player_volume_widget_changed_cb):
16872         * sources/rb-iradio-source.c:
16873         * sources/rb-library-source.c:
16874         * sources/rb-playlist-source.c:
16875         * widgets/Makefile.am:
16876         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16877         (bacon_volume_button_class_init), (bacon_volume_button_init),
16878         (bacon_volume_button_dispose), (bacon_volume_button_new),
16879         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16880         (bacon_volume_button_scroll), (bacon_volume_button_press),
16881         (cb_button_timeout), (cb_button_press), (cb_button_release),
16882         (bacon_volume_release_grab), (cb_dock_press),
16883         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16884         (bacon_volume_scale_new), (bacon_volume_scale_press),
16885         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16886         * widgets/bacon-volume.h:
16887         * widgets/rb-volume.c:
16888         * widgets/rb-volume.h:
16889           Use BaconVolumeButton (#300867).
16891 2005-08-17  James Livingston  <jrl@ids.org.au>
16893         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16894         (rhythmdb_process_metadata_load): don't reset the First Seen time
16895         whenever we recheck the metadata.
16897 2005-08-17  James Livingston  <jrl@ids.org.au>
16899         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16900         temporary workaround to stop crashes when trying to burn an empty
16901         playlist. Doesn't disable the menu item which is the better solution
16902         (Bug 313253).
16904 2005-08-15  James Livingston  <jrl@ids.org.au>
16906         * shell/rb-source-header.c: (rb_source_header_init),
16907         (rb_source_header_sync_control_state),
16908         (rb_source_header_search_activate_cb):
16909         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16910         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16911         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16912         (rb_search_entry_init), (rb_search_entry_searching),
16913         (rb_search_entry_activate_cb):
16914         * widgets/rb-search-entry.h: Move focus to the entry view when user
16915         presses enter in the search box. Patch from Paolo Borelli
16916         <pborelli@katamail.com> (Closes bug 128110)
16918 2005-08-15  James Livingston  <jrl@ids.org.au>
16920         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16921         (rb_playlist_manager_new_playlist):
16922         * shell/rb-playlist-manager.h:
16923         * shell/rb-shell.c: (rb_shell_construct),
16924         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16925         the source list to be shown when a new playlist is created. (Closes
16926         bug 161935)
16928 2005-08-15  James Livingston  <jrl@ids.org.au>
16930         * widgets/rb-header.c: (rb_header_init),
16931         (rb_header_set_show_timeline): disable the seek slider, rather than
16932         hiding it, which more closely follows the HIG. (Closes bug 139102)
16934 2005-08-13  Colin Walters  <walters@verbum.org>
16936         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16937         rb_shell_hidden_notify.
16938         (rb_shell_hidden_notify): Notify if the shell is hidden.
16939         (rb_shell_set_visibility_impl): Debug goo.
16941         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16943         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16944         when the user clicks on notification.
16946         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16947         CD burn is complete.
16948         (rb_playlist_source_recorder_finalize): Unref shell.
16949         (rb_playlist_source_recorder_new): Take shell.
16951         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16952         Pass shell to RBPlaylistSourceRecorder.
16953         
16954 2005-08-13  Colin Walters  <walters@verbum.org>
16956         * lib/rb-thread.c:
16957         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16958           time to convert.
16960 2005-08-13  Colin Walters  <walters@verbum.org>
16962         * widgets/eggnotificationbubble.h:
16963         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16964         * widgets/eggtrayicon.c:
16965         * widgets/eggtrayicon.h: Add notification API.
16966         * shell/rb-tray-icon.c:
16967         * shell/rb-tray-icon.h: Add notification API.
16968         * shell/rb-shell.c: Notify on song change.
16970 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16972         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16973         Correct an inversion of two lines causing NULL to be unreffed
16975 ============ Version 0.9.0
16977 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16979         * configure.ac: 0.9.0, whee!
16980         * NEWS: badly updated
16981         * remote/bonobo/Makefile.am:
16982         * remote/bonobo/rb-remote-bonobo.h:
16983         * shell/Makefile.am:
16984         * shell/main.c: make distcheck fixes