udapted vi.po
[rhythmbox.git] / ChangeLog
blobcfaa0ff8a790c8f56b34d271b2ed226aa730cc7d
1 2006-12-13  James Livingston  <doclivingston@gmail.com>
3         * configure.ac: bump version to 0.9.6.90 for a pre-release
5 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
8         (rhythmdb_query_model_entry_added_cb),
9         (rhythmdb_query_model_entry_changed_cb):
10         Track hidden entries in query models with no query.  Currently unused
11         due to how we structure queries for static playlists, but it fixes the
12         property model unit tests.
14 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
16         * daapsharing/rb-daap-connection.c:
17         (rb_daap_connection_do_something):
18         Request daap.songdiscnumber from the DAAP server.
20 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
22         * sources/rb-static-playlist-source.c:
23         (rb_static_playlist_source_add_uri_list):
24         Don't free the URI list twice.  Fixes #380947.
26 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
28         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
29         (rb_uri_get_dir_name):
30         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
31         * rhythmdb/rhythmdb.c:
32         * sources/rb-library-source.c: (build_filename),
33         (rb_library_source_add_child_source):
34         * sources/rb-playlist-source-recorder.c: (check_dir_has_space):
35         Handle cases where gnome_vfs_uri_new returns NULL.  From #380947.
37 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
39         * metadata/sj-metadata-musicbrainz.c: (get_drive_media_type),
40         (lookup_cd):
41         Add support for older versions of libnautilus-burn.
43 2006-12-13  James Livingston  <doclivingston@gmail.com>
45         Patch from Tim Retout  <tim@retout.co.uk>
47         * shell/rb-history.c: (rb_history_append):
48         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix a
49         problem where appending a song could get the history wrong. Fixes #346287
51 2006-12-12  James Livingston  <doclivingston@gmail.com>
53         * plugins/audioscrobbler/Makefile.am:
54         * metadata/sj-error.c: (sj_error_quark):
55         * metadata/sj-error.h:
56         * metadata/sj-metadata-musicbrainz.c:
57         (sj_metadata_musicbrainz_instance_init),
58         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
59         (get_rdf), (lookup_cd):
60         * metadata/sj-metadata-musicbrainz.h:
61         * metadata/sj-metadata.c: (sj_metadata_get_type):
62         * metadata/sj-metadata.h:
63         * metadata/sj-structures.c:
64         * metadata/sj-structures.h: get bug fixes from S-J and hopefully fix
65         #382954.
67 2006-12-12  James Livingston  <doclivingston@gmail.com>
69         * sources/rb-ipod-source.c: (rb_ipod_load_songs): hopefully fix
70         some corrupt-ipod-db issues. from #358855
72 2006-12-12  James Livingston  <doclivingston@gmail.com>
74         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal): don't
75         try to re-sort the model if it's NULL. Fixes #367646
77 2006-12-12  James Livingston  <doclivingston@gmail.com>
79         * data/rhythmbox.schemas:
80         * lib/rb-util.c: (_threads_enter), (_threads_leave),
81         (rb_threads_init):
82         * plugins/magnatune/magnatune-prefs.glade:
83         * plugins/magnatune/magnatune-purchase.glade:
84         * plugins/magnatune/magnatune/MagnatuneSource.py:
85         * plugins/magnatune/magnatune/__init__.py: add code to use
86         Gnome-Keyring to store the user's credit card details, but force it to
87         be disabled (due to bugs). From #377354
89 2006-12-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
91         * rhythmdb/rhythmdb-query-model.c:
92         (rhythmdb_query_model_remove_from_main_list):
93         Re-find the sequence node pointer after emitting the row-deleted
94         signal, as signal handlers may cause it to change.  Fixes #370443.
96 2006-12-11  James Livingston  <doclivingston@gmail.com>
98         * sources/rb-daap-source.c: (connection_auth_cb): fix a code path
99         trying to free an unset pointer. Fixes #384208
101 2006-12-11  James Livingston  <doclivingston@gmail.com>
103         * sources/rb-library-source.c: (build_filename): deal with URIs that
104         don't have a period in them. Fixes #384016
106 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
108         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
109         Use G_GINT64_FORMAT instead of %lld.
111 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
113         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
114         (rb_encoder_gst_encode):
115         When copying rather than transcoding, do position queries in byte
116         format rather than time.
118         * sources/rb-ipod-source.c: (impl_receive_drag):
119         * sources/rb-library-source.c: (impl_receive_drag):
120         Handle application/x-rhythmbox-entry drops.  Fixes drag and drop from
121         daap shares to library.
123 2006-12-10  James Livingston  <doclivingston@gmail.com>
125         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post): add
126         posts that are missing their date tag.
128 2006-12-09  James Livingston  <doclivingston@gmail.com>
130         * shell/rb-statusbar.c: (rb_statusbar_init): revert the patch from bug
131         #368757
133 2006-12-09  James Livingston  <doclivingston@gmail.com>
135         * configure.ac:
136         * data/rhythmbox.schemas:
137         * plugins/Makefile.am:
138         * plugins/magnatune/magnatune-prefs.glade:
139         * plugins/magnatune/magnatune-purchase.glade:
140         * plugins/magnatune/magnatune/MagnatuneSource.py:
141         * plugins/magnatune/magnatune/__init__.py: revert some stuff I
142         accidently comitted.
144 2006-12-09  James Livingston  <doclivingston@gmail.com>
146         * rhythmdb/rhythmdb-property-model.c:
147         (rhythmdb_property_model_finalize): fix a memory leak.
149 2006-12-09  James Livingston  <doclivingston@gmail.com>
151         * sources/rb-ipod-source.c: (rb_ipod_source_set_ipod_name): don't
152         crash if the iPod's name set to is NULL #358855
154 2006-12-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
156         * widgets/rb-property-view.c: (rb_property_view_class_init),
157         (rb_property_view_dispose), (rb_property_view_finalize):
158         Disconnect signal handlers in dispose, not finalize.  Fixes #374892.
160 2006-12-04  James Livingston  <doclivingston@gmail.com>
162         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
164         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_preprocess):
165         * widgets/rb-query-creator-properties.c:
166         (yearCriteriaSetWidgetData), (yearCriteriaGetWidgetData): stop some
167         critical warnings emitted if a YEAR=0 query was done. Fixes #381839
169 2006-12-03  James Livingston  <doclivingston@gmail.com>
171         * lib/rb-file-helpers.c: (_rb_uri_recurse_data_free),
172         (rb_uri_handle_recursively_cb), (rb_uri_handle_recursively),
173         (_recurse_async_idle_cb), (_recurse_async_data_free),
174         (_recurse_async_cb), (_recurse_async_func),
175         (rb_uri_handle_recursively_async):
176         * lib/rb-file-helpers.h:
177         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
178         (rb_plugins_engine_load_dir):
179         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
180         (rhythmdb_stop_monitoring), (monitor_entry_file),
181         (monitor_subdirectory), (monitor_library_directory),
182         (_monitor_entry_thread), (rhythmdb_start_monitoring),
183         (rhythmdb_monitor_uri_path):
184         * rhythmdb/rhythmdb.c:
185         * sources/rb-static-playlist-source.c:
186         (rb_static_playlist_source_add_location_cb),
187         (rb_static_playlist_source_add_location): add a utility function for
188         doing directory recusion asynchronously, and use it everywhere instead
189         of the old one. Removes one of our biggest do-IO-synchronously issues.
190         From #325215
192 2006-12-03  James Livingston  <doclivingston@gmail.com>
194         * plugins/audioscrobbler/Makefile.am:
195         * plugins/audioscrobbler/audioscrobbler-ui.xml:
196         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
197         (impl_activate), (impl_deactivate):
198         * plugins/audioscrobbler/rb-lastfm-source.c:
199         (rb_lastfm_source_class_init), (rb_lastfm_source_constructor),
200         (impl_activate), (impl_show_popup), (show_entry_popup): add a context
201         menu to the last.fm source, and allow deletion of stations.
203 2006-12-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
205         * plugins/rb-plugin-manager.c: (plugin_manager_populate_lists):
206         gtk_tree_view_get_model doesn't ref the model, so don't unref it
207         when we're done with it.
209 2006-12-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
211         * rhythmdb/rhythmdb.c:
212         (rhythmdb_execute_load), (rhythmdb_add_uri_with_type):
213         Handle rb_uri_resolve_symlink returning NULL, as it does when it
214         encounters a symlink loop.  Create import errors for such URIs.
215         Fixes #380826.
217 2006-11-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
219         patch started by:  James Livingston  <doclivingston@gmail.com>
221         * podcast/rb-podcast-manager.c: (*)
222         * podcast/rb-podcast-manager.h:
223         * sources/rb-podcast-source.c: (rb_podcast_source_set_property),
224         (rb_podcast_source_cmd_cancel_download),
225         (rb_podcast_source_load_finish_cb),
226         (rb_podcast_source_feed_updates_available_cb),
227         (rb_podcast_source_shutdown), (rb_podcast_source_cmd_new_podcast):
228         Remove mutexes and async queues from the podcast manager; just do
229         everything on the main thread and use idle handlers to marshal things
230         across to it.  Should fix crashes on FreeBSD, various other weird
231         stuff, and bug 337332.
233 2006-11-29  James Livingston  <doclivingston@gmail.com>
235         patch from: Glynn Foster <glynn.foster@sun.com>
237         * metadata/sj-metadata-musicbrainz.c:
238         (sj_metadata_musicbrainz_instance_init): fix a typo in the proxy
239         settings.
241 2006-11-29  James Livingston  <doclivingston@gmail.com>
243         patch by: Thomas Thurman  <thomas@thurman.org.uk>
245         * data/glade/song-info-multiple.glade:
246         * data/glade/song-info.glade:
247         * data/glade/station-properties.glade: Make the return key close these
248         dialogs. Fixes #379148
250 2006-11-29  James Livingston  <doclivingston@gmail.com>
252         patch by: Ingo Planz  <planz@mi-fu-berlin.de>
254         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Make the
255         podcast plugin set unknown dates to the current time, not the start of
256         the epoch. Fixes #367572.
258 2006-11-29  James Livingston  <doclivingston@gmail.com>
260         * lib/rb-tree-dnd.c: (rb_tree_drag_source_row_draggable),
261         (rb_tree_drag_source_drag_data_delete),
262         (rb_tree_drag_source_drag_data_get),
263         (rb_tree_drag_dest_drag_data_received),
264         (rb_tree_drag_dest_row_drop_possible),
265         (rb_tree_drag_dest_row_drop_position), (rb_tree_dnd_drag_drop_cb):
266         * lib/rb-tree-dnd.h:
267         * rhythmdb/rhythmdb-property-model.c:
268         (rhythmdb_property_model_drag_source_init):
269         * rhythmdb/rhythmdb-query-model.c:
270         (rhythmdb_query_model_drag_source_init),
271         (rhythmdb_query_model_drag_dest_init):
272         * sources/rb-sourcelist-model.c:
273         (rb_sourcelist_model_drag_dest_init),
274         (rb_sourcelist_model_drag_source_init): don't use the same method
275         names as the GtkTreeDnd ones, since it break bindings to other
276         languages.
278         * shell/rb-shell.c: (_scan_idle), (rb_shell_constructor): run the
279         removable media scan in an idle callback.
281 2006-11-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
283         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct):
284         Use the right variable name when setting the "profile" property on the
285         sink.  Fixes #379532 and closes #379314 again.
287 2006-11-27  James Livingston  <doclivingston@gmail.com>
289         patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
291         * plugins/magnatune/magnatune/MagnatuneSource.py: fix a race condition
292         in the Magnatune plugin, from #373684.
294 2006-11-26  James Livingston  <doclivingston@gmail.com>
296         patch from Alex Jones  <alex@weej.com>
298         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct): set
299         the "profile" on the audio sink, if it's present. Fixes #379314.
301 2006-11-23  James Livingston  <doclivingston@gmail.com>
303         * bindings/python/rhythmdb.defs:
304         * bindings/python/rhythmdb.override: fix some binding stuff.
306 2006-11-23  James Livingston  <doclivingston@gmail.com>
308         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
310         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
311         details from debug output. Fixes #378355.
313 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
315         * shell/rb-shell-player.c: (rb_shell_player_play):
316         Don't crash if current_playing_source is NULL.  Fixes #378195.
317         
318         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
319         rb_shell_player_play isn't very useful, use _playpause if not
320         already playing instead.
322 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
324         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
325         (rhythmdb_property_model_drag_data_get):
326         * rhythmdb/rhythmdb-query-model.c:
327         (rhythmdb_query_model_drag_data_get),
328         (rhythmdb_query_model_drag_data_received):
329         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
330         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
331         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
332         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
333         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
334         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
335         (rhythmdb_tree_entry_count_by_type):
336         * rhythmdb/rhythmdb.c:
337         * rhythmdb/rhythmdb.h:
338         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
339         (rb_daap_share_set_property), (rb_daap_share_get_property),
340         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
341         (send_mapped_file), (databases_cb), (db_entry_added_cb),
342         (db_entry_deleted_cb), (rb_daap_share_server_start),
343         (rb_daap_share_server_stop):
344         * daapsharing/rb-daap-share.h:
345         * daapsharing/rb-daap-sharing.c: (create_share):
346         Move id-to-entry map from daap share into rhythmdb.
348         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
349         (rb_playlist_manager_new_playlist_from_selection_data):
350         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
351         * sources/rb-browser-source.c: (rb_browser_source_constructor):
352         * sources/rb-sourcelist-model.c:
353         (rb_sourcelist_model_drag_data_received),
354         (rb_sourcelist_model_row_drop_position),
355         (rb_sourcelist_model_get_drag_target),
356         (rb_sourcelist_model_drag_data_get):
357         * sources/rb-static-playlist-source.c: (impl_receive_drag),
358         (rb_static_playlist_source_add_id_list),
359         (rb_static_playlist_source_add_uri_list):
360         * widgets/rb-entry-view.c:
361         * widgets/rb-property-view.c:
362         Add a new drag-and-drop type: application/x-rhythmbox-entry
363         containing a list of entry IDs, and use it for DnD within the
364         application.  Avoids having to pick a URI to use for an entry, so we
365         can make DnD of podcast entries (and anything else where playback URI
366         is not the same as the entry location) work as expected.
367         Fixes #343537.
369 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
371         * shell/rb-shell.c: (rb_shell_present):
372         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
374 2006-11-20  James Livingston  <doclivingston@gmail.com>
376         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
377         find the responsible source. Fixes #377029
379 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
381         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
382         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
383         * lib/rb-file-helpers.h:
384         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
385         Implement rb_uri_get_short_path_name to replace
386         gnome_vfs_uri_extract_short_path name with something that doesn't
387         reject unknown URI schemes such as daap://.  Fixes #361077.
389         * tests/Makefile.am:
390         * tests/test-file-helpers.c: (test_get_short_path_name),
391         (START_TEST), (rb_file_helpers_suite), (main):
392         Add tests for the above.
394 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
396         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
397         (bacon_volume_button_new), (bacon_volume_button_style_set),
398         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
399         (bacon_volume_scale_value_changed),
400         (bacon_volume_button_load_icons):
401         * widgets/bacon-volume.h:
402         Update bacon-volume from libbacon CVS again.
404 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
406         * widgets/bacon-volume.c: (bacon_volume_load_icons):
407         Fall back to old icon names if the icon naming spec compliant
408         names don't work.  From #369491.
410 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
412         * plugins/audiocd/Makefile.am:
413         Stop automake complaining about duplicate definitions.
415 2006-11-17  James Livingston  <doclivingston@gmail.com>
417         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
418         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
419         when disposing of the source. Fixes #376155
421         * plugins/daap/Makefile.am: fix some distcheck brokenness.
423 2006-11-17  James Livingston  <doclivingston@gmail.com>
425         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
427 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
429         * shell/rb-playlist-manager.c: (*):
430         General cleanup, add appropriate object references and implement
431         dispose method.  Should fix #357099.
433 2006-11-15  James Livingston  <doclivingston@gmail.com>
435         patch by: William Lachance  <wrlach@gmail.com>
437         * rhythmdb/rhythmdb-query-model.c:
438         (rhythmdb_query_model_album_sort_func): improve sorting when some
439         tracks are missing track/disc number info. Fixes #371322
441 2006-11-14  James Livingston  <doclivingston@gmail.com>
443         patch by: Alex Lancaster
445         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
446         episode dates which are missing the seconds. Fixes #373845
448 2006-11-13  James Livingston  <doclivingston@gmail.com>
450         * bindings/python/rhythmdb.override: bidn a few other pieces of
451         rhythmdb.
453 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
455         * shell/rb-statusbar.c: (rb_statusbar_class_init),
456         (rb_statusbar_dispose), (rb_statusbar_finalize),
457         (rb_statusbar_set_property):
458         Remove idle handler in dispose, rather than finalize.
459         Keep references on all referenced objects (duh?).
460         Fixes #374443.
462 2006-11-12  James Livingston  <doclivingston@gmail.com>
464         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
466         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
467         the status bar smaller, so it isn't too big. Fixes #368757.
469 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
471         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
472         (mdns_service_removed):
473         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
474         disappear.
476 2006-11-12  James Livingston  <doclivingston@gmail.com>
478         * plugins/audioscrobbler/rb-lastfm-source.c:
479         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
480         more supported last.fm radio things. From #373622
482 2006-11-12  James Livingston  <doclivingston@gmail.com>
484         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
485         through the earlier checks. Fixes #373605
487 2006-11-12  James Livingston  <doclivingston@gmail.com>
489         * sources/rb-library-source.c:
490         (rb_library_source_add_child_source): sort the child-library sources
491         the same as the library by default.
493 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
495         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
496         Don't try to report the size if we didn't get one.
497         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
498         work), from #350276.
500 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
502         * daapsharing/rb-daap-sharing.c:
503         (rb_daap_sharing_default_share_name), (create_share),
504         (share_name_changed_cb):
505         * daapsharing/rb-daap-sharing.h:
506         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
507         (make_config_widget), (impl_create_configure_dialog):
508         Update DAAP preferences widget when displaying it, and
509         populate the share name entry with the default if there's nothing
510         there already.  Fixes #340279.
512 2006-11-11  James Livingston  <doclivingston@gmail.com>
514         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
516         * plugins/magnatune/magnatune/MagnatuneSource.py:
517         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
518         Magnatune stuff. From #345783
520 2006-11-10  James Livingston  <doclivingston@gmail.com>
522         * plugins/generic-player/rb-nokia770-source.c:
523         (hal_udi_is_nokia770):
524         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
525         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
526         context if it wasn't inited. Fixes #372824
528 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
530         * plugins/daap/rb-daap-plugin.h:
531         Add the file I missed last time.
533 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
535         * CVS-SURGERY:
536         * backends/gstreamer/Makefile.am:
537         * backends/gstreamer/rb-player-gst.c:
538         * configure.ac:
539         * daapsharing/Makefile.am:
540         * daapsharing/rb-daap-connection.c:
541         (rb_daap_connection_disconnect):
542         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
543         (rb_daap_src_open):
544         * daapsharing/rb-daap-src.h:
545         * data/glade/Makefile.am:
546         * data/rhythmbox.schemas:
547         * data/ui/Makefile.am:
548         * plugins/Makefile.am:
549         * plugins/daap/.cvsignore:
550         * plugins/daap/Makefile.am:
551         * plugins/daap/daap.rb-plugin.desktop.in:
552         * plugins/daap/rb-daap-plugin.c:
553         * shell/Makefile.am:
554         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
555         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
556         * sources/Makefile.am:
557         * sources/rb-daap-source.c: (rb_daap_source_class_init),
558         (rb_daap_source_new), (connection_auth_cb),
559         (connection_connecting_cb), (connection_disconnected_cb),
560         (release_connection), (rb_daap_source_disconnect),
561         (rb_daap_source_show_popup):
562         * sources/rb-daap-source.h:
563         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
564         Fixes #336150.
566 2006-11-09  James Livingston  <doclivingston@gmail.com>
568         * rhythmdb/rhythmdb.c: take the ref before calling the delete
569         implementation, not after. From #372851.
571 2006-11-09  James Livingston  <doclivingston@gmail.com>
573         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
575         * plugins/Makefile.am:
576         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
577         fixes #371178.
579 2006-11-09  James Livingston  <doclivingston@gmail.com>
581         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
582         g_signal_connect_object not g_signal_object, which stops it beign
583         called after the plugin is disposed.
585 2006-11-09  James Livingston  <doclivingston@gmail.com>
587         * plugins/audioscrobbler/rb-audioscrobbler.c:
588         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
589         after we're finalised. Should fix #370513
591 2006-11-08  James Livingston  <doclivingston@gmail.com>
593         patch by: Jerry Tan  <jerry.tan@sun.com>
595         * data/glade/song-info.glade: set more a11y properties on the
596         label-for/labelled-by info. Fixes #368179.
598 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
600         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
601         (rb_entry_view_dispose), (rb_entry_view_finalize):
602         Unref objects and remove idle handlers in dispose rather than
603         finalize.  Should fix #364783.
605 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
607         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
608         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
609         xmlCreateMemoryParserCtxt returning NULL that was previously checking
610         the wrong variable.  Really fixes #336842.
612 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
614         * plugins/iradio/Makefile.am:
615         Actually install the UI file.
617 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
619         * plugins/generic-player/rb-generic-player-source.c:
620         (rb_generic_player_source_constructor),
621         (rb_generic_player_source_dispose),
622         (rb_generic_player_source_load_playlists):
623         Don't crash if the source is destroyed before it gets a chance
624         to load playlists.
626 2006-11-06  James Livingston  <doclivingston@gmail.com>
628         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
629         * rhythmdb/rhythmdb.c: some leak fixes
631 2006-11-06  James Livingston  <doclivingston@gmail.com>
633         * bindings/python/rb.override: change the right function in the last
634         commit.
636 2006-11-06  James Livingston  <doclivingston@gmail.com>
638         * bindings/python/rb.override: unwrap the python string instead of
639         wrapping it. Oops.
641 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
643         * tests/test-utils.c: (test_rhythmdb_setup):
644         Fix build break, #371106.
646 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
648         * tests/Makefile.am:
649         * tests/test-rhythmdb-property-model.c: (_get_property_count),
650         (START_TEST), (rhythmdb_property_model_suite), (main):
651         * tests/test-rhythmdb-query-model.c: (START_TEST),
652         (rhythmdb_query_model_suite), (main):
653         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
654         * tests/test-utils.c: (start_test_case), (end_step),
655         (end_test_case), (mark_signal), (set_waiting_signal),
656         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
657         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
658         * tests/test-utils.h:
659         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
661 2006-11-04  James Livingston  <doclivingston@gmail.com>
663         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
664         we were passed a absolute path, e.g. from the plugin file find
665         function.
667 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
669         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
671         * remote/dbus/rb-client.c: (main):
672         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
673         * shell/rb-shell.h:
674         * shell/rb-shell.xml:
675         Add dbus method to request a notification for the playing song, and
676         an argument to rhythmbox-client to use it.  Fixes #359593.
678 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
680         * remote/dbus/rb-print-playing.py:
681         Revert changes I accidentally committed a while ago.
683 2006-11-03  James Livingston  <doclivingston@gmail.com>
685         * data/glade/song-info.glade: make more labels selectable, from #368641
687 2006-11-03  James Livingston  <doclivingston@gmail.com>
689         * shell/rb-shell-clipboard.c: (get_focussed_widget),
690         (rb_shell_clipboard_cmd_select_all),
691         (rb_shell_clipboard_cmd_select_none): make Select All select text in
692         the focussed widget if it's a text entry. Fixes #364590
694 2006-11-03  James Livingston  <doclivingston@gmail.com>
696         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
697         (bacon_volume_button_init), (bacon_volume_button_dispose),
698         (bacon_volume_button_new), (bacon_volume_button_realize),
699         (bacon_volume_button_press), (bacon_volume_key_release),
700         (bacon_volume_release_grab), (cb_dock_key_release),
701         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
702         (bacon_volume_theme_changed), (bacon_volume_load_icons):
703         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
704         Fixes #369491
706 2006-10-31  James Livingston  <doclivingston@gmail.com>
708         * configure.ac: remove spaces around '=' where they shouldn't be,
709         fixes building when you have libgpod 0.3.x
711 2006-10-31  James Livingston  <doclivingston@gmail.com>
713         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
715         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
716         period is 0. Fixes #351425
718 2006-10-31  James Livingston  <doclivingston@gmail.com>
720         patch by: Luca Ferretti  <elle.uca@libero.it>
722         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
723         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
724         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
725         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
726         * plugins/ipod/ipod.rb-plugin.desktop.in:
727         * plugins/iradio/iradio.rb-plugin.desktop.in:
728         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
729         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
730         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
731         of the plugins. Fixes #365326
733 2006-10-31  James Livingston  <doclivingston@gmail.com>
735         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
737 2006-10-31  James Livingston  <doclivingston@gmail.com>
739         * data/glade/song-info.glade: set the mnemonic target for the labels
740         in the details tab. Fixes #368179.
742 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
744         * configure.ac:
745         When complaining about GStreamer being too old, use the right variable
746         name for the version we want.
748 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
750         * shell/rb-shell.h:
751         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
752         * shell/rb-tray-icon.h:
753         * bindings/python/rb.defs:
754         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
755         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
756         * sources/rb-playlist-source-recorder.c: (burn_cd):
757         * sources/rb-podcast-source.c:
758         (rb_podcast_source_start_download_cb),
759         (rb_podcast_source_finish_download_cb),
760         (rb_podcast_source_feed_updates_avaliable_cb):
761         Change the various notification functions to take a parameter
762         specifying whether the notification was explicitly requested by the
763         user.  Add a function to display a notification for an entry,
764         including streaming song metadata.
766         * shell/rb-shell-player.c: (rb_shell_player_stop):
767         Emit playing-song-changed and playing-uri-changed when stopping
768         playback.
770         * sources/Makefile.am:
771         * sources/rb-streaming-source.c:
772         * sources/rb-streaming-source.h:
773         Add a base class for streaming sources, handling streaming song
774         metadata and buffering messages, emitting notifications on song
775         changes, and updating play count statistics when playback stops.
777         * plugins/audioscrobbler/Makefile.am:
778         * plugins/audioscrobbler/rb-lastfm-source.c:
779         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
780         (rb_lastfm_source_constructor), (impl_get_status),
781         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
782         (rb_lastfm_source_title_from_uri),
783         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
784         (rb_lastfm_song_changed_cb), (impl_activate):
785         * plugins/audioscrobbler/rb-lastfm-source.h:
786         * plugins/iradio/Makefile.am:
787         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
788         (rb_iradio_source_constructor), (impl_get_status),
789         (info_available_cb), (playing_source_changed_cb):
790         * sources/rb-iradio-source.h:
791         Use the new streaming source base class for iradio and last.fm
792         sources.  Fixes #364094.
794 2006-10-30  James Livingston  <doclivingston@gmail.com>
796         * podcast/rb-podcast-manager.c:
797         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
798         any downloads from it before deleting the post entry. Fixes #366567.
800 2006-10-30  James Livingston  <doclivingston@gmail.com>
802         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
803         move-to-trash, since there have been reports of people accidently
804         deleting tracks and it probably isn't a common enough operation to be
805         worth a shortcut.
807 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
809         * backends/gstreamer/rb-player-gst.c:
810         * configure.ac:
811         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
812         Fix GStreamer 0.8 build (and some typos in configure.ac).
814 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
816         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
818         * sources/rb-source.c: (rb_source_class_init),
819         (rb_source_set_property), (rb_source_get_property):
820         Add a property to RBSource for plugin-created sources to have a
821         pointer to the RBPlugin object that created them.
823         * plugins/audiocd/Makefile.am:
824         * plugins/audiocd/multiple-album.glade:
825         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
826         * sources/Makefile.am:
827         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
828         * sources/rb-audiocd-source.h:
829         If musicbrainz returns multiple albums, present the user with a
830         choice between them.  Fixes #333215.
832         * configure.ac:
833         * plugins/Makefile.am:
834         Remove unused old audio CD stuff, only build audiocd plugin if we have
835         libnautilus-burn.  Fixes #367440.
837 2006-10-30  James Livingston  <doclivingston@gmail.com>
839         patch by: Brian McKenna  <puffnfresh@gmail.com>
841         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
842         handle blocks. Fixes #366696.
844 2006-10-30  James Livingston  <doclivingston@gmail.com>
846         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
848 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
850         * shell/rb-shell-player.c: (rb_shell_player_class_init),
851         (rb_shell_player_sync_with_source),
852         (rb_shell_player_get_playing_time_string), (tick_cb):
853         * widgets/rb-header.c: (rb_header_sync_time),
854         (slider_moved_callback), (rb_header_update_elapsed),
855         (rb_header_elapsed_changed_cb):
856         Revert dbus interface breakage introduced in the fix for #365908.
858 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
860         patch by: Luca Ferretti  <elle.uca@libero.it>
862         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
863         Remove the access keys from the podcast-specific column headers.
864         Fixes #360640 again.
866 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
868         patch by: James Livingston <doclivingston@gmail.com>
870         * sources/rb-browser-source.c: (rb_browser_source_constructor):
871         Only register the search actions once.  From #346801.
873 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
875         * shell/rb-shell-player.c: (rb_shell_player_error):
876         When handling an error, try playing the next stream URL if we have
877         one, rather than stopping playback.  From #358140.
879 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
881         * shell/rb-shell.c: (handle_playlist_entry_cb):
882         Don't crash if we can't guess a source for a URI in the playlist.
883         Fixes #366261.
885 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
887         * shell/rb-shell-player.c: (rb_shell_player_class_init),
888         (rb_shell_player_sync_with_source),
889         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
890         (tick_cb):
891         * widgets/rb-header.c: (rb_header_sync_time),
892         (rb_header_elapsed_changed_cb):
893         Treat elapsed time as signed, since rb_player_get_time returns a
894         signed value.  When actually using the value, mostly treat negative
895         values as 0.  Fixes #365908.
897 2006-10-27  James Livingston  <doclivingston@gmail.com>
899         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
901         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
902         returning 0 for the year/month/day. Fixes #364837.
904 2006-10-27  James Livingston  <doclivingston@gmail.com>
906         patch by: Luca Ferretti  <elle.uca@libero.it>
908         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
909         access keys from the entry view columns headers - they cause
910         keybindings conflicts, headaches for translators and the HIG says
911         they are bad. Fixes #360640.
913 2006-10-27  James Livingston  <doclivingston@gmail.com>
915         patch by: Luca Ferretti  <elle.uca@libero.it>
917         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
918         access keys from the entry view columns headers - they cause
919         keybindings conflicts, headaches for translators and the HIG says
920         they are bad. Fixes #360640.
922 2006-10-27  James Livingston  <doclivingston@gmail.com>
924         * rhythmdb/rhythmdb-private.h:
925         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
926         issues
928 2006-10-27  James Livingston  <doclivingston@gmail.com>
930         * plugins/artdisplay/Makefile.am:
931         * plugins/audioscrobbler/Makefile.am:
932         * plugins/iradio/Makefile.am: fix make clean
934 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
936         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
937         Fall back to strtod() if g_ascii_strtod() doesn't work.
939         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
940         Write floating point values using g_ascii_dtostr() to avoid
941         problems with locale-specific representations.  From #353205.
943 2006-10-25  James Livingston  <doclivingston@gmail.com>
945         * plugins/artdisplay/Makefile.am:
946         * plugins/audioscrobbler/Makefile.am:
947         * plugins/iradio/Makefile.am: fix "make distcheck"
949 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
951         patch by: Brian Cameron <brian.cameron@sun.com>
953         * plugins/audiocd/Makefile.am:
954         Link audiocd plugin with libnautilus-burn as required to get it to work
955         on Solaris.  Fixes #363288.
957 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
959         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
961         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
962         Clarify that we don't submit actual songs to last.fm, just information
963         on what you're listening to.  Fixes #364014.
965 2006-10-24  Bastien Nocera  <hadess@hadess.net>
967         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
968         (bacon_volume_button_class_init), (bacon_volume_button_new),
969         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
970         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
971         (bacon_volume_scale_value_changed): update from libbacon, to get
972         better accessibility support (Closes: #364637)
974 2006-10-24  James Livingston  <doclivingston@gmail.com>
976         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
978         * configure.ac: fix some typos and leftovers from disabled->enabled
979         changes. Fixes #364217
981 2006-10-23  William Jon McCann  <mccann@jhu.edu>
983         * shell/rb-source-header.c (rb_source_header_init):
984         Don't require source header cells to be homogeneous.
985         Patch from #359188
987 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
989         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
990         Pause the pipeline while buffering.  Fixes #358290.
992 2006-10-23  Bastien Nocera  <hadess@hadess.net>
994         * configure.ac: update required libgpod version to avoid crashes
995         when starting up with an iPod connect (Closes: #352972)
996         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
997         (hal_udi_is_ipod): remove outdated ifdefs
999 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1001         * plugins/Makefile.am:
1002         * plugins/power-manager/rb-power-manager-plugin.c:
1003         Don't try to build the power-manager plugin with dbus < 0.35.
1005 2006-10-22  James Livingston  <doclivingston@gmail.com>
1007         patch by: Ed Catmur  <ed@catmur.co.uk>
1009         * plugins/artdisplay/Makefile.am:
1010         * plugins/artdisplay/artdisplay/__init__.py:
1011         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
1012         placeholder art when none is available, to avoid having the widget pop
1013         in and out of existance.
1015 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1017         * plugins/lyrics/lyrics.py:
1018         Set the lyrics window transient for the main window so it can
1019         actually be seen in party mode.  Fixes #362981.
1021 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1023         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
1024         * sources/rb-source.c: (rb_source_class_init),
1025         (rb_source_can_show_properties), (rb_source_song_properties):
1026         * sources/rb-source.h:
1027         Only enable the 'properties' item in the 'music' menu if the selected
1028         source implements the show_properties method.  Fixes #356485.
1030 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1032         * shell/rb-shell-player.c:
1033         (rb_shell_player_property_row_activated_cb):
1034         Take the entry to play from the play order, rather than grabbing the
1035         first entry in the query model.  Fixes #362042.
1037 2006-10-16  James Livingston  <doclivingston@gmail.com>
1039         * shell/main.c: (main): save custom menu accelerators before exiting.
1040         Fixed #362300
1042 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
1044         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
1045         I HATE adding this patch, but I'm sick of hitting Yes once
1046         and hour.  Working around brain-dead podcasts.
1048 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1050         * plugins/lyrics/lyrics.py:
1051         Disconnect the create-song-info handler when deactivated.
1052         Fixes #361882.
1054 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1056         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
1057         Reset the style when clearing the search text.  Fixes #361295.
1059 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1061         * rhythmdb/rhythmdb-query-model.c:
1062         (rhythmdb_query_model_entry_changed_cb):
1063         Don't emit entry-prop-changed for hidden signals from chained query
1064         models, as the model will also propagate the parent model's
1065         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
1067 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1069         * sources/rb-ipod-source.c: (generate_ipod_filename):
1070         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
1071         * lib/rb-cut-and-paste-code.h:
1072         Move eel_make_valid_utf8 to lib/, make the replacement
1073         character a parameter.
1075         * rhythmdb/rhythmdb.c: (make_access_failed_error),
1076         (rhythmdb_execute_multi_stat_info_cb),
1077         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
1078         When constructing an error message that includes a URI, make sure the
1079         URI is valid utf-8.  Fixes #353588.
1081 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1083         * player/rb-recorder-gst.c: (rb_recorder_construct),
1084         (acb_wave_time):
1085         Add an extra audioconvert element to allow endianness conversion on
1086         big-endian machines, and fix a few endianness issues in the .wav
1087         reading code.  Fixes #355611.
1089 2006-10-09  James Livingston  <doclivingston@gmail.com>
1091         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1093         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
1094         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
1095         Fixes #357553.
1097 2006-10-09  James Livingston  <doclivingston@gmail.com>
1099         patch by: Luca Ferretti  <elle.uca@libero.it>
1101         * data/glade/song-info-multiple.glade:
1102         * data/glade/song-info.glade: Fix a few HIG issues.
1104 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1106         * plugins/audioscrobbler/rb-lastfm-source.c:
1107         (rb_lastfm_source_class_init):
1108         Return TRUE from impl_try_playlist so playback starts in a separate
1109         thread.
1111 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1113         * shell/main.c: (main):
1114         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
1115         UTF-8 GStreamer messages.  Fixes #357973.
1117 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * shell/rb-shell.c: (rb_shell_constructor):
1120         Remove a line that accidentally slipped in from some other universe.
1122 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1124         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
1125         Don't remove sources from the hash table while iterating it on
1126         shutdown.  Fixes #359583.
1128 2006-10-07  James Livingston  <doclivingston@gmail.com>
1130         patch from Alex Lancaster  <alexl@users.sourceforge.net>
1132         * shell/rb-shell.c: change the keybinding for "Plugins" to not
1133         conflict with others. Fixes #355904
1135 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1137         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
1138         (rhythmdb_query_model_chain),
1139         (rhythmdb_query_model_entry_changed_cb),
1140         (rhythmdb_query_model_base_entry_prop_changed),
1141         (rhythmdb_query_model_base_entry_removed):
1142         For chained models, propagate the parent model's entry-prop-changed
1143         signal rather than emitting one from the db entry-changed handler.
1144         This ensures that when the change filters the entry out of the parent
1145         model, property models attached to the child model get the entry
1146         change signal before the post-entry-delete signal, so they can
1147         decrement the refcount for the right property value.  Fixes #359083.
1149 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1151         * plugins/audioscrobbler/Makefile.am:
1152         define NULL
1154 2006-10-07  James Livingston  <doclivingston@gmail.com>
1156         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1157         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
1158         * plugins/audioscrobbler/rb-lastfm-source.c:
1159         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
1160         hypens in URI schemes.
1162 2006-10-06  William Jon McCann  <mccann@jhu.edu>
1164         * plugins/iradio/Makefile.am:
1165         * plugins/audioscrobbler/Makefile.am:
1166         * plugins/cd-recorder/Makefile.am:
1167         Don't clean all plugin_DATA.
1168         Fixes #360210
1170 2006-10-06  James Livingston  <doclivingston@gmail.com>
1172         patch from Matt N  <fisxoj@gmail.com>
1174         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
1175         (rb_player_gst_bus_cb):
1176         * backends/rb-player.c: (rb_player_interface_init),
1177         (_rb_player_emit_tick), (_rb_player_emit_event):
1178         * backends/rb-player.h: let the backend emit named "events", for
1179         things that the core shouldn't know about.
1181         * rhythmdb/rhythmdb.h:
1182         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
1183         support for streams containing album metadata.
1185         * plugins/audioscrobbler/Makefile.am:
1186         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1187         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1188         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
1189         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1190         * plugins/audioscrobbler/rb-lastfm-source.c:
1191         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
1192         of last.fm streams. From #313049.
1194 2006-10-06  James Livingston  <doclivingston@gmail.com>
1196         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
1197         committing. Oops.
1199 2006-10-06  James Livingston  <doclivingston@gmail.com>
1201         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
1203         * configure.ac:
1204         * data/rhythmbox.schemas:
1205         * plugins/Makefile.am:
1206         * plugins/magnatune/Makefile.am:
1207         * plugins/magnatune/magnatune-loading.glade:
1208         * plugins/magnatune/magnatune-prefs.glade:
1209         * plugins/magnatune/magnatune-purchase.glade:
1210         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
1211         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
1212         * plugins/magnatune/magnatune/MagnatuneSource.py:
1213         * plugins/magnatune/magnatune/TrackListHandler.py:
1214         * plugins/magnatune/magnatune/__init__.py:
1215         * plugins/magnatune/magnatune_circle_small.png:
1216         * plugins/magnatune/magnatune_logo_color_small.png:
1217         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
1218         play and download tracks from the MagnaTune online music store. From
1219         #345783.
1221 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1223         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1224         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
1225         (check_auto_proxy_config), (get_proxy_config):
1226         Don't crash when eel_gconf_get_string returns NULL.
1227         Fixes #359974.
1229 2006-10-04  James Livingston  <doclivingston@gmail.com>
1231         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
1233         * plugins/audiocd/Makefile.am: fix the plugin when linking with
1234         --as-needed. Fixes #358730
1236 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1238         patch by:  William Jon McCann  <mccann@jhu.edu>
1240         * sources/rb-iradio-source.c: (playing_source_changed_cb):
1241         Fix some stupidity I introduced that caused crashes on shutdown.
1242         Fixes #359181.
1244 2006-10-02  William Jon McCann  <mccann@jhu.edu>
1246         * plugins/audiocd/Makefile.am:
1247         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
1248         * plugins/iradio/.cvsignore:
1249         * plugins/iradio/Makefile.am:
1250         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
1251         (impl_deactivate):
1252         * plugins/power-manager/.cvsignore:
1253         Install missing iradio ui file.  Don't leak ui filename.
1254         Fix iradio install dir. Fix audiocd install dir.
1255         Remove unused code from audio cd plugin.
1257         Fixes #359170
1259 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1261         * sources/rb-ipod-source.c: (impl_move_to_trash):
1262         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
1263         commented out while fixing bug 355235.  Oops.
1265 2006-10-03  James Livingston  <doclivingston@gmail.com>
1267         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
1268         non-unicode warnings to debug statements, since they can occur with
1269         slightly broken files.
1271         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
1272         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
1273         iradio plugin is disabled and re-enabled.
1275 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1277         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
1278         (rhythmdb_entry_podcast_post_get_type):
1279         * rhythmdb/rhythmdb.h:
1280         * tests/bench-rhythmdb-load.c: (main):
1281         Add definitions for some common extra-metadata fields,
1282         remove iradio entry type definition, add the concept of entry type
1283         categories, define categories for the core entry types.
1284         Categories are used to decide if an entry can be copied to a removable
1285         device, if it should be reported to audioscrobbler, etc.
1287         * shell/Makefile.am:
1288         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1289         (rb_shell_player_constructor), (rb_shell_player_init),
1290         (rb_shell_player_get_property), (open_location_thread),
1291         (rb_shell_player_open_location),
1292         (rb_shell_player_sync_with_source),
1293         (rb_shell_player_set_playing_source_internal), (tick_cb):
1294         * shell/rb-shell.c: (construct_widgets), (construct_sources),
1295         (rb_shell_player_elapsed_changed_cb):
1296         Remove iradio-specific code, use extra metadata fields for streaming
1297         title and artist name.
1299         * data/ui/rhythmbox-ui.xml:
1300         Add a placeholder for 'new ...' menu items.
1302         * Makefile.am:
1303         * sources/Makefile.am:
1304         * configure.ac:
1305         * data/rhythmbox.schemas:
1306         * plugins/Makefile.am:
1307         * plugins/iradio/Makefile.am:
1308         * plugins/iradio/iradio-ui.xml:
1309         * plugins/iradio/iradio.rb-plugin.desktop.in:
1310         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1311         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1312         (rb_iradio_plugin_class_init):
1313         iradio plugin, enabled and hidden by default.
1315         * plugins/audioscrobbler/rb-audioscrobbler.c:
1316         (rb_audioscrobbler_song_changed_cb):
1317         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1318         * sources/rb-daap-source.c: (rb_daap_source_new):
1319         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1320         Define entry type categories, and use them where appropriate.
1322         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1323         (rb_iradio_source_constructor), (rb_iradio_source_new),
1324         (impl_get_status), (impl_want_uri), (buffering_cb),
1325         (check_entry_type), (streaming_title_request_cb),
1326         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1327         (info_available_cb), (playing_entry_changed_cb),
1328         (playing_source_changed_cb):
1329         Move streaming metadata and buffering handling here from
1330         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1331         title or artist changes, and handle request and gather signals for
1332         those.
1334         * widgets/rb-header.c: (rb_header_class_init),
1335         (rb_header_set_property), (rb_header_get_property),
1336         (rb_header_new), (append_and_free), (rb_header_sync):
1337         * widgets/rb-header.h:
1338         Rework to use streaming artist and title extra-metadata.
1339         streaming-artist overrides entry artist, and streaming-title means
1340         entry title is a stream name, displayed in brackets.
1342         * doc/reference/Makefile.am:
1343         * doc/reference/rhythmbox.types:
1344         Remove iradio stuff from gtk-doc build.
1346         Fixed #347097.
1348 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1350         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1352         * bindings/python/rhythmdb.defs:
1353         * lib/rb-marshal.list:
1354         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1355         (rhythmdb_emit_entry_deleted),
1356         (rhythmdb_entry_extra_metadata_accumulator),
1357         (rhythmdb_entry_request_extra_metadata),
1358         (rhythmdb_emit_entry_extra_metadata_notify),
1359         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1360         * rhythmdb/rhythmdb.h:
1361         Add signals for dealing with transient metadata outside the set stored
1362         in RhythmDBEntry:
1363         - entry_extra_metadata_request returns a value for the requested
1364           metadata field
1365         - entry_extra_metadata_notify notifies observers of a change to an
1366           extra metadata field
1367         - entry_extra_metadata_gather returns the values of all extra metadata
1368           fields
1370         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1371         (rb_shell_player_extra_metadata_cb):
1372         Sync the display on extra metadata changes and emit dbus signals when
1373         we can marshal the value.
1375         * shell/rb-shell.c: (rb_shell_get_song_properties):
1376         Implement rb_shell_song_get_properties using
1377         rhythmdb_entry_gather_metadata.
1379         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1380         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1381         * configure.ac:
1382         Add GValue marshaller for python (until bug 351072 is fixed)
1384         From #345592.
1386 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1388         * configure.ac:
1389         * data/rhythmbox.schemas:
1390         * plugins/Makefile.am:
1391         * plugins/power-manager/Makefile.am:
1392         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1393         * plugins/power-manager/rb-power-manager-plugin.c:
1394         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1395         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1396         (playing_changed_cb), (impl_activate), (impl_deactivate):
1397         gnome-power-manager integration: inhibit suspend while playing.
1398         Fixes #344979.
1400 2006-10-02  James Livingston  <doclivingston@gmail.com>
1402         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1403         and Alex Lancaster  <alexl@users.sourceforge.net>
1405         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1406         Fixes #353143, #353146 and #353147.
1408 ============ Version 0.9.6
1410 2006-10-01  James Livingston  <doclivingston@gmail.com>
1412         * configure.ac: bump version to 0.9.6. enable tag-writing and
1413         ipod-writing by default
1415         * NEWS: update NEWS
1417 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1419         patch by:  William Jon McCann  <mccann@jhu.edu>
1421         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1422         Use a local GError in case no error pointer pointer is passed in.
1423         From bug #358396.
1425 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1427         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1428         Don't reference members of freed structures.
1430 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1432         patch by:  William Jon McCann  <mccann@jhu.edu>
1434         * player/rb-recorder-gst.c: (rb_recorder_burn):
1435         Drop GDK lock before entering n-c-b.  Fixes #353894?
1437 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1439         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1440         (impl_activate):
1441         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1443 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1445         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1446         Call lirc_init before lirc_readconfig so we don't crash if the user's
1447         .lircrc file has any mode sections. Fixes #357419.
1449 2006-09-24  James Livingston  <doclivingston@gmail.com>
1451         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1452         if we get called twice, as that can happen. Fixes #357214.
1454 2006-09-24  James Livingston  <doclivingston@gmail.com>
1456         * backends/rb-encoder.h: add "file access" error
1458         * lib/rb-file-helpers.c: (rb_dot_dir):
1459         * podcast/rb-podcast-manager.c:
1460         (rb_podcast_manager_download_file_info_cb): remove directory creation
1461         race condition.
1463         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1464         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1465         directory creation. Fixes #347743
1467 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1469         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1470         Strip trailing whitespace
1472 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1474         * rhythmdb/Makefile.am:
1475         * rhythmdb/rhythmdb-private.h:
1476         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1477         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1478         * rhythmdb/rhythmdb-tree.h:
1479         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1480         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1481         * rhythmdb/rhythmdb.h:
1482         Rather than aborting, show an error and refuse to load the database when
1483         it appears to come from the future.  From bug #350304.
1485 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1487         * bindings/python/rhythmdb.override:
1488         Make entry_foreach usable.
1490 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1492         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1493         Scale the icon so it matches the rest of the sources.
1494         Fixes #351410.
1496 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1498         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1499         (rhythmdb_property_model_set_query_model_internal),
1500         (rhythmdb_property_model_row_inserted_cb),
1501         (rhythmdb_property_model_prop_changed_cb),
1502         (rhythmdb_property_model_entry_removed_cb),
1503         (rhythmdb_property_model_delete),
1504         (rhythmdb_property_model_perform_sync):
1505         Use the hash table to track hidden entries, rather than visible
1506         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1508 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1510         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1511         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1513 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1515         * sources/rb-ipod-source.c: (add_rb_playlist),
1516         (impl_move_to_trash), (impl_delete_thyself):
1517         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1519         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1520         Make sure we don't leave the sourcelist thinking a deleted source is
1521         still playing.  Fixes nothing.
1523 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1525         * shell/rb-shell.c:
1526         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1527         'Music->Import Folder' menu item for better icon theme coverage.
1528         Fixes #354575.
1530 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1532         * rhythmdb/rhythmdb-private.h:
1533         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1534         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1535         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1536         (rhythmdb_load), (rhythmdb_save_async):
1537         Use a limited thread pool for adding URIs to the database.
1538         Fixes #352494.
1540 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1542         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1543         Do something like the previous change, but for gstreamer 0.10
1544         this time.  Oops.  Really fixes #349569.
1546 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1548         * backends/gstreamer/rb-player-gst.c: (error_cb):
1549         Ignore 'internal data flow error' messages if we've already got an
1550         error for the file.  Fixes #349569.
1552 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1554         * shell/rb-shell-clipboard.c:
1555         (rb_shell_clipboard_playlist_deleted_cb):
1556         Rebuild 'add to playlist' menu before removing actions for deleted
1557         playlists, and don't unref the action, as we never had a reference on
1558         it to begin with.  Fixes #354599.
1560 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1562         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1563         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1564         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1566 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1568         * daapsharing/rb-daap-connection.c: (handle_playlists):
1569         Reverse the list of playlists on the DAAP server so it ends up in the
1570         right order.  Fixes #353926.
1572 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1574         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1575         Fully process each code so the LIRC client returns to its normal state
1576         when we're done.  Makes LIRC actually work properly for me.
1578 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1580         patch by: Ed Catmur  <ed@catmur.co.uk>
1582         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1583         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1584         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1586 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1588         patch by: James Livingston <doclivingston@gmail.com>
1590         * configure.ac:
1591         * data/rhythmbox.schemas:
1592         * metadata/Makefile.am:
1593         * plugins/Makefile.am:
1594         * plugins/audiocd/.cvsignore:
1595         * plugins/audiocd/Makefile.am:
1596         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1597         * plugins/audiocd/rb-audiocd-plugin.c:
1598         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1599         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1600         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1601         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1602         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1603         (rb_audiocd_plugin_playing_uri_changed_cb),
1604         (nautilus_burn_drive_get_device),
1605         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1606         (impl_activate), (_delete_cb), (impl_deactivate):
1607         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1608         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1609         * shell/main.c: (main):
1610         * shell/rb-removable-media-manager.c:
1611         (rb_removable_media_manager_finalize),
1612         (rb_removable_media_manager_load_media),
1613         (rb_removable_media_manager_mount_volume),
1614         (rb_removable_media_manager_scan):
1615         * sources/Makefile.am:
1616         * sources/rb-audiocd-source.c:
1617         * sources/rb-audiocd-source.h:
1618         Make auto CD support a plugin.
1620         Fixes #349415.
1622 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1624         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1625         Add a final rhythmdb_commit to make sure all songs from the share show
1626         up in the daap source.  Fixes #353913.
1628 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1630         * sources/rb-sourcelist-model.c:
1631         (rb_sourcelist_model_drag_data_received),
1632         (rb_sourcelist_model_row_drop_possible):
1633         Re-enable dragging of a set of tracks to the source list to create a
1634         new static playlist.  Fixes #353893.
1636 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1638         * widgets/bacon-volume.c: (cb_button_timeout):
1639         Actually drop the GDK lock, rather than returning while holding it.
1640         Fixes #353895.
1642 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1644         * plugins/generic-player/rb-generic-player-source.c:
1645         (rb_generic_player_source_constructor),
1646         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1647         (rb_generic_player_source_load_songs), (load_playlist_file),
1648         (default_load_playlists), (get_hal_context):
1649         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1650         Fixes #353483.
1652 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1654         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1655         Canonicalise URIs received from gnome-vfs file monitor.
1656         Fixes #353447.
1658 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1660         * help/C/rhythmbox.xml: unbreak help build
1661         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1662         Unbuffer the IO channel.  Fixes some weirdness for me.
1664 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1666         * help/C/rhythmbox.xml:
1667         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1668         (impl_activate), (impl_deactivate):
1669         Add 'playpause' LIRC command.
1671 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1673         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1674         (rb_source_finalize):
1675         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1676         when disconnecting generic audio players.
1678 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1680         patch by: Paolo Borelli  <pborelli@katamail.com>
1682         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1683         Fix a small leak.
1685 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1687         * backends/gstreamer/rb-player-gst.c:
1688         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1689         Don't actually disable the seek bar for non-seekable songs,
1690         because we can't reliably tell yet.
1692 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1694         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1695         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1696         (db_entry_deleted_cb), (rb_daap_share_server_start),
1697         (rb_daap_share_server_stop):
1698         * rhythmdb/rhythmdb-private.h:
1699         * rhythmdb/rhythmdb-tree.c: (save_entry):
1700         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1701         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1702         (rhythmdb_entry_get_ulong):
1703         * rhythmdb/rhythmdb.h:
1704         Give db entries a numeric ID property, replacing the daap server's
1705         entry->id map.  From #347665.
1707 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1709         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1710         * widgets/rb-header.c: (rb_header_class_init),
1711         (rb_header_set_property), (rb_header_get_property),
1712         (rb_header_set_playing_entry), (rb_header_sync),
1713         (rb_header_sync_time):
1714         * widgets/rb-header.h:
1715         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1716         insensitive when the player backend tells us we can't seek in the
1717         current song.  From #330410.
1719 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1721         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1722         Don't try to unref previous/next entries if they aren't there.
1723         Fixes #351806.
1725 2006-08-15  James Livingston  <doclivingston@gmail.com>
1727         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1728         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1729         mountpoint into a RBRefString and compare equality of those, rather
1730         than doign lots of strcmp()s.
1732         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1733         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1734         status notification as well as the visibility update in an idle
1735         callback. Makes it take much less time to update after a volume
1736         mount/unmount event.
1738 2006-08-15  James Livingston  <doclivingston@gmail.com>
1740         patch by: Christian Becke  <christianbecke@web.de>
1742         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1743         multiple selections in the Import Folder dialog. Fixes #351414.
1745 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1747         * shell/rb-shell.c: (construct_widgets):
1748         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1749         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1750         (rb_statusbar_get_property), (rb_statusbar_new):
1751         * shell/rb-statusbar.h:
1752         Use the connect-proxy signal from the UI manager, which covers all
1753         action groups, rather than just one.  Fixes #351280.
1755 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1757         * widgets/rb-library-browser.c: (rebuild_child_model):
1758         Fix query model reference counts (bug #349601).
1760 2006-08-15  James Livingston  <doclivingston@gmail.com>
1762         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1763         Error signals be non-recursive. Fixes a highly-unlikely issue that
1764         could have caused #322972.
1766 2006-08-14  James Livingston  <doclivingston@gmail.com>
1768         * sources/rb-auto-playlist-source.c:
1769         (rb_auto_playlist_source_init):
1770         * sources/rb-static-playlist-source.c:
1771         (rb_static_playlist_source_init):
1773 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1775         * sources/rb-browser-source.c:
1776         * sources/rb-import-errors-source.c:
1777         * sources/rb-iradio-source.c:
1778         * sources/rb-library-source.c:
1779         * sources/rb-missing-files-source.c:
1780         * sources/rb-play-queue-source.c:
1781         * sources/rb-playlist-source.c:
1782         * sources/rb-podcast-source.c:
1783         * sources/rb-source.c:
1784         Make entry-type a property on RBSource, rather than on most of its
1785         subclasses.  Fixes #347288.
1787 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1789         * remote/dbus/rb-client.c: (parse_pattern),
1790         (create_rb_shell_proxies), (main):
1791         Actually implement %ag and %aG (genre) for --print-playing-format
1793 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1795         * lib/rb-debug.c: (rb_debug_real):
1796         No point allocating a buffer for the timestamp when we can just put it
1797         on the stack.
1799 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1801         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1802         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1804 2006-08-11  James Livingston  <doclivingston@gmail.com>
1806         * podcast/rb-podcast-manager.c:
1807         (rb_podcast_manager_update_synctime): fix accidental commit in the
1808         last, which caused a warning.
1810 2006-08-11  James Livingston  <doclivingston@gmail.com>
1812         * data/rhythmbox.schemas:
1813         * podcast/rb-podcast-manager.c:
1814         (rb_podcast_manager_update_synctime): change the schema's
1815         update-inteval value from 0 to 1, which causes it to update on
1816         startup, rather than never. Should fixs #343818.
1818 2006-08-11  James Livingston  <doclivingston@gmail.com>
1820         * configure.ac:
1821         * data/Makefile.am:
1822         - data/rhythmbox.desktop.in:
1823         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1824         the @VERSION@ can be substituted in. Fix some issues with newer
1825         bug-buddy versions. Fixes #348853.
1827 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1829         * data/rhythmbox.schemas:
1830         * plugins/Makefile.am:
1831         * plugins/artdisplay/Makefile.am:
1832         * plugins/audioscrobbler/Makefile.am:
1833         * plugins/cd-recorder/Makefile.am:
1834         * plugins/generic-player/Makefile.am:
1835         * plugins/ipod/Makefile.am:
1836         * plugins/lirc/Makefile.am:
1837         * plugins/lyrics/Makefile.am:
1838         * plugins/pythonconsole/Makefile.am:
1839         * plugins/rb-module.c:
1840         * plugins/rb-module.h:
1841         * plugins/rb-plugin-manager.c: (configure_button_cb),
1842         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1843         (plugin_manager_populate_lists), (plugin_manager_set_active),
1844         (plugin_manager_toggle_active),
1845         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1846         (rb_plugin_manager_finalize):
1847         * plugins/rb-plugin-manager.h:
1848         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1849         (rb_plugin_find_file):
1850         * plugins/rb-plugin.h:
1851         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1852         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1853         (rb_plugins_engine_init), (rb_plugin_info_free),
1854         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1855         (rb_plugins_engine_deactivate_plugin),
1856         (rb_plugins_engine_plugin_is_active),
1857         (rb_plugins_engine_plugin_is_visible),
1858         (rb_plugins_engine_plugin_is_configurable),
1859         (rb_plugins_engine_configure_plugin),
1860         (rb_plugins_engine_get_plugin_name),
1861         (rb_plugins_engine_get_plugin_description),
1862         (rb_plugins_engine_get_plugin_authors),
1863         (rb_plugins_engine_get_plugin_website),
1864         (rb_plugins_engine_get_plugin_copyright),
1865         (rb_plugins_engine_get_plugin_icon):
1866         * plugins/rb-plugins-engine.h:
1867         * plugins/rb-python-module.c: (rb_python_module_init_python),
1868         (rb_python_module_load), (rb_python_module_unload),
1869         (rb_python_module_class_init), (rb_python_module_new),
1870         (finalise_collect_cb), (rb_python_shutdown):
1871         * plugins/rb-python-module.h:
1872         * plugins/rb-python-plugin.c: (call_python_method),
1873         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1874         (impl_is_configurable), (rb_python_object_get_type):
1875         * plugins/rb-python-plugin.h:
1876         * plugins/rb/Makefile.am:
1878         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1879         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1880         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1881         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1882         special case loading of dirs.  Install plugins to subdirectors of
1883         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1884         not DATADIR.  Fixes #350352
1886 2006-08-10  James Livingston  <doclivingston@gmail.com>
1888         * daapsharing/rb-daap-connection.c: (connection_connected),
1889         (connection_disconnected), (connection_operation_done):
1890         * daapsharing/rb-daap-share.c: (name_collision_cb):
1891         * plugins/generic-player/rb-generic-player-source.c:
1892         (rb_generic_player_source_load_playlists):
1893         * podcast/rb-podcast-manager.c:
1894         (rb_podcast_manager_download_entry),
1895         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1896         (end_job), (rb_podcast_manager_event_loop):
1897         * rhythmdb/rhythmdb-property-model.c:
1898         (rhythmdb_property_model_perform_sync):
1899         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1900         (rhythmdb_query_model_process_update), (idle_process_update),
1901         (rhythmdb_query_model_reapply_query_cb):
1902         * shell/rb-play-order.c: (sync_playing_entry_cb):
1903         * shell/rb-removable-media-manager.c:
1904         (rb_removable_media_manager_load_media):
1905         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1906         (rb_shell_clipboard_sync),
1907         (rb_shell_clipboard_entryview_changed_cb),
1908         (rb_shell_clipboard_entries_changed_cb),
1909         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1910         (rebuild_playlist_menu_idle),
1911         (rb_shell_clipboard_playlist_added_cb):
1912         * shell/rb-shell-player.c: (notify_playing_idle),
1913         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1914         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1915         (rb_shell_quit):
1916         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1917         * sources/rb-library-source.c: (add_child_sources_idle):
1918         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1919         (burn_cd_idle):
1920         * sources/rb-source.c: (update_visibility_idle):
1921         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1922         (cb_button_press):
1923         * widgets/rb-druid.c: (idle_set_sensitive):
1924         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1925         take the GDK lock when we should be, from #348588
1927 2006-08-09  James Livingston  <doclivingston@gmail.com>
1929         * rhythmdb/rhythmdb-property-model.c:
1930         (rhythmdb_property_model_get_path),
1931         (rhythmdb_property_model_get_value),
1932         (rhythmdb_property_model_iter_next): don't attempt to verify the
1933         iterator if it's the All value, since it isn't valid. Fixes a
1934         potential crasher.
1936 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1938         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1939         (rb_podcast_manager_download_file_info_cb),
1940         (rb_podcast_manager_abort_download), (download_info_free),
1941         (download_info_new):
1942         Use gnome_vfs_async_get_file_info to figure out the local filename for
1943         a podcast episode, so we get the filename from the target of any
1944         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1945         the query string, then append it later, to stop gnome-vfs from
1946         converting 'http://' to 'http:/'.  If the local filename ends with the
1947         query string, remove it.  Fixes #330766 and #321991.
1949 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1951         * sources/rb-library-source.c: (impl_want_uri):
1952         * sources/rb-static-playlist-source.c: (impl_want_uri):
1953         Treat sftp:// URIs as likely indicators of songness.
1955 2006-08-07  James Livingston  <doclivingston@gmail.com>
1957         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1958         remote tracks with GStreamer 0.10, and remember their visibility like
1959         local ones.
1961 2006-08-07  James Livingston  <doclivingston@gmail.com>
1963         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1964         apparently it's a borrowed reference. Should fix #347072.
1966 2006-08-06  James Livingston  <doclivingston@gmail.com>
1968         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1969         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1970         (rb_shuffle_play_order_get_previous),
1971         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1972         (remove_from_history), (add_randomly_to_history),
1973         (rb_shuffle_sync_history_with_query_model),
1974         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1975         (query_model_and_history_contents_match): remove the tentatative
1976         history stuff, which is from older code, like we did for -random a few
1977         weeks ago.
1979 2006-08-06  James Livingston  <doclivingston@gmail.com>
1981         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1982         (rb_queue_play_order_get_previous):
1983         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1984         (rb_random_play_order_go_next),
1985         (rb_random_play_order_get_previous), (rb_random_db_changed):
1986         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1987         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1988         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1989         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1990         (rb_shuffle_entry_removed),
1991         (query_model_and_history_contents_match):
1992         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1993         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1994         (default_has_next), (default_has_previous),
1995         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1996         various play orders, after reviewing the code. Should fix #349601.
1998 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2000         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
2001         Pass the items_per_notification parameter to
2002         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
2003         with some versions of python.
2005 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2007         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
2008         Don't try to draw the icon if the drawable area is too small.
2009         Fixes #349838.
2011 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
2013         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
2015         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
2017 2006-08-05  James Livingston  <doclivingston@gmail.com>
2019         * configure.ac: tell libtool not to check for C++/fortran/ etc
2020         compilers
2022         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
2023         watch, to fix some gconf warnings.
2025 2006-08-04  James Livingston  <doclivingston@gmail.com>
2027         patch by: William Jon McCann  <mccann@jhu.edu>
2029         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
2031 2006-08-04  James Livingston  <doclivingston@gmail.com>
2033         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
2034         actually fix #349722 this time
2036 2006-08-04  James Livingston  <doclivingston@gmail.com>
2038         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
2039         to seach for local art from http:// URIs, or those gnome-vfs doesn't
2040         know about. Fixes #348571.
2042 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
2044         various fixes for valgrind complaints:
2045         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
2046         (init_rb_tree_dnd_data):
2047           free the associated target list, too
2048         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
2049           initialize allocation.{x,y,width,height} correctly
2050         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
2051         (rb_entry_view_constructor):
2052           free strings when no longer needed
2054 2006-08-03  James Livingston  <doclivingston@gmail.com>
2056         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
2057         real GtkTreeModel not the filter. Fixes #349722
2059 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2061         * backends/gstreamer/rb-player-gst.c:
2062         Only use DAAP seek hacks for GStreamer 0.8 builds.
2064         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
2065         (rb_daap_src_open):
2066         * daapsharing/rb-daap-src.h:
2067         Implement normal GStreamer seeking for GStreamer 0.10 builds.
2069         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2070         (rb_daap_source_get_headers):
2071         * sources/rb-daap-source.h:
2072         Reimplement rb_daap_source_get_headers for the case where we've
2073         already got the byte offset.  Add a small hack to
2074         rb_daap_source_class_init to prevent the linker from dropping
2075         rb-daap-src.o entirely.
2077         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
2079 2006-08-02  James Livingston  <doclivingston@gmail.com>
2081         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
2082         (handle_song_listing), (handle_playlist_entries),
2083         (rb_daap_connection_dispose):
2084         * sources/rb-daap-source.c: (_add_location_to_playlist),
2085         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
2086         for playlist URIs, not pointless duplicate strings. From #347425.
2088 2006-08-02  James Livingston  <doclivingston@gmail.com>
2090         * data/rhythmbox.schemas:
2091         * lib/rb-preferences.h:
2092         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
2093         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
2094         (plugin_manager_set_active), (plugin_manager_toggle_active),
2095         (plugin_manager_get_selected_plugin), (name_search_cb),
2096         (plugin_manager_construct_tree), (rb_plugin_manager_new),
2097         (rb_plugin_manager_finalize):
2098         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
2099         (rb_plugins_engine_load_all), (rb_plugin_info_free),
2100         (rb_plugins_engine_plugin_is_visible),
2101         (rb_plugins_engine_plugin_visible_cb):
2102         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
2103         per-user plugins, and 2) hide plugins from the manager UI. From #349395
2105 2006-08-02  James Livingston  <doclivingston@gmail.com>
2107         * sources/rb-sourcelist-model.c:
2108         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
2109         drop on a source. Fixes #349580.
2111 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2113         * configure.ac:
2114         * daapsharing/rb-daap-dialog.c:
2115         * daapsharing/rb-daap-dialog.h:
2116         * shell/Makefile.am:
2117         * sources/Makefile.am:
2118         * sources/rb-daap-source.c: (connection_auth_cb),
2119         (rb_daap_source_connection_cb), (rb_daap_source_activate):
2120         Add gnome-keyring support for DAAP passwords and use
2121         gnome-password-dialog instead of our own.  
2122         Patch mostly by James Livingston.  Fixes bug #330346.
2124 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2126         * shell/rb-shell-player.c:
2127         (rb_shell_player_set_playing_source_internal),
2128         (rb_shell_player_sync_with_selected_source):
2129         Remove call to rb_source_have_url, as we never did anything with the
2130         result.
2132         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2133         * sources/rb-import-errors-source.c:
2134         (rb_import_errors_source_class_init):
2135         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2136         (impl_song_properties), (impl_want_uri), (impl_add_uri):
2137         * sources/rb-library-source.c: (rb_library_source_class_init),
2138         (impl_want_uri), (impl_add_uri):
2139         * sources/rb-missing-files-source.c:
2140         (rb_missing_files_source_class_init):
2141         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2142         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2143         (impl_want_uri), (impl_add_uri):
2144         * sources/rb-source.c: (rb_source_class_init),
2145         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
2146         * sources/rb-source.h:
2147         * sources/rb-static-playlist-source.c:
2148         (rb_static_playlist_source_class_init), (search_action_changed),
2149         (impl_want_uri):
2150         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
2151         When adding a URI, want_uri gets called for each source; the one that
2152         wants it most gets the URI passed to its add_uri method.
2153         
2154         * shell/rb-shell.h:
2155         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
2156         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
2157         (handle_playlist_entry_cb), (rb_shell_load_uri):
2158         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2159         Use want_uri and add_uri to simplify and make generic
2160         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
2162         If a source that returns TRUE from try_playlist wants all the URIs in
2163         the playlist, give it the playlist URI instead.  This retains the
2164         existing behaviour for adding iradio playlists.
2166         * bindings/python/rb.defs: Update for above changes.
2168         From bug #347097.
2170 2006-07-31  James Livingston  <doclivingston@gmail.com>
2172         * data/Makefile.am:
2173         * data/generate-keys.sh: fix the build I broke with the last commit.
2174         Oops.
2176 2006-07-31  James Livingston  <doclivingston@gmail.com>
2178         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
2179         in a long time. Fixes #349179.
2181 2006-07-30  James Livingston  <doclivingston@gmail.com>
2183         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
2184         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2185         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
2187 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2189         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2190         Don't tell the browser the query is still pending when doing a subset
2191         search.  Fixes #348617 again.
2193 2006-07-30  James Livingston  <doclivingston@gmail.com>
2195         * bindings/python/rb.override: remove an extraneous _wrap_ from the
2196         override definition. Fixes #348893.
2198 2006-07-30  James Livingston  <doclivingston@gmail.com>
2200         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
2201         rb_error_dialog, as it's above this in the stack.
2203         * lib/rb-util.c: (rb_gvalue_compare):
2204         * lib/rb-util.h: change the return type to int, as we're returning
2205         -1/0/1
2207         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
2208         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2209         (rb_query_creator_set_sorting): minor leak fixes
2211 2006-07-28  James Livingston  <doclivingston@gmail.com>
2213         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2214         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
2215         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
2216         (get_or_create_genre), (remove_entry_from_album),
2217         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2218         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
2219         (rhythmdb_tree_entry_lookup_by_location),
2220         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2221         (rhythmdb_hash_tree_foreach),
2222         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
2223         threadsafe. Fix a nasty problem if the _foreach callback function
2224         caused the addition/removal of entries.
2226 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2228         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
2229         Clear selection before changing our idea of the model.  Fixes crashes
2230         on model changes while playing.
2232 2006-07-27  James Livingston  <doclivingston@gmail.com>
2234         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
2235         a missing rb_refstring_unref.
2237         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2238         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
2239         oops. should hopefully fix the crash reported on #347425.
2241 2006-07-27  James Livingston  <doclivingston@gmail.com>
2243         * backends/gstreamer/rb-encoder-gst.c:
2244         (get_profile_from_mime_type): fix encoding error issue, from #310774.
2246         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
2247         thread-safety issue.
2249 2006-07-27  James Livingston  <doclivingston@gmail.com>
2251         * rhythmdb/rb-refstring.c: (rb_refstring_find):
2252         * rhythmdb/rb-refstring.h: add a new function which returns the
2253         RBRefString that matches a string, but never creates a new one.
2255         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2256         (monitor_entry_file), (rhythmdb_check_changed_file),
2257         (rhythmdb_directory_change_cb):
2258         * rhythmdb/rhythmdb-private.h:
2259         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2260         (unparent_entries), (free_unknown_entries),
2261         (rhythmdb_tree_parser_start_element),
2262         (rhythmdb_tree_parser_end_element), (save_entry),
2263         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
2264         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2265         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
2266         (rhythmdb_tree_entry_type_registered):
2267         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
2268         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
2269         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
2270         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2271         (rhythmdb_process_metadata_load),
2272         (rhythmdb_process_file_created_or_modified),
2273         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
2274         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2275         (action_thread_main), (rhythmdb_entry_set_internal),
2276         (rhythmdb_entry_move_to_trash_set_error),
2277         (rhythmdb_entry_move_to_trash),
2278         (rhythmdb_entry_lookup_by_location),
2279         (rhythmdb_entry_lookup_by_location_refstring),
2280         (default_sync_metadata), (rhythmdb_entry_get_string),
2281         (rhythmdb_entry_get_refstring):
2282         * rhythmdb/rhythmdb.h:
2283         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
2284         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2285         (rb_playlist_source_row_deleted),
2286         (rb_playlist_source_entry_added_cb),
2287         (rb_playlist_source_location_in_map),
2288         (rb_playlist_source_add_to_map): Make the LOCATION field of
2289         RhythmDBEntry be a RBRefString instead, which reduces some of the
2290         memory-fragmentation on startup and saves RBStaticPlaylistSource
2291         duplicating all the strings.
2293 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2295         * rhythmdb/rhythmdb-query-model.c:
2296         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
2297         * rhythmdb/rhythmdb-query-model.h:
2298         Add function to copy contents from one query model to another,
2299         filtered by the destination model's query.
2301         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2302         Use the above to create a new query model for subset searches, rather
2303         than filtering the existing model. Fixes #348617.
2305 2006-07-25  James Livingston  <doclivingston@gmail.com>
2307         * rhythmdb/rhythmdb-query-model.c:
2308         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2309         lost from static playlists. Yet again. Fixes #323095.
2311         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2312         case for the above, so that we should know if a change will break it
2313         again.
2315 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2317         * data/rhythmbox.schemas: Fix for last commit.
2319         * podcast/rb-podcast-manager.c:
2320         (rb_podcast_manager_download_entry),
2321         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2322         (rb_podcast_manager_db_entry_deleted_cb):
2323         * rhythmdb/rhythmdb-property-model.c:
2324         (rhythmdb_property_model_set_query_model_internal),
2325         (rhythmdb_property_model_set_property),
2326         (rhythmdb_property_model_finalize),
2327         (rhythmdb_property_model_drag_data_get):
2328         * rhythmdb/rhythmdb-query-model.c:
2329         (rhythmdb_query_model_set_query_internal),
2330         (rhythmdb_query_model_set_property),
2331         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2332         * rhythmdb/rhythmdb-query-model.h:
2333         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2334         (rb_browser_source_do_query):
2335         * sources/rb-import-errors-source.c:
2336         (rb_import_errors_source_constructor):
2337         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2338         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2339         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2340         (impl_search), (impl_get_status),
2341         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2342         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2343         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2344         * sources/rb-missing-files-source.c:
2345         (rb_missing_files_source_constructor),
2346         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2347         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2348         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2349         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2350         (rb_playlist_source_save_playlist),
2351         (rb_playlist_source_new_from_xml),
2352         (rb_playlist_source_save_to_xml),
2353         (rb_playlist_source_setup_entry_view),
2354         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2355         (rb_playlist_source_get_query_model),
2356         (rb_playlist_source_mark_dirty),
2357         (rb_playlist_source_location_in_map),
2358         (rb_playlist_source_add_to_map):
2359         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2360         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2361         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2362         (impl_delete), (rb_podcast_source_state_prefs_sync),
2363         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2364         (impl_get_config_widget), (rb_podcast_source_add_feed),
2365         (rb_podcast_source_cmd_download_post),
2366         (rb_podcast_source_cmd_cancel_download),
2367         (rb_podcast_source_cmd_delete_feed),
2368         (rb_podcast_source_cmd_update_feed),
2369         (rb_podcast_source_cmd_update_all),
2370         (rb_podcast_source_cb_interval_changed_cb),
2371         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2372         (rb_podcast_source_entry_activated_cb):
2373         * sources/rb-source.c: (rb_source_finalize),
2374         (rb_source_set_query_model_internal), (rb_source_set_property),
2375         (default_get_status):
2376         * sources/rb-static-playlist-source.c:
2377         (rb_static_playlist_source_dispose),
2378         (rb_static_playlist_source_finalize),
2379         (rb_static_playlist_source_constructor),
2380         (rb_static_playlist_source_do_query):
2381         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2382         (rb_entry_view_set_shell_player_internal),
2383         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2384         (rb_entry_view_set_model), (rb_entry_view_append_column),
2385         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2386         (rb_entry_view_set_state):
2387         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2388         (rb_library_browser_finalize), (rb_library_browser_new),
2389         (update_browser_property_visibilty), (view_selection_reset_cb),
2390         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2391         (restore_selection), (rebuild_child_model),
2392         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2393         * widgets/rb-property-view.c:
2394         (rb_property_view_set_model_internal),
2395         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2396         (rb_property_view_get_model), (rb_property_view_set_model),
2397         (rb_property_view_get_num_properties),
2398         (rb_property_view_set_selection),
2399         (rb_property_view_append_column_custom),
2400         (rb_property_view_set_search_func):
2401         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2402         From #347446
2404 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2406         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2407         Work around a small n-c-b API change.
2409 2006-07-25  James Livingston  <doclivingston@gmail.com>
2411         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2413         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2414         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2415         aborting entry-emission on finalise
2417 2006-07-25  James Livingston  <doclivingston@gmail.com>
2419         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2420         warning when entry is NULL.
2422 2006-07-25  James Livingston  <doclivingston@gmail.com>
2424         * help/sv/.cvsignore:
2425         * lib/.cvsignore:
2426         * plugins/generic-player/.cvsignore:
2427         * remote/.cvsignore:
2428         * remote/dbus/.cvsignore:
2429         * shell/.cvsignore:
2430         * tests/.cvsignore: more .cvsignore updates
2432 2006-07-24  James Livingston  <doclivingston@gmail.com>
2434         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2435         (transparent_expose_event), (make_transparent_again),
2436         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2437         apply a patch for EggTrayIcon so that it handled transparent panels
2438         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2439         Fixes #348208.
2441 2006-07-24  James Livingston  <doclivingston@gmail.com>
2443         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2444         queries rather than taking ownership when parsing a subquery. Fixed a
2445         crash exposed by the recent leak fixes.
2447         * doc/reference/tmpl/disclosure-widget.sgml:
2448         * doc/reference/tmpl/rb-debug.sgml:
2449         * doc/reference/tmpl/rb-metadata.sgml:
2450         * doc/reference/tmpl/rb-play-order.sgml:
2451         * doc/reference/tmpl/rb-playlist-manager.sgml:
2452         * doc/reference/tmpl/rb-playlist-source.sgml:
2453         * doc/reference/tmpl/rb-shell-player.sgml:
2454         * doc/reference/tmpl/rb-shell.sgml:
2455         * doc/reference/tmpl/rb-song-display-box.sgml:
2456         * doc/reference/tmpl/rhythmbox-unused.sgml:
2457         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2459 2006-07-24  James Livingston  <doclivingston@gmail.com>
2461         * lib/.cvsignore:
2462         * plugins/artdisplay/.cvsignore:
2463         * plugins/artdisplay/artdisplay/.cvsignore:
2464         * plugins/lyrics/.cvsignore:
2465         * plugins/pythonconsole/.cvsignore:
2466         * plugins/rb/.cvsignore: add/update various .cvsignore files
2468 2006-07-24  James Livingston  <doclivingston@gmail.com>
2470         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2471         (rb_refstring_ref): don't emit critical warnings when the refstring
2472         is NULL, as that happens often for podcast metadata.
2474         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2475         missing rhythmdb_entry_ref call
2477 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2479         * bindings/python/rb.override:
2480         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2481         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2482         (playlist_row_inserted_cb):
2483         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2484         * plugins/rb-plugin-manager.c:
2485         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2486         (rb_podcast_manager_copy_post),
2487         (rb_podcast_manager_db_entry_deleted_cb),
2488         (rb_podcast_manager_insert_feed):
2489         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2490         (rb_refstring_ref), (rb_refstring_get_sort_key):
2491         * rhythmdb/rhythmdb-private.h:
2492         * rhythmdb/rhythmdb-property-model.c:
2493         (rhythmdb_property_model_set_property),
2494         (rhythmdb_property_model_get_property),
2495         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2496         (rhythmdb_property_model_row_inserted_cb),
2497         (rhythmdb_property_model_prop_changed_cb),
2498         (rhythmdb_property_model_compare),
2499         (rhythmdb_property_model_insert),
2500         (rhythmdb_property_model_iter_from_string),
2501         (rhythmdb_property_model_get_column_type),
2502         (rhythmdb_property_model_get_iter),
2503         (rhythmdb_property_model_get_value),
2504         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2505         (rhythmdb_property_model_enable_drag):
2506         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2507         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2508         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2509         (rhythmdb_query_model_chain),
2510         (rhythmdb_query_model_entry_added_cb),
2511         (rhythmdb_query_model_entry_changed_cb),
2512         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2513         (rhythmdb_query_model_add_entry),
2514         (rhythmdb_query_model_insert_into_main_list),
2515         (rhythmdb_query_model_insert_into_limited_list),
2516         (rhythmdb_query_model_remove_from_main_list),
2517         (rhythmdb_query_model_remove_from_limited_list),
2518         (rhythmdb_query_model_update_limited_entries),
2519         (rhythmdb_query_model_emit_reorder),
2520         (rhythmdb_query_model_do_reorder),
2521         (rhythmdb_query_model_do_insert),
2522         (rhythmdb_query_model_move_entry),
2523         (rhythmdb_query_model_remove_entry),
2524         (rhythmdb_query_model_entry_to_iter),
2525         (rhythmdb_query_model_iter_to_entry),
2526         (rhythmdb_query_model_get_previous_from_entry),
2527         (rhythmdb_query_model_row_draggable),
2528         (rhythmdb_query_model_drag_data_delete),
2529         (rhythmdb_query_model_drag_data_get),
2530         (rhythmdb_query_model_drag_data_received),
2531         (rhythmdb_query_model_row_drop_possible),
2532         (rhythmdb_query_model_row_drop_position),
2533         (rhythmdb_query_model_add_results),
2534         (rhythmdb_query_model_query_complete),
2535         (rhythmdb_query_model_get_column_type),
2536         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2537         (rhythmdb_query_model_iter_nth_child),
2538         (apply_updated_entry_sequence),
2539         (rhythmdb_query_model_child_index_to_base_index),
2540         (rhythmdb_query_model_get_entry_index),
2541         (rhythmdb_query_model_base_row_inserted),
2542         (rhythmdb_query_model_base_row_deleted),
2543         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2544         (rhythmdb_query_model_location_sort_func),
2545         (rhythmdb_query_model_title_sort_func),
2546         (rhythmdb_query_model_album_sort_func),
2547         (rhythmdb_query_model_artist_sort_func),
2548         (rhythmdb_query_model_track_sort_func),
2549         (rhythmdb_query_model_double_ceiling_sort_func),
2550         (rhythmdb_query_model_ulong_sort_func),
2551         (rhythmdb_query_model_date_sort_func),
2552         (rhythmdb_query_model_string_sort_func),
2553         (rhythmdb_query_model_within_limit):
2554         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2555         (rhythmdb_tree_parser_start_element),
2556         (rhythmdb_tree_parser_end_element),
2557         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2558         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2559         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2560         (save_entry_uint64), (save_entry_double), (save_entry),
2561         (set_entry_album), (rhythmdb_tree_entry_new),
2562         (get_genres_hash_for_type), (get_or_create_genre),
2563         (get_or_create_artist), (get_or_create_album), (remove_child),
2564         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2565         (rhythmdb_tree_entry_delete), (remove_one_song),
2566         (rhythmdb_tree_entry_delete_by_type),
2567         (rhythmdb_tree_evaluate_query), (search_match_properties),
2568         (evaluate_conjunctive_subquery), (do_conjunction),
2569         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2570         (conjunctive_query_albums), (conjunctive_query_artists),
2571         (conjunctive_query_genre), (conjunctive_query),
2572         (split_query_by_disjunctions), (do_query_recurse),
2573         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2574         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2575         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2576         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2577         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2578         (extract_gtype_from_enum_entry),
2579         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2580         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2581         (rhythmdb_event_free), (rhythmdb_finalize),
2582         (rhythmdb_set_property), (rhythmdb_get_property),
2583         (rhythmdb_thread_create), (free_entry_changes),
2584         (emit_entry_changed), (sync_entry_changed),
2585         (process_added_entries_cb), (process_deleted_entries_cb),
2586         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2587         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2588         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2589         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2590         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2591         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2592         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2593         (rhythmdb_process_metadata_load),
2594         (rhythmdb_process_file_created_or_modified),
2595         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2596         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2597         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2598         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2599         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2600         (record_entry_change), (rhythmdb_entry_set_internal),
2601         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2602         (rhythmdb_entry_move_to_trash_cb),
2603         (rhythmdb_entry_move_to_trash_set_error),
2604         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2605         (rhythmdb_nice_elt_name_from_propid),
2606         (rhythmdb_propid_from_nice_elt_name),
2607         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2608         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2609         (rhythmdb_compute_status_normal), (default_sync_metadata),
2610         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2611         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2612         (podcast_get_playback_uri), (podcast_data_destroy),
2613         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2614         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2615         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2616         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2617         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2618         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2619         * rhythmdb/rhythmdb.h:
2620         * shell/rb-play-order-linear-loop.c:
2621         (rb_linear_play_order_loop_get_next),
2622         (rb_linear_play_order_loop_get_previous):
2623         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2624         (rb_linear_play_order_get_previous):
2625         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2626         * shell/rb-play-order-random.c: (get_query_model_contents):
2627         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2628         (get_query_model_contents):
2629         * shell/rb-play-order.c: (rb_play_order_constructor),
2630         (rb_play_order_finalize),
2631         (rb_play_order_set_playing_entry_internal),
2632         (rb_play_order_set_property), (rb_play_order_new),
2633         (rb_play_order_get_player), (rb_play_order_get_source),
2634         (rb_play_order_get_db), (rb_play_order_get_query_model),
2635         (rb_play_order_player_is_playing),
2636         (rb_play_order_set_playing_entry),
2637         (rb_play_order_get_playing_entry),
2638         (rb_play_order_playing_source_changed),
2639         (rb_play_order_query_model_changed),
2640         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2641         (default_has_next), (default_has_previous),
2642         (sync_playing_entry_cb), (default_playing_entry_removed),
2643         (rb_play_order_has_next), (rb_play_order_get_next),
2644         (rb_play_order_go_next), (rb_play_order_has_previous),
2645         (rb_play_order_get_previous), (rb_play_order_go_previous),
2646         (rb_play_order_model_not_empty),
2647         (rb_play_order_update_have_next_previous):
2648         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2649         (rb_playlist_manager_save_playlists),
2650         (rb_playlist_manager_set_automatic_playlist),
2651         (rb_playlist_manager_cmd_edit_automatic_playlist),
2652         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2653         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2654         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2655         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2656         (volume_pre_unmount_cb), (reemit_playing_signal),
2657         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2658         (rb_shell_player_handle_eos_unlocked),
2659         (rb_shell_player_handle_eos), (rb_shell_player_init),
2660         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2661         (playlist_entry_cb), (rb_shell_player_open_entry),
2662         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2663         (rb_shell_player_set_play_order),
2664         (rb_shell_player_set_playback_state),
2665         (rb_shell_player_sync_play_order),
2666         (rb_shell_player_play_order_update_cb),
2667         (rb_shell_player_jump_to_current), (swap_playing_source),
2668         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2669         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2670         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2671         (rb_shell_player_entry_activated_cb),
2672         (rb_shell_player_property_row_activated_cb),
2673         (rb_shell_player_entry_changed_cb),
2674         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2675         (rb_shell_player_pause),
2676         (rb_shell_player_get_playing_song_duration),
2677         (rb_shell_player_error), (error_cb), (tick_cb),
2678         (info_available_cb), (buffering_cb),
2679         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2680         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2681         (rb_shell_jump_to_current):
2682         * sources/rb-auto-playlist-source.c:
2683         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2684         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2685         (rb_auto_playlist_source_get_query):
2686         * sources/rb-auto-playlist-source.h:
2687         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2688         * sources/rb-import-errors-source.c:
2689         (rb_import_errors_source_constructor):
2690         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2691         * sources/rb-library-source.c: (filepath_parse_pattern):
2692         * sources/rb-missing-files-source.c:
2693         (rb_missing_files_source_constructor):
2694         * sources/rb-play-queue-source.c:
2695         (rb_play_queue_source_clear_queue),
2696         (rb_play_queue_source_track_info_cell_data_func):
2697         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2698         (rb_playlist_source_get_property), (playlist_iter_func),
2699         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2700         (rb_playlist_source_track_cell_data_func):
2701         * sources/rb-podcast-source.c: (construct_query_from_selection),
2702         (rb_podcast_source_post_status_cell_data_func),
2703         (rb_podcast_source_post_feed_cell_data_func),
2704         (rb_podcast_source_feed_title_search_func),
2705         (rb_podcast_source_post_date_cell_data_func):
2706         * sources/rb-source.c: (default_get_status),
2707         (rb_source_get_status), (rb_source_browser_toggled),
2708         (rb_source_update_play_statistics), (rb_source_search),
2709         (rb_source_get_config_widget), (default_add_to_queue),
2710         (rb_source_add_to_queue), (rb_source_receive_drag),
2711         (rb_source_gather_hash_keys):
2712         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2713         (rb_sourcelist_model_is_row_visible),
2714         (rb_sourcelist_model_row_is_separator),
2715         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2716         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2717         (rb_sourcelist_model_drag_data_get):
2718         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2719         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2720         (rb_sourcelist_visible_source_to_iter),
2721         (rb_sourcelist_edit_source_name), (set_source_playing),
2722         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2723         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2724         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2725         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2726         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2727         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2728         (rb_static_playlist_source_add_location_internal),
2729         (rb_static_playlist_source_row_inserted):
2730         * widgets/rb-entry-view.c: (type_ahead_search_func),
2731         (rb_entry_view_finalize), (rb_entry_view_set_model),
2732         (rb_entry_view_playing_cell_data_func),
2733         (rb_entry_view_rating_cell_data_func),
2734         (rb_entry_view_long_cell_data_func),
2735         (rb_entry_view_play_count_cell_data_func),
2736         (rb_entry_view_duration_cell_data_func),
2737         (rb_entry_view_year_cell_data_func),
2738         (rb_entry_view_quality_cell_data_func),
2739         (rb_entry_view_location_cell_data_func),
2740         (rb_entry_view_string_cell_data_func),
2741         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2742         (rb_entry_view_get_sorting_order),
2743         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2744         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2745         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2746         (rb_entry_view_playing_song_changed), (harvest_entries),
2747         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2748         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2749         (set_column_visibility):
2750         * widgets/rb-entry-view.h:
2751         * widgets/rb-header.c: (rb_header_new),
2752         (rb_header_set_playing_entry), (rb_header_set_title):
2753         * widgets/rb-library-browser.c: (rebuild_child_model),
2754         (rb_library_browser_set_model):
2755         * widgets/rb-property-view.c:
2756         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2757         (rb_property_view_set_property), (rb_property_view_get_property),
2758         (rb_property_view_reset), (rb_property_view_get_model),
2759         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2760         (rb_property_view_button_press_cb):
2761         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2762         (rb_query_creator_get_property), (rb_query_creator_load_query),
2763         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2764         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2765         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2766         (lookup_row_by_widget), (remove_button_click_cb),
2767         (add_button_click_cb), (create_property_option_menu):
2768         * widgets/rb-song-info.c: (rb_song_info_constructor),
2769         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2770         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2771         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2772         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2774 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2776         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2777         (rb_shell_player_get_property):
2778         Add a property providing access to the player backend object.
2780 2006-07-23  James Livingston  <doclivingston@gmail.com>
2782         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2783         (get_history), (rb_random_filter_history),
2784         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2785         remove the tentative history, since it appears to be a remanent from
2786         older play order code. The only thing it was doing was using up
2787         CPU-time and memory. From #345857
2789 2006-07-23  James Livingston  <doclivingston@gmail.com>
2791         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2793         * shell/main.c: (main):
2794         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2795         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2796         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2797         (rb_playlist_manager_load_playlists),
2798         (rb_playlist_manager_save_data):
2799         * shell/rb-playlist-manager.h:
2800         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2801         (rb_shell_get_property), (rb_shell_sync_state),
2802         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2803         (construct_sources), (idle_handle_load_complete):
2804         * shell/rb-shell.h: Add a command-line option for changing the
2805         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2807 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2809         * daapsharing/rb-daap-share.c: (databases_cb):
2810         Make sure we set status codes on HTTP responses.
2812 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2814         * configure.ac:
2815         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2816         (chunked_message_finished), (send_chunked_file),
2817         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2818         Use GMappedFile to send local files to DAAP clients where possible.  
2819         iTunes can't seek properly in files sent using chunked transfer 
2820         encoding.  Also remove the useless bitrate calculation code, as we
2821         never even used the result anyway.  From #330410.
2823 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2825         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2827         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2828         Enable multiple selection for 'import file'.  Fixes #347478.
2830 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2832         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2833         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2834         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2835         Fixes #348098.
2837 2006-07-20  James Livingston  <doclivingston@gmail.com>
2839         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2840         aren't NULL before calling strstr. Fixes #347998.
2842 2006-07-19  James Livingston  <doclivingston@gmail.com>
2844         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2846         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2847         MB that only have years. Fixes #347906.
2849 2006-07-19  James Livingston  <doclivingston@gmail.com>
2851         * rhythmdb/rhythmdb-private.h:
2852         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2853         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2854         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2855         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2856         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2857         (rhythmdb_execute_stat), (queue_stat_uri),
2858         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2859         (rhythmdb_load), (rhythmdb_entry_register_type),
2860         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2861         asynchronous vfs operations, and cancel them when shutting down the
2862         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2864         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2865         (test_rhythmdb_shutdown): wait until the db has been finalised before
2866         continuing on to the next test.
2868 2006-07-19  James Livingston  <doclivingston@gmail.com>
2870         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2871         right thing in the #ifdef. From #347832.
2873 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2875         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2876         Fix compile warning.
2878 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2880         * rhythmdb/rhythmdb-query-model.c:
2881         (rhythmdb_query_model_set_property),
2882         (rhythmdb_query_model_reapply_query_cb):
2883         Ignore old query == new query case.
2884         Fixes auto playlists with time-relative queries.
2886         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2887         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2888         (rhythmdb_query_to_string):
2889         * rhythmdb/rhythmdb.h:
2890         Add debug helper for printing queries in case someone needs it again.
2892 2006-07-18  James Livingston  <doclivingston@gmail.com>
2894         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2895         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2896         Fixes #347832
2898         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2899         write then into files.
2901 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2903         * daapsharing/rb-daap-connection.c:
2904         (rb_daap_connection_set_property):
2905         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2906         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2907         (add_playlist_to_mlcl), (databases_cb):
2908         * daapsharing/rb-daap-sharing.c: (create_share):
2909         * iradio/rb-new-station-dialog.c:
2910         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2911         * iradio/rb-station-properties-dialog.c:
2912         (rb_station_properties_dialog_finalize),
2913         (rb_station_properties_dialog_set_property),
2914         (rb_station_properties_dialog_get_current_entry):
2915         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2916         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2917         * plugins/generic-player/rb-generic-player-source.c:
2918         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2919         (handle_playlist_entry_cb):
2920         * plugins/generic-player/rb-nokia770-source.c:
2921         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2922         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2923         (visit_playlist_dirs), (hal_udi_is_psp):
2924         * podcast/rb-podcast-manager.c:
2925         * podcast/rb-podcast-properties-dialog.c:
2926         (rb_podcast_properties_dialog_finalize),
2927         (rb_podcast_properties_dialog_set_entry_view),
2928         (rb_podcast_properties_dialog_set_property):
2929         * rhythmdb/rhythmdb-property-model.c:
2930         * rhythmdb/rhythmdb-query-model.c:
2931         (rhythmdb_query_model_set_property),
2932         (rhythmdb_query_model_reapply_query_cb):
2933         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2934         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2935         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2936         (rhythmdb_event_free), (rhythmdb_shutdown),
2937         (rhythmdb_thread_create), (action_thread_main),
2938         (rhythmdb_do_full_query_async_parsed),
2939         (rhythmdb_do_full_query_internal):
2940         * shell/main.c: (main):
2941         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2942         * shell/rb-play-order.c: (rb_play_order_finalize),
2943         (rb_play_order_set_player),
2944         (rb_play_order_set_playing_entry_internal),
2945         (rb_play_order_set_property),
2946         (rb_play_order_playing_source_changed),
2947         (rb_play_order_query_model_changed):
2948         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2949         (rb_playlist_manager_set_source),
2950         (rb_playlist_manager_set_shell_internal),
2951         (rb_playlist_manager_set_property):
2952         * shell/rb-removable-media-manager.c:
2953         (rb_removable_media_manager_set_property),
2954         (rb_removable_media_manager_set_uimanager),
2955         (rb_removable_media_manager_cmd_eject_medium),
2956         (rb_removable_media_manager_cmd_copy_tracks):
2957         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2958         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2959         (rb_shell_clipboard_set),
2960         (rb_shell_clipboard_cmd_add_to_playlist_new),
2961         (rb_shell_clipboard_playlist_add_cb),
2962         (rb_shell_clipboard_playlist_renamed_cb),
2963         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2964         (rebuild_playlist_menu):
2965         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2966         (rb_shell_player_set_queue_source_internal),
2967         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2968         (rb_shell_player_entry_activated_cb),
2969         (rb_shell_player_property_row_activated_cb),
2970         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2971         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2972         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2973         (rb_shell_finalize), (construct_widgets),
2974         (rb_shell_playing_from_queue_cb),
2975         (rb_shell_player_stream_song_changed_cb),
2976         (rb_shell_player_volume_changed_cb):
2977         * shell/rb-statusbar.c: (rb_statusbar_new):
2978         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2979         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2980         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2981         * sources/rb-auto-playlist-source.c:
2982         (rb_auto_playlist_source_class_init),
2983         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2984         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2985         (rb_auto_playlist_source_do_query),
2986         (rb_auto_playlist_source_set_query),
2987         (rb_auto_playlist_source_browser_changed_cb),
2988         (search_action_changed):
2989         * sources/rb-auto-playlist-source.h:
2990         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2991         (search_action_changed), (rb_browser_source_constructor),
2992         (rb_browser_source_cmd_choose_artist), (impl_delete),
2993         (rb_browser_source_browser_changed_cb),
2994         (rb_browser_source_do_query):
2995         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2996         (rb_daap_source_finalize), (rb_daap_source_class_init),
2997         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2998         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2999         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3000         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
3001         (rb_daap_source_get_headers):
3002         * sources/rb-import-errors-source.c:
3003         (rb_import_errors_source_constructor),
3004         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
3005         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3006         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
3007         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
3008         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
3009         (impl_paste), (impl_receive_drag):
3010         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
3011         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
3012         (impl_song_properties):
3013         * sources/rb-library-source.c: (rb_library_source_constructor),
3014         (rb_library_source_new), (impl_paste),
3015         (rb_library_source_add_child_source):
3016         * sources/rb-missing-files-source.c: (impl_delete),
3017         (impl_get_status):
3018         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
3019         (rb_play_queue_source_class_init),
3020         (rb_play_queue_source_constructor):
3021         * sources/rb-playlist-source.c: (rb_playlist_source_init),
3022         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
3023         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
3024         (rb_playlist_source_new_from_xml),
3025         (rb_playlist_source_save_to_xml):
3026         * sources/rb-podcast-source.c: (rb_podcast_source_init),
3027         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
3028         (search_action_changed), (rb_podcast_source_constructor),
3029         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3030         (construct_query_from_selection),
3031         (rb_podcast_source_cmd_download_post),
3032         (rb_podcast_source_cmd_cancel_download),
3033         (rb_podcast_source_cmd_delete_feed),
3034         (rb_podcast_source_start_download_cb),
3035         (rb_podcast_source_finish_download_cb),
3036         (rb_podcast_source_feed_updates_avaliable_cb),
3037         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
3038         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3039         (impl_get_status):
3040         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3041         * sources/rb-source.c: (rb_source_get_property),
3042         (default_add_to_queue), (default_move_to_trash),
3043         (_rb_source_show_popup), (rb_source_gather_selected_properties),
3044         (_rb_source_register_action_group):
3045         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
3046         (rb_sourcelist_model_is_row_visible),
3047         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3048         (rb_sourcelist_model_row_draggable),
3049         (rb_sourcelist_model_drag_data_get):
3050         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
3051         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
3052         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
3053         (visibility_notify_cb):
3054         * sources/rb-static-playlist-source.c:
3055         (rb_static_playlist_source_class_init),
3056         (rb_static_playlist_source_init),
3057         (rb_static_playlist_source_finalize),
3058         (rb_static_playlist_source_constructor), (impl_delete),
3059         (rb_static_playlist_source_browser_changed_cb),
3060         (rb_static_playlist_source_add_location_internal),
3061         (search_action_changed):
3062         * sources/rb-static-playlist-source.h:
3063         * widgets/rb-druid.c:
3064         * widgets/rb-entry-view.c:
3065         (rb_entry_view_set_shell_player_internal),
3066         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
3067         (rb_entry_view_get_property), (rb_entry_view_new),
3068         (rb_entry_view_button_press_cb):
3069         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
3070         (rb_library_browser_set_property),
3071         (rb_library_browser_get_property):
3072         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
3073         (get_entry_for_property), (get_property_index_from_proptype):
3074         * widgets/rb-song-info.c: (rb_song_info_constructor),
3075         (rb_song_info_finalize), (rb_song_info_set_source_internal),
3076         (rb_song_info_set_property), (rb_song_info_get_property):
3078         More leak and reference counting fixes.  From bug #347446.
3080 2006-07-17  James Livingston  <doclivingston@gmail.com>
3082         * sources/rb-auto-playlist-source.c:
3083         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
3084         rather than setting the base model, as that lets us not import all the
3085         entries from the base model. This fixes some issues whether the search
3086         box wasn't filting automatic playlists.
3088 2006-07-17  James Livingston  <doclivingston@gmail.com>
3090         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
3091         error, which caused blacklist creation to fail.
3093 2006-07-17  James Livingston  <doclivingston@gmail.com>
3095         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
3096         running with -n, because we don't start it then. Fixes a crash on
3097         exit.
3099 2006-07-17  James Livingston  <doclivingston@gmail.com>
3101         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3103         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
3104         Save not Open for the button. Fixes #345816
3106 2006-07-17  James Livingston  <doclivingston@gmail.com>
3108         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3110         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
3111         when track transfer is disabled. Fixes #347705
3113 2006-07-17  James Livingston  <doclivingston@gmail.com>
3115         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3117         * sources/rb-library-source.c: (impl_get_config_widget): fix build
3118         with track transfer disabled. Fixes #347705
3120 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3122         * rhythmdb/rhythmdb-query-model.c:
3123         (rhythmdb_query_model_set_property):
3124         * shell/main.c: (main):
3125         * shell/rb-shell-clipboard.c: (unset_source_internal),
3126         (rb_shell_clipboard_finalize),
3127         (rb_shell_clipboard_set_source_internal),
3128         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
3129         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
3130         (rb_shell_player_set_db_internal),
3131         (rb_shell_player_set_queue_source_internal),
3132         (rb_shell_player_finalize), (rb_shell_player_set_property):
3133         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
3134         * sources/rb-auto-playlist-source.c:
3135         (rb_auto_playlist_source_constructor),
3136         (rb_auto_playlist_source_new_from_xml):
3137         * sources/rb-daap-source.c: (create_pixbufs):
3138         * sources/rb-ipod-source.c:
3139         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
3140         * sources/rb-library-source.c:
3141         (rb_library_source_add_child_source):
3142         * sources/rb-play-queue-source.c:
3143         (rb_play_queue_sync_playing_state),
3144         (rb_play_queue_source_track_info_cell_data_func):
3145         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3146         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
3147         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
3148         (impl_can_add_to_queue), (impl_add_to_queue):
3149         * sources/rb-source.c: (rb_source_set_property):
3150         * sources/rb-sourcelist.c: (rb_sourcelist_append):
3151         * sources/rb-static-playlist-source.c:
3152         (rb_static_playlist_source_constructor),
3153         (rb_static_playlist_source_load_from_xml):
3154         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3155         * widgets/rb-entry-view.c: (rb_entry_view_init),
3156         (rb_entry_view_finalize), (rb_entry_view_append_column),
3157         (rb_entry_view_constructor):
3158         * widgets/rb-song-info.c: (rb_song_info_set_property):
3159         Fix leaks.  From bug #347446.
3161 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3163         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
3164         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
3165         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
3166         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
3167         (add_decoding_pipeline), (profile_bin_find_encoder),
3168         (get_profile_from_mime_type), (extract_track), (transcode_track),
3169         (rb_encoder_gst_encode):
3170         * backends/gstreamer/rb-encoder-gst.h:
3171         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
3172         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3173         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
3174         (rb_player_gst_construct):
3175         * backends/gstreamer/rb-player-gst.h:
3176         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
3177         * backends/rb-encoder.h:
3178         * backends/rb-player.c: (_rb_player_emit_tick):
3179         * backends/rb-player.h:
3180         * daapsharing/rb-daap-connection.c: (build_message),
3181         (actual_http_response_handler), (http_response_handler),
3182         (http_get), (entry_set_string_prop), (emit_progress_idle),
3183         (handle_server_info), (handle_database_info),
3184         (handle_song_listing), (handle_playlists),
3185         (handle_playlist_entries), (rb_daap_connection_new),
3186         (connected_cb), (rb_daap_connection_do_something),
3187         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
3188         (rb_daap_connection_get_property):
3189         * daapsharing/rb-daap-connection.h:
3190         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
3191         (rb_daap_collision_dialog_new_run):
3192         * daapsharing/rb-daap-dialog.h:
3193         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
3194         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
3195         (DigestToString), (rb_daap_hash_generate):
3196         * daapsharing/rb-daap-hash.h:
3197         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3198         (resolve_cb), (browse_cb):
3199         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
3200         (resolve_cb), (rb_daap_mdns_browser_resolve),
3201         (rb_daap_mdns_browser_start), (resolver_free):
3202         * daapsharing/rb-daap-mdns-browser.h:
3203         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
3204         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
3205         (publish_cb):
3206         * daapsharing/rb-daap-mdns-publisher.h:
3207         * daapsharing/rb-daap-share.c: (name_collision_cb),
3208         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
3209         (message_set_from_rb_daap_structure), (content_codes_cb),
3210         (session_id_validate), (logout_cb), (update_cb),
3211         (add_entry_to_mlcl), (add_playlist_to_mlcl),
3212         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
3213         (rb_daap_share_server_start), (rb_daap_share_server_stop),
3214         (rb_daap_share_publish_start):
3215         * daapsharing/rb-daap-share.h:
3216         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
3217         (share_password_changed_cb), (rb_daap_sharing_shutdown):
3218         * daapsharing/rb-daap-sharing.h:
3219         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
3220         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
3221         (rb_daap_src_open):
3222         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
3223         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
3224         (rb_daap_structure_parse_container_buffer),
3225         (rb_daap_structure_parse), (gnode_find_node),
3226         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
3227         (print_rb_daap_item):
3228         * daapsharing/rb-daap-structure.h:
3229         * iradio/rb-new-station-dialog.c:
3230         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
3231         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
3232         (rb_new_station_dialog_text_changed):
3233         * iradio/rb-station-properties-dialog.c:
3234         (rb_station_properties_dialog_init),
3235         (rb_station_properties_dialog_new),
3236         (rb_station_properties_dialog_response_cb),
3237         (rb_station_properties_dialog_get_current_entry),
3238         (rb_station_properties_dialog_rated_cb),
3239         (rb_station_properties_dialog_update_rating),
3240         (rb_station_properties_dialog_update_playback_error),
3241         (rb_station_properties_dialog_sync_entries):
3242         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
3243         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
3244         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
3245         (rb_metadata_can_save), (rb_metadata_save):
3246         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
3247         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
3248         (_handle_message), (_new_connection), (main):
3249         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
3250         (rb_metadata_dbus_read_from_message):
3251         * metadata/rb-metadata-dbus.h:
3252         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
3253         (rb_add_id3_tagger), (rb_metadata_init),
3254         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
3255         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
3256         (rb_metadata_gst_new_decoded_pad_cb),
3257         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3258         * metadata/sj-error.c: (sj_error_quark):
3259         * metadata/sj-error.h:
3260         * metadata/sj-metadata-musicbrainz.c:
3261         (sj_metadata_musicbrainz_instance_init),
3262         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
3263         (get_rdf), (lookup_cd):
3264         * metadata/sj-metadata.c: (sj_metadata_get_type):
3265         * metadata/sj-structures.c:
3266         * metadata/sj-structures.h:
3267         * metadata/test-metadata.c: (load_metadata_cb), (main):
3268         * podcast/rb-feed-podcast-properties-dialog.c:
3269         (rb_feed_podcast_properties_dialog_init),
3270         (rb_feed_podcast_properties_dialog_update_title):
3271         * podcast/rb-feed-podcast-properties-dialog.h:
3272         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3273         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
3274         (rb_new_podcast_dialog_text_changed):
3275         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3276         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3277         (rb_podcast_manager_set_property),
3278         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
3279         (rb_podcast_manager_download_entry),
3280         (rb_podcast_manager_update_feeds),
3281         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
3282         (rb_podcast_manager_copy_post),
3283         (rb_podcast_manager_thread_parse_feed),
3284         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
3285         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
3286         (download_info_free), (download_info_new), (start_job),
3287         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
3288         (download_progress_cb), (download_progress_update_cb),
3289         (rb_podcast_manager_remove_feed),
3290         (rb_podcast_manager_db_entry_deleted_cb),
3291         (rb_podcast_manager_cancel_download),
3292         (rb_podcast_manager_update_synctime),
3293         (rb_podcast_manager_set_remove_files),
3294         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3295         (rb_podcast_manager_abort_subscribe),
3296         (rb_podcast_manager_get_podcast_dir):
3297         * podcast/rb-podcast-manager.h:
3298         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
3299         (rb_validate_channel_propert), (rb_validate_item_propert),
3300         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3301         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3302         (rb_podcast_parse_date), (rb_podcast_parse_time),
3303         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3304         * podcast/rb-podcast-parse.h:
3305         * podcast/rb-podcast-properties-dialog.c:
3306         (rb_podcast_properties_dialog_init),
3307         (rb_podcast_properties_dialog_get_current_entry),
3308         (rb_podcast_properties_dialog_update_title),
3309         (rb_podcast_properties_dialog_update_duration),
3310         (rb_podcast_properties_dialog_update_date):
3311         * podcast/rb-podcast-properties-dialog.h:
3312         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3313         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3314         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3315         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3316         (g_sequence_search), (g_sequence_set_aggregate_data),
3317         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3318         (find_min), (g_sequence_node_find_by_pos),
3319         (g_sequence_node_find_closest), (g_sequence_node_free),
3320         (g_sequence_node_split), (g_sequence_node_insert_before),
3321         (g_sequence_node_get_length), (g_sequence_node_remove),
3322         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3323         (g_sequence_calc_tree_height):
3324         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3325         (rb_refstring_get):
3326         * rhythmdb/rb-refstring.h:
3327         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3328         (rhythmdb_gda_init), (dump_model), (execute_query),
3329         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3330         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3331         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3332         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3333         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3334         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3335         * rhythmdb/rhythmdb-gda.h:
3336         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3337         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3338         (monitor_library_directory), (rhythmdb_check_changed_file),
3339         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3340         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3341         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3342         * rhythmdb/rhythmdb-private.h:
3343         * rhythmdb/rhythmdb-property-model.c:
3344         (rhythmdb_property_model_set_property),
3345         (rhythmdb_property_model_row_inserted_cb),
3346         (rhythmdb_property_model_prop_changed_cb),
3347         (rhythmdb_property_model_compare),
3348         (rhythmdb_property_model_get_value),
3349         (rhythmdb_property_model_iter_nth_child),
3350         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3351         (rhythmdb_property_model_drag_data_get),
3352         (rhythmdb_property_model_enable_drag),
3353         (rhythmdb_property_model_column_get_type):
3354         * rhythmdb/rhythmdb-property-model.h:
3355         * rhythmdb/rhythmdb-query-model.c:
3356         (rhythmdb_query_model_class_init),
3357         (rhythmdb_query_model_set_property),
3358         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3359         (rhythmdb_query_model_has_pending_changes),
3360         (rhythmdb_query_model_entry_changed_cb),
3361         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3362         (rhythmdb_query_model_add_entry),
3363         (rhythmdb_query_model_remove_from_main_list),
3364         (rhythmdb_query_model_remove_entry),
3365         (rhythmdb_query_model_drag_data_received),
3366         (rhythmdb_query_model_row_drop_possible),
3367         (rhythmdb_query_model_compute_status_normal),
3368         (rhythmdb_query_model_set_sort_order),
3369         (rhythmdb_query_model_get_entry_index),
3370         (rhythmdb_query_model_base_row_inserted),
3371         (rhythmdb_query_model_base_row_deleted),
3372         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3373         (rhythmdb_query_model_date_sort_func),
3374         (rhythmdb_query_model_within_limit):
3375         * rhythmdb/rhythmdb-query-model.h:
3376         * rhythmdb/rhythmdb-query-results.c:
3377         (rhythmdb_query_results_query_complete):
3378         * rhythmdb/rhythmdb-query-results.h:
3379         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3380         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3381         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3382         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3383         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3384         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3385         (rhythmdb_tree_parser_start_element),
3386         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3387         (save_entry), (save_entry_type), (save_unknown_entry_type),
3388         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3389         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3390         (get_or_create_genre), (remove_entry_from_album),
3391         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3392         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3393         (search_match_properties), (evaluate_conjunctive_subquery),
3394         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3395         (conjunctive_query_artists), (conjunctive_query_genre),
3396         (conjunctive_query), (split_query_by_disjunctions),
3397         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3398         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3399         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3400         (rhythmdb_hash_tree_foreach),
3401         (rhythmdb_tree_entry_type_registered):
3402         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3403         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3404         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3405         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3406         (rhythmdb_shutdown), (rhythmdb_finalize),
3407         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3408         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3409         (rhythmdb_entry_example_new),
3410         (set_metadata_string_default_unknown), (is_ghost_entry),
3411         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3412         (rhythmdb_process_metadata_load),
3413         (rhythmdb_process_queued_entry_set_event),
3414         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3415         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3416         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3417         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3418         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3419         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3420         (rhythmdb_entry_delete_by_type),
3421         (rhythmdb_propid_from_nice_elt_name),
3422         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3423         (rhythmdb_compute_status_normal),
3424         (rhythmdb_entry_register_type_alias),
3425         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3426         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3427         (rhythmdb_entry_import_error_get_type),
3428         (rhythmdb_entry_podcast_post_get_type),
3429         (rhythmdb_entry_podcast_feed_get_type),
3430         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3431         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3432         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3433         * rhythmdb/rhythmdb.h:
3434         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3435         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3436         (rb_history_limit_size):
3437         * shell/rb-history.h:
3438         * shell/rb-play-order-linear-loop.c:
3439         (rb_linear_play_order_loop_get_next):
3440         * shell/rb-play-order-linear-loop.h:
3441         * shell/rb-play-order-linear.c:
3442         * shell/rb-play-order-linear.h:
3443         * shell/rb-play-order-queue.c:
3444         (rb_queue_play_order_playing_entry_removed):
3445         * shell/rb-play-order-queue.h:
3446         * shell/rb-play-order-random-by-age-and-rating.c:
3447         * shell/rb-play-order-random-by-age-and-rating.h:
3448         * shell/rb-play-order-random-by-age.c:
3449         (rb_random_by_age_get_entry_weight):
3450         * shell/rb-play-order-random-by-age.h:
3451         * shell/rb-play-order-random-by-rating.c:
3452         * shell/rb-play-order-random-by-rating.h:
3453         * shell/rb-play-order-random-equal-weights.c:
3454         * shell/rb-play-order-random-equal-weights.h:
3455         * shell/rb-play-order-random.c: (rb_random_filter_history),
3456         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3457         (rb_random_db_changed), (rb_random_playing_entry_changed),
3458         (rb_random_db_entry_deleted):
3459         * shell/rb-play-order-shuffle.c: (remove_from_history),
3460         (add_randomly_to_history), (get_query_model_contents),
3461         (rb_shuffle_playing_entry_changed):
3462         * shell/rb-play-order-shuffle.h:
3463         * shell/rb-play-order.c: (rb_play_order_class_init),
3464         (rb_play_order_set_property),
3465         (rb_play_order_playing_source_changed),
3466         (rb_play_order_query_model_changed_cb),
3467         (rb_play_order_query_model_changed),
3468         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3469         * shell/rb-play-order.h:
3470         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3471         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3472         (rb_playlist_manager_set_property),
3473         (rb_playlist_manager_parse_file),
3474         (rb_playlist_manager_load_playlists),
3475         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3476         (rb_playlist_manager_save_playlists),
3477         (rb_playlist_manager_new_playlist),
3478         (rb_playlist_manager_new_playlist_from_selection_data),
3479         (rb_playlist_manager_cmd_new_automatic_playlist),
3480         (rb_playlist_manager_cmd_edit_automatic_playlist),
3481         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3482         (save_playlist_response_cb), (export_set_extension_cb),
3483         (filter_get_export_filter_label), (setup_format_menu),
3484         (rb_playlist_manager_cmd_save_playlist),
3485         (rb_playlist_manager_get_playlists),
3486         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3487         (rb_playlist_manager_delete_playlist),
3488         (rb_playlist_manager_export_playlist):
3489         * shell/rb-playlist-manager.h:
3490         * shell/rb-removable-media-manager.c:
3491         (rb_removable_media_manager_class_init),
3492         (rb_removable_media_manager_dispose),
3493         (rb_removable_media_manager_finalize),
3494         (rb_removable_media_manager_set_property),
3495         (split_drive_from_cdda_uri),
3496         (rb_removable_media_manager_playing_uri_changed_cb),
3497         (rb_removable_media_manager_load_media),
3498         (rb_removable_media_manager_volume_mounted_cb),
3499         (remove_volume_by_source),
3500         (rb_removable_media_manager_source_deleted_cb),
3501         (rb_removable_media_manager_volume_unmounted_cb),
3502         (rb_removable_media_manager_mount_volume),
3503         (rb_removable_media_manager_set_uimanager),
3504         (rb_removable_media_manager_scan), (do_transfer),
3505         (rb_removable_media_manager_cmd_copy_tracks):
3506         * shell/rb-removable-media-manager.h:
3507         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3508         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3509         (rb_shell_clipboard_sync),
3510         (rb_shell_clipboard_idle_poll_deletions),
3511         (rb_shell_clipboard_cmd_add_to_playlist_new),
3512         (rb_shell_clipboard_playlist_add_cb),
3513         (rb_shell_clipboard_playlist_deleted_cb),
3514         (rb_shell_clipboard_playlist_renamed_cb),
3515         (rb_shell_clipboard_playlist_visible_cb),
3516         (rb_shell_clipboard_playlist_added_cb):
3517         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3518         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3519         (rb_shell_player_init), (rb_shell_player_set_property),
3520         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3521         (rb_shell_player_open_location),
3522         (rb_shell_player_set_playing_entry),
3523         (rb_shell_player_play_order_update_cb),
3524         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3525         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3526         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3527         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3528         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3529         (gconf_song_position_slider_visibility_changed),
3530         (rb_shell_player_entry_activated_cb),
3531         (rb_shell_player_property_row_activated_cb),
3532         (rb_shell_player_entry_changed_cb),
3533         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3534         (actually_set_playing_source),
3535         (rb_shell_player_set_playing_source_internal),
3536         (rb_shell_player_get_playing_song_duration), (eos_cb),
3537         (rb_shell_player_error), (error_cb), (info_available_cb),
3538         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3539         (rb_shell_player_error_get_type):
3540         * shell/rb-shell-player.h:
3541         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3542         (rb_shell_preferences_append_page),
3543         (share_check_button_toggled_cb),
3544         (password_check_button_toggled_cb), (add_daap_preferences),
3545         (rb_shell_preferences_column_check_changed_cb),
3546         (rb_shell_preferences_sync_column_button),
3547         (rb_shell_preferences_sync),
3548         (rb_shell_preferences_browser_views_activated_cb):
3549         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3550         (rb_shell_set_property), (rb_shell_get_property),
3551         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3552         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3553         (rb_shell_get_visibility), (rb_shell_set_visibility),
3554         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3555         (rb_shell_register_entry_type_for_source),
3556         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3557         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3558         (rb_shell_player_stream_song_changed_cb),
3559         (rb_shell_set_window_title),
3560         (rb_shell_view_smalldisplay_changed_cb),
3561         (rb_shell_view_queue_as_sidebar_changed_cb),
3562         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3563         (rb_shell_cmd_add_folder_to_library),
3564         (rb_shell_cmd_add_file_to_library),
3565         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3566         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3567         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3568         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3569         (handle_playlist_entry_cb), (rb_shell_load_uri),
3570         (rb_shell_add_to_queue), (rb_shell_present),
3571         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3572         (rb_shell_volume_widget_changed_cb),
3573         (rb_shell_player_volume_changed_cb),
3574         (rb_shell_ui_location_get_type):
3575         * shell/rb-shell.h:
3576         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3577         (rb_source_header_init), (rb_source_header_set_source_internal),
3578         (rb_source_state_sync), (rb_source_header_clear_search),
3579         (rb_source_header_view_browser_changed_cb):
3580         * shell/rb-source-header.h:
3581         * shell/rb-statusbar.c: (rb_statusbar_construct),
3582         (rb_statusbar_init), (rb_statusbar_finalize),
3583         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3584         (rb_statusbar_source_status_changed_cb):
3585         * shell/rb-statusbar.h:
3586         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3587         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3588         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3589         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3590         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3591         (rb_audiocd_create_track_entry):
3592         * sources/rb-auto-playlist-source.c:
3593         (rb_auto_playlist_source_class_init),
3594         (rb_auto_playlist_source_constructor),
3595         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3596         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3597         (rb_auto_playlist_source_query_complete_cb),
3598         (rb_auto_playlist_source_do_query),
3599         (rb_auto_playlist_source_set_query),
3600         (rb_auto_playlist_source_browser_changed_cb),
3601         (search_action_to_prop):
3602         * sources/rb-auto-playlist-source.h:
3603         * sources/rb-browser-source.c: (rb_browser_source_init),
3604         (rb_browser_source_dispose), (search_action_to_prop),
3605         (rb_browser_source_constructor),
3606         (rb_browser_source_cmd_choose_genre),
3607         (rb_browser_source_cmd_choose_artist),
3608         (rb_browser_source_cmd_choose_album), (impl_search),
3609         (rb_browser_source_browser_changed_cb),
3610         (rb_browser_source_do_query):
3611         * sources/rb-browser-source.h:
3612         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3613         (rb_daap_source_init), (rb_daap_source_dispose),
3614         (rb_daap_source_set_property), (start_browsing),
3615         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3616         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3617         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3618         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3619         * sources/rb-daap-source.h:
3620         * sources/rb-import-errors-source.h:
3621         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3622         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3623         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3624         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3625         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3626         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3627         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3628         (generate_ipod_filename), (ipod_path_from_unix_path),
3629         (impl_delete_thyself):
3630         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3631         (rb_iradio_source_init), (rb_iradio_source_constructor),
3632         (rb_iradio_source_new), (guess_uri_scheme),
3633         (rb_iradio_source_add_station),
3634         (rb_iradio_source_async_update_play_statistics),
3635         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3636         (stations_view_drag_data_received_cb),
3637         (rb_iradio_source_cmd_new_station):
3638         * sources/rb-iradio-source.h:
3639         * sources/rb-library-source.c: (rb_library_source_dispose),
3640         (rb_library_source_constructor),
3641         (rb_library_source_location_button_clicked_cb),
3642         (impl_get_config_widget), (rb_library_source_library_location_cb),
3643         (sanitize_path), (filepath_parse_pattern),
3644         (layout_example_label_update),
3645         (rb_library_source_layout_filename_changed), (build_filename),
3646         (impl_can_paste), (impl_paste),
3647         (rb_library_source_add_child_source),
3648         (rb_library_source_sync_child_sources):
3649         * sources/rb-library-source.h:
3650         * sources/rb-missing-files-source.h:
3651         * sources/rb-play-queue-source.c:
3652         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3653         * sources/rb-play-queue-source.h:
3654         * sources/rb-playlist-source-recorder.c:
3655         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3656         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3657         (rb_playlist_source_recorder_init),
3658         (rb_playlist_source_recorder_new):
3659         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3660         (rb_playlist_source_save_playlist),
3661         (rb_playlist_source_entry_added_cb),
3662         (rb_playlist_source_set_query_model),
3663         (rb_playlist_source_add_to_map):
3664         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3665         (rb_podcast_source_init), (rb_podcast_source_dispose),
3666         (rb_podcast_source_finalize), (search_action_to_prop),
3667         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3668         (rb_podcast_source_get_property), (rb_podcast_source_new),
3669         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3670         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3671         (rb_podcast_source_show_browser), (construct_query_from_selection),
3672         (rb_podcast_source_do_query), (impl_get_config_widget),
3673         (rb_podcast_source_btn_file_change_cb),
3674         (posts_view_drag_data_received_cb),
3675         (rb_podcast_source_cmd_download_post),
3676         (rb_podcast_source_cmd_cancel_download),
3677         (rb_podcast_source_cmd_delete_feed),
3678         (rb_podcast_source_cmd_properties_feed),
3679         (rb_podcast_source_cmd_update_feed),
3680         (rb_podcast_source_post_status_cell_data_func),
3681         (rb_podcast_source_post_feed_cell_data_func),
3682         (rb_podcast_source_post_date_cell_data_func),
3683         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3684         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3685         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3686         (impl_get_status):
3687         * sources/rb-podcast-source.h:
3688         * sources/rb-removable-media-source.c:
3689         (rb_removable_media_source_constructor):
3690         * sources/rb-removable-media-source.h:
3691         * sources/rb-source.h:
3692         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3693         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3694         (rb_sourcelist_model_row_is_separator),
3695         (rb_sourcelist_model_drag_data_received),
3696         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3697         (rb_sourcelist_model_row_drop_position),
3698         (rb_sourcelist_model_get_drag_target),
3699         (rb_sourcelist_model_row_draggable),
3700         (rb_sourcelist_model_drag_data_get),
3701         (rb_sourcelist_model_row_inserted_cb),
3702         (rb_sourcelist_model_get_group_path):
3703         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3704         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3705         (rb_sourcelist_visible_source_to_iter),
3706         (rb_sourcelist_edit_source_name),
3707         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3708         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3709         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3710         * sources/rb-static-playlist-source.c:
3711         (rb_static_playlist_source_class_init),
3712         (rb_static_playlist_source_constructor),
3713         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3714         (impl_search), (rb_static_playlist_source_do_query),
3715         (rb_static_playlist_source_browser_changed_cb),
3716         (impl_receive_drag), (impl_save_contents_to_xml),
3717         (rb_static_playlist_source_add_location_swapped),
3718         (search_action_to_prop):
3719         * sources/rb-static-playlist-source.h:
3720         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3721         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3722         (egg_tray_icon_get_orientation_property),
3723         (egg_tray_icon_send_manager_message),
3724         (egg_tray_icon_update_manager_window),
3725         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3726         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3727         * widgets/eggtrayicon.h:
3728         * widgets/rb-cell-renderer-pixbuf.c:
3729         (rb_cell_renderer_pixbuf_get_property),
3730         (rb_cell_renderer_pixbuf_set_property),
3731         (rb_cell_renderer_pixbuf_get_size),
3732         (rb_cell_renderer_pixbuf_render),
3733         (rb_cell_renderer_pixbuf_activate):
3734         * widgets/rb-cell-renderer-rating.c:
3735         (rb_cell_renderer_rating_class_init),
3736         (rb_cell_renderer_rating_get_property),
3737         (rb_cell_renderer_rating_set_property),
3738         (rb_cell_renderer_rating_get_size),
3739         (rb_cell_renderer_rating_render),
3740         (rb_cell_renderer_rating_activate):
3741         * widgets/rb-dialog.c:
3742         * widgets/rb-dialog.h:
3743         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3744         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3745         (rb_druid_page3_finish_cb):
3746         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3747         (rb_entry_view_init), (rb_entry_view_set_property),
3748         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3749         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3750         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3751         (rb_entry_view_set_sorting_order),
3752         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3753         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3754         (rb_entry_view_playing_song_changed),
3755         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3756         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3757         (rb_entry_view_set_fixed_column_width),
3758         (rb_entry_view_get_time_date_column_sample),
3759         (rb_entry_view_state_get_type):
3760         * widgets/rb-entry-view.h:
3761         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3762         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3763         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3764         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3765         (update_browser_property_visibilty),
3766         (rb_library_browser_construct_query), (restore_selection),
3767         (rebuild_child_model), (rb_library_browser_set_selection),
3768         (rb_library_browser_set_model):
3769         * widgets/rb-library-browser.h:
3770         * widgets/rb-property-view.c: (rb_property_view_class_init),
3771         (rb_property_view_set_property), (rb_property_view_reset),
3772         (rb_property_view_get_model), (rb_property_view_constructor),
3773         (rb_property_view_set_selection),
3774         (rb_property_view_selection_changed_cb),
3775         (rb_property_view_button_press_cb),
3776         (rb_property_view_set_search_func):
3777         * widgets/rb-query-creator-private.h:
3778         * widgets/rb-query-creator-properties.c:
3779         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3780         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3781         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3782         (relativeTimeCriteriaCreateWidget),
3783         (relativeTimeCriteriaSetWidgetData):
3784         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3785         (rb_query_creator_dispose), (rb_query_creator_load_query),
3786         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3787         (get_property_index_from_proptype), (select_criteria_from_value),
3788         (create_property_option_menu), (create_criteria_option_menu),
3789         (sort_option_menu_changed), (setup_sort_option_menu):
3790         * widgets/rb-query-creator.h:
3791         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3792         (rb_rating_render_stars):
3793         * widgets/rb-rating-helper.h:
3794         * widgets/rb-rating.c: (rb_rating_expose):
3795         * widgets/rb-rating.h:
3796         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3797         (rb_search_entry_timeout_cb):
3798         * widgets/rb-search-entry.h:
3799         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3800         (rb_song_info_constructor), (rb_song_info_new),
3801         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3802         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3803         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3804         (rb_song_info_query_model_changed_cb),
3805         (rb_song_info_sync_entries_multiple),
3806         (rb_song_info_sync_entry_single):
3807         Strip all trailing whitespace.  Fixes #344293.
3809 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3811         * doc/reference/Makefile.am: Fix GTK Doc Build
3813 2006-07-13  James Livingston  <doclivingston@gmail.com>
3815         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3817         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3818         instead of the LOCATION, and don't try to get the directory listing
3819         for http URI schemes
3821         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3822         invalid utf8 in the error message, since apparently it can happen.
3824 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3826         * sources/rb-import-errors-source.c:
3827         (rb_import_errors_source_class_init),
3828         (rb_import_errors_source_init),
3829         (rb_import_errors_source_constructor),
3830         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3831         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3832         * sources/rb-missing-files-source.c:
3833         (rb_missing_files_source_class_init),
3834         (rb_missing_files_source_init),
3835         (rb_missing_files_source_constructor),
3836         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3837         (rb_missing_files_source_songs_sort_order_changed_cb),
3838         (impl_get_status):
3839         * sources/rb-source.c: (rb_source_class_init),
3840         (rb_source_finalize), (update_visibility_idle),
3841         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3842         (rb_source_set_property), (rb_source_get_property),
3843         (default_get_status), (rb_source_update_play_statistics),
3844         (default_add_to_queue), (_rb_source_show_popup),
3845         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3846         (rb_source_gather_selected_properties),
3847         (_rb_source_register_action_group):
3848         * sources/rb-source.h:
3849         * sources/rb-sourcelist.c: (visibility_notify_cb):
3850         Don't use a fake model for import-errors and missing-files
3851         sources.  Add a new source property "hidden-when-empty".
3852         Update source visibility in an idle.  Clean up some whitespace.
3853         From bug #346800
3855 2006-07-12  James Livingston  <doclivingston@gmail.com>
3857         * bindings/python/rb.defs:
3858         * bindings/python/rb.override: bind rb_error_dialog
3860         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3861         the current working directory for uninstalled plugins, and add the
3862         class name to the method name.
3864 2006-07-12  James Livingston  <doclivingston@gmail.com>
3866         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3867         the sources EOF type if it's NULL. Fixes #346284.
3869 2006-07-12  James Livingston  <doclivingston@gmail.com>
3871         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3872         I accidently committed. Nothing to see here, move along...
3874 2006-07-11  James Livingston  <doclivingston@gmail.com>
3876         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3877         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3878         Unknown.
3880 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3882         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3884 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3886         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3887         Don't try to set mtime if we've deleted the entry.
3889 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3891         * bindings/python/rhythmdb.defs:
3892         * rhythmdb/rhythmdb.c:
3893         * rhythmdb/rhythmdb.h:
3894         * rhythmdb/rhythmdb-private.h:
3895         * rhythmdb/rhythmdb-query.c:
3896         Move data structures holding registered entry types inside the
3897         RhythmDB object, and add a vfunc called when new types are registered.
3898         Add a flag to RhythmDBEntryType specifying whether entries of the type
3899         should be saved to the on-disk database.
3901         * sources/rb-audiocd-source.c:
3902         * sources/rb-daap-source.c:
3903         * sources/rb-ipod-source.c:
3904         * plugins/generic-player/rb-generic-player-source.c:
3905         * plugins/generic-player/rb-nokia770-source.c:
3906         * plugins/generic-player/rb-psp-source.c:
3907         Adjust to the above changes.
3909         * rhythmdb/rhythmdb-tree.c:
3910         If the type for an entry hasn't been registered yet, store the entry's
3911         properties as-is, and convert them to a real entry when the type is
3912         registered.  If the type doesn't get registered, save the entry back
3913         to the database unmodified.  From #330226.
3915 2006-07-10  James Livingston  <doclivingston@gmail.com>
3917         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3918         os.path.unlink to os.unlink, so removing stuff works.
3920 2006-07-10  James Livingston  <doclivingston@gmail.com>
3922         patch by: Ed Catmur  <ed@catmur.co.uk>
3923               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3925         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3926         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3927         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3928         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3929         internals of the cover database and Amazon lookup engine, and add
3930         support for loading art from the local file system. Fixes #345688.
3932         * plugins/rb/Coroutine.py:
3933         * plugins/rb/Makefile.am:
3934         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3935         plugin classes.
3937 2006-07-10  James Livingston  <doclivingston@gmail.com>
3939         * tests/Makefile.am: don't run the benchmark when doing "make check"
3941         * po/POTFILES.in: more build fixes, from Matti Lindell
3942         <feenixx@hotmail.com>. Fixes #347049.
3945 2006-07-10  James Livingston  <doclivingston@gmail.com>
3947         * plugins/cd-recorder/Makefile.am: build fixes
3949         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3950         attempt to change properties if we couldn't create an entry.
3952         * shell/rb-source-header.c: (rb_source_header_init),
3953         (rb_source_header_view_browser_changed_cb),
3954         (rb_source_header_sync_control_state):
3955         * shell/rb-tray-icon.c:
3956         * widgets/Makefile.am:
3957         * widgets/disclosure-widget.c:
3958         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3959         widget, as it hasn't been used for a while.
3961 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3963         * Makefile.am:
3964         * configure.ac:
3965         * data/ui/rhythmbox-ui.xml:
3966         * plugins/Makefile.am:
3967         * plugins/cd-recorder/.cvsignore:
3968         * plugins/cd-recorder/Makefile.am:
3969         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3970         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3971         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3972         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3973         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3974         (playlist_row_inserted_cb), (update_source),
3975         (shell_selected_source_notify_cb), (impl_activate),
3976         (impl_deactivate):
3977         * shell/Makefile.am:
3978         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3979         (rb_playlist_manager_cmd_save_playlist):
3980         * shell/rb-shell.c: (rb_shell_select_source):
3981         * sources/Makefile.am:
3982         * sources/rb-playlist-source-recorder.c:
3983         (rb_playlist_source_recorder_new):
3984         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3985         (rb_playlist_source_add_to_map):
3986         * sources/rb-playlist-source.h:
3987         Move cd burning into a plugin.  Fixes #344300.
3989 2006-07-10  James Livingston  <doclivingston@gmail.com>
3991         * lib/eel-gconf-extensions.c:
3992         * shell/rb-shell.c: remove some ununsed gnomeui includes
3994         * widgets/Makefile.am:
3995         * widgets/rb-song-display-box.c:
3996         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3997         since it isn't acutally used anywhere. Fixes #346926
3999 2006-07-09  James Livingston  <doclivingston@gmail.com>
4001         * bindings/python/rb.defs:
4002         * bindings/python/rb.override:
4003         * lib/rb-debug.c: (rb_debug_real):
4004         * lib/rb-debug.h:
4005         * plugins/rb/__init__.py: don't print out an extra newline when
4006         diverting python print statements to RB's debug log.
4008 2006-07-09  James Livingston  <doclivingston@gmail.com>
4010         * rhythmdb/rhythmdb-property-model.c:
4011         (rhythmdb_property_model_drag_data_get):
4012         * sources/rb-sourcelist-model.c:
4013         (rb_sourcelist_model_row_draggable),
4014         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
4015         from the row reference is still valid. Fixes #346709.
4017 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4019         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
4021         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
4022         If all selected entries have the same rating, use that as the initial
4023         rating for the multiple song info dialog.  Fixes #345970.
4025 2006-07-09  James Livingston  <doclivingston@gmail.com>
4027         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
4028         to prevent #343345:
4029                 - don't ever scale to 1x1, just hide the image in that case
4030                 - don't fade when the window is minimised
4031                 - use the last-good allocation width, not the current one - as
4032                   it sometimes get weird values.
4034 2006-07-08  William Jon McCann  <mccann@jhu.edu>
4036         * data/ui/rhythmbox-ui.xml:
4037         * shell/rb-shell.c:
4038         Remove Import audio CD from menu.  Fixes #339732
4040 2006-07-08  James Livingston  <doclivingston@gmail.com>
4042         * metadata/test-metadata.c: (print_metadata_string),
4043         (load_metadata_cb): print out all the metadata we have read, not just
4044         a few.
4046         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
4047         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
4049 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4051         * plugins/lyrics/lyrics.py:
4052         Change the lyrics cache location to match Quod Libet's,
4053         and fix the '&' -> 'and' substitution to require spaces.
4055 2006-07-08  James Livingston  <doclivingston@gmail.com>
4057         * bindings/python/rb.defs:
4058         * bindings/python/rb.override: bind rb_debug_real to rb._debug
4060         * configure.ac:
4061         * plugins/Makefile.am:
4062         * plugins/rb-python-module.c: (rb_python_module_init_python):
4063         * plugins/rb/Makefile.am: add a place to put common python classes.
4064         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
4065         rb module/
4067         * plugins/lyrics/Makefile.am:
4068         * plugins/lyrics/Loader.py:
4069         * plugins/artdisplay/artdisplay/Makefile.am:
4070         * plugins/artdisplay/artdisplay/Loader.py:
4071         * plugins/rb/Loader.py: move the loader class to rb.Loader
4073         * plugins/rb/__init__.py: redirect stdout from python (e.g.
4074         "print ...") to rb_debug. error output (e.g. exceptions) are still
4075         printed on stderr.
4077         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4078         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4079         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
4080         instead of Loader.
4082         Fixes #346895.
4084 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4086         * shell/rb-shell-player.xml:
4087         * shell/rb-shell-player.h:
4088         Correct the details of the playing-song-property-changed signal.
4090 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4092         * lib/rb-marshal.list:
4093         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4094         (rb_shell_player_entry_changed_cb):
4095         * shell/rb-shell-player.h:
4096         * shell/rb-shell-player.xml:
4097         Emit a dbus signal when a property is changed on the playing entry.
4098         Fixes #332461.
4100 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4102         * rhythmdb/rhythmdb-private.h:
4103         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4104         Fix build break with gcc 4.1 by changing RBRefString pointers into
4105         gpointers.
4107 2006-07-07  James Livingston  <doclivingston@gmail.com>
4109         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
4110         remove an extraneous !, which caused it not to monitor folders in the
4111         library with no tracks in them. Fixes #346759.
4113 2006-07-07  James Livingston  <doclivingston@gmail.com>
4115         * rhythmdb/rhythmdb-private.h:
4116         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4117         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
4118         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
4119         (rhythmdb_entry_get_string):
4120         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
4121         flags for the affected properties. _sync_mirrored will get run
4122         automatically when a dirty property is accessed, which improves
4123         performance a bit (especially during startup) as we don't need to sync
4124         every time they change. From #325215.
4126         * tests/bench-rhythmdb-load.c
4127         * tests/Makefile.am: add a RhythmDB loading benchmark.
4129 2006-07-06  James Livingston  <doclivingston@gmail.com>
4131         * bindings/python/rb.defs:
4132         * bindings/python/rb.override: some more fixes, so that
4133         python classes derived from RBSource work correctly.
4135 2006-07-06  James Livingston  <doclivingston@gmail.com>
4137         * configure.ac: bump pygtk requirements to 2.8, since we're already
4138         using some features of it, and weird things will happen if people are
4139         actually trying to use pygtk 2.6.
4141         * bindings/python/rb.override:
4142         * bindings/python/rhythmdb.defs:
4143         * bindings/python/rhythmdb.override: allow python to set
4144         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
4146         * sources/rb-browser-source.c: remove some left over member variables
4148 2006-07-06  James Livingston  <doclivingston@gmail.com>
4150         * rhythmdb/rhythmdb.c:
4151         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4152         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
4153         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
4154         former is pointless (as rhythmdb already knows which it should use)
4155         and the latter doesn't seem useful at all, and possibly bad. From
4156         #330226.
4158         * bindings/python/rhythmdb.defs:
4159         * bindings/python/rhythmdb.override:
4160         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
4161         (handle_song_listing):
4162         * podcast/rb-podcast-manager.c:
4163         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
4164         (rb_podcast_manager_insert_feed):
4165         * sources/rb-audiocd-source.c: (entry_set_string_prop),
4166         (rb_audiocd_create_track_entry):
4167         * sources/rb-ipod-source.c: (entry_set_string_prop),
4168         (add_ipod_song_to_db):
4169         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
4170         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
4172 2006-07-05  James Livingston  <doclivingston@gmail.com>
4174         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4175         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
4176         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
4177         totem-plparser gives us, or the file name if it doesn't give us
4178         anything. Set the default file name when saving too. Fixes #345261
4180 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4182         patch by: Ed Catmur  <ed@catmur.co.uk>
4184         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
4185         Skip all hidden directories, not just trash, and skip unreadable
4186         files.  Fixes #346322.
4188 2006-07-04  James Livingston  <doclivingston@gmail.com>
4190         * plugins/rb-module.h:
4191         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
4192         (rb_module_new):
4193         * plugins/rb-plugin.h:
4194         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
4195         (rb_plugin_finalise), (rb_plugin_set_property),
4196         (rb_plugin_get_property), (rb_plugin_activate),
4197         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
4198         (rb_plugin_find_file):
4199         * plugins/rb-plugins-engine.c: (load_plugin_module):
4200         * plugins/rb-python-module.c: (rb_python_module_new_object),
4201         (rb_python_module_new):
4202         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
4203         rb_plugin_find_file method for locating plugin-specific data. Fixes
4204         346473.
4206         * bindings/python/rb.defs:
4207         * plugins/Makefile.am:
4208         * plugins/generic-player/rb-generic-player-plugin.c:
4209         (create_source_cb):
4210         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
4212 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4214         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
4215         (rb_metadata_can_save), (rb_metadata_save):
4216         Protect the dbus connection with a mutex.
4218 2006-07-03  James Livingston  <doclivingston@gmail.com>
4220         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
4221         case of the parser/tagger not being able to be created.
4223 2006-07-03  James Livingston  <doclivingston@gmail.com>
4225         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4227         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
4228         window resizable, as it used to be. Fixes #345940.
4230 2006-07-01  James Livingston  <doclivingston@gmail.com>
4232         Patch from Ståle Lyngaas  <staale@lyngaas.com>
4234         * rhythmdb/rhythmdb.h:
4235         * rhythmdb/rhythmdb-private.h:
4236         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4237         (rhythmdb_tree_parser_end_element), (save_entry):
4238         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
4239         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
4240         (set_props_from_metadata), (rhythmdb_entry_set_internal),
4241         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
4242         MusicBrainz track IDs in the database, and bump the on-disk version
4243         number to trigger a metadata reload.
4245         * backends/gstreamer/rb-player-gst.c: (process_tag):
4246         * metadata/rb-metadata-common.c:
4247         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
4248         (rb_metadata_gst_field_to_gst_tag):
4249         * metadata/rb-metadata.h: grab MB track IDs and use them.
4251         * plugins/audioscrobbler/rb-audioscrobbler.c:
4252         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4253         (rb_audioscrobbler_timeout_cb),
4254         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
4255         the other metadata. Fixes #343491.
4257 2006-06-30  James Livingston  <doclivingston@gmail.com>
4259         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
4260         method.
4262 2006-06-30  James Livingston  <doclivingston@gmail.com>
4264         * bindings/python/rb.defs:
4265         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4266         (rb_browser_source_songs_show_popup_cb),
4267         (default_show_entry_popup):
4268         * sources/rb-browser-source.h:
4269         * sources/rb-library-source.c: (rb_library_source_class_init),
4270         (rb_library_source_constructor), (impl_show_popup): allow
4271         RBBrowserSource-derived sources to override the entry context menu
4272         properly - by making it a virtual function, rather than relying on
4273         signal handler order (which doesn't really work).
4275 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4277         * rhythmdb/rhythmdb-query-model.c:
4278         (rhythmdb_query_model_reapply_query_cb):
4279         Use the original query, not the preprocessed query, when redoing
4280         the query to pick up entries that previously didn't match.
4281         Preprocessing the query twice is bad.  Fixes #346186.
4283 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4285         * plugins/audioscrobbler/rb-audioscrobbler.c:
4286         (rb_audioscrobbler_song_changed_cb):
4287         Just check if the elapsed time has been reset, rather
4288         than checking if it's a different track.  Fixes #344827.
4290 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4292         * backends/gstreamer/rb-player-gst.c:
4293         Set cdda source read-speed to 1.  Fixes gaps in playback while the
4294         drive spins up, #344576.
4296 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4298         * plugins/audioscrobbler/rb-audioscrobbler.c:
4299         (rb_audioscrobbler_perform):
4300         Use HTTP/1.1.  Fixes #345895.
4302 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4304         * lib/rb-preferences.h:
4305         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4306         (check_auto_proxy_config), (get_proxy_config):
4307         Don't try to use a HTTP proxy if no proxy host is specified.
4308         Alert the user to the fact that we don't support automatic proxy
4309         configuration as infrequently as possible.  From #345712.
4311 2006-06-25  James Livingston  <doclivingston@gmail.com>
4313         * rhythmdb/rhythmdb-property-model.c:
4314         (rhythmdb_property_model_set_property): connect to the
4315         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4316         things get removed correctly, fixes #338183.
4318 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4320         * rhythmdb/rhythmdb-query-model.c:
4321         (rhythmdb_query_model_drag_data_received):
4322         Fix build break.
4324 2006-06-25  James Livingston  <doclivingston@gmail.com>
4326         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4328         * widgets/rb-search-entry.c: (rb_search_entry_init),
4329         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4330         search box have a pale yellow background when it's in use, except for
4331         when the user has an "accessability" theme. Code based heavily on
4332         Epiphany's. Fixes #344416.
4334 2006-06-25  James Livingston  <doclivingston@gmail.com>
4336         * plugins/lyrics/lyrics.py:
4337         * plugins/pythonconsole/pythonconsole.py:
4338         * plugins/sample-python/sample-python.py: don't import gettext stuff
4339         as _, as the C code does this for us. Fixes i18n for python plugins,
4340         #343081
4342 2006-06-25  James Livingston  <doclivingston@gmail.com>
4344         * rhythmdb/rhythmdb-query-model.c:
4345         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4346         a model use a reorder rather then deleting and re-adding the entry.
4347         This means it does do weird things like stop playback of a track that
4348         is dragged, fixing #337657.
4350 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4352         * metadata/rb-metadata-dbus-service.c:
4353         Add missing #include <glib/gi18n.h> from previous commit.
4355 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4357         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4359         * metadata/rb-metadata-dbus-service.c: (main):
4360         Initialize gettext in the metadata helper.
4361         * metadata/rb-metadata-gst.c:
4362         Make some strings translatable.  Fixes #345286.
4364 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4366         * configure.ac:
4367         * lib/Makefile.am:
4368         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4369         Inline the custom icons so they can always be loaded, but are still
4370         themable.  Fixes #345796.
4372 2006-06-23  James Livingston  <doclivingston@gmail.com>
4374         * sources/rb-auto-playlist-source.c:
4375         (rb_auto_playlist_source_do_query): stop the search box being applied
4376         for limits in auto playlists. Fixes #345307.
4378 2006-06-23  James Livingston  <doclivingston@gmail.com>
4380         * shell/rb-shell-clipboard.c:
4381         (rb_shell_clipboard_set_source_internal),
4382         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4383         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4384         non-library tracks, as we don't supprot it yet. From #345248.
4386 2006-06-23  James Livingston  <doclivingston@gmail.com>
4388         patch by: Brian Cameron  <brian.cameron@sun.com>
4390         * plugins/generic-player/rb-generic-player-plugin.c:
4391         * plugins/generic-player/rb-generic-player-source.c:
4392         * plugins/generic-player/rb-nokia770-source.c:
4393         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4394         Fixes 345673.
4396 2006-06-22  James Livingston  <doclivingston@gmail.com>
4398         * backends/rb-player.c: (rb_player_interface_init):
4399         * lib/rb-marshal.list:
4400         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4401         * rhythmdb/rhythmdb-query-model.c:
4402         (rhythmdb_query_model_class_init):
4403         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4404         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4405         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4406         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4407         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4408         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4409         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4410         possible not.
4412 2006-06-20  James Livingston  <doclivingston@gmail.com>
4414         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4416         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4417         metadata to clients. Fixes #345276.
4419 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4421         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4422         (rb_add_id3_tagger):
4423         Fix plugin/element version detection for id3v2mux.
4425 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4427         * sources/rb-source.c: (rb_source_finalize),
4428         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4429         (_autohide_update_visibility),
4430         (_rb_autohide_source_post_entry_deleted_cb),
4431         (_rb_autohide_source_row_inserted_cb),
4432         (_rb_source_hide_when_empty):
4433         Use post-entry-delete signal to update status and autohide sources.
4435 2006-06-20  James Livingston  <doclivingston@gmail.com>
4437         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4438         "selection changed" idle callback, if present.
4440 2006-06-19  James Livingston  <doclivingston@gmail.com>
4442         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4444         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4445         don't try to translate the empty string. Fixes #345285.
4447 2006-06-19  James Livingston  <doclivingston@gmail.com>
4449         * bindings/python/rhythmdb.override: more python binding fixes
4451 2006-06-19  James Livingston  <doclivingston@gmail.com>
4453         * lib/rb-util.c: (rb_copy_function):
4454         * lib/rb-util.h: add a function that returns the same pointer it was
4455         passed.
4457         * rhythmdb/rhythmdb.h:
4458         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4459         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4460         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4461         and RhythmDBEntryType into boxed types. This allows them to be used
4462         from python. Note that entry-types aren't actually reference counted
4463         (yet).
4465         * bindings/python/rb.defs:
4466         * bindings/python/rhythmdb.defs:
4467         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4468         return types of some bindings.
4470         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4471         (process_added_entries_cb), (rhythmdb_entry_finalize),
4472         (rhythmdb_entry_delete):
4473         * daapsharing/rb-daap-connection.c:
4474         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4475         (rb_daap_connection_get_property):
4476         * plugins/generic-player/rb-generic-player-source.c:
4477         (rb_generic_player_source_load_songs), (load_playlist_file):
4478         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4479         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4480         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4481         (idle_process_update), (rhythmdb_query_model_add_entry),
4482         (rhythmdb_query_model_insert_into_main_list),
4483         (rhythmdb_query_model_insert_into_limited_list),
4484         (rhythmdb_query_model_remove_from_main_list),
4485         (rhythmdb_query_model_remove_from_limited_list),
4486         (rhythmdb_query_model_drag_data_received),
4487         (rhythmdb_query_model_add_results),
4488         (rhythmdb_query_model_get_column_type),
4489         (rhythmdb_query_model_get_value):
4490         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4491         (rhythmdb_tree_entry_delete), (remove_one_song):
4492         * shell/rb-play-order-linear-loop.c:
4493         (rb_linear_play_order_loop_get_next),
4494         (rb_linear_play_order_loop_get_previous):
4495         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4496         (rb_linear_play_order_get_previous):
4497         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4498         (rb_queue_play_order_get_previous):
4499         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4500         (rb_random_filter_history), (rb_random_play_order_get_next),
4501         (rb_random_play_order_go_next), (rb_random_db_changed),
4502         (rb_random_playing_entry_changed):
4503         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4504         (remove_from_history), (add_randomly_to_history),
4505         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4506         * shell/rb-play-order.c: (rb_play_order_class_init),
4507         (rb_play_order_set_property), (rb_play_order_get_property),
4508         (rb_play_order_update_have_next_previous):
4509         * shell/rb-play-order.h:
4510         * shell/rb-shell-clipboard.c:
4511         (rb_shell_clipboard_process_deletions),
4512         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4513         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4514         * sources/rb-auto-playlist-source.c:
4515         (rb_auto_playlist_source_constructor):
4516         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4517         (rb_browser_source_set_property), (rb_browser_source_get_property),
4518         (rb_browser_source_do_query):
4519         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4520         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4521         * sources/rb-ipod-source.c: (add_rb_playlist),
4522         (add_ipod_song_to_db), (impl_paste):
4523         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4524         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4525         * sources/rb-library-source.c: (layout_example_label_update):
4526         * sources/rb-missing-files-source.c:
4527         (rb_missing_files_source_class_init),
4528         (rb_missing_files_source_set_property),
4529         (rb_missing_files_source_get_property),
4530         (rb_missing_files_source_new):
4531         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4532         (rb_playlist_source_set_property),
4533         (rb_playlist_source_get_property):
4534         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4535         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4536         (construct_query_from_selection):
4537         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4538         * sources/rb-static-playlist-source.c:
4539         (rb_static_playlist_source_constructor),
4540         (rb_static_playlist_source_add_location_internal):
4541         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4542         * widgets/rb-header.c: (rb_header_class_init),
4543         (rb_header_set_property), (rb_header_get_property):
4544         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4545         (rb_library_browser_set_property),
4546         (rb_library_browser_get_property):
4547         * widgets/rb-song-info.c: (rb_song_info_class_init),
4548         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4549         change, do s/pointer/boxed/ in many places and free entry-types
4550         properly.
4552 2006-06-18  James Livingston  <doclivingston@gmail.com>
4554         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4555         unushed GThreadPool non-exclusive threads every now and then.
4557         * rhythmdb/rhythmdb-private.h:
4558         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4559         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4560         threads. Fixes #341593
4562 2006-06-19  James Livingston  <doclivingston@gmail.com>
4564         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4565         the "Track number" checkbox actually work for playlists. From #329986.
4567 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4569         * plugins/generic-player/rb-generic-player-source.c:
4570         Get playlist and audio folder information from HAL.  Fixes #333845.
4572 2006-06-18  James Livingston  <doclivingston@gmail.com>
4574         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4576         * widgets/rb-entry-view.h:
4577         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4578         (rb_entry_view_append_column_custom),
4579         (rb_entry_view_insert_column_custom): add support for inserting custom
4580         columns at arbitrary locations, rather than just appending to the end.
4582         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4583         the playlists "track number" column go at the start, and add a normal
4584         track number column. Fixes #329986.
4586 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4588         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4589         a mnemonic conflict.  Add ellipses to the edit button.
4590         * sources/rb-library-source.c:
4591         (rb_library_source_edit_profile_clicked_cb),
4592         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4593         mnemonic widget to the labels. Fixes #344114.
4595 2006-06-18  James Livingston  <doclivingston@gmail.com>
4597         * configure.ac: bump version
4598         * NEWS: add NEWS for 0.9.5
4600 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4602         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4603         (rb_uri_handle_recursively):
4604         Don't attempt to recurse into directories we can't open.  
4605         Fixes #341485.
4607 2006-06-18  James Livingston  <doclivingston@gmail.com>
4609         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4611         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4612         #344610.
4614 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4616         * bindings/python/rb.defs:
4617         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4618         * shell/rb-shell-player.h:
4619         * shell/rb-shell.c: (rb_shell_play_entry):
4620         Add source parameter to rb_shell_player_play_entry, using the selected
4621         source if not specified.
4623         * shell/rb-play-order.c: (rb_play_order_class_init),
4624         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4625         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4626         (default_playing_entry_removed):
4627         * shell/rb-play-order.h:
4628         Move entry removal handling back to the row-deleted signal, as we need
4629         the entry to be present in the model.  When changing to the next entry
4630         after the playing entry is deleted, set the new entry as the playing
4631         entry and then sync it to the player in an idle handler, so we don't
4632         end up playing it if it was removed too.
4633         * shell/rb-play-order-queue.c:
4634         (rb_queue_play_order_playing_entry_changed),
4635         (rb_queue_play_order_playing_entry_removed):
4636         Use the playing-entry-removed handler from the play order class,
4637         setting a flag so we don't try to remove the already-removed entry
4638         from the model.
4640         This makes removal of the playing entry from playlists etc. work more
4641         or less correctly for all play orders.  Fixes #344627.
4643 2006-06-17  James Livingston  <doclivingston@gmail.com>
4645         patch by: Elijah Newren  <newren@gmail.com>
4647         * tests/test-rhythmdb.c: fix the build with older versions of check
4648         (again). Fixes #343718.
4650 2006-06-17  James Livingston  <doclivingston@gmail.com>
4652         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4653         name for capsfilter's "caps" property. Fixes #344968.
4655 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4657         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4658         Don't leak the selected entry list when finding an entry to play.
4660 2006-06-17  James Livingston  <doclivingston@gmail.com>
4662         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4663         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4664         as a O(1) one works fine, and it will get called often when the user
4665         deleted multiple tracks. Part of #344922.
4667 2006-06-17  James Livingston  <doclivingston@gmail.com>
4669         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4670         rb_shell_player_stop and rb_shell_player_playpause not mutually
4671         recursive. Fixed #336912.
4673 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4675         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4676         Treat nested elements inside properties as unknown.  Fixes parsing of
4677         podcast feeds with unescaped HTML in description tags, bug #344532.
4679 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4681         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4682         when quitting.  Fixes #344875.
4684 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4686         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4687         Move the playing-entry-removed handling to after the normal entry
4688         delete handling, since we're called after the entry has been removed
4689         from the query model now.  Fixes crashes described in #344627.
4691 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4693         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4694         (rb_rating_get_rating_from_widget):
4695         * widgets/rb-rating.c: (rb_rating_class_init),
4696         (rb_rating_finalize), (rb_rating_get_property),
4697         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4698         (rb_rating_button_press_cb):
4699         Don't crash when ratings icons can't be found.  Fixes #344533.
4701 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4703         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4705 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4707         * Makefile.am:
4708         * configure.ac:
4709         * remote/Makefile.am:
4710         * remote/dbus/Makefile.am:
4711         * remote/dbus/rb-client.c:
4712         * shell/Makefile.am:
4713         New dbus client program providing --play/--next etc. arguments.
4714         Fixes #340863, #155763.
4716 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4718         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4719         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4721 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4723         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4725         * rhythmdb/rhythmdb-query-model.c:
4726         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4727         to Library incorrectly
4729 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4731         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4732         Return input string untouched if gnome_vfs_uri_new returns NULL.
4733         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4734         (rb_static_playlist_source_add_list_uri):
4735         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4736         URIs don't break it.  Fixes #339033.
4738 2006-06-08  James Livingston  <doclivingston@gmail.com>
4740         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4741         for sources on the edge (i.e. the queue). Fixes #328409.
4743         * sources/rb-ipod-source.c: fix typo
4745 2006-06-08  James Livingston  <doclivingston@gmail.com>
4747         * configure.ac:
4748         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4749         --enable-ipod-writing to enable the ipod syncing code.
4751 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4753         * sources/rb-library-source.c: (layout_example_label_update):
4754         add missing comma so we don't generate broken markup.
4756 2006-06-08  James Livingston  <doclivingston@gmail.com>
4758         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4759         tag-merging with id3v2mux as well as id3mux. From #342330.
4761 2006-06-07  James Livingston  <doclivingston@gmail.com>
4763         * tests/test-rhythmdb.c: #define fail_if for old version of check
4764         which don't have it. Hopefully fixes #343718.
4766 2006-06-07  James Livingston  <doclivingston@gmail.com>
4768         * shell/rb-playlist-manager.c:
4769         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4770         g_value_array_free with NULL. Fixes #341053.
4772 2006-06-07  James Livingston  <doclivingston@gmail.com>
4774         * shell/rb-playlist-manager.c:
4775         (rb_playlist_manager_playlist_entries_changed),
4776         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4777         instead of "row-removed", which fixes updating "burn playlist"
4778         sensitivity. Fixes #331119.
4780 2006-06-07  James Livingston  <doclivingston@gmail.com>
4782         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4783         rather than restarting if the source uses _RETRY and there is an
4784         actual error (like an undecodable stream) rather than it just dropping
4785         out and causing EOS.
4787 2006-06-07  James Livingston  <doclivingston@gmail.com>
4789         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4790         free the pixbufs if they couldn't be loaded. Fixed #343852.
4792 2006-06-07  James Livingston  <doclivingston@gmail.com>
4794         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4795         the close button on the dialog work. Fixes #335346.
4797 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4799         * sources/rb-sourcelist-model.c: (path_is_droppable),
4800         (path_is_reorderable):
4801         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4802         (row_activated_cb), (emit_show_popup), (key_release_cb),
4803         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4804         Ignore group marker rows in the source list.  Fixes #344089, a couple
4805         of other crashers, and some weird UI glitches too.
4807 2006-06-07  James Livingston  <doclivingston@gmail.com>
4809         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4810         the seeking query fails. This is needed because many gst elements
4811         don't implement the seeking query yet. Should fix 329977.
4813 2006-06-06  James Livingston  <doclivingston@gmail.com>
4815         * configure.ac: bump version for a prerelease, turn on track transfer
4816         by default.
4818         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4819         ipod transfer stuff, since it has big issues and we'll hopefully land
4820         real support (bug 310774) after 0.9.5
4822 2006-06-06  James Livingston  <doclivingston@gmail.com>
4824         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4825         id3v2mux once we've detected it.
4827 2006-06-06  James Livingston  <doclivingston@gmail.com>
4829         * lib/Makefile.am:
4830         * tests/test-rhythmdb.c: undo accidental commit which caused
4831         rb-thread.c to be built (which it isn't normally)
4833 2006-06-06  James Livingston  <doclivingston@gmail.com>
4835         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4836         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4837         fail_{if/unless} calls, as some versions of check need them (they are
4838         optional in others). Should fix bug 343718.
4840 2006-06-06  James Livingston  <doclivingston@gmail.com>
4842         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4843         343836.
4844         
4845         * lib/Makefile.am:
4846         * lib/rb-thread.c: (process_actions):
4847         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4848         tests that don't pass.
4850 2006-06-05  James Livingston  <doclivingston@gmail.com>
4852         * data/glade/Makefile.am:
4853         * data/glade/load-failure.glade:
4854         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4855         dialog.
4857 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4859         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4860         checked in.
4862 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4864         * bindings/python/rb.defs:
4865         * sources/rb-source.h:
4866         * sources/rb-source.c: (rb_source_class_init),
4867         (rb_source_set_property), (rb_source_get_property),
4868         (rb_sourcelist_group_get_type):
4869         Add 'sourcelist-group' property on the RBSource class, describing how
4870         sources should be grouped in the source list.
4872         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4873         (rb_sourcelist_model_new), (real_row_is_separator),
4874         (rb_sourcelist_model_is_row_visible),
4875         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4876         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4877         (rb_sourcelist_model_row_draggable),
4878         (rb_sourcelist_model_row_inserted_cb),
4879         (rb_sourcelist_model_row_deleted_cb),
4880         (rb_sourcelist_model_get_group_path):
4881         * sources/rb-sourcelist-model.h:
4882         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4883         (rb_sourcelist_append):
4884         Add group marker rows for each sourcelist group, and use these to
4885         insert sources in the right place.  Sort transient sources (DAAP
4886         shares) by name.  Show the group marker rows as separators when the
4887         next visible row is a source.  Make persistant sources (playlists) and
4888         removable sources reorderable using drag and drop, restricting them
4889         within the source groups.
4890         
4891         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4892         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4893         * sources/rb-daap-source.c: (rb_daap_source_new):
4894         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4895         * sources/rb-static-playlist-source.c:
4896         (rb_static_playlist_source_new):
4897         * plugins/generic-player/rb-generic-player-source.c:
4898         (rb_generic_player_source_new):
4899         * plugins/generic-player/rb-nokia770-source.c:
4900         (rb_nokia770_source_new):
4901         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4902         Add source list group information to existing source classes.
4904         Fixes #318754 and #336492.
4906 2006-06-04  James Livingston  <doclivingston@gmail.com>
4908         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4909         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4910         win32 build fixes.
4912 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4914         * rhythmdb/rhythmdb-query-model.c:
4915         (rhythmdb_query_model_class_init),
4916         (rhythmdb_query_model_remove_from_main_list):
4917         * rhythmdb/rhythmdb-query-model.h:
4918         Add a new 'post-entry-delete' signal, emitted when the entry has been
4919         removed from the model's data structures.
4921         * shell/rb-play-order.c: (rb_play_order_finalize),
4922         (rb_play_order_query_model_changed),
4923         (rb_play_order_post_entry_delete_cb):
4924         Use the new signal to update the play order, so the queue play order
4925         doesn't try to scroll to entries that don't exist in a way that causes
4926         the tree view to crash.  Fixes #340216.
4928 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4930         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4931         Fix rb_debug call I missed previously.
4933 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4935         * metadata/rb-metadata-gst.c:
4936         Don't use NULL as the error message for ignored files, as it crashes
4937         with some C libraries.  Fixes #343713.
4939 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4941         * widgets/rb-dialog.c: (rb_error_dialog):
4942         * widgets/rb-dialog.h:
4943         Mark rb_error_dialog as taking printf-like arguments, and use a format
4944         string for the primary message rather than passing in the message
4945         directly.
4947         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4948         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4949         (info_available_cb):
4950         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4951         * shell/rb-removable-media-manager.c:
4952         (rb_removable_media_manager_eject_medium_cb):
4953         Make sure all calls to rb_error_dialog use string constants for the
4954         format string rather than passing the error message directly.  Remove
4955         an extra %s from the message used when playback fails.  Fixes #343562.
4957         * lib/rb-debug.h:
4958         * sources/rb-audiocd-source.c:
4959         * plugins/audioscrobbler/rb-audioscrobbler.c:
4960         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4961         Mark rb_debug as taking printf-like arguments and fix a few resulting
4962         warnings.
4964 2006-06-02  James Livingston  <doclivingston@gmail.com>
4966         * configure.ac:
4967         + macros/check.m4: add support for using check for unit tests, the .m4
4968         files is so autogen can run without check being installed
4970         * tests/Makefile.am:
4971         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4972         some of the old tests, and add some new ones. Currently
4973         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4974         yet (the query doesn't return any entries).
4976         - tests/deserialization-test1.xml:
4977         - tests/deserialization-test2.xml:
4978         - tests/deserialization-test3.xml:
4979         - tests/test-rhythmdb-indexing.c:
4980         - tests/test-rhythmdb-simple.c:
4981         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4982         have been ported
4984         - tests/test-cd.c:
4985         - tests/test-cmdline.c: remove obsolete tests
4987 2006-06-02  James Livingston  <doclivingston@gmail.com>
4989         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4990         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4991         id3v2mux, and check whether we are using a version of id3mux that has
4992         the correct merge-mode behaviour.
4994         * plugins/sample-python/Makefile.am: fix distcheck.
4996         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4997         the changed-files source was added before trying to remove it.
4999         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
5000         *old* bug which would crash if a query with top-level disjunctions
5001         tried to check later disjunctive parts. Hooray for unit-testing.
5003 2006-06-02  William Jon McCann  <mccann@jhu.edu>
5005         * player/rb-recorder-gst.c (rb_recorder_set_device):
5006         Check for a null drive.
5008 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5010         * lib/Makefile.am:
5011         * lib/rb-stock-icons.c: (rb_stock_icons_init):
5012         Register the app icon as a builtin if the icon theme can't find it.
5014 2006-05-31  James Livingston  <doclivingston@gmail.com>
5016         * player/rb-recorder-gst.c: add missing include.
5018 2006-05-30  William Jon McCann  <mccann@jhu.edu>
5020         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
5021         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
5022         (tick_timeout_cb), (rb_recorder_sync_pipeline),
5023         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
5024         (rb_recorder_set_device), (rb_recorder_get_default_device):
5025         * shell/main.c: (main):
5026         * shell/rb-removable-media-manager.c:
5027         (rb_removable_media_manager_finalize),
5028         (get_nautilus_burn_drive_for_path),
5029         (rb_removable_media_manager_playing_uri_changed_cb),
5030         (rb_removable_media_manager_load_media),
5031         (nautilus_burn_drive_get_device),
5032         (rb_removable_media_manager_scan):
5033         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
5035         Update for libnautilus-burn 2.15.3 API changes.
5036         Fixes #342604
5038 2006-05-30  James Livingston  <doclivingston@gmail.com>
5040         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
5041         "return" to that it asks for the password again if it was wrong.
5043 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5045         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
5046         typefind element.
5048 2006-05-30  James Livingston  <doclivingston@gmail.com>
5050         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5051         (download_progress_cb): don't do wonky things if the transfer
5052         "suceeds" without transferring any data.
5054 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5056         * sources/rb-library-source.c: (layout_example_label_update),
5057         (build_filename):  Fix crash when no audio profile is selected.
5058         Fixes #341447.
5060 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5062         * shell/rb-shell.c: (rb_shell_clear_queue):
5063         * shell/rb-shell.h:
5064         * shell/rb-shell.xml:
5065         * sources/rb-play-queue-source.c:
5066         (rb_play_queue_source_clear_queue),
5067         (rb_play_queue_source_cmd_clear):
5068         * sources/rb-play-queue-source.h:
5069         Add clearQueue dbus method.
5071 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5073         * shell/main.c: (main):  Implement --quit option.
5075 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5077         * rhythmdb/rhythmdb-private.h:
5078         * rhythmdb/rhythmdb-tree.h:
5079         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
5080         (rhythmdb_entry_insert), (rhythmdb_entry_set),
5081         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
5082         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
5083         (rhythmdb_entry_get_boolean):
5084         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
5085         bitmask, giving the db backend anything past the first 16 bits for 
5086         its own private use.
5088         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5089         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
5090         Add a 'loading' flag to indicate that an entry is being loaded from
5091         disk, and use that to ignore entry_set operations on such entries
5092         rather than the 'inserted' flag, which doesn't quite mean the same
5093         thing.  Fixes #342694.
5095 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5097         * shell/rb-shell.xml: Remove visibility property, since it causes
5098         crashes (dbus bug 7057) and doesn't do much else.
5100 2006-05-28  James Livingston  <doclivingston@gmail.com>
5102         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
5104         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5105         * po/POTFILES.in: fix some more i18n issues.
5107 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5109         * bindings/python/rb.defs:
5110         * shell/rb-shell-player.c: (rb_shell_player_playpause),
5111         (filter_mmkeys):
5112         * shell/rb-shell-player.h:
5113         Deprecate the useless 'ignore_stop' parameter to
5114         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
5115         API.  From bug #334829.
5117 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5119         * plugins/generic-player/rb-generic-player-source.c:
5120         (visit_playlist_dirs), (default_transform_playlist_uri):
5121         When playlist parsing fails, unref the playlist, not the parent
5122         source.  Fix memory leak in playlist uri transform.
5123         * plugins/generic-player/rb-nokia770-source.c:
5124         (impl_transform_playlist_uri):
5125         Fix memory leak in playlist uri transform.
5127 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
5129         * doc/reference/Makefile.am: fix grk-doc build
5131 2006-05-27  James Livingston  <doclivingston@gmail.com>
5133         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5135         * plugins/lyrics/lyrics.py:
5136         * po/POTFILES.in: Make strings in plugins translatable. From bug
5137         343081.
5139 2006-05-27  James Livingston  <doclivingston@gmail.com>
5141         * backends/Makefile.am:
5142         * backends/gstreamer/Makefile.am:
5143         * lib/Makefile.am:
5144         * plugins/audioscrobbler/Makefile.am:
5145         * plugins/generic-player/Makefile.am:
5146         * po/POTFILES.in:
5147         * rhythmdb/rhythmdb-monitor.c:
5148         * rhythmdb/rhythmdb.c:
5149         * sources/Makefile.am:
5150         * widgets/Makefile.am: fix compilation after some CVS surgery was
5151         done.
5153 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5155         * bindings/python/rhythmdb.defs:
5156         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
5157         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
5158         (rhythmdb_query_deserialize):
5159         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
5160         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
5161         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
5162         (rhythmdb_entry_register_type_alias),
5163         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
5164         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
5165         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
5166         (rhythmdb_entry_podcast_feed_get_type),
5167         (rhythmdb_entry_import_error_get_type),
5168         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
5169         * rhythmdb/rhythmdb.h:
5170         Allocate a specified amount of extra memory for each db entry, to be
5171         used to store fields specific to the entry type.  Optionally associate
5172         a name with each entry type, to be used when saving entries and
5173         auto playlists to disk.  Allow entry types to have multiple names
5174         to handle older playlist files that used '0' to represent 'song'.
5175         Use private data to store podcast fields.
5177         * rhythmdb/rhythmdb-private.h:
5178         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5179         (rhythmdb_tree_parser_end_element), (save_entry),
5180         (rhythmdb_tree_entry_set):
5181         Simplify property handling by using existing code to convert
5182         properties from strings to GValues and to set properties on entries.
5183         Other assorted changes due to the above.
5185         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5186         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
5187         * sources/rb-generic-player-source.c:
5188         (rb_generic_player_source_new):
5189         * sources/rb-ipod-source.c: (rb_ipod_source_new):
5190         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
5191         * sources/rb-psp-source.c: (rb_psp_source_new):
5192         Update for changes to rhythmdb_entry_register_type.  None of these
5193         entry types need names or use private data.
5195         Fixes #337429.
5197 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5199         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5200         Fix creation of ignored-file db entries - need to check for
5201         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
5203 2006-05-25  James Livingston  <doclivingston@gmail.com>
5205         * AUTHORS:
5206         * MAINTAINERS: update my email address
5208 2006-05-25  James Livingston  <doclivingston@gmail.com>
5210         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
5211         "(... mix)" when searching for lyrics. Cache the lyrics under
5212         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
5214 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5216         * sources/rb-import-errors-source.c:
5217         (rb_import_errors_source_class_init):
5218         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5219         * sources/rb-browser-source.c: (rb_browser_source_class_init):
5220         * sources/rb-source.c: (rb_source_class_init),
5221         (default_move_to_trash):
5222         Implement the basic move-to-trash operation once in rb-source.c, 
5223         rather than in each source type that supports it.
5225         * plugins/ipod/rb-ipod-plugin.c:
5226         * shell/rb-removable-media-manager.c:
5227         * shell/rb-shell.c: (rb_shell_constructor):
5228         Only scan removable media once after loading plugins.  Add a flag
5229         plugins can use to check if the initial scan has been done.
5231         * data/rhythmbox.schemas:
5232         Enable ipod and generic-player plugins by default.
5233         
5234         * configure.ac:
5235         * data/ui/Makefile.am:
5236         * data/ui/generic-player-ui.xml:
5237         * data/ui/rhythmbox-ui.xml:
5238         * plugins/Makefile.am:
5239         * plugins/generic-player/Makefile.am:
5240         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
5241         * plugins/generic-player/rb-generic-player-plugin.c:
5242         * sources/Makefile.am:
5243         * sources/rb-generic-player-source.c:
5244         * sources/rb-generic-player-source.h:
5245         * sources/rb-nokia770-source.c:
5246         * sources/rb-nokia770-source.h:
5247         * sources/rb-psp-source.c: (visit_playlist_dirs):
5248         * sources/rb-psp-source.h:
5249         Pluginise generic player (and nokia770 and PSP) support and add
5250         move-to-trash for players not mounted read-only.
5251         Fixes #342868.
5253 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5255         * daapsharing/rb-daap-connection.c (handle_song_listing):
5256         Lower bound check for batch commit.  Fixes #342848
5258         * sources/rb-daap-source.c (rb_daap_source_get_status):
5259         Always set output variables if provided.
5261 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5263         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
5264         (rhythmdb_tree_entry_delete), (remove_one_song):
5265         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
5266         Fix two db entry reference counting problems.
5267         The initial reference on the entry is held by the db backend, but it
5268         was never being dropped.  The reference count was incremented when
5269         adding an entry to the deleted_entries map and to the
5270         deleted_entries_to_emit list, but only decremented for one of those.
5272 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5274         * daapsharing/rb-daap-connection.c (http_response_handler) 
5275         (rb_daap_connection_dispose):
5276         Call soup_session_abort to make sure there are no outstanding
5277         requests when we dispose of the connection.  Ignore cancelled
5278         messages in the callback.
5280 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5282         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
5283         (rb_daap_source_disconnect): Set a flag when disconnecting
5284         the source.  Check this flag in connection callback
5285         to see if we should release the connection.
5287 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5289         * daapsharing/Makefile.am:
5290         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
5291         (rb_daap_connection_class_init), (connection_connected),
5292         (connection_disconnected), (connection_operation_done),
5293         (build_message), (connection_set_error_message),
5294         (actual_http_response_handler), (http_get),
5295         (entry_set_string_prop), (emit_progress_idle),
5296         (handle_server_info), (handle_login), (handle_update),
5297         (handle_database_info), (handle_song_listing), (handle_playlists),
5298         (handle_playlist_entries), (handle_logout),
5299         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5300         (connection_response_data_free), (connected_cb),
5301         (rb_daap_connection_connect), (disconnected_cb),
5302         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5303         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5304         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5305         (rb_daap_connection_get_property):
5306         * daapsharing/rb-daap-connection.h:
5307         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5308         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5309         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5310         (rb_daap_hash_generate):
5311         * daapsharing/rb-daap-hash.h:
5312         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5313         (rb_daap_get_icon), (remove_source), (stop_browsing),
5314         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5315         (connection_connecting_cb), (connection_disconnected_cb),
5316         (release_connection), (rb_daap_source_connection_cb),
5317         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5318         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5320         Adds a better async API for connect and disconnect.  Doesn't share
5321         callback data for every async call.  Adds a connect signal.  Uses
5322         an operation-done signal to trigger the callbacks.  Displays an
5323         error when connections fail.  A few refcounting fixes to fix
5324         crashes.  Uses a weak pointer to set the connection to NULL so we
5325         don't clobber references.  Wait for each disconnect when shutting
5326         down sources.  Split out DAAP hash stuff into its own file.  Fix
5327         typo in header.
5329         Fixes #342643
5330         
5331 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5333         * sources/rb-auto-playlist-source.c:
5334         (rb_auto_playlist_source_new_from_xml):
5335         Initialize the gvalue used to hold the size limit correctly.
5336         Fixes #342744.
5338 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5340         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5341         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5342         * shell/rb-shell.h:
5343         * shell/rb-shell.xml:
5344         Convert rb_shell_quit into a dbus method, and add visibility dbus
5345         property.
5347 2006-05-22  James Livingston  <doclivingston@gmail.com>
5349         * rhythmdb/rhythmdb.h:
5350         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5351         (rhythmdb_entry_is_editable), (action_thread_main),
5352         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5353         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5354         false, and syncing into the file.
5356         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5357         (rhythmdb_entry_iradio_get_type),
5358         (rhythmdb_entry_import_error_get_type):
5359         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5360         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5361         change the DB.
5363 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5365         * rhythmdb/Makefile.am:
5366         * rhythmdb/rhythmdb-monitor.c:
5367         * rhythmdb/rhythmdb-private.h:
5368         * rhythmdb/rhythmdb-query.c:
5369         * rhythmdb/rhythmdb.c:
5370         Split up rhythmdb.c a bit.
5372 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5374         * data/glade/audioscrobbler-prefs.glade:
5375         Add a link to the last.fm server status page.
5377 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5379         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5380         Capitalization fix.
5381         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5382         (impl_create_configure_dialog):  UI layout fixes, remove
5383         dialog separator, and capitalization fix for window title.
5384         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5385         and remove dialog separator.
5386         * data/glade/plugins.glade:  UI layout fixes.
5387         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5388         and capitalization fix.  Fixes #342438.
5390 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5392         * data/glade/podcast-properties.glade:  Fix layout of the download 
5393         location.  Fixes #342431.
5395 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5397         * data/ui/rhythmbox-ui.xml:
5398         We only need one copy of the 'add to queue' action in the edit menu.
5400 2006-05-20  James Livingston  <doclivingston@gmail.com>
5402         * data/ui/rhythmbox-ui.xml:
5403         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5404         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5405         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5406         (rb_shell_clipboard_sync),
5407         (rb_shell_clipboard_cmd_add_to_playlist_new),
5408         (rb_shell_clipboard_cmd_queue_song_info),
5409         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5410         (rb_shell_clipboard_playlist_deleted_cb),
5411         (rb_shell_clipboard_playlist_renamed_cb),
5412         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5413         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5414         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5415         dynamically generated with all the static playlists. Fixes bug 323364.
5417         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5418         right child, so it doesn't go weird when art appears and disappears.
5420 2006-05-20  James Livingston  <doclivingston@gmail.com>
5422         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5424         * rhythmdb/rhythmdb-query-model.c:
5425         (rhythmdb_query_model_set_property),
5426         (rhythmdb_query_model_finalize),
5427         (rhythmdb_query_model_reapply_query_cb):
5428         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5429         (rhythmdb_query_append_prop_multiple),
5430         (rhythmdb_query_is_time_relative):
5431         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5432         time-based criteria, fixes bug 341131.
5434 2006-05-20  James Livingston  <doclivingston@gmail.com>
5436         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5437         we have already changed playing entries. Interpolate the art size so
5438         it doesn't jump when the old and new images have different aspect
5439         ratios.
5441 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5443         * rhythmdb/rhythmdb-private.h:
5444         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5445         (save_entry):
5446         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5447         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5448         (rhythmdb_entry_get_ulong):
5449         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5450         and elsewhere, use them on the stack rather than allocating on 
5451         the heap.  From bug #342333.
5453 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5455         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5456         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5457         (add_track), (eos_cb), (error_signal_idle),
5458         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5459         (rb_recorder_construct), (recorder_track_free),
5460         (rb_recorder_finalize):
5461         * sources/rb-playlist-source-recorder.c:
5462         Support libnautilus-burn size -> capacity API change.  Add
5463         some braces to blocks.
5465 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5467         * metadata/sj-metadata-musicbrainz.c:
5468         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5469         Sync with sound-juicer in CVS.  Fixes #342177
5470         * sources/rb-audiocd-source.c: Don't declare variables
5471         in the middle of a block (c99ism).  Fix order of #includes.
5472         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5473         one variable per line.  Update copyright date.
5475 2006-05-19  James Livingston  <doclivingston@gmail.com>
5477         patch by: Hendrik Richter  <hendi@gnome-de.org>
5479         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5480         "translator_credits" to a hyphen, so it doesn't cause problems for
5481         tools that check access keys. Fixes bug 341832.
5483 2006-05-19  James Livingston  <doclivingston@gmail.com>
5485         * po/POTFILES.in: remove references to files that don't exist any more
5486         (fixes make distcheck).
5488 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5490         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5491         Song Lyrics dialog. Fixes bug 342322.
5493 2006-05-19  James Livingston  <doclivingston@gmail.com>
5495         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5497         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5498         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5499         version checks not break when libnotify goes to 1.0.0. Fixes bug
5500         342244.
5502 2006-05-18  James Livingston  <doclivingston@gmail.com>
5504         * shell/rb-shell-clipboard.c:
5505         * shell/rb-shell.c:
5506         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5508 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5510         * sources/rb-playlist-source-recorder.c (get_song_description):
5511         Reverse artist and title in song description.  This
5512         is useful because at least the title will be visible
5513         when there is limited space.
5515 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5517         * daapsharing/rb-daap-connection.c: (connection_get_password):
5518         Take gdk lock before emitting authenticate signal.
5519         * sources/rb-daap-source.c: (connection_connecting_cb):
5520         Get rid of the unnecessary idle handler (it's already called from one)
5521         Fixes #342047 once more.
5523 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5525         * shell/rb-shell.c: (rb_shell_class_init):
5526         * shell/rb-shell.h:
5527         * widgets/rb-song-info.c: (rb_song_info_class_init),
5528         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5529         (rb_song_info_constructor), (rb_song_info_get_property),
5530         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5531         (rb_song_info_forward_clicked_cb):
5532         * widgets/rb-song-info.h:
5533         * data/glade/song-info-multiple.glade:
5534         * lib/rb-marshal.list:
5535         * bindings/python/Makefile.am:
5536         * bindings/python/rb.defs:
5537         * bindings/python/rb.override:
5538         Allow plugins to add pages to the notebooks used in song info windows,
5539         and to track the current song displayed in single-entry windows.
5540         
5541         * configure.ac:
5542         * plugins/Makefile.am:
5543         * plugins/lyrics/Loader.py:
5544         * plugins/lyrics/Makefile.am:
5545         * plugins/lyrics/lyrics.py:
5546         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5547         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5548         as a separate window (for the playing song) or as a page in the song
5549         info window.  A few TODO items left, but this fixes #319320.
5551 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5553         Patch by:  Roozbeh Pournader
5555         * configure.ac:
5556         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5557         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5559 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5560         
5561         * sources/rb-daap-source.c: (update_connection_status):
5562         Correct return value.  Fixes #342047 again.
5564 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5566         * sources/rb-daap-source.c: (update_connection_status),
5567         (connection_connecting_cb):
5568         Update status in an idle handler so we don't rely on the gdk lock
5569         being recursive (because it isn't any more).  Fixes #342047.
5571 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5573         * lib/rb-util.c: (rb_make_duration_string),
5574         (rb_make_elapsed_time_string):
5575         * lib/rb-util.h:
5576         Add a function for formatting an elapsed time string.
5578         * shell/rb-shell-player.c: (rb_shell_player_init),
5579         (rb_shell_player_sync_with_source),
5580         (rb_shell_player_get_playing_time_string), (tick_cb):
5581         Store elapsed time in the private data structure, and use the above
5582         function.
5583         
5584         * widgets/rb-header.c:
5585         * widgets/rb-header.h:
5586         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5587         object, so everything has the same idea of the elapsed time.
5588         Fixes #339693.
5590 2006-05-16  James Livingston  <doclivingston@gmail.com>
5592         * bindings/python/rhythmdb.defs:
5593         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5594         some parametre defaults, so you don't have to pass None, False for the
5595         sorting order.
5597 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5599         * bindings/python/rhythmdb.defs:
5600         * rhythmdb/rhythmdb-query-model.c:
5601         (rhythmdb_query_model_compute_status_normal):
5602         * rhythmdb/rhythmdb-query-model.h:
5603         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5604         * rhythmdb/rhythmdb.h:
5605         Change the various compute_status methods to accept a singular/plural
5606         pair to use in the status string.
5607         
5608         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5609         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5610         * sources/rb-source.c: (default_get_status):
5611         Call entries 'songs' by default, and 'episodes' in the podcast source.
5612         Fixes #340227.
5614 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5616         patch by:  Paul Drain
5618         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5619         Fixes #341817.
5621 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5623         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5624         Generate reorder maps correctly.
5625         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5626         Scroll to the first entry from the old selection.
5627         Fixes #322992.
5629 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5631         * data/ui/rhythmbox-ui.xml:
5632         * lib/rb-preferences.h:
5633         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5634         (rb_shell_playlist_created_cb),
5635         (rb_shell_view_sidepane_changed_cb),
5636         (rb_shell_sync_sidepane_visibility),
5637         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5638         (sidepane_visibility_changed_cb):
5639         * sources/rb-podcast-source.c:
5640         Convert sourcelist visibility to side-pane visbility.
5641         Fixes #339733
5643 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5645         * widgets/rb-header.c:
5646         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5647         'player', and make it use the private data structure allocated for it.
5649 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5651         * configure.ac: enable metadata helper with dbus < 0.35.
5653 2006-05-15  James Livingston  <doclivingston@gmail.com>
5655         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5657         * data/glade/song-info.glade:
5658         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5659         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5660         (rb_song_info_update_filesize): Add the file size into the song info
5661         window. Fixes bug 340861.
5663 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5665         * bindings/python/rhythmdb.defs:
5666         * rhythmdb/rhythmdb-query-model.c:
5667         (rhythmdb_query_model_set_property),
5668         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5669         * rhythmdb/rhythmdb-query-model.h:
5670         Add a new method to chain query models without importing entries from
5671         the parent into the child.  This is useful when the subset of entries
5672         in the child can be more easily determined by running a query than by
5673         filtering entries from the parent.
5675         * bindings/python/rb.defs:
5676         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5677         (rb_library_browser_set_property),
5678         (rb_library_browser_get_property), (rb_library_browser_new),
5679         (rebuild_child_model):
5680         * widgets/rb-library-browser.h:
5681         * sources/rb-auto-playlist-source.c:
5682         (rb_auto_playlist_source_constructor):
5683         * sources/rb-static-playlist-source.c:
5684         (rb_static_playlist_source_constructor):
5685         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5686         Use more efficient queries for constructing the browser query model
5687         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5688         backend to optimise the query) and run new queries rather than
5689         filtering entries from the parent.  Fixes #341402.
5691         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5693 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5695         * configure.ac:
5696         * shell/Makefile.am:
5697         * shell/main.c: (main), (load_uri_args), (send_present_message),
5698         (unregister_dbus_handler), (handle_dbus_message),
5699         (register_dbus_handler):
5700         Add minimal support for dbus 0.31 - 0.35.
5702         * doc/reference/Makefile.am:
5703         * doc/reference/rhythmbox.types:
5704         * data/Makefile.am:
5705         * data/GNOME_Rhythmbox.server.in:
5706         * data/rhythmbox.pc.in:
5707         * remote/*:
5708         * remote/bonobo/*:
5709         Remove remaining bonobo and generic remote interface files.
5711 2006-05-14  James Livingston  <doclivingston@gmail.com>
5713         * shell/rb-shell.c: (construct_widgets):
5714         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5715         resize the browser and queue-sidebar section of their panes, unless
5716         the other section is below the minimum size. Fixes bug 331927.
5718 2006-05-13  James Livingston  <doclivingston@gmail.com>
5720         * rhythmdb/rhythmdb-query-model.c:
5721         (rhythmdb_query_model_class_init),
5722         (rhythmdb_query_model_set_property),
5723         (rhythmdb_query_model_get_property),
5724         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5725         (rhythmdb_query_model_insert_into_main_list),
5726         (rhythmdb_query_model_insert_into_limited_list),
5727         (rhythmdb_query_model_do_reorder),
5728         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5729         (rhythmdb_query_model_location_sort_func),
5730         (rhythmdb_query_model_title_sort_func),
5731         (rhythmdb_query_model_album_sort_func),
5732         (rhythmdb_query_model_artist_sort_func),
5733         (rhythmdb_query_model_genre_sort_func),
5734         (rhythmdb_query_model_track_sort_func),
5735         (rhythmdb_query_model_double_ceiling_sort_func),
5736         (rhythmdb_query_model_ulong_sort_func),
5737         (rhythmdb_query_model_date_sort_func),
5738         (rhythmdb_query_model_string_sort_func):
5739         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5740         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5741         "data destroy" property. Fixed bug 341543.
5743         * bindings/python/rhythmdb.defs:
5744         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5745         rhythmdb_query_model_set_sorting_order
5747         * rhythmdb/rhythmdb-property-model.c:
5748         (rhythmdb_property_model_drag_data_get):
5749         * sources/rb-import-errors-source.c:
5750         (rb_import_errors_source_constructor):
5751         * sources/rb-missing-files-source.c:
5752         (rb_missing_files_source_constructor):
5753         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5754         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5755         * widgets/rb-entry-view.h: adapt to the above change.
5757 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5759         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5760         (rhythmdb_tree_load):
5761         Commit loaded entries in batches, rather than individually.  
5762         More startup time reduction.
5764 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5766         * doc/reference/Makefile.am: fix gtk-doc compilation
5768 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5770         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5771         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5772         * plugins/artdisplay/artdisplay/Loader.py:
5773         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5774         Only call the first artist the best match when album==Unknown.
5775         Don't perform each query twice if album doesn't include "Vol N".
5776         Fix searching for compilations.  Fix blacklisting.
5777         Part of bug #307848
5779 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5781         * Makefile.am:
5782         * bindings/python/Makefile.am:
5783         * bindings/python/rb.defs:
5784         * bindings/python/rb.override:
5785         * configure.ac:
5786         * doc/reference/Makefile.am:
5787         * plugins/Makefile.am:
5788         * plugins/audioscrobbler/Makefile.am:
5789         * plugins/ipod/Makefile.am:
5790         * plugins/lirc/Makefile.am:
5791         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5792         (impl_activate), (impl_deactivate):
5793         * plugins/sample/Makefile.am:
5794         * remote/Makefile.am:
5795         * shell/Makefile.am:
5796         * shell/main.c: (main), (main_shell_weak_ref_cb):
5797         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5798         (rb_shell_get_property), (rb_shell_window_state_cb),
5799         (idle_hide_mainwindow), (rb_shell_set_visibility),
5800         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5801         (rb_shell_set_song_property):
5802         * shell/rb-shell.h:
5803         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5804         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5805         (rb_tray_icon_get_property), (rb_tray_icon_new),
5806         (rb_tray_icon_button_press_event_cb),
5807         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5808         (rb_tray_icon_show_window_changed_cb):
5809         * shell/rb-tray-icon.h:
5811         Remove bonobo, require DBUS.
5812         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5813         Fixes #339720
5815 2006-05-13  James Livingston  <doclivingston@gmail.com>
5817         * bindings/python/rb.override: fix some pointer-type warnings
5819 2006-05-12  James Livingston  <doclivingston@gmail.com>
5821         * lib/rb-util.c: (rb_value_free):
5822         * lib/rb-util.h: Add function to unset and free a GValue* that was
5823         allocated in the heap.
5825         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5826         the metadata hastable values
5827         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5828         leak the metadata hashtable structure
5829         * metadata/rb-metadata-dbus.c:
5830         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5831         using g_strdup and then _take_string
5833         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5834         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5835         stat something.
5837         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5838         leak the encoded string
5840         * widgets/rb-property-view.c:
5841         (rb_property_view_selection_changed_cb): set some variables to have
5842         inital values, because some code paths may not set them before we use
5843         them.
5845         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5846         don't have python warning into a debug message".
5848 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5850         * data/rhythmbox.schemas: Use zero instead of null for
5851         default burn speed.  Fixes #341283.
5853 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5855         * bindings/python/rb.defs:
5856         * widgets/rb-library-browser.c:
5857         (rb_library_browser_get_property_view):
5858         * widgets/rb-library-browser.h:
5859         Add a method to get the property view for a given property.
5861         * sources/rb-browser-source.c:
5862         (rb_browser_source_cmd_choose_genre),
5863         (rb_browser_source_cmd_choose_artist),
5864         (rb_browser_source_cmd_choose_album):
5865         Change the browser selection by changing the property view selection. 
5866         Makes the selection change visible, fixing #331740.
5868 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5870         * bindings/python/rb.defs:
5871         * bindings/python/rb.override:
5872         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5873         * shell/rb-statusbar.c: (*),
5874         * sources/rb-import-errors-source.c: (impl_get_status):
5875         * sources/rb-iradio-source.c: (impl_get_status):
5876         * sources/rb-missing-files-source.c: (impl_get_status):
5877         * sources/rb-source.c: (default_get_status),
5878         (rb_source_get_status):
5879         * sources/rb-source.h:
5880         Allow sources to provide a progress value for the status bar.
5881         Simplify status bar processing (much less polling).
5882         Consider rhythmdb busy while it's still loading the database.
5884         * daapsharing/rb-daap-connection.c: (*)
5885         * daapsharing/rb-daap-connection.h:
5886         * lib/rb-marshal.list:
5887         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5888         (rb_daap_source_init), (connection_connecting_cb),
5889         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5890         (rb_daap_source_get_status):
5891         Provide status information for DAAP connections, and move processing
5892         of large responses into a separate thread.
5893         Fixes bugs #322020 and #338978.
5895 2006-05-09  James Livingston  <doclivingston@gmail.com>
5897         Split the artdisplay plugin into several files.
5898         Fix loader and amazon-search re-use issues.
5899         Add some better search heuristics.
5901         * configure.ac:
5902         * plugins/artdisplay/Makefile.am:
5903         * plugins/artdisplay/artdisplay.py:
5904         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5905         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5906         * plugins/artdisplay/artdisplay/Loader.py:
5907         * plugins/artdisplay/artdisplay/Makefile.am:
5908         * plugins/artdisplay/artdisplay/__init__.py:
5910 2006-05-09  James Livingston  <doclivingston@gmail.com>
5912         * sources/rb-browser-source.h: remove the _has_first_added_column
5913         stuff since it isn't actually used anywhere. Sources that want it
5914         should just add it themselves, as the library already does
5916         * bindings/python/rb.defs:
5917         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5918         * sources/rb-library-source.c: (rb_library_source_class_init):
5919         * sources/rb-removable-media-source.c:
5920         (rb_removable_media_source_class_init): Remove the remanants of the
5921         above.
5923 2006-05-09  James Livingston  <doclivingston@gmail.com>
5925         * bindings/python/rb.defs:
5926         * sources/rb-browser-source.h: remove a function that was declared in
5927         the header, but not defined anywhere.
5929 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5931         * plugins/artdisplay/.cvsignore:
5932         * plugins/ipod/.cvsignore: Added.
5934 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5936         * sources/rb-auto-playlist-source.c:
5937         (rb_auto_playlist_source_new_from_xml):
5938         Fix reading of older playlist files where all three limits were
5939         specified so we take the first nonzero limit.  From #341053.
5941 2006-05-09  James Livingston  <doclivingston@gmail.com>
5943         * bindings/python/Makefile.am:
5944         * bindings/python/rb.defs:
5945         * bindings/python/rb.override: bind RBBrowserSource,
5946         RBRemovableMediaSource and RBRemovableMediamanager.
5948 2006-05-09  James Livingston  <doclivingston@gmail.com>
5950         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5952         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5953         Fixes bug 339221.
5955 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5957         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5958         Don't explode when trying to edit a query with no limit set.
5960 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5962         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5963         Clear the should_queue flag when switching to a non-submittable entry,
5964         so we don't submit songs that played for three seconds before
5965         switching to a podcast episode.
5967         * rhythmdb/rhythmdb-query-model.c
5968         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5969         in the drag data list.
5971 2006-05-08  James Livingston  <doclivingston@gmail.com>
5973         * lib/rb-util.c: (rb_value_array_append_data):
5974         * lib/rb-util.h: add function which is basically a combination of
5975         G_VALUE_COLLECT and g_value_array_append.
5977         * rhythmdb/rhythmdb-query-model.h:
5978         * rhythmdb/rhythmdb-query-model.c:
5979         (rhythmdb_query_model_class_init),
5980         (rhythmdb_query_model_set_property),
5981         (rhythmdb_query_model_get_property),
5982         (rhythmdb_query_model_finalize),
5983         (rhythmdb_query_model_update_limited_entries),
5984         (rhythmdb_query_model_set_sort_order),
5985         (rhythmdb_query_model_within_limit),
5986         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5987         saner. Rather than having <count=N, time=N, size=N> we now have a
5988         <type, value> pair. This will also make it much easier to add new
5989         limit types in the future.
5991         * shell/rb-playlist-manager.c:
5992         (rb_playlist_manager_set_automatic_playlist),
5993         (rb_playlist_manager_cmd_edit_automatic_playlist):
5994         * sources/rb-auto-playlist-source.c:
5995         (rb_auto_playlist_source_finalize),
5996         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5997         (_save_write_ulong), (_save_write_uint64),
5998         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5999         (rb_auto_playlist_source_set_query),
6000         (rb_auto_playlist_source_get_query):
6001         * sources/rb-auto-playlist-source.h:
6002         * sources/rb-library-source.c:
6003         (rb_library_source_add_child_source):
6004         * sources/rb-psp-source.c: (visit_playlist_dirs):
6005         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
6006         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
6007         * widgets/rb-query-creator.h: Adapt to the above change.
6009 2006-05-08  James Livingston  <doclivingston@gmail.com>
6011         * shell/rb-playlist-manager.c:
6012         (rb_playlist_manager_cmd_edit_automatic_playlist):
6013         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
6014         (rb_auto_playlist_source_set_query),
6015         (rb_auto_playlist_source_get_query): copy the query in the _get method
6016         and free it in things calling that. Fixes a crasher.
6018 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6020         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6021         Make entries on newly mounted volumes visible immediately, hiding them
6022         later if they turn out to be missing.  Fixes #340068.
6024 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6026         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
6027         Ignore zip files and ignore errors for files we've decided to ignore.
6029 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6031         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
6032         Add missing }, should fix #340844.
6034 2006-05-06  James Livingston  <doclivingston@gmail.com>
6036         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
6037         typo.
6039 2006-05-06  James Livingston  <doclivingston@gmail.com>
6041         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
6042         that we work with libnotify >= 0.4
6044 2006-05-06  James Livingston  <doclivingston@gmail.com>
6046         patch by: Joe Barnett  <thejoe@gmail.com>
6048         * configure.ac: check if we're using a version of libgpod that
6049         supports the Motorola ROKR
6051         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
6052         for the db path, if we using the newer version.
6054         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
6056 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6058         * rhythmdb/rhythmdb-query-model.c:
6059         (rhythmdb_query_model_drag_data_get):
6060         Use playback URI, not location, for drag data.  Fixes #322597.
6062 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
6064         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
6066 2006-05-03  James Livingston  <doclivingston@gmail.com>
6068         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
6069         (rb_add_id3_tagger), (rb_metadata_save):
6070         Set the tags on the tagging element when it is
6071         created, not during pipeline creation - which is required for
6072         dynamically created elements.
6074         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
6075         support for using the "vorbistag" element to re-tag ogg vorbis files.
6076         Fixes bug 339878.
6078 2006-05-03  James Livingston  <doclivingston@gmail.com>
6080         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
6082         * plugins/artdisplay/artdisplay.py:
6083         - Fix small bug callback of data loader getting overwritten on fast
6084         connections.
6085         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
6086         Jonathan Matthew)
6087         - Fix Rhythmbox UI blocking while loading/searching cover art
6088         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
6089         - Initial approach to allow additional "art search engines"
6090         - Further modularization in a couple of places
6091         - Minor fixes for empty entries (iradio, album, artist etc.)
6093 2006-05-03  James Livingston  <doclivingston@gmail.com>
6095         * shell/rb-playlist-manager.c:
6096         (rb_playlist_manager_playlist_entries_changed),
6097         (rb_playlist_manager_set_source): don't show the edit/delete/rename
6098         options for non-local sources, rather than showing disabled ones.
6100         * sources/rb-library-source.c: (add_child_sources_idle),
6101         (rb_library_source_constructor), (rb_library_source_new),
6102         (rb_library_source_library_location_changed),
6103         (rb_library_source_add_child_source),
6104         (rb_library_source_sync_child_sources): Create "child library" sources
6105         when the user has multiple library locations set. Fixes bug 100552.
6107 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6109         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
6110         * plugins/sample/sample.rb-plugin.desktop.in:
6111         Finish changing 'Author' to 'Authors'
6112         
6113         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
6114         (rhythmdb_entry_import_error_get_type):
6115         Implement get_playback_uri for import errors (returns NULL)
6117         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6118         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
6119         entry, rather than doing entry type checks.
6121 2006-05-02  James Livingston  <doclivingston@gmail.com>
6123         patch from Alessandro Decina  <alessandro@nnva.org>
6125         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
6126         the signal emission in the case of fatal-on-init errors. From bug
6127         322268.
6129 2006-05-02  James Livingston  <doclivingston@gmail.com>
6131         * rhythmdb/rhythmdb.h:
6132         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
6133         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
6134         (rhythmdb_entry_podcast_post_get_type),
6135         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
6136         virtual function to entry-types for getting the playback URI. From bug
6137         330226.
6139         * backends/gstreamer/rb-encoder-gst.c:
6140         (create_pipeline_and_source), (extract_track):
6141         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
6142         to get the URI.
6144 2006-05-02  James Livingston  <doclivingston@gmail.com>
6146         patch by: Brian Cameron  <brian.cameron@sun.com>
6148         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
6149         340337.
6151 2006-05-01  William Jon McCann  <mccann@jhu.edu>
6153         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
6154         instead of clear.  Use regex matching to strip "disc N"
6155         from album.  Match titles in ProductName.  Perform
6156         fallback queries including various artist compilations.
6157         Include "us" locale.  Improve queries when artist or album
6158         is unknown.  Use medium size image if large is unavailable.
6160         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
6161         William Jon McCann  <mccann@jhu.edu>
6162         
6163 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6165         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
6166         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
6167         (conjunctive_query): Sanity check.
6168         (evaluate_conjunctive_subquery): 
6169         Don't return TRUE immediately when a relative-time query criterion
6170         matches.  Fixes #339972.
6172 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6174         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6175         Don't crash if primary or secondary are NULL.
6177 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6179         * doc/reference/Makefile.am: fix gtk-doc build yet again
6181 2006-04-28  James Livingston  <doclivingston@gmail.com>
6183         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
6184         python console. Fixes bug 339934.
6186 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6188         * rhythmdb/rhythmdb-property-model.c:
6189         (rhythmdb_property_model_drag_data_get):
6190         When creating uri list drag data, create a new query model based on
6191         the query model the property model is attached to.  Makes the
6192         resulting query use the right entry type and include the upstream
6193         query criteria.  Fixes half of #327540.
6195 2006-04-27  James Livingston  <doclivingston@gmail.com>
6197         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
6198         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
6199         build fixes.
6201 2006-04-27  James Livingston  <doclivingston@gmail.com>
6203         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
6205 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6207         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
6208         (rb_playlist_manager_save_data),
6209         (rb_playlist_manager_save_playlists):
6210         * shell/rb-playlist-manager.h:
6211         * shell/rb-shell.c: (rb_shell_sync_state),
6212         (idle_save_playlist_manager):
6213         Remove a bit more threading insanity from the playlist manager.
6215 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6217         * shell/rb-playlist-manager.c: 
6218         * shell/rb-playlist-manager.h:
6219         Remove dead code, add gtk-doc, remove threading insanity (mostly).
6220         
6221         * shell/rb-shell.c: (rb_shell_sync_state),
6222         (idle_save_playlist_manager), (construct_sources),
6223         (rb_shell_select_source), (rb_shell_sync_party_mode):
6224         Adjustments for above changes.
6226 2006-04-26  William Jon McCann  <mccann@jhu.edu>
6228         * sources/rb-browser-source.c (impl_browser_toggled):
6229         Reset browser when hidden.  Fixes #339617.
6231 2006-04-26  James Livingston  <doclivingston@gmail.com>
6233         * backends/Makefile.am:
6234         * backends/gstreamer/Makefile.am: work again with separated
6235         built-roots
6237 2006-04-26  James Livingston  <doclivingston@gmail.com>
6239         * shell/rb-removable-media-manager.c:
6240         (rb_removable_media_manager_set_uimanager): fix compilation with
6241         -Werror and --enable-track-transfer.
6243 2006-04-26  James Livingston  <doclivingston@gmail.com>
6245         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
6246         implementing class. In theory allows alternate player implementations
6247         to be selected at run-time rather than compile-time. Fixes bug 338667.
6249         * Makefile.am:
6250         * backends/Makefile.am:
6251         * backends/gstreamer/Makefile.am:
6252         * backends/gstreamer/rb-player-gst.h:
6253         * backends/rb-player.c: (rb_player_interface_init),
6254         (rb_player_get_type), (rb_player_open), (rb_player_opened),
6255         (rb_player_close), (rb_player_play), (rb_player_pause),
6256         (rb_player_playing), (rb_player_set_volume),
6257         (rb_player_get_volume), (rb_player_set_replaygain),
6258         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
6259         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
6260         (_rb_player_emit_buffering), (_rb_player_emit_error),
6261         (_rb_player_emit_tick), (rb_player_error_quark):
6262         * player/Makefile.am:
6263         * player/rb-player-gst.c: (rb_player_gst_class_init),
6264         (rb_player_init), (tick_timeout), (rb_player_gst_init),
6265         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
6266         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
6267         (process_tag), (found_tag_cb), (buffering_cb),
6268         (rb_player_gst_bus_cb), (rb_player_gst_construct),
6269         (rb_player_gst_new):
6270         * player/rb-player.h:
6271         * shell/Makefile.am:
6272         * sources/rb-audiocd-source.c:
6273         * widgets/Makefile.am:
6274         * widgets/rb-header.c: (rb_header_class_init):
6276 2006-04-26  James Livingston  <doclivingston@gmail.com>
6278         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6279         don't try to download an episode if it couldn't be parsed. Fixes bug
6280         339712.
6282         * shell/rb-removable-media-manager.c:
6283         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
6284         Library" option when track transfer is disabled. Fixes bug 339728.
6286 2006-04-26  James Livingston  <doclivingston@gmail.com>
6288         * data/ui/Makefile.am:
6289         * data/ui/daap-ui.xml:
6290         * data/ui/rhythmbox-ui.xml:
6291         * sources/rb-daap-source.c: (rb_daap_sources_init),
6292         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
6293         way that the ipod ui is. Fixes bug 339743.
6295 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6297         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
6298         (process_added_entries_cb), (process_deleted_entries_cb),
6299         (rhythmdb_commit_internal): 
6300         Combine the idle functions to emit entry-added and entry-deleted,
6301         and combine as many invocations of same as possible.  Another
6302         significant reduction in startup time.
6303         
6304         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6305         Delay the next call to rhythmdb_process_events if the queue is
6306         empty or if we can't process any of the events in the queue because
6307         the database is read only.
6309         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6311 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6313         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6315         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6316         Don't special case errors quite so much.
6318 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6320         * data/rhythmbox.schemas: Remove default speed.
6322         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6323         Add n-c-b 2.15 support.  Make the default speed to slowest since
6324         that is all that works reliably.
6326 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6328         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6329         Fix compiler error from last commit.
6331 2006-04-25  James Livingston  <doclivingston@gmail.com>
6333         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6334         transcoding-related issues. From bug 322268.
6336         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6337         don't emit the signal, since the object is being finalised, which os a
6338         Bad Thing To Do.
6340         (profile_bin_find_encoder), (get_profile_from_mime_type),
6341         (transcode_track): find the encoding element by iterating looking for
6342         element in the class Codec/Encoder/Audio rather than the one named
6343         "enc".
6345 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6347         * shell/rb-shell-player.xml:
6348         * shell/rb-shell.xml:
6349         Add signal argument information.  
6350         Patch by Tim Moloney  <t.moloney@verizon.net>
6352         * shell/rb-shell.c: (rb_shell_window_state_cb):
6353         Use the right value for the visibility_changed signal.  Most of the
6354         time, anyway.
6356 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6358         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6359         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6360         (impl_create_configure_dialog):
6361         * data/glade/audioscrobbler-prefs.glade:
6362         * shell/rb-audioscrobbler.c (*):
6363         * lib/rb-preferences.h:
6364         * data/rhythmbox.schemas:
6365         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6366         Add status information (# tracks submitted, # queued, last submit
6367         time, result of last submission) to the plugin config window.
6368         Remove 'enabled' setting, since it's easier to just disable the
6369         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6370         nonexistant (so far) 'last.fm streaming' plugin.
6371         
6372         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6373         plugin
6375         Fixes some of #325848.  We still don't provide a way to view the
6376         submission queue.
6378 2006-04-25  James Livingston  <doclivingston@gmail.com>
6380         patch by: Anders Petersson  <demitar@worldforge.org>
6382         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6383         the YY-MM-DD format.
6385 2006-04-23  James Livingston  <doclivingston@gmail.com>
6387         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6388         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6389         * bindings/python/override_common.h:
6390         * bindings/python/rb.override: python binding fixes
6392 2006-04-23  James Livingston  <doclivingston@gmail.com>
6394         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6395         (rb_statusbar_sync_with_source),
6396         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6397         callback, rather than immediately every time. Takes ~5% off my warm-cache
6398         startup time.
6400         * bindings/python/rhythmdb.defs: fix the types using for
6401         RhythmDBEntryTypes.
6403 2006-04-22  James Livingston  <doclivingston@gmail.com>
6405         * data/ui/rhythmbox-ui.xml:
6406         * shell/rb-shell.c:
6407         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6408         (remove_source), (rb_daap_sources_init),
6409         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6410         (rb_daap_source_disconnect):
6411         * sources/rb-source.c: (rb_source_class_init),
6412         (rb_source_deactivate):
6413         * sources/rb-source.h: move the "disconnect" functionality from into
6414         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6416 2006-04-22  James Livingston  <doclivingston@gmail.com>
6418         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6419         actually get the translated strings for browser headers (they were
6420         already marked as translatable). Fixes bug 339380.
6422 2006-04-22  James Livingston  <doclivingston@gmail.com>
6424         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6425         submission timeout when the object is finalised.
6427         * bindings/python/Makefile.am:
6428         * bindings/python/rb.defs:
6429         * bindings/python/rb.override:
6430         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6432         * widgets/rb-library-browser.c:
6433         (rb_library_browser_construct_query), (rebuild_output_model),
6434         (rebuild_child_model):
6435         * widgets/rb-library-browser.h: change from GPtrArray to
6436         RhythmDBQuery (which in C is the same thing).
6438 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6440         * shell/rb-shell.c: (rb_shell_get_song_properties):
6441         Don't try to include entry-type (or anything else not easily
6442         marshallable) in the song properties hash table.
6444         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6446         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6447         (rb_playlist_source_constructor): Fix entry-type initialization as
6448         with previous commit.
6450 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6452         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6453         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6454         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6455         (rb_podcast_source_constructor):
6456         Set default values for entry-type after base class construction,
6457         rather than in _init, because gobject will set the entry-type property
6458         to NULL after _init if no value is provided.  Fixes #339206.
6460 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6462         patch by: Gunnar Steinn Magnusson
6464         * COPYING:
6465         * backends/gstreamer/rb-encoder-gst.c:
6466         * backends/gstreamer/rb-encoder-gst.h:
6467         * backends/rb-encoder.c:
6468         * backends/rb-encoder.h:
6469         * bindings/python/override_common.c:
6470         * bindings/python/override_common.h:
6471         * daapsharing/rb-daap-connection.c:
6472         * daapsharing/rb-daap-connection.h:
6473         * daapsharing/rb-daap-dialog.c:
6474         * daapsharing/rb-daap-dialog.h:
6475         * daapsharing/rb-daap-mdns-browser-avahi.c:
6476         * daapsharing/rb-daap-mdns-browser-howl.c:
6477         * daapsharing/rb-daap-mdns-browser.h:
6478         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6479         * daapsharing/rb-daap-mdns-publisher-howl.c:
6480         * daapsharing/rb-daap-mdns-publisher.h:
6481         * daapsharing/rb-daap-share.c:
6482         * daapsharing/rb-daap-share.h:
6483         * daapsharing/rb-daap-sharing.c:
6484         * daapsharing/rb-daap-sharing.h:
6485         * daapsharing/rb-daap-src.c:
6486         * daapsharing/rb-daap-src.h:
6487         * daapsharing/rb-daap-structure.c:
6488         * daapsharing/rb-daap-structure.h:
6489         * help/C/fdl-appendix.xml:
6490         * help/es/es.po:
6491         * help/ja/fdl-appendix.xml:
6492         * iradio/rb-new-station-dialog.c:
6493         * iradio/rb-new-station-dialog.h:
6494         * iradio/rb-station-properties-dialog.c:
6495         * iradio/rb-station-properties-dialog.h:
6496         * lib/mkdtemp.c:
6497         * lib/mkdtemp.h:
6498         * lib/rb-cut-and-paste-code.c:
6499         * lib/rb-cut-and-paste-code.h:
6500         * lib/rb-debug.c:
6501         * lib/rb-debug.h:
6502         * lib/rb-file-helpers.c:
6503         * lib/rb-file-helpers.h:
6504         * lib/rb-glade-helpers.c:
6505         * lib/rb-glade-helpers.h:
6506         * lib/rb-preferences.h:
6507         * lib/rb-proxy-config.c:
6508         * lib/rb-stock-icons.c:
6509         * lib/rb-stock-icons.h:
6510         * lib/rb-thread.c:
6511         * lib/rb-thread.h:
6512         * lib/rb-tree-dnd.c:
6513         * lib/rb-tree-dnd.h:
6514         * lib/rb-util.c:
6515         * lib/rb-util.h:
6516         * metadata/rb-metadata-common.c:
6517         * metadata/rb-metadata-dbus-client.c:
6518         * metadata/rb-metadata-dbus-service.c:
6519         * metadata/rb-metadata-dbus.c:
6520         * metadata/rb-metadata-dbus.h:
6521         * metadata/rb-metadata-gst.c:
6522         * metadata/rb-metadata.h:
6523         * metadata/sj-error.c:
6524         * metadata/sj-error.h:
6525         * metadata/sj-metadata-musicbrainz.c:
6526         * metadata/sj-metadata-musicbrainz.h:
6527         * metadata/sj-metadata.c:
6528         * metadata/sj-metadata.h:
6529         * metadata/sj-structures.c:
6530         * metadata/sj-structures.h:
6531         * metadata/test-metadata.c:
6532         * player/rb-player-gst.c:
6533         * player/rb-player.h:
6534         * player/rb-recorder-gst.c:
6535         * player/rb-recorder.h:
6536         * plugins/artdisplay/artdisplay.py:
6537         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6538         * plugins/ipod/rb-ipod-plugin.c:
6539         * plugins/lirc/rb-lirc-plugin.c:
6540         * plugins/pythonconsole/pythonconsole.py:
6541         * plugins/rb-module.c:
6542         * plugins/rb-module.h:
6543         * plugins/rb-plugin-manager.c:
6544         * plugins/rb-plugin-manager.h:
6545         * plugins/rb-plugin.c:
6546         * plugins/rb-plugin.h:
6547         * plugins/rb-plugins-engine.c:
6548         * plugins/rb-plugins-engine.h:
6549         * plugins/rb-python-module.c:
6550         * plugins/rb-python-module.h:
6551         * plugins/rb-python-plugin.c:
6552         * plugins/rb-python-plugin.h:
6553         * plugins/sample/rb-sample-plugin.c:
6554         * po/de.po:
6555         * po/el.po:
6556         * po/en_CA.po:
6557         * po/eu.po:
6558         * po/fi.po:
6559         * po/fr.po:
6560         * po/it.po:
6561         * po/ja.po:
6562         * po/mk.po:
6563         * po/pt_BR.po:
6564         * po/ru.po:
6565         * podcast/rb-feed-podcast-properties-dialog.c:
6566         * podcast/rb-feed-podcast-properties-dialog.h:
6567         * podcast/rb-new-podcast-dialog.c:
6568         * podcast/rb-new-podcast-dialog.h:
6569         * podcast/rb-podcast-manager.c:
6570         * podcast/rb-podcast-manager.h:
6571         * podcast/rb-podcast-parse.c:
6572         * podcast/rb-podcast-parse.h:
6573         * podcast/rb-podcast-properties-dialog.c:
6574         * podcast/rb-podcast-properties-dialog.h:
6575         * remote/bonobo/libmain.c:
6576         * remote/bonobo/rb-nautilus-context-menu.c:
6577         * remote/bonobo/rb-nautilus-context-menu.h:
6578         * remote/bonobo/rb-remote-bonobo.c:
6579         * remote/bonobo/rb-remote-bonobo.h:
6580         * remote/rb-remote-client-proxy.c:
6581         * remote/rb-remote-client-proxy.h:
6582         * remote/rb-remote-common.c:
6583         * remote/rb-remote-common.h:
6584         * remote/rb-remote-proxy.c:
6585         * remote/rb-remote-proxy.h:
6586         * rhythmdb/gsequence.c:
6587         * rhythmdb/gsequence.h:
6588         * rhythmdb/rb-refstring.c:
6589         * rhythmdb/rb-refstring.h:
6590         * rhythmdb/rhythmdb-gda.c:
6591         * rhythmdb/rhythmdb-gda.h:
6592         * rhythmdb/rhythmdb-private.h:
6593         * rhythmdb/rhythmdb-property-model.c:
6594         * rhythmdb/rhythmdb-property-model.h:
6595         * rhythmdb/rhythmdb-query-model.c:
6596         * rhythmdb/rhythmdb-query-model.h:
6597         * rhythmdb/rhythmdb-query-results.c:
6598         * rhythmdb/rhythmdb-query-results.h:
6599         * rhythmdb/rhythmdb-tree.c:
6600         * rhythmdb/rhythmdb-tree.h:
6601         * rhythmdb/rhythmdb.c:
6602         * rhythmdb/rhythmdb.h:
6603         * shell/main.c:
6604         * shell/rb-audioscrobbler.c:
6605         * shell/rb-audioscrobbler.h:
6606         * shell/rb-history.c:
6607         * shell/rb-history.h:
6608         * shell/rb-play-order-linear-loop.c:
6609         * shell/rb-play-order-linear-loop.h:
6610         * shell/rb-play-order-linear.c:
6611         * shell/rb-play-order-linear.h:
6612         * shell/rb-play-order-queue.c:
6613         * shell/rb-play-order-queue.h:
6614         * shell/rb-play-order-random-by-age-and-rating.c:
6615         * shell/rb-play-order-random-by-age-and-rating.h:
6616         * shell/rb-play-order-random-by-age.c:
6617         * shell/rb-play-order-random-by-age.h:
6618         * shell/rb-play-order-random-by-rating.c:
6619         * shell/rb-play-order-random-by-rating.h:
6620         * shell/rb-play-order-random-equal-weights.c:
6621         * shell/rb-play-order-random-equal-weights.h:
6622         * shell/rb-play-order-random.c:
6623         * shell/rb-play-order-random.h:
6624         * shell/rb-play-order-shuffle.c:
6625         * shell/rb-play-order-shuffle.h:
6626         * shell/rb-play-order.c:
6627         * shell/rb-play-order.h:
6628         * shell/rb-playlist-manager.c:
6629         * shell/rb-playlist-manager.h:
6630         * shell/rb-removable-media-manager.c:
6631         * shell/rb-removable-media-manager.h:
6632         * shell/rb-shell-clipboard.c:
6633         * shell/rb-shell-clipboard.h:
6634         * shell/rb-shell-player.c:
6635         * shell/rb-shell-player.h:
6636         * shell/rb-shell-preferences.c:
6637         * shell/rb-shell-preferences.h:
6638         * shell/rb-shell.c:
6639         * shell/rb-shell.h:
6640         * shell/rb-source-header.c:
6641         * shell/rb-source-header.h:
6642         * shell/rb-statusbar.c:
6643         * shell/rb-statusbar.h:
6644         * shell/rb-tray-icon.c:
6645         * shell/rb-tray-icon.h:
6646         * sources/rb-audiocd-source.c:
6647         * sources/rb-audiocd-source.h:
6648         * sources/rb-auto-playlist-source.c:
6649         * sources/rb-auto-playlist-source.h:
6650         * sources/rb-browser-source.c:
6651         * sources/rb-browser-source.h:
6652         * sources/rb-daap-source.c:
6653         * sources/rb-daap-source.h:
6654         * sources/rb-generic-player-source.c:
6655         * sources/rb-generic-player-source.h:
6656         * sources/rb-import-errors-source.c:
6657         * sources/rb-import-errors-source.h:
6658         * sources/rb-ipod-source.c:
6659         * sources/rb-ipod-source.h:
6660         * sources/rb-iradio-source.c:
6661         * sources/rb-iradio-source.h:
6662         * sources/rb-library-source.c:
6663         * sources/rb-library-source.h:
6664         * sources/rb-missing-files-source.c:
6665         * sources/rb-missing-files-source.h:
6666         * sources/rb-nokia770-source.c:
6667         * sources/rb-nokia770-source.h:
6668         * sources/rb-play-queue-source.c:
6669         * sources/rb-play-queue-source.h:
6670         * sources/rb-playlist-source-recorder.c:
6671         * sources/rb-playlist-source-recorder.h:
6672         * sources/rb-playlist-source.c:
6673         * sources/rb-playlist-source.h:
6674         * sources/rb-playlist-xml.h:
6675         * sources/rb-podcast-source.c:
6676         * sources/rb-podcast-source.h:
6677         * sources/rb-psp-source.c:
6678         * sources/rb-psp-source.h:
6679         * sources/rb-removable-media-source.c:
6680         * sources/rb-removable-media-source.h:
6681         * sources/rb-source.c:
6682         * sources/rb-source.h:
6683         * sources/rb-sourcelist-model.c:
6684         * sources/rb-sourcelist-model.h:
6685         * sources/rb-sourcelist.c:
6686         * sources/rb-sourcelist.h:
6687         * sources/rb-static-playlist-source.c:
6688         * sources/rb-static-playlist-source.h:
6689         * tests/test-cd.c:
6690         * tests/test-cmdline.c:
6691         * tests/test-rhythmdb-indexing.c:
6692         * tests/test-rhythmdb-query.c:
6693         * tests/test-rhythmdb-simple.c:
6694         * tests/test-rhythmdb-tree-deserialization.c:
6695         * tests/test-rhythmdb-tree-serialization.c:
6696         * tests/test-rhythmdb-view.c:
6697         * widgets/bacon-volume.c:
6698         * widgets/bacon-volume.h:
6699         * widgets/disclosure-widget.c:
6700         * widgets/disclosure-widget.h:
6701         * widgets/eel-gconf-extensions.c:
6702         * widgets/eel-gconf-extensions.h:
6703         * widgets/eggtrayicon.c:
6704         * widgets/eggtrayicon.h:
6705         * widgets/libsexy/sexy-icon-entry.c:
6706         * widgets/libsexy/sexy-icon-entry.h:
6707         * widgets/rb-cell-renderer-pixbuf.c:
6708         * widgets/rb-cell-renderer-pixbuf.h:
6709         * widgets/rb-cell-renderer-rating.c:
6710         * widgets/rb-cell-renderer-rating.h:
6711         * widgets/rb-dialog.c:
6712         * widgets/rb-dialog.h:
6713         * widgets/rb-druid.c:
6714         * widgets/rb-druid.h:
6715         * widgets/rb-entry-view.c:
6716         * widgets/rb-entry-view.h:
6717         * widgets/rb-header.c:
6718         * widgets/rb-header.h:
6719         * widgets/rb-library-browser.c:
6720         * widgets/rb-library-browser.h:
6721         * widgets/rb-property-view.c:
6722         * widgets/rb-property-view.h:
6723         * widgets/rb-query-creator-private.h:
6724         * widgets/rb-query-creator-properties.c:
6725         * widgets/rb-query-creator.c:
6726         * widgets/rb-query-creator.h:
6727         * widgets/rb-rating-helper.c:
6728         * widgets/rb-rating-helper.h:
6729         * widgets/rb-rating.c:
6730         * widgets/rb-rating.h:
6731         * widgets/rb-search-entry.c:
6732         * widgets/rb-search-entry.h:
6733         * widgets/rb-song-display-box.c:
6734         * widgets/rb-song-display-box.h:
6735         * widgets/rb-song-info.c:
6736         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6738 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6740         patch by: Gareth Murphy, James Livingston
6742         * bindings/python/rb.defs:
6743         * configure.ac:
6744         * plugins/Makefile.am:
6745         * plugins/artdisplay/Makefile.am:
6746         * plugins/artdisplay/artdisplay.py:
6747         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6748         * plugins/rb-python-module.c: (rb_python_module_init_python):
6749         * shell/rb-shell.c: (construct_widgets),
6750         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6751         (rb_shell_add_widget), (rb_shell_remove_widget),
6752         (rb_shell_ui_location_get_type):
6753         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6755 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6757         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6758         Fix build failure caused by the combination of the previous two
6759         commits.
6761 2006-04-20  James Livingston  <doclivingston@gmail.com>
6763         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6764         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6765         table to the entry types, which will allow us to get rid of some of
6766         the "if entry type == WHATEVER" code everywhere. From bug 
6768         * bindings/python/rb.defs:
6769         * bindings/python/rb.override:
6770         * bindings/python/rhythmdb.defs:
6771         * bindings/python/rhythmdb.override:
6772         * daapsharing/rb-daap-connection.c:
6773         (rb_daap_connection_class_init), (rb_daap_connection_init),
6774         (rb_daap_connection_set_property),
6775         (rb_daap_connection_get_property):
6776         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6777         * podcast/rb-podcast-manager.c:
6778         (rb_podcast_manager_entry_downloaded),
6779         (rb_podcast_manager_subscribe_feed),
6780         (rb_podcast_manager_db_entry_added_cb),
6781         (rb_podcast_manager_db_entry_deleted_cb),
6782         (rb_podcast_manager_insert_feed):
6783         * rhythmdb/rhythmdb-private.h:
6784         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6785         (conjunctive_query):
6786         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6787         (process_added_entries_cb), (rhythmdb_entry_allocate),
6788         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6789         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6790         (rhythmdb_process_metadata_load),
6791         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6792         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6793         (write_encoded_gvalue), (read_encoded_property),
6794         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6795         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6796         (rhythmdb_entry_iradio_get_type),
6797         (rhythmdb_entry_podcast_post_get_type),
6798         (rhythmdb_entry_podcast_feed_get_type),
6799         (rhythmdb_entry_import_error_get_type),
6800         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6801         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6802         (rhythmdb_entry_type_get_type):
6803         * rhythmdb/rhythmdb.h:
6804         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6805         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6806         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6807         (rb_shell_player_entry_activated_cb), (info_available_cb):
6808         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6809         (rb_shell_register_entry_type_for_source),
6810         (rb_shell_playing_from_queue_cb),
6811         (rb_shell_playing_entry_changed_cb),
6812         (rb_shell_player_stream_song_changed_cb),
6813         (rb_shell_jump_to_entry_with_source),
6814         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6815         (handle_playlist_entry_cb), (rb_shell_load_uri):
6816         * shell/rb-shell.h:
6817         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6818         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6819         (rb_browser_source_init), (rb_browser_source_set_property),
6820         (rb_browser_source_get_property):
6821         * sources/rb-ipod-source.c: (impl_paste):
6822         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6823         (rb_iradio_source_init), (rb_iradio_source_set_property),
6824         (rb_iradio_source_get_property):
6825         * sources/rb-library-source.c: (impl_paste):
6826         * sources/rb-missing-files-source.c:
6827         (rb_missing_files_source_class_init),
6828         (rb_missing_files_source_init),
6829         (rb_missing_files_source_set_property),
6830         (rb_missing_files_source_get_property):
6831         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6832         (rb_playlist_source_init), (rb_playlist_source_set_property),
6833         (rb_playlist_source_get_property):
6834         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6835         (rb_podcast_source_init), (rb_podcast_source_set_property),
6836         (rb_podcast_source_get_property):
6837         * sources/rb-static-playlist-source.c:
6838         (rb_static_playlist_source_add_location_internal):
6840 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6842         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6843         (rhythmdb_add_import_error_entry),
6844         (entry_volume_mounted_or_unmounted),
6845         (rhythmdb_volume_unmounted_cb):
6846         When a volume is unmounted, delete import errors for files stored on
6847         it.  When a volume is mounted, stat all tracks stored on it, rather
6848         than assuming they're present.  Fixes #339023.
6850 2006-04-20  James Livingston  <doclivingston@gmail.com>
6852         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6853         browser visibility for non-gconf-using sources (like playlists). Part
6854         of bug 118862.
6856         * shell/rb-source-header.c: (sourcestate_free),
6857         (rb_source_header_init), (rb_source_header_finalize),
6858         (rb_source_header_source_weak_destroy_cb): switch from storing the
6859         search string to storing a "source state" structure
6861         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6862         (rb_source_header_search_cb), (rb_source_header_clear_search),
6863         (rb_source_header_disclosure_toggled_cb): as well as storing the
6864         string, stop the visibility of the source's browser.
6866 2006-04-20  James Livingston  <doclivingston@gmail.com>
6868         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6869         library entries back into the library. Fixes bug 339065.
6871 2006-04-20  James Livingston  <doclivingston@gmail.com>
6873         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6874         only exists in glib 2.10.
6876 2006-04-20  James Livingston  <doclivingston@gmail.com>
6878         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6879         Solaris. From bug 335318.
6881         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6882         * shell/rb-audioscrobbler.c:
6883         * sources/rb-psp-source.c:
6885 2006-04-20  James Livingston  <doclivingston@gmail.com>
6887         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6888         issues for some people.
6890         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6891         accidental s/suffix/prefix/
6893         * sources/rb-auto-playlist-source.c:
6894         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6895         you from sorting playlists which aren't limited by time.
6897 2006-04-19  James Livingston  <doclivingston@gmail.com>
6899         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6900         duration or bitrate back to the file, since they are properties of the
6901         audio data, not tags we can set.
6903 2006-04-19  James Livingston  <doclivingston@gmail.com>
6905         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6906         of libtool, to fix builds which are using a different version. Fixes
6907         bug 338996.
6909         * shell/Makefile.am:
6911 2006-04-19  James Livingston  <doclivingston@gmail.com>
6913         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6914         to sync data to a file which is uneditable.
6916 2006-04-19  James Livingston  <doclivingston@gmail.com>
6918         patch by: Gavin Stewart  <gavin@brokentrain.net>
6920         * data/glade/playlist-save.glade:
6921         * data/glade/Makefile.am:
6922         * po/POTFILES.in: add the playlist saving dialog.
6924         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6925         (export_set_extension_cb), (filter_get_export_filter_label),
6926         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6927         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6928         formats (PLS and M3U at the moment). Fixes bug 316295.
6930 2006-04-19  James Livingston  <doclivingston@gmail.com>
6932         * shell/rb-playlist-manager.c:
6933         (rb_playlist_manager_set_source_internal): don't let you edit remove
6934         auto playlists.
6936         * sources/rb-auto-playlist-source.c:
6937         (rb_auto_playlist_source_set_query): correctly handle time-limited
6938         playlists.
6940 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6942         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6944         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6945         Don't crash if the queue file contains no newlines.
6946         Fixes #338924.
6948 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6950         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6951         condition
6953 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6955         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6956         case. Moreover, they may not exist yet, so take that into account when
6957         generating the iPod filename.
6959 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6961         * sources/rb-ipod-source.c: added support for drag and drop from the
6962         library to the iPod (only enabled if --enable-track-transfer was
6963         passed to configure)
6965 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6967         * configure.ac:
6968         * lib/rb-marshal.list:
6969         * lib/rb-util.c: 
6970         * lib/rb-util.h:
6971         * plugins/Makefile.am:
6972         * plugins/ipod/Makefile.am:
6973         * plugins/ipod/ipod.rb-plugin.desktop.in:
6974         * plugins/ipod/rb-ipod-plugin.c: 
6975         * plugins/rb-plugin.h:
6976         * shell/Makefile.am:
6977         * shell/rb-removable-media-manager.c:
6978         * shell/rb-removable-media-manager.h:
6979         * shell/rb-shell.c: 
6980         * sources/Makefile.am:
6981         * sources/rb-ipod-source.c: 
6982         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6983         various iPod related files should be moved to plugins/ipod/ now...
6985 2006-04-17  James Livingston  <doclivingston@gmail.com>
6987         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6988         and "vic".
6990         * help/C/figures/rb-iradio-main.png:
6991         * help/C/figures/rb-notification-area-menu.png:
6992         * help/C/figures/rb-notification-window.png:
6993         * help/C/figures/rb-notification-zone.png:
6994         * help/C/figures/rb-podcast-main.png:
6995         * help/C/figures/rb-statusbar.png:
6996         * help/C/figures/rb-volume-changer.png:
6997         * help/C/figures/rb-window-small.png:
6998         * help/C/figures/rb-window.png:
6999         * help/C/rhythmbox.xml:
7001 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7003         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
7004         more obviously.
7006         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7007         (make_undecodable_error), (rb_metadata_gst_error_cb),
7008         (rb_metadata_gst_new_decoded_pad_cb),
7009         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
7010         Ignore really small files (<4kB) for which typefinding fails.
7011         Always link decoded pads from decodebin to fakesink.
7012         Shut the pipeline down by posting an error on the bus when decodebin
7013         emits unknown-type signals.  Fixes bug #338062.
7015 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7017         * shell/rb-shell.c: (rb_shell_load_uri):
7018         Fix glaring mistakes in previous commit: actually pass arguments to
7019         rb_debug, and specify the right entry type when adding a new iradio
7020         station so we don't try to add local playlist files to the library.
7022 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7024         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
7025         before trying to add them, as iradio streams often fail rb_uri_exists().
7027         * shell/rb-shell-player.c: (notify_playing_idle),
7028         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
7029         (open_location_thread), (rb_shell_player_open_location),
7030         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
7031         (eos_cb):  When playing an iradio stream using a playlist, keep a list
7032         of all the stream URLs, and try them in turn.  If we get through the
7033         whole playlist too quickly, error out.  Various other fixes that make
7034         iradio work a lot better.
7036         * shell/rb-shell.c: (add_to_library_response_cb),
7037         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
7038         (handle_playlist_entry_cb), (rb_shell_load_uri):
7039         Add playlists containing streams as iradio stations.  If the playlist
7040         is local, add each stream URL, but if the playlist is remote, just add
7041         the playlist URL.
7042         
7043         * sources/rb-iradio-source.c: (new_station_location_added):
7044         Add new station URLs as-is, rather than parsing the playlist and
7045         adding the streams.
7046         
7047         * rhythmdb/rhythmdb-query-model.c:
7048         (rhythmdb_query_model_entry_changed_cb),
7049         (rhythmdb_query_model_emit_reorder),
7050         (rhythmdb_query_model_do_reorder):
7051         Emit row-changed notifications when an entry changes but is not
7052         reordered.
7054         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
7055         Display the playback error icon when the entry has an error and
7056         there's nothing else to display.
7057         
7058         Fixes bug #320336 and some of #324402.
7059         
7060 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7062         * sources/rb-ipod-source.c: use a GHashTable for the
7063         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
7064         time, this fixes compilation breakage for people not having libgpod
7065         CVS HEAD
7067 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
7069         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7071         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
7072         (rb_podcast_manager_insert_feed):
7073         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
7074         fixes bug 321945
7076 2006-04-16  James Livingston  <doclivingston@gmail.com>
7078         * sources/rb-library-source.c:
7079         (rb_library_source_library_location_cb): return FALSE like we are
7080         supposed to, not void.
7082         patch by: FreeBSD GNOME Project
7083         * configure.ac: fix some bash-isms.
7085         patch by: Pawel Worach  <pawel.worach@gmail.com>
7086         * metadata/rb-metadata-dbus-client.c:
7087         * rhythmdb/rhythmdb-query-model.c:
7088         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
7091 2006-04-16  James Livingston  <doclivingston@gmail.com>
7093         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
7094         for transcoding to RBEncoderGst.
7096         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
7097         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
7098         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
7099         (add_decoding_pipeline), (encoder_match_mime),
7100         (get_profile_from_mime_type), (extract_track), (transcode_track),
7101         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
7103 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7105         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
7106         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
7107         load_ipod_db_idle_cb to a new separate function
7109 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7111         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
7112         source
7114 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7116         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
7117         variables
7119 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7121         * data/ui/Makefile.am:
7122         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
7123         menu
7124         * lib/rb-util.c: check if the widget we got from the UI manager isn't
7125         NULL before using it as a popup menu
7126         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
7127         'eject' an iPod
7129 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7131         * sources/rb-ipod-source.c: when hal tells us a partition is on an
7132         iPod, check if it contains an iPod database before using it (in case
7133         the iPod was repartitionned somehow). Should fix bug #325034
7135 2006-04-16  Steve Frécinaux  <steve@istique.net>
7137         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
7139         * data/Makefile.am: install application icon into the default theme.
7141         * data/rhythmbox.desktop.in: don't specify icon file extension.
7142         
7143         * shell/main.c: (main): set default window icon from theme.
7144         
7145         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
7146         code concerning window icon, and fix leak by unreferencing the about
7147         logo pixbuf once it's not used anymore.
7149 2006-04-16  James Livingston  <doclivingston@gmail.com>
7151         * configure.ac: bump version to 0.9.4
7152         * NEWS: update NEWS and 0.9.4 insert translations
7154 2006-04-16  James Livingston  <doclivingston@gmail.com>
7156         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
7157         namespace automatically.
7159 2006-04-16  James Livingston  <doclivingston@gmail.com>
7161         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
7163         * doc/reference/Makefile.am:
7164         * doc/reference/rhythmbox.types: make distcheck work again
7166         * doc/reference/tmpl/eggnotificationbubble.sgml:
7167         * doc/reference/tmpl/eggtrayicon.sgml:
7168         * doc/reference/tmpl/rb-debug.sgml:
7169         * doc/reference/tmpl/rb-entry-view.sgml:
7170         * doc/reference/tmpl/rb-enums.sgml:
7171         * doc/reference/tmpl/rb-metadata.sgml:
7172         * doc/reference/tmpl/rb-new-station-dialog.sgml:
7173         * doc/reference/tmpl/rb-playlist-manager.sgml:
7174         * doc/reference/tmpl/rb-refstring.sgml:
7175         * doc/reference/tmpl/rb-shell-player.sgml:
7176         * doc/reference/tmpl/rb-shell-preferences.sgml:
7177         * doc/reference/tmpl/rb-shell.sgml:
7178         * doc/reference/tmpl/rb-song-info.sgml:
7179         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
7180         * doc/reference/tmpl/rb-statusbar.sgml:
7181         * doc/reference/tmpl/rhythmbox-unused.sgml:
7182         * doc/reference/tmpl/rhythmdb-query-model.sgml:
7183         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
7185 2006-04-16  James Livingston  <doclivingston@gmail.com>
7187         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
7189         * po/LINGUAS: don't split the variable across two lines, as it breaks
7190         the build. Fixes bug 338625.
7192 2006-04-15  James Livingston  <doclivingston@gmail.com>
7194         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
7195         add a "sourcelist-model" gobject property.
7197 2006-04-14  William Jon McCann  <mccann@jhu.edu>
7199         * .cvsignore:
7200         * backends/.cvsignore:
7201         * backends/gstreamer/.cvsignore:
7202         * bindings/.cvsignore:
7203         * bindings/python/.cvsignore:
7204         * help/es/.cvsignore:
7205         * metadata/.cvsignore:
7206         * plugins/.cvsignore:
7207         * plugins/audioscrobbler/.cvsignore:
7208         * plugins/lirc/.cvsignore:
7209         * plugins/pythonconsole/.cvsignore:
7210         * plugins/sample-python/.cvsignore:
7211         * plugins/sample/.cvsignore:
7212         * shell/.cvsignore:
7213         * widgets/libsexy/.cvsignore:
7214         Make CVS ignore files.
7216 2006-04-14  James Livingston  <doclivingston@gmail.com>
7218         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
7219         the track-loading thread hold a reference on the source, so it doesn't
7220         explode if the cd is removed before it is done. Fixes bug 337237.
7222 2006-04-14  James Livingston  <doclivingston@gmail.com>
7224         * bindings/python/override_common.c:
7225         (_helper_unwrap_pointer_pylist):
7226         * bindings/python/override_common.h:
7227         * bindings/python/rb.override:
7228         * bindings/python/rhythmdb.override: Bind some more functions and
7229         virtual functions.
7231         * shell/rb-shell.c: (rb_shell_select_source):
7232         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
7233         * sources/rb-audiocd-source.c:
7234         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
7235         * sources/rb-browser-source.c: (impl_get_search_actions):
7236         * sources/rb-iradio-source.c: (impl_get_ui_actions):
7237         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
7238         * sources/rb-playlist-source.c: (impl_get_ui_actions):
7239         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7240         (impl_get_search_actions):
7241         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
7242         the impl_get_ui_actions and impl_get_search_actions functions return
7243         lists that contain copies of the strings, instead of constant ones.
7244         Needed to bindings
7246 2006-04-14  James Livingston  <doclivingston@gmail.com>
7248         * bindings/python/rhythmdb.defs:
7249         * bindings/python/rhythmdb.override: fix the method argument format
7250         specifiers.
7252 2006-04-14  James Livingston  <doclivingston@gmail.com>
7254         * bindings/python/rhythmdb.defs:
7255         * bindings/python/rhythmdb.override:
7256         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
7257         (entry_to_rb_metadata), (record_entry_change),
7258         (rhythmdb_entry_set_visibility):
7259         * rhythmdb/rhythmdb.h:
7260         * shell/rb-shell.c: (rb_shell_get_song_properties): change
7261         rhythmdb_entry_get to take the db as the first parameter. Fixes the
7262         python bindings of it. The rhythmdb_entry_get_* ones are left the same
7263         since they are used in too many places, and not in the Python
7264         bindings.
7266 2006-04-13  William Jon McCann  <mccann@jhu.edu>
7268         * lib/rb-debug.c: (_rb_profile_log):
7269         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
7270         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7271         * shell/main.c: (main):
7272         * shell/rb-shell.c: (rb_shell_constructor),
7273         (rb_shell_set_visibility), (rb_shell_sync_window_state),
7274         (rb_shell_present):
7275         Fix profile output indentation.  Add more profiling points.
7276         Fixes part of #338114
7278 2006-04-13  James Livingston  <doclivingston@gmail.com>
7280         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
7281         library source being deleted, by setting the active source to NULL.
7282         From bug 338116.
7284 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7286         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7287         Update the last-seen string when hiddenness changes.
7289 2006-04-12  James Livingston  <doclivingston@gmail.com>
7291         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
7292         which caused the first-seen time to be reset when a metadata load was
7293         done. Fixes bug 336874.
7295         * shell/rb-shell.h: remove old function declaration.
7297         * bindings/python/rhythmdb.defs:
7298         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7300 2006-04-11  James Livingston  <doclivingston@gmail.com>
7302         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7303         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7304         interaction. Fixes bug 337999.
7306 2006-04-11  James Livingston  <doclivingston@gmail.com>
7308         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7309         track transfer. Fixes bug 338056.
7311         * shell/Makefile.am:
7313 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7315         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7317 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7319         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7320         (_rb_profile_log):
7321         * lib/rb-debug.h:
7322         * shell/rb-shell.c: (construct_db), (construct_widgets),
7323         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7324         Add profiling.  Fixes #337387
7326 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7328         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7329         * widgets/rb-header.c:
7330         Use italics for artist and album. Fixes #336748
7332 2006-04-10  James Livingston  <doclivingston@gmail.com>
7334         * Makefile.am:
7335         * backends/gstreamer/Makefile.am:
7336         * configure.ac:
7337         * data/glade/library-prefs.glade:
7338         * shell/Makefile.am:
7339         * shell/rb-removable-media-manager.c:
7340         * shell/rb-removable-media-manager.h:
7341         * sources/Makefile.am:
7342         * sources/rb-audiocd-source.c:
7343         * sources/rb-library-source.c: (rb_library_source_class_init),
7344         (rb_library_source_finalize), (impl_get_config_widget),
7345         (rb_library_source_preferences_sync), (impl_can_paste): add a
7346         --enable-track-transfer configure option, abd make cd ripping disabled
7347         by default.
7349         * shell/rb-source-header.c:
7350         * sources/rb-source.c: (rb_source_class_init),
7351         (rb_source_delete_thyself), (default_get_entry_view):
7352         * lib/rb-glade-helpers.c:
7353         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7354         some compiler warnings, and also bug 337427.
7356 2006-04-10  James Livingston  <doclivingston@gmail.com>
7358         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7359         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7360         if the gconf key is missing. Fixes bug 337742.
7362 2006-04-10  James Livingston  <doclivingston@gmail.com>
7364         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7365         to fix build problems I caused with a commit yesterday. Fixed bug
7366         337806.
7368         * daapsharing/rb-daap-mdns-browser-howl.c:
7369         (rb_daap_mdns_browser_class_init):
7370         * podcast/Makefile.am:
7371         * rhythmdb/Makefile.am:
7372         * widgets/eggtrayicon.h:
7374 2006-04-09  Steve Frécinaux  <steve@istique.net>
7376         * configure.ac:
7377         * po/LINGUAS:
7378         
7379         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7380         translators' life easier.
7382 2006-04-09  James Livingston  <doclivingston@gmail.com>
7384         * bindings/python/rb.defs:
7385         * bindings/python/rb.override: add bindings for most RBSource virtual
7386         functions.
7388         * sources/rb-source.h:
7389         * sources/rb-source.c: (rb_source_class_init): make
7390         impl_get_browser_key return a non-consht string, since Python can't
7391         really give us constant strings.
7393         * shell/rb-source-header.c: (rb_source_header_finalize),
7394         (rb_source_header_set_source_internal):
7395         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7396         * sources/rb-iradio-source.c: (impl_get_browser_key):
7397         * sources/rb-library-source.c: (impl_get_browser_key):
7398         * sources/rb-playlist-source.c:
7399         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7400         (rb_browser_source_state_prefs_sync):
7401         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7402         above change.
7404         * plugins/sample-python/sample-python.py: show how to add a new
7405         source.
7407 2006-04-09  James Livingston  <doclivingston@gmail.com>
7409         * daapsharing/Makefile.am:
7410         * daapsharing/rb-daap-connection.c:
7411         (rb_daap_connection_class_init):
7412         * daapsharing/rb-daap-marshal.list:
7413         * daapsharing/rb-daap-mdns-browser-avahi.c:
7414         (rb_daap_mdns_browser_class_init):
7415         * lib/rb-marshal.list:
7416         * player/Makefile.am:
7417         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7418         * player/rb-recorder-marshal.list:
7419         * podcast/Makefile.am:
7420         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7421         * podcast/rb-podcast-marshal.list:
7422         * rhythmdb/Makefile.am:
7423         * rhythmdb/rhythmdb-marshal.list:
7424         * rhythmdb/rhythmdb-query-model.c:
7425         (rhythmdb_query_model_class_init):
7426         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7427         into one file, as there is no point having several of them.
7429 2006-04-09  James Livingston  <doclivingston@gmail.com>
7431         * lib/Makefile.am:
7432         * lib/rb-enums.h:
7433         * widgets/Makefile.am:
7434         * widgets/eggnotificationbubble.c:
7435         * widgets/eggnotificationbubble.h:
7436         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7437         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7439         * rhythmdb/rhythmdb-property-model.h:
7440         * rhythmdb/rhythmdb-query-model.h:
7441         * rhythmdb/rhythmdb.h:
7442         * shell/rb-playlist-manager.h:
7443         * widgets/rb-cell-renderer-pixbuf.h:
7444         * widgets/rb-cell-renderer-rating.h:
7445         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7447 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7449         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7450         so we can build without a system-wide installed copy.
7452 2006-04-09  James Livingston  <doclivingston@gmail.com>
7454         * data/glade/general-prefs.glade:
7455         * data/rhythmbox.schemas:
7456         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7457         (rb_combo_box_hyphen_separator_func):
7458         * lib/rb-glade-helpers.h:
7459         * lib/rb-preferences.h:
7460         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7461         (rb_shell_preferences_sync),
7462         (rb_shell_preferences_toolbar_style_cb),
7463         (rb_shell_preferences_browser_views_activated_cb):
7464         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7465         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7466         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7468 2006-04-09  James Livingston  <doclivingston@gmail.com>
7470         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7471         data that MusicBrainz returns to us. Last part of bug 334167.
7473 2006-04-09  James Livingston  <doclivingston@gmail.com>
7475         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7476         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7478 2006-04-09  James Livingston  <doclivingston@gmail.com>
7480         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7481         the entry view properly when the rows are reordered. Fixes bug 337019.
7483 2006-04-09  James Livingston  <doclivingston@gmail.com>
7485         * configure.ac:
7486         * widgets/Makefile.am:
7487         * widgets/libsexy/Makefile.am:
7488         * widgets/libsexy/sexy-icon-entry.c:
7489         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7490         libsexy, and allow building against it or a system-wide installed
7491         copy.
7494         * widgets/rb-search-entry.c: (rb_search_entry_init),
7495         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7496         search box. Fixes bug 128109.
7498 2006-04-09  James Livingston  <doclivingston@gmail.com>
7500         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7502         * widgets/rb-entry-view.c: (rb_entry_view_init),
7503         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7504         and Pause icons rather than the volume ones in the Now Playing column.
7505         Closes bug 336482.
7507 2006-04-08  James Livingston  <doclivingston@gmail.com>
7509         * bindings/python/override_common.h:
7510         * bindings/python/rb.override:
7511         * bindings/python/rhythmdb.override: bind some more functions 
7513 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7515         * metadata/rb-metadata-dbus-service.c: (_send_error):
7516         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7517         are sent properly and we don't get 'method doesn't exist' messages
7518         from dbus instead.
7520 2006-04-08  James Livingston  <doclivingston@gmail.com>
7522         * bindings/python/override_common.h:
7523         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7524         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7525         more utility functions for C<->Python conversions
7527         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7528         (rb_entry_view_state_get_type):
7529         * widgets/rb-entry-view.h: make the colume type and entry view state
7530         GTypes
7532         * bindings/python/Makefile.am:
7533         * bindings/python/rb.defs:
7534         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7535         RBSource.
7537 2006-04-08  James Livingston  <doclivingston@gmail.com>
7539         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7540         initialiser for a GError
7542         * sources/rb-source.c: (rb_source_eof_type_get_type):
7543         * sources/rb-source.h: add a GType for RBSourceEOFType
7545         * bindings/python/Makefile.am:
7546         * bindings/python/rb.defs:
7547         * bindings/python/rb.override: bind RBSource and RBSourceList
7549 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7551         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7552         (rb_shell_player_get_property),
7553         (rb_shell_player_get_active_source),
7554         (rb_shell_player_set_playing_source_internal):
7555         * shell/rb-shell-player.h:
7556         Change 'playing-from-queue' from being a signal to being a property.
7558         * shell/rb-shell.c: (rb_shell_constructor),
7559         (rb_shell_playing_from_queue_cb),
7560         (rb_shell_view_queue_as_sidebar_changed_cb),
7561         (rb_shell_jump_to_entry_with_source):
7562         When the queue side pane is used, make 'jump to current' jump to the
7563         entry in the registered source for its type, rather than in the queue,
7564         and show it as playing in that source.
7565         
7566         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7567         * sources/rb-sourcelist.h:
7568         Remove the 'preempted source' stuff, since it wasn't doing anything
7569         anyway.
7571 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7573         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7574         (download_progress_cb): Canonicalise downloaded file location before
7575         setting the mountpoint property of the corresponding entry.
7576         Fixes #337287 and a couple of memory leaks.
7578 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7580         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7581         (test_load), (main): Call g_set_prgname, report errors more
7582         usefully in test mode.
7583         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7584         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7585         files.  Run the event loop when the state change fails so we get the
7586         error messages from the bus.  Fixes #336921.
7588 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7590         * data/art/Makefile.am: Install media-eject.
7592         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7593         return value of rb_file.
7595         Fixes #337209
7597 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7599         Patch by: William Jon McCann  <mccann@jhu.edu>
7601         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7602         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7603         Fix GError leak.
7605 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7607         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7608         Don't try to add a date when we don't have one.  Fixes #336741.
7610         Also fix variable declaration in middle of block.
7612 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7614         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7615         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7617 2006-04-02  James Livingston  <doclivingston@gmail.com>
7619         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7620         inverted logic causing imports to fail.
7622 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7624         * shell/main.c: (main): Fix dbusless build.
7626 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7628         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7629         wav header for non-gcc compilers (not tested much, was only written
7630         according to docs)
7632 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7634         * shell/main.c: (main): Check if we got a dbus connection before
7635         trying to create a proxy for the shell object.  Fixes #336634.
7637 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7639         * doc/reference/Makefile.am:
7640         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7641         * shell/rb-source-header.c:
7642         * sources/rb-generic-player-source.c:
7643         (default_transform_playlist_uri):
7644         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7645         <alexl@users.sourceforge.net>
7647 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7649         * configure.ac: Detect LIRC.
7650         
7651         * plugins/Makefile.am:
7652         * plugins/lirc/Makefile.am:
7653         * plugins/lirc/lirc.rb-plugin.desktop.in:
7654         * plugins/lirc/rb-lirc-plugin.c:
7655         LIRC plugin.
7657         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7658         Remove obsolete files.
7660 2006-04-02  James Livingston  <doclivingston@gmail.com>
7662         * sources/rb-generic-player-source.c:
7663         (default_transform_playlist_uri): consider playlist paths as relative
7664         to the volume root by default, since that is what most players use.
7666 2006-04-02  James Livingston  <doclivingston@gmail.com>
7668         * lib/rb-util.c: (rb_mime_get_friendly_name):
7669         * lib/rb-util.h: add helper function to get the "friendly" name for a
7670         mime-type
7672         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7673         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7674         the user better error messages about undecodable streams, using the
7675         "friendly" name if possible. Fixes bug 128109.
7677 2006-04-02  James Livingston  <doclivingston@gmail.com>
7679         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7680         (start_pipeline): fix building with gstreamer 0.8
7682 2006-04-02  James Livingston  <doclivingston@gmail.com>
7684         * sources/rb-podcast-source.c: (impl_delete),
7685         (rb_podcast_source_cmd_delete_feed),
7686         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7687         it, since it may change during traversal. Fixes bug 336204.
7689 2006-04-01  James Livingston  <doclivingston@gmail.com>
7691         * data/art/media-eject.png: add the media-eject icon from Banshee
7692         (BSD-licensed), for use when the user's icon theme doesn't have one.
7694         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7695         bug 334897.
7697 2006-04-01  James Livingston  <doclivingston@gmail.com>
7699         * shell/rb-shell-player.h:
7700         * shell/rb-shell-player.c: (rb_shell_player_play),
7701         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7702         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7703         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7705         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7706         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7707         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7709         * bindings/python/rb.defs: bind the above to Python, and remove some
7710         useless stuff from the bindings.
7712 2006-04-01  James Livingston  <doclivingston@gmail.com>
7714         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7715         number tag.
7717         * shell/rb-shell.c:
7718         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7720         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7721         to true.
7723         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7724         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7725         method assigning, so it's understandable
7727         * sources/rb-library-source.c: (rb_library_source_class_init),
7728         (impl_paste): rather than hard-coding the types to ignore, use
7729         rb_source_can_copy.
7731 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7733         * sources/rb-library-source.c:
7734         (rb_library_source_preferences_sync):
7735         Don't crash if no audio profile is selected and the gconf schemas are 
7736         not installed.
7738 2006-03-31  James Livingston  <doclivingston@gmail.com>
7740         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7741         "*" which caused compilation to fail
7743 2006-03-31  James Livingston  <doclivingston@gmail.com>
7745         * configure.ac:
7746         * Makefile.am:
7747         * backends/Makefile.am:
7748         * backends/gstreamer/Makefile.am:
7749         * backends/gstreamer/rb-encoder-gst.c:
7750         * backends/gstreamer/rb-encoder-gst.h:
7751         * backends/rb-encoder.c:
7752         * backends/rb-encoder.h: add a interface for transcoding, and a
7753         GStreamer implementation of it (based on Sound-Juicer's code).
7755         * shell/Makefile.am:
7756         * shell/rb-removable-media-manager.c:
7757         (rb_removable_media_manager_class_init),
7758         (rb_removable_media_manager_init),
7759         (rb_removable_media_manager_dispose),
7760         (rb_removable_media_manager_finalize),
7761         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7762         (progress_cb), (completed_cb), (do_transfer),
7763         (rb_removable_media_manager_queue_transfer), (copy_entry),
7764         (rb_removable_media_manager_cmd_copy_tracks):
7765         * shell/rb-removable-media-manager.h: use the encoder interface to
7766         perform transfers of entries to other locations
7768         * shell/rb-shell-player.c: (open_location_thread):
7769         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7770         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7771         (rb_shell_quit):
7772         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7773         progress in the status bar.
7775         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7776         (rb_shell_preferences_sync),
7777         (rb_shell_preferences_browser_views_activated_cb):
7778         * data/glade/general-prefs.glade: move the browser views setting from
7779         the library tab to the general one.
7781         * data/glade/library-prefs.glade: add settings for the layout of the
7782         user's library, and their preferred encoding format (e.g. for CD
7783         ripping).
7785         * lib/rb-preferences.h:
7786         * data/rhythmbox.schemas: add keys for the above options (and a few
7787         other minor ones)
7789         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7790         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7791         entry, that isn't inserted into the database.
7793         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7794         (rb_audiocd_create_track_entry):
7795         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7796         cds, and set the mime-type of audio cd tracks correctly.
7798         * sources/rb-library-source.c: (rb_library_source_class_init),
7799         (rb_library_source_finalize),
7800         (rb_library_source_edit_profile_clicked_cb),
7801         (impl_get_config_widget), (rb_library_source_preferences_sync),
7802         (impl_receive_drag), (rb_library_source_path_changed_cb),
7803         (rb_library_source_filename_changed_cb),
7804         (rb_library_source_format_changed_cb), (sanitize_path),
7805         (filepath_parse_pattern), (layout_example_label_update),
7806         (rb_library_source_layout_path_changed),
7807         (rb_library_source_layout_filename_changed), (build_filename),
7808         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7809         entries to the library. Large chunks of code for determining the
7810         destination file name stolen from Sound-Juicer.
7812         * sources/rb-sourcelist-model.c: (path_is_droppable):
7813         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7814         * sources/rb-static-playlist-source.c:
7815         (rb_static_playlist_source_class_init):
7816         * sources/rb-removable-media-source.c:
7817         (rb_removable_media_source_class_init):
7818         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7819         (rb_source_can_paste):
7820         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7821         than _can_copy) to determine whether we can paste into the source.
7824 2006-03-31  Steve Frécinaux  <steve@istique.net>
7826         * plugins/rb-python-module.c: allow import of python modules with a '.'
7827         (gedit's bug 336403). Patch by Johan Dahlin.
7829 2006-03-31  James Livingston  <doclivingston@gmail.com>
7831         * sources/rb-library-source.c: 
7832         * sources/rb-library-source.h:
7833         * sources/rb-browser-source.c:
7834         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7835         RBBrowserSource now contains all the stuff for having a source which
7836         views a particular entry type (including browsers and searching).
7837         RBLibrarySource derives from this, and includes the library-specific
7838         stuff, like importing and library watching. Fixes some issues where
7839         library-derived sources were doing things that should be
7840         library-specific. Fixes bug 335185.
7842         * data/ui/rhythmbox-ui.xml:
7843         * sources/Makefile.am: modifications for the above
7845         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7846         (rb_daap_source_get_paned_key):
7847         * sources/rb-daap-source.h:
7848         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7849         * sources/rb-removable-media-source.c:
7850         (rb_removable_media_source_class_init):
7851         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7852         instead of RBLibrarySource.
7854 2006-03-31  James Livingston  <doclivingston@gmail.com>
7856         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7857         I buggered up when changing from GnomeVFSFileSize.
7859 2006-03-30  James Livingston  <doclivingston@gmail.com>
7861         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7862         for "-Wno-error".
7864         * bindings/python/rb.override:
7865         * bindings/python/Makefile.am: make the RB python bindings depend on
7866         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7867         code sometimes emits warnings.
7869         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7870         (rb_shell_player_error_get_type):
7871         * shell/rb-shell-player.h:
7872         * bindings/python/rb.defs: add bindings for RBShellPlayer
7874         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7875         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7876         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7877         * rhythmdb/rhythmdb.h:
7878         * shell/rb-shell.c: (rb_shell_get_song_properties):
7879         * widgets/rb-entry-view.c: (propid_from_name):
7880         * widgets/rb-property-view.c: (rb_property_view_class_init):
7881         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7882         than just plain GPtrArray, and add bindings for it.
7884         * bindings/python/rhythmdb.override: wrap some functions that use
7885         GValues
7887 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7889         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7890         Only watch directories from which entries of type SONG have been
7891         added.
7893 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7895         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7896         No need to restore the selection after rebuilding the child model,
7897         since that can't have changed the selection.
7899 2006-03-29  James Livingston  <doclivingston@gmail.com>
7901         * bindings/python/override_common.c:
7902         * bindings/python/override_common.h: add some for missing files to
7903         cvs.
7905 2006-03-29  James Livingston  <doclivingston@gmail.com>
7907         * configure.ac:
7908         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7909         copied from gedit's autofoo and we don't need it
7911         * bindings/python/rhythmdb.defs:
7912         * bindings/python/rhythmdb.override: add missing files to cvs
7914 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7916         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7917         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7918         before running any of the debug/test modes.
7919         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7920         Make plugin loading work when running uninstalled from the shell/
7921         directory.
7923 2006-03-29  James Livingston  <doclivingston@gmail.com>
7925         * rhythmdb/rhythmdb-property-model.c:
7926         (rhythmdb_property_model_sync),
7927         (rhythmdb_property_model_column_get_type):
7928         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7930         * rhythmdb/rhythmdb-private.h:
7931         * rhythmdb/rhythmdb-query-model.c:
7932         (rhythmdb_query_model_class_init):
7933         * rhythmdb/rhythmdb-query-model.h:
7934         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7935         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7936         (rhythmdb_entry_get_type):
7937         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7939         * widgets/rb-query-creator-properties.c:
7940         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7941         was missing.
7943         * bindings/python/Makefile.am:
7944         * bindings/python/rb.defs:
7945         * bindings/python/rb.override:
7946         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7947         Python bindings for RhythmDB.
7949 2006-03-29  James Livingston  <doclivingston@gmail.com>
7951         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7952         sharing when using --no-registration
7954 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7956         * rhythmdb/rhythmdb-query-model.c:
7957         (rhythmdb_query_model_reapply_query):
7958         Don't remove entries while iterating, as it breaks the sequence
7959         nodes.  Instead, collect a list of removed entries and process it
7960         after iterating the sequence.  Fixes #334642.
7962 2006-03-29  James Livingston  <doclivingston@gmail.com>
7964         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7965         (row_activated_cb), (plugin_manager_toggle_all):
7966         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7967         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7968         (button_press_cb), (source_name_edited_cb):
7969         * widgets/rb-property-view.c: (rb_property_view_set_property),
7970         (rb_property_view_post_row_deleted_cb),
7971         (rb_property_view_row_activated_cb),
7972         (rb_property_view_selection_changed_cb),
7973         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7974         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7976 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7978         * rhythmdb/rhythmdb-query-model.c:
7979         (rhythmdb_query_model_drag_data_received):
7980         Increment the reference count for entries added by drag and drop.
7981         Fixes #336045.
7983 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7985         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7986         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7987         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7989 2006-03-27  James Livingston  <doclivingston@gmail.com>
7991         * shell/rb-shell.c: (rb_shell_constructor),
7992         (rb_shell_sync_window_state): fix a maximise-realise race that would
7993         cause some widgets to be resized after we had explicity set theri
7994         size. Hopefully fixes bug 331927.
7996 2006-03-27  James Livingston  <doclivingston@gmail.com>
7998         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7999         (row_activated_cb), (plugin_manager_set_active),
8000         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
8001         configure button sensitivity when a plugin is enabled/disabled.
8003 2006-03-27  James Livingston  <doclivingston@gmail.com>
8005         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
8006         stop warnings, only the vbos is used anyway
8008         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
8009         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
8010         collection every now an then.
8012         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
8013         if we are finalising because the python object couldn't be created.
8015         * plugins/rb-python-module.c: (rb_python_module_new_object): return
8016         NULL if the python-side object couldn't be created. Stops crashes when
8017         the object is later used when it doesn't exist in Python.
8019         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
8020         (rb_python_shutdown): do better garbage collection when shutting down.
8021         Fixes the problem where Python was holding a reference to the shell,
8022         causing RB not to exit.
8024 2006-03-27  James Livingston  <doclivingston@gmail.com>
8026         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
8027         336131.
8029 2006-03-27  James Livingston  <doclivingston@gmail.com>
8031         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
8032         From bug 334829.
8034 2006-03-26  James Livingston  <doclivingston@gmail.com>
8036         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
8037         library location list to NULL after we free it. Fixes bug 336047.
8039 2006-03-26  James Livingston  <doclivingston@gmail.com>
8041         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8043         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
8044         supplies. Fixes bug 335947.
8046 2006-03-25  James Livingston  <doclivingston@gmail.com>
8048         * data/glade/audioscrobbler-prefs.glade:
8049         * shell/rb-audioscrobbler.c:
8050         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
8051         "submit songs" checkbox, and make it not disable username/password
8052         entry. This will be needed when we support other last.fm stuff
8053         (profile access, radio, etc).
8055 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
8057         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
8058         Volume should not display stock_volume-0 for volume > 0. Fixes bug
8059         335777.
8061 2006-03-24  James Livingston  <doclivingston@gmail.com>
8063         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8064         (rb_shell_player_sync_play_order),
8065         (rb_shell_player_play_order_update_cb),
8066         (actually_set_playing_source): update the next/previous availablility
8067         in places where it was missing. Fixes bug 335490.
8069 2006-03-24  James Livingston  <doclivingston@gmail.com>
8071         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
8072         can't find the widget
8074         * lib/rb-util.c: (rb_uri_list_parse):
8075         * lib/rb-util.h: add function for parsing a URI list into strings.
8077         * metadata/Makefile.am: make the metdata helper build when linking
8078         with --as-needed
8080         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
8081         g_mkdir_with_parents instead of coding our own.
8083         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
8084         <itunes:author> over <generator>, instead of using whichever comes
8085         last.
8087         * rhythmdb/rhythmdb-private.h:
8088         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
8089         field, as we don't ever check it (to detect corruption). Saves a bit
8090         of memory.
8092 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8094         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
8095         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
8096         Escape '&' and '=' in the paths we get back from
8097         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
8099 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8101         * shell/rb-shell.c: (rb_shell_constructor):
8102         Issue startup notification after creating the main window, so
8103         notification is issued whether the window is visible or not.
8104         Fixes #335086.
8106 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8108         * sources/rb-auto-playlist-source.c: (impl_search),
8109         (rb_auto_playlist_source_query_complete_cb),
8110         (rb_auto_playlist_source_do_query):
8111         * sources/rb-library-source.c: (impl_search),
8112         (rb_library_source_query_complete_cb),
8113         (rb_library_source_do_query):
8114         Defer subset searches (where text is appended to an existing search)
8115         until the original query is complete.
8117 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
8119         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
8121         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8122         (rb_refstring_get_sort_key): fixes for strict-aliasing
8124 2006-03-21  James Livingston  <jrl@ids.org.au>
8126         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
8127         importing a single file. Fixes bug 335307.
8129 2006-03-21  James Livingston  <jrl@ids.org.au>
8131         * shell/Makefile.am: remove the reference to backends/ that I
8132         accidently included.
8134 2006-03-21  James Livingston  <jrl@ids.org.au>
8136         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
8137         with Forte (on Solaris). Closes bug 335318.
8139         * configure.ac:
8140         * lib/Makefile.am:
8141         * player/rb-recorder-gst.c:
8142         * podcast/rb-podcast-parse.c:
8143         * remote/bonobo/Makefile.am:
8144         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
8145         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
8146         (rhythmdb_query_model_add_entry),
8147         (rhythmdb_query_model_add_results):
8148         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
8149         * rhythmdb/rhythmdb.h:
8150         * shell/Makefile.am:
8151         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
8152         (update_speed_combobox):
8153         * sources/rb-sourcelist-model.c:
8155 2006-03-21  James Livingston  <jrl@ids.org.au>
8157         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8159         * player/Makefile.am:
8160         * shell/Makefile.am: work correctly with a separate build root.
8162 2006-03-21  James Livingston  <jrl@ids.org.au>
8164         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
8165         get handed NULL.
8167 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8169         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
8170         Only create ignore entries when importing into the library.  
8171         Ignore entries for files in removable media sources don't help.
8173 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8175         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
8176         * shell/rb-source-header.h:
8177         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
8178         * widgets/rb-search-entry.h:
8179         Add functions to make the search box grab focus.
8181         * shell/rb-shell.c: (rb_shell_cmd_view_all):
8182         Focus the search box after handling the 'view all' action.
8184 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8186         * rhythmdb/rhythmdb.h:
8187         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8188         (rhythmdb_execute_multi_stat_info_cb),
8189         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
8190         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
8191         (action_thread_main):
8192         Collect all the get_file_info requests on startup into one gnome-vfs
8193         job to reduce overhead and avoid contention for the rhythmdb lock.
8194         Add a new method to call when all initial query models are set up.
8195         
8196         * shell/rb-shell.c: (idle_handle_load_complete):
8197         Call rhythmdb startup complete function when we've loaded all the
8198         playlists.  Fixes #334106.
8200 2006-03-20  James Livingston  <jrl@ids.org.au>
8202         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
8203         (rb_entry_view_selection_changed_cb),
8204         (rb_entry_view_have_complete_selection): make has_complete_selection
8205         not slow. Fixes a performance issue I added a week or so ago.
8207 2006-03-20  James Livingston  <jrl@ids.org.au>
8209         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
8210         before passing to strcmp. From bug 334559.
8212 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8214         * configure.ac:
8215         * lib/Makefile.am:
8216         * lib/rb-proxy-config.c:
8217         * lib/rb-proxy-config.h:
8218         Add a new object to watch the HTTP proxy configuration and emit
8219         signals when it changes.
8221         * shell/rb-audioscrobbler.c:
8222         * shell/rb-audioscrobbler.h:
8223         Use rb-proxy-config to watch HTTP proxy configuration.
8225         * shell/rb-shell.c:
8226         Construct rb-proxy-config object on startup, and remove all
8227         audioscrobbler references.
8229         * shell/Makefile.am:
8230         * plugins/audioscrobbler/Makefile.am:
8231         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
8232         Move all audioscrobbler code into the plugin.  We should move
8233         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
8234         point.  Don't use a private data structure in the plugin, since the
8235         class definition isn't in a header file.  Fixes #335091.
8237 2006-03-20  James Livingston  <jrl@ids.org.au>
8239         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
8240         don't enable Next if the source has an EOS type other than
8241         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
8243 2006-03-20  James Livingston  <jrl@ids.org.au>
8245         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
8246         (rb_song_info_forward_clicked_cb): deal with there being no
8247         next/previous entry.
8249         (rb_song_info_query_model_inserted_cb),
8250         (rb_song_info_query_model_deleted_cb),
8251         (rb_song_info_query_model_reordered_cb),
8252         (rb_song_info_query_model_changed_cb): monitor the query for changes,
8253         to update the button status. Fixes bug 333293.
8255 2006-03-20  James Livingston  <jrl@ids.org.au>
8257         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
8258         caused by my last commit
8260 2006-03-20  James Livingston  <jrl@ids.org.au>
8262         * bindings/python/Makefile.am:
8263         * bindings/python/rb.defs:
8264         * bindings/python/rb.override: add python bindings of RBRemoteProxy
8266         * shell/rb-shell.c: (rb_shell_constructor),
8267         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
8268         tray-icon detection slightly
8270 2006-03-19  Steve Frécinaux  <steve@istique.net>
8272         * data/ui/rhythmbox-ui.xml:
8273         * shell/rb-shell.c:
8275         Add an empty Tool Menu (hidden by default) containing placeholders for
8276         plugins.
8278         * configure.ac:
8279         * plugins/Makefile.am:
8280         * plugins/pythonconsole/Makefile.am:
8281         * plugins/pythonconsole/pythonconsole.py:
8282         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
8283         
8284         Python Console plugin
8286 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8288         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
8289         Extra step to encode '&' and '=' to match what gnome-vfs does
8290         internally.
8291         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8292         (rhythmdb_tree_save):
8293         Increment rhythmdb xml version to 1.2, and force another uri
8294         re-canonicalisation when loading v1.1 databases.
8295         Fixes bug #333998.
8297 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8299         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8300         (avahi_client_init), (browse_cb):
8301         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8302         (avahi_client_init):
8303         Fix compilation with Avahi 0.5.x (bug #334551).
8305 2006-03-19  James Livingston  <jrl@ids.org.au>
8307         Add Increase/Decrease Volume menu items and keybindings. From bug
8308         123383.
8310         * data/ui/rhythmbox-ui.xml:
8311         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8312         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8313         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8315 2006-03-19  James Livingston  <jrl@ids.org.au>
8317         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8319         * shell/Makefile.am: fix the link order, so that we compile with
8320         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8322 2006-03-19  James Livingston  <jrl@ids.org.au>
8324         patch by: Adam Petaccia  <adam@tpetaccia.com>
8326         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8327         plugins". Fixes bug 335037.
8329 2006-03-18  James Livingston  <jrl@ids.org.au>
8331         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8332         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8333         332992.
8335         * widgets/rb-header.c: don't make artist/album info in the header the
8336         small size, since it's hard to read.
8338 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8340         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8341         (rhythmdb_finalize): Don't leak the hash tables.
8342         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8343         (rhythmdb_commit_internal): Make sure to process the deletions.
8344         (rhythmdb_entry_delete): Use a hash.
8346         * podcast/rb-podcast-manager.c: Random analness about char*
8347         (rb_podcast_manager_remove_feed): Add debugging.
8348         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8349         the result of gnome_vfs_unlink.  Don't leak a uri.
8351         Fixes #334786
8353 2006-03-18  James Livingston  <jrl@ids.org.au>
8355         * NEWS: update NEWS file
8357 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8359         * rhythmdb/rhythmdb-property-model.c:
8360         (rhythmdb_property_model_prop_changed_cb):
8361         Remove entries from the hash table after processing visible->hidden
8362         changes.
8364 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8366         * sources/rb-daap-source.c (connection_connected_cb) 
8367         (connection_disconnected_cb): Add debug.
8368         (rb_daap_source_get_headers): Check for NULL connection.
8370         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8371         Check return value of rb_daap_source_get_headers.
8373         Fixes #332089
8375 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8377         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8378         Restore the selection after rebuilding the child model, so the
8379         selection is shown correctly after using the 'browse this
8380         album/artist/genre' menu items.
8382 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8384         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8385         Clear the selection before changing the active model.
8386         Fixes crash reported in bug 334549.
8388 2006-03-15  James Livingston  <jrl@ids.org.au>
8390         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8391         (rb_tray_icon_sync_action):
8392         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8393         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8394         for non-libnotify notification bubbles. Fixes bug 331721.
8396 2006-03-15  James Livingston  <jrl@ids.org.au>
8398         Add search-bar options to playlists. Fixes bug 334407.
8400         * sources/rb-auto-playlist-source.c:
8401         (rb_auto_playlist_source_class_init),
8402         (rb_auto_playlist_source_constructor),
8403         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8404         (search_action_to_prop), (search_action_changed):
8405         * sources/rb-static-playlist-source.c:
8406         (rb_static_playlist_source_class_init),
8407         (rb_static_playlist_source_constructor),
8408         (construct_query_from_selection), (impl_get_search_actions),
8409         (search_action_to_prop), (search_action_changed):
8411 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8413         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8414         Remove broken attempt at making the search bar buttons not
8415         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8417 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8419         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8420         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8422 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8424         * widgets/rb-header.c (rb_header_sync): Escape album and
8425         artist before adding to markup.
8427 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8429         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8430         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8431         (rb_header_set_property), (rb_header_get_property),
8432         (rb_header_sync):
8433         Remove the GnomeUrl song links until we can do it properly.
8434         Fixes #334453.
8436 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8438         * shell/rb-source-header.c: (rb_source_header_clear_search):
8439         Remove the stored search text from the hash table, so it doesn't
8440         reappear after switching to another source and back.
8442         * sources/rb-auto-playlist-source.c: (impl_search):
8443         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8444         * sources/rb-static-playlist-source.c: (impl_search):
8445         Make sure all sources treat impl_search(NULL) and impl_search("") the
8446         same.  Fixes #334525.
8448 2006-03-14  James Livingston  <jrl@ids.org.au>
8450         Store which thread created new entries, and make rhythmdb_commit only
8451         insert the entries for the thread that calls it. This stops one thread
8452         calling rhythmdb_commit inserting entries that are half-way through
8453         construction by another thread (as happens with audio cds). From bug
8454         330226.
8456         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8457         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8458         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8459         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8460         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8461         (rhythmdb_process_metadata_load),
8462         (rhythmdb_process_queued_entry_set_event),
8463         (rhythmdb_prop_get_type):
8465 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8467         * rhythmdb/rhythmdb-query-model.c:
8468         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8469         (rhythmdb_query_model_finalize):
8470         Move object unrefs from _finalize into _dispose.
8471         
8472         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8473         Remove extra g_object_ref that was causing query model leaks.
8474         
8475         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8476         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8477         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8478         Remove the cached 'all' query, since it doesn't really help and it
8479         makes the code more complicated.  Attach the genre property view to
8480         the query model build from the search text, so only genres for
8481         stations matching the search terms are displayed.  Preserve the genre
8482         selection across searches.
8484         * widgets/rb-library-browser.c: 
8485         (rb_library_browser_class_init), (rb_library_browser_get_property):
8486         Add properties for the input and output models for the browser, and
8487         remove the 'changed' signal as we can just use notify::output-model.
8488         (ignore_selection_changes),
8489         (selection_restore_data_destroy), (query_complete_cb),
8490         (restore_selection): Helper functions for preserving selections across
8491         query model rebuilds.
8492         (rebuild_output_model):  New function for creating a query model to
8493         use as the display model for a source using the browser.
8494         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8495         g_object_unrefs, reuse the parent's query model when there's no
8496         selection, and use ignore_selection_changes and restore_selection.
8497         (rb_library_browser_set_selection): rebuild_child_model emits the
8498         changed signal, so no need to do it here.
8499         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8500         ignore_selection_changes and restore_selection. 
8501         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8502         flag to rb_library_browser_set_model indicating whether the query is
8503         asynchronous.
8505         * sources/rb-static-playlist-source.c:
8506         (rb_static_playlist_source_class_init),
8507         (rb_static_playlist_source_dispose):
8508         (rb_static_playlist_source_constructor):  Add an extra reference on
8509         the base model, so it doesn't vanish when we set a new display model
8510         based on a search or browser selection.
8511         (impl_search): Ensure the search_text field in the source is NULL if
8512         the search box is empty.
8513         (construct_query_from_selection),
8514         (rb_static_playlist_source_do_query): Use the query model constructed
8515         from the search as the input model for the browser.
8516         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8517         output model as the query model for the source.
8519         * sources/rb-auto-playlist-source.c:
8520         (rb_auto_playlist_source_finalize): Free more stuff.
8521         (rb_auto_playlist_source_constructor),
8522         (rb_auto_playlist_source_browser_changed_cb):
8523         Update for rb-library-browser changes, use the browser's output query
8524         model as the query model for the source.
8525         (impl_reset_filters), (impl_search), 
8526         (rb_auto_playlist_source_do_query),
8527         (rb_auto_playlist_source_set_query):
8528         Use the query model constructed from the search text as the input to
8529         the library browser, and when adding text to an existing search, apply
8530         the new query to the existing query model.
8531         
8532         * sources/rb-library-source.c: (rb_library_source_dispose):
8533         (rb_library_source_finalize): Chain dispose up to the parent class.
8534         (rb_library_source_constructor): Update for rb-library-browser
8535         changes. 
8536         (impl_search): Ensure search_text is NULL if the search box is empty,
8537         and use the subset flag to _do_query if text has been appended to an
8538         existing search.
8539         (search_action_changed), (impl_reset_filters):
8540         (rb_library_source_browser_changed_cb),
8541         (rb_library_source_do_query): Use the browser's output model as the
8542         query model for the source.
8544         Rework library and playlist sources to use a single query chain,
8545         and to limit the entries shown in property views based on the search
8546         terms.  Fixes bug #322787.
8548 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8550         * configure.ac:  Enable metadata helper by default, and fix a typo.
8552 2006-03-13  James Livingston  <jrl@ids.org.au>
8554         Make RBRefStrings lazily create the folded and sort-key strings when
8555         they are first used. This will same some memory by not creating ones
8556         that are never used, and delaying some of the others to when the user
8557         resorts or performs a similar action. Fixes bug 332992.
8559         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8560         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8561         (rb_refstring_get), (rb_refstring_get_folded),
8562         (rb_refstring_get_sort_key), (rb_refstring_hash),
8563         (rb_refstring_equal):
8564         * rhythmdb/rb-refstring.h:
8565         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8567 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8569         * data/ui/rhythmbox-ui.xml:
8570         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8571         * lib/rb-stock-icons.h:
8572         * shell/rb-shell-player.c:
8573         * shell/rb-shell.c: (rb_shell_constructor):
8574         * shell/rb-source-header.c: (force_no_shadow),
8575         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8576         (rb_source_header_class_init), (rb_source_header_init),
8577         (merge_source_ui_cb), (toolbar_set_homogeneous),
8578         (rb_source_header_set_source_internal),
8579         (rb_source_header_set_property), (rb_source_header_get_property),
8580         (rb_source_header_set_source), (rb_source_header_new),
8581         (rb_source_header_filter_changed_cb):
8582         * shell/rb-source-header.h:
8583         * sources/rb-library-source.c: (rb_library_source_class_init),
8584         (rb_library_source_init), (search_action_to_prop),
8585         (search_action_changed), (rb_library_source_constructor),
8586         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8587         (construct_query_from_selection):
8588         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8589         (rb_podcast_source_init), (search_action_to_prop),
8590         (search_action_changed), (rb_podcast_source_constructor),
8591         (construct_query_from_selection), (impl_get_ui_actions),
8592         (impl_get_search_actions):
8593         * sources/rb-source.c: (rb_source_class_init),
8594         (rb_source_get_ui_actions), (default_get_search_actions),
8595         (rb_source_get_search_actions):
8596         * sources/rb-source.h:
8598         Add a search bar.  Fixes #328618
8600 2006-03-12  James Livingston  <jrl@ids.org.au>
8602         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8603         * shell/main.c: (main): make --no-update not stat files checking for
8604         changes, instead of doing nothing. Fixes bug 125177.
8606 2006-03-12  James Livingston  <jrl@ids.org.au>
8608         * podcast/rb-podcast-manager.c:
8609         (rb_podcast_manager_thread_parse_feed):
8610         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8611         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8612         having an invalid mime-type. Fixed bug 329813.
8614 2006-03-12  James Livingston  <jrl@ids.org.au>
8616         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8617         Finally lets us close bug 309609.
8619         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8620         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8621         0.10
8623         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8624         inverted logic of the editable check.
8626 2006-03-12  James Livingston  <jrl@ids.org.au>
8628         Make API doc generation work again. Fixes bug 334276.
8630         * doc/reference/Makefile.am:
8631         * doc/reference/tmpl/rb-debug.sgml:
8632         * doc/reference/tmpl/rb-druid.sgml:
8633         * doc/reference/tmpl/rb-entry-view.sgml:
8634         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8635         * doc/reference/tmpl/rb-metadata.sgml:
8636         * doc/reference/tmpl/rb-shell.sgml:
8637         * doc/reference/tmpl/rhythmbox-unused.sgml:
8638         * doc/reference/tmpl/rhythmdb.sgml:
8640 2006-03-12  James Livingston  <jrl@ids.org.au>
8642         * shell/rb-shell-clipboard.c:
8643         (rb_shell_clipboard_set_source_internal),
8644         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8645         it doesn't have one. Fixes bug 331673.
8647         * sources/rb-source.c: (rb_source_class_init): provide a default
8648         have_url implementation that returns FALSE.
8650 2006-03-12  James Livingston  <jrl@ids.org.au>
8652         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8653         doing a distclean. Fixes bug 334221.
8656         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8658         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8660 2006-03-11  James Livingston  <jrl@ids.org.au>
8662         * shell/rb-shell.c: (rb_shell_window_state_cb),
8663         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8664         update the window width/height when iconified. Stops the window
8665         changing size when it is restored from the tray, fixing bug 333824. 
8667 2006-03-11  James Livingston  <jrl@ids.org.au>
8669         Try to get cvs to actually add the necessary files for plugin support
8671 2006-03-11  James Livingston  <jrl@ids.org.au>
8673         Add a plugin framework, with basic support for Python plugins (based
8674         on gedit's). Closes bug 330523.
8676         * Makefile.am:
8677         * shell/Makefile.am:
8678         * configure.ac: necessary autofoo.
8680         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8682         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8683         * lib/rb-file-helpers.h:
8685         * data/glade/plugins/glade:
8686         * lib/rb-preferences.h:
8687         * plugins/*:
8688         * bindings/*: plugin framework
8690         * plugins/sample/*:
8691         * plugins/sample-python/*: sample plugins
8693         * plugins/audioscrobbler/*:
8694         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8695         (rb_audioscrobbler_set_property),
8696         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8697         submission into a plugin. shell/audioscrobbler.* should really be
8698         moved, but that sucks with cvs.
8700         * shell/rb-shell.h:
8701         * shell/rb-shell.c: (rb_shell_constructor),
8702         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8703         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8704         (rb_shell_quit): start and stop plugin framework.
8706 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8708         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8709         (rhythmdb_entry_delete):
8710         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8711         immediately, so we can't get change notifications afterwards.  
8712         Fixes #331732.
8713         (rhythmdb_process_metadata_load): Add a commit after removing an
8714         entry so we can recreate it with a different type without getting
8715         confused.
8717 2006-03-11  James Livingston  <jrl@ids.org.au>
8719         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8720         use the drive name for audio CDs, use "Unknown CD".
8722 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8724         patch by:  James Henstridge  <james@jamesh.id.au>
8726         * sources/rb-removable-media-source.c:
8727         (rb_removable_media_source_constructor):
8728         Get the device name from the GnomeVFSDrive if possible,
8729         since this is usually a more descriptive name.  Fixes #333080.
8731 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8733         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8735         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8736         Don't automatically download episodes when configured for manual
8737         updating.  Fixes #331564.
8739 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8741         * rhythmdb/rhythmdb-property-model.c:
8742         (rhythmdb_property_model_iter_from_string):
8743         Return an iterator for the 'all' property when name == NULL,
8744         and don't write to *iter if iter == NULL.
8746 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8748         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8749         When switching to the play queue, still call _go_next on the normal
8750         play order, so self-emptying auto playlists ("play count = 0" etc.)
8751         don't restart once the queue is empty.
8753         * shell/rb-tray-icon.c:
8754         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8755         with 'next'.
8757 2006-03-05  James Livingston  <jrl@ids.org.au>
8759         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8760         don't submit tracks which could not be played. Fixed bug 333013.
8762         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8763         tracks which could not be played.
8765 2006-03-05  James Livingston  <jrl@ids.org.au>
8767         Sync musicbrainz lookup code from Sound-Juicer cvs.
8769         * metadata/sj-metadata-musicbrainz.c:
8770         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8771         (get_offline_track_listing), (artist_and_title_from_title),
8772         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8773         (mb_list_albums), (mb_get_submit_url):
8774         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8775         * metadata/sj-metadata.h:
8776         * metadata/sj-structures.c: (track_details_free),
8777         (album_details_free):
8778         * metadata/sj-structures.h:
8780 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8782         * lib/rb-debug.h:
8783         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8784         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8785         (rb_profiler_reset), (rb_profiler_free):
8786         Filter debug output by matching the file and function names against a
8787         match string.
8789         * shell/main.c: (main):
8790         Add -D command line option to specify the debug match string.
8792         * shell/rb-removable-media-manager.c:
8793         (rb_removable_media_manager_mount_volume):
8794         Fix some typos in debug output.
8796 2006-03-03  James Livingston  <jrl@ids.org.au>
8798         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8799         * shell/rb-shell.c: (rb_shell_load_uri):
8800         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8801         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8802         use the new "recurse" property from totem-plparser, if present. Stop
8803         RB hanging for new users who don't have a 'net connection. From bug
8804         331508.
8806 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8808         * shell/rb-removable-media-manager.c:
8809         (rb_removable_media_manager_mount_volume):
8810         * sources/Makefile.am:
8811         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8812         Fix missing files on make dist (conditional files), only build the
8813         N770 support if there's HAL support, as we have no other ways of
8814         detecting it
8816 2006-03-03  James Livingston  <jrl@ids.org.au>
8818         * shell/rb-shell-clipboard.c:
8819         (rb_shell_clipboard_set_source_internal): really fix it this time.
8820         hopefully.
8822 2006-03-03  James Livingston  <jrl@ids.org.au>
8824         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8825         with the idle function not being removed.
8827 2006-03-02  James Livingston  <jrl@ids.org.au>
8829         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8830         * widgets/rb-entry-view.h: add function for determining whether all
8831         entries are selected.
8833         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8834         (rb_shell_clipboard_set_source_internal),
8835         (rb_shell_clipboard_finalize),
8836         (rb_shell_clipboard_idle_poll_deletions),
8837         (rb_shell_clipboard_entryview_changed_cb),
8838         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8839         removals, to update things.
8841         (rb_shell_clipboard_sync): update the Select All and Select None
8842         sensitivity, based on what is selected. Fixed bug 172220.
8844 2006-03-02  James Livingston  <jrl@ids.org.au>
8846         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8847         restore the selections of later models. This means that selecting the
8848         artist for the selected album does not reset the album selection.
8850 2006-03-02  James Livingston  <jrl@ids.org.au>
8852         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8853         Stops it emitting critical warnings.
8855 2006-03-02  James Livingston  <jrl@ids.org.au>
8857         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8858         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8859         second fragment is already escaped.
8861         * sources/rb-generic-player-source.c:
8862         (rb_generic_player_source_class_init),
8863         (rb_generic_player_source_constructor), (impl_show_popup),
8864         (rb_generic_player_source_load_playlists),
8865         (rb_generic_player_source_transform_playlist_uri),
8866         (handle_playlist_entry_cb), (visit_playlist_dirs),
8867         (default_load_playlists), (default_transform_playlist_uri):
8868         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8869         the device. Allow subclasses to override the playlist loading, and
8870         (playlist uri)->(actual uri) mapping. A lot of devices which have
8871         playlists won't work right now, but people will see them and hopefully
8872         file bugs.
8874         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8875         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8876         
8877         * sources/Makefile.am:
8878         + sources/rb-nokia770-source.{c,h}:
8879         * shell/rb-removable-media-manager.c:
8880         (rb_removable_media_manager_mount_volume): Add support for reading
8881         playlists of Nokia 770s.
8883 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8885         * data/glade/podcast-properties.glade:
8886         * podcast/rb-podcast-properties-dialog.c:
8887         (rb_podcast_properties_dialog_init),
8888         (rb_podcast_properties_dialog_update),
8889         (rb_podcast_properties_dialog_update_location),
8890         (rb_podcast_properties_dialog_update_download_location):
8891         Add 'download location' field showing the path to the downloaded copy.
8892         Fixes #330696.
8894 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8896         * configure.ac: simplify HAVE_HAL define
8898 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8900         * configure.ac:
8901         * lib/rb-file-helpers.c: (rb_uri_append_path):
8902         * lib/rb-file-helpers.h:
8903         * shell/rb-removable-media-manager.c:
8904         (rb_removable_media_manager_mount_volume):
8905         * sources/Makefile.am:
8906         * sources/rb-ipod-source.c:
8907         * sources/rb-psp-source.*:
8908         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8909         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8911 2006-03-02  James Livingston  <jrl@ids.org.au>
8913         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8914         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8915         (swap_playing_source), (rb_shell_player_playpause),
8916         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8917         (rb_shell_player_set_playing_source_internal): check for the entry
8918         view being NULL before trying to use it. Lets us support sources which
8919         don't have an entry view. From bug 331673.
8921 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8923         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8924         use gnome_vfs_read_entire_file with a URI, not a local filename
8926 2006-03-01  James Livingston  <jrl@ids.org.au>
8928         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8929         first-seen and last-seen when merging duplicate entries.
8931 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8933         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8934         * widgets/rb-property-view.h:  New function, allowing custom 
8935         interactive search functions for property views.
8936         
8937         * sources/rb-podcast-source.c: 
8938         (feed_select_change_cb): Only do a new query when the selection
8939         actually changes.
8940         (rb_podcast_source_constructor),
8941         (rb_podcast_source_feed_title_search_func):
8942         Interactive search function for podcast feed titles.  Fixes #327451.
8944 2006-03-01  James Livingston  <jrl@ids.org.au>
8946         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8947         the uri in the callback, since it causes symbols to not be escaped.
8948         Fixes bug 332976.
8950         * data/ui/rhythmbox-ui.xml:
8951         * sources/rb-import-errors-source.c:
8952         (rb_import_errors_source_class_init),
8953         (rb_import_errors_source_constructor), (impl_get_status),
8954         (impl_move_to_trash),
8955         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8956         import errors source
8957         
8958         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8959         (rb_entry_view_append_column): unescape the URI for display.
8961 2006-03-01  James Livingston  <jrl@ids.org.au>
8963         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8964         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8965         function fails.
8967 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8969         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8970         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8971         * sources/rb-play-queue-source.c:
8972         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8973         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8974         of "Queued Songs".
8976         Fixes #331637.
8978 2006-03-01  James Livingston  <jrl@ids.org.au>
8980         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8981         Fixes bug 332913.
8983 2006-03-01  James Livingston  <jrl@ids.org.au>
8985         * daapsharing/rb-daap-mdns-browser-howl.c:
8986         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8987         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8988         (rb_daap_mdns_publisher_class_init),
8989         (rb_daap_mdns_publisher_finalize):
8990         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8991         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8992         (rb_recorder_finalize):
8993         * rhythmdb/rhythmdb-query-model.c:
8994         (rhythmdb_query_model_constructor):
8995         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8996         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8997         * sources/rb-playlist-source-recorder.c:
8998         (rb_playlist_source_recorder_style_set),
8999         (rb_playlist_source_recorder_class_init),
9000         (rb_playlist_source_recorder_finalize):
9001         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
9002         other classes in the same way, so they don't break when derived from.
9004 2006-03-01  James Livingston  <jrl@ids.org.au>
9006         * sources/rb-generic-player-source.c:
9007         (rb_generic_player_source_constructor): don't get the parent class in
9008         a dumb way, and it breaks when the class is derived from.
9010 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
9012         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
9014 2006-03-01  James Livingston  <jrl@ids.org.au>
9016         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
9017         not work in glib 2.8 systems.
9019 2006-03-01  James Livingston  <jrl@ids.org.au>
9021         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
9022         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
9023         say it is crap.
9025         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
9026         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
9027         podcasts on ion-local places
9029         * rhythmdb/gsequence.c: (g_sequence_node_new),
9030         (g_sequence_node_free): use gslice if we are building against glib
9031         2.10.
9033         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
9034         local files too, so it doesn't block.
9036 2006-02-28  James Livingston  <jrl@ids.org.au>
9038         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
9039         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
9040         stats the file. Stops the UI blocking while stats are done.
9042 2006-02-28  James Livingston  <jrl@ids.org.au>
9044         * sources/rb-static-playlist-source.c:
9045         (rb_static_playlist_source_class_init),
9046         (rb_static_playlist_source_constructor), (impl_reset_filters),
9047         (impl_get_property_views), (impl_browser_toggled),
9048         (rb_static_playlist_source_do_query),
9049         (rb_static_playlist_source_browser_changed_cb): add browsers to static
9050         playlists. From bug 118862.
9052         * sources/rb-play-queue-source.c:
9053         (rb_play_queue_source_class_init): disable them for the play queue.
9055 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
9057         * data/glade/library-prefs.glade:  Add a mnemonic.
9058         * sources/rb-library-source.c:
9059         (rb_library_source_location_button_clicked_cb):  Use title
9060         capitalization for window title.
9062 2006-02-28  James Livingston  <jrl@ids.org.au>
9064         * sources/rb-auto-playlist-source.c:
9065         (construct_query_from_selection): don't create a subquery for only one
9066         criteria, as it's a silly effifiency degredation.
9068 2006-02-28  James Livingston  <jrl@ids.org.au>
9070         * rhythmdb/rhythmdb.h:
9071         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9072         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
9073         saved to disk
9075         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
9076         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
9077         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
9078         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
9079         IGNORE (e.g. known video stream) create an entry of the Ignore type.
9080         This will make importing files quicker as we don't need to try files
9081         that we know are not going to be interesting - especially useful when
9082         using the library watching facility.
9084         Fixes bug 323179.
9086 2006-02-28  James Livingston  <jrl@ids.org.au>
9088         * shell/rb-shell.c: (rb_shell_constructor),
9089         (rb_shell_set_visibility): fix browser and source-list pane
9090         positioning, that I broke with the "remember visibility" patch.
9092 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9094         * metadata/rb-metadata-dbus-service.c: (main):
9095         Change argument handling so you can use --debug with the --load and
9096         --can-save test modes.
9097         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
9098         Use a separate GMainContext, not the default one.  Probably fixes
9099         #332344.
9101 2006-02-27  James Livingston  <jrl@ids.org.au>
9103         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
9104         first starting up. Fixes bug 330342.
9106 2006-02-27  James Livingston  <jrl@ids.org.au>
9108         * sources/rb-sourcelist-model.c:
9109         (rb_sourcelist_model_set_dnd_targets):
9110         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
9111         COPY action for draging sources and tracks, not MOVE as well. Stops
9112         Nautilus moving file away, and fixes bug 332488.
9114 2006-02-27  James Livingston  <jrl@ids.org.au>
9116         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
9118         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
9119         and Last Played metadata off iPods. Closes bug 324648.
9121 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9123         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
9124         Disable audioscrobbler when run with the --no-registration flag, since
9125         last.fm doesn't allow multiple concurrent clients per user.
9127 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9129         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
9130         Rename renamable sources when F2 is pressed when the sourcelist has
9131         focus.  Fixes #330700.
9133 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9135         * shell/rb-playlist-manager.c: (cleanup_edit_data),
9136         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
9137         (rb_playlist_manager_cmd_edit_automatic_playlist):
9138         Fix various crashes when deleting auto playlists previously edited
9139         by disconnecting signal handlers when the query editor is closed or
9140         the playlist is deleted.
9142 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9144         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
9145         removed load failure dialog, and actually use the friendly file type
9146         name in error messages.
9148 2006-02-24  James Livingston  <jrl@ids.org.au>
9150         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9152         * sources/rb-library-source.c:
9153         (rb_library_source_location_button_clicked_cb),
9154         (rb_library_source_preferences_sync),
9155         (rb_library_source_library_location_cb): convert the library URI to
9156         for display, and back again. Fixes bug 332356.
9158 2006-02-23  James Livingston  <jrl@ids.org.au>
9160         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9161         (rhythmdb_process_metadata_load), (monitor_subdirectory),
9162         (rhythmdb_sync_library_location): don't monitor files at all if
9163         watching is turned off. From bug 323096.
9165 2006-02-23  James Livingston  <jrl@ids.org.au>
9167         * data/rhythmbox.schemas:
9168         * lib/rb-preferences.h:
9169         * shell/rb-shell.c: (rb_shell_constructor),
9170         (rb_shell_set_visibility): remember main window visibility between
9171         sessions. Fixes bug 127320.
9173 2006-02-23  James Livingston  <jrl@ids.org.au>
9175         * data/glade/library-prefs.glade:
9176         * sources/rb-library-source.c: (impl_get_config_widget),
9177         (rb_library_source_location_button_clicked_cb),
9178         (rb_library_source_preferences_sync),
9179         (rb_library_source_library_location_cb),
9180         (rb_library_source_watch_toggled_cb): change the library-location
9181         widgets from the file-chooser drop menu to a text entry and Browse
9182         button. This is needed to prevent the location from chaning if the
9183         directory cannot be found. Fixes bug 328414.
9185 2006-02-23  James Livingston  <jrl@ids.org.au>
9187         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
9188         item. Fixes bug 329042.
9190 2006-02-23  James Livingston  <jrl@ids.org.au>
9192         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
9194         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
9195         comma in some podcast feeds. Fixes bug 332194.
9197 2006-02-23  James Livingston  <jrl@ids.org.au>
9199         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
9200         lower priority.
9202         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
9203         the internal audio cd URIs from "cdda://device:track" to
9204         "cdda://track#device" as it makes processing much easier.
9206         * shell/rb-shell-player.c: (rb_shell_player_open_location):
9207         * player/rb-player-gst.c: don't have the shell close the player
9208         between songs, as doing that should be backend-specific. Make the
9209         gstreamer backend close before starting a new track, unless the old
9210         and new ones are both tracks on the same audio cd. Just seek in that
9211         case.
9213 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9215         * doc/reference/rhythmbox.types: Fix doc build a bit more.
9217 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9219         * configure.ac: Enable more warnings in my stupid setup too.
9220         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
9221         #332210.
9223 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9225         * sources/rb-missing-files-source.h,
9226         * sources/rb-missing-files-source.c,
9227         * sources/rb-import-errors-source.h,
9228         * sources/rb-import-errors-source.c:
9229         Add library meta-sources, showing missing files and import errors.
9230         Fixes #167763, #142322.
9232         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
9233         * sources/rb-sourcelist-model.h:
9234         * sources/rb-sourcelist.c: (rb_sourcelist_append),
9235         (match_source_to_iter), (rb_sourcelist_source_to_iter),
9236         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
9237         (visibility_notify_cb):
9238         Store source visibility in the sourcelist model, so we can determine
9239         child source counts correctly and get the sourcelist expander column
9240         right.
9241         
9242         * widgets/rb-entry-view.h:
9243         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9244         (rb_entry_view_append_column), (set_column_visibility):
9245         Allow the creator of the entry view to specify which columns are
9246         always visible.
9248         * sources/rb-source.h:
9249         * sources/rb-source.c: (_autohide_update_visibility),
9250         (_rb_autohide_source_row_deleted_cb),
9251         (_rb_autohide_source_row_inserted_cb),
9252         (_rb_source_hide_when_empty):
9253         Allow sources to automatically hide themselves when empty.
9254         
9255         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
9256         * sources/rb-library-source.c: (rb_library_source_constructor):
9257         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9258         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9259         Explicitly specify which columns are always visible.
9260         
9261         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9262         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
9263         Remove load error signal handling and load failure dialog.
9264         Create missing files and import errors sources for the library.
9266         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9267         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
9268         Create DB entries for import errors rather than emitting the 'load
9269         error' signal; mark loaded entries visible.
9270         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
9271         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
9272         (rhythmdb_prop_get_type): Store string form of last seen time for
9273         hidden entries, since it's used in the missing files source.
9274         (rhythmdb_entry_import_error_get_type): 
9275         Add entry type for import errors.
9276         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
9277         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
9278         (rhythmdb_entry_move_to_trash_set_error),
9279         (rhythmdb_entry_move_to_trash):  
9280         Correct spelling, add missing rhythmdb_commit.
9281         * rhythmdb/rhythmdb.h:  
9282         Add import error entry type and last seen string property.
9283         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
9284         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9285         (save_entry):  Ignore string form of 'last seen' property.
9287         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9288         Don't try to play hidden entries or import error entries.
9290         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
9291         * sources/Makefile.am: Add meta-source files
9292         * widgets/Makefile.am: Remove load failure dialog files
9294 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9296         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9297         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
9298         few bits and pieces.
9300 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9302         * metadata/test-metadata.c: (load_metadata_cb):
9303         Fix compile warning for ignoring return value from getcwd, #332064.
9305 2006-02-21  James Livingston  <jrl@ids.org.au>
9307         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9308         (edit_auto_playlist_deleted_cb),
9309         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9310         playlist editor non-modal. Fixes bug 320030.
9312 2006-02-21  James Livingston  <jrl@ids.org.au>
9314         * shell/rb-shell.c: (rb_shell_constructor):
9315         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9316         (rb_header_set_show_artist_album):
9317         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9318         (rb_song_display_box_sync): make the queue sidebar and song display
9319         not get affected by gtk_widget_show_all. Fixes bug 332001.
9321 2006-02-21  James Livingston  <jrl@ids.org.au>
9323         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9325         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9326         feeds which use timezone names instead of offsets. Doesn't actually
9327         parse the timezone name since they are not standardised. Fixes bug
9328         331691.
9330 2006-02-21  James Livingston  <jrl@ids.org.au>
9332         * help/C/figures/rb-notification-area.png:
9333         * help/C/figures/rb-sidebar.png:
9334         * help/C/quick-reference.xml: remove obsolete files from CVS.
9336         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9337         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9338         (rhythmdb_query_free), (rhythmdb_query_serialize),
9339         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9340         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9342         * widgets/rb-query-creator-properties.c: add prefix and suffix
9343         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9344         doesn't escape the ':' separator in uris.
9346 2006-02-21  James Livingston  <jrl@ids.org.au>
9348         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9349         on startup.
9351 2006-02-21  James Livingston  <jrl@ids.org.au>
9353         * NEWS: update with recent changes
9355 2006-02-21  James Livingston  <jrl@ids.org.au>
9357         * shell/rb-shell.c: (rb_shell_constructor),
9358         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9359         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9360         (rb_druid_browse_clicked_cb), (do_response):
9361         * widgets/rb-druid.h: Make running the druid not block RBShell
9362         starting up. This is required so that bonobo registration doesn't time
9363         out. Fixed bug 318766.
9365 2006-02-21  James Livingston  <jrl@ids.org.au>
9367         * rhythmdb/rhythmdb-property-model.c:
9368         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9369         hash table after using it, not before. Fixed bug 331922.
9371 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9373         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9374         (rb_shell_view_queue_as_sidebar_changed_cb):
9375         When playing from the queue, only attempt to highlight the queue
9376         source in the source list if it's actually visible there.  Otherwise,
9377         leave the preempted source highlighted.  Mostly fixes #330819.
9379 2006-02-20  James Livingston  <jrl@ids.org.au>
9381         * rhythmdb/rhythmdb-property-model.c:
9382         (rhythmdb_property_model_row_inserted_cb),
9383         (rhythmdb_property_model_prop_changed_cb),
9384         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9385         store the roperty value in the entry-mapping table, so that receiving
9386         the remove signal from a query model before we get notified of a
9387         change doesn't cause a crash. Fixes bug 331770.
9389 2006-02-20  James Livingston  <jrl@ids.org.au>
9391         * data/ui/rhythmbox-ui.xml:
9392         * sources/rb-play-queue-source.c:
9393         (rb_play_queue_source_class_init),
9394         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9395         playlist things in the queue popup source. From 330490.
9397         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9398         previous commit
9400 2006-02-20  James Livingston  <jrl@ids.org.au>
9402         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9403         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9404         attempt to sync data for non-editable entries when using
9405         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9406         331762.
9408 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9410         * .cvsignore:
9411         * Makefile.am:
9412         * autogen.sh:
9413         * configure.ac:
9414         * help/.cvsignore:
9415         * help/Makefile.am: ported to gnome-doc-utils
9416         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9417         * help/ChangeLog: added, for translators
9418         * help/C/rhytmbox-C.omf: removed, no longer used
9419         Know issue: figures are installed, but some are not showed; manual
9420         description added, but not showed in Yelp while browsing. I'll
9421         investigate, maybe are needed some little changes to
9422         help/C/rhythmbox.xml.
9424 2006-02-20  James Livingston  <jrl@ids.org.au>
9426         * data/ui/rhythmbox-ui.xml:
9427         * help/C/figures/rb-adv.png:
9428         * help/C/figures/rb-asst-finish.png:
9429         * help/C/figures/rb-asst-library.png:
9430         * help/C/figures/rb-asst-start.png:
9431         * help/C/figures/rb-basic.png:
9432         * help/C/figures/rb-browser.png:
9433         * help/C/figures/rb-context-menu.png:
9434         * help/C/figures/rb-empty.png:
9435         * help/C/figures/rb-full-play.png:
9436         * help/C/figures/rb-group-auto.png:
9437         * help/C/figures/rb-group-create.png:
9438         * help/C/figures/rb-group.png:
9439         * help/C/figures/rb-imported.png:
9440         * help/C/figures/rb-iradio-add.png:
9441         * help/C/figures/rb-iradio.png:
9442         * help/C/figures/rb-nextprev.png:
9443         * help/C/figures/rb-nobrowse-play.png:
9444         * help/C/figures/rb-notification-area-menu.png:
9445         * help/C/figures/rb-player.png:
9446         * help/C/figures/rb-prefs-general.png:
9447         * help/C/figures/rb-prefs-ipod.png:
9448         * help/C/figures/rb-prefs-library.png:
9449         * help/C/figures/rb-prefs.png:
9450         * help/C/figures/rb-repeat.png:
9451         * help/C/figures/rb-search.png:
9452         * help/C/figures/rb-shuffle.png:
9453         * help/C/figures/rb-stats.png:
9454         * help/C/figures/rb-toolbar-editor.png:
9455         * help/C/figures/rb-volume-mute.png:
9456         * help/C/figures/rhythmbox-group.png:
9457         * help/C/figures/rhythmbox-tray-icon.png:
9458         * help/C/user-guide.xml: remove old stuff from cvs
9460 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9462         * metadata/rb-metadata-dbus-client.c: 
9463         * metadata/rb-metadata-dbus-service.c:
9464         * metadata/rb-metadata-dbus.c:
9465         * metadata/rb-metadata-dbus.h:
9466         New files, adding an external service for reading and writing
9467         metadata, and an implementation of the RBMetaData interface that uses
9468         dbus to communicate with it.
9469         
9470         * metadata/rb-metadata.h,
9471         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9472         (rb_metadata_get_field_name): Put metadata details in a static array
9473         instead of using a hash table, and add a field for language code (not
9474         used for anything)
9475         * metadata/rb-metadata-gst.c: Updates for changes in
9476         rb-metadata-common.c, fix signal handler closure leak for the typefind
9477         element's have-type signal, and add XML to the list of types we ignore.
9478         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9479         Update for changes to rb_metadata_get_field_type
9480         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9481         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9482         here and there.
9483         
9484         * configure.ac: Add --enable-metadata-helper option (not enabled by
9485         default) to use the external metadata service
9486         * metadata/Makefile.am: Add new files
9487         * metadata/test-metadata.c:  Test program for the metadata service
9489         Fixes #329597. 
9491 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9493         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9494         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9495         (rb_podcast_source_cmd_new_podcast):
9496         Move 'new podcast' action to the podcast source, and add it to the
9497         toolbar.  Fixes #331562.
9499 2006-02-19  James Livingston  <jrl@ids.org.au>
9501         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9502         menus, and away from move-to-trash. Fixes bug 331013.
9504 2006-02-19  James Livingston  <jrl@ids.org.au>
9506         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9507         when deleting last entry. Fixes bug 331712.
9509 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9511         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9512         (rb_entry_view_button_press_cb):
9513         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9514         anywhere, and include a flag indicating whether the click was over an
9515         entry or not.
9516         
9517         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9518         (rb_playlist_source_songs_show_popup_cb):
9519         * sources/rb-playlist-source.h:
9520         Add the 'over entry' flag to the class show popup method, and in the
9521         default handler, ignore right clicks when not over an entry.
9522         
9523         * sources/rb-iradio-source.c:
9524         (rb_iradio_source_songs_show_popup_cb):
9525         * sources/rb-library-source.c:
9526         (rb_library_source_songs_show_popup_cb):
9527         * sources/rb-podcast-source.c:
9528         (rb_podcast_source_songs_show_popup_cb):
9529         Show the source list popup menu when right clicked while not over an
9530         entry.
9532         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9533         For the queue sidebar, always display the popup so the 'clear queue'
9534         action is available regardless of where you click.  For the queue
9535         source, only display the popup when right clicked over an entry.
9536         Fixes #331392.
9538 2006-02-19  James Livingston  <jrl@ids.org.au>
9540         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9541         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9542         entry view, when we're not even using it
9544         * rhythmdb/rhythmdb-property-model.c:
9545         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9546         function, rather than a copy of the code.
9548         * shell/rb-playlist-manager.c:
9549         (rb_playlist_manager_playlist_row_inserted_cb),
9550         (rb_playlist_manager_set_source_internal),
9551         (rb_playlist_manager_playlist_entries_changed): use the query-model
9552         directly, rather than the source's entry view.
9554         * shell/rb-source-header.c: don't use the entry view, just select the
9555         source widget.
9557 2006-02-18  James Livingston  <jrl@ids.org.au>
9559         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9561         * help/C/figures/rb-iradio-main.png:
9562         * help/C/figures/rb-notification-area-menu.png:
9563         * help/C/figures/rb-notification-window.png:
9564         * help/C/figures/rb-notification-zone.png:
9565         * help/C/figures/rb-podcast-main.png:
9566         * help/C/figures/rb-statusbar.png:
9567         * help/C/figures/rb-toolbar-prevplaynext.png:
9568         * help/C/figures/rb-toolbar-repeat.png:
9569         * help/C/figures/rb-toolbar-shuffle.png:
9570         * help/C/figures/rb-toolbar.png:
9571         * help/C/figures/rb-volume-changer.png:
9572         * help/C/figures/rb-window-small.png:
9573         * help/C/figures/rb-window.png:
9574         * help/C/rhythmbox.xml: Update user guide with some of the changes
9575         that have occurred after 0.8.8. From bug 314001.
9577 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9579         * rhythmdb/rhythmdb-query-results.h,
9580           rhythmdb/rhythmdb-query-results.c:
9581         New interface for objects that accept query results from RhythmDB.
9583         * rhythmdb/rhythmdb-query-model.c:
9584         (rhythmdb_query_model_query_results_init),
9585         (rhythmdb_query_model_set_query),
9586         (rhythmdb_query_model_add_results),
9587         (rhythmdb_query_model_query_complete):
9588         * rhythmdb/rhythmdb-query-model.h:
9589         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9591         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9592         (rhythmdb_tree_do_full_query):
9593         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9594         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9595         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9596         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9597         * rhythmdb/rhythmdb.h:
9598         Pass query results through the RhythmDBQueryResults interface, rather
9599         than directly to a RhythmDBQueryModel.
9601         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9602         (rb_podcast_manager_db_entry_deleted_cb):
9603         * sources/rb-auto-playlist-source.c:
9604         (rb_auto_playlist_source_do_query),
9605         (rb_auto_playlist_source_set_query):
9606         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9607         * sources/rb-library-source.c: (rb_library_source_constructor),
9608         (rb_library_source_do_query):
9609         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9610         (rb_podcast_source_do_query):
9611         * rhythmdb/rhythmdb-property-model.c:
9612         (rhythmdb_property_model_drag_data_get):
9613         Cast the query model to RhythmDBQueryResults when passing to one of
9614         the RhythmDB query methods.
9616         * rhythmdb/Makefile.am: Add new files.
9618 2006-02-18  James Livingston  <jrl@ids.org.au>
9620         * data/ui/rhythmbox-ui.xml:
9621         * shell/rb-playlist-manager.c:
9622         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9623         "queue playlist" item to source context menu. Fixes bug 330490.
9625 2006-02-18  James Livingston  <jrl@ids.org.au>
9627         * data/glade/general-prefs.glade:
9628         * shell/rb-shell-preferences.c:
9629         (rb_shell_preferences_column_check_changed_cb),
9630         (rb_shell_preferences_sync):
9631         * sources/rb-library-source.c: (rb_library_source_constructor):
9632         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9633         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9634         (rb_entry_view_append_column): Add a "quality" colume which indicates
9635         the bitrate of media. Part of bug 167659.
9637 2006-02-18  James Livingston  <jrl@ids.org.au>
9639         * shell/rb-play-order.c: (do_next_idle_cb),
9640         (default_playing_entry_removed): move to next track when playing entry
9641         is deleted. Fixes bug 131150.
9643         * shell/rb-shell-player.h: remove ancient stuff
9645 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9647         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9648         (rb_shell_clipboard_set_property): 
9649         * shell/rb-shell.c (rb_shell_sync_party_mode):
9650         Trigger a resync of the clipboard properties when changing party mode.
9652 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9654         * sources/rb-static-playlist-source.c: Fix includes.
9656         * sources/rb-source.c (rb_source_can_rename) 
9657         (rb_source_can_delete, rb_source_can_move_to_trash):
9658         Return FALSE if in party mode.
9660         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9661         Replace fullscreen with party mode.
9662         (rb_shell_window_delete_cb): Don't quit if in party mode.
9663         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9664         (window_state_event_cb): Try to deiconify shell when iconified
9665         in party mode.
9666         (rb_shell_sync_party_mode): Sync party mode properties.
9667         Currently, that means [de]sensitizing close, quit, and small-display,
9668         going into fullscreen mode with window stuck and kept above, and
9669         toggling queue-only for the shell player.
9670         (rb_shell_sync_smalldisplay): Sensitive party mode.
9671         (rb_shell_get_party_mode): Get party mode setting.
9673         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9674         (rb_shell_player_set_property, rb_shell_player_get_property):
9675         Add queue-only property.
9676         (rb_shell_player_entry_activated_cb): If in party mode
9677         only queue the entry on activation.
9679         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9680         Break out from set_properties.  Desensitize some actions when
9681         in party mode.
9682         (rb_playlist_manager_set_property): Break out set_source_internal.
9684         * data/rhythmbox.schemas: Remove fullscreen mode.
9686         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9687         action with party mode.
9689         Partial fix for #323933
9691 2006-02-17  James Livingston  <jrl@ids.org.au>
9693         * configure.ac:
9694         * shell/rb-removable-media-manager.c:
9695         (get_nautilus_burn_drive_for_path),
9696         (rb_removable_media_manager_playing_uri_changed_cb): only use
9697         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9698         over the list when it doesn't.
9700 2006-02-17  James Livingston  <jrl@ids.org.au>
9702         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9703         (rb_iradio_source_first_time_changed): Only do the import on the
9704         first change from FALSE to TRUE.
9706         * sources/rb-library-source.c:
9707         (rb_library_source_preferences_sync),
9708         (rb_library_source_library_location_cb): set the first-run done flag
9709         if the user presses close and then sets their watches library
9710         location. Fixes bug 325997.
9712 2006-02-17  James Livingston  <jrl@ids.org.au>
9714         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9715         removable media manager gobject properties
9717         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9718         (split_drive_from_cdda_uri),
9719         (rb_removable_media_manager_playing_uri_changed_cb),
9720         (rb_removable_media_manager_load_media): stop polling a cd drive
9721         when we are playing from it. Part of bug 330716.
9723 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9725         * rhythmdb/rhythmdb-query-model.c:
9726         (rhythmdb_query_model_set_property),
9727         (rhythmdb_query_model_finalize),
9728         (rhythmdb_query_model_base_entry_removed):
9729         Propagate entry removal from base models out to attached property
9730         models.  Fixes the rest of #331165.
9732 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9734         * rhythmdb/rhythmdb-property-model.c:
9735         (rhythmdb_property_model_row_inserted_cb),
9736         (rhythmdb_property_model_prop_changed_cb),
9737         (rhythmdb_property_model_insert):
9738         Don't store NULL as a hash table value if we want to use
9739         g_hash_table_lookup to check if a key exists, and get the checks for
9740         how and whether to handle entry changes the right way around.
9741         Fixes #331211 and half of #331165.
9743 2006-02-16  James Livingston  <jrl@ids.org.au>
9745         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9746         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9747         Fixes bug 329942.
9749 2006-02-16  James Livingston  <jrl@ids.org.au>
9751         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9752         actually reset the browsers.
9754 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9756         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9757         Escape the strings we pass into libnotify so we don't get blank
9758         notifications when the song name contains '&' etc.  Fixes #330784.
9760 2006-02-16  James Livingston  <jrl@ids.org.au>
9762         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9763         enable "View All" when there is only a search box and no browser.
9764         Fixes bug 331395.
9766 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9768         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9769         popup menu, which I forgot to commit with the patch for bug #330014.
9771 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9773         * shell/rb-shell-player.c: (open_location_thread):
9774         Sync button and entry view state once we've started the player, so the
9775         entry view gets into the playing state for iradio.
9777 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9779         * shell/rb-shell-player.c: (open_location_thread):
9780         Take GDK lock before doing anything UI-related.
9782 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9784         * shell/rb-shell.c: Move 'new iradio station' action to
9785         iradio source.
9787         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9788         (rb_iradio_source_init), (rb_iradio_source_finalize),
9789         (rb_iradio_source_constructor):
9790         Remove some unused stuff.
9792         (guess_uri_scheme), (rb_iradio_source_add_station),
9793         (rb_iradio_source_add_from_playlist),
9794         (impl_get_ui_actions), (new_station_location_added),
9795         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9796         action, include it in the toolbar, and make sure the URI we add has a
9797         scheme.  Fixes #327059, more or less.
9799 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9801         * sources/rb-play-queue-source.c:
9802         (rb_play_queue_source_class_init),
9803         (rb_play_queue_source_constructor),
9804         (rb_play_queue_source_update_count),
9805         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9806         Add a toolbar button to clear the play queue, and make it sensitive
9807         only when there are entries in the queue.  Fixes #330014.
9809         * sources/rb-source.c: (_rb_source_register_action_group):
9810         * sources/rb-source.h:  Add helper function to register an
9811         action group for a source.
9813         * sources/rb-library-source.c: (rb_library_source_constructor):
9814         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9815         (register_action_group):  Use _rb_source_register_action_group.
9817 2006-02-15  James Livingston  <jrl@ids.org.au>
9819         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9820         (rb_song_info_constructor), (rb_song_info_set_property): make
9821         tag-editing completion work for albums too.
9823 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9825         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9826         Check the 'limit' checkbox for time-limited playlists.
9828 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9830         * widgets/rb-song-info.c: Prove text-completion when editing title,
9831         artist or album
9833 2006-02-14  James Livingston  <jrl@ids.org.au>
9835         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9836         tray icon popup menu. Fixes bug 331026.
9838 2006-02-14  James Livingston  <jrl@ids.org.au>
9840         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9841         Ogg Vorbis streams, instead of the MP3 ones.
9843 2006-02-14  James Livingston  <jrl@ids.org.au>
9845         * rhythmdb/rhythmdb-property-model.c:
9846         (rhythmdb_property_model_class_init),
9847         (rhythmdb_property_model_drag_data_get):
9848         * rhythmdb/rhythmdb-query-model.c:
9849         (rhythmdb_query_model_title_sort_func):
9850         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9851         LOCATION as the key. Fixes bug 330601.
9853 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9855         * sources/rb-playlist-source.c: (playlist_iter_func):
9856         Make it compile with older versions of totem-plparser too.      
9858 2006-02-13  James Livingston  <jrl@ids.org.au>
9860         * rhythmdb/rhythmdb.h:
9861         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9862         structure private, since things should use the accessor functions
9863         rather than manipulating it directly - Only RhythmDB and the
9864         implementation classes should access it directly. Part of the RhythmDB
9865         cleanup of bug 330226.
9867         * iradio/rb-station-properties-dialog.c:
9868         (rb_station_properties_dialog_update_title),
9869         (rb_station_properties_dialog_update_title_entry),
9870         (rb_station_properties_dialog_update_genre),
9871         (rb_station_properties_dialog_update_location),
9872         (rb_station_properties_dialog_update_play_count),
9873         (rb_station_properties_dialog_update_bitrate),
9874         (rb_station_properties_dialog_update_last_played),
9875         (rb_station_properties_dialog_update_rating),
9876         (rb_station_properties_dialog_update_playback_error),
9877         (rb_station_properties_dialog_sync_entries):
9878         * podcast/rb-feed-podcast-properties-dialog.c:
9879         (rb_feed_podcast_properties_dialog_update_title),
9880         (rb_feed_podcast_properties_dialog_update_title_label),
9881         (rb_feed_podcast_properties_dialog_update_author),
9882         (rb_feed_podcast_properties_dialog_update_location),
9883         (rb_feed_podcast_properties_dialog_update_copyright),
9884         (rb_feed_podcast_properties_dialog_update_language),
9885         (rb_feed_podcast_properties_dialog_update_summary):
9886         * podcast/rb-podcast-manager.c:
9887         (rb_podcast_manager_entry_downloaded),
9888         (rb_podcast_manager_db_entry_added_cb),
9889         (download_progress_update_cb),
9890         (rb_podcast_manager_db_entry_deleted_cb):
9891         * podcast/rb-podcast-properties-dialog.c:
9892         (rb_podcast_properties_dialog_update_title),
9893         (rb_podcast_properties_dialog_update_title_label),
9894         (rb_podcast_properties_dialog_update_feed),
9895         (rb_podcast_properties_dialog_update_location),
9896         (rb_podcast_properties_dialog_update_play_count),
9897         (rb_podcast_properties_dialog_update_bitrate),
9898         (rb_podcast_properties_dialog_update_last_played),
9899         (rb_podcast_properties_dialog_update_rating),
9900         (rb_podcast_properties_dialog_update_date),
9901         (rb_podcast_properties_dialog_update_description):
9902         * rhythmdb/rhythmdb-query-model.c:
9903         (rhythmdb_query_model_entry_changed_cb),
9904         (rhythmdb_query_model_remove_from_main_list),
9905         (rhythmdb_query_model_update_limited_entries),
9906         (rhythmdb_query_model_drag_data_get),
9907         (rhythmdb_query_model_album_sort_func):
9908         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9909         (save_entry):
9910         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9911         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9912         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9913         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9914         (rhythmdb_entry_get_double):
9915         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9916         * shell/rb-play-order-random-by-age-and-rating.c:
9917         (rb_random_by_age_and_rating_get_entry_weight):
9918         * shell/rb-play-order-random-by-age.c:
9919         (rb_random_by_age_get_entry_weight):
9920         * shell/rb-play-order-random-by-rating.c:
9921         (rb_random_by_rating_get_entry_weight):
9922         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9923         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9924         (rb_shell_player_set_playing_entry),
9925         (rb_shell_player_sync_replaygain),
9926         (rb_shell_player_sync_with_source),
9927         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9928         * sources/rb-playlist-source.c: (playlist_iter_func),
9929         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9930         (rb_playlist_source_entry_added_cb):
9931         * sources/rb-podcast-source.c:
9932         (rb_podcast_source_post_status_cell_data_func):
9933         * sources/rb-source.c: (rb_source_update_play_statistics):
9934         * sources/rb-sourcelist-model.c:
9935         (rb_sourcelist_model_drag_data_get):
9936         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9937         (rb_static_playlist_source_add_entry),
9938         (rb_static_playlist_source_remove_entry):
9939         * widgets/rb-entry-view.c: (type_ahead_search_func),
9940         (rb_entry_view_playing_cell_data_func),
9941         (rb_entry_view_rating_cell_data_func),
9942         (rb_entry_view_pixbuf_clicked_cb):
9943         * widgets/rb-header.c: (rb_header_get_duration):
9944         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9945         (rb_song_info_populate_dialog),
9946         (rb_song_info_update_playback_error),
9947         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9948         (rb_song_info_update_location), (rb_song_info_update_play_count),
9949         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9950         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9951         (rb_song_info_sync_entry_single): fix the huge number of times that
9952         the internals got accessed directly.
9954 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9956         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9957         trash' are grouped together.
9958         * shell/main.c: (main): Pass no-registration flag in to RBShell
9959         constructor, rather than mysteriously always passing TRUE.
9960         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9961         Set dirty flag when entries are removed from the model, so the play
9962         queue is marked dirty appropriately.
9963         * AUTHORS: update my email address
9965 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9967         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9969         * widgets/rb-druid.c: (path_dialog_response_cb):
9970         If the URI is local, don't display the 'file://' prefix.  
9971         Fixes #330919.
9973 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9975         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9976         Attach the notification to the tray icon widget, so libnotify
9977         positions it less badly.  Fixes #330876.
9979 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9981         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9982         Reverse the selection list before returning it, so we get it in the
9983         right order.  Fixes #330283 and some other weirdness.
9985 2006-02-11  James Livingston  <jrl@ids.org.au>
9987         * shell/rb-shell.c: (rb_shell_constructor),
9988         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9989         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9990         make small-mode and fullscreen mutually exclusive, since they don't
9991         work together
9993         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9994         Mode.
9996 2006-02-10  James Livingston  <jrl@ids.org.au>
9998         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9999         since it can cause it to be slower than real-time. Should fix bug
10000         322270.
10002 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10004         * rhythmdb/rhythmdb-query-model.c:
10005         (rhythmdb_query_model_set_property):
10006         Think just a little bit harder about that last commit.
10008 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10010         * rhythmdb/rhythmdb-query-model.c:
10011         (rhythmdb_query_model_set_property):
10012         Get the check for hidden entries the right way around.
10013         Fixes #330527, #330514.
10015         (rhythmdb_query_model_set_sort_order):
10016         Ignore no-op sort order changes, so we don't get critical
10017         messages when selecting 'all' in auto playlist browsers.
10019 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10021         Patch by: Christophe Fergeau  <teuf@gnome.org>
10023         * sources/rb-removable-media-source.c:
10024         (rb_removable_media_source_init),
10025         (rb_removable_media_source_constructor):
10026         Move icon setup code to the constructor, as the volume property
10027         haven't been set yet when _init is called.
10029 2006-02-09  William Jon McCann  <mccann@jhu.edu>
10031         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
10032         Make the source pixbuf a dynamic property.
10034         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
10035         (rb_source_set_pixbuf, rb_source_set_property) 
10036         (rb_source_get_property): Add icon property.
10038         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
10039         (rb_auto_playlist_source_init):
10040         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
10041         (rb_static_playlist_source_init):
10042         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
10043         (rb_removable_media_source_init): 
10044         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
10045         (rb_podcast_source_init): 
10046         * sources/rb-library-source.c (rb_library_source_class_init) 
10047         (rb_library_source_set_property, rb_library_source_get_property): 
10048         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
10049         (rb_iradio_source_init): Remove impl_get_pixbuf and
10050         set icon property on source base class.
10052         * sources/rb-daap-source.c (rb_daap_get_icon): Get
10053         a different icon for when the share is password protected
10054         and locked.
10055         (rb_daap_source_new): Set icon property.
10056         (composite_icons): Composite an emblem on a pixbuf.
10057         (create_pixbufs): Load global pixbufs.
10058         (destroy_pixbufs): unref global pixbufs.
10059         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
10060         (connection_auth_cb, connection_connected_cb) 
10061         (connection_disconnected_cb): Update icon when connection
10062         status changes.
10063         (rb_daap_source_activate): Connect signals.
10065         * daapsharing/rb-daap-share.c (name_collision_cb): Run
10066         dialog with parent.
10068         * daapsharing/rb-daap-marshal.list: Add new signal.
10070         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
10071         (rb_daap_collision_dialog_new_run): Set parent of dialog.
10073         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
10074         Add authenticate, connected, and disconnected signals.
10075         (connection_get_password): emit authenticate signal instead
10076         of running dialog directly.
10077         (connection_connected, connection_disconnected): Emit signals.
10078         (handle_login): Emit connected signal.
10079         (handle_logout): Emit disconnected signal.
10080         (rb_daap_connection_do_something): Fix leak.
10082         Fixes #330291
10084 2006-02-09  James Livingston  <jrl@ids.org.au>
10086         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
10087         entries from the base model if we don't have show-hidden set. Fixes
10088         bug 330514.
10090 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10092         * daapsharing/rb-daap-share.c (message_get_session_id):
10093         Ugh. Use strtoul instead of atoi.
10094         (session_id_validate): Add debug statements.
10096 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10098         * daapsharing/rb-daap-connection.c (http_response_handler):
10099         Report the actual uri from the message in debug statements.
10101 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10103         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
10104         Add context argument.
10105         (message_get_session_id): New function to parse session id from
10106         the message.
10107         (message_get_revision_number): Break out function to parse
10108         revision number from the message.
10109         (session_id_validate): New function to validate given session id
10110         is valid for given context (ie. client address).
10111         (session_id_generate): Generate a random session id.
10112         (session_id_create): Create a unique session id and store it.
10113         (session_id_remove): Remove a session id from the store.
10114         (login_cb): Create a session id instead of using a constant one.
10115         (logout_cb): Validate session id.
10116         (update_cb): Use new message_get_revision_number function.
10117         (databases_cb): Validate session id.
10118         (server_cb): Add server context to argument list for callbacks.  It
10119         is needed to look up the remote host.
10120         (db_entry_changed_cb): Use braces.
10121         (soup_auth_callback): Remove FIXME.
10122         (rb_daap_share_server_start): Create session id store.
10123         (rb_daap_share_server_stop): Destroy session id store.
10125         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
10126         Don't base64-encode password here since it needs to be
10127         combined with the username first.
10129         * daapsharing/rb-daap-connection.c (build_message):
10130         Add username to Authorization token.
10131         (handle_login, handle_song_listing) 
10132         (rb_daap_connection_do_something): Session id
10133         must be an unsigned int.
10135         Fixes #329814
10137 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10139         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10140         Don't check if we've got a playing entry, ask the player object (duh).
10141         Might actually fix #329993.     
10143 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10145         * sources/rb-static-playlist-source.c:
10146         (rb_static_playlist_source_add_list_uri):
10147         Canonicalise URIs before trying to add them to the playlist, and 
10148         don't try to add files to the database for which there is 
10149         already an entry.
10151 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10153         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10154         Don't ask the entry view if we're playing, just check if we've got a
10155         playing entry.  Fixes #329993.
10157 2006-02-08  James Livingston  <jrl@ids.org.au>
10159         * rhythmdb/rhythmdb-query-model.c:
10160         (rhythmdb_query_model_set_property),
10161         (rhythmdb_query_model_finalize),
10162         (rhythmdb_query_model_base_complete): remove
10163         rhythmdb_query_model_base_entry_prop_changed, so that two signals
10164         don't get emitted for entry changes. Fixes bug 330301.
10166         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
10167         (rb_library_browser_init), (rb_library_browser_constructor),
10168         (rb_library_browser_new): do stuff in the constructor, not the init
10169         function, so that the db property gets set on RBPropertyViews
10170         correctly. Fixes a crash when dragging properties to a playlist.
10172 2006-02-07  William Jon McCann  <mccann@jhu.edu>
10174         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
10175         Actually stop soup server.  Fixes #329816.
10177 2006-02-07  James Livingston  <jrl@ids.org.au>
10179         * lib/rb-util.h:
10180         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
10181         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
10182         (collate_values_cb), (rb_collate_hash_table_keys),
10183         (rb_collate_hash_table_values): add functions to compare, copy and
10184         free string-lists. add functions to collate the keys or values of a
10185         hash table into a list.
10187         * rhythmdb/rhythmdb-property-model.c:
10188         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
10189         (_remove_entry_cb), (_add_entry_cb),
10190         (rhythmdb_property_model_set_property),
10191         (rhythmdb_property_model_get_property),
10192         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10193         (rhythmdb_property_model_row_inserted_cb),
10194         (rhythmdb_property_model_prop_changed_cb),
10195         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
10196         that are hidden, storing those that we have counted in a hash-table.
10198         * shell/Makefile.am: fix build order issue
10200         * shell/rb-shell-player.c: (rb_shell_player_set_property):
10201         * sources/rb-source.h:
10202         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10203         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10204         * sources/rb-podcast-source.c: (feed_select_change_cb): add
10205         browser-toggled method, rename _get_exta_views to _get_property_views,
10206         since several things depend on returning only that.
10208         * sources/rb-source.c: (rb_source_class_init),
10209         (rb_source_browser_toggled), (default_get_property_views),
10210         (rb_source_get_property_views), (rb_source_row_deleted_cb),
10211         (rb_source_gather_hash_keys),
10212         (rb_source_gather_selected_properties): above changes, and move some
10213         utility functions up from RBLibraryView
10215         * widgets/rb-property-view.c:
10216         (rb_property_view_selection_changed_cb): fix leak.
10218         * rhythmdb/rhythmdb-query-model.c:
10219         (rhythmdb_query_model_set_property),
10220         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
10221         (rhythmdb_query_model_set_sort_order),
10222         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
10223         query model being resorted.
10225         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
10226         NULL query.
10228         * rhythmdb/rhythmdb.h:
10229         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
10230         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
10231         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
10232         two queries. Add a function to append "property={X,Y,Z,...}" to a
10233         query.
10235         * sources/rb-library-source.c: (rb_library_source_class_init),
10236         (rb_library_source_finalize), (rb_library_source_constructor),
10237         (rb_library_source_cmd_choose_genre),
10238         (rb_library_source_cmd_choose_artist),
10239         (rb_library_source_cmd_choose_album), (impl_search),
10240         (impl_get_property_views), (impl_reset_filters),
10241         (rb_library_source_preferences_sync),
10242         (rb_library_source_browser_views_activated_cb),
10243         (rb_library_source_state_prefs_sync),
10244         (construct_query_from_selection), (rb_library_source_do_query),
10245         (rb_library_source_browser_changed_cb):
10246         * widgets/Makefile.am:
10247         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
10248         browser" widgets, which contains several property views, based on the
10249         code from RBLibrarySource. Make RBLibrarySource use it.
10251         * sources/rb-auto-playlist-source.c:
10252         (rb_auto_playlist_source_class_init),
10253         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
10254         (rb_auto_playlist_source_constructor), (impl_reset_filters),
10255         (impl_get_property_views), (impl_browser_toggled),
10256         (construct_query_from_selection),
10257         (rb_auto_playlist_source_do_query),
10258         (rb_auto_playlist_source_set_query),
10259         (rb_auto_playlist_source_browser_changed_cb): Use the new
10260         library-browser widget to add browsers to automatic playlists.
10262 2006-02-07  James Livingston  <jrl@ids.org.au>
10264         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
10265         properly.
10266         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
10267         type of the source is taken into account. Fixes bug 329621.
10269 2006-02-07  James Livingston  <jrl@ids.org.au>
10271         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10272         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
10273         1.1, and perform URI canonicalistion when first upgrading. This should
10274         fix our remaining canonicalisation issues, such as bug 329988.
10276 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10278         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
10279         Track the playing entry when the entry view isn't in the playing
10280         state, so we don't have to get the state changes exactly right.
10281         Fixes #330135.
10283 2006-02-06  James Livingston  <jrl@ids.org.au>
10285         * shell/rb-shell-player.c: (open_location_thread),
10286         (rb_shell_player_open_location): fix several iradio issues: having to
10287         press play after double-clicking on a station, not working correctly
10288         without a http:// prefix, and ignoring totem-plparser results other
10289         than success or error (e.g. IGNORE).
10291 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10293         Addition of dbus methods for dealing with static playlists and the
10294         play queue.  Fixes #329958.
10296         * shell/Makefile.am:
10297         * shell/rb-playlist-manager.h:
10298         * shell/rb-playlist-manager.xml:
10299         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10300         (rb_playlist_manager_get_playlists),
10301         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10302         (rb_playlist_manager_create_static_playlist),
10303         (rb_playlist_manager_delete_playlist),
10304         (rb_playlist_manager_add_to_playlist),
10305         (rb_playlist_manager_remove_from_playlist),
10306         (rb_playlist_manager_export_playlist):
10307         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10308         to create, delete, list, modify, export, and import  static playlists.
10309         
10310         * shell/main.c: (main): Register playlist manager object with dbus.
10312         * shell/rb-shell.h:
10313         * shell/rb-shell.xml:
10314         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10315         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10316         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10317         object, and implement the addToQueue and removeFromQueue methods.
10318         
10319         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10320         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10321         formats.
10323 2006-02-05  James Livingston  <jrl@ids.org.au>
10325         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10326         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10327         (save_entry): allow storage of booleans in the on-disk db, and
10328         save/load the HIDDEN property.
10330         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10331         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10332         to the state it was when RB shutdown. This makes RB appear to start
10333         faster, as tracks can appear before the stat is done. Remote files
10334         still start hidden. From bug 325215.
10336 2006-02-05  James Livingston  <jrl@ids.org.au>
10338         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10339         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10340         really cares about the difference from "entry-added", and it isn't
10341         emitted by the tree backend anyway.
10343         * rhythmdb/rhythmdb-query-model.c:
10344         (rhythmdb_query_model_constructor):
10345         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10346         remove the references to the entry-restored signal.
10348 2006-02-05  James Livingston  <jrl@ids.org.au>
10350         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10351         issue.
10353 2006-02-05  James Livingston  <jrl@ids.org.au>
10355         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10356         things are NULL before using g_object_unref. Fixes bug 327452.
10358         * player/rb-recorder-gst.c: (rb_recorder_construct):
10359         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10360         rather than assertion.
10362         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10363         emit a warning, rather than asserting if an unknown playlist type is
10364         encountered.
10366 2006-02-05  James Livingston  <jrl@ids.org.au>
10368         * widgets/Makefile.am:
10369         * widgets/rb-simple-view.c:
10370         * widgets/rb-simple-view.h: Move the two features that this class
10371         provides into RBPropertyView, and remove this class. Closes bug
10372         327500.
10374         * podcast/rb-feed-podcast-properties-dialog.c:
10375         * podcast/rb-feed-podcast-properties-dialog.h:
10376         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10377         (rb_podcast_source_feeds_show_popup_cb):
10378         * sources/rb-podcast-source.h:
10379         * widgets/rb-property-view.c: (rb_property_view_class_init),
10380         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10381         (rb_property_view_append_column_custom),
10382         (rb_property_view_button_press_cb):
10383         * widgets/rb-property-view.h: Updated for the above change.
10385 2006-02-04  James Livingston  <jrl@ids.org.au>
10387         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10388         too close to Move to Trash and people aren't likely to use it often.
10390 2006-02-04  James Livingston  <jrl@ids.org.au>
10392         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10394 2006-02-04  James Livingston  <jrl@ids.org.au>
10396         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10397         passed a path instead of a URI.
10399         * sources/rb-generic-player-source.c: (default_get_mount_path):
10400         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10401         the path. This fixes bug 329723.
10403 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10405         * daapsharing/rb-daap-structure.c:
10406         (rb_daap_content_code_string_as_int32):
10407         Use network byte order.
10409 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10411         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10412         Use a hash for source lookup.
10413         (mdns_service_added, mdns_service_removed): Handle
10414         service-added and service-removed signals from RBDaapMdnsBrowser.
10415         (remove_source): GDestroyNotify function for when sources
10416         are removed from the hash.
10417         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10418         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10419         (rb_daap_sources_shutdown): Update.
10420         (source_host_find): GHRFunc for finding a source by ip.
10421         (rb_daap_source_find_for_uri): Use the hash source lookup.
10423         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10424         Namespace keys.
10425         (password_check_button_toggled_cb): Handle password enabled.
10426         (share_name_entry_focus_out_event_cb): Namespace keys.
10427         Handle changes more robustly.
10428         (share_password_entry_focus_out_event_cb): Handle password entry.
10429         (add_daap_preferences): Connect to password signals.
10431         * lib/rb-preferences.h: Add DAAP keys.
10433         * data/glade/daap-prefs.glade: Add password UI.
10435         * data/rhythmbox.schemas: Add password keys.
10437         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10438         assert with warning.
10440         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10441         gconf keys to lib/rb-preferences.h.  Namespace
10442         the gconf keys.
10443         (create_share): Add password support.
10444         (enable_sharing_changed_cb): Namespaced keys.
10445         (require_password_changed_cb): Handle key change.
10446         (share_name_changed_cb): Namespaced keys.
10447         (share_password_changed_cb): Handle key change.
10448         (rb_daap_sharing_init): Namespaced keys.
10449         (rb_daap_sharing_shutdown): Ditto.
10451         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10452         Add password property.
10453         (rb_daap_share_set_name): Break out prop set function.
10454         (published_cb): New RBDaapMdnsPublisher signal handler.
10455         (name_collision_cb): Ditto.
10456         (rb_daap_share_init): Create publisher object and
10457         connect to signals.
10458         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10459         (rb_daap_share_set_property): Break out prop set functions.
10460         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10461         Unref publisher.
10462         (rb_daap_share_new): Add password argument.  Start
10463         publishing and DAAP server.
10464         (message_set_from_rb_daap_structure): Change print to debug.
10465         (server_info_cb): Set auth method to publish.
10466         (logout_cb): Handle DAAP client logout.
10467         (update_cb): Remove C++ comments.
10468         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10469         (server_cb): Add debug.
10470         (soup_auth_callback): Handle auth requests.
10471         (rb_daap_share_server_start): Split up functions for starting
10472         server and publishing.  Add auth handling to server.
10473         (rb_daap_share_server_stop): Split stop server and publish.
10474         No C++ comments.
10475         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10476         Start and stop publishing.
10477         (rb_daap_share_restart): Restart server and publishing.
10478         (rb_daap_share_maybe_restart): Conditionally restart.
10480         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10481         (rb_daap_collision_dialog_new_run): Don't use
10482         separators in dialogs.
10484         * daapsharing/rb-daap-connection.h: Add private
10485         data to class structure.
10487         * daapsharing/rb-daap-connection.c: Move
10488         some includes to top of file.  Make private
10489         data struct name consistent with others.
10490         (rb_daap_connection_class_init): Rename
10491         private.
10492         (rb_daap_connection_init): Get and store the pointer
10493         to the private data once instead of in every
10494         function.  Create a username value "Rhythmbox_VERSION".
10495         (connection_get_password): Don't get private.
10496         (build_message): Ditto.
10497         (http_response_handler): Don't init variables in
10498         declaration.  Add debug.  Spacing.
10499         (http_get, entry_set_string_prop, handle_server_info) 
10500         (handle_login, handle_update, handle_database_info) 
10501         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10502         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10503         (rb_daap_connection_state_done): Don't get private.
10504         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10505         spacing.  Correctly base64 encode the Authentication token.
10506         Add username to auth token.
10507         (rb_daap_connection_get_playlists): Don't get private.
10508         (rb_daap_connection_dispose): Ditto.  Free username.
10509         (rb_daap_connection_set_property) 
10510         (rb_daap_connection_get_property): Don't get private.
10512         * daapsharing/Makefile.am: Conditionally
10513         compile MDNS backends.  Add marshall stuff.
10515         * daapsharing/.cvsignore: Update.
10517         * configure.ac: Add conditional to see which
10518         MDNS backend we should use.
10520         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10522         * daapsharing/rb-daap-marshal.list:
10523         * daapsharing/rb-daap-mdns-browser-avahi.c:
10524         * daapsharing/rb-daap-mdns-browser-howl.c:
10525         * daapsharing/rb-daap-mdns-browser.h:
10526         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10527         * daapsharing/rb-daap-mdns-publisher-howl.c:
10528         * daapsharing/rb-daap-mdns-publisher.h:
10529         Split rb-daap-mdns.c into two classes.  One for
10530         publishing and one for browsing.  Split out
10531         the avahi and howl backends into different files.
10533         Fixes #322966
10534         
10535 2006-02-04  James Livingston  <jrl@ids.org.au>
10537         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10539         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10540         crash if metadata reader gives us NULL for strings.
10542 2006-02-03  James Livingston  <jrl@ids.org.au>
10544         * shell/rb-shell-player.c: (open_location_thread),
10545         (rb_shell_player_open_location):
10546         retrieve iradio playlists files in a thread, so that with GStreamer
10547         0.10 the UI doesn't block while connecting to stations. The streamer
10548         connection is synchronous with 0.8, so that will still block (a bit).
10549         Fixed bug 128106.
10551         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10552         because _open_entry does that automatically when it is ready to.
10554 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10556         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10557         (rb_podcast_source_post_status_cell_data_func):
10558         Leave the podcast status column blank for episodes that have not been
10559         downloaded.
10561 2006-02-03  James Livingston  <jrl@ids.org.au>
10563         Add support for source-specific toolbar items, and make the Burn
10564         Playlist item only available for playlists. Also add Update All
10565         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10567         * data/ui/rhythmbox-ui.xml:
10568         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10569         (impl_get_ui_actions): make the Burn CD toolbar item only for
10570         playlists
10572         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10573         * lib/rb-stock-icons.h: load the Eject icon as stock.
10575         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10576         action
10578         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10579         (rb_shell_select_source):
10580         * sources/rb-source.c: (rb_source_class_init),
10581         (rb_source_disconnect), (default_get_ui_actions),
10582         (rb_source_get_ui_actions):
10583         * sources/rb-source.h: add support for source-specific toolbar items
10585         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10586         Eject and Rip toolbar items
10588         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10589         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10590         item.
10592 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10594         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10595         * shell/main.c: (main):
10596         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10597         Replace all g_critical calls with g_warning, since none of them are
10598         the sort of thing the process should die over.  Fixes #329398.
10600 2006-02-03  James Livingston  <jrl@ids.org.au>
10602         * configure.ac: mention gst-plugins-base in the error message for not
10603         finding GStreamer 0.10, since not having that will cause it to fail.
10605 2006-02-03  James Livingston  <jrl@ids.org.au>
10607         * configure.ac: fix typo that means you get the wrong error message if
10608         you explicity request a particular playback engine, and it can't be
10609         found.
10611 2006-02-03  James Livingston  <jrl@ids.org.au>
10613         * data/glade/library-prefs.glade: allow the watched library location
10614         to be a non-local place.
10616 ============ Version 0.9.3
10619 2006-02-02  James Livingston  <jrl@ids.org.au>
10621         * NEWS: update NEWS
10622         * configure.ac: bump version to 0.9.3
10624         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10625         <caillon@redhat.com>, fixed bug 329517. 
10627 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10629         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10631         * widgets/rb-song-info.c: (rb_song_info_constructor):
10632         Make year and disc number fields non-editable if tag editing
10633         is disabled.  Fixes #329463.
10635 2006-02-01  James Livingston  <jrl@ids.org.au>
10637         * rhythmdb/rhythmdb-property-model.c:
10638         (rhythmdb_property_model_row_inserted_cb),
10639         (rhythmdb_property_model_prop_changed_cb),
10640         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10641         correctly. Fixes bug 327061.
10643         * rhythmdb/rhythmdb-query-model.c:
10644         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10645         the HIDDEN property when an entry is removed for being hidden.
10647         * rhythmdb/rhythmdb-query-model.h:
10648         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10649         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10650         models's "connected" property. Whatever it was needed for seems to
10651         have gone.
10653 2006-02-01  James Livingston  <jrl@ids.org.au>
10655         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10657         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10658         (rb_shell_player_playing_changed_cb): block the signal to prevent
10659         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10660         button pausing.
10662 2006-02-01  James Livingston  <jrl@ids.org.au>
10664         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10665         /should/ now work, if the neccessary plugins get ported.
10667 2006-01-30  James Livingston  <jrl@ids.org.au>
10669         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10670         string properties to "Unknown" is the string is empty. Kind of fixes
10671         bug 327495.
10673         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10674         gettext calls once, rather than once per time the function is used.
10675         This stops us making tens of thousands of gettext calls on startup,
10676         which reduces the cpu-time of startup by 10-20%
10678 2006-01-29  James Livingston  <jrl@ids.org.au>
10680         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10681         (rhythmdb_add_uri):
10682         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10683         for files containing known video streams.
10686 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10688         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10689         required.
10691 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10693         * INSTALL.quick: More random updates
10695         * rhythmdb/rhythmdb-query-model.c:
10696         (rhythmdb_query_model_class_init),
10697         (rhythmdb_query_model_set_property),
10698         (rhythmdb_query_model_get_property),
10699         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10700         Remove user sort data handling, take a property ID and a reverse
10701         flag instead.
10702         (rhythmdb_query_model_insert_into_main_list),
10703         (rhythmdb_query_model_insert_into_limited_list),
10704         (rhythmdb_query_model_do_reorder),
10705         (_reverse_sorting_func):
10706         Handle reverse sorting by calling _reverse_sorting_func, which
10707         calls the real sort function and reverses the result.
10708         (rhythmdb_query_model_set_sort_order):
10709         Allow this to be called to set the initial sort order for limited
10710         queries, and handle reverse sorting when reordering.
10711         (rhythmdb_query_model_location_sort_func),
10712         (rhythmdb_query_model_album_sort_func),
10713         (rhythmdb_query_model_artist_sort_func),
10714         (rhythmdb_query_model_genre_sort_func),
10715         (rhythmdb_query_model_track_sort_func),
10716         (rhythmdb_query_model_double_ceiling_sort_func),
10717         (rhythmdb_query_model_ulong_sort_func),
10718         (rhythmdb_query_model_date_sort_func),
10719         (rhythmdb_query_model_string_sort_func):
10720         Sort functions moved from rb-entry-view.c.
10721         * rhythmdb/rhythmdb-query-model.h:
10722         Add the sort functions, and update the changed functions.
10723         
10724         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10725         Just call _resort_model when the query model is set, since it
10726         does all the same things.
10727         (rb_entry_view_append_column):
10728         Rework bits so the rating column doesn't have to be so much of a
10729         special case.
10730         (rb_entry_view_append_column_custom):
10731         Take a property ID to sort on, rather than arbitrary custom data.
10732         (rb_entry_view_resort_model):
10733         Query model does all the reverse sort handling now.
10734         * widgets/rb-entry-view.h: Update _append_column_custom.
10736         * sources/rb-play-queue-source.c:
10737         (rb_play_queue_source_constructor):
10738         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10739         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10740         (rb_podcast_source_post_date_cell_sort_func),
10741         (rb_podcast_source_post_status_cell_sort_func),
10742         (rb_podcast_source_post_feed_cell_sort_func):
10743         Updates required by all the other changes.
10745         * rhythmdb/rhythmdb-property-model.c:
10746         (rhythmdb_property_model_drag_data_get):
10747         Sort the query results on the selected property,
10748         so they arrive in the expected order.  All the other changes were made
10749         to make this possible.  Fixes bug #327494.
10751 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10752         
10753         * shell/rb-shell-clipboard.c:
10754         Use GTK_STOCK_REMOVE icon for the remove action in
10755         the play queue too.
10757 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10759         * sources/rb-play-queue-source.c:
10760         (rb_play_queue_source_constructor),
10761         (rb_play_queue_source_update_count):
10762         Don't make the 'queued songs' column clickable,
10763         and add the queued song count to the column title.
10765 2006-01-29  James Livingston  <jrl@ids.org.au>
10767         * configure.ac: remove "experimental" marking from DAAP, and enable by
10768         default if the dependencies are found.
10770 2006-01-29  James Livingston  <jrl@ids.org.au>
10772         * NEWS: update NEWS
10774 2006-01-29  James Livingston  <jrl@ids.org.au>
10776         patch by: William Jon McCann  <mccann@jhu.edu>
10778         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10779         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10780         property used for the feed list. Fixes problem with feeds with no
10781         episodes not showing up.
10783 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10784         
10785         * shell/rb-play-order-random-by-age-and-rating.c:
10786         (rb_random_by_age_and_rating_get_entry_weight):
10787         Fix compile errors, bug #328978.
10789 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10791         * INSTALL.quick, README: Random updates
10792         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10794 2006-01-28  James Livingston  <jrl@ids.org.au>
10796         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10797         default rating back to 0 (from 2.5, which was needed for autorating).
10799         * shell/rb-play-order-random-by-age-and-rating.c:
10800         (rb_random_by_age_and_rating_get_entry_weight):
10801         * shell/rb-play-order-random-by-rating.c:
10802         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10803         2.5 for the purposes of weighting entries.
10805 2006-01-28  James Livingston  <jrl@ids.org.au>
10807         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10808         translator comments, to make it clearer what the "friendly time"
10809         formatting strings mean.
10811 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10813         * daapsharing/rb-daap-connection.c: (http_response_handler):
10814         Fix the sense of the overflow check so it'll accept valid input.
10816 2006-01-27  James Livingston  <jrl@ids.org.au>
10818         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10820         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10821         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10823 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10825         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10826         
10827         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10828         Don't include the artist field in the window title if it's blank.
10829         Fixes #325973.
10831 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10833         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10834         Use stock delete icon for move to trash and stock remove
10835         for remove menu item.
10837 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10839         * shell/rb-shell.c: (rb_shell_constructor),
10840         (idle_handle_load_complete):  Don't start the playlist save
10841         timeout until we've loaded the playlists, otherwise we'll
10842         write an empty playlist file if startup takes too long.
10844 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10846         * shell/rb-shell.c: Make view toolbar toggle use
10847         shift+ctrl+t.  Fixes #327585.
10849 2006-01-25  James Livingston  <jrl@ids.org.au>
10851         patch by: Christope Fergeau  <teuf@gnome.org>
10853         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10854         (http_response_handler): fix a potential buffer overflow issue.
10856 2006-01-25  James Livingston  <jrl@ids.org.au>
10858         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10859         Year column wide enough to display "Unknown"
10861 2006-01-25  James Livingston  <jrl@ids.org.au>
10863         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10864         (rb_podcast_source_post_status_cell_data_func): make the episode
10865         status wording better. Part of bug 321607.
10867 2006-01-25  James Livingston  <jrl@ids.org.au>
10869         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10870         others with a separator.
10872         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10873         stock Delete icon.
10875 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10877         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10879 2006-01-23  James Livingston  <jrl@ids.org.au>
10881         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10882         0.3.2. Fixed bug 328158.
10884 2006-01-23  James Livingston  <jrl@ids.org.au>
10886         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10887         (gulong_gst_date_transform), (rb_metadata_class_init):
10888         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10890 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10892         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10893         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10894         (record_entry_change): Protect added_entries and changed_entries with
10895         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10897 2006-01-23  James Livingston  <jrl@ids.org.au>
10899         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10900         the browser for audio CDs.
10902 2006-01-22  James Livingston  <jrl@ids.org.au>
10904         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10905         NEVER_FAIL as it causes the daemon-not-running error to never be
10906         reported, resulting in bug 319438 re-occurring.
10908 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10910         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10911         Just call the podcast manager's update method.  Unbreaks the 'update
10912         all feeds' command.
10914 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10916         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10918 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10920         * configure.ac: Don't disable DAAP with gstreamer 0.10
10922         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10923         (rb_daap_src_class_init), (rb_daap_src_init),
10924         (rb_daap_src_finalize), (rb_daap_src_set_property),
10925         (rb_daap_src_get_property), (rb_daap_src_write),
10926         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10927         (_split_uri), (rb_daap_src_open):
10928         * daapsharing/rb-daap-src.h:
10929         Mostly fix seeking, handle chunked transfer encoding, and port to
10930         gstreamer 0.10.
10931         
10932         * player/rb-player-gst.c:
10933         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10934         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10936         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10937         being fixed.
10939 2006-01-21  James Livingston  <jrl@ids.org.au>
10941         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10942         for Year metadata in DAAP sources. Fixes bug 327700.
10944         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10946 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10948         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10949         enum values instead of magic numbers.
10951         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10952         Add number of songs that match each property title into
10953         the cell.  Also show the number of properties that match
10954         in the All entry.
10955         (rb_property_view_constructor): Use enum values instead of
10956         magic numbers.
10958         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10959         Query podcast posts instead of feeds for browser.  Use
10960         post SUBTITLE which is the location for the property view.
10961         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10962         (construct_query_from_selection) 
10963         (rb_podcast_source_cmd_delete_feed) 
10964         (rb_podcast_source_cmd_properties_feed) 
10965         (rb_podcast_source_cmd_update_feed): Use variable to make
10966         it clear what the selection data represents.
10967         (rb_podcast_source_feed_title_cell_data_func): Add number
10968         of posts that belong to each feed in the browser.
10970         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10971         (rhythmdb_property_model_delete_prop): Decrement the refcount
10972         for the All entry.
10973         (rhythmdb_property_model_get_column_type): Use column enum
10974         values instead of magic numbers.  Add NUMBER column.
10975         (rhythmdb_property_model_get_value): Use enum.
10976         Add NUMBER column that represents the refcount for
10977         the title of that property.
10978         (rhythmdb_property_model_perform_sync): Don't fake up
10979         a title for All here.
10981         Fixes #327372.
10982         
10983 2006-01-21  James Livingston  <jrl@ids.org.au>
10985         Make Rhythmbox start faster by not blocking the UI while database
10986         initialisation and loading occurs. Closes bug 323348.
10988         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10989         start 10 seconds later instead of immediately.
10990         
10991         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10992         safe to call from any thread.
10994         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10995         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10996         so the UI doesn't block.
10998 2006-01-18  James Livingston  <jrl@ids.org.au>
11000         * sources/rb-static-playlist-source.c:
11001         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
11002         cause crashes. Oops. fixes bug 327477.
11004 2006-01-17  William Jon McCann  <mccann@jhu.edu>
11006         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
11007         Set GST element state to NULL before unreffing.
11008         Fixes #327422.
11010 2006-01-18  James Livingston  <jrl@ids.org.au>
11012         * sources/rb-static-playlist-source.c:
11013         (rb_static_playlist_source_do_query): don't filter on the SONG entry
11014         type, since the playlists can contain non-song entries. Fixes bug
11015         327448.
11017         * sources/rb-play-queue-source.c:
11018         (rb_play_queue_source_class_init): disable the search box for the
11019         queue.
11021 2006-01-18  James Livingston  <jrl@ids.org.au>
11023         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
11024         dragging of podcast episodes. Fixed bug 327450.
11026 2006-01-18  James Livingston  <jrl@ids.org.au>
11028         * rhythmdb/rhythmdb-query-model.c:
11029         (rhythmdb_query_model_drag_data_received): fix possible assertion when
11030         dragging to an emoty playlist.
11032 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
11034         * sources/rb-playlist-source-recorder.c:
11035         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
11037 2006-01-17  James Livingston  <jrl@ids.org.au>
11039         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
11041         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
11042         different number of tracks than exist on the cd, since that happens
11043         with audio+data hybrid CDs. Part of bug 325046.
11045 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
11047         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11048         Remove useless call to gtk_tree_view_column_set_clickable().
11050         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
11051         Don't store sort data for columns if the sort function is NULL,
11052         so only sortable columns will be in the column sort data map.
11053         (rb_entry_view_set_columns_clickable): Only make columns we can sort
11054         on clickable.
11055         (rb_entry_view_constructor):  The 'playing icon' column is never
11056         clickable, so don't connect a signal handler for it.
11058         Fixes bug 326811.
11060 2006-01-17  James Livingston  <jrl@ids.org.au>
11062         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
11063         are 0.8 only. Fix element detection.
11065         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
11066         saving the new metadata failed
11068 2006-01-17  James Livingston  <jrl@ids.org.au>
11070         * shell/rb-shell-player.c: (do_next_idle),
11071         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
11072         (eos_cb): release audio device when a playlist finishes. Fixes bug
11073         323679.
11075 2006-01-17  James Livingston  <jrl@ids.org.au>
11077         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
11078         canonicalise the URIs when things are added via library watching.
11080 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11082         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11083         Off by one error in default speed index.
11085 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11087         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
11088         (update_speed_combobox, update_speed_combobox):
11089         Get a list of the actually supported write speeds from
11090         n-c-b >= 2.13.90.  Otherwise use fallback list.
11092 2006-01-17  James Livingston  <jrl@ids.org.au>
11094         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
11095         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
11096         don't get stuck on recursive symlinks. Fixed bug 125452.
11098 2006-01-17  James Livingston  <jrl@ids.org.au>
11100         Add support for mass-storage audio players. Players are detected via
11101         either the HAL "audio_player" capability, or a ".is_audio_player" file
11102         in the root of the volume. Closes bug 325602.
11104         * configure.ac: separate using HAL from ipod support.
11106         * lib/rb-file-helpers.c: (rb_uri_is_local):
11107         * lib/rb-file-helpers.h: add function to determine whether a URI is
11108         local.
11110         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
11111         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
11112         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
11113         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
11114         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
11115         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
11116         directories can be scanned for files to add as  non-SONG entries.
11118         * shell/rb-removable-media-manager.c:
11119         (rb_removable_media_manager_mount_volume): add checking for
11120         mass-storage players.
11122         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
11123         * sources/rb-ipod-source.c: (rb_ipod_source_new),
11124         (hal_udi_is_ipod):
11125         * sources/rb-removable-media-source.c:
11126         (rb_removable_media_source_class_init),
11127         (rb_removable_media_source_constructor): move some things up to the
11128         RBRemovableMediaSource, rather than making subclasses do it.
11130         * sources/Makefile.am:
11131         * sources/rb-generic-player-source.c:
11132         * sources/rb-generic-player-source.h: add mass-storage player source.
11134 2006-01-16  James Livingston  <jrl@ids.org.au>
11136         patch by: William Jon McCann  <mccann@jhu.edu>
11138         * rhythmdb/rhythmdb-query-model.c:
11139         (rhythmdb_query_model_base_row_deleted): fix build issue from last
11140         commit.
11142 2006-01-16  James Livingston  <jrl@ids.org.au>
11144         Patch to add support for "chained queries" and putting hidden tracks
11145         in query models. Use chained queries to add search box support to
11146         normal playlists, and to make hidden entries not get lost. Fixes bug
11147         319278.
11149         * rhythmdb/rhythmdb-query-model.h:
11150         * rhythmdb/rhythmdb-query-model.c:
11151         (rhythmdb_query_model_class_init),
11152         (rhythmdb_query_model_set_property),
11153         (rhythmdb_query_model_get_property):
11154         (rhythmdb_query_model_finalize): add "show-hidden" and
11155         "base-model" properties.
11157         (rhythmdb_query_model_set_connected),
11158         (rhythmdb_query_model_has_pending_changes),     
11159         (rhythmdb_query_model_entry_added_cb),
11160         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
11161         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
11162         (rhythmdb_query_model_remove_entry),
11163         (rhythmdb_query_model_drag_data_received),
11164         (rhythmdb_query_model_base_row_inserted),
11165         (rhythmdb_query_model_base_row_deleted),
11166         (rhythmdb_query_model_base_non_entry_dropped),
11167         (rhythmdb_query_model_base_complete),
11168         (rhythmdb_query_model_base_entry_prop_changed),
11169         (rhythmdb_query_model_base_rows_reordered),
11170         (rhythmdb_query_model_row_drop_possible): handle base-model by
11171         chaining events and operations where necessary. Make hidden entries
11172         not get added only if "show-hidden" is false.
11174         (rhythmdb_query_model_child_index_to_base_index),
11175         (rhythmdb_query_model_base_index_to_child_index),
11176         (rhythmdb_query_model_get_entry_index): utility functions for handling
11177         base-model entries.
11179         (rhythmdb_query_model_reapply_query): apply the current query, and
11180         remove entries that don't match it.
11182         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
11183         empty queries.
11185         * sources/rb-source.c: (rb_source_set_property): move the unref later
11186         to fix problem if it is the last reference.
11188         * sources/rb-static-playlist-source.c:
11189         (rb_static_playlist_source_class_init),
11190         (rb_static_playlist_source_init),
11191         (rb_static_playlist_source_finalize),
11192         (rb_static_playlist_source_constructor), (impl_reset_filters),
11193         (impl_search), (rb_static_playlist_source_do_query),
11194         (impl_save_contents_to_xml),
11195         (rb_static_playlist_source_add_location_internal): use a chained query
11196         model to filter out hidden entries and implement the search box.
11198 2006-01-15  James Livingston  <jrl@ids.org.au>
11200         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
11201         the default playlist loading, which I broke earlier.
11203 2006-01-15  James Livingston  <jrl@ids.org.au>
11205         patch by: William Jon McCann  <mccann@jhu.edu>
11207         * sources/rb-playlist-source.c: (playlist_iter_func): use
11208         totem-plparser's new API version macros to check for API changes.
11209         Handle the recent API change.
11211 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11213         * sources/rb-library-source.c: (impl_get_config_widget):
11214         Ref the preferences object to match the unref in the
11215         finalizer.  Fixes some portion of #323505.
11217 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11219         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
11220         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
11221         Fix valgrind warnings about accessing uninitialised values.
11223 2006-01-14  William Jon McCann  <mccann@jhu.edu>
11225         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
11227 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11229         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
11230         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
11231         Stops the 'now playing' icon from being displayed after the play
11232         order finishes.
11234 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11236         * podcast/rb-podcast-manager.c:
11237         (rb_podcast_manager_db_entry_deleted_cb):
11238         Don't try to delete files we never downloaded, and cancel downloads
11239         for deleted episodes.  Fixes bug #326862.
11240         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
11241         Don't complain about NULL data items in the selection list.
11243 2006-01-14  James Livingston  <jrl@ids.org.au>
11245         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11246         Make the name ofthe queue non editable. Fixes bug 326918.
11248 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11250         * sources/rb-playlist-source-recorder.c (burn_cd) 
11251         (ask_rewrite_disc): Don't use our locally copied functions
11252         if we have at least 2.13.
11254 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11256         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
11257         Correct the argument type for the process_error signal.
11258         May fix bug #323154.
11260 2006-01-13  James Livingston  <jrl@ids.org.au>
11262         save the queue to disk when exiting, and reload on startup. Fixed bug
11263         326677 .
11265         * shell/rb-playlist-manager.c:
11266         (rb_playlist_manager_load_playlists),
11267         (rb_playlist_manager_save_playlists_async): don't disable saving of
11268         the queue
11270         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11271         add the queue source as a gobject property.
11273         * sources/rb-play-queue-source.c:
11274         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
11275         code to save the queue to xml
11277         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
11278         load the queue from xml.
11279         * sources/rb-playlist-xml.h:
11281         * sources/rb-static-playlist-source.c:
11282         (rb_static_playlist_source_load_from_xml),
11283         (rb_static_playlist_source_new_from_xml):
11284         * sources/rb-static-playlist-source.h: split the playlist xml loading
11285         from the static playlist creation function, so the queue can use it.
11287 2006-01-13  James Livingston  <jrl@ids.org.au>
11289         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
11290         assertion that should be there. Fixes bug 325923.
11291         
11292         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
11293         return NULL if the entry already exists (e.g. as another type).
11294         * daapsharing/rb-daap-connection.c: (handle_song_listing):
11295         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11296         (rb_podcast_manager_insert_feed):
11297         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
11298         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
11299         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11300         for the above function returning NULL.
11302 2006-01-12  James Livingston  <jrl@ids.org.au>
11304         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11305         is enabled. Fixes bug 326673.
11306         
11307         * doc/reference/tmpl/eggtrayicon.sgml:
11308         * doc/reference/tmpl/rb-daap-src.sgml:
11309         * doc/reference/tmpl/rb-source.sgml:
11310         * doc/reference/tmpl/rb-statusbar.sgml:
11311         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11312         * doc/reference/tmpl/rhythmbox-unused.sgml:
11313         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11315 2006-01-11  James Livingston  <jrl@ids.org.au>
11317         * widgets/rb-song-info.c: (rb_song_info_constructor),
11318         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11319         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11320         the same value for properties. From bug 326054.
11322 2006-01-11  James Livingston  <jrl@ids.org.au>
11324         * sources/rb-source.h:
11325         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11326         (rb_shell_player_set_playing_source_internal), (eos_cb):
11327         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11328         every entry.
11330         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11331         source use this. Closes bug 322077.
11333 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11335         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11336         In order for set_icon_data_from_pixbuf() to be
11337         effective, one must not set an icon in _new().
11339 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11341         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11342         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11343         (egg_tray_icon_notify): Add support for libnotify 0.3.
11344         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11345         * configure.ac: Determine the version of libnotify.
11346         Fixes #326333.
11348 2006-01-08  James Livingston  <jrl@ids.org.au>
11350         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11351         trying to share a track with unknown length.
11353 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11355         * shell/rb-shell-player.c: (rb_shell_player_init):
11356         Sync volume on startup so it doesn't default to 0.
11358 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11360         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11361         (rb_shell_player_get_property), (rb_shell_player_open_location),
11362         (info_available_cb):  Add the iradio streamed song title as a
11363         property, and emit a signal when it changes.
11365         * shell/rb-shell.c: (rb_shell_constructor),
11366         (rb_shell_player_elapsed_changed_cb),
11367         (rb_shell_player_stream_song_changed_cb):
11368         Issue a notification when the iradio song title changes.
11369         Fixes #326166.
11371 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11373         * shell/rb-shell-player.c: (rb_shell_player_init),
11374         (rb_shell_player_finalize), (rb_shell_player_set_property),
11375         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11376         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11377         (rb_shell_player_set_volume_relative),
11378         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11379         (rb_shell_player_get_mute):
11380         * shell/rb-shell-player.h:
11381         * shell/rb-shell-player.xml:
11382         Store volume as a property on RBShellPlayer, rather than in gconf.
11383         Add some methods to control volume via dbus.
11385         * shell/rb-shell.c: (rb_shell_constructor),
11386         (rb_shell_volume_widget_changed_cb),
11387         (rb_shell_player_volume_changed_cb):
11388         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11389         Update volume using player properties rather than gconf, and sync the
11390         volume with the volume control button when something else changes it.
11391         Fixes #323840.
11393 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11395         * shell/rb-tray-icon.c (tray_popup_position_menu):
11396         Make tray menu align with edge of panel.
11398         patch from Jaap A. Haitsma <jaap@haitsma.org>
11399         Fixes #319913
11401 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11402         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11403         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11404         (rb_playlist_manager_new_playlist_from_selection_data):
11405         Make a reasonable default name for playlists created from
11406         dropped data.  Fixes #326116.
11408 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11410         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11411         Use new gconf key.
11412         (burn_cd): Always eject CD after burning.  Too many drives
11413         get confused if we don't.  Save the speed used if the burn
11414         was completed successfully.
11416         * data/rhythmbox.schemas: Use our own speed instead of from
11417         n-c-b. The situation is that the default_speed for n-c-b is most
11418         likely the maximum write speed.  This is fine for n-c-b because it
11419         has burn-proof turned on.  We can't turn it on for audio CDs
11420         because the results are poor in quality.  So we'll just pick a
11421         default that should work for everyone (4).
11423 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11424         
11425         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11426         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11428 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11430         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11431         in my previous commit.  Fixes #326037.
11433 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11435         patch by: Jonathan Matthew
11437         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11438         error on Fedora Rawhide.
11440 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11442         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11443         Assume HTTP URLs ending with .xml or .rss are podcasts.
11444         (rb_shell_add_uri): Handle adding podcast feeds.
11446         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11447         Register as the source for podcast feeds.
11449 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11451         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11452         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11453         (rb_shell_preferences_append_view_page):
11454         * shell/rb-shell-preferences.h:
11455         Fix typo in function name.  Fixes #325992.
11457 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11459         * shell/rb-audioscrobbler.c:
11460         Add '+' to the list of characters to URI-encode, so it doesn't get
11461         interpreted as a space.
11463 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11465         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11466         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11467         goes away while we're still trying to log in.
11469 2006-01-06  James Livingston  <jrl@ids.org.au>
11471         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11473 2006-01-06  James Livingston  <jrl@ids.org.au>
11475         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11476         support for Year to automatic playlists. Closes bug 321341.
11478         * rhythmdb/rhythmdb-query-model.c:
11479         (rhythmdb_query_model_set_property):
11480         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11481         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11482         (rhythmdb_query_free), (rhythmdb_query_serialize),
11483         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11484         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11485         * rhythmdb/rhythmdb.h: Support special
11486         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11487         year in date.
11489         * widgets/rb-query-creator-properties.c:
11490         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11491         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11493 2006-01-06  James Livingston  <jrl@ids.org.au>
11495         * configure.ac: make the playback backend selection work correctly
11497         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11498         (rb_daap_src_class_init), (rb_daap_src_dispose),
11499         (rb_daap_src_change_state), (rb_daap_src_initialize):
11500         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11501         doesn't work for this class. Fixes bug 325934
11503 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11505         * configure.ac: Fix check for libnotify.
11507 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11509         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11510         Get name element for current lang and remove all name nodes
11511         from the XML tree.
11512         (get_playlist_name_from_xml): Try to get name element or
11513         fall back to name attribute.
11514         (rb_playlist_source_new_from_xml): Get name before turning over
11515         to sub-types for parsing so that we can remove name elements
11516         from the tree if necessary.
11518         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11519         Load default playlists file if per user playlists are not found.
11521         * data/playlists.xml.in: 
11522         * data/Makefile.am: 
11523         * data/.cvsignore: Add default set of playlists.
11524         Fixes #323004
11526 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11528         * shell/main.c: (main): Don't use the dbus interface to show the
11529         window if we're also going to use the bonobo interface.
11531 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11533         * shell/rb-history.c: (rb_history_set_playing):
11534         Allow setting the playing song to NULL.
11535         (rb_history_append), (rb_history_delete_link):
11536         Don't randomly change position when entries are added and removed,
11537         it confuses play orders.
11538         
11539         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11540         Random orders always have a next entry if the model is not empty.
11541         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11542         Go back to the start of the history if we're past its end.
11544         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11545         (rb_shuffle_play_order_go_next): Go back to the start of the history
11546         if we're past its end.
11547         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11548         the history if the current entry is removed.
11550         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11551         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11552         the play order when the query has finished. This wasted about 10% CPU
11553         while the query was running.
11555         Fixes #324641: assertion failures when the query model was changed
11556         such that the playing song was no longer present.
11558 2006-01-05  James Livingston  <jrl@ids.org.au>
11560         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11561         (rb_daap_src_dispose), (rb_daap_src_change_state):
11562         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11563         (rhythmdb_gda_finalize):
11564         * widgets/rb-cell-renderer-pixbuf.c:
11565         * widgets/rb-cell-renderer-rating.c:
11566         (rb_cell_renderer_rating_class_init),
11567         (rb_cell_renderer_rating_finalize):
11568         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11569         * widgets/rb-load-failure-dialog.c:
11570         (rb_load_failure_dialog_class_init),
11571         (rb_load_failure_dialog_finalize):
11572         * widgets/rb-rating.c: (rb_rating_class_init),
11573         (rb_rating_finalize):
11574         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11575         (rb_search_entry_finalize): use G_DEFINE_TYPE
11577         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11579 2006-01-05  James Livingston  <jrl@ids.org.au>
11581         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11583         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11584         the tarball.
11586         * shell/rb-history.c: (rb_history_class_init),
11587         (rb_history_finalize):
11588         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11589         (rb_playlist_manager_finalize):
11590         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11591         (rb_remote_init): use G_DEFINE_TYPE.
11593 2006-01-05  James Livingston  <jrl@ids.org.au>
11595         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11596         changes
11598 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11600         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11601         Disable burn action when source is not a playlist.
11602         Fixes #323578.
11604 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11606         Optionally use libnotify to display song change and other
11607         notifications, and provide an option to disable notifications.
11608         Fixes #320355 and innumerable informal complaints.
11610         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11611         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11612         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11613         (egg_tray_icon_notify):
11614         * widgets/eggtrayicon.h:
11615         * configure.ac:
11616         * shell/Makefile.am:
11617         Optionally use libnotify instead of eggnotificationbubble.
11619         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11620         (rb_tray_icon_constructor), 
11621         (rb_tray_icon_show_notifications_changed_cb),
11622         (rb_tray_icon_hide_notify_cb)
11623         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11624         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11625         EggNotificationBubble pointer to eggtrayicon.
11627         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11628         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11629         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11631 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11633         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11634         Request a minimum size for the progress bar so that
11635         the window doesn't shrink too small.
11637 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11639         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11640         (add_db_entry), (db_entry_deleted_cb):
11641         Don't track the number of songs currently present, track the next ID
11642         to assign.  Fixes potential ID conflict problems.
11643         
11644         (db_entry_changed_cb), (rb_daap_share_start_publish),
11645         (rb_daap_share_stop_publish):
11646         Watch for db entry changes, and when songs become non-hidden after
11647         a successful stat, add them to the mapping tables.   Fixes #325178,
11648         making the DAAP server usable again.
11650 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11651         
11652         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11653         (rb_statusbar_construct), (rb_statusbar_init),
11654         (rb_statusbar_finalize), (rb_statusbar_set_property),
11655         (rb_statusbar_get_property), (rb_statusbar_new),
11656         (rb_statusbar_sync_with_source):
11657         * shell/rb-statusbar.h:
11658         Remove visibility management code, stop watching for play order
11659         changes (status bar doesn't show play order any more), remove unused
11660         'player' property, and some other minor cleanup.
11661         
11662         * shell/rb-shell.c: (rb_shell_constructor),
11663         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11664         (rb_shell_sync_statusbar_visibility):
11665         Manage status bar visibility here rather than in the status bar
11666         itself, so we can take small mode into account.  Fixes #323589.
11668 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11670         * widgets/eggnotificationbubble.c: (draw_bubble):
11671         Move the bubble off the visible screen while setting up bevels.  
11672         Fixes #316810.
11674 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11676         * shell/rb-shell-player.c: (rb_shell_player_init),
11677         (rb_shell_player_finalize): 
11678         Remove unused structure members.
11679         
11680         (do_next_idle), (rb_shell_player_error):
11681         Only queue one call to do_next_idle, so we don't skip tracks if we get
11682         two errors for the same song.  Fixes #325216.
11684 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11686         * data/glade/podcast-feed-properties.glade,
11687          podcast/rb-feed-podcast-properties-dialog.c:
11688         (rb_feed_podcast_properties_dialog_init),
11689         (rb_feed_podcast_properties_dialog_update):
11690         Add 'last episode' field to the podcast feed properties dialog.
11692         * podcast/rb-feed-podcast-properties-dialog.c:
11693         (rb_feed_podcast_properties_dialog_update_last_update),
11694         (rb_feed_podcast_properties_dialog_update_last_episode),
11695          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11696         Use last-seen property for the time at which we last updated the feed,
11697         and post-time for the time the last episode was published.
11699         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11700         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11701         feed, use last-seen (which in 0.9.2 was the last post time).
11703         Fixes #323894.
11705 2006-01-01  James Livingston  <jrl@ids.org.au>
11707         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11709         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11710         year from the ipod database.
11712 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11714         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11715         Only set the pipeline back to NULL state for really uninteresting
11716         files.  This was causing deadlocks with various video files.
11717         Fixes #324912.
11719 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11721         * data/glade/song-info-multiple.glade:
11722         Add disc number label and field.
11723         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11724         (rb_song_info_constructor): 
11725         Handle widgets for disc number.
11726         (rb_song_info_sync_entries_multiple):
11727         Set disc number property on selected entries.
11728         Fixes #324777.
11730 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11732         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11733         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11734         Activate the default widget when enter is pressed in these dialogs.
11735         Fixes #322887.
11737 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11739         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11740         Use rb_shell_player_get_playing_entry, so we get the right entry
11741         when playing from the queue.  Fixes #325379.
11743 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11745         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11746         Include podcast posts with no publication date.  Typically
11747         seen in static collections rather than feeds.
11749 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11751         * shell/main.c: (main): Don't attempt to handle
11752         bonobo-only arguments if we couldn't get a bonobo
11753         client proxy.
11755 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11757         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11758         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11759         abort if daap sharing is disabled and then re-enabled.
11761 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11763         * podcast/rb-podcast-parse.c (rb_insert_item):
11764         Add debugging.
11765         (rb_podcast_parser_start_element): Support itunes:image.
11766         Add debugging.  Don't abuse the break statement.  Warn
11767         if state is unknown.
11768         (rb_podcast_parser_end_element): Add debugging.  Warn
11769         if state is unknown.
11770         (rb_podcast_parser_characters): Warn if state is unknown.
11772         Fixes parsing of feeds that use the itunes:image element.
11773         Fixes #324632
11775 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11777         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11778         (stations_view_drag_data_received_cb):
11779         Remove calls to rhythmdb_entry_lookup_by_location, as
11780         rb_iradio_source_add_station does that anyway.
11781         
11782         (rb_iradio_source_add_from_playlist):
11783         If the URL doesn't point to a playlist, add it as the stream
11784         URL instead.
11786 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11788         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11789         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11790         so we don't get an assertion failure.
11791         Fixes #325025.
11793 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11795         * shell/main.c: (load_uri_args): don't compile this in if
11796         neither bonobo nor dbus are enabled.  Fixes #324890.
11798 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11800         * sources/rb-audiocd-source.c:
11801         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11802         so it closes the device.
11804 2005-12-20  James Livingston  <jrl@ids.org.au>
11806         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11807         so that it doesn't spend forever getting stuck on the one file. Don't
11808         report errors for failing to change state on known non-audio files.
11810         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11811         audio sink creation if we can't create the gconfaudiosink. This lets
11812         it work with only gst-plugins-base on 0.10.
11814 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11816         * rhythmdb/rhythmdb-query-model.c:
11817         (rhythmdb_query_model_set_sort_order):
11818         Fix a tiny memory leak in the previous commit.
11820 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11822         * rhythmdb/rhythmdb-query-model.c:
11823         (rhythmdb_query_model_set_sort_order):
11824         Don't try to emit reorders for empty query models, since it doesn't
11825         achieve anything and it results in a few warnings.
11827 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11829         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11830         Make burn dialog non-resizable so that the expander can shrink.
11831         Fixes #308951.
11833 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11835         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11836         add entries without a location, rather than those with one.
11838 2005-12-19  James Livingston  <jrl@ids.org.au>
11840         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11841         the error isn't set.
11843 2005-12-19  James Livingston  <jrl@ids.org.au>
11844         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11845         add entries without a location. Fixes bug 324290.
11847         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11848         without a location.
11850         * shell/main.c: (main): don't crash if dbus initialisation fails
11851         without setting an error
11853 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11855         * sources/rb-library-source.c: Remove unused structure members
11856         (rb_library_source_do_query): Actually use the cached 'all' query.
11857         Fixes #324025.
11858         
11859 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11861         * sources/rb-audiocd-source.c 
11862         (rb_audiocd_get_cd_info): tab
11863         (rb_audiocd_scan_songs): Return boolean success/failure,
11864         fix error messages a bit.
11865         (metadata_cb): Don't crash if we have no tracks
11866         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11867         the CD.
11868         Fixes #324222.
11870 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11872         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11873         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11874         key.
11876         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11877         Fixes #324157
11879 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11881         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11882         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11883         (fullscreen_changed_cb): 
11884         * lib/rb-preferences.h: 
11885         * data/ui/rhythmbox-ui.xml: 
11886         * data/rhythmbox.schemas:
11887         Add fullscreen mode.
11889         Fixes #324075.
11891 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11893         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11894         configure.  It was not working with RPM.
11895         * data/Makefile.am: Switched dbus directory location to use
11896         datadir instead of variable that was not working.
11898 2005-12-13  James Livingston  <jrl@ids.org.au>
11900         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11902         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11903         the podcast browser work again. Closes bug 323856.
11905 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11907         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11908         Remove C99ism.
11910         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11911         (rb_utf_friendly_time):
11912         * lib/rb-cut-and-paste-code.h:
11914         * podcast/rb-feed-podcast-properties-dialog.c:
11915         (rb_feed_podcast_properties_dialog_parse_time):
11916         * podcast/rb-podcast-properties-dialog.c:
11917         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11918         to display the date in a more user friendly way.
11919         For example, if the feed was updated yesterday it will say:
11920         Last updated: Yesterday 10:00 AM
11921         instead of printing the date.
11923 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11925         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11926         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11927         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11928         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11929         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11930         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11931         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11932         (rb_podcast_parse_date): Add support for some real world
11933         date formats.
11934         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11935         (rb_podcast_parse_item_free): Style and no need to check
11936         for NULL before g_free.
11938         May fix #323742
11940 2005-12-12  James Livingston  <jrl@ids.org.au>
11942         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11943         with gstreamer 0.10, which replaced audioscale.
11945         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11946         function to free the SoupSession
11948         * shell/rb-source-header.c: (rb_source_header_set_property),
11949         (rb_source_header_disclosure_toggled_cb),
11950         (rb_source_header_view_browser_changed_cb),
11951         (rb_source_header_sync_control_state):
11952         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11953         * sources/rb-library-source.c: (rb_library_source_class_init):
11954         * sources/rb-source.c: (rb_source_class_init),
11955         (rb_source_get_status), (default_get_browser_key),
11956         (rb_source_get_browser_key), (rb_source_can_browse),
11957         (rb_source_notify_status_changed),
11958         (rb_source_notify_filter_changed):
11959         * sources/rb-source.h: seperate the enabling of browsers from the use
11960         of a gconf key.
11962 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11964         * data/glade/podcast-feed-properties.glade: 
11965         * data/glade/podcast-properties.glade: Use scrolled viewports
11966         for description text.  Fix regression of #320509.
11968 2005-12-11  James Livingston  <jrl@ids.org.au>
11970         * sources/rb-auto-playlist-source.c:
11971         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11972         (impl_search), (rb_auto_playlist_source_do_query),
11973         (rb_auto_playlist_source_set_query),
11974         (rb_auto_playlist_source_get_query): add support for the search box
11975         to automatic playlists.
11977         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11978         memory leak.
11980 2005-12-11  James Livingston  <jrl@ids.org.au>
11982         * NEWS: update NEWS
11984 2005-12-11  James Livingston  <jrl@ids.org.au>
11986         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11987         (rhythmdb_load), (monitor_subdirectory),
11988         (rhythmdb_sync_library_location):  start the library sync and
11989         monitoring in an idle callback.
11991 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11993         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11994         (rb_podcast_source_constructor): Remove unused pixbuf column.
11995         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11996         Use consistent style.
11998         Fixes #322961.
12000 2005-12-11  James Livingston  <jrl@ids.org.au>
12002         * rhythmdb/rhythmdb-property-model.c:
12003         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12004         (rhythmdb_property_model_insert),
12005         (rhythmdb_property_model_delete_prop):
12006         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
12007         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
12008         (destroy_tree_property):
12009         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
12010         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
12011         GMemChunks, they are crap and deprecated. Improves startup-time and
12012         memory usage slightly.
12014 2005-12-10  William Jon McCann  <mccann@jhu.edu>
12016         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
12017         Added license and website info.
12019         * MAINTAINERS.old: Add Colin.
12020         * MAINTAINERS: Add James.
12021         * AUTHORS: Put back in order.  Add extra space between name and email
12022         to make it easier to read.  Add James and jonathan.
12024         * widgets/rb-song-info.c (rb_song_info_init) 
12025         (rb_song_info_constructor): Make sure close button is primary/rightmost.
12027 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12029         Play queue implementation. Closes bug 107787.
12031         * data/rhythmbox.schemas: add items for whether the queue should be
12032         displayed as a sidebar, and the height of the sourcelist if it is.
12034         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
12035         playlist, and podcast popups; add 'view queue as sidebar' menu item,
12036         add popups for queue as source and as sidebar.  We need a separate
12037         popup for the sidebar view because otherwise it's hard to tell which
12038         of the visible entry views the action came from.
12040         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
12042         * po/POTFILES.in: Add new file
12044         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
12045         Add helper function for deciding if a podcast episode is available for
12046         playback.
12048         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
12049         reorder entries in the query model.
12050         (idle_process_update): Handle new update type used to insert entries
12051         at a particular position in the query model.
12052         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
12053         parameter to specify the position (-1 meaning 'at the end').
12054         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
12055         parameter.
12056         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
12057         bad entry removal updates for entries that aren't in the model.
12058         (rhythmdb_query_model_emit_reorder): Add helper function for
12059         reordering rows.
12060         (rhythmdb_query_model_move_entry): New method for moving entries
12061         around in the model
12062         (rhythmdb_query_model_entry_added_cb),
12063         (rhythmdb_query_model_update_limited_entries),
12064         (rhythmdb_query_model_do_reorder),
12065         (rhythmdb_query_model_do_insert): Pass through the index parameter,
12066         use rhythmdb_query_model_emit_reorder where appropriate.
12068         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12069         Don't allow the queue to be deleted.
12070         (handle_playlist_entry_cb): Update for method signature change
12071         (rb_playlist_manager_save_playlists_async),
12072         (rb_playlist_manager_get_playlists): Don't save the play queue,
12073         don't report it as a playlist.
12075         * shell/rb-play-order.c: Include queue play order in the list of
12076         available orders.
12078         * shell/rb-shell.c
12079         (rb_shell_class_init), (rb_shell_get_property): Add new property 
12080         for access to the clipboard object.
12081         (rb_shell_constructor): Handle playing-from-queue signal to update the
12082         sourcelist display; add queue sidebar in to UI, listen for queue
12083         sidebar pane changes, and read initial settings from gconf.
12084         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
12085         Only tell the sourcelist the source has changed if the new source is 
12086         not the queue, as we update the sourcelist differently in that case.
12087         (rb_shell_set_window_title): Only use the cached window title if the
12088         playing state was the same when it was created.
12089         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
12090         (rb_shell_sync_pane_visibility): Only hide the side pane if the
12091         sourcelist is hidden and the queue is shown as a source.
12092         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
12093         mode, since it doesn't make any sense.
12094         (sourcelist_visibility_changed_cb): Update the visibility of the pane
12095         too.
12096         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
12097         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
12098         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
12099         playing from queue shown as sidebar.
12101         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
12102         MusicProperties action here from rb-shell-player.c, since it acts like
12103         cut/copy/paste etc.
12104         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
12105         (rb_shell_clipboard_get_property): new property for queue source.
12106         Watch for selection changes in the sidebar entry view as well as the
12107         normal one.
12108         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
12109         actions and MusicProperties.
12110         (rb_shell_clipboard_cmd_queue_delete),
12111         (rb_shell_clipboard_cmd_add_song_to_queue),
12112         (rb_shell_clipboard_cmd_song_info),
12113         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
12115         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
12116         actually came from (could be the playing source, or the queue), add a 
12117         new play order object for the queue, add a property for the queue
12118         source, add a signal for when we switch between playing from the
12119         source and from the queue.
12120         (rb_shell_player_set_property): Handle playing directly from the
12121         queue so we stop once the queue is empty.  Create queue play order
12122         when we get the queue source.
12123         (rb_shell_player_get_playing_source): Return the source we're actually
12124         playing from.
12125         (rb_shell_player_get_playing_entry): Get playing entry from queue if
12126         that's where it is.
12127         (rb_shell_player_set_playing_entry): Update the queue play order if 
12128         that's where we're playing from.
12129         (rb_shell_player_play_order_update_cb): Take has next/previous for the
12130         queue into consideration too.
12131         (swap_playing_source): Helper function for switching the playing
12132         source.
12133         (rb_shell_player_do_previous): Check the queue, even though there's
12134         never a previous entry in it (yet), swap playing source if it changed.
12135         (rb_shell_player_do_next): Check the queue for entries to play before
12136         the normal play order, and swap playing source if it changed.
12137         (rb_shell_player_do_previous_or_seek): Check the queue for previous
12138         entries to go to as well.
12139         (rb_shell_player_playpause): Check the queue before the selection and
12140         the play order, and swap playing source if it changed.
12141         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
12142         (rb_shell_player_entry_activated_cb): Use
12143         rb_podcast_manager_entry_downloaded, do some tapdancing to make
12144         activating queue entries work properly (move the activated entry to
12145         the start of the queue and then play it); if we were playing from the
12146         queue, clear its playing entry so it'll start again from the start
12147         after the activated entry.
12148         (rb_shell_player_sync_buttons): MusicProperties action handler moved
12149         to rb-shell-clipboard.c
12150         (actually_set_playing_source): Add helper for updating the playing
12151         source.
12152         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
12153         signal if we stop or start doing so; use actually_set_playing_source; 
12154         emit playing-source-changed if we actually did change source.
12156         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
12157         rb_static_playlist_source_add_location.
12159         * sources/rb-library-source.c (rb_library_source_class_init): Allow
12160         enqueueing of songs from the library.
12162         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
12163         enqueueing of sonsg from playlists.
12164         (rb_playlist_source_entry_added_cb): Add extra parameter for
12165         rhythmdb_query_model_add_entry.
12166         
12167         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
12168         Implement (can_)add_to_queue for this class.
12169         (rb_podcast_source_entry_activated): Use
12170         rb_podcast_manager_entry_downloaded.
12171         (impl_can_add_to_queue): Return TRUE if at least one entry that has
12172         been downloaded is selected.
12173         (impl_add_to_queue): Only add downloaded entries to the queue.
12175         * sources/rb-source.{c,h}:
12176         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
12177         methods.
12178         (rb_source_class_init): Don't allow enqueueing by default; implement 
12179         add_to_queue though.
12180         (default_add_to_queue): Add all selected entries to the queue.
12181         
12182         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
12183         would be playing if there wasn't anything in the queue).
12184         (set_source_playing): Helper function for manipulating tree store.
12185         (rb_sourcelist_set_playing_source): Use set_source_playing
12186         (rb_sourcelist_preempt_playing_source): Update preempted source
12187         pointer, manipulate source states.
12189         * sources/rb-static-playlist-source.{c,h}:
12190         (rb_static_playlist_source_add_location_internal),
12191         (rb_static_playlist_source_add_location),
12192         (rb_static_playlist_source_add_entry): Add index parameter for
12193         specifying where in the playlist the new entry goes.
12194         (rb_static_playlist_source_new_from_xml), (impl_paste),
12195         (rb_static_playlist_source_add_list_uri),
12196         (rb_static_playlist_source_add_location_swapped),
12197         (rb_static_playlist_source_add_locations),
12198         (rb_static_playlist_source_non_entry_dropped),
12199         (rb_static_playlist_source_row_inserted):
12200         Handle new index parameter everywhere it appears
12201         (rb_static_playlist_source_move_entry): New method for moving entries
12202         around in the playlist.
12204         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
12205         warnings when trying to scroll entry views that have never been
12206         displayed.
12208         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
12209         play order that removes the old entry when switching to a new one.
12211         * sources/rb-play-queue-source.{c,h}: New files, implementing a
12212         static playlist subclass that has a second entry view for the sidebar
12213         view using alternate formatting, and that displays the number of
12214         entries it contains in its source list entry.
12216 2005-12-10  James Livingston  <jrl@ids.org.au>
12218         * rhythmdb/rhythmdb-query-model.c:
12219         (rhythmdb_query_model_add_entry),
12220         (rhythmdb_query_model_drag_data_received):
12221         * sources/rb-static-playlist-source.c:
12222         (rb_static_playlist_source_non_entry_dropped): when things are
12223         dropped, ignore any blank lines in the list of uris. Make the source
12224         responsible for adding new items to the db.
12226         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
12227         empty string.
12229 2005-12-10  James Livingston  <jrl@ids.org.au>
12231         * shell/rb-shell-player.c: (rb_shell_player_set_property),
12232         (rb_shell_player_sync_buttons),
12233         (rb_shell_player_selection_changed_cb): watch for the
12234         "selection-changed" signal, so that the Song Properties get enabled.
12235         Closes bug 323694.
12237 2005-12-10  James Livingston  <jrl@ids.org.au>
12239         * data/rhythmbox.schemas: fix the gconf schema
12241 2005-12-10  James Livingston  <jrl@ids.org.au>
12243         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
12244         the decoded-pad callback with gstreamer 0.8, it causes problems.
12246 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12248         Remove more junk from RBEntryView. Closes bug 323640.
12250         * widgets/rb-entry-view.{c,h}:
12251         Remove unused private structure members, replace 'playing' boolean
12252         with an enum (so we know if we're paused too), and store a pointer to
12253         the RBShellPlayer too.  
12254         (rb_entry_view_class_init), (rb_entry_view_set_property),
12255         (rb_entry_view_get_property):
12256         Remove 'entry-selected' and 'changed' signals and
12257         'playing-entry' property, add 'selection-changed' signal and
12258         'shell-player' and 'playing-state' properties.
12259         (rb_entry_view_new): Take the shell player object reference
12260         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
12261         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
12262         No longer needed, shell player is the place to get this information.
12263         (rb_entry_view_busy), (rb_entry_view_get_duration),
12264         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
12265         (rb_entry_view_get_next_from_entry),
12266         (rb_entry_view_get_previous_from_entry),
12267         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
12268         (rb_entry_view_get_num_entries):
12269         Removed, callers should go to the query model directly.
12270         (rb_entry_view_playing_song_changed): Update active query model, emit
12271         row changed signals to update pixbufs, and scroll to the playing song
12272         when the playing song changes, based on a signal from the shell
12273         player.
12274         (queue_changed_sig), (rb_entry_view_row_changed_cb),
12275         (emit_entry_changed): Evil, removed.
12276         (rb_entry_view_selection_changed_cb): Remove old signals, add new
12277         selection-changed signal.
12278         (rb_entry_view_select_none), (rb_entry_view_select_entry):
12279         Remove selection lock.  It didn't work anyway.
12280         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
12281         (rb_entry_view_emit_row_changed): Simple helper function to emit
12282         row-changed signals.
12284         * widgets/Makefile.am: Entry view needs headers from the shell/
12285         directory.
12286         * widgets/rb-song-info.{c,h}: Use the query model for everything except
12288         scrolling the entry view to show the entry being displayed.
12289         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
12290         'source' property so we can watch for query model changes.
12291         (rb_song_info_finalize): Unref objects, disconnect signal handlers
12292         (rb_song_info_set_property): Watch for query model changes, don't
12293         watch for entry view changes.
12294         (rb_song_info_new): Take source as a parameter, use the source's entry
12295         view unless one was specifically supplied.
12296         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
12297         Use query model rather than entry view to move between songs.
12298         (rb_song_info_update_buttons): Use query model.
12299         (rb_song_info_query_model_changed_cb): Handle query model changes.
12301         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12302         Only one copy of the code to enable/disable the CD burning action
12303         (rb_playlist_manager_playlist_entries_changed):
12304         Use the query model to get the number of entries, not the entry view.
12306         * shell/rb-play-order-random-by-age-and-rating.c,
12307         shell/rb-play-order-random-by-age.c,
12308         shell/rb-play-order-random-by-rating.c,
12309         shell/rb-play-order-random-equal-weights.c:
12310         Use G_DEFINE_TYPE
12312         * shell/rb-shell-player.{c,h}:
12313         Remove a few unused entries from the structure.
12314         (rb_shell_player_set_property):
12315         Don't use the 'changed' signal on the entry view (it's evil)
12316         (rb_shell_player_have_first): No longer needed
12317         (rb_shell_player_play): Just tell the entry view it's playing
12318         (rb_shell_player_playpause): Tell the entry view it's paused
12319         when pausing.
12320         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12321         (rb_shell_player_property_row_activated_cb):
12322         Get the entry to play using the query model, not the entry view.
12323         (rb_shell_player_sync_buttons): Update entry view state while we're
12324         here.
12325         (rb_shell_player_set_playing_source_internal): Update entry view state
12326         (rb_shell_player_get_playing): Ask the entry view, not the player.
12327         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12328         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12329         the window title and tray icon tooltip.
12330         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12332         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12333         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12334         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12335         view constructor, pass the source in to the song info widget
12336         constructor.
12338         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12339         Use 'selection-changed' instead of 'changed', since that's what the
12340         clipboard cares about.
12341         (rb_shell_clipboard_set_source): Don't die if source == NULL
12343 2005-12-10  James Livingston  <jrl@ids.org.au>
12345         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12346         * sources/rb-playlist-source-recorder.c:
12347         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12348         stuff not use the deprecated API when compiled against 2.13
12350 2005-12-10  James Livingston  <jrl@ids.org.au>
12352         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12354         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12355         problem where the genre tag was getting set to the artist. Closes bug
12356         323642.
12358 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12360         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12361         Return NULL if can't get first iter.
12363         Fixes #323663
12365 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12367         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12368         updated rb_station_properties_dialog_new API.
12369         (rb_iradio_source_add_from_playlist): New public function.
12370         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12372         * shell/rb-shell.c (new_station_location_added): Handle
12373         iradio location added signal.
12374         (rb_shell_cmd_new_station): Use new iradio station dialog.
12376         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12377         (rb_station_properties_dialog_new): Don't squeeze new
12378         station functionality into this class.
12379         (rb_station_properties_dialog_response_cb): ditto.
12380         (rb_station_properties_dialog_update_title): Make
12381         consistent with other properties dialogs.
12382         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12384         * iradio/rb-new-station-dialog.[ch]: 
12385         * iradio/Makefile.am: Add new station dialog.
12387         * data/glade/station-new.glade: New file based on
12388         new podcast feed dialog.
12389         * data/glade/station-properties.glade: Updated to
12390         be consistent with song properties dialog.
12392         Fixes #323306.
12394 2005-12-10  James Livingston  <jrl@ids.org.au>
12396         patch by: Ståle Lyngaas <staale@lyngaas.com>
12398         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12399         submit songs longer than 30 minutes. Fixes bug 323639.
12401 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12403         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12404         async save function.
12405         (rb_shell_finalize): Remove save timeout sources.  Reorder
12406         steps a bit to make saving db and playlists a bit more
12407         failsafe in case something goes wrong later.
12408         (rb_shell_constructor): Keep track of save timeout source.
12409         (add_to_library_response_cb): Keep track of db save timeout source.
12411         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12412         g_atomic.
12413         (rb_playlist_manager_shutdown): New function to shutdown
12414         threads etc. before exit.
12415         (rb_playlist_manager_finalize): Moved handling outstanding
12416         threads stuff to shutdown since if there are outstanding threads
12417         they hold a ref and finalize is never called.
12418         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12419         of signal which may be required for sync save.
12420         (rb_playlist_manager_save_playlists_async): Renamed old
12421         save_playlists to save_playlists_async.  Use g_atomic.
12422         (rb_playlist_manager_save_playlists): New function to
12423         perform sync saves (symmetric with RhythmDB API).
12424         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12426         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12427         Style consistency anality.
12428         (rhythmdb_finalize): Remove save timeout source.
12429         (rhythmdb_set_property, rhythmdb_get_property) 
12430         (rhythmdb_process_events): More anality and keep track of
12431         save timeout source.
12432         (action_thread_main): No need to call g_thread_exit.
12433         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12434         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12435         (write_encoded_gvalue, read_encoded_property): La la la.
12437         Fixes #322940.
12439 2005-12-10  James Livingston  <jrl@ids.org.au>
12441         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12442         non-audio files.
12444 2005-12-10  James Livingston  <jrl@ids.org.au>
12446         * Makefile.am:
12447         * configure.ac: remove the rpm spec files, so that automake works.
12448         oops
12450         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12451         locking issue
12453 2005-12-09  James Livingston  <jrl@ids.org.au>
12455         * debian/: try to get cvs to actually remove the files
12457 2005-12-09  James Livingston  <jrl@ids.org.au>
12459         * rhythmbox.spec.in:
12460         * debian/: remove the distro package stuff, they are *really* old, and
12461         downstream manage it anyway.
12463 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12465         Rework play orders to work off query models rather than 
12466         entry views, and track the playing entry themselves rather
12467         than relying on the entry view to do it.  This makes the entry
12468         view mostly just a widget. Closes bug 323612.
12470         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12471         Use query model rather than entry view to get the number
12472         of entries in playlists.
12474         * rhythmdb/rhythmdb-query-model.{c.h}
12475         (rhythmdb_query_model_tree_path_to_entry),
12476         (rhythmdb_query_model_iter_to_entry),
12477         (rhythmdb_query_model_get_next_from_entry),
12478         (rhythmdb_query_model_get_previous_from_entry):
12479         New utility functions for iterating through query models.
12480         (rhythmdb_query_model_compute_status_normal):
12481         Have one copy of this code, not four.
12483         * shell/rb-play-order.{c,h}:
12484         Add signals for when next/previous availability changes, and
12485         when the playing entry is removed, and add a property for
12486         the current playing entry.  Add gtkdoc comments too.
12487         (rb_play_order_class_init): Add new property and signals.
12488         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12489         (rb_play_orer_query_model_changed_cb),
12490         (rb_play_order_query_model_changed): 
12491         Use query model rather than entry view.
12492         (rb_play_order_set_property), (rb_play_order_get_property):
12493         Handle new playing-entry property.  Call playing_entry_changed virtual
12494         method so subclasses can do any processing required.
12495         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12496         (rb_play_order_set_playing_entry):
12497         Just use the playing-entry property.
12498         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12499         Utility methods for subclasses.
12500         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12501         Update next/previous availability, check if the playing entry
12502         was removed.
12503         (default_playing_entry_removed):
12504         Keep the current behaviour of just stopping playback when the 
12505         playing entry is deleted.
12506         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12507         these for subclasses that don't have go_next/go_previous, but do
12508         have get_next/get_previous.
12509         (rb_play_order_update_have_next_previous): Emit signal if the
12510         availability of next/previous entries has changed.
12512         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12513         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12514         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12515         methods.
12516         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12517         on the last song in the shuffled order, go back to the start. This
12518         means if you press 'play' again you'll get the whole order again, not
12519         just one song.
12521         * shell/rb-shell-player.c:
12522         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12523         play order rather than the entry view.
12524         (rb_shell_player_set_property): Update the play order when the
12525         selected source changes and we aren't playing anything.
12526         (rb_shell_player_sync_play_order): Copy the playing entry across to
12527         the new play order so playback continues from the same song, and watch
12528         for updates to have_next/have_previous.
12529         (rb_shell_player_play_order_update_cb): Enable/disable the
12530         next/previous actions when next/previous entry availability changes.
12531         (rb_shell_player_jump_to_current): Just use the play order's idea of
12532         what's playing, not the entry view's; if not playing anything, clear
12533         the selection, so when a playlist ends and you hit play again, it'll
12534         start at the start rather than the end.
12535         (rb_shell_player_do_previous): restructure a bit.
12536         (rb_shell_player_do_next): restructure, jump to new playing entry in
12537         an idle handler instead of directly.
12538         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12539         song if there is one.
12540         (rb_shell_player_playpause): Jump to playing song, don't update the
12541         play order if we got the song from the selection.
12542         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12543         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12544         looks after next/previous actions now.  Don't break if called while
12545         there is no selected source.
12546         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12547         (rb_shell_player_set_playing_source_internal),
12548         (rb_shell_player_error): No need to track the attempted playing entry
12549         any more, since the play order does that.
12551         * shell/rb-shell.c:
12552         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12553         rb_shell_player_get_playing_entry rather than going through the entry
12554         view.
12556         * shell/rb-statusbar.c (rb_statusbar_set_property),
12557         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12558         than the entry view for status bar text changes.
12559         (rb_statusbar_sync_status): Ask the query model directly
12561         * sources/rb-source.{c}: Add query model property.
12562         (default_get_status): Get status text from query model, should be
12563         suitable for most sources.
12564         (rb_source_set_property): Listen for changes to the query model 
12565         to update the status text.
12566         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12567         (idle_emit_status_changed): Emit status-changed signals when query
12568         model changes. 
12570         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12571         (impl_get_status): Not needed, RBSource does this now
12572         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12573         Update RBSource's query model reference.
12575         * sources/rb-playlist-source.c:
12576         Remove query-model property, since RBSource has one now
12577         (impl_get_status): Not needed, RBSource does this now
12578         (rb_playlist_source_row_deleted): Use query model iterator helper
12579         function.
12580         (rb_playlist_source_set_query_model): Update RBSource's query model
12581         reference too.
12583         * sources/rb-iradio-source.c:
12584         (impl_get_status): Ask the query model directly.
12585         (rb_iradio_source_do_query): Update RBSource's query model reference
12586         when we create a new query.
12588         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12589         Use query model rather than entry view.
12591         * widgets/rb-entry-view.{c,h}: 
12592         Remove playing_entry_deleted signal (now in play order).
12593         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12594          as RhythmDBQueryModel has equivalent helper functions.
12595         (rb_entry_view_*): Use query model helpers instead of the above two
12596         functions.
12598 2005-12-09  James Livingston  <jrl@ids.org.au>
12600         * configure.ac:
12601         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12602         (rb_recorder_enabled):
12603         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12604         * sources/rb-playlist-source-recorder.c:
12605         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12606         whether libnautilusburn has the _drive_unref function, and if so use
12607         it. Stops it complaining about deprecated API.
12609 2005-12-09  James Livingston  <jrl@ids.org.au>
12611         * configure.ac: drop the minimum gstreamer version back down, it
12612         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12614 2005-12-09  James Livingston  <jrl@ids.org.au>
12616         * widgets/rb-song-info.c: (rb_song_info_class_init),
12617         (rb_song_info_show), (rb_song_info_constructor),
12618         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12619         (rb_song_info_forward_clicked_cb): save metadata changes when the
12620         Next/Previous buttons are pressed (closes bug 320952). use
12621         G_DEFINE_TYPE.
12623 2005-12-09  James Livingston  <jrl@ids.org.au>
12625         Patch by: <jonathan@kaolin.hn.org>
12627         * sources/rb-iradio-source.c:
12628         (stations_view_drag_data_received_cb):
12629         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12630         of urls. Fixes bug 323610.
12632 2005-12-09  James Livingston  <jrl@ids.org.au>
12634          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12635          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12637         * configure.ac:
12638         * metadata/rb-metadata-gst.c:
12639         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12640         (rb_player_construct), (rb_player_new):
12641         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12642         (rb_recorder_gst_signal_error), (pipe_message),
12643         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12644         (rb_recorder_new):
12645         * shell/main.c: (main):
12646         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12647         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12649 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12651         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12653         * shell/rb-playlist-manager.c:
12654           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12655           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12656           (rb_playlist_manager_set_automatic_playlist),
12657           (rb_playlist_manager_cmd_new_automatic_playlist),
12658           (rb_playlist_manager_cmd_edit_automatic_playlist):
12659            Use new playlist subclasses.
12660           (rb_playlist_manager_save_playlists): Only read the dirty flag
12661            for local playlists, minor pointless reformatting
12663         * sources/Makefile.am: add new files
12665         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12666           split lots of stuff out into two
12667           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12668           make RBPlaylistSource abstract, add virtual methods for showing a
12669           popup for the entry view and saving the playlist to XML.
12670           Other stuff is subclass-specific, or already virtual in RBSource.
12672         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12673           in one place, since they're used across three source files now
12675         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12676           Use new static playlist class
12678         * sources/rb-ipod-source.c: (add_rb_playlist):
12679           Use new static playlist class
12681         * sources/rb-static-playlist-source.{c,h},
12682         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12683         files.
12685         * po/POTFILES.in: add new files
12687 2005-12-07  James Livingston  <jrl@ids.org.au>
12689         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12690         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12691         metadata loads not attempt to write changes to disk.
12693 2005-12-07  James Livingston  <jrl@ids.org.au>
12695         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12697         * data/glade/song-info-multiple.glade:
12698         * widgets/rb-song-info.c: (rb_song_info_constructor),
12699         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12700         multiple songs at once.
12702 2005-12-06  James Livingston  <jrl@ids.org.au>
12704         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12705         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12707 2005-12-06  James Livingston  <jrl@ids.org.au>
12709         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12710         names rather than adding a horizontal scroll bar.
12712 2005-12-06  James Livingston  <jrl@ids.org.au>
12714         * rhythmdb/rhythmdb-query-model.c:
12715         (rhythmdb_query_model_update_limited_entries),
12716         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12717         messages
12719         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12720         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12721         always hide rather than remove DB entries, which will make RB not lose
12722         information when tag editing happens or people move files to trash and
12723         then change their mind. Also fix some races where the monitoring code
12724         would notice the temporary files generated by saving metadata.
12726 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12728         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12729         Hide internals and add tooltips.
12730         (rb_song_display_box_size_allocate): Hide internals.
12731         (sanitize_string, info_url): Copied from rb-header.
12732         (rb_song_display_box_sync): New public function.
12734         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12735         (rb_header_init): Use a separate row for the seek bar.
12736         (rb_header_finalize): Don't unref widgets.
12737         (rb_header_sync): Use rb_song_display_box_sync.
12738         (rb_header_set_urldata)
12739         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12740         (rb_header_set_show_position_slider): Set visibility of seek bar.
12741         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12742         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12744         * shell/rb-statusbar.c (rb_statusbar_init)
12745         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12747         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12748         (rb_shell_constructor): Remove hseparator.  Monitor
12749         toolbar visibility settings.  Add toolbar.  Add
12750         volume button to toolbar.  Add tooltips for volume button.
12751         (rb_shell_view_toolbar_changed_cb) 
12752         (rb_shell_sync_toolbar_visibility)
12753         (toolbar_visibility_changed_cb): Set visibility of
12754         toolbar.
12755         (rb_shell_sync_smalldisplay): Set the toolbar style to
12756         icons only when in small display mode.
12757         (rb_shell_volume_widget_changed_cb): Save volume setting.
12759         * shell/rb-shell-player.c (rb_shell_player_constructor):
12760         Remove pause and stop actions.  Make play action "important"
12761         so that text is visible in horizontal toolbar position.
12762         Remove control buttons.
12763         (rb_shell_player_init) 
12764         (rb_shell_player_sync_song_position_slider_visibility):
12765         Set visbibility of seek bar.
12766         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12767         Make play action a toggle.
12768         (rb_shell_player_sync_volume): Volume control moved
12769         to player.
12770         (gconf_song_position_slider_visibility_changed):
12771         Set visbibility of seek bar.
12772         (rb_shell_player_sync_buttons):
12773         Set sensitivity of actions instead of buttons.
12774         (rb_shell_player_playing_changed_cb): Add callback
12775         for player notify::playing changes.
12777         * lib/rb-preferences.h: Add hide toolbar and seek
12778         bar key names.
12780         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12781         seek bar menu items.  Remove pause and stop actions
12782         from the control menu.  Add a toolbar.
12784         * data/rhythmbox.schemas: Add toolbar_hidden
12785         song_position_slider_hidden keys.
12787         Patch by: James Livingston  <jrl@ids.org.au>
12788                   William Jon McCann  <mccann@jhu.edu>
12789         Fixes #316238.
12791 2005-12-05  James Livingston  <jrl@ids.org.au>
12793         * data/glade/library-prefs.glade:
12794         * data/rhythmbox.schemas:
12795         * lib/rb-preferences.h:
12796         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12797         (rhythmdb_sync_library_location):
12798         * sources/rb-library-source.c: (rb_library_source_class_init),
12799         (rb_library_source_finalize), (rb_library_source_constructor),
12800         (impl_get_config_widget), (rb_library_source_preferences_sync),
12801         (rb_library_source_watch_toggled_cb): allow people to disable library
12802         monitoring, because with nothing set the file chooser button selects
12803         the Home folder (and hence that will get monitored).
12805 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12807         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12808         attempt to fix problem with RSS parsing showing invalid feed types.
12809         Fixes bug 323153
12811 2005-12-04  James Livingston  <jrl@ids.org.au>
12813         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12814         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12815         importing a remote directory not block the UI.
12817 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12819         * data/glade/podcast-feed-properties.glade:
12820         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12822 2005-12-04  James Livingston  <jrl@ids.org.au>
12824         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12826         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12827         to && to fix a mistake in the earlier podcast patch.
12829 2005-12-03  James Livingston  <jrl@ids.org.au>
12831         * data/glade/podcast-new.glade:
12832         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12833         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12835         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12836         GValue, which stops occasional errors.
12838         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12839         compile issue.
12841 2005-12-03  James Livingston  <jrl@ids.org.au>
12843         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12845         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12846         crasher with some podcasts feeds.
12848 2005-12-03  James Livingston  <jrl@ids.org.au>
12850         * data/rhythmbox.schemas: fix the gconf schema
12852 2005-12-03  James Livingston  <jrl@ids.org.au>
12854         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12855         add a selection timeout to the sourcelist. This lets you hold a track
12856         over the playlist source, and then have the view switch so you can
12857         insert the track in the middle of the playlist. Closes bug 323044.
12859         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12860         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12861         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12862         (rb_tree_dnd_add_drag_dest_support):
12863         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12864         timeout.
12866         * sources/rb-sourcelist-model.c:
12867         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12868         the source list.
12870 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12872         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12873         links, so that the text doesn't touch the button
12875 2005-12-02  James Livingston  <jrl@ids.org.au>
12877         Add full support for gnome-vfs remote files. Closes bug 140355.
12879         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12880         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12881         for authentication information from the user doesn't block the UI.
12883         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12885         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12886         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12887         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12888         (rhythmdb_process_stat_event), (emit_load_error_idle),
12889         (rhythmdb_process_metadata_load),
12890         (rhythmdb_process_queued_entry_set_event),
12891         (rhythmdb_process_file_created_or_modified),
12892         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12893         (queue_stat_uri), (add_thread_main),
12894         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12895         (rhythmdb_load), (rhythmdb_save_thread_main),
12896         (threadsafe_entry_set), (rhythmdb_query_internal),
12897         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12898         (rhythmdb_do_full_query_internal),
12899         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12900         (rhythmdb_volume_unmounted_cb),
12901         (rhythmdb_check_changed_file): trivial changes to support the
12902         asynchronous stats.
12904         * shell/main.c: (main): activate the authentication manager.
12906         * shell/rb-playlist-manager.c:
12907         (rb_playlist_manager_cmd_load_playlist),
12908         (rb_playlist_manager_cmd_save_playlist):
12909         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12910         (rb_shell_cmd_add_file_to_library):
12911         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12912         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12913         remote files.
12915 2005-12-02  James Livingston  <jrl@ids.org.au>
12917         * shell/rb-playlist-manager.c: makes playlist menu items use the
12918         elipses correctly. Fixes bug 322283.
12920 2005-12-02  James Livingston  <jrl@ids.org.au>
12922         * shell/rb-playlist-manager.c:
12923         (rb_playlist_manager_load_playlists): fix silly mistake
12925 2005-12-02  James Livingston  <jrl@ids.org.au>
12927         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12928         print out metadata-write unless --debug was passed.
12930         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12931         * shell/rb-playlist-manager.c:
12932         (rb_playlist_manager_load_playlists): block writes to disk if they are
12933         still being loaded.
12935 2005-12-02  James Livingston  <jrl@ids.org.au>
12937         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12938         ctrl-T, because Ctrl-D is used by "small mode"
12940 2005-12-02  James Livingston  <jrl@ids.org.au>
12942         * shell/rb-shell-preferences.c:
12943         (rb_shell_preferences_append_view_page):
12944         * sources/rb-library-source.c: (impl_get_config_widget):
12945         * sources/rb-podcast-source.c: (impl_get_config_widget):
12946         * sources/rb-source.c: (rb_source_get_config_widget):
12947         * sources/rb-source.h: Make the preference actually work.
12949         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12950         if Rhythmbox is being run for the first time.
12952 2005-12-02  James Livingston  <jrl@ids.org.au>
12954         Add support for Rhythmbox to watch your library, and automatically add
12955         new tracks. Fixes bug 160159.
12957         * data/glade/library-prefs.glade: add "library location" preference
12958         * data/rhythmbox.schemas: add gconf key for the library location
12960         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12961         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12962         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12963         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12964         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12965         (rhythmdb_load_thread_main), (rhythmdb_load),
12966         (monitor_subdirectory), (monitor_library_directory),
12967         (monitor_entry_file), (rhythmdb_sync_library_location),
12968         (library_location_changed_cb), (rhythmdb_check_changed_file),
12969         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12970         specifiec in the gconf key for new additions. Also fix monitoring code
12971         so that it works properly, and notices deletions.
12973         * lib/rb-preferences.h:
12974         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12975         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12976         * shell/rb-audioscrobbler.h:
12977         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12978         (rb_shell_preferences_append_view_page),
12979         (rb_shell_preferences_new):
12980         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12981         it's preferences pane, so that we don't need #ifdef's through
12982         rb-shell-preferences.
12984         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12985         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12986         "preferences" property, so that sources can acccess it. This is needed
12987         because the library location pref needs to take effect when the window
12988         is closed.
12990         * sources/rb-library-source.c:
12991         (rb_library_source_library_location_changed),
12992         (rb_library_source_dispose), (rb_library_source_finalize),
12993         (rb_library_source_constructor), (impl_get_config_widget),
12994         (rb_library_source_preferences_sync),
12995         (rb_library_source_process_library_location_change),
12996         (rb_library_source_prefs_update),
12997         (rb_library_source_process_library_handle_selection),
12998         (rb_library_source_library_location_cb): set up and control the
12999         "library location" preference.
13001         * sources/rb-audiocd-source.c:(rb_source_class_init):
13002         * sources/rb-source.c: (rb_source_class_init): remove some pointless
13003         code.
13005 2005-12-01  William Jon McCann  <mccann@jhu.edu>
13007         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
13008         (rb_feed_podcast_properties_dialog_update_title): 
13009         * data/glade/podcast-feed-properties.glade:
13010         Make the feed properties dialog consistent with the podcast
13011         properties dialog.
13013 2005-12-01  William Jon McCann  <mccann@jhu.edu>
13015         * metadata/.cvsignore: 
13016         * po/.cvsignore: 
13017         * podcast/.cvsignore: Updated.
13019         * shell/main.c (main): Support DBus 0.6 flags.
13021 2005-11-30  Bastien Nocera  <hadess@hadess.net>
13023         * data/ui/rhythmbox-ui.xml:
13024         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
13025         (rhythmbd_entry_move_to_trash_set_error),
13026         (rhythmdb_entry_move_to_trash):
13027         * rhythmdb/rhythmdb.h:
13028         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
13029         (rb_shell_clipboard_cmd_delete),
13030         (rb_shell_clipboard_cmd_move_to_trash):
13031         * sources/rb-library-source.c: (rb_library_source_class_init),
13032         (impl_delete), (impl_move_to_trash):
13033         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13034         (impl_delete), (impl_move_to_trash):
13035         * sources/rb-removable-media-source.c:
13036         (rb_removable_media_source_class_init):
13037         * sources/rb-source.c: (rb_source_class_init),
13038         (rb_source_can_move_to_trash), (rb_source_delete),
13039         (rb_source_move_to_trash):
13040         * sources/rb-source.h:
13041         Add move_to_trash member for the sources, implement move to trash for
13042         the library and playlists
13043         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
13044         local files to the trash, and deleting them from the database
13045         (Closes: #315389)
13047 2005-11-30  William Jon McCann  <mccann@jhu.edu>
13049         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
13050         (rb_tray_icon_init, rb_tray_icon_finalize): 
13051         * shell/rb-statusbar.c (rb_statusbar_class_init) 
13052         (rb_statusbar_init, rb_statusbar_finalize): 
13053         * shell/rb-source-header.c (rb_source_header_class_init) 
13054         (rb_source_header_init, rb_source_header_finalize): 
13055         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
13056         (rb_shell_finalize): 
13057         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
13058         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
13059         * shell/rb-shell-player.c (rb_shell_player_class_init) 
13060         (rb_shell_player_init, rb_shell_player_finalize): 
13061         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
13062         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
13063         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
13064         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
13065         * shell/rb-play-order.c (rb_play_order_class_init) 
13066         (rb_play_order_init, rb_play_order_finalize): 
13067         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
13068         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
13069         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
13070         (rb_random_play_order_init, rb_random_play_order_finalize): 
13071         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
13072         (rb_history_finalize): 
13073         * shell/rb-commander.c (rb_commander_class_init) 
13074         (rb_commander_init, rb_commander_finalize): 
13075         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
13076         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
13077         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
13078         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
13079         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
13080         (rb_podcast_properties_dialog_init) 
13081         (rb_podcast_properties_dialog_finalize): 
13082         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
13083         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
13084         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
13085         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
13086         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
13087         (rb_feed_podcast_properties_dialog_init) 
13088         (rb_feed_podcast_properties_dialog_finalize): 
13089         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
13090         (rb_metadata_init, rb_metadata_finalize): 
13091         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
13092         (rb_station_properties_dialog_init) 
13093         (rb_station_properties_dialog_finalize): 
13094         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
13095         (rb_daap_share_init, rb_daap_share_dispose): 
13097         Use g_type_class_add_private in all classes. Closes bug 313688.
13098         
13099 2005-11-30  James Livingston  <jrl@ids.org.au>
13101         patch by: William Jon McCann <mccann@jhu.edu> to use
13102         g_type_class_add_private in all classes. Closes bug 313688.
13104         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
13105         (rb_thread_finalize):
13106         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
13107         (rb_player_finalize):
13108         * rhythmdb/rhythmdb-property-model.c:
13109         (rhythmdb_property_model_class_init),
13110         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
13111         * rhythmdb/rhythmdb-query-model.c:
13112         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
13113         (rhythmdb_query_model_finalize):
13114         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
13115         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
13116         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
13117         (rhythmdb_finalize):
13118         * sources/rb-daap-source.c: (rb_daap_source_class_init),
13119         (rb_daap_source_init), (rb_daap_source_dispose):
13120         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13121         (rb_iradio_source_init), (rb_iradio_source_finalize):
13122         * sources/rb-library-source.c: (rb_library_source_class_init),
13123         (rb_library_source_init), (rb_library_source_finalize):
13124         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13125         (rb_playlist_source_init), (rb_playlist_source_dispose):
13126         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13127         (rb_podcast_source_init), (rb_podcast_source_finalize):
13128         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13129         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
13130         * sources/rb-sourcelist-model.h:
13131         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13132         (rb_sourcelist_init), (rb_sourcelist_finalize):
13133         * sources/rb-sourcelist.h:
13134         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
13135         * widgets/rb-cell-renderer-rating.c:
13136         (rb_cell_renderer_rating_init),
13137         (rb_cell_renderer_rating_class_init),
13138         (rb_cell_renderer_rating_finalize):
13139         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
13140         (rb_druid_finalize):
13141         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13142         (rb_entry_view_init), (rb_entry_view_finalize):
13143         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
13144         (rb_header_finalize):
13145         * widgets/rb-load-failure-dialog.c:
13146         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
13147         (rb_load_failure_dialog_finalize):
13148         * widgets/rb-property-view.c: (rb_property_view_class_init),
13149         (rb_property_view_init), (rb_property_view_finalize):
13150         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
13151         (rb_rating_finalize):
13152         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13153         (rb_search_entry_init), (rb_search_entry_finalize):
13154         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13155         (rb_simple_view_init), (rb_simple_view_finalize):
13156         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
13157         (rb_song_display_box_init), (rb_song_display_box_finalize):
13158         * widgets/rb-song-info.c: (rb_song_info_class_init),
13159         (rb_song_info_init), (rb_song_info_finalize):
13160         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
13161         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
13163 2005-11-30  James Livingston  <jrl@ids.org.au>
13165         * iradio/rb-station-properties-dialog.c:
13166         (rb_station_properties_dialog_init),
13167         (rb_station_properties_dialog_new):
13168         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
13169         * lib/rb-glade-helpers.h:
13170         * podcast/rb-feed-podcast-properties-dialog.c:
13171         (rb_feed_podcast_properties_dialog_init),
13172         (rb_feed_podcast_properties_dialog_new):
13173         * podcast/rb-podcast-properties-dialog.c:
13174         (rb_podcast_properties_dialog_init),
13175         (rb_podcast_properties_dialog_new):
13176         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
13177         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13178         * sources/rb-library-source.c: (impl_get_config_widget):
13179         * sources/rb-playlist-source-recorder.c:
13180         (rb_playlist_source_recorder_init):
13181         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13182         (rb_song_info_constructor): create a single rb_glade_boldify_label()
13183         in rb-glade-helpers, rather than having eight implementation
13184         throughout the code.
13186 2005-11-30  James Livingston  <jrl@ids.org.au>
13188         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
13189         * lib/rb-util.h:
13190         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13191         move the duration->string function into rb-utils, as it gets used in a
13192         few places.
13194         patch by: William Jon McCann <mccann@jhu.edu>
13196         * data/glade/podcast-properties.glade:
13197         * podcast/rb-podcast-properties-dialog.c:
13198         (rb_podcast_properties_dialog_init),
13199         (rb_podcast_properties_dialog_update),
13200         (rb_podcast_properties_dialog_update_title),
13201         (rb_podcast_properties_dialog_update_feed),
13202         (rb_podcast_properties_dialog_update_duration),
13203         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
13204         info dialog look more like the song info dialog. Use the same "Feed"
13205         value that is displayed in the treeview (ie. the album field), displays
13206         the duration, uses units in the bitrate field, and sort the fields in
13207         the same order.
13209 2005-11-29  James Livingston  <jrl@ids.org.au>
13211         * rhythmdb/rhythmdb-marshal.list:
13212         * rhythmdb/rhythmdb.h:
13213         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
13214         (emit_load_error_idle), (rhythmdb_process_metadata_load),
13215         (entry_to_rb_metadata), (emit_save_error_idle),
13216         (action_thread_main): emit error signal when metadata write fails.
13218         * shell/rb-shell.c: (rb_shell_constructor),
13219         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
13220         "metadata save" error and display it to the user.
13222 2005-11-29  James Livingston  <jrl@ids.org.au>
13224         * data/ui/rhythmbox-ui.xml:
13225         * sources/rb-podcast-source.c:
13226         (rb_podcast_source_songs_show_popup_cb),
13227         (rb_podcast_source_cmd_download_post),
13228         (rb_podcast_source_cmd_cancel_download): split download and cancel
13229         download commands. Replace usage of "Post" with "Esisode". Fixes bug
13230         321653.
13232 2005-11-18  William Jon McCann  <mccann@jhu.edu>
13234         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
13235         title on alert dialogs per the HIG.
13237         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
13238         the term Burn.
13239         (free_song_list): Routine to free song list.
13240         (rb_playlist_source_recorder_finalize): Use free_song_list.
13241         (rb_playlist_source_recorder_add_from_model): Return FALSE
13242         if unable to add all songs.  Check that duration of all
13243         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
13244         Fixes #321753.
13246         * sources/rb-playlist-source-recorder.c (check_media_length)
13247         (rb_playlist_source_recorder_start): Only check the duration
13248         and current media if the playlist length is longer than a
13249         standard CD (74 min).  Otherwise, just let the Recorder do the
13250         check.
13251         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
13252         drive at init.
13253         (rb_recorder_set_device): Don't leak drives.
13254         (rb_recorder_get_media_length): Use drive that was already set.
13255         (rb_recorder_burn): Let the recorder handle checking media type/size.
13256         Fixes bug 321754.
13258 2005-11-29  James Livingston  <jrl@ids.org.au>
13260         * rhythmdb/rhythmdb-query-model.c:
13261         (rhythmdb_query_model_set_sort_order):
13262         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
13263         emitting the tree-model "resorted" signal.
13265         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13266         (rb_entry_view_finalize), (rb_entry_view_set_property),
13267         (rb_entry_view_constructor), (rb_entry_view_resort_model):
13268         * widgets/rb-entry-view.h: add a function to resort the entry view,
13269         using the above function.
13271         * sources/rb-iradio-source.c:
13272         (rb_iradio_source_songs_view_sort_order_changed_cb):
13273         * sources/rb-library-source.c: (rb_library_source_finalize),
13274         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
13275         * sources/rb-playlist-source.c:
13276         (rb_playlist_source_songs_sort_order_changed_cb):
13277         * sources/rb-podcast-source.c:
13278         (rb_podcast_source_posts_view_sort_order_changed_cb),
13279         (rb_podcast_source_do_query): use the above function instead of
13280         re-creating the query model. This makes changing the sorting an order
13281         of magnitude faster, as it uses a single resorted signal rather than
13282         deleting and re-adding everything (which emits 2N signals). Closes bug
13283         315389.
13285 2005-11-29  James Livingston  <jrl@ids.org.au>
13287         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
13288         autosizing, which results in large speedups. Closes bug 312122.
13290         * po/ja.po: change the date format, so that it is a constant width
13292         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13293         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13294         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
13295         (rb_entry_view_constructor): make columns use fixed widths,
13296         disable column autosizing, and enable fixed-height mode.
13298         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
13299         (rb_entry_view_get_time_date_column_sample):
13300         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13301         and get the canonical date format for the locale.
13303 ============ Version 0.9.2
13305 2005-11-28  James Livingston  <jrl@ids.org.au>
13307         * configure.ac: bump version to 0.9.2
13308         * NEWS: update with changes for 0.9.2
13310 2005-11-28  James Livingston  <jrl@ids.org.au>
13312         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13314         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13315         Disable saving, renaming and delting for DAAP playlists.
13316         Fixes bug 322627.
13318 2005-11-28  James Livingston  <jrl@ids.org.au>
13320         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13321         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13322         prevent bug 322619.
13324         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13325         * sources/rb-removable-media-source.c:
13326         (rb_removable_media_source_class_init): fix ipod browser visibility
13327         problem.
13329 2005-11-28  James Livingston  <jrl@ids.org.au>
13331         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13332         Avahi 0.6 support actually work. Fixes bug 322519.
13334 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13336         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13337         avahi is specified in --with-mdns
13339 2005-11-27  James Livingston  <jrl@ids.org.au>
13341         patch by: Bastien Nocera <hadess@hadess.net>
13343         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13344         not the private one. Fixes bug 322485.
13346 2005-11-26  James Livingston  <jrl@ids.org.au>
13348         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13349         Avahi 0.6, as well as 0.5.
13351         * configure.ac:
13352         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13353         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13354         (add_service):
13356 2005-11-25  James Livingston  <jrl@ids.org.au>
13358         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13359         321926.
13361 2005-11-25  James Livingston  <jrl@ids.org.au>
13363         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13364         correct type for checking the date against 0. Stops a warning when
13365         saving metadata.
13367 2005-11-25  James Livingston  <jrl@ids.org.au>
13369         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13370         adjustment to be inside the element's limits. Without this songs that
13371         have large ReplayGain values will recieve no increase because they are
13372         outside the acceptable range, causing them to remain quiet.
13374 2005-11-25  James Livingston  <jrl@ids.org.au>
13376         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13377         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13378         * sources/rb-ipod-source.c:
13379         * sources/rb-source.h:
13380         * sources/rb-library-source.h:
13381         * sources/rb-library-source.c: (rb_library_source_class_init),
13382         (rb_library_source_constructor),
13383         (rb_library_source_has_first_added_column),
13384         (rb_library_source_has_drop_support):
13385         * sources/rb-removable-media-source.c:
13386         (rb_removable_media_source_class_init): Make library-derived sources
13387         not show the Date Added column, as it doesn't make sense. Fixes bug
13388         322269.
13389         Move some of the feature funcs from the ipod and audio cd sources up to
13390         the removable media source.
13392 2005-11-24  James Livingston  <jrl@ids.org.au>
13394         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13395         errors. oops.
13397 2005-11-24  James Livingston  <jrl@ids.org.au>
13399         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13400         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13401         (rb_iradio_source_constructor): Chain up dispose method and use
13402         G_DEFINE_TYPE
13404 2005-11-24  James Livingston  <jrl@ids.org.au>
13406         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13407         mistake in the last commit that can cause crashes.
13409 2005-11-24  James Livingston  <jrl@ids.org.au>
13411         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13412         instead of g_printerr.
13414         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13415         rb_debug instead of g_warning. The message happens every time for
13416         removable media/daap shares, so it's not unusual.
13418 2005-11-24  James Livingston  <jrl@ids.org.au>
13420         patch by: Tom Parker <palfrey@tevp.net>
13422         * configure.ac: fix libsoup test for enabling daap
13424 2005-11-23  James Livingston  <jrl@ids.org.au>
13426         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13427         (rb_query_creator_init), (rb_query_creator_constructor),
13428         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13429         empty row to queries with no criteria. Fixes bug 322078. use
13430         G_DEFINE_TYPE.
13432 2005-11-23  James Livingston  <jrl@ids.org.au>
13434         patch by:  <baptiste.millemathias@gmail.com>
13436         * help/C/quick-reference.xml: update the quick reference to have the
13437         correct key bindings.
13439 2005-11-22  James Livingston  <jrl@ids.org.au>
13441         * sources/rb-library-source.c: (genres_selection_reset_cb),
13442         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13443         reset the query when all browser selections are removed.
13445 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13447         * podcast/rb-podcast-manager.c:
13448         (rb_podcast_manager_db_entry_deleted_cb):
13449         Use a custom loop to remove podcast posts, rather than
13450         gtk_tree_model_foreach(), as deleting the entries within
13451         that loop causes the iterator to return the first entry
13452         twice.  Instead, we need to find the next entry before
13453         removing the current one. Fixes bug 321956.
13454         (rb_podcast_manager_entry_remove_cb): No longer needed.
13456 2005-11-22  James Livingston  <jrl@ids.org.au>
13458         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13459         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13460         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13462 2005-11-22  James Livingston  <jrl@ids.org.au>
13464         * sources/rb-podcast-source.c:
13465         (rb_podcast_source_post_date_cell_sort_func),
13466         (rb_podcast_source_post_status_cell_sort_func),
13467         (rb_podcast_source_post_feed_cell_sort_func):
13468         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13469         (rb_entry_view_album_sort_func),
13470         (rb_entry_view_double_ceiling_sort_func),
13471         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13472         the entry's location as a last resort when sorting, so the sort order
13473         is stable. This will stop entries moving around when two entries have
13474         the same sorting, and one of them gets played.
13476 2005-11-22  James Livingston  <jrl@ids.org.au>
13478         * daapsharing/rb-daap-connection.c:
13479         (rb_daap_connection_class_init), (rb_daap_connection_init),
13480         (connection_get_password), (build_message),
13481         (http_response_handler), (http_get), (handle_server_info),
13482         (handle_login), (handle_update), (handle_database_info),
13483         (handle_song_listing), (handle_playlists),
13484         (handle_playlist_entries), (rb_daap_connection_new),
13485         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13486         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13487         (rb_daap_connection_get_headers),
13488         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13489         (rb_daap_connection_set_property),
13490         (rb_daap_connection_get_property):
13491         * daapsharing/rb-daap-connection.h:
13492         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13493         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13494         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13495         of destroying the object when it is going to be used by a callback and
13496         fixes a double-free. Fixes bugs 321930 and 322007.
13498 2005-11-22  James Livingston  <jrl@ids.org.au>
13500         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13501         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13502         notification if there aren't any. Fixes bug 321968.
13504 2005-11-22  James Livingston  <jrl@ids.org.au>
13506         * rhythmdb/rhythmdb-property-model.c:
13507         (rhythmdb_property_model_set_property),
13508         (rhythmdb_property_model_finalize),
13509         (rhythmdb_property_model_compare),
13510         (rhythmdb_property_model_insert),
13511         (rhythmdb_property_model_delete_prop): Fix property model sorting
13512         where the display and sort keys are different. Fixes bug 321980.
13514 2005-11-22  James Livingston  <jrl@ids.org.au>
13516         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13517         when import as a file or passed on the command line, and load them as
13518         playlists.
13520 2005-11-22  James Livingston  <jrl@ids.org.au>
13522         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13524         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13525         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13526         a broken daap server. Fixes bug 321919.
13528 2005-11-22  James Livingston  <jrl@ids.org.au>
13530         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13531         drag-and-drop for both the episodes and feeds list.
13532         
13533         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13534         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13535         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13537         * widgets/rb-property-view.c: (rb_property_view_class_init),
13538         (rb_property_view_set_property), (rb_property_view_get_property),
13539         (rb_property_view_new), (rb_property_view_constructor):
13540         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13541         (rb_simple_view_new), (rb_simple_view_constructor):
13542         * widgets/rb-simple-view.h: add a "draggable" property to property
13543         views and set it to false for the feed list. Fixes bug 321284.
13545 2005-11-22  James Livingston  <jrl@ids.org.au>
13547         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13549         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13550         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13551         * sources/rb-ipod-source.c: (add_rb_playlist):
13552         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13553         (rb_playlist_source_set_property),
13554         (rb_playlist_source_get_property), (rb_playlist_source_new),
13555         (impl_receive_drag), (rb_playlist_source_add_location),
13556         (rb_playlist_source_new_from_xml):
13557         * sources/rb-playlist-source.h: give playlists and (optional)
13558         entry-type, and reject entries that don't match. Fixes bug 322006.
13560 2005-11-21  James Livingston  <jrl@ids.org.au>
13562         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13563         (rb_source_header_finalize): remove the weak references when the
13564         source header is finalised. Stops the callbacks being called after the
13565         object is destroyed.
13567 2005-11-21  James Livingston  <jrl@ids.org.au>
13569         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13570         --no-registration was passed. It causes warnings that make it
13571         impossible to run with --no-registration --g-fatal-warnings
13573 2005-11-21  James Livingston  <jrl@ids.org.au>
13575         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13576         of strings when they are still in use. Fixes bug 321547.
13578         (rb_daap_connection_destroy): fix memory leak
13580 2005-11-21  James Livingston  <jrl@ids.org.au>
13582         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13583         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13584         (rb_daap_mdns_resolve_cancel), (publish_cb),
13585         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13586         support.
13588 2005-11-21  James Livingston  <jrl@ids.org.au>
13590         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13591         sorting by genre
13593 2005-11-20  James Livingston  <jrl@ids.org.au>
13595         * podcast/rb-podcast-manager.c:
13596         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13597         that we don't leak thread structures. Fixes bug 321636, and probably
13598         321775.
13600 2005-11-20  James Livingston  <jrl@ids.org.au>
13602         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13603         (lookup_cd):
13604         * podcast/rb-podcast-manager.c: (start_job),
13605         (rb_podcast_manager_db_entry_deleted_cb),
13606         (rb_podcast_manager_entry_remove_cb):
13607         * podcast/rb-podcast-parse.c: (rb_insert_item),
13608         (rb_podcast_parse_load_feed):
13609         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13610         * shell/rb-removable-media-manager.c:
13611         (rb_removable_media_manager_append_media_source):
13612         * shell/rb-shell.c: (add_to_library_response_cb):
13613         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13614         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13615         * sources/rb-iradio-source.c:
13616         (stations_view_drag_data_received_cb):
13617         * sources/rb-library-source.c: (string_list_equal),
13618         (impl_get_extra_views), (impl_receive_drag):
13619         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13620         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13621         (impl_receive_drag):
13622         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13623         (rb_entry_view_append_column_custom), (harvest_entries):
13624         * widgets/rb-property-view.c:
13625         (rb_property_view_selection_changed_cb):
13626         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13627         switch from using g_list_append to g_list_prepend. This changes
13628         operations from O(n^2) to O(n), which in cases like deleting a lot of
13629         tracks can give huge improvements in speed. Closes bug 321696.
13631 2005-11-20  James Livingston  <jrl@ids.org.au>
13633         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13634         (rb_sourcelist_update_expander_visibility): fix indenting of child
13635         sources.
13637 2005-11-20  James Livingston  <jrl@ids.org.au>
13639         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13640         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13641         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13642         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13643         (add_service), (entry_group_cb): dynamically allocate memory, rather
13644         than using static variables.
13646         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13647         re-enable the daap share if the name hasn't changed.
13648         * shell/rb-shell-preferences.c:
13649         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13650         change it's name when the checkbox is disabled. Fixed bug 321748.
13652 2005-11-18  James Livingston  <jrl@ids.org.au>
13654         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13655         as hidden if it is on the current workspace.
13657 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13659         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13660         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13661         (rb_podcast_properties_dialog_parse_time): 
13662         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13663         (rb_feed_podcast_properties_dialog_parse_time):
13664         Rework the way the last mod time strings are created.  It was using
13665         thread unsafe functions, not creating value UTF, and not not checking
13666         the value of the result before modifying it.  This new method fixes
13667         these problems.
13669 2005-11-18  James Livingston  <jrl@ids.org.au>
13671         Don't reset the search box when viewing a different source, because it
13672         will change what is being played. Closes 321593.
13674         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13675         the search box
13677         * shell/rb-source-header.c: (rb_source_header_class_init),
13678         (rb_source_header_init), (rb_source_header_finalize): use
13679         G_DEFINE_TYPE.
13681         (rb_source_header_set_property),
13682         (rb_source_header_source_weak_destroy_cb),
13683         (rb_source_header_search_cb): store the search text when leaving a
13684         source and put it in the search box when viewing it again.
13686 2005-11-18  James Livingston  <jrl@ids.org.au>
13688         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13689         (save_entry):
13690         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13691         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13692         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13693         time stamp.
13695         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13696         last-seen as the timestamp of the last update of the feed. Don't
13697         re-add episodes that have been deleted. Closes 319759.
13699 2005-11-18  James Livingston  <jrl@ids.org.au>
13701         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13702         that don't have the day name at the start. Closes 321645.
13704 2005-11-18  James Livingston  <jrl@ids.org.au>
13706         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13707         (rb_podcast_manager_copy_post),
13708         (rb_podcast_manager_get_podcast_dir):
13709         * podcast/rb-podcast-manager.h:
13710         * sources/rb-podcast-source.c: (impl_get_config_widget),
13711         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13712         download location switching to / if the prefs were opened before
13713         downloading an episode. Closes 321611.
13715 2005-11-18  James Livingston  <jrl@ids.org.au>
13717         * data/glade/podcast-new.glade:
13718         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13719         (rb_new_podcast_dialog_set_property),
13720         (rb_new_podcast_dialog_get_property),
13721         (rb_new_podcast_dialog_response_cb),
13722         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13723         for entering new podcast urls in. Closes bug 321610.
13725 2005-11-18  James Livingston  <jrl@ids.org.au>
13727         * sources/rb-podcast-source.c: (construct_query_from_selection),
13728         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13729         without restarting RB. Closes bug 321612.
13731 2005-11-18  James Livingston  <jrl@ids.org.au>
13733         * widgets/rb-entry-view.c: (set_column_visibility),
13734         (rb_entry_view_sync_columns_visible): when changing visibility of one
13735         column, don't hide and re-show all the others. Makes a show/hide
13736         column operation a lot faster.
13738 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13740         Closes bug 321702.
13742         * iradio/rb-station-properties-dialog.c
13743          (rb_station_properties_dialog_update_bitrate):
13744         Mark the bitrate value as being kbps, using the same
13745         translatable format string as rb-song-info.c
13747         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13748          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13750         * shell/rb-shell-player.c (info_available_cb):
13751          Use RB_METADATA_FIELD_BITRATE to update the iradio
13752          station's bitrate value.
13754 2005-11-17  James Livingston  <jrl@ids.org.au>
13756         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13758         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13759         free a NULL date.
13761 2005-11-17  James Livingston  <jrl@ids.org.au>
13763         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13765         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13766         assertions. Lookup the icon size correctly.
13768 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13770         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13771         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13772         Fix build errors.
13774 2005-11-16  James Livingston  <jrl@ids.org.au>
13776         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13777         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13778         (rb_shell_preferences_sync_column_button): block the toggle signal of
13779         the column checkboxes while setting their initial state. This stops
13780         the visibility being re-set, which causes a lot of time being spent
13781         measuring the columns aagin when opening the prefs window.
13783         Use G_DEFINE_TYPE.
13785 2005-11-16  James Livingston  <jrl@ids.org.au>
13787         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13788         (rb_sourcelist_edit_source_name): don't assume that the editable
13789         source name is in the first column, because it isn't. Fixes bug
13790         320137.
13792 2005-11-16  James Livingston  <jrl@ids.org.au>
13794         * daapsharing/rb-daap-mdns.h:
13795         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13796         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13797         parts can know why operations failed. Avahi can report that the daemon
13798         was not running. Howl doesn't do this (yet).
13799         
13800         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13801         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13802         (browse_cb): don't display mdns errors to the user, if it wa because
13803         the daemon was not running.
13805 2005-11-16  James Livingston  <jrl@ids.org.au>
13807         * rhythmdb/rhythmdb-property-model.c:
13808         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13809         (rhythmdb_property_model_compare),
13810         (rhythmdb_property_model_insert),
13811         (rhythmdb_property_model_insert_prop),
13812         (rhythmdb_property_model_delete),
13813         (rhythmdb_property_model_delete_prop),
13814         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13815         copying the string and re-creating the sort key. Saves a little bit of
13816         memory and time.
13818         (rhythmdb_property_model_perform_sync),
13819         (rhythmdb_property_model_sync): perform the count sync in an idle
13820         callback, so that it doesn't have to be re-run once per value when
13821         loading.
13823 2005-11-16  James Livingston  <jrl@ids.org.au>
13825         * rhythmdb/rhythmdb-query-model.c:
13826         (rhythmdb_query_model_entry_deleted_cb),
13827         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13828         limited list. Stops problems if they are deleted, and then things on
13829         the main list are
13831 2005-11-16  James Livingston  <jrl@ids.org.au>
13833         * NEWS: update NEWS
13835         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13836         button's minimise-to-tray action
13838 2005-11-16  James Livingston  <jrl@ids.org.au>
13840         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13841         leak. Disable adding newly created files for now, because it doesn't
13842         work properly.
13844         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13845         (rb_sourcelist_model_finalize):
13846         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13847         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13849 2005-11-16  James Livingston  <jrl@ids.org.au>
13851         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13852         problem where a GError* wasn't being set to NULL. Actually check the
13853         result.
13855 2005-11-16  James Livingston  <jrl@ids.org.au>
13857         * doc/reference/tmpl/rb-entry-view.sgml:
13858         * doc/reference/tmpl/rhythmbox-unused.sgml:
13859         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13860         * doc/reference/tmpl/rhythmdb.sgml:
13861         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13862         docs, including the patch that was on bug 
13864         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13865         API, because it should only be used by RhythmDB itself.
13867 2005-11-16  James Livingston  <jrl@ids.org.au>
13869         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13870         pausing by middle clicking on the tray icon.
13872 2005-11-15  James Livingston  <jrl@ids.org.au>
13874         * configure.ac: enable audioscrobbler support by default, if libsoup
13875         is present.
13877 2005-11-15  James Livingston  <jrl@ids.org.au>
13879         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13880         Closes bug 321157.
13882         * configure.ac:
13883         * daapsharing/rb-daap-connection.c: (build_message),
13884         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13885         support gzip encoded daap connections.
13887         (handle_song_listing): fix leak
13889 2005-11-15  James Livingston  <jrl@ids.org.au>
13891         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13892         * sources/rb-podcast-source.c:
13893         (rb_podcast_source_post_date_cell_data_func): make the date format
13894         translatable again, so that translators can choose the best format for
13895         their locale (%x is huge in some locales)
13897 2005-11-15  James Livingston  <jrl@ids.org.au>
13899         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13900         (end_job): mark podcast episodes as failed, if the metadata load
13901         fails. This will prevent people playing non-audio enclosures, helping
13902         stop bug 320366.
13904 2005-11-14  James Livingston  <jrl@ids.org.au>
13906         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13907         video sink to fakesink. This will stop problems (potentially crashers)
13908         that will occur if the file contains a video stream.
13910         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13911         rather than using magic numbers everywhere.
13913         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13914         * sources/rb-podcast-source.c:
13915         (rb_podcast_source_songs_show_popup_cb),
13916         (rb_podcast_source_cmd_download_post),
13917         (rb_podcast_source_post_status_cell_data_func),
13918         (rb_podcast_source_entry_activated_cb): use the above constants.
13920         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13921         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13922         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13923         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13924         (cancel_job), (download_progress_cb),
13925         (rb_podcast_manager_cancel_download),
13926         (rb_podcast_manager_insert_feed): use the constants, and fix a
13927         trhead-safety issue.
13929 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13931         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13932         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13933         entry-changed events after stats on startup, fixes entry deleted from
13934         filtered views not disappearing
13936 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13938         Fix rhythmdb query model refcount and polling problems. Closes bug
13939         321410.
13941         * rhythmdb/rhythmdb-property-model.c:
13942         (rhythmdb_property_model_finalize):
13943          Unref the query model if we have one.
13945         * rhythmdb/rhythmdb-query-model.h:
13946          Remove poll and cancel methods.  Query cancellation
13947          never did anything anyway.
13949         * rhythmdb/rhythmdb-query-model.c:
13950         (rhythmdb_query_model_init): Remove GAsyncQueues.
13951          Replace the GAsyncQueue-based update processing
13952          with a simpler g_idle_add approach; still has the
13953          same queueing properties, but now we don't poll the
13954          model forever and updates are processed immediately.
13956         (_unref_entry), (rhythmdb_query_model_finalize):
13957          Unref DB entries when finalized
13959         (rhythmdb_query_model_has_pending_changes):
13960          Use our own counter to decide if there are updates pending
13962         (rhythmdb_query_model_process_update), (idle_process_update):
13963          Process updates using g_idle_add, or directly if possible
13965         (rhythmdb_query_model_signal_complete),
13966         (rhythmdb_query_model_add_entries):
13967          Change to new update processing method
13969         (idle_poll_model), (rhythmdb_query_model_poll):
13970          Remove GAsyncQueue-based update processing.
13972         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13973          No need to poll the model any more - updates are processed
13974          directly for synchronous queries.
13976         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13977          Property model needs to be unref'd here
13979         * sources/rb-library-source.c: (rb_library_source_do_query):
13980          Don't try to cancel the active query (it never worked anyway),
13981          remove obsolete poll call, unref property models as required,
13982          and don't unref the cached 'all' query, since hold on to it.
13983          We unref it when the sort order changes, which forces the query
13984          to be rerun.
13986         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13987          Unref the property model as required
13989         (rb_podcast_source_do_query):
13990          Treat any query with no selected feeds and no search text as
13991          an 'all' query.  Unref query models except for the cached
13992          'all' query, since we hold on to that.
13994         (rb_podcast_source_cmd_update_all):
13995          Unref the property model as required.
13997         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13998          Don't try to cancel the query (it never worked anyway)
14000         (rb_entry_view_poll_model):
14001          No need for this any more.
14003         * widgets/rb-entry-view.h:
14004          Remove obsolete function rb_entry_view_poll_model
14006         * widgets/rb-property-view.c: (rb_property_view_set_property):
14007          Ref and unref the property model as required.
14009 2005-11-14  James Livingston  <jrl@ids.org.au>
14011         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14013         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
14014         for error. Closes bug 321416.
14016 2005-11-14  James Livingston  <jrl@ids.org.au>
14018         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14020         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
14021         a crasher if a feed's last-post value isn't set. Closes bug 321353.
14023 2005-11-14  James Livingston  <jrl@ids.org.au>
14025         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
14026         * shell/rb-removable-media-manager.c:
14027         (rb_removable_media_manager_set_uimanager):
14028         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
14029         translation domain for GTK action groups.
14031 2005-11-12  James Livingston  <jrl@ids.org.au>
14033         * po/POTFILES.in: remove the old station-new files
14035 2005-11-12  James Livingston  <jrl@ids.org.au>
14037         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14038         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
14039         (save_entry): cause Rhythmbox to re-read the metadata from a file,
14040         when upgrading from a pre-Date-supporting version to a version that
14041         supports Date metadata. Closes bug 320760.
14043 2005-11-12  James Livingston  <jrl@ids.org.au>
14045         Add "update all podcast feeds" command. Closes bug 319954.
14047         * data/ui/rhythmbox-ui.xml: add to source context menu.
14049         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14050         (register_action_group), (rb_podcast_source_cmd_download_post),
14051         (rb_podcast_source_cmd_delete_feed),
14052         (rb_podcast_source_cmd_properties_feed),
14053         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
14054         rather than the shell.
14056         (rb_podcast_source_update_feed_func),
14057         (rb_podcast_source_cmd_update_all): update every feed.
14059 2005-11-11  James Livingston  <jrl@ids.org.au>
14061         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14062         (rb_shell_player_constructor), (rb_shell_player_finalize):
14063         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
14064         others follow the HIG recommentations.
14066 2005-11-11  James Livingston  <jrl@ids.org.au>
14068         * podcast/rb-podcast-manager.c:
14069         (rb_podcast_manager_subscribe_feed): check that the url is valid,
14070         before trying to use it.
14072 2005-11-11  James Livingston  <jrl@ids.org.au>
14074         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
14075         (rb_entry_view_append_column): When sorting by year, sort by album
14076         within a particular year.
14078 2005-11-11  James Livingston  <jrl@ids.org.au>
14080         * NEWS: updates
14082 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
14083         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
14084         spelling of "Language."
14086 2005-11-11  James Livingston  <jrl@ids.org.au>
14088         * rhythmdb/rhythmdb-property-model.c:
14089         (rhythmdb_property_model_row_inserted_cb),
14090         (rhythmdb_property_model_prop_changed_cb),
14091         (rhythmdb_property_model_entry_removed_cb),
14092         (rhythmdb_property_model_insert_prop),
14093         (rhythmdb_property_model_sync): display the count after the "All"
14094         entry of a property model.
14096         * widgets/rb-property-view.c: (rb_property_view_class_init),
14097         (rb_property_view_finalize), (rb_property_view_constructor): use
14098         G_DEFINE_TYPE
14100 2005-11-10  James Livingston  <jrl@ids.org.au>
14102         * rhythmdb/rhythmdb-query-model.c:
14103         (rhythmdb_query_model_remove_entry):
14104         * rhythmdb/rhythmdb-query-model.h: make
14105         rhythmdb_query_model_remove_entry return whether the entry was in the
14106         model.
14108         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
14109         don't add non-SONG entries, as it doesn't really work and can cause
14110         crashes.
14112         (rb_playlist_source_remove_location): assert if the playlist and model
14113         differ on whether the entry is in the playlist
14115 2005-11-10  James Livingston  <jrl@ids.org.au>
14117         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
14118         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
14119         (rb_podcast_manager_thread_parse_feed),
14120         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
14121         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
14122         emulating one with a list and mutex. Fixes a couple of threading
14123         issues.
14124         
14125         (rb_podcast_manager_insert_feed): fix some problems with ignoring
14126         updated feeds.
14127         
14128         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
14129         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
14130         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
14131         * podcast/rb-podcast-parse.c: (rb_insert_item),
14132         (rb_podcast_parse_channel_free):
14133         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
14134         fix some typos, and make a bit of code clearer.
14136 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
14138         Make the "delete podcast" dialog better. Closes bug 320899.
14140         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
14141         Add PROP_WINDOW for rb_shell_get_property so we can access the
14142         GtkWindow widget of the main window. 
14143         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
14144         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
14145         podcast feed delete dialog less confusing as well.
14147 2005-11-09  James Livingston  <jrl@ids.org.au>
14149         * shell/rb-removable-media-manager.c:
14150         (rb_removable_media_manager_mount_volume),
14151         (rb_removable_media_manager_scan): Fix a crasher where we were getting
14152         NULL for a cd volume.
14154 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14156         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
14157         method return a gboolean indicating whether the changes
14158         to the entry have already been applied.
14160         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
14161         only modify the entry if impl_entry_set returns FALSE.
14163         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
14164         When setting the location of an entry, update the
14165         hash table mapping locations to entries.
14167 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14169         * data/glade/Makefile.am:
14170         * iradio/Makefile.am:
14171           Remove 'new station' dialog.
14173         * iradio/rb-station-properties-dialog.h:
14174         * sources/rb-iradio-source.c: (impl_song_properties):
14175         * shell/rb-shell.c: (rb_shell_cmd_new_station):
14176          Add 'new station' mode parameter to
14177          rb_station_properties_dialog_new.
14179         * (rb_station_properties_dialog_response_cb),
14180         (rb_station_properties_dialog_create_station):
14181          When in 'new station' mode, create the station
14182          when OK button is pressed.
14184         * iradio/rb-station-properties-dialog.c:
14185         (rb_station_properties_dialog_location_changed_cb):
14186          Only enable OK button if a location is specified
14187         (rb_station_properties_dialog_init),
14188         (rb_station_properties_dialog_new),
14189         (rb_station_properties_dialog_update),
14190         (rb_station_properties_dialog_update_title),
14191         (rb_station_properties_dialog_rated_cb),
14192         (rb_station_properties_dialog_update_play_count),
14193         (rb_station_properties_dialog_update_bitrate),
14194         (rb_station_properties_dialog_update_last_played),
14195         (rb_station_properties_dialog_update_rating),
14196         (rb_station_properties_dialog_update_playback_error),
14197         (rb_station_properties_dialog_show):
14198          Handle 'new station' mode, where there's no current
14199          station to edit.
14201 2005-11-08  James Livingston  <jrl@ids.org.au>
14203         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
14204         keybinding for track columns consistent between library and playlist
14205         sources.
14207 2005-11-07  James Livingston  <jrl@ids.org.au>
14209         * data/ui/rhythmbox-ui.xml:
14210         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
14211         "Edit" item to playlist menu. Closes bug 311470.
14213 2005-11-07  James Livingston  <jrl@ids.org.au>
14215         patch by: Jaap A. Haitsma <jaap@haitsma.org>
14217         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
14218         confirmation to save dialogs, with gtk 2.8 or higher.
14220 2005-11-07 James Livingston  <jrl@ids.org.au>
14221         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
14222         requirement to a general on, because people are going to have it for
14223         the other dependencies.
14225 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
14227         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
14228         delete dialog less confusing.  Use HIG recommended button order.
14229         Closes bug 320840.
14231 2005-11-06  James Livingston  <jrl@ids.org.au>
14233         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
14234         drag-and-drop error.
14235         
14236         * sources/rb-library-source.c: (rb_library_source_constructor): only
14237         add drag-and-drop for the Library itself, subclasses can add support
14238         themselves if they want it.
14240         * sources/rb-removable-media-source.c:
14241         (rb_removable_media_source_class_init): by default removable media
14242         sources do not support dnd
14244 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
14246         * data/glade/station-properties.glade:
14247          Add box containing error icon and error message label
14248         * iradio/rb-station-properties-dialog.c:
14249         (rb_station_properties_dialog_class_init),
14250         (rb_station_properties_dialog_finalize):
14251          Change this class to use G_DEFINE_TYPE
14252         (rb_station_properties_dialog_init),
14253         (rb_station_properties_dialog_update),
14254         (rb_station_properties_dialog_update_playback_error):
14255          Display error icon and message when there is one, and hide the error
14256          box otherwise.
14257         (rb_station_properties_dialog_show): Hack widget show
14258          method to update the visibility of the error info box when showing
14259          the widget.  Otherwise the icon is displayed all the time (same thing
14260          is done in rb-song-info). Closes bug 320749.
14262 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
14264         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
14265         parsing of the duration of podcast episodes from the feed. Closes bug
14266         320748.
14268 2005-11-05  James Livingston  <jrl@ids.org.au>
14270         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
14271         release date metadata ("Year"). Closes bug 166093.
14273         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
14274         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
14275         (rb_metadata_gst_add_tag_data):
14276         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14277         (save_entry):
14278         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
14279         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
14280         (set_props_from_metadata), (rhythmdb_entry_set_internal),
14281         (rhythmdb_prop_get_type):
14282         * rhythmdb/rhythmdb.h: add support for "date" property
14283         
14284         * data/glade/general-prefs.glade:
14285         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
14286         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
14287         (rb_entry_view_append_column):
14288         * widgets/rb-entry-view.h:
14289         * sources/rb-library-source.c: (rb_library_source_constructor):
14290         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
14291         "Year" colums
14293         * data/glade/song-info.glade:
14294         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
14295         (rb_song_info_construct_single), (rb_song_info_constructor),
14296         (rb_song_info_populate_dialog), (rb_song_info_update_year),
14297         (rb_song_info_sync_entry_single): Add "Year" to song info window
14299         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14300         sorted by year.
14302 2005-11-05  James Livingston  <jrl@ids.org.au>
14304         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14305         description if it's very long.
14307 2005-11-05  James Livingston  <jrl@ids.org.au>
14309         pathc by: Artem Baguinski <femistofel@gmail.com>
14311         * help/C/Makefile.am:
14312         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14313         Closes bug 320613.
14315 2005-11-05  James Livingston  <jrl@ids.org.au>
14317         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14319         * daapsharing/rb-daap-share.c: (write_next_chunk),
14320         (message_finished), (databases_cb): Use chunked file loading and
14321         sending in the DAAP server. This should reduce the amount of memory
14322         required to send files to the client.
14324 2005-11-05  James Livingston  <jrl@ids.org.au>
14326         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14327         work better on some systems. Closes 320622.
14329 2005-11-05  James Livingston  <jrl@ids.org.au>
14331         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14332         homepage, so that users can find out what AudioScrobbler is. Add
14333         access keys.
14335         * data/glade/daap-prefs.glade:
14336         * data/glade/general-prefs.glade:
14337         * data/glade/library-prefs.glade: make the indent be more consistent
14339         * data/glade/podcast-prefs.glade: 
14340         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14341         (impl_get_config_widget): move thing out of code into glade, where
14342         they belong
14344 2005-11-05  James Livingston  <jrl@ids.org.au>
14346         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14347         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14349 2005-11-04  James Livingston  <jrl@ids.org.au>
14351         * configure.ac: don't print DAAP configure info twice
14353 2005-11-04  James Livingston  <jrl@ids.org.au>
14355         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14356         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14357         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14358         #ifdefs, since we removed the symbol. Oops
14360 2005-11-04  James Livingston  <jrl@ids.org.au>
14362         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14363         after the connect line, not before. Oops.
14365 2005-11-04  James Livingston  <jrl@ids.org.au>
14367         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14368         fix some warnings
14370 2005-11-03  James Livingston  <jrl@ids.org.au>
14372         * NEWS: update the news file
14374         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14375         "duration" column.
14377         * data/ui/rhythmbox-ui.xml:
14378         * shell/rb-playlist-manager.c:
14379         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14380         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14381         and "delete" for feeds.
14383 2005-11-03  James Livingston  <jrl@ids.org.au>
14385         * sources/rb-podcast-source.c: (impl_delete),
14386         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14387         feed. Closes 319760.
14389 2005-11-03  James Livingston  <jrl@ids.org.au>
14391         Don't start playing from the remote site when a un-downloaded podcast
14392         is activated. Closes 319983.
14393         
14395         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14396         (write_job_data), (download_progress_cb): write the local location as
14397         soon as any data is recieved
14399         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14400         the mountpoint to NULL for podcast episodes that haven't yet been
14401         downloaded.
14402         
14403         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14404         start playing a podcast if it hasn't been downloaded.
14405         
14406         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14407         (rb_podcast_source_entry_activated_cb): begin downloading when the
14408         podcast is activated.
14410 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14412         * data/glade/general-prefs.glade:  Fix capitalization.
14413         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14414         * sources/rb-podcast-source.c:
14415         (rb_podcast_source_songs_show_popup_cb),
14416         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14418 2005-11-03  James Livingston  <jrl@ids.org.au>
14420         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14422         * shell/rb-removable-media-manager.c:
14423         (rb_removable_media_manager_mount_volume): don't check network or
14424         autofs mounts, as they're not going to be removable media. Stops
14425         sending lots of warnings to syslog. Closes 320571.
14427         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14428         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14429         320570.
14431 2005-11-03  James Livingston  <jrl@ids.org.au>
14433         Add support for playing audio CDs. Metadata lookup is done using
14434         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14435         the library when it gets broken out of S-J.
14436         
14437         Add a "rescan media" menu item, and commands for ejecting removable
14438         media.
14440         Move nautilus-cd-burner from optional to required depenency.
14442         * configure.ac:
14443         * data/ui/rhythmbox-ui.xml:
14444         * metadata/Makefile.am:
14445         + metadata/sj-error.c:
14446         + metadata/sj-error.h:
14447         + metadata/sj-metadata-marshal.list:
14448         + metadata/sj-metadata-musicbrainz.c:
14449         + metadata/sj-metadata-musicbrainz.h:
14450         + metadata/sj-metadata.c:
14451         + metadata/sj-metadata.h:
14452         + metadata/sj-structures.c:
14453         + metadata/sj-structures.h:
14454         * player/Makefile.am:
14455         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14456         * po/POTFILES.in:
14457         * shell/Makefile.am:
14458         * shell/rb-removable-media-manager.c:
14459         (rb_removable_media_manager_dispose), (poll_tray_opened),
14460         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14461         (rb_removable_media_manager_load_media),
14462         (rb_removable_media_manager_mount_volume),
14463         (rb_removable_media_manager_cmd_eject_medium),
14464         (rb_removable_media_manager_cmd_scan_media),
14465         (rb_removable_media_manager_check_volume),
14466         (rb_removable_media_manager_unmount_volume_swap),
14467         (rb_removable_media_manager_scan):
14468         * sources/Makefile.am:
14469         + sources/rb-audiocd-source.c:
14470         + sources/rb-audiocd-source.h:
14471         * tests/Makefile.am:
14473 2005-11-02  James Livingston  <jrl@ids.org.au>
14475         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14477         * sources/rb-iradio-source.c:
14478         (stations_view_drag_data_received_cb):
14479         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14480         don't crash when the second uri is missing frm the drop, which
14481         browsers sometimes do.
14483 2005-11-01  James Livingston  <jrl@ids.org.au>
14485         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14486         (rb_podcast_manager_insert_feed):
14487         * podcast/rb-podcast-manager.h:
14488         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14489         (rb_set_item_value), (rb_validate_item_propert),
14490         (rb_podcast_parse_date), (rb_podcast_parse_time):
14491         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14492         from the feed.
14494 2005-10-31  James Livingston  <jrl@ids.org.au>
14496         * ChangeLog:
14497         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14498         huge
14500 2005-10-31  James Livingston  <jrl@ids.org.au>
14502         * sources/rb-podcast-source.c:
14503         (rb_podcast_source_post_date_cell_data_func): generate the date string
14504         in a way that is correct in all locales.
14505         
14506         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14507         (rhythmdb_entry_sync_mirrored): make the last played/date added
14508         columns use the same format.
14510 2005-10-30  James Livingston  <jrl@ids.org.au>
14513         * podcast/rb-podcast-manager.c:
14514         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14515         
14516         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14517         iradio errors better.
14519 2005-10-30  James Livingston  <jrl@ids.org.au>
14521         patch by: Artem Baguinski <femistofel@gmail.com>
14523         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14525 2005-10-30  James Livingston  <jrl@ids.org.au>
14527         * podcast/rb-podcast-manager.c:
14528         (rb_podcast_manager_subscribe_feed),
14529         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14530         already been added, usually as a radio station. Closes 319434.
14532 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14534         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14535         mnemonics & resize issues)
14536         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14537         & mnemonics)
14538         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14539         widget for the "download location" label.
14541         Closes bug 320184.
14543 2005-10-29  James Livingston  <jrl@ids.org.au>
14545         Allow the search box to match words from multiple properties. Closes
14546         bug 139196. Thanks to the person from IRC who did a lot of the initial
14547         work.
14550         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14551         * lib/rb-util.h: Add functions to split a string into words, and one
14552         to perform "search folding" which is currently like casefolding but
14553         also strips punctuation
14554         
14555         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14556         (rhythmdb_query_preprocess):
14557         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14558         against title, artist, album and genre (for the search box)
14559         
14560         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14561         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14562         (save_entry), (search_match_properties),
14563         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14564         splitting into words and matching across multiple properties.
14565         
14566         * sources/rb-library-source.c: (construct_query_from_selection): use
14567         the new SEARCH_MATCH property for the search box
14568         
14569         * widgets/rb-entry-view.c: (type_ahead_search_func):
14571 2005-10-29  James Livingston  <jrl@ids.org.au>
14573         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14574         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14575         
14576         * shell/rb-playlist-manager.c:
14577         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14578         correctly.
14579         
14580         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14581         initial state of the shuffle/repeat menu items correctly. Patch from
14582         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14584 2005-10-29  James Livingston  <jrl@ids.org.au>
14586         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14587         double-free.
14588         
14589         * widgets/rb-cell-renderer-pixbuf.c:
14590         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14591         icon go black when row is not selected
14592         
14593         * doc/reference/tmpl/rb-daap-connection.sgml:
14594         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14596 2005-10-29  James Livingston  <jrl@ids.org.au>
14598         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14599         silly mistake, where it could think partial downloads has been
14600         completed.
14602 2005-10-29  James Livingston  <jrl@ids.org.au>
14604         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14606         * data/glade/song-info.glade:
14607         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14608         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14609         (rb_song_info_sync_entry_single): show the disc number in the song
14610         info window. From bug 311199.
14612 2005-10-29  James Livingston  <jrl@ids.org.au>
14614         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14615         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14616         regularly. Closes 155306.
14618 2005-10-29  James Livingston  <jrl@ids.org.au>
14620         * podcast/rb-podcast-manager.c:
14621         (rb_podcast_manager_download_entry),
14622         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14623         (rb_podcast_manager_insert_feed):
14624         * podcast/rb-podcast-manager.h:
14625         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14626         (rb_podcast_parser_start_element):
14627         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14628         don't download them again. However, it can't resume
14629         partially-downloaded ones.
14631 2005-10-28  James Livingston  <jrl@ids.org.au>
14633         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14634         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14635         work. Don't attempt to write duration as a tag.
14637         Thanks to Artem Baguinski <femistofel@gmail.com>
14639 2005-10-28  James Livingston  <jrl@ids.org.au>
14641         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14642         don't disable the status-bar menu item when the current source doesn't
14643         use the search box.
14645 2005-10-28  James Livingston  <jrl@ids.org.au>
14647         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14648         crash if the file has unknown length
14650 2005-10-27  James Livingston  <jrl@ids.org.au>
14652         * daapsharing/rb-daap-connection.c:
14653         (rb_daap_connection_state_done): don't assert when a daap server
14654         doesn't have any playlists
14656 2005-10-27  James Livingston  <jrl@ids.org.au>
14658         * sources/rb-sourcelist-model.c:
14659         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14660         source for the sourcelist. Closes bug 319817.
14662 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14664         Patch by: Renato Araujo <renatox@gmail.com>
14666         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14667           Fix for a crasher caused by previous patch.
14669 2005-10-26  James Livingston  <jrl@ids.org.au>
14671         * data/glade/podcast-prefs.glade:
14672         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14673         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14674         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14675         * podcast/rb-podcast-manager.c:
14676         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14677         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14678         * shell/rb-shell.c: Change some strings to make them more consistent.
14679         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14680         makes it clearer which is which. "Episode" may not be the best term,
14681         but it seems to be widely used.
14682         
14683         Also fix some strings that weren't marked as translatable.
14684         
14685         * podcast/rb-feed-podcast-properties-dialog.c:
14686         (rb_feed_podcast_properties_dialog_class_init),
14687         (rb_feed_podcast_properties_dialog_finalize):
14688         * podcast/rb-new-podcast-dialog.c:
14689         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14690         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14691         (rb_simple_view_finalize), (rb_simple_view_constructor):
14692         * podcast/rb-podcast-properties-dialog.c:
14693         (rb_podcast_properties_dialog_class_init),
14694         (rb_podcast_properties_dialog_finalize):
14695         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14696         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14697         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14698         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14699         use G_DEFINE_TYPE, instead of doing it manually.
14701 2005-10-26  James Livingston  <jrl@ids.org.au>
14703         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14704         <jrl@ids.org.au>
14706         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14707         (rb_metadata_init): Check that the necessary plugins are present to do
14708         id3 editing.
14709         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14710         corrupted before replacing the original.
14712 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14714         reviewed by: James Livingston <jrl@ids.org.au>
14716         Assign sequential IDs to playlists for DAAP rather than using the
14717         address of the playlist object.  Less flaky, and should work on 64bit
14718         platforms. Closes bug 319304.
14720         * daapsharing/rb-daap-share.c: 
14721         (rb_daap_share_set_property): watch for playlist creation
14722         (_find_by_id), (_find_by_source): playlist list search functions
14723         (rb_daap_share_playlist_created),
14724         (rb_daap_share_process_playlist),
14725         (rb_daap_share_playlist_destroyed):
14726          update playlist list as it changes, use weak refs on 
14727          playlists to get notified on destroy.
14728         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14729          destroy playlist list on shutdown
14730         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14731          DAAP response
14732         (databases_cb): search for playlist ID in list rather than just
14733          converting it to a pointer; return HTTP 404 if playlist not 
14734          found.
14735         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14736          is already used for the main library
14738 2005-10-26  James Livingston  <jrl@ids.org.au>
14740         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14742         * daapsharing/rb-daap-connection.c: (build_message),
14743         (http_response_handler), (http_get), (handle_server_info),
14744         (handle_login), (handle_update), (handle_database_info),
14745         (handle_song_listing), (handle_playlists),
14746         (handle_playlist_entries), (handle_logout),
14747         (rb_daap_connection_new), (rb_daap_connection_logout),
14748         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14749         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14750         * daapsharing/rb-daap-connection.h:
14751         * sources/rb-daap-source.c: (rb_daap_source_activate),
14752         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14753         (rb_daap_source_disconnect): Make connecting to DAAP sources
14754         asynchronous, so that non-responsive servers don't hang the UI. Closes
14755         316225.
14757 2005-10-26  James Livingston  <jrl@ids.org.au>
14759         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14761         * rhythmdb/rhythmdb-query-model.c:
14762         (rhythmdb_query_model_do_reorder): generate the row re-order map
14763         correctly.
14764         
14765         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14766         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14767         Update selection when rows get re-ordered. Closes 319718.
14769 2005-10-26  James Livingston  <jrl@ids.org.au>
14771         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14773         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14774         actually set the db pointer in play orders. Closes 319818.
14776 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14778         Patch by: Renato Araujo <renatox@gmail.com>
14780         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14781         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14782         (rb_podcast_manager_update_synctime),
14783         (rb_podcast_manager_config_changed),
14784         (rb_podcast_manager_insert_feed):
14785         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14786         (save_entry):
14787         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14788         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14789         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14791 2005-10-25  James Livingston  <jrl@ids.org.au>
14793         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14794         (db_entry_deleted_cb): don't share tracks that are hidden because the
14795         file is missing.
14797 2005-10-22  James Livingston  <jrl@ids.org.au>
14799         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14800         crash if an entry couldn't be playerd, without streamer setting an
14801         error.
14803         
14804         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14806         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14807         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14808         is pasted into the dialog.
14809         
14810         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14811         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14812         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14813         (rb_podcast_parse_channel_free):
14814         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14815         feeds
14817 2005-10-22  James Livingston  <jrl@ids.org.au>
14819         * sources/rb-iradio-source.c:
14820         (rb_iradio_source_first_time_changed): Make merging the default
14821         stations actually work.
14822         
14823         * sources/rb-podcast-source.c:
14824         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14825         people weren't seing the percentages in the stats column.
14827 2005-10-21  James Livingston  <jrl@ids.org.au>
14829         Patch from Caio Marcelo <cmarcelo@gmail.com>
14831         * shell/rb-shell.c: (rb_shell_window_state_cb),
14832         (rb_shell_get_visibility), (idle_hide_mainwindow),
14833         (rb_shell_set_visibility): Make the "show window" item in the tray
14834         icon menu show the toggle state correctly. Use a better policy on
14835         deciding whether the window is "visible" or not. Closes bug 308053.
14837 2005-10-21  James Livingston  <jrl@ids.org.au>
14839         * doc/reference/tmpl/rb-shell-preferences.sgml:
14840         * shell/Makefile.am: fix building with gtk-doc
14842         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14843         don't submit podcasts to audioscrobbler
14844         
14845         
14846         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14847         
14848         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14849         (rb_set_item_value): strip spaces surrounding podcast urls
14850         
14852         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14853         
14854         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14856 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14858         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14859          Audioscrobbler/Last.fm support
14861         * configure.ac:
14862         * data/glade/Makefile.am:
14863         * data/glade/audioscrobbler-prefs.glade:
14864         * data/rhythmbox.schemas:
14865         * lib/Makefile.am:
14866         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14867         * lib/md5.h:
14868         * lib/rb-preferences.h:
14869         * po/POTFILES.in:
14870         * shell/Makefile.am:
14871         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14872         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14873         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14874         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14875         (rb_audioscrobbler_timeout_cb), (mkmd5),
14876         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14877         (rb_audioscrobbler_do_handshake),
14878         (rb_audioscrobbler_do_handshake_cb),
14879         (rb_audioscrobbler_submit_queue),
14880         (rb_audioscrobbler_submit_queue_cb),
14881         (rb_audioscrobbler_import_settings),
14882         (rb_audioscrobbler_preferences_sync),
14883         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14884         (rb_audioscrobbler_gconf_changed_cb),
14885         (rb_audioscrobbler_song_changed_cb),
14886         (rb_audioscrobbler_username_entry_changed_cb),
14887         (rb_audioscrobbler_username_entry_activate_cb),
14888         (rb_audioscrobbler_password_entry_changed_cb),
14889         (rb_audioscrobbler_password_entry_activate_cb),
14890         (rb_audioscrobbler_enabled_check_changed_cb),
14891         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14892         (rb_audioscrobbler_load_entry_from_string),
14893         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14894         (rb_audioscrobbler_print_queue),
14895         (rb_audioscrobbler_free_queue_entries):
14896         * shell/rb-audioscrobbler.h:
14897         * shell/rb-shell-preferences.c:
14898         (rb_shell_preferences_append_audioscrobbler_config):
14899         * shell/rb-shell-preferences.h:
14900         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14901         (rb_shell_select_source), (rb_shell_cmd_preferences):
14902         * sources/Makefile.am:
14904 2005-10-21  James Livingston  <jrl@ids.org.au>
14906         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14908         * Makefile.am:
14909         * NEWS:
14910         * configure.ac:
14911         * data/art/Makefile.am:
14912         * data/glade/Makefile.am:
14913         * data/rhythmbox.schemas:
14914         * data/ui/rhythmbox-ui.xml:
14915         * doc/reference/Makefile.am:
14916         * doc/reference/tmpl/rhythmdb.sgml:
14917         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14918         * lib/rb-stock-icons.h:
14919         * po/POTFILES.in:
14920         * podcast/Makefile.am:
14921         + podcast/rb-feed-podcast-properties-dialog.c:
14922         + podcast/rb-feed-podcast-properties-dialog.h:
14923         + podcast/rb-new-podcast-dialog.c:
14924         + podcast/rb-new-podcast-dialog.h:
14925         + podcast/rb-podcast-manager.c:
14926         + podcast/rb-podcast-manager.h:
14927         + podcast/rb-podcast-marshal.list:
14928         + podcast/rb-podcast-parse.c:
14929         + podcast/rb-podcast-parse.h:
14930         + podcast/rb-podcast-properties-dialog.c:
14931         + podcast/rb-podcast-properties-dialog.h:
14932         * rhythmdb/rhythmdb-property-model.c:
14933         (rhythmdb_property_model_set_property),
14934         (rhythmdb_property_model_enable_drag):
14935         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14936         (rhythmdb_tree_parser_end_element), (save_entry),
14937         (rhythmdb_tree_save):
14938         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14939         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14940         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14941         (rhythmdb_entry_podcast_feed_get_type):
14942         * rhythmdb/rhythmdb.h:
14943         * shell/Makefile.am:
14944         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14945         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14946         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14947         (rb_shell_quit):
14948         * sources/Makefile.am:
14949         + sources/rb-podcast-source.c:
14950         + sources/rb-podcast-source.h:
14951         * widgets/Makefile.am:
14952         * widgets/rb-property-view.c: (rb_property_view_class_init),
14953         (rb_property_view_constructor),
14954         (rb_property_view_selection_changed_cb),
14955         (rb_property_view_get_treeview):
14956         * widgets/rb-property-view.h:
14957         + widgets/rb-simple-view.c:
14958         + widgets/rb-simple-view.h:
14960 2005-10-20  James Livingston  <jrl@ids.org.au>
14962         * NEWS: update with changes since 0.9.1
14964         * configure.ac: check whether collate_key_for_filename is available
14965         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14966         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14967         it if it isn't available in glib (i.e. building against 2.6)
14968         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14969         collation to get "natural sorting". Closes bug 158599.
14971 2005-10-20  James Livingston  <jrl@ids.org.au>
14973         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14975         * doc/reference/tmpl/rb-shell-player.sgml:
14976         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14977         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14978         (rb_shell_player_get_playing),
14979         (rb_shell_player_get_playing_time_string),
14980         (rb_shell_player_get_playing_time),
14981         (rb_shell_player_set_playing_time), (tick_cb),
14982         (rb_shell_player_get_playing_path), (filter_mmkeys):
14983         * shell/rb-shell-player.h:
14984         * shell/rb-shell-player.xml:
14985         * shell/rb-shell.c: (rb_shell_constructor),
14986         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14987         (rb_shell_set_window_title), (rb_shell_playing_impl),
14988         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14989         Merge the duration_changed and elapsed_changed DBUS signals into one
14990         elapsed_changed signal. Check that the output argument isn't NULL
14991         before trying to put things in it.
14993 2005-10-20  James Livingston  <jrl@ids.org.au>
14995         * rhythmdb/rhythmdb-query-model.c:
14996         (rhythmdb_query_model_entry_added_cb),
14997         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14998         problem where hidden entries could be shown in playlists.
14999         
15000         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
15001         issues when switching in and out of small mode.
15003 2005-10-19  James Livingston  <jrl@ids.org.au>
15005         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
15006         (rb_shell_constructor), (rb_shell_window_state_cb),
15007         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
15008         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
15009         (rb_shell_view_smalldisplay_changed_cb),
15010         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
15011         (rb_shell_sync_paned): remove gconf window-state races, prevent
15012         changing small mode too often, fix window event races. Closes 122806.
15014         
15015         Patch from Caio Marcelo <cmarcelo@gmail.com>
15017         * data/rhythmbox.schemas:
15018         * shell/rb-shell.c: (rb_shell_window_state_cb),
15019         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
15020         Remember the position of the window. Closes 315289.
15022 2005-10-19  James Livingston  <jrl@ids.org.au>
15024         Patch from Christophe Fergeau  <teuf@gnome.org>
15026         * configure.ac: determine whether libgpod is present when neither
15027         --with-ipod nor --without-ipod is passed
15029 2005-10-19  James Livingston  <jrl@ids.org.au>
15031         Patch from Caio Marcelo <cmarcelo@gmail.com>
15033         * shell/rb-shell-player.c: (do_next_idle),
15034         (rb_shell_player_do_previous), (rb_shell_player_do_next),
15035         (rb_shell_player_do_previous_or_seek),
15036         (rb_shell_player_previous_button_cb),
15037         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15038         (rb_shell_player_cmd_next), (eos_cb):
15039         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
15040         end of the playlist is reached.
15042 2005-10-19  Christopher Aillon  <caillon@redhat.com>
15044         * lib/rb-thread.c: fix a few GSource leaks
15046 2005-10-19  James Livingston  <jrl@ids.org.au>
15048         * doc/reference/tmpl/bacon-volume.sgml:
15049         * doc/reference/tmpl/disclosure-widget.sgml:
15050         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15051         * doc/reference/tmpl/eggnotificationbubble.sgml:
15052         * doc/reference/tmpl/eggtrayicon.sgml:
15053         * doc/reference/tmpl/gsequence.sgml:
15054         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15055         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15056         * doc/reference/tmpl/rb-daap-connection.sgml:
15057         * doc/reference/tmpl/rb-daap-dialog.sgml:
15058         * doc/reference/tmpl/rb-daap-mdns.sgml:
15059         * doc/reference/tmpl/rb-daap-share.sgml:
15060         * doc/reference/tmpl/rb-daap-sharing.sgml:
15061         * doc/reference/tmpl/rb-daap-source.sgml:
15062         * doc/reference/tmpl/rb-daap-src.sgml:
15063         * doc/reference/tmpl/rb-daap-structure.sgml:
15064         * doc/reference/tmpl/rb-debug.sgml:
15065         * doc/reference/tmpl/rb-dialog.sgml:
15066         * doc/reference/tmpl/rb-druid.sgml:
15067         * doc/reference/tmpl/rb-entry-view.sgml:
15068         * doc/reference/tmpl/rb-enums.sgml:
15069         * doc/reference/tmpl/rb-file-helpers.sgml:
15070         * doc/reference/tmpl/rb-glade-helpers.sgml:
15071         * doc/reference/tmpl/rb-header.sgml:
15072         * doc/reference/tmpl/rb-history.sgml:
15073         * doc/reference/tmpl/rb-ipod-source.sgml:
15074         * doc/reference/tmpl/rb-iradio-source.sgml:
15075         * doc/reference/tmpl/rb-library-source.sgml:
15076         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15077         * doc/reference/tmpl/rb-metadata.sgml:
15078         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15079         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15080         * doc/reference/tmpl/rb-play-order-linear.sgml:
15081         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15082         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15083         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15084         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15085         * doc/reference/tmpl/rb-play-order-random.sgml:
15086         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15087         * doc/reference/tmpl/rb-play-order.sgml:
15088         * doc/reference/tmpl/rb-player.sgml:
15089         * doc/reference/tmpl/rb-playlist-manager.sgml:
15090         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15091         * doc/reference/tmpl/rb-playlist-source.sgml:
15092         * doc/reference/tmpl/rb-preferences.sgml:
15093         * doc/reference/tmpl/rb-property-view.sgml:
15094         * doc/reference/tmpl/rb-query-creator-private.sgml:
15095         * doc/reference/tmpl/rb-query-creator.sgml:
15096         * doc/reference/tmpl/rb-rating-helper.sgml:
15097         * doc/reference/tmpl/rb-rating.sgml:
15098         * doc/reference/tmpl/rb-recorder.sgml:
15099         * doc/reference/tmpl/rb-refstring.sgml:
15100         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15101         * doc/reference/tmpl/rb-removable-media-source.sgml:
15102         * doc/reference/tmpl/rb-search-entry.sgml:
15103         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15104         * doc/reference/tmpl/rb-shell-glue.sgml:
15105         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15106         * doc/reference/tmpl/rb-shell-player.sgml:
15107         * doc/reference/tmpl/rb-shell-preferences.sgml:
15108         * doc/reference/tmpl/rb-shell.sgml:
15109         * doc/reference/tmpl/rb-song-display-box.sgml:
15110         * doc/reference/tmpl/rb-song-info.sgml:
15111         * doc/reference/tmpl/rb-source-header.sgml:
15112         * doc/reference/tmpl/rb-source.sgml:
15113         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15114         * doc/reference/tmpl/rb-sourcelist.sgml:
15115         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15116         * doc/reference/tmpl/rb-statusbar.sgml:
15117         * doc/reference/tmpl/rb-stock-icons.sgml:
15118         * doc/reference/tmpl/rb-string-helpers.sgml:
15119         * doc/reference/tmpl/rb-thread.sgml:
15120         * doc/reference/tmpl/rb-tray-icon.sgml:
15121         * doc/reference/tmpl/rb-tree-dnd.sgml:
15122         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15123         * doc/reference/tmpl/rb-util.sgml:
15124         * doc/reference/tmpl/rhythmbox-unused.sgml:
15125         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15126         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15127         * doc/reference/tmpl/rhythmdb-tree.sgml:
15128         * doc/reference/tmpl/rhythmdb.sgml: update for changes
15129         
15130         * doc/reference/Makefile.am: make docs build with changed ipod support
15131         
15132         * po/POTFILES.in: remove sources/itunesdb
15134 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
15136         * sources/itunesdb.c:
15137         * sources/itunesdb.h: removed now useless files
15139 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
15141         * configure.ac:
15142         * shell/Makefile.am:
15143         * sources/Makefile.am:
15144         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
15145         code
15146         [1]: http://www.gtkpod.org/libgpod.html
15149 2005-10-18  James Livingston  <jrl@ids.org.au>
15151         patch from Funda Wang <fundawang@linux.net.cn>
15153         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
15154         the notification bubble string translatable.
15156 ============ Version 0.9.1
15158 2005-10-16  James Livingston  <jrl@ids.org.au>
15160         * configure.ac: bump version to 0.9.1
15161         * NEWS: update translation credits
15163 2005-10-16  James Livingston  <jrl@ids.org.au>
15165         * rhythmdb/rhythmdb-query-model.c:
15166         (rhythmdb_query_model_class_init),
15167         (rhythmdb_query_model_drag_data_received): 
15168         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
15169         notified when things are dropped into the entry view.
15170         
15171         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15172         (rb_playlist_source_add_location_swapped),
15173         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
15174         (rb_playlist_source_non_entry_dropped),
15175         (rb_playlist_source_row_inserted): Use the new signal so that dropping
15176         things onto a playlist's entry view work correctly, and doesn't cause
15177         crashes. Allow folders to be dropped as well. (Closes 318308)
15179 2005-10-16  James Livingston  <jrl@ids.org.au>
15181         * NEWS: Update some more
15183         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15184         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
15185         with the paned size, so that it doesn't move when the window is
15186         maximised/restored. Closes bug 315852.
15188         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
15189         display the playcount column, as it's useless (it never get changed).
15191 2005-10-14  James Livingston  <jrl@ids.org.au>
15193         * Makefile.am:
15194         * data/Makefile.am:
15195         * doc/reference/Makefile.am: get "make distcheck" to pass again
15197 2005-10-11  James Livingston  <jrl@ids.org.au>
15199         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
15200         destroy the connection when retrieving the playlists fails, because
15201         tracks have already been added. Closes 318380.
15203 2005-10-11  James Livingston  <jrl@ids.org.au>
15205         * sources/rb-sourcelist.c: (rb_sourcelist_append),
15206         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
15207         (source_name_edited_cb): Ask for the columns to be resized when a
15208         source is added, deleted or changes name.
15210 2005-10-11  James Livingston  <jrl@ids.org.au>
15212         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
15213         create a thread when processing a directory. This stops up created one
15214         thread for each file in a playlist we're trying to load. Closes
15215         317850.
15217         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
15218         typo that made sort-by-artist not work correctly.
15220 2005-10-11  James Livingston  <jrl@ids.org.au>
15222         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
15223         support is enabled
15225 2005-10-11  James Livingston  <jrl@ids.org.au>
15227         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
15228         * lib/rb-file-helpers.h: add a function to turn uris into our
15229         canonical path-escaped form
15230         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
15231         above function when import playlists. This will fix the problem of
15232         duplicate entries due to different representations of the uri (bug
15233         158211).
15235 2005-10-11  James Livingston  <jrl@ids.org.au>
15237         * shell/rb-shell.c: (rb_shell_get_visibility),
15238         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
15239         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
15240         window hiding so that Alt-F4 works again.
15242         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
15243         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
15244         (rb_entry_view_string_sort_func): Stop some crashes where a string
15245         property was set to NULL.
15247 2005-10-10  James Livingston  <jrl@ids.org.au>
15249         * doc/reference/rhythmbox.types: fix gtk-doc generation
15251 2005-10-09  James Livingston  <jrl@ids.org.au>
15253         * sources/rb-sourcelist.c: (rb_sourcelist_init):
15254         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
15255         accelerators, so that we don't have as many conflicting keys.
15257 2005-10-08  James Livingston  <jrl@ids.org.au>
15259         * data/iradio-initial.pls: Update the list of radio stations. Thanks
15260         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
15261         bug 129285.
15263 2005-10-07  James Livingston  <jrl@ids.org.au>
15265         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
15266         local path names in the same way as every other URI. This should stop
15267         duplicates occurring due to different escapings. Closes bug 158211.
15269 2005-10-06  James Livingston  <jrl@ids.org.au>
15271         * NEWS: more updates
15272         
15273         patch from Jaap Haitsma <jaap@haitsma.org>:
15275         * configure.ac:
15276         * data/Makefile.am:
15277         * data/art/Makefile.am:
15278         - data/art/rhythmbox-paused.png:
15279         - data/art/rhythmbox-playback-error.png:
15280         - data/art/rhythmbox-playing.png:
15281         - data/art-clearlooks/:
15282         * lib/rb-file-helpers.c: (rb_file):
15283         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15284         * lib/rb-stock-icons.h:
15285         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
15286         * widgets/rb-cell-renderer-pixbuf.c:
15287         (rb_cell_renderer_pixbuf_render):
15288         * widgets/rb-entry-view.c: (rb_entry_view_init),
15289         (rb_entry_view_set_playing):
15290         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
15291         stock icons instead of custom art. Drop remanents of art-clearlooks.
15293 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
15295         * configure.ac: Added ne in ALL_LINGUAS
15297 2005-10-02  James Livingston  <jrl@ids.org.au>
15299         * data/glade/Makefile.am: actually install the daap prefs glade file
15301 2005-09-30  James Livingston  <jrl@ids.org.au>
15303         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15304         translatable files, so that make check works and we don't annoy the
15305         translators.
15306         
15307         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15308         sanity checking, in case a db entry is missing some properties.
15310 2005-09-29  James Livingston  <jrl@ids.org.au>
15312         - lib/rb-string-helpers.c:
15313         - lib/rb-string-helpers.h:
15314         * lib/Makefile.am:
15315         * rhythmdb/rhythmdb-tree.c:
15316         * rhythmdb/rhythmdb.c:
15317         * shell/main.c: (main):
15318         * shell/rb-shell.c:
15319         * widgets/rb-entry-view.c:
15320         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15321         utility functions haven't been used in a while.
15323 2005-09-27  James Livingston  <jrl@ids.org.au>
15325         * data/art-clearlooks/Makefile.am:
15326         - data/art-clearlooks/rhythmbox-album.png:
15327         - data/art-clearlooks/rhythmbox-audiocd.png:
15328         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15329         - data/art-clearlooks/rhythmbox-dnd.png:
15330         - data/art-clearlooks/rhythmbox-ipod.png:
15331         - data/art-clearlooks/rhythmbox-iradio.png:
15332         - data/art-clearlooks/rhythmbox-library.png:
15333         - data/art-clearlooks/rhythmbox-next.png:
15334         - data/art-clearlooks/rhythmbox-pause.png:
15335         - data/art-clearlooks/rhythmbox-play.png:
15336         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15337         - data/art-clearlooks/rhythmbox-playlist.png:
15338         - data/art-clearlooks/rhythmbox-previous.png:
15339         - data/art-clearlooks/rhythmbox-repeat.png:
15340         - data/art-clearlooks/rhythmbox-rewind.png:
15341         - data/art-clearlooks/rhythmbox-shuffle.png:
15342         - data/art-clearlooks/rhythmbox-stop.png:
15343         - data/art-clearlooks/rhythmbox-visuals.png:
15344         - data/art-clearlooks/rhythmbox-volume-max.png:
15345         - data/art-clearlooks/rhythmbox-volume-medium.png:
15346         - data/art-clearlooks/rhythmbox-volume-min.png:
15347         - data/art-clearlooks/rhythmbox-volume-mute.png:
15348         - data/art-clearlooks/rhythmbox-volume-zero.png:
15349         * data/art/Makefile.am:
15350         - data/art/rhythmbox-album.png:
15351         - data/art/rhythmbox-audiocd.png:
15352         - data/art/rhythmbox-automatic-playlist.png:
15353         - data/art/rhythmbox-dnd.png:
15354         - data/art/rhythmbox-ipod.png:
15355         - data/art/rhythmbox-iradio.png:
15356         - data/art/rhythmbox-library.png:
15357         - data/art/rhythmbox-next.png:
15358         - data/art/rhythmbox-pause.png:
15359         - data/art/rhythmbox-play.png:
15360         - data/art/rhythmbox-playlist-menu.png:
15361         - data/art/rhythmbox-playlist.png:
15362         - data/art/rhythmbox-previous.png:
15363         - data/art/rhythmbox-repeat.png:
15364         - data/art/rhythmbox-rewind.png:
15365         - data/art/rhythmbox-shuffle.png:
15366         - data/art/rhythmbox-stop.png:
15367         - data/art/rhythmbox-visuals.png:
15368         - data/art/rhythmbox-volume-max.png:
15369         - data/art/rhythmbox-volume-medium.png:
15370         - data/art/rhythmbox-volume-min.png:
15371         - data/art/rhythmbox-volume-mute.png:
15372         - data/art/rhythmbox-volume-zero.png:
15373         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15374         * lib/rb-stock-icons.h:
15375         * shell/rb-playlist-manager.c:
15376         * shell/rb-shell-player.c:
15377         * sources/rb-daap-source.c: (rb_daap_get_icon):
15378         * sources/rb-ipod-source.c:
15379         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15380         * sources/rb-library-source.c: (rb_library_source_new):
15381         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15382         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15383         that hasn't been used in a LONG time, and also remove art that are
15384         now stock icons.
15386 2005-09-27  James Livingston  <jrl@ids.org.au>
15388         * README: point to the gnome.org web sites, and update the example
15389         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15390         
15391         * rhythmdb/rhythmdb-query-model.c:
15392         (rhythmdb_query_model_set_property),
15393         (rhythmdb_query_model_get_property),
15394         (rhythmdb_query_model_finalize):
15395         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15396         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15397         * rhythmdb/rhythmdb.h:
15398         * sources/rb-iradio-source.c: (impl_search):
15399         * sources/rb-library-source.c: (impl_search): Add query
15400         "preprocessing", which performs operations such as casefolding any
15401         strings that will be compared to any of the *_FOLDED properties.
15402         Closes bug 316039
15404 2005-09-27  James Livingston  <jrl@ids.org.au>
15406         * data/glade/daap-prefs.glade:
15407         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15408         file for the daap preferences pane
15409         
15410         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15411         (rb_sourcelist_append), (rb_sourcelist_remove),
15412         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15413         don't display the column for source expanders unless there is an
15414         expandable source.
15416 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15418         * .cvsignore:
15419         * Makefile.am:
15420         * configure.ac:
15421         * doc/.cvsignore:
15422         * doc/Makefile.am:
15423         * doc/reference/.cvsignore:
15424         * doc/reference/Makefile.am:
15425         * doc/reference/rhythmbox-docs.sgml:
15426         * doc/reference/rhythmbox-sections.txt:
15427         * doc/reference/rhythmbox.types:
15428         * doc/reference/tmpl/bacon-volume.sgml:
15429         * doc/reference/tmpl/disclosure-widget.sgml:
15430         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15431         * doc/reference/tmpl/eggnotificationbubble.sgml:
15432         * doc/reference/tmpl/eggtrayicon.sgml:
15433         * doc/reference/tmpl/gsequence.sgml:
15434         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15435         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15436         * doc/reference/tmpl/rb-daap-connection.sgml:
15437         * doc/reference/tmpl/rb-daap-dialog.sgml:
15438         * doc/reference/tmpl/rb-daap-mdns.sgml:
15439         * doc/reference/tmpl/rb-daap-share.sgml:
15440         * doc/reference/tmpl/rb-daap-sharing.sgml:
15441         * doc/reference/tmpl/rb-daap-source.sgml:
15442         * doc/reference/tmpl/rb-daap-src.sgml:
15443         * doc/reference/tmpl/rb-daap-structure.sgml:
15444         * doc/reference/tmpl/rb-debug.sgml:
15445         * doc/reference/tmpl/rb-dialog.sgml:
15446         * doc/reference/tmpl/rb-druid.sgml:
15447         * doc/reference/tmpl/rb-entry-view.sgml:
15448         * doc/reference/tmpl/rb-enums.sgml:
15449         * doc/reference/tmpl/rb-file-helpers.sgml:
15450         * doc/reference/tmpl/rb-glade-helpers.sgml:
15451         * doc/reference/tmpl/rb-header.sgml:
15452         * doc/reference/tmpl/rb-history.sgml:
15453         * doc/reference/tmpl/rb-ipod-source.sgml:
15454         * doc/reference/tmpl/rb-iradio-source.sgml:
15455         * doc/reference/tmpl/rb-library-source.sgml:
15456         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15457         * doc/reference/tmpl/rb-metadata.sgml:
15458         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15459         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15460         * doc/reference/tmpl/rb-play-order-linear.sgml:
15461         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15462         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15463         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15464         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15465         * doc/reference/tmpl/rb-play-order-random.sgml:
15466         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15467         * doc/reference/tmpl/rb-play-order.sgml:
15468         * doc/reference/tmpl/rb-player.sgml:
15469         * doc/reference/tmpl/rb-playlist-manager.sgml:
15470         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15471         * doc/reference/tmpl/rb-playlist-source.sgml:
15472         * doc/reference/tmpl/rb-preferences.sgml:
15473         * doc/reference/tmpl/rb-property-view.sgml:
15474         * doc/reference/tmpl/rb-query-creator-private.sgml:
15475         * doc/reference/tmpl/rb-query-creator.sgml:
15476         * doc/reference/tmpl/rb-rating-helper.sgml:
15477         * doc/reference/tmpl/rb-rating.sgml:
15478         * doc/reference/tmpl/rb-recorder.sgml:
15479         * doc/reference/tmpl/rb-refstring.sgml:
15480         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15481         * doc/reference/tmpl/rb-removable-media-source.sgml:
15482         * doc/reference/tmpl/rb-search-entry.sgml:
15483         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15484         * doc/reference/tmpl/rb-shell-glue.sgml:
15485         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15486         * doc/reference/tmpl/rb-shell-player.sgml:
15487         * doc/reference/tmpl/rb-shell-preferences.sgml:
15488         * doc/reference/tmpl/rb-shell.sgml:
15489         * doc/reference/tmpl/rb-song-display-box.sgml:
15490         * doc/reference/tmpl/rb-song-info.sgml:
15491         * doc/reference/tmpl/rb-source-header.sgml:
15492         * doc/reference/tmpl/rb-source.sgml:
15493         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15494         * doc/reference/tmpl/rb-sourcelist.sgml:
15495         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15496         * doc/reference/tmpl/rb-statusbar.sgml:
15497         * doc/reference/tmpl/rb-stock-icons.sgml:
15498         * doc/reference/tmpl/rb-string-helpers.sgml:
15499         * doc/reference/tmpl/rb-thread.sgml:
15500         * doc/reference/tmpl/rb-tray-icon.sgml:
15501         * doc/reference/tmpl/rb-tree-dnd.sgml:
15502         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15503         * doc/reference/tmpl/rb-util.sgml:
15504         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15505         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15506         * doc/reference/tmpl/rhythmdb-tree.sgml:
15507         * doc/reference/tmpl/rhythmdb.sgml:
15508         * macros/.cvsignore:
15509         * shell/Makefile.am:
15510         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15511         (rb_source_finalize), (rb_source_set_property),
15512         (rb_source_get_property), (default_get_pixbuf),
15513         (_rb_source_show_popup):
15514         * sources/rb-source.h:
15515         Add support for gtk-doc in rhythmbox.
15516         Convert RBSource to use newer glib functions, such as add_private.
15517         Gives RBSource a default get_pixbuf implementation.
15519 2005-09-25  James Livingston  <jrl@ids.org.au>
15521         * NEWS: Update with about a months worth of changes
15523         * data/glade/song-info-multiple.glade:
15524         * data/glade/song-info.glade:
15525         * data/rhythmbox.schemas:
15526         * lib/rb-preferences.h:
15527         * rhythmdb/rhythmdb.h:
15528         * shell/rb-shell-player.c:
15529         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15530         few remaining parts of autorating.
15532 2005-09-24  James Livingston  <jrl@ids.org.au>
15534         * shell/rb-shell.c: (rb_shell_constructor),
15535         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15536         (rb_shell_window_configure_cb): store window state in the gconf keys,
15537         so that it gets used. Closes bugs 313893 and 137068.
15539 2005-09-20  James Livingston  <jrl@ids.org.au>
15541         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15542         crash if the entry has a NULL string in a property
15543         
15544         * shell/rb-removable-media-manager.c:
15545         (rb_removable_media_manager_load_media): fix some memory leaks
15546         
15547         (rb_removable_media_manager_mount_volume),
15548         (rb_removable_media_manager_eject_medium_cb),
15549         (rb_removable_media_manager_cmd_eject_medium): use
15550         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15551         
15552         * sources/rb-removable-media-source.c:
15553         (rb_removable_media_source_set_property),
15554         (rb_removable_media_source_get_property): use
15555         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15557 2005-09-18  James Livingston  <jrl@ids.org.au>
15559         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15560         column
15562         * data/glade/general-prefs.glade:
15563         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15564         (rb_shell_preferences_column_check_changed_cb),
15565         (rb_shell_preferences_sync): add checkbox to control visibility
15566         of the column
15567         
15568         
15569         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15570         (save_entry):
15571         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15572         (rhythmdb_prop_get_type):
15573         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15574         was as "last played" is handled
15575         
15576         * sources/rb-library-source.c: (rb_library_source_constructor):
15577         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15578         Make the column show in the library and playlists
15579         
15580         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15581         * widgets/rb-entry-view.h: add the column
15582         
15583         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15584         be sorted by the column
15586 2005-09-16  James Livingston  <jrl@ids.org.au>
15588         * shell/rb-shell-player.c: (rb_shell_player_init),
15589         (rb_shell_player_do_previous_or_seek),
15590         (rb_shell_player_previous_button_cb),
15591         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15592         (rb_shell_player_playpause_button_cb): Make the previous button act
15593         the same as the menu item. Fix an inversion of the "previous track or
15594         seek" logic.
15595         
15596         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15597         
15598         (rb_shell_player_playpause): make --play-pause stop source that can't
15599         be paused
15601 2005-09-15  James Livingston  <jrl@ids.org.au>
15603         * configure.ac: increase totem-plparser requirements to 1.1.5
15605         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15606         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15607         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15608         use the newer playlist APIs to save the name of the playlist, and use
15609         the name of a loaded playlist.
15611         Closes bug 309817.
15613 2005-09-15  James Livingston  <jrl@ids.org.au>
15615         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15617         * shell/Makefile.am: stop some linker warnings
15619         * shell/main.c: (main): make --no-registration work with dbus
15621 2005-09-15  James Livingston  <jrl@ids.org.au>
15623         * daapsharing/rb-daap-sharing.c: (create_share):
15624         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15625         reference sinking and counting issues that I caused.
15627 2005-09-15  James Livingston  <jrl@ids.org.au>
15629         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15630         playing" icon in the "now playing" column header.
15632 2005-09-14  James Livingston  <jrl@ids.org.au>
15634         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15635         daap shares, when sharing is turned off.
15637 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15639         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15640         the GConf value's default, especially for badly installed schema
15641         files
15643 2005-09-12  James Livingston  <jrl@ids.org.au>
15645         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15647         Patch from Paolo Borelli <pborelli@katamail.com>
15649         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15650         grip when maximised. Closes bug 316055.
15652 2005-09-11  James Livingston  <jrl@ids.org.au>
15654         Patch from William Jon McCann <mccann@jhu.edu>
15656         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15657         subclass of GtkStatusbar instead of GtkHBox.
15658         (rb_statusbar_construct): Don't set border width.
15659         (rb_statusbar_init): Use resize grip.  Don't use
15660         markup.
15661         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15662         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15663         Connect tooltips for actions.
15664         (rb_statusbar_sync_status): Push new message to statusbar.
15665         (rb_statusbar_set_progress): Don't use markup.
15666         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15667         flag here since it prevents actually showing or hiding.
15668         (rb_statusbar_sync_with_source): Push new message to statusbar.
15670 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15672         * daapsharing/rb-daap-structure.c:
15673         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15674         around debugging definition.
15676 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15677         
15678         * daapsharing/rb-daap-structure.c:
15679         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15680         type = version.
15682         * daapsharing/rb-daap-mdns.c/h:
15683         (resolve_cb): Updated mDNS resolve callback to send service-name &
15684         name (read from Machine Name in the TXT data or equal to service-name
15685         if not in TXT).
15687         * daapsharing/rb-daap-source.c:
15688         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15689         (rb_daap_source_get_property), (rb_daap_source_new),
15690         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15691         (stop_resolver), (start_browsing), (stop_browsing), 
15692         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15693         and added 'host' and 'port' gobject properties.  Updated to use new
15694         mDNS resolve callback sending service-name & name arguments.
15696 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15698         * daapsharing/rb-daap-mdns.c:
15699         (howl_strerror): New function to report errors from Howl
15700         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15701         (get_sw_discovery), (get_avahi_client): Better error reporting from
15702         Howl & Avahi.
15704         * sources/rb-daap-source.:
15705         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15706         not get started or stopped in some situations.
15707         
15708 2005-09-12  James Livingston  <jrl@ids.org.au>
15710         * shell/rb-removable-media-manager.c: add a missing include, that
15711         would stop compilation if ipod support wasn't turned on
15713 2005-09-11  James Livingston  <jrl@ids.org.au>
15715         * daapsharing/rb-daap-dialog.c: (encode_base64),
15716         (rb_daap_password_dialog_new_run),
15717         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15718         it is no broken in to two pieces, and remove a use of a goto
15719         
15720         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15721         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15722         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15723         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15724         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15725         memory leaks, and some code style things.
15726         
15727         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15728         (rb_daap_share_init), (rb_daap_share_set_property),
15729         (rb_daap_share_dispose), (rb_daap_share_new),
15730         (rb_daap_share_get_property): make the DB and the playlist manager
15731         gobject properties.
15732         
15733         (message_add_standard_headers),
15734         (message_set_from_rb_daap_structure), (server_info_cb),
15735         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15736         (server_cb), (add_db_entry), (db_entry_added_cb),
15737         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15738         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15739         style and use CONF_PREFIX in the gconf keys
15740         
15741         * daapsharing/rb-daap-sharing.c: (create_share),
15742         (enable_sharing_changed_cb), (share_name_changed_cb),
15743         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15744         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15745         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15746         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15747         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15748         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15749         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15750         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15751         hasn't actually changed, fix some memory leaks, code style and release
15752         gconf notifications when the object is destroyed.
15753         
15754         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15755         (rb_daap_source_class_init), (rb_daap_source_init),
15756         (rb_daap_source_dispose), (rb_daap_source_set_property),
15757         (rb_daap_source_get_property), (rb_daap_source_new),
15758         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15759         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15760         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15761         (rb_daap_source_activate), (rb_daap_source_disconnect),
15762         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15763         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15764         release gconf notifications, handle gconf callbacks where the key
15765         hasn't changed, make "real name" and "password protected" gobject
15766         properties, fix some code style and fix a memory leak.
15768 2005-09-11  James Livingston  <jrl@ids.org.au>
15770         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15772         * shell/rb-playlist-manager.c:
15773         (rb_playlist_manager_save_playlists),
15774         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15775         when we aren't supposed to. (Closes bug 315886)
15777 2005-09-11  James Livingston  <jrl@ids.org.au>
15779         * shell/rb-removable-media-manager.c:
15780         (rb_removable_media_manager_class_init),
15781         (rb_removable_media_manager_init),
15782         (rb_removable_media_manager_dispose),
15783         (rb_removable_media_manager_set_property),
15784         (rb_removable_media_manager_get_property),
15785         (rb_removable_media_manager_new),
15786         (rb_removable_media_manager_load_media),
15787         (rb_removable_media_manager_volume_mounted_cb),
15788         (rb_removable_media_manager_volume_unmounted_cb),
15789         (rb_removable_media_manager_mount_volume),
15790         (rb_removable_media_manager_unmount_volume),
15791         (rb_removable_media_manager_source_deleted_cb),
15792         (rb_removable_media_manager_append_media_source),
15793         (rb_removable_media_manager_set_uimanager),
15794         (rb_removable_media_manager_eject_medium_cb),
15795         (rb_removable_media_manager_cmd_eject_medium):
15796         * shell/rb-removable-media-manager.h:
15797         * sources/rb-removable-media-source.c:
15798         (rb_removable_media_source_class_init),
15799         (rb_removable_media_source_init),
15800         (rb_removable_media_source_dispose),
15801         (rb_removable_media_source_set_property),
15802         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15803         (impl_delete_thyself):
15804         * sources/rb-removable-media-source.h: Add the four files that I
15805         somehow managed not to add to cvs in the last commit. Oops.
15807 2005-09-11  James Livingston  <jrl@ids.org.au>
15809         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15810         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15811         
15812         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15813         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15814         removable-media-manager on startup, and handle creation of sources.
15815         
15816         * sources/rb-ipod-source.h:
15817         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15818         (rb_ipod_source_init), (rb_ipod_source_constructor),
15819         (rb_ipod_source_dispose), (rb_ipod_source_new),
15820         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15821         the iPod source over to the removable media framework.
15822         
15823         * sources/rb-library-source.c: (paned_size_allocate_cb),
15824         (rb_library_source_get_paned_key): fix a potential bug is a
15825         library-derived source doesn't have a paned-key
15827 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15829         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15830         mp3 when we can't get the suffix of a file (Closes: #315941)
15832 2005-09-10  James Livingston  <jrl@ids.org.au>
15834         * configure.ac: fix the mdns tests, so that it doesn't complain about
15835         not finding one, if daap support isn't being compiled in
15837 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15839         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15841         * daapsharing/rb-daap-dialog.c:
15842         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15843         HIG compliancy & images.
15845         * daapsharing/rb-daap-mdns.c:
15846         (browse_cb), (resolve_cb): Better detection of local services.  
15847         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15848         Howl's limitations.  Fix the way collision handling is done under
15849         Avahi.
15851         * daapsharing/rb-daap-share.c:
15852         (publish_cb): Better name collision handling (at least for Avahi).
15854 2005-09-10  James Livingston  <jrl@ids.org.au>
15856         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15857         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15858         preferences more HIG compliant (Closes #315889)
15859         
15860         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15861         list of files to be translated
15863 2005-09-10  James Livingston  <jrl@ids.org.au>
15865         * configure.ac: fix it so that --enable-daap=no works
15866         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15867         uninstalled
15869 2005-09-10  James Livingston  <jrl@ids.org.au>
15871         Patch from Christophe Fergeau <teuf@gnome.org>
15873         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15874         the ipod code.
15876 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15877         * README.daap: Updating documentation
15879 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15880         * AUTHORS: Added myself.
15882         * daapsharing/rb-daap-connection.c:
15883         (connection_login), (rb_connection_new): Reorganized password
15884         handling.
15886         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15888         * shell/rb-shell.c:
15889         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15891         * sources/rb-daap-source.c:
15892         (rb_daap_source_activate): Better error handling when we are unable to
15893         connect.
15894         
15895 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15896         * README.daap: Fixed some terminology.
15898         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15899         New --with-mdns=auto|howl|avahi flag to specify.
15901         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15902         name collision dialogs.
15904         * daapsharing/rb-daap-connection.c:
15905         (connection_get_password), (build_message), (http_get)
15906         (connection_login): Ask for & use a password if the share demands it.
15908         * daapsharing/rb-daap-connection.h: Changed prototype of
15909         rb_daap_connection_new.
15910         
15911         * daapsharing/rb-daap-mdns.c: 
15912         (resolve_cb): Better detection of your own music share so it doesn't 
15913         appear in the sourcelist.
15915         * daapsharing/rb-daap-share.c:
15916         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15917         that start on any available port.
15919         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15921         * sources/rb-daap-source.c:
15922         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15923         (browse_cb): Handle passworded shares. Resolve the host immediately
15924         instead of when activated.
15925         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15926         (rb_daap_source_new): New GConf keys for UI state.
15927         (rb_daap_source_activate): Use RBPlaylistSource instead of
15928         RBDAAPPlaylistSource
15929         
15930         * sources/rb-daap-playlist-source.c/h: Removed
15932         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15933         if the playlist is local (i.e. not DAAP or iPod).
15934         
15935         * shell/rb-playlist-manager.c:
15936         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15937         wouldn't get saved if the last playlist hadn't changed.  Only save
15938         local playlists.
15939         
15940 2005-09-09  James Livingston  <jrl@ids.org.au>
15942         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15943         iPod preferences pane, as it already uses the browser views as the
15944         library.
15946 2005-09-09  James Livingston  <jrl@ids.org.au>
15948         * sources/rb-library-source.c: (rb_library_source_finalize),
15949         (rb_library_source_constructor): fix gconf monitoring of library
15950         preference keys.
15951         * sources/rb-library-source.h: remove declaration of function that
15952         does not exist
15954 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15956         * player/rb-player-gst.c:
15957         (rb_player_set_time): Fix seeking in daap streams.
15959 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15961         * data/rhythmbox.schemas: Turn music share browsing on by default.
15963 2005-09-07  James Livingston  <jrl@ids.org.au>
15965         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15967 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15968         * player/rb-player-gst.c: 
15969         (rb_player_get_time): Fix for extra << & == that accidentally made
15970         it in.
15972         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15973         
15974 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15975         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15976         it in last time.  Sorry.
15978 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15979         
15980         * player/rb-player-gst.c:
15981         (rb_player_get_time): Fix a small crash appearing when
15982         the uri isn't set in the player, but rb_player_get_time() is
15983         still called.
15985         * configure.ac: Also check for libsoup 2.4, which is what ships with
15986         Gnome 2.12.
15988         * po/POTFILES.in: Added music sharing files that have translatable 
15989         strings.
15991         * README.daap: New file explaining "How Music Sharing Works"  
15993 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15995         * daapsharing/.cvsignore: added
15997 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15999         * daapsharing/*: Music sharing library.
16000         
16001         * sources/rb-daap-source.c/h: Music share RBSource.
16002         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
16004         * configure.ac: --enable-daap flag to turn on music sharing. Requires
16005         libsoup and a mutlicast DNS implementation (howl or avahi).
16007         * data/rhythmbox.schemas: New GConf keys for music sharing.
16009         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
16010         source right click menu.
16012         * player/rb-player-gst.c: Changes to properly play & seek in remote
16013         music share files.
16015         * shell/rb-playlist-manager.c/h:
16016         (rb_playlist_manager_get_playlists): New function to get a GList * of
16017         the playlists.
16018         (rb_playlist_manager_save_playlists): Don't save music share playlists
16019         and fixed a GObject reference leak.
16021         * shell/rb-shell.c/h:
16022         (rb_shell_append_source): No longer a local function.  Now takes a
16023         parent RBSource * argument, NULL to append a toplevel source.
16024         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
16025         source (useful for disconnecting from remote music share,
16026         specifically).
16027         (rb_shell_quit): Stop music sharing/browsing.
16028         (rb_shell_playlist_added_cb): Work with tree source structure.
16029         (rb_shell_get_property): "playlist-manager" property accessor.
16030         (rb_shell_class_init): New "playlist-manager" property.
16031         (rb_shell_construor): Append sources as toplevel sources.  Initialize
16032         daap sharing/browsing.
16033         (rb_shell_select_source): Notify source of activation/deactivation.
16035         * shell/rb-shell-prefernces.c: Music sharing preferences.
16037         * sources/rb-source.c/h: New activate, deactivate and disconnect
16038         class functions.  Activate & deactivate are notification style 
16039         functions that will tell a source when it is selected/unselected.
16040         Disconnect can be hooked up to a UI object to disconnect the source.
16042         * sources/rb-sourcelist-model.c:
16043         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
16044         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
16045         append a toplevel source.
16047 2005-09-05  James Livingston  <jrl@ids.org.au>
16049         * rhythmdb/rhythmdb-query-model.c:
16050         (rhythmdb_query_model_entry_changed_cb),
16051         (rhythmdb_query_model_do_reorder): Update the query model's totals if
16052         the duration of filesize of an entry changes.  Emit the row-changed
16053         signals that I forgot to put back in, when I was doing query sorting.
16055         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
16056         out "0 minutes" or "0 bytes".
16058 2005-09-04  James Livingston  <jrl@ids.org.au>
16060         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
16061         remove a leftover bit of the "internal-name" property of sources.
16063 2005-09-03  James Livingston  <jrl@ids.org.au>
16065         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
16066         extraneous debug message
16067         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
16068         crasher would affect any library-derived sources (which was also a
16069         memory leak).
16071 2005-09-02  Colin Walters  <walters@verbum.org>
16073         * configure.ac: Fix sytnax error.
16075         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
16076         code to disable minimization icons - need to figure out
16077         why it doesn't work...
16079 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
16081         * data/glade/song-info-multiple.glade:
16082         * data/glade/song-info.glade:
16083         * widgets/rb-song-info.c: (rb_song_info_constructor):
16084         Add a mnemonic to the newly added "Automatically rate" label
16085         in the properties dialog and use a bold typeface like all the 
16086         other labels in the dialog. (Closes bug 315089)
16088 2005-09-03  James Livingston  <jrl@ids.org.au>
16090         * sources/rb-library-source.c: (rb_library_source_class_init),
16091         (rb_library_source_finalize), (rb_library_source_constructor),
16092         (rb_library_source_set_property), (rb_library_source_get_property),
16093         (impl_get_paned_key), (paned_size_allocate_cb),
16094         (rb_library_source_state_prefs_sync), (impl_show_popup),
16095         (rb_library_source_get_paned_key):
16096         * sources/rb-library-source.h: Allow sources derived from
16097         RBLibrarySource to use different gconf keys for sort order, browser
16098         visibility and browser pane position. Fix a crasher if a derived
16099         source overrides _get_pixbuf.
16101 2005-09-02  Colin Walters  <walters@verbum.org>
16103         * shell/rb-shell.c (rb_shell_set_visibility): Move
16104         hint setting which seems to avoid races more.
16105         
16106 2005-09-03  James Livingston  <jrl@ids.org.au>
16108         * shell/rb-shell.c: fix compilation with iPod support enabled
16109         
16110 2005-09-02  Colin Walters  <walters@verbum.org>
16112         * shell/rb-shell.c (struct RBShellPrivate): Add
16113         idle_hide_mainwindow_id.
16114         (rb_shell_constructor): Move taskbar skipping hint into
16115         rb_shell_set_visibility.
16116         (idle_hide_mainwindow): New function.
16117         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
16118         racy hack to avoid rb appearing in taskbar when minimized.
16120 2005-09-01  Colin Walters  <walters@verbum.org>
16122         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
16124         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
16125         from gtkstatusicion.c.
16127         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
16129         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
16130         TrayShowWindow entry.
16131         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
16132         (rb_tray_icon_constructor): Create action group here.
16133         (rb_tray_icon_finalize): Destroy action group.
16134         (rb_tray_icon_set_property): Don't take an action group.
16135         (rb_tray_icon_new): Ditto.
16136         (tray_popup_position_menu): Some mostly boilerplate code
16137         to position menu.
16138         (rb_tray_icon_button_press_event_cb): Position menu.
16139         (rb_tray_icon_get_geom): New function used for the shell
16140         to set minimization hints.
16142         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
16144         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
16145         (struct RBShellPrivate): Change visible to iconified.
16146         (set_icon_geometry): New function from Søren Sandmann to
16147         tell Metacity where to draw the minimization animiation.
16148         (rb_shell_window_state_cb): Update iconified.
16149         (rb_shell_get_visibility): New function to say whether
16150         or not we're currently visible.
16151         (rb_shell_set_visibility): Update to minimize to
16152         tray or present as appropriate.
16153         (rb_shell_window_delete_cb): On window close, just
16154         minimize to tray if we're deleted.
16155         (rb_shell_set_window_title): Kill old notification code.
16156         (rb_shell_toggle_visibility): Nwe function.
16157         (rb_shell_cmd_toggle_visibility): Call it.
16158         (rb_shell_constructor): Skip the taskbar.
16159         (tray_destroy_cb): Better debugging.
16160         
16161 2005-09-01  Colin Walters  <walters@verbum.org>
16163         * data/ui/rhythmbox-ui.xml: Add MusicClose.
16165         * configure.ac: Enable bonobo by default.
16166         
16167 2005-09-01  Colin Walters  <walters@verbum.org>
16169         * configure.ac: Default to old art.  Add macros subdir.
16171         * Makefile.am (SUBDIRS): Add macros.
16173         * macros/Makefile.am: New.
16174         
16175 2005-09-01  Colin Walters  <walters@verbum.org>
16177         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
16178         rb-shell-player.xml.
16180         * remote/dbus/rb-remote-dbus.h: Deleted.
16181         
16182         * remote/dbus/Makefile.am: Delete all the junk, just dist
16183         rb-print-playing.py and rb-set-rating.py.
16185         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
16187         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
16189 2005-09-02  James Livingston  <jrl@ids.org.au>
16191         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
16192         file from cvs
16194         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
16195         (rb_shell_constructor): Patches from Jonathan Matthew
16196         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
16197         a crash when using "browse this artist".
16199 2005-08-31  Colin Walters  <walters@verbum.org>
16201         * configure.ac: Add --with-old-art configure switch.  Also
16202         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
16203         but it doesn't work.
16205         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
16206         Don't use eel_create_colorized_pixbuf for new art.
16207         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
16209         * data/art-clearlooks: New artwork.
16210         
16211 2005-08-31  Colin Walters  <walters@verbum.org>
16213         * shell/main.c (main): Fix Bastien's commit to continue to focus
16214         the window with GTK+ 2.8 at least.
16215         
16216 2005-08-31  Colin Walters  <walters@verbum.org>
16218         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
16219         is already loaded.
16221         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
16223 2005-08-31  Bastien Nocera  <hadess@hadess.net>
16225         * README: remove mentions of the xine-lib backend
16226         * shell/main.c: (main): make it compilable with gtk+ < 2.8
16228 2005-08-30  Colin Walters  <walters@verbum.org>
16230         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
16231         Make non-visible sources insensitive.
16232         
16233 2005-08-30  Colin Walters  <walters@verbum.org>
16235         * shell/rb-shell.c: Don't use GConf for selected source; it's
16236         confusing to have the selected source change after startup,
16237         and since we don't save other things it's not worth saving this.
16239         * sources/rb-playlist-source.c:
16240         * sources/rb-library-source.c:
16241         * sources/rb-iradio-source.c:
16242         * sources/rb-ipod-source.c: Delete internal-name property usage.
16243         * sources/rb-source.c: Delete internal-name property.
16245         * data/rhythmbox.schemas: Delete selected_source.
16246         
16247 2005-08-30  Colin Walters  <walters@verbum.org>
16249         * sources/rb-sourcelist.c: Make playing source bold instead of
16250         displaying a pixbuf; it's much less ugly.
16251         
16252 2005-08-30  Colin Walters  <walters@verbum.org>
16254         * sources/rb-source.c:
16255         * sources/rb-source.h: New virtual method try_playlist.
16257         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
16258         impl_try_playlist.
16259         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
16260         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
16261         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
16262         need to.
16263         (stations_view_drag_data_received_cb): Don't check for iradio uris;
16264         in theory we should though...
16266         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
16267         list in rb_shell_construct now.
16268         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
16269         RBiPodSource.
16270         (rb_shell_constructor): Create library, iradio, ipod here.
16271         (rb_shell_source_deleted_cb): Use source directly instead of
16272         indirecting through type.
16273         (rb_shell_sync_selected_source): Ditto.
16274         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
16275         from the type instead of special-casing.
16276         (rb_shell_guess_type_for_uri) 
16277         (rb_shell_add_uri)
16278         (handle_one_uri_with_possible_metadata): New functions.
16279         (rb_shell_load_uri): Refactor to allow loading playlists again,
16280         also use other URI infrastructure.
16282         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
16283         (rb_shell_player_error): Always set entry error on error, instead
16284         of depending on EOF behavior.
16286         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
16287         to just invoke rb_shell_add_uri.
16288         (rb_playlist_manager_parse_file): Return error instead of tossing
16289         up dialog box directly.
16290         (load_playlist_response_cb): Display error here.
16291         (add_uri_to_playlist): Delete.
16292         (handle_playlist_entry_into_playlist_cb): Renamed to
16293         handle_playlist_entry_cb.
16295         * shell/rb-playlist-manager.h: Add error, update prototype.
16297         * lib/rb-file-helpers.c:
16298         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16300 2005-08-29  Colin Walters  <walters@verbum.org>
16302         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16303         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16305         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16306         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16307         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16309         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16310         Prototype rb_shell_set_song_property.
16312         * shell/rb-shell.xml: Export setSongProperty.
16314         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16315         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16316         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16318         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16319         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16320         want to notify of the change.
16321         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16323         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16324         logic error; idle functions would be enqueued for each set.
16325         (rhythmdb_entry_set): Fix assertion logic error.
16327         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16328         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16329         Return if the entry already exists.
16330         
16331 2005-08-29  Colin Walters  <walters@verbum.org>
16333         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16334         "inserted" member which we use to keep track of
16335         whether or not an entry is in the DB.  Prototype
16336         rhythmdb_entry_set_uninserted.
16338         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16339         flag.
16340         (rhythmdb_entry_insert): Assert entry is not already inserted.
16341         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16342         just after creating entry.
16343         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16344         (rhythmdb_entry_set_nonotify): Ditto.
16345         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16346         entries.
16347         (rhythmdb_entry_set_internal): Change notify flag to
16348         notify_if_inserted.  Also move notification after assertions.
16350         Update all existing callers of rhythmdb_entry_set_internal
16351         to give TRUE for notify_if_inserted; this should be what
16352         we want but may be an efficiency hit.
16353         
16354 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16356         * shell/rb-shell-player.c: (rb_shell_player_init),
16357         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16358         (rb_shell_player_set_playing_source_internal),
16359         (rb_shell_player_sync_with_selected_source): Notify the player when an
16360         entry has updated the title, album or artist field, and resync the big
16361         display.
16362         
16363         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16364         * sources/rb-library-source.c: (rb_library_source_class_init),
16365         (impl_get_config_widget):
16366         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16367         * sources/rb-source.c:
16368         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16369         get_album functions in rb-source and adapted other sources accordingly.
16370         
16371 2005-08-29  Colin Walters  <walters@verbum.org>
16373         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16374         signal_change member.
16375         (threadsafe_entry_set): New function.
16376         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16377         (rhythmdb_entry_set_nonotify): New function; just call
16378         threadsafe_entry_set with FALSE.
16379         (rhythmdb_entry_set_internal): Take a notify flag; if true
16380         add the change to our pending set.
16382         Also update all internal callers of rhythmdb_entry_set_internal
16383         to pass FALSE.  Some of these may be bugs however and need to
16384         pass TRUE...
16386         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16387         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16388         rhythmdb_entry_set_nonotify.
16390         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16391         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16393         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16395         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16396         * sources/rb-source.c (rb_source_update_play_statistics): 
16397         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16398         * sources/rb-ipod-source.c (entry_set_string_prop) 
16399         (load_ipod_db_idle_cb): 
16400         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16401         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16402         (info_available_cb): 
16403         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16404         (rb_station_properties_dialog_sync_entries): 
16405         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16407         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16408         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16409         
16410 2005-08-29  Colin Walters  <walters@verbum.org>
16412         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16414         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16415         linking insanity.
16417         * widgets/rb-header.c (sanitize_string): New function, extracted
16418         from old info_url.  Be sure to always strip the string.
16419         (info_url): Rewrite to take artist/album, and generate a sane
16420         URL for them from last.fm, which is better than allmusic.com in
16421         that they support Rhythmbox, and have a *SANE* URL scheme.
16422         (artist_info_url, album_info_url): Delete.
16423         (rb_header_sync): Use info_url.
16425 2005-08-29  James Livingston  <jrl@ids.org.au>
16427         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16428         is implemented before calling it. Many sources don't implement the
16429         method.
16431 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16433         * data/glade/create-playlist.glade:  Cleanup the layout,
16434         and add a few more mnemonics.
16435         * shell/rb-playlist-manager.c:
16436         (rb_playlist_manager_cmd_load_playlist),
16437         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16438         capitalization for window titles.
16439         * widgets/rb-query-creator-properties.c: Add mnemonics
16440         to checkbutton labels.
16441         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16442         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16444 2005-08-28  Colin Walters  <walters@verbum.org>
16446         * data/rhythmbox.schemas: Delete search_text for library
16447         and iradio; this isn't a persistent value anymore.
16448         Closes #313757.
16449         
16450         * sources/rb-source.h:
16451         * sources/rb-source.c: Delete impl_can_search.
16453         * sources/rb-iradio-source.c: Delete search_text usage.
16454         * sources/rb-library-source.c: Ditto.
16456         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16457         search when source is set, and just do rb_source_search in
16458         rb_source_header_search_cb.
16460         * shell/rb-shell.c (rb_shell_append_source): Don't
16461         initiate search.
16463         * shell/Makefile.am: Don't dist dashboard.c.
16465 2005-08-28  Colin Walters  <walters@verbum.org>
16467         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16468         
16469 2005-08-28  Colin Walters  <walters@verbum.org>
16471         * data/org.gnome.Rhythmbox.service.in: New.
16473         * data/Makefile.am: Install service file.
16475         * configure.ac: Define DBUS_SERVICES_DIR.
16477         * autogen.sh: Set ACLOCAL_FLAGS.
16479         * macros/acinclude.m4: New.
16480         
16481 2005-08-28  Colin Walters  <walters@verbum.org>
16483         Initial patch from Jonathan Matthew; closes 313684.
16485         * rhythmdb/rhythmdb-tree.c:
16486         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16487         (save_entry): Return on error.
16488         (rhythmdb_tree_save): Handle error when saving the
16489         db; additionally, handle errors from fclose and unlink,
16490         and print error too.
16492 2005-08-28  Colin Walters  <walters@verbum.org>
16494         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16495         extra _.
16496         
16497 2005-08-28  Colin Walters  <walters@verbum.org>
16499         * configure.ac: Change iPod support to --with-ipod;
16500           automatically enable it if we have HAL.  Try to
16501           support both HAL 0.5 and HAL 0.2.  Break out
16502           totem-plparser into its own check so later we
16503           can do version tests there too.
16504           Kill dashboard support.
16505         
16506         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16507         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16508         Closes #310017.
16509         
16510         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16511         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16513         * sources/Makefile.am: Also handle
16514         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16516         * shell/dashboard.c: Delete; someone should just write a little
16517         python shim which lists on the D-BUS interface and writes the
16518         stuff to Dashboard.  Even better Dashboard should be ported
16519         to D-BUS and do the listening itself, perhaps on an abstract
16520         "org.gnome.MusicPlayer" interface or something.
16522         * shell/rb-shell.c: Kill dashboard support.
16524 2005-08-28  Colin Walters  <walters@verbum.org>
16526         * remote/dbus/rb-print-playing.py: New file.
16528 2005-08-28  Colin Walters  <walters@verbum.org>
16530         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16531         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16533         * shell/rb-shell-player.h:
16534         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16535         * shell/rb-shell-player.xml: Export it.
16537         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16538         (rb_shell_error_quark): New.
16540         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16541         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16542         
16543 2005-08-28  Colin Walters  <walters@verbum.org>
16545         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16546         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16547         bonobo_unlock.
16548         (rb_remote_bonobo_preinit): Lock setting moved here.
16549         (rb_remote_bonobo_init): From here.
16551         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16552         Also invoke handle_cmdline in the right place.
16553         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16554         GFunc.
16556 2005-08-28  James Livingston  <jrl@ids.org.au>
16558         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16559         when 0.9.1 comes around.
16561 2005-08-28  James Livingston  <jrl@ids.org.au>
16563         * iradio/rb-new-station-dialog.c:
16564         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16565         bug 314477.
16567 2005-08-28  James Livingston  <jrl@ids.org.au>
16569         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16571         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16572         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16573         is a song is longer than 60 minutes. Closes bug 313311.
16575 2005-08-27  James Livingston  <jrl@ids.org.au>
16577         * data/glade/create-playlist.glade:
16578         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16579         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16580         "minutes" as an option in the playlist limit menu.
16582         * rhythmdb/rhythmdb-query-model.c:
16583         (rhythmdb_query_model_class_init),
16584         (rhythmdb_query_model_set_property),
16585         (rhythmdb_query_model_get_property),
16586         (rhythmdb_query_model_update_limited_entries): Allow query models to
16587         have a time limit
16588         
16589         * shell/rb-playlist-manager.c:
16590         (rb_playlist_manager_set_automatic_playlist),
16591         (rb_playlist_manager_cmd_edit_automatic_playlist):
16592         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16593         (rb_playlist_source_get_query), (impl_receive_drag),
16594         (rb_playlist_source_new_from_xml),
16595         (rb_playlist_source_save_to_xml),
16596         (rb_playlist_source_songs_sort_order_changed_cb),
16597         (rb_playlist_source_do_query):
16598         * sources/rb-playlist-source.h:
16599         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16601 2005-08-27  James Livingston  <jrl@ids.org.au>
16603         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16605         * configure.ac:
16606         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16607         non-standard location. Closes bug 314640.
16609 2005-08-26  Colin Walters  <walters@verbum.org>
16610         
16611         Patch from Olivier Blin <oblin@mandriva.com>
16613         * widgets/eggnotificationbubble.c (draw_bubble): 
16614         Handle extreme-left case as well.
16615         
16616 2005-08-26  Colin Walters  <walters@verbum.org>
16618         * shell/rb-shell.c (idle_save_state): Don't do this.
16619         (rb_shell_construct): Remove idle calls to idle_save_state.
16620         We should save the playlists automatically when they're
16621         modified.
16622         (rb_shell_load_uri): Don't try to re-stat entry if it already
16623         exists.
16625         * shell/rb-shell-player.c: Keep track of entry we are attempting
16626         to play.
16627         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16628         Don't double-free error.
16629         (rb_shell_player_play_entry): Signal errors.
16630         (rb_shell_player_entry_activated_cb): Ditto.
16631         (rb_shell_player_property_row_activated_cb): Ditto.
16632         (rb_shell_player_set_playing_source_internal): Unset attempted
16633         playing entry.
16634         (rb_shell_player_error): Refactor to be usable both sync and
16635         async.  Handle case where displayed entry differs from entry.
16636         (error_cb): Move GDK locking here.
16638         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16639         people can just use dbus-send or python.  We only support focusing
16640         and loading files.
16641         (load_uri_args): New function, extracted from handle_cmdline.
16642         (dbus_load_uri, bonobo_load_uri): New functions.
16644         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16645         appropriate.
16647         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16648         * remote/dbus/rb-remote-dbus.c: Deleted.
16650         * player/rb-player-gst.c: Clear any pending idle handlers when we
16651         close the player.  Signal errors generated during open/play etc
16652         as synchronous errors.
16654         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16655         
16656 2005-08-26  Colin Walters  <walters@verbum.org>
16658         * shell/rb-shell.c (rb_shell_present): Try harder.
16660 2005-08-26  Colin Walters  <walters@verbum.org>
16662         * shell/rb-shell.c (rb_shell_present): Try to handle
16663         GTK_MINOR_VERSION < 8.
16665 2005-08-26  James Livingston  <jrl@ids.org.au>
16667         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16668         <pbrobinson@gmail.com>
16670 2005-08-26  Colin Walters  <walters@verbum.org>
16672         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16674 2005-08-25  Colin Walters  <walters@verbum.org>
16676         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16677         Delete.
16678         (rb_shell_player_do_next_with_rating): Move back into
16679         rb_shell_player_do_next.
16680         (rb_shell_player_entry_activated_cb): Remove call to
16681         rb_shell_player_auto_adjust_rating.
16682         (do_next_idle): Just call rb_shell_player_do_next.
16684         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16686 2005-08-25  Colin Walters  <walters@verbum.org>
16688         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16689         before gtk_window_present_with_time.
16690         
16691 2005-08-25  Colin Walters  <walters@verbum.org>
16693         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16694         default.
16696         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16697         rb_shell_construct.  This is so we only have to do g_object_new.
16698         (rb_shell_get_player): New function.
16699         (rb_shell_get_player_path): Ditto.
16700         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16701         
16702         * shell/rb-shell.h: Prototype them.
16704         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16705         export over D-BUS.
16706         (reemit_playing_signal): New function.
16707         (rb_shell_player_open_playlist_location): Use return values from
16708         rb_player_open, rb_player_close, etc. instead of checking "error".
16709         Return a gboolean on failure.
16710         (rb_shell_player_open_entry): Just open entry location, don't
16711         print to stderr.
16712         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16713         a gboolean.
16714         (do_next_idle): Move logic for handling of end of playlist here.
16715         (rb_shell_player_set_playing_entry): Take a GError, return a
16716         gboolean.  Update to use gboolean return values.
16717         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16718         logic.  Signal an error on end of playlist.  Also signal error if
16719         we're not playing.  Move heuristic for replaying the song into
16720         rb_shell_player_cmd_previous.
16721         (rb_shell_player_do_next_with_rating): Signal error on end of
16722         playlist.
16723         (rb_shell_player_do_next): Return errors.
16724         (rb_shell_player_cmd_previous): Heuristic for restarting song
16725         moved here; the idea is you generally only want that from the GUI.
16726         (rb_shell_player_cmd_play): Handle error.
16727         (rb_shell_player_playpause): Signal errors.
16728         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16729         rb_shell_player_cmd_next in favor of the internal _do functions.
16730         
16731         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16732         errors.  Update prototypes for above changes.
16734         * shell/main.c: More tightly integrate D-BUS; register various
16735         major singleton objects here.  Fix handle_cmdline so we only
16736         process extra arguments, not every argument.
16738         * shell/Makefile.am: Generate D-BUS glue headers.
16740         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16741         into shell/main.c.  Now this file just acts as a client library.
16742         Not heavily tested.
16744         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16745         Moved here.
16746         (rb_remote_bonobo_init): Move long CORBA rant here along with
16747         setting of lock functions.
16749         * player/rb-player-gst.c (rb_player_construct)
16750         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16751         on error.
16753         * player/rb-player.h: Update prototypes.
16755         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16756         rb-remote-bonobo.c.
16757         (rb_threads_init): Don't set gdk lock functions here.
16759 2005-08-25  James Livingston  <jrl@ids.org.au>
16761         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16763         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16764         * lib/rb-tree-dnd.h:
16765         * rhythmdb/rhythmdb-property-model.c:
16766         (rhythmdb_property_model_class_init),
16767         (rhythmdb_property_model_drag_source_init),
16768         (rhythmdb_property_model_iter_parent),
16769         (rhythmdb_property_model_row_draggable),
16770         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16771         (rhythmdb_property_model_drag_data_get),
16772         (rhythmdb_property_model_enable_drag):
16773         * rhythmdb/rhythmdb-property-model.h:
16774         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16775         (rb_playlist_manager_set_property), (append_new_playlist_source),
16776         (rb_playlist_manager_save_playlists):
16777         * shell/rb-shell.c: (rb_shell_construct),
16778         (sourcelist_drag_received_cb):
16779         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16780         * sources/rb-playlist-source.c: (impl_receive_drag):
16781         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16782         (rb_sourcelist_model_drag_dest_init),
16783         (rb_sourcelist_model_set_dnd_targets),
16784         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16785         (rb_sourcelist_model_row_drop_position),
16786         (rb_sourcelist_model_get_drag_target),
16787         (rb_sourcelist_model_drag_data_get):
16788         * sources/rb-sourcelist-model.h:
16789         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16790         (rb_sourcelist_init), (rb_sourcelist_get_property),
16791         (rb_sourcelist_selection_changed_cb):
16792         * sources/rb-sourcelist.h:
16793         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16794         improve drag-n-drop support. Allow dragging of item from property
16795         views to the source list, to create new automatic playlists. Allow
16796         playlist re-ordering. Fix dragging from Rhythmbox to other
16797         applications. (Closes bug 147337)
16799 2005-08-24  Colin Walters  <walters@verbum.org>
16801         Patch from Olivier Blin <oblin@mandriva.com>
16803         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16804         correctly in the case where the window is next to monitor edge.
16806 2005-08-24  James Livingston  <jrl@ids.org.au>
16808         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16809         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16810         a gobject property to get the query model that backs the playlist.
16812 2005-08-24  James Livingston  <jrl@ids.org.au>
16814         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16815         (handle_playlist_entry_into_playlist_cb),
16816         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16817         audio cd" menu item when a non-playlist source is selected, or the
16818         playlist is empty. (Closes Bug 313253)
16820 2005-08-24  James Livingston  <jrl@ids.org.au>
16822         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16823         Fix the playlist length checkso it doesn't report 0 for automatic
16824         playlists. This was stopping automati playlists being burnt to cd.
16826 2005-08-24  James Livingston  <jrl@ids.org.au>
16828         * configure.ac:
16829         * sources/rb-playlist-source-recorder.c: (burn_cd):
16830         * sources/rb-playlist-source.c:
16831         (rb_playlist_source_songs_sort_order_changed_cb):
16832         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16833         more warnings that occur when compiling RPMs on Fedora.
16835 2005-08-24  James Livingston  <jrl@ids.org.au>
16837         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16838         was stopping some distros gcc version compiling.
16840 2005-08-24  James Livingston  <jrl@ids.org.au>
16842         * NEWS:
16843         * data/glade/create-playlist.glade:
16844         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16845         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16846         (rhythmdb_query_free), (rhythmdb_query_serialize),
16847         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16848         * rhythmdb/rhythmdb.h:
16849         * shell/rb-playlist-manager.c:
16850         (rb_playlist_manager_set_automatic_playlist),
16851         (rb_playlist_manager_cmd_edit_automatic_playlist):
16852         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16853         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16854         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16855         (rb_playlist_source_save_to_xml),
16856         (rb_playlist_source_songs_sort_order_changed_cb),
16857         (rb_playlist_source_do_query):
16858         * sources/rb-playlist-source.h:
16859         * widgets/Makefile.am:
16860         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16861         (rb_entry_view_set_sorting_order):
16862         * widgets/rb-query-creator-private.h:
16863         * widgets/rb-query-creator-properties.c:
16864         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16865         (stringCriteriaGetWidgetData),
16866         (escapedStringCriteriaSetWidgetData),
16867         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16868         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16869         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16870         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16871         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16872         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16873         (relativeTimeCriteriaCreateWidget),
16874         (relativeTimeCriteriaSetWidgetData),
16875         (relativeTimeCriteriaGetWidgetData):
16876         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16877         (rb_query_creator_class_init), (rb_query_creator_constructor),
16878         (rb_query_creator_dispose), (rb_query_creator_set_property),
16879         (rb_query_creator_get_property), (rb_query_creator_load_query),
16880         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16881         (get_entry_for_property), (rb_query_creator_get_query),
16882         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16883         (limit_toggled_cb), (lookup_row_by_widget),
16884         (remove_button_click_cb), (append_row),
16885         (get_property_index_from_proptype), (select_criteria_from_value),
16886         (property_option_menu_changed), (create_property_option_menu),
16887         (create_criteria_option_menu), (sort_option_menu_changed),
16888         (setup_sort_option_menu):
16889         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16890         playlists. The two most notable improvements are 1) adding more
16891         properties to the query creator, making it much easier to add more in
16892         the future, and 2) allow playlists to be sorted, from the query editor
16893         if they gave limits, and by clicking on column headers if they don't.
16895         Files added: widgets/rb-query-creator-private.h,
16896         sources/rb-query-creator-properties.c
16898 2005-08-21  James Livingston  <jrl@ids.org.au>
16900         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16901         error=NULL. This stops some crashes.
16903 2005-08-19  Colin Walters  <walters@verbum.org>
16905         Patch from Olivier Blin <oblin@mandriva.com>
16907         * widgets/eggnotificationbubble.c (force_window): Support top
16908         orientation.
16909         * widgets/eggnotificationbubble.h: Remove
16910         egg_notification_bubble_force_window from header.
16911         
16912 2005-08-18  James Livingston  <jrl@ids.org.au>
16914         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16915         with the changes since then.
16917 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16919         * shell/rb-shell-player.c: (rb_shell_player_init),
16920         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16921         (rb_shell_player_volume_widget_changed_cb):
16922         * sources/rb-iradio-source.c:
16923         * sources/rb-library-source.c:
16924         * sources/rb-playlist-source.c:
16925         * widgets/Makefile.am:
16926         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16927         (bacon_volume_button_class_init), (bacon_volume_button_init),
16928         (bacon_volume_button_dispose), (bacon_volume_button_new),
16929         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16930         (bacon_volume_button_scroll), (bacon_volume_button_press),
16931         (cb_button_timeout), (cb_button_press), (cb_button_release),
16932         (bacon_volume_release_grab), (cb_dock_press),
16933         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16934         (bacon_volume_scale_new), (bacon_volume_scale_press),
16935         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16936         * widgets/bacon-volume.h:
16937         * widgets/rb-volume.c:
16938         * widgets/rb-volume.h:
16939           Use BaconVolumeButton (#300867).
16941 2005-08-17  James Livingston  <jrl@ids.org.au>
16943         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16944         (rhythmdb_process_metadata_load): don't reset the First Seen time
16945         whenever we recheck the metadata.
16947 2005-08-17  James Livingston  <jrl@ids.org.au>
16949         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16950         temporary workaround to stop crashes when trying to burn an empty
16951         playlist. Doesn't disable the menu item which is the better solution
16952         (Bug 313253).
16954 2005-08-15  James Livingston  <jrl@ids.org.au>
16956         * shell/rb-source-header.c: (rb_source_header_init),
16957         (rb_source_header_sync_control_state),
16958         (rb_source_header_search_activate_cb):
16959         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16960         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16961         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16962         (rb_search_entry_init), (rb_search_entry_searching),
16963         (rb_search_entry_activate_cb):
16964         * widgets/rb-search-entry.h: Move focus to the entry view when user
16965         presses enter in the search box. Patch from Paolo Borelli
16966         <pborelli@katamail.com> (Closes bug 128110)
16968 2005-08-15  James Livingston  <jrl@ids.org.au>
16970         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16971         (rb_playlist_manager_new_playlist):
16972         * shell/rb-playlist-manager.h:
16973         * shell/rb-shell.c: (rb_shell_construct),
16974         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16975         the source list to be shown when a new playlist is created. (Closes
16976         bug 161935)
16978 2005-08-15  James Livingston  <jrl@ids.org.au>
16980         * widgets/rb-header.c: (rb_header_init),
16981         (rb_header_set_show_timeline): disable the seek slider, rather than
16982         hiding it, which more closely follows the HIG. (Closes bug 139102)
16984 2005-08-13  Colin Walters  <walters@verbum.org>
16986         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16987         rb_shell_hidden_notify.
16988         (rb_shell_hidden_notify): Notify if the shell is hidden.
16989         (rb_shell_set_visibility_impl): Debug goo.
16991         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16993         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16994         when the user clicks on notification.
16996         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16997         CD burn is complete.
16998         (rb_playlist_source_recorder_finalize): Unref shell.
16999         (rb_playlist_source_recorder_new): Take shell.
17001         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
17002         Pass shell to RBPlaylistSourceRecorder.
17003         
17004 2005-08-13  Colin Walters  <walters@verbum.org>
17006         * lib/rb-thread.c:
17007         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
17008           time to convert.
17010 2005-08-13  Colin Walters  <walters@verbum.org>
17012         * widgets/eggnotificationbubble.h:
17013         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
17014         * widgets/eggtrayicon.c:
17015         * widgets/eggtrayicon.h: Add notification API.
17016         * shell/rb-tray-icon.c:
17017         * shell/rb-tray-icon.h: Add notification API.
17018         * shell/rb-shell.c: Notify on song change.
17020 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
17022         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
17023         Correct an inversion of two lines causing NULL to be unreffed
17025 ============ Version 0.9.0
17027 2005-08-10  Bastien Nocera  <hadess@hadess.net>
17029         * configure.ac: 0.9.0, whee!
17030         * NEWS: badly updated
17031         * remote/bonobo/Makefile.am:
17032         * remote/bonobo/rb-remote-bonobo.h:
17033         * shell/Makefile.am:
17034         * shell/main.c: make distcheck fixes