2006-12-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
[rhythmbox.git] / ChangeLog
blobe92787259f5aca7418738d18edb8efef57514e19
1 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3         * metadata/sj-metadata-musicbrainz.c: (get_drive_media_type),
4         (lookup_cd):
5         Add support for older versions of libnautilus-burn.
7 2006-12-13  James Livingston  <doclivingston@gmail.com>
9         Patch from Tim Retout  <tim@retout.co.uk>
11         * shell/rb-history.c: (rb_history_append):
12         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix a
13         problem where appending a song could get the history wrong. Fixes #346287
15 2006-12-12  James Livingston  <doclivingston@gmail.com>
17         * plugins/audioscrobbler/Makefile.am:
18         * metadata/sj-error.c: (sj_error_quark):
19         * metadata/sj-error.h:
20         * metadata/sj-metadata-musicbrainz.c:
21         (sj_metadata_musicbrainz_instance_init),
22         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
23         (get_rdf), (lookup_cd):
24         * metadata/sj-metadata-musicbrainz.h:
25         * metadata/sj-metadata.c: (sj_metadata_get_type):
26         * metadata/sj-metadata.h:
27         * metadata/sj-structures.c:
28         * metadata/sj-structures.h: get bug fixes from S-J and hopefully fix
29         #382954.
31 2006-12-12  James Livingston  <doclivingston@gmail.com>
33         * sources/rb-ipod-source.c: (rb_ipod_load_songs): hopefully fix
34         some corrupt-ipod-db issues. from #358855
36 2006-12-12  James Livingston  <doclivingston@gmail.com>
38         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal): don't
39         try to re-sort the model if it's NULL. Fixes #367646
41 2006-12-12  James Livingston  <doclivingston@gmail.com>
43         * data/rhythmbox.schemas:
44         * lib/rb-util.c: (_threads_enter), (_threads_leave),
45         (rb_threads_init):
46         * plugins/magnatune/magnatune-prefs.glade:
47         * plugins/magnatune/magnatune-purchase.glade:
48         * plugins/magnatune/magnatune/MagnatuneSource.py:
49         * plugins/magnatune/magnatune/__init__.py: add code to use
50         Gnome-Keyring to store the user's credit card details, but force it to
51         be disabled (due to bugs). From #377354
53 2006-12-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
55         * rhythmdb/rhythmdb-query-model.c:
56         (rhythmdb_query_model_remove_from_main_list):
57         Re-find the sequence node pointer after emitting the row-deleted
58         signal, as signal handlers may cause it to change.  Fixes #370443.
60 2006-12-11  James Livingston  <doclivingston@gmail.com>
62         * sources/rb-daap-source.c: (connection_auth_cb): fix a code path
63         trying to free an unset pointer. Fixes #384208
65 2006-12-11  James Livingston  <doclivingston@gmail.com>
67         * sources/rb-library-source.c: (build_filename): deal with URIs that
68         don't have a period in them. Fixes #384016
70 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
72         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
73         Use G_GINT64_FORMAT instead of %lld.
75 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
77         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
78         (rb_encoder_gst_encode):
79         When copying rather than transcoding, do position queries in byte
80         format rather than time.
82         * sources/rb-ipod-source.c: (impl_receive_drag):
83         * sources/rb-library-source.c: (impl_receive_drag):
84         Handle application/x-rhythmbox-entry drops.  Fixes drag and drop from
85         daap shares to library.
87 2006-12-10  James Livingston  <doclivingston@gmail.com>
89         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post): add
90         posts that are missing their date tag.
92 2006-12-09  James Livingston  <doclivingston@gmail.com>
94         * shell/rb-statusbar.c: (rb_statusbar_init): revert the patch from bug
95         #368757
97 2006-12-09  James Livingston  <doclivingston@gmail.com>
99         * configure.ac:
100         * data/rhythmbox.schemas:
101         * plugins/Makefile.am:
102         * plugins/magnatune/magnatune-prefs.glade:
103         * plugins/magnatune/magnatune-purchase.glade:
104         * plugins/magnatune/magnatune/MagnatuneSource.py:
105         * plugins/magnatune/magnatune/__init__.py: revert some stuff I
106         accidently comitted.
108 2006-12-09  James Livingston  <doclivingston@gmail.com>
110         * rhythmdb/rhythmdb-property-model.c:
111         (rhythmdb_property_model_finalize): fix a memory leak.
113 2006-12-09  James Livingston  <doclivingston@gmail.com>
115         * sources/rb-ipod-source.c: (rb_ipod_source_set_ipod_name): don't
116         crash if the iPod's name set to is NULL #358855
118 2006-12-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
120         * widgets/rb-property-view.c: (rb_property_view_class_init),
121         (rb_property_view_dispose), (rb_property_view_finalize):
122         Disconnect signal handlers in dispose, not finalize.  Fixes #374892.
124 2006-12-04  James Livingston  <doclivingston@gmail.com>
126         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
128         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_preprocess):
129         * widgets/rb-query-creator-properties.c:
130         (yearCriteriaSetWidgetData), (yearCriteriaGetWidgetData): stop some
131         critical warnings emitted if a YEAR=0 query was done. Fixes #381839
133 2006-12-03  James Livingston  <doclivingston@gmail.com>
135         * lib/rb-file-helpers.c: (_rb_uri_recurse_data_free),
136         (rb_uri_handle_recursively_cb), (rb_uri_handle_recursively),
137         (_recurse_async_idle_cb), (_recurse_async_data_free),
138         (_recurse_async_cb), (_recurse_async_func),
139         (rb_uri_handle_recursively_async):
140         * lib/rb-file-helpers.h:
141         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
142         (rb_plugins_engine_load_dir):
143         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
144         (rhythmdb_stop_monitoring), (monitor_entry_file),
145         (monitor_subdirectory), (monitor_library_directory),
146         (_monitor_entry_thread), (rhythmdb_start_monitoring),
147         (rhythmdb_monitor_uri_path):
148         * rhythmdb/rhythmdb.c:
149         * sources/rb-static-playlist-source.c:
150         (rb_static_playlist_source_add_location_cb),
151         (rb_static_playlist_source_add_location): add a utility function for
152         doing directory recusion asynchronously, and use it everywhere instead
153         of the old one. Removes one of our biggest do-IO-synchronously issues.
154         From #325215
156 2006-12-03  James Livingston  <doclivingston@gmail.com>
158         * plugins/audioscrobbler/Makefile.am:
159         * plugins/audioscrobbler/audioscrobbler-ui.xml:
160         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
161         (impl_activate), (impl_deactivate):
162         * plugins/audioscrobbler/rb-lastfm-source.c:
163         (rb_lastfm_source_class_init), (rb_lastfm_source_constructor),
164         (impl_activate), (impl_show_popup), (show_entry_popup): add a context
165         menu to the last.fm source, and allow deletion of stations.
167 2006-12-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
169         * plugins/rb-plugin-manager.c: (plugin_manager_populate_lists):
170         gtk_tree_view_get_model doesn't ref the model, so don't unref it
171         when we're done with it.
173 2006-12-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
175         * rhythmdb/rhythmdb.c:
176         (rhythmdb_execute_load), (rhythmdb_add_uri_with_type):
177         Handle rb_uri_resolve_symlink returning NULL, as it does when it
178         encounters a symlink loop.  Create import errors for such URIs.
179         Fixes #380826.
181 2006-11-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
183         patch started by:  James Livingston  <doclivingston@gmail.com>
185         * podcast/rb-podcast-manager.c: (*)
186         * podcast/rb-podcast-manager.h:
187         * sources/rb-podcast-source.c: (rb_podcast_source_set_property),
188         (rb_podcast_source_cmd_cancel_download),
189         (rb_podcast_source_load_finish_cb),
190         (rb_podcast_source_feed_updates_available_cb),
191         (rb_podcast_source_shutdown), (rb_podcast_source_cmd_new_podcast):
192         Remove mutexes and async queues from the podcast manager; just do
193         everything on the main thread and use idle handlers to marshal things
194         across to it.  Should fix crashes on FreeBSD, various other weird
195         stuff, and bug 337332.
197 2006-11-29  James Livingston  <doclivingston@gmail.com>
199         patch from: Glynn Foster <glynn.foster@sun.com>
201         * metadata/sj-metadata-musicbrainz.c:
202         (sj_metadata_musicbrainz_instance_init): fix a typo in the proxy
203         settings.
205 2006-11-29  James Livingston  <doclivingston@gmail.com>
207         patch by: Thomas Thurman  <thomas@thurman.org.uk>
209         * data/glade/song-info-multiple.glade:
210         * data/glade/song-info.glade:
211         * data/glade/station-properties.glade: Make the return key close these
212         dialogs. Fixes #379148
214 2006-11-29  James Livingston  <doclivingston@gmail.com>
216         patch by: Ingo Planz  <planz@mi-fu-berlin.de>
218         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Make the
219         podcast plugin set unknown dates to the current time, not the start of
220         the epoch. Fixes #367572.
222 2006-11-29  James Livingston  <doclivingston@gmail.com>
224         * lib/rb-tree-dnd.c: (rb_tree_drag_source_row_draggable),
225         (rb_tree_drag_source_drag_data_delete),
226         (rb_tree_drag_source_drag_data_get),
227         (rb_tree_drag_dest_drag_data_received),
228         (rb_tree_drag_dest_row_drop_possible),
229         (rb_tree_drag_dest_row_drop_position), (rb_tree_dnd_drag_drop_cb):
230         * lib/rb-tree-dnd.h:
231         * rhythmdb/rhythmdb-property-model.c:
232         (rhythmdb_property_model_drag_source_init):
233         * rhythmdb/rhythmdb-query-model.c:
234         (rhythmdb_query_model_drag_source_init),
235         (rhythmdb_query_model_drag_dest_init):
236         * sources/rb-sourcelist-model.c:
237         (rb_sourcelist_model_drag_dest_init),
238         (rb_sourcelist_model_drag_source_init): don't use the same method
239         names as the GtkTreeDnd ones, since it break bindings to other
240         languages.
242         * shell/rb-shell.c: (_scan_idle), (rb_shell_constructor): run the
243         removable media scan in an idle callback.
245 2006-11-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
247         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct):
248         Use the right variable name when setting the "profile" property on the
249         sink.  Fixes #379532 and closes #379314 again.
251 2006-11-27  James Livingston  <doclivingston@gmail.com>
253         patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
255         * plugins/magnatune/magnatune/MagnatuneSource.py: fix a race condition
256         in the Magnatune plugin, from #373684.
258 2006-11-26  James Livingston  <doclivingston@gmail.com>
260         patch from Alex Jones  <alex@weej.com>
262         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct): set
263         the "profile" on the audio sink, if it's present. Fixes #379314.
265 2006-11-23  James Livingston  <doclivingston@gmail.com>
267         * bindings/python/rhythmdb.defs:
268         * bindings/python/rhythmdb.override: fix some binding stuff.
270 2006-11-23  James Livingston  <doclivingston@gmail.com>
272         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
274         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
275         details from debug output. Fixes #378355.
277 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
279         * shell/rb-shell-player.c: (rb_shell_player_play):
280         Don't crash if current_playing_source is NULL.  Fixes #378195.
281         
282         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
283         rb_shell_player_play isn't very useful, use _playpause if not
284         already playing instead.
286 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
288         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
289         (rhythmdb_property_model_drag_data_get):
290         * rhythmdb/rhythmdb-query-model.c:
291         (rhythmdb_query_model_drag_data_get),
292         (rhythmdb_query_model_drag_data_received):
293         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
294         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
295         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
296         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
297         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
298         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
299         (rhythmdb_tree_entry_count_by_type):
300         * rhythmdb/rhythmdb.c:
301         * rhythmdb/rhythmdb.h:
302         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
303         (rb_daap_share_set_property), (rb_daap_share_get_property),
304         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
305         (send_mapped_file), (databases_cb), (db_entry_added_cb),
306         (db_entry_deleted_cb), (rb_daap_share_server_start),
307         (rb_daap_share_server_stop):
308         * daapsharing/rb-daap-share.h:
309         * daapsharing/rb-daap-sharing.c: (create_share):
310         Move id-to-entry map from daap share into rhythmdb.
312         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
313         (rb_playlist_manager_new_playlist_from_selection_data):
314         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
315         * sources/rb-browser-source.c: (rb_browser_source_constructor):
316         * sources/rb-sourcelist-model.c:
317         (rb_sourcelist_model_drag_data_received),
318         (rb_sourcelist_model_row_drop_position),
319         (rb_sourcelist_model_get_drag_target),
320         (rb_sourcelist_model_drag_data_get):
321         * sources/rb-static-playlist-source.c: (impl_receive_drag),
322         (rb_static_playlist_source_add_id_list),
323         (rb_static_playlist_source_add_uri_list):
324         * widgets/rb-entry-view.c:
325         * widgets/rb-property-view.c:
326         Add a new drag-and-drop type: application/x-rhythmbox-entry
327         containing a list of entry IDs, and use it for DnD within the
328         application.  Avoids having to pick a URI to use for an entry, so we
329         can make DnD of podcast entries (and anything else where playback URI
330         is not the same as the entry location) work as expected.
331         Fixes #343537.
333 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
335         * shell/rb-shell.c: (rb_shell_present):
336         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
338 2006-11-20  James Livingston  <doclivingston@gmail.com>
340         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
341         find the responsible source. Fixes #377029
343 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
345         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
346         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
347         * lib/rb-file-helpers.h:
348         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
349         Implement rb_uri_get_short_path_name to replace
350         gnome_vfs_uri_extract_short_path name with something that doesn't
351         reject unknown URI schemes such as daap://.  Fixes #361077.
353         * tests/Makefile.am:
354         * tests/test-file-helpers.c: (test_get_short_path_name),
355         (START_TEST), (rb_file_helpers_suite), (main):
356         Add tests for the above.
358 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
360         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
361         (bacon_volume_button_new), (bacon_volume_button_style_set),
362         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
363         (bacon_volume_scale_value_changed),
364         (bacon_volume_button_load_icons):
365         * widgets/bacon-volume.h:
366         Update bacon-volume from libbacon CVS again.
368 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
370         * widgets/bacon-volume.c: (bacon_volume_load_icons):
371         Fall back to old icon names if the icon naming spec compliant
372         names don't work.  From #369491.
374 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
376         * plugins/audiocd/Makefile.am:
377         Stop automake complaining about duplicate definitions.
379 2006-11-17  James Livingston  <doclivingston@gmail.com>
381         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
382         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
383         when disposing of the source. Fixes #376155
385         * plugins/daap/Makefile.am: fix some distcheck brokenness.
387 2006-11-17  James Livingston  <doclivingston@gmail.com>
389         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
391 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
393         * shell/rb-playlist-manager.c: (*):
394         General cleanup, add appropriate object references and implement
395         dispose method.  Should fix #357099.
397 2006-11-15  James Livingston  <doclivingston@gmail.com>
399         patch by: William Lachance  <wrlach@gmail.com>
401         * rhythmdb/rhythmdb-query-model.c:
402         (rhythmdb_query_model_album_sort_func): improve sorting when some
403         tracks are missing track/disc number info. Fixes #371322
405 2006-11-14  James Livingston  <doclivingston@gmail.com>
407         patch by: Alex Lancaster
409         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
410         episode dates which are missing the seconds. Fixes #373845
412 2006-11-13  James Livingston  <doclivingston@gmail.com>
414         * bindings/python/rhythmdb.override: bidn a few other pieces of
415         rhythmdb.
417 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
419         * shell/rb-statusbar.c: (rb_statusbar_class_init),
420         (rb_statusbar_dispose), (rb_statusbar_finalize),
421         (rb_statusbar_set_property):
422         Remove idle handler in dispose, rather than finalize.
423         Keep references on all referenced objects (duh?).
424         Fixes #374443.
426 2006-11-12  James Livingston  <doclivingston@gmail.com>
428         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
430         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
431         the status bar smaller, so it isn't too big. Fixes #368757.
433 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
435         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
436         (mdns_service_removed):
437         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
438         disappear.
440 2006-11-12  James Livingston  <doclivingston@gmail.com>
442         * plugins/audioscrobbler/rb-lastfm-source.c:
443         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
444         more supported last.fm radio things. From #373622
446 2006-11-12  James Livingston  <doclivingston@gmail.com>
448         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
449         through the earlier checks. Fixes #373605
451 2006-11-12  James Livingston  <doclivingston@gmail.com>
453         * sources/rb-library-source.c:
454         (rb_library_source_add_child_source): sort the child-library sources
455         the same as the library by default.
457 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
459         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
460         Don't try to report the size if we didn't get one.
461         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
462         work), from #350276.
464 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
466         * daapsharing/rb-daap-sharing.c:
467         (rb_daap_sharing_default_share_name), (create_share),
468         (share_name_changed_cb):
469         * daapsharing/rb-daap-sharing.h:
470         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
471         (make_config_widget), (impl_create_configure_dialog):
472         Update DAAP preferences widget when displaying it, and
473         populate the share name entry with the default if there's nothing
474         there already.  Fixes #340279.
476 2006-11-11  James Livingston  <doclivingston@gmail.com>
478         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
480         * plugins/magnatune/magnatune/MagnatuneSource.py:
481         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
482         Magnatune stuff. From #345783
484 2006-11-10  James Livingston  <doclivingston@gmail.com>
486         * plugins/generic-player/rb-nokia770-source.c:
487         (hal_udi_is_nokia770):
488         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
489         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
490         context if it wasn't inited. Fixes #372824
492 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
494         * plugins/daap/rb-daap-plugin.h:
495         Add the file I missed last time.
497 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
499         * CVS-SURGERY:
500         * backends/gstreamer/Makefile.am:
501         * backends/gstreamer/rb-player-gst.c:
502         * configure.ac:
503         * daapsharing/Makefile.am:
504         * daapsharing/rb-daap-connection.c:
505         (rb_daap_connection_disconnect):
506         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
507         (rb_daap_src_open):
508         * daapsharing/rb-daap-src.h:
509         * data/glade/Makefile.am:
510         * data/rhythmbox.schemas:
511         * data/ui/Makefile.am:
512         * plugins/Makefile.am:
513         * plugins/daap/.cvsignore:
514         * plugins/daap/Makefile.am:
515         * plugins/daap/daap.rb-plugin.desktop.in:
516         * plugins/daap/rb-daap-plugin.c:
517         * shell/Makefile.am:
518         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
519         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
520         * sources/Makefile.am:
521         * sources/rb-daap-source.c: (rb_daap_source_class_init),
522         (rb_daap_source_new), (connection_auth_cb),
523         (connection_connecting_cb), (connection_disconnected_cb),
524         (release_connection), (rb_daap_source_disconnect),
525         (rb_daap_source_show_popup):
526         * sources/rb-daap-source.h:
527         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
528         Fixes #336150.
530 2006-11-09  James Livingston  <doclivingston@gmail.com>
532         * rhythmdb/rhythmdb.c: take the ref before calling the delete
533         implementation, not after. From #372851.
535 2006-11-09  James Livingston  <doclivingston@gmail.com>
537         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
539         * plugins/Makefile.am:
540         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
541         fixes #371178.
543 2006-11-09  James Livingston  <doclivingston@gmail.com>
545         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
546         g_signal_connect_object not g_signal_object, which stops it beign
547         called after the plugin is disposed.
549 2006-11-09  James Livingston  <doclivingston@gmail.com>
551         * plugins/audioscrobbler/rb-audioscrobbler.c:
552         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
553         after we're finalised. Should fix #370513
555 2006-11-08  James Livingston  <doclivingston@gmail.com>
557         patch by: Jerry Tan  <jerry.tan@sun.com>
559         * data/glade/song-info.glade: set more a11y properties on the
560         label-for/labelled-by info. Fixes #368179.
562 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
564         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
565         (rb_entry_view_dispose), (rb_entry_view_finalize):
566         Unref objects and remove idle handlers in dispose rather than
567         finalize.  Should fix #364783.
569 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
571         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
572         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
573         xmlCreateMemoryParserCtxt returning NULL that was previously checking
574         the wrong variable.  Really fixes #336842.
576 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
578         * plugins/iradio/Makefile.am:
579         Actually install the UI file.
581 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
583         * plugins/generic-player/rb-generic-player-source.c:
584         (rb_generic_player_source_constructor),
585         (rb_generic_player_source_dispose),
586         (rb_generic_player_source_load_playlists):
587         Don't crash if the source is destroyed before it gets a chance
588         to load playlists.
590 2006-11-06  James Livingston  <doclivingston@gmail.com>
592         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
593         * rhythmdb/rhythmdb.c: some leak fixes
595 2006-11-06  James Livingston  <doclivingston@gmail.com>
597         * bindings/python/rb.override: change the right function in the last
598         commit.
600 2006-11-06  James Livingston  <doclivingston@gmail.com>
602         * bindings/python/rb.override: unwrap the python string instead of
603         wrapping it. Oops.
605 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
607         * tests/test-utils.c: (test_rhythmdb_setup):
608         Fix build break, #371106.
610 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
612         * tests/Makefile.am:
613         * tests/test-rhythmdb-property-model.c: (_get_property_count),
614         (START_TEST), (rhythmdb_property_model_suite), (main):
615         * tests/test-rhythmdb-query-model.c: (START_TEST),
616         (rhythmdb_query_model_suite), (main):
617         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
618         * tests/test-utils.c: (start_test_case), (end_step),
619         (end_test_case), (mark_signal), (set_waiting_signal),
620         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
621         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
622         * tests/test-utils.h:
623         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
625 2006-11-04  James Livingston  <doclivingston@gmail.com>
627         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
628         we were passed a absolute path, e.g. from the plugin file find
629         function.
631 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
633         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
635         * remote/dbus/rb-client.c: (main):
636         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
637         * shell/rb-shell.h:
638         * shell/rb-shell.xml:
639         Add dbus method to request a notification for the playing song, and
640         an argument to rhythmbox-client to use it.  Fixes #359593.
642 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
644         * remote/dbus/rb-print-playing.py:
645         Revert changes I accidentally committed a while ago.
647 2006-11-03  James Livingston  <doclivingston@gmail.com>
649         * data/glade/song-info.glade: make more labels selectable, from #368641
651 2006-11-03  James Livingston  <doclivingston@gmail.com>
653         * shell/rb-shell-clipboard.c: (get_focussed_widget),
654         (rb_shell_clipboard_cmd_select_all),
655         (rb_shell_clipboard_cmd_select_none): make Select All select text in
656         the focussed widget if it's a text entry. Fixes #364590
658 2006-11-03  James Livingston  <doclivingston@gmail.com>
660         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
661         (bacon_volume_button_init), (bacon_volume_button_dispose),
662         (bacon_volume_button_new), (bacon_volume_button_realize),
663         (bacon_volume_button_press), (bacon_volume_key_release),
664         (bacon_volume_release_grab), (cb_dock_key_release),
665         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
666         (bacon_volume_theme_changed), (bacon_volume_load_icons):
667         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
668         Fixes #369491
670 2006-10-31  James Livingston  <doclivingston@gmail.com>
672         * configure.ac: remove spaces around '=' where they shouldn't be,
673         fixes building when you have libgpod 0.3.x
675 2006-10-31  James Livingston  <doclivingston@gmail.com>
677         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
679         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
680         period is 0. Fixes #351425
682 2006-10-31  James Livingston  <doclivingston@gmail.com>
684         patch by: Luca Ferretti  <elle.uca@libero.it>
686         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
687         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
688         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
689         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
690         * plugins/ipod/ipod.rb-plugin.desktop.in:
691         * plugins/iradio/iradio.rb-plugin.desktop.in:
692         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
693         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
694         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
695         of the plugins. Fixes #365326
697 2006-10-31  James Livingston  <doclivingston@gmail.com>
699         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
701 2006-10-31  James Livingston  <doclivingston@gmail.com>
703         * data/glade/song-info.glade: set the mnemonic target for the labels
704         in the details tab. Fixes #368179.
706 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
708         * configure.ac:
709         When complaining about GStreamer being too old, use the right variable
710         name for the version we want.
712 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
714         * shell/rb-shell.h:
715         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
716         * shell/rb-tray-icon.h:
717         * bindings/python/rb.defs:
718         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
719         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
720         * sources/rb-playlist-source-recorder.c: (burn_cd):
721         * sources/rb-podcast-source.c:
722         (rb_podcast_source_start_download_cb),
723         (rb_podcast_source_finish_download_cb),
724         (rb_podcast_source_feed_updates_avaliable_cb):
725         Change the various notification functions to take a parameter
726         specifying whether the notification was explicitly requested by the
727         user.  Add a function to display a notification for an entry,
728         including streaming song metadata.
730         * shell/rb-shell-player.c: (rb_shell_player_stop):
731         Emit playing-song-changed and playing-uri-changed when stopping
732         playback.
734         * sources/Makefile.am:
735         * sources/rb-streaming-source.c:
736         * sources/rb-streaming-source.h:
737         Add a base class for streaming sources, handling streaming song
738         metadata and buffering messages, emitting notifications on song
739         changes, and updating play count statistics when playback stops.
741         * plugins/audioscrobbler/Makefile.am:
742         * plugins/audioscrobbler/rb-lastfm-source.c:
743         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
744         (rb_lastfm_source_constructor), (impl_get_status),
745         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
746         (rb_lastfm_source_title_from_uri),
747         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
748         (rb_lastfm_song_changed_cb), (impl_activate):
749         * plugins/audioscrobbler/rb-lastfm-source.h:
750         * plugins/iradio/Makefile.am:
751         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
752         (rb_iradio_source_constructor), (impl_get_status),
753         (info_available_cb), (playing_source_changed_cb):
754         * sources/rb-iradio-source.h:
755         Use the new streaming source base class for iradio and last.fm
756         sources.  Fixes #364094.
758 2006-10-30  James Livingston  <doclivingston@gmail.com>
760         * podcast/rb-podcast-manager.c:
761         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
762         any downloads from it before deleting the post entry. Fixes #366567.
764 2006-10-30  James Livingston  <doclivingston@gmail.com>
766         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
767         move-to-trash, since there have been reports of people accidently
768         deleting tracks and it probably isn't a common enough operation to be
769         worth a shortcut.
771 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
773         * backends/gstreamer/rb-player-gst.c:
774         * configure.ac:
775         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
776         Fix GStreamer 0.8 build (and some typos in configure.ac).
778 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
780         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
782         * sources/rb-source.c: (rb_source_class_init),
783         (rb_source_set_property), (rb_source_get_property):
784         Add a property to RBSource for plugin-created sources to have a
785         pointer to the RBPlugin object that created them.
787         * plugins/audiocd/Makefile.am:
788         * plugins/audiocd/multiple-album.glade:
789         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
790         * sources/Makefile.am:
791         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
792         * sources/rb-audiocd-source.h:
793         If musicbrainz returns multiple albums, present the user with a
794         choice between them.  Fixes #333215.
796         * configure.ac:
797         * plugins/Makefile.am:
798         Remove unused old audio CD stuff, only build audiocd plugin if we have
799         libnautilus-burn.  Fixes #367440.
801 2006-10-30  James Livingston  <doclivingston@gmail.com>
803         patch by: Brian McKenna  <puffnfresh@gmail.com>
805         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
806         handle blocks. Fixes #366696.
808 2006-10-30  James Livingston  <doclivingston@gmail.com>
810         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
812 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
814         * shell/rb-shell-player.c: (rb_shell_player_class_init),
815         (rb_shell_player_sync_with_source),
816         (rb_shell_player_get_playing_time_string), (tick_cb):
817         * widgets/rb-header.c: (rb_header_sync_time),
818         (slider_moved_callback), (rb_header_update_elapsed),
819         (rb_header_elapsed_changed_cb):
820         Revert dbus interface breakage introduced in the fix for #365908.
822 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
824         patch by: Luca Ferretti  <elle.uca@libero.it>
826         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
827         Remove the access keys from the podcast-specific column headers.
828         Fixes #360640 again.
830 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
832         patch by: James Livingston <doclivingston@gmail.com>
834         * sources/rb-browser-source.c: (rb_browser_source_constructor):
835         Only register the search actions once.  From #346801.
837 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
839         * shell/rb-shell-player.c: (rb_shell_player_error):
840         When handling an error, try playing the next stream URL if we have
841         one, rather than stopping playback.  From #358140.
843 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
845         * shell/rb-shell.c: (handle_playlist_entry_cb):
846         Don't crash if we can't guess a source for a URI in the playlist.
847         Fixes #366261.
849 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
851         * shell/rb-shell-player.c: (rb_shell_player_class_init),
852         (rb_shell_player_sync_with_source),
853         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
854         (tick_cb):
855         * widgets/rb-header.c: (rb_header_sync_time),
856         (rb_header_elapsed_changed_cb):
857         Treat elapsed time as signed, since rb_player_get_time returns a
858         signed value.  When actually using the value, mostly treat negative
859         values as 0.  Fixes #365908.
861 2006-10-27  James Livingston  <doclivingston@gmail.com>
863         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
865         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
866         returning 0 for the year/month/day. Fixes #364837.
868 2006-10-27  James Livingston  <doclivingston@gmail.com>
870         patch by: Luca Ferretti  <elle.uca@libero.it>
872         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
873         access keys from the entry view columns headers - they cause
874         keybindings conflicts, headaches for translators and the HIG says
875         they are bad. Fixes #360640.
877 2006-10-27  James Livingston  <doclivingston@gmail.com>
879         patch by: Luca Ferretti  <elle.uca@libero.it>
881         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
882         access keys from the entry view columns headers - they cause
883         keybindings conflicts, headaches for translators and the HIG says
884         they are bad. Fixes #360640.
886 2006-10-27  James Livingston  <doclivingston@gmail.com>
888         * rhythmdb/rhythmdb-private.h:
889         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
890         issues
892 2006-10-27  James Livingston  <doclivingston@gmail.com>
894         * plugins/artdisplay/Makefile.am:
895         * plugins/audioscrobbler/Makefile.am:
896         * plugins/iradio/Makefile.am: fix make clean
898 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
900         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
901         Fall back to strtod() if g_ascii_strtod() doesn't work.
903         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
904         Write floating point values using g_ascii_dtostr() to avoid
905         problems with locale-specific representations.  From #353205.
907 2006-10-25  James Livingston  <doclivingston@gmail.com>
909         * plugins/artdisplay/Makefile.am:
910         * plugins/audioscrobbler/Makefile.am:
911         * plugins/iradio/Makefile.am: fix "make distcheck"
913 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
915         patch by: Brian Cameron <brian.cameron@sun.com>
917         * plugins/audiocd/Makefile.am:
918         Link audiocd plugin with libnautilus-burn as required to get it to work
919         on Solaris.  Fixes #363288.
921 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
923         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
925         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
926         Clarify that we don't submit actual songs to last.fm, just information
927         on what you're listening to.  Fixes #364014.
929 2006-10-24  Bastien Nocera  <hadess@hadess.net>
931         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
932         (bacon_volume_button_class_init), (bacon_volume_button_new),
933         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
934         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
935         (bacon_volume_scale_value_changed): update from libbacon, to get
936         better accessibility support (Closes: #364637)
938 2006-10-24  James Livingston  <doclivingston@gmail.com>
940         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
942         * configure.ac: fix some typos and leftovers from disabled->enabled
943         changes. Fixes #364217
945 2006-10-23  William Jon McCann  <mccann@jhu.edu>
947         * shell/rb-source-header.c (rb_source_header_init):
948         Don't require source header cells to be homogeneous.
949         Patch from #359188
951 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
953         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
954         Pause the pipeline while buffering.  Fixes #358290.
956 2006-10-23  Bastien Nocera  <hadess@hadess.net>
958         * configure.ac: update required libgpod version to avoid crashes
959         when starting up with an iPod connect (Closes: #352972)
960         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
961         (hal_udi_is_ipod): remove outdated ifdefs
963 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
965         * plugins/Makefile.am:
966         * plugins/power-manager/rb-power-manager-plugin.c:
967         Don't try to build the power-manager plugin with dbus < 0.35.
969 2006-10-22  James Livingston  <doclivingston@gmail.com>
971         patch by: Ed Catmur  <ed@catmur.co.uk>
973         * plugins/artdisplay/Makefile.am:
974         * plugins/artdisplay/artdisplay/__init__.py:
975         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
976         placeholder art when none is available, to avoid having the widget pop
977         in and out of existance.
979 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
981         * plugins/lyrics/lyrics.py:
982         Set the lyrics window transient for the main window so it can
983         actually be seen in party mode.  Fixes #362981.
985 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
987         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
988         * sources/rb-source.c: (rb_source_class_init),
989         (rb_source_can_show_properties), (rb_source_song_properties):
990         * sources/rb-source.h:
991         Only enable the 'properties' item in the 'music' menu if the selected
992         source implements the show_properties method.  Fixes #356485.
994 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
996         * shell/rb-shell-player.c:
997         (rb_shell_player_property_row_activated_cb):
998         Take the entry to play from the play order, rather than grabbing the
999         first entry in the query model.  Fixes #362042.
1001 2006-10-16  James Livingston  <doclivingston@gmail.com>
1003         * shell/main.c: (main): save custom menu accelerators before exiting.
1004         Fixed #362300
1006 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
1008         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
1009         I HATE adding this patch, but I'm sick of hitting Yes once
1010         and hour.  Working around brain-dead podcasts.
1012 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1014         * plugins/lyrics/lyrics.py:
1015         Disconnect the create-song-info handler when deactivated.
1016         Fixes #361882.
1018 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1020         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
1021         Reset the style when clearing the search text.  Fixes #361295.
1023 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1025         * rhythmdb/rhythmdb-query-model.c:
1026         (rhythmdb_query_model_entry_changed_cb):
1027         Don't emit entry-prop-changed for hidden signals from chained query
1028         models, as the model will also propagate the parent model's
1029         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
1031 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1033         * sources/rb-ipod-source.c: (generate_ipod_filename):
1034         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
1035         * lib/rb-cut-and-paste-code.h:
1036         Move eel_make_valid_utf8 to lib/, make the replacement
1037         character a parameter.
1039         * rhythmdb/rhythmdb.c: (make_access_failed_error),
1040         (rhythmdb_execute_multi_stat_info_cb),
1041         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
1042         When constructing an error message that includes a URI, make sure the
1043         URI is valid utf-8.  Fixes #353588.
1045 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1047         * player/rb-recorder-gst.c: (rb_recorder_construct),
1048         (acb_wave_time):
1049         Add an extra audioconvert element to allow endianness conversion on
1050         big-endian machines, and fix a few endianness issues in the .wav
1051         reading code.  Fixes #355611.
1053 2006-10-09  James Livingston  <doclivingston@gmail.com>
1055         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1057         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
1058         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
1059         Fixes #357553.
1061 2006-10-09  James Livingston  <doclivingston@gmail.com>
1063         patch by: Luca Ferretti  <elle.uca@libero.it>
1065         * data/glade/song-info-multiple.glade:
1066         * data/glade/song-info.glade: Fix a few HIG issues.
1068 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1070         * plugins/audioscrobbler/rb-lastfm-source.c:
1071         (rb_lastfm_source_class_init):
1072         Return TRUE from impl_try_playlist so playback starts in a separate
1073         thread.
1075 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1077         * shell/main.c: (main):
1078         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
1079         UTF-8 GStreamer messages.  Fixes #357973.
1081 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1083         * shell/rb-shell.c: (rb_shell_constructor):
1084         Remove a line that accidentally slipped in from some other universe.
1086 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1088         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
1089         Don't remove sources from the hash table while iterating it on
1090         shutdown.  Fixes #359583.
1092 2006-10-07  James Livingston  <doclivingston@gmail.com>
1094         patch from Alex Lancaster  <alexl@users.sourceforge.net>
1096         * shell/rb-shell.c: change the keybinding for "Plugins" to not
1097         conflict with others. Fixes #355904
1099 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1101         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
1102         (rhythmdb_query_model_chain),
1103         (rhythmdb_query_model_entry_changed_cb),
1104         (rhythmdb_query_model_base_entry_prop_changed),
1105         (rhythmdb_query_model_base_entry_removed):
1106         For chained models, propagate the parent model's entry-prop-changed
1107         signal rather than emitting one from the db entry-changed handler.
1108         This ensures that when the change filters the entry out of the parent
1109         model, property models attached to the child model get the entry
1110         change signal before the post-entry-delete signal, so they can
1111         decrement the refcount for the right property value.  Fixes #359083.
1113 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1115         * plugins/audioscrobbler/Makefile.am:
1116         define NULL
1118 2006-10-07  James Livingston  <doclivingston@gmail.com>
1120         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1121         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
1122         * plugins/audioscrobbler/rb-lastfm-source.c:
1123         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
1124         hypens in URI schemes.
1126 2006-10-06  William Jon McCann  <mccann@jhu.edu>
1128         * plugins/iradio/Makefile.am:
1129         * plugins/audioscrobbler/Makefile.am:
1130         * plugins/cd-recorder/Makefile.am:
1131         Don't clean all plugin_DATA.
1132         Fixes #360210
1134 2006-10-06  James Livingston  <doclivingston@gmail.com>
1136         patch from Matt N  <fisxoj@gmail.com>
1138         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
1139         (rb_player_gst_bus_cb):
1140         * backends/rb-player.c: (rb_player_interface_init),
1141         (_rb_player_emit_tick), (_rb_player_emit_event):
1142         * backends/rb-player.h: let the backend emit named "events", for
1143         things that the core shouldn't know about.
1145         * rhythmdb/rhythmdb.h:
1146         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
1147         support for streams containing album metadata.
1149         * plugins/audioscrobbler/Makefile.am:
1150         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1151         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1152         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
1153         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1154         * plugins/audioscrobbler/rb-lastfm-source.c:
1155         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
1156         of last.fm streams. From #313049.
1158 2006-10-06  James Livingston  <doclivingston@gmail.com>
1160         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
1161         committing. Oops.
1163 2006-10-06  James Livingston  <doclivingston@gmail.com>
1165         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
1167         * configure.ac:
1168         * data/rhythmbox.schemas:
1169         * plugins/Makefile.am:
1170         * plugins/magnatune/Makefile.am:
1171         * plugins/magnatune/magnatune-loading.glade:
1172         * plugins/magnatune/magnatune-prefs.glade:
1173         * plugins/magnatune/magnatune-purchase.glade:
1174         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
1175         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
1176         * plugins/magnatune/magnatune/MagnatuneSource.py:
1177         * plugins/magnatune/magnatune/TrackListHandler.py:
1178         * plugins/magnatune/magnatune/__init__.py:
1179         * plugins/magnatune/magnatune_circle_small.png:
1180         * plugins/magnatune/magnatune_logo_color_small.png:
1181         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
1182         play and download tracks from the MagnaTune online music store. From
1183         #345783.
1185 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1187         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1188         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
1189         (check_auto_proxy_config), (get_proxy_config):
1190         Don't crash when eel_gconf_get_string returns NULL.
1191         Fixes #359974.
1193 2006-10-04  James Livingston  <doclivingston@gmail.com>
1195         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
1197         * plugins/audiocd/Makefile.am: fix the plugin when linking with
1198         --as-needed. Fixes #358730
1200 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1202         patch by:  William Jon McCann  <mccann@jhu.edu>
1204         * sources/rb-iradio-source.c: (playing_source_changed_cb):
1205         Fix some stupidity I introduced that caused crashes on shutdown.
1206         Fixes #359181.
1208 2006-10-02  William Jon McCann  <mccann@jhu.edu>
1210         * plugins/audiocd/Makefile.am:
1211         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
1212         * plugins/iradio/.cvsignore:
1213         * plugins/iradio/Makefile.am:
1214         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
1215         (impl_deactivate):
1216         * plugins/power-manager/.cvsignore:
1217         Install missing iradio ui file.  Don't leak ui filename.
1218         Fix iradio install dir. Fix audiocd install dir.
1219         Remove unused code from audio cd plugin.
1221         Fixes #359170
1223 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1225         * sources/rb-ipod-source.c: (impl_move_to_trash):
1226         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
1227         commented out while fixing bug 355235.  Oops.
1229 2006-10-03  James Livingston  <doclivingston@gmail.com>
1231         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
1232         non-unicode warnings to debug statements, since they can occur with
1233         slightly broken files.
1235         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
1236         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
1237         iradio plugin is disabled and re-enabled.
1239 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1241         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
1242         (rhythmdb_entry_podcast_post_get_type):
1243         * rhythmdb/rhythmdb.h:
1244         * tests/bench-rhythmdb-load.c: (main):
1245         Add definitions for some common extra-metadata fields,
1246         remove iradio entry type definition, add the concept of entry type
1247         categories, define categories for the core entry types.
1248         Categories are used to decide if an entry can be copied to a removable
1249         device, if it should be reported to audioscrobbler, etc.
1251         * shell/Makefile.am:
1252         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1253         (rb_shell_player_constructor), (rb_shell_player_init),
1254         (rb_shell_player_get_property), (open_location_thread),
1255         (rb_shell_player_open_location),
1256         (rb_shell_player_sync_with_source),
1257         (rb_shell_player_set_playing_source_internal), (tick_cb):
1258         * shell/rb-shell.c: (construct_widgets), (construct_sources),
1259         (rb_shell_player_elapsed_changed_cb):
1260         Remove iradio-specific code, use extra metadata fields for streaming
1261         title and artist name.
1263         * data/ui/rhythmbox-ui.xml:
1264         Add a placeholder for 'new ...' menu items.
1266         * Makefile.am:
1267         * sources/Makefile.am:
1268         * configure.ac:
1269         * data/rhythmbox.schemas:
1270         * plugins/Makefile.am:
1271         * plugins/iradio/Makefile.am:
1272         * plugins/iradio/iradio-ui.xml:
1273         * plugins/iradio/iradio.rb-plugin.desktop.in:
1274         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1275         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1276         (rb_iradio_plugin_class_init):
1277         iradio plugin, enabled and hidden by default.
1279         * plugins/audioscrobbler/rb-audioscrobbler.c:
1280         (rb_audioscrobbler_song_changed_cb):
1281         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1282         * sources/rb-daap-source.c: (rb_daap_source_new):
1283         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1284         Define entry type categories, and use them where appropriate.
1286         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1287         (rb_iradio_source_constructor), (rb_iradio_source_new),
1288         (impl_get_status), (impl_want_uri), (buffering_cb),
1289         (check_entry_type), (streaming_title_request_cb),
1290         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1291         (info_available_cb), (playing_entry_changed_cb),
1292         (playing_source_changed_cb):
1293         Move streaming metadata and buffering handling here from
1294         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1295         title or artist changes, and handle request and gather signals for
1296         those.
1298         * widgets/rb-header.c: (rb_header_class_init),
1299         (rb_header_set_property), (rb_header_get_property),
1300         (rb_header_new), (append_and_free), (rb_header_sync):
1301         * widgets/rb-header.h:
1302         Rework to use streaming artist and title extra-metadata.
1303         streaming-artist overrides entry artist, and streaming-title means
1304         entry title is a stream name, displayed in brackets.
1306         * doc/reference/Makefile.am:
1307         * doc/reference/rhythmbox.types:
1308         Remove iradio stuff from gtk-doc build.
1310         Fixed #347097.
1312 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1314         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1316         * bindings/python/rhythmdb.defs:
1317         * lib/rb-marshal.list:
1318         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1319         (rhythmdb_emit_entry_deleted),
1320         (rhythmdb_entry_extra_metadata_accumulator),
1321         (rhythmdb_entry_request_extra_metadata),
1322         (rhythmdb_emit_entry_extra_metadata_notify),
1323         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1324         * rhythmdb/rhythmdb.h:
1325         Add signals for dealing with transient metadata outside the set stored
1326         in RhythmDBEntry:
1327         - entry_extra_metadata_request returns a value for the requested
1328           metadata field
1329         - entry_extra_metadata_notify notifies observers of a change to an
1330           extra metadata field
1331         - entry_extra_metadata_gather returns the values of all extra metadata
1332           fields
1334         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1335         (rb_shell_player_extra_metadata_cb):
1336         Sync the display on extra metadata changes and emit dbus signals when
1337         we can marshal the value.
1339         * shell/rb-shell.c: (rb_shell_get_song_properties):
1340         Implement rb_shell_song_get_properties using
1341         rhythmdb_entry_gather_metadata.
1343         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1344         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1345         * configure.ac:
1346         Add GValue marshaller for python (until bug 351072 is fixed)
1348         From #345592.
1350 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1352         * configure.ac:
1353         * data/rhythmbox.schemas:
1354         * plugins/Makefile.am:
1355         * plugins/power-manager/Makefile.am:
1356         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1357         * plugins/power-manager/rb-power-manager-plugin.c:
1358         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1359         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1360         (playing_changed_cb), (impl_activate), (impl_deactivate):
1361         gnome-power-manager integration: inhibit suspend while playing.
1362         Fixes #344979.
1364 2006-10-02  James Livingston  <doclivingston@gmail.com>
1366         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1367         and Alex Lancaster  <alexl@users.sourceforge.net>
1369         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1370         Fixes #353143, #353146 and #353147.
1372 ============ Version 0.9.6
1374 2006-10-01  James Livingston  <doclivingston@gmail.com>
1376         * configure.ac: bump version to 0.9.6. enable tag-writing and
1377         ipod-writing by default
1379         * NEWS: update NEWS
1381 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1383         patch by:  William Jon McCann  <mccann@jhu.edu>
1385         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1386         Use a local GError in case no error pointer pointer is passed in.
1387         From bug #358396.
1389 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1391         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1392         Don't reference members of freed structures.
1394 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1396         patch by:  William Jon McCann  <mccann@jhu.edu>
1398         * player/rb-recorder-gst.c: (rb_recorder_burn):
1399         Drop GDK lock before entering n-c-b.  Fixes #353894?
1401 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1403         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1404         (impl_activate):
1405         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1407 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1409         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1410         Call lirc_init before lirc_readconfig so we don't crash if the user's
1411         .lircrc file has any mode sections. Fixes #357419.
1413 2006-09-24  James Livingston  <doclivingston@gmail.com>
1415         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1416         if we get called twice, as that can happen. Fixes #357214.
1418 2006-09-24  James Livingston  <doclivingston@gmail.com>
1420         * backends/rb-encoder.h: add "file access" error
1422         * lib/rb-file-helpers.c: (rb_dot_dir):
1423         * podcast/rb-podcast-manager.c:
1424         (rb_podcast_manager_download_file_info_cb): remove directory creation
1425         race condition.
1427         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1428         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1429         directory creation. Fixes #347743
1431 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1433         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1434         Strip trailing whitespace
1436 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1438         * rhythmdb/Makefile.am:
1439         * rhythmdb/rhythmdb-private.h:
1440         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1441         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1442         * rhythmdb/rhythmdb-tree.h:
1443         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1444         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1445         * rhythmdb/rhythmdb.h:
1446         Rather than aborting, show an error and refuse to load the database when
1447         it appears to come from the future.  From bug #350304.
1449 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1451         * bindings/python/rhythmdb.override:
1452         Make entry_foreach usable.
1454 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1456         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1457         Scale the icon so it matches the rest of the sources.
1458         Fixes #351410.
1460 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1462         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1463         (rhythmdb_property_model_set_query_model_internal),
1464         (rhythmdb_property_model_row_inserted_cb),
1465         (rhythmdb_property_model_prop_changed_cb),
1466         (rhythmdb_property_model_entry_removed_cb),
1467         (rhythmdb_property_model_delete),
1468         (rhythmdb_property_model_perform_sync):
1469         Use the hash table to track hidden entries, rather than visible
1470         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1472 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1474         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1475         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1477 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1479         * sources/rb-ipod-source.c: (add_rb_playlist),
1480         (impl_move_to_trash), (impl_delete_thyself):
1481         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1483         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1484         Make sure we don't leave the sourcelist thinking a deleted source is
1485         still playing.  Fixes nothing.
1487 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1489         * shell/rb-shell.c:
1490         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1491         'Music->Import Folder' menu item for better icon theme coverage.
1492         Fixes #354575.
1494 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1496         * rhythmdb/rhythmdb-private.h:
1497         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1498         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1499         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1500         (rhythmdb_load), (rhythmdb_save_async):
1501         Use a limited thread pool for adding URIs to the database.
1502         Fixes #352494.
1504 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1506         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1507         Do something like the previous change, but for gstreamer 0.10
1508         this time.  Oops.  Really fixes #349569.
1510 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1512         * backends/gstreamer/rb-player-gst.c: (error_cb):
1513         Ignore 'internal data flow error' messages if we've already got an
1514         error for the file.  Fixes #349569.
1516 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1518         * shell/rb-shell-clipboard.c:
1519         (rb_shell_clipboard_playlist_deleted_cb):
1520         Rebuild 'add to playlist' menu before removing actions for deleted
1521         playlists, and don't unref the action, as we never had a reference on
1522         it to begin with.  Fixes #354599.
1524 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1526         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1527         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1528         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1530 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1532         * daapsharing/rb-daap-connection.c: (handle_playlists):
1533         Reverse the list of playlists on the DAAP server so it ends up in the
1534         right order.  Fixes #353926.
1536 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1538         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1539         Fully process each code so the LIRC client returns to its normal state
1540         when we're done.  Makes LIRC actually work properly for me.
1542 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1544         patch by: Ed Catmur  <ed@catmur.co.uk>
1546         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1547         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1548         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1550 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1552         patch by: James Livingston <doclivingston@gmail.com>
1554         * configure.ac:
1555         * data/rhythmbox.schemas:
1556         * metadata/Makefile.am:
1557         * plugins/Makefile.am:
1558         * plugins/audiocd/.cvsignore:
1559         * plugins/audiocd/Makefile.am:
1560         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1561         * plugins/audiocd/rb-audiocd-plugin.c:
1562         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1563         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1564         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1565         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1566         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1567         (rb_audiocd_plugin_playing_uri_changed_cb),
1568         (nautilus_burn_drive_get_device),
1569         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1570         (impl_activate), (_delete_cb), (impl_deactivate):
1571         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1572         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1573         * shell/main.c: (main):
1574         * shell/rb-removable-media-manager.c:
1575         (rb_removable_media_manager_finalize),
1576         (rb_removable_media_manager_load_media),
1577         (rb_removable_media_manager_mount_volume),
1578         (rb_removable_media_manager_scan):
1579         * sources/Makefile.am:
1580         * sources/rb-audiocd-source.c:
1581         * sources/rb-audiocd-source.h:
1582         Make auto CD support a plugin.
1584         Fixes #349415.
1586 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1588         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1589         Add a final rhythmdb_commit to make sure all songs from the share show
1590         up in the daap source.  Fixes #353913.
1592 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1594         * sources/rb-sourcelist-model.c:
1595         (rb_sourcelist_model_drag_data_received),
1596         (rb_sourcelist_model_row_drop_possible):
1597         Re-enable dragging of a set of tracks to the source list to create a
1598         new static playlist.  Fixes #353893.
1600 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1602         * widgets/bacon-volume.c: (cb_button_timeout):
1603         Actually drop the GDK lock, rather than returning while holding it.
1604         Fixes #353895.
1606 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1608         * plugins/generic-player/rb-generic-player-source.c:
1609         (rb_generic_player_source_constructor),
1610         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1611         (rb_generic_player_source_load_songs), (load_playlist_file),
1612         (default_load_playlists), (get_hal_context):
1613         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1614         Fixes #353483.
1616 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1618         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1619         Canonicalise URIs received from gnome-vfs file monitor.
1620         Fixes #353447.
1622 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1624         * help/C/rhythmbox.xml: unbreak help build
1625         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1626         Unbuffer the IO channel.  Fixes some weirdness for me.
1628 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1630         * help/C/rhythmbox.xml:
1631         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1632         (impl_activate), (impl_deactivate):
1633         Add 'playpause' LIRC command.
1635 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1637         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1638         (rb_source_finalize):
1639         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1640         when disconnecting generic audio players.
1642 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1644         patch by: Paolo Borelli  <pborelli@katamail.com>
1646         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1647         Fix a small leak.
1649 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1651         * backends/gstreamer/rb-player-gst.c:
1652         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1653         Don't actually disable the seek bar for non-seekable songs,
1654         because we can't reliably tell yet.
1656 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1658         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1659         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1660         (db_entry_deleted_cb), (rb_daap_share_server_start),
1661         (rb_daap_share_server_stop):
1662         * rhythmdb/rhythmdb-private.h:
1663         * rhythmdb/rhythmdb-tree.c: (save_entry):
1664         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1665         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1666         (rhythmdb_entry_get_ulong):
1667         * rhythmdb/rhythmdb.h:
1668         Give db entries a numeric ID property, replacing the daap server's
1669         entry->id map.  From #347665.
1671 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1673         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1674         * widgets/rb-header.c: (rb_header_class_init),
1675         (rb_header_set_property), (rb_header_get_property),
1676         (rb_header_set_playing_entry), (rb_header_sync),
1677         (rb_header_sync_time):
1678         * widgets/rb-header.h:
1679         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1680         insensitive when the player backend tells us we can't seek in the
1681         current song.  From #330410.
1683 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1685         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1686         Don't try to unref previous/next entries if they aren't there.
1687         Fixes #351806.
1689 2006-08-15  James Livingston  <doclivingston@gmail.com>
1691         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1692         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1693         mountpoint into a RBRefString and compare equality of those, rather
1694         than doign lots of strcmp()s.
1696         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1697         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1698         status notification as well as the visibility update in an idle
1699         callback. Makes it take much less time to update after a volume
1700         mount/unmount event.
1702 2006-08-15  James Livingston  <doclivingston@gmail.com>
1704         patch by: Christian Becke  <christianbecke@web.de>
1706         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1707         multiple selections in the Import Folder dialog. Fixes #351414.
1709 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1711         * shell/rb-shell.c: (construct_widgets):
1712         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1713         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1714         (rb_statusbar_get_property), (rb_statusbar_new):
1715         * shell/rb-statusbar.h:
1716         Use the connect-proxy signal from the UI manager, which covers all
1717         action groups, rather than just one.  Fixes #351280.
1719 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1721         * widgets/rb-library-browser.c: (rebuild_child_model):
1722         Fix query model reference counts (bug #349601).
1724 2006-08-15  James Livingston  <doclivingston@gmail.com>
1726         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1727         Error signals be non-recursive. Fixes a highly-unlikely issue that
1728         could have caused #322972.
1730 2006-08-14  James Livingston  <doclivingston@gmail.com>
1732         * sources/rb-auto-playlist-source.c:
1733         (rb_auto_playlist_source_init):
1734         * sources/rb-static-playlist-source.c:
1735         (rb_static_playlist_source_init):
1737 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1739         * sources/rb-browser-source.c:
1740         * sources/rb-import-errors-source.c:
1741         * sources/rb-iradio-source.c:
1742         * sources/rb-library-source.c:
1743         * sources/rb-missing-files-source.c:
1744         * sources/rb-play-queue-source.c:
1745         * sources/rb-playlist-source.c:
1746         * sources/rb-podcast-source.c:
1747         * sources/rb-source.c:
1748         Make entry-type a property on RBSource, rather than on most of its
1749         subclasses.  Fixes #347288.
1751 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1753         * remote/dbus/rb-client.c: (parse_pattern),
1754         (create_rb_shell_proxies), (main):
1755         Actually implement %ag and %aG (genre) for --print-playing-format
1757 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1759         * lib/rb-debug.c: (rb_debug_real):
1760         No point allocating a buffer for the timestamp when we can just put it
1761         on the stack.
1763 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1765         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1766         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1768 2006-08-11  James Livingston  <doclivingston@gmail.com>
1770         * podcast/rb-podcast-manager.c:
1771         (rb_podcast_manager_update_synctime): fix accidental commit in the
1772         last, which caused a warning.
1774 2006-08-11  James Livingston  <doclivingston@gmail.com>
1776         * data/rhythmbox.schemas:
1777         * podcast/rb-podcast-manager.c:
1778         (rb_podcast_manager_update_synctime): change the schema's
1779         update-inteval value from 0 to 1, which causes it to update on
1780         startup, rather than never. Should fixs #343818.
1782 2006-08-11  James Livingston  <doclivingston@gmail.com>
1784         * configure.ac:
1785         * data/Makefile.am:
1786         - data/rhythmbox.desktop.in:
1787         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1788         the @VERSION@ can be substituted in. Fix some issues with newer
1789         bug-buddy versions. Fixes #348853.
1791 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1793         * data/rhythmbox.schemas:
1794         * plugins/Makefile.am:
1795         * plugins/artdisplay/Makefile.am:
1796         * plugins/audioscrobbler/Makefile.am:
1797         * plugins/cd-recorder/Makefile.am:
1798         * plugins/generic-player/Makefile.am:
1799         * plugins/ipod/Makefile.am:
1800         * plugins/lirc/Makefile.am:
1801         * plugins/lyrics/Makefile.am:
1802         * plugins/pythonconsole/Makefile.am:
1803         * plugins/rb-module.c:
1804         * plugins/rb-module.h:
1805         * plugins/rb-plugin-manager.c: (configure_button_cb),
1806         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1807         (plugin_manager_populate_lists), (plugin_manager_set_active),
1808         (plugin_manager_toggle_active),
1809         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1810         (rb_plugin_manager_finalize):
1811         * plugins/rb-plugin-manager.h:
1812         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1813         (rb_plugin_find_file):
1814         * plugins/rb-plugin.h:
1815         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1816         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1817         (rb_plugins_engine_init), (rb_plugin_info_free),
1818         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1819         (rb_plugins_engine_deactivate_plugin),
1820         (rb_plugins_engine_plugin_is_active),
1821         (rb_plugins_engine_plugin_is_visible),
1822         (rb_plugins_engine_plugin_is_configurable),
1823         (rb_plugins_engine_configure_plugin),
1824         (rb_plugins_engine_get_plugin_name),
1825         (rb_plugins_engine_get_plugin_description),
1826         (rb_plugins_engine_get_plugin_authors),
1827         (rb_plugins_engine_get_plugin_website),
1828         (rb_plugins_engine_get_plugin_copyright),
1829         (rb_plugins_engine_get_plugin_icon):
1830         * plugins/rb-plugins-engine.h:
1831         * plugins/rb-python-module.c: (rb_python_module_init_python),
1832         (rb_python_module_load), (rb_python_module_unload),
1833         (rb_python_module_class_init), (rb_python_module_new),
1834         (finalise_collect_cb), (rb_python_shutdown):
1835         * plugins/rb-python-module.h:
1836         * plugins/rb-python-plugin.c: (call_python_method),
1837         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1838         (impl_is_configurable), (rb_python_object_get_type):
1839         * plugins/rb-python-plugin.h:
1840         * plugins/rb/Makefile.am:
1842         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1843         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1844         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1845         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1846         special case loading of dirs.  Install plugins to subdirectors of
1847         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1848         not DATADIR.  Fixes #350352
1850 2006-08-10  James Livingston  <doclivingston@gmail.com>
1852         * daapsharing/rb-daap-connection.c: (connection_connected),
1853         (connection_disconnected), (connection_operation_done):
1854         * daapsharing/rb-daap-share.c: (name_collision_cb):
1855         * plugins/generic-player/rb-generic-player-source.c:
1856         (rb_generic_player_source_load_playlists):
1857         * podcast/rb-podcast-manager.c:
1858         (rb_podcast_manager_download_entry),
1859         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1860         (end_job), (rb_podcast_manager_event_loop):
1861         * rhythmdb/rhythmdb-property-model.c:
1862         (rhythmdb_property_model_perform_sync):
1863         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1864         (rhythmdb_query_model_process_update), (idle_process_update),
1865         (rhythmdb_query_model_reapply_query_cb):
1866         * shell/rb-play-order.c: (sync_playing_entry_cb):
1867         * shell/rb-removable-media-manager.c:
1868         (rb_removable_media_manager_load_media):
1869         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1870         (rb_shell_clipboard_sync),
1871         (rb_shell_clipboard_entryview_changed_cb),
1872         (rb_shell_clipboard_entries_changed_cb),
1873         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1874         (rebuild_playlist_menu_idle),
1875         (rb_shell_clipboard_playlist_added_cb):
1876         * shell/rb-shell-player.c: (notify_playing_idle),
1877         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1878         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1879         (rb_shell_quit):
1880         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1881         * sources/rb-library-source.c: (add_child_sources_idle):
1882         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1883         (burn_cd_idle):
1884         * sources/rb-source.c: (update_visibility_idle):
1885         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1886         (cb_button_press):
1887         * widgets/rb-druid.c: (idle_set_sensitive):
1888         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1889         take the GDK lock when we should be, from #348588
1891 2006-08-09  James Livingston  <doclivingston@gmail.com>
1893         * rhythmdb/rhythmdb-property-model.c:
1894         (rhythmdb_property_model_get_path),
1895         (rhythmdb_property_model_get_value),
1896         (rhythmdb_property_model_iter_next): don't attempt to verify the
1897         iterator if it's the All value, since it isn't valid. Fixes a
1898         potential crasher.
1900 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1902         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1903         (rb_podcast_manager_download_file_info_cb),
1904         (rb_podcast_manager_abort_download), (download_info_free),
1905         (download_info_new):
1906         Use gnome_vfs_async_get_file_info to figure out the local filename for
1907         a podcast episode, so we get the filename from the target of any
1908         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1909         the query string, then append it later, to stop gnome-vfs from
1910         converting 'http://' to 'http:/'.  If the local filename ends with the
1911         query string, remove it.  Fixes #330766 and #321991.
1913 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1915         * sources/rb-library-source.c: (impl_want_uri):
1916         * sources/rb-static-playlist-source.c: (impl_want_uri):
1917         Treat sftp:// URIs as likely indicators of songness.
1919 2006-08-07  James Livingston  <doclivingston@gmail.com>
1921         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1922         remote tracks with GStreamer 0.10, and remember their visibility like
1923         local ones.
1925 2006-08-07  James Livingston  <doclivingston@gmail.com>
1927         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1928         apparently it's a borrowed reference. Should fix #347072.
1930 2006-08-06  James Livingston  <doclivingston@gmail.com>
1932         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1933         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1934         (rb_shuffle_play_order_get_previous),
1935         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1936         (remove_from_history), (add_randomly_to_history),
1937         (rb_shuffle_sync_history_with_query_model),
1938         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1939         (query_model_and_history_contents_match): remove the tentatative
1940         history stuff, which is from older code, like we did for -random a few
1941         weeks ago.
1943 2006-08-06  James Livingston  <doclivingston@gmail.com>
1945         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1946         (rb_queue_play_order_get_previous):
1947         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1948         (rb_random_play_order_go_next),
1949         (rb_random_play_order_get_previous), (rb_random_db_changed):
1950         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1951         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1952         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1953         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1954         (rb_shuffle_entry_removed),
1955         (query_model_and_history_contents_match):
1956         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1957         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1958         (default_has_next), (default_has_previous),
1959         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1960         various play orders, after reviewing the code. Should fix #349601.
1962 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1964         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1965         Pass the items_per_notification parameter to
1966         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1967         with some versions of python.
1969 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1971         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1972         Don't try to draw the icon if the drawable area is too small.
1973         Fixes #349838.
1975 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1977         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1979         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1981 2006-08-05  James Livingston  <doclivingston@gmail.com>
1983         * configure.ac: tell libtool not to check for C++/fortran/ etc
1984         compilers
1986         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1987         watch, to fix some gconf warnings.
1989 2006-08-04  James Livingston  <doclivingston@gmail.com>
1991         patch by: William Jon McCann  <mccann@jhu.edu>
1993         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1995 2006-08-04  James Livingston  <doclivingston@gmail.com>
1997         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1998         actually fix #349722 this time
2000 2006-08-04  James Livingston  <doclivingston@gmail.com>
2002         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
2003         to seach for local art from http:// URIs, or those gnome-vfs doesn't
2004         know about. Fixes #348571.
2006 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
2008         various fixes for valgrind complaints:
2009         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
2010         (init_rb_tree_dnd_data):
2011           free the associated target list, too
2012         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
2013           initialize allocation.{x,y,width,height} correctly
2014         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
2015         (rb_entry_view_constructor):
2016           free strings when no longer needed
2018 2006-08-03  James Livingston  <doclivingston@gmail.com>
2020         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
2021         real GtkTreeModel not the filter. Fixes #349722
2023 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2025         * backends/gstreamer/rb-player-gst.c:
2026         Only use DAAP seek hacks for GStreamer 0.8 builds.
2028         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
2029         (rb_daap_src_open):
2030         * daapsharing/rb-daap-src.h:
2031         Implement normal GStreamer seeking for GStreamer 0.10 builds.
2033         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2034         (rb_daap_source_get_headers):
2035         * sources/rb-daap-source.h:
2036         Reimplement rb_daap_source_get_headers for the case where we've
2037         already got the byte offset.  Add a small hack to
2038         rb_daap_source_class_init to prevent the linker from dropping
2039         rb-daap-src.o entirely.
2041         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
2043 2006-08-02  James Livingston  <doclivingston@gmail.com>
2045         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
2046         (handle_song_listing), (handle_playlist_entries),
2047         (rb_daap_connection_dispose):
2048         * sources/rb-daap-source.c: (_add_location_to_playlist),
2049         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
2050         for playlist URIs, not pointless duplicate strings. From #347425.
2052 2006-08-02  James Livingston  <doclivingston@gmail.com>
2054         * data/rhythmbox.schemas:
2055         * lib/rb-preferences.h:
2056         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
2057         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
2058         (plugin_manager_set_active), (plugin_manager_toggle_active),
2059         (plugin_manager_get_selected_plugin), (name_search_cb),
2060         (plugin_manager_construct_tree), (rb_plugin_manager_new),
2061         (rb_plugin_manager_finalize):
2062         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
2063         (rb_plugins_engine_load_all), (rb_plugin_info_free),
2064         (rb_plugins_engine_plugin_is_visible),
2065         (rb_plugins_engine_plugin_visible_cb):
2066         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
2067         per-user plugins, and 2) hide plugins from the manager UI. From #349395
2069 2006-08-02  James Livingston  <doclivingston@gmail.com>
2071         * sources/rb-sourcelist-model.c:
2072         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
2073         drop on a source. Fixes #349580.
2075 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2077         * configure.ac:
2078         * daapsharing/rb-daap-dialog.c:
2079         * daapsharing/rb-daap-dialog.h:
2080         * shell/Makefile.am:
2081         * sources/Makefile.am:
2082         * sources/rb-daap-source.c: (connection_auth_cb),
2083         (rb_daap_source_connection_cb), (rb_daap_source_activate):
2084         Add gnome-keyring support for DAAP passwords and use
2085         gnome-password-dialog instead of our own.  
2086         Patch mostly by James Livingston.  Fixes bug #330346.
2088 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2090         * shell/rb-shell-player.c:
2091         (rb_shell_player_set_playing_source_internal),
2092         (rb_shell_player_sync_with_selected_source):
2093         Remove call to rb_source_have_url, as we never did anything with the
2094         result.
2096         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2097         * sources/rb-import-errors-source.c:
2098         (rb_import_errors_source_class_init):
2099         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2100         (impl_song_properties), (impl_want_uri), (impl_add_uri):
2101         * sources/rb-library-source.c: (rb_library_source_class_init),
2102         (impl_want_uri), (impl_add_uri):
2103         * sources/rb-missing-files-source.c:
2104         (rb_missing_files_source_class_init):
2105         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2106         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2107         (impl_want_uri), (impl_add_uri):
2108         * sources/rb-source.c: (rb_source_class_init),
2109         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
2110         * sources/rb-source.h:
2111         * sources/rb-static-playlist-source.c:
2112         (rb_static_playlist_source_class_init), (search_action_changed),
2113         (impl_want_uri):
2114         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
2115         When adding a URI, want_uri gets called for each source; the one that
2116         wants it most gets the URI passed to its add_uri method.
2117         
2118         * shell/rb-shell.h:
2119         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
2120         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
2121         (handle_playlist_entry_cb), (rb_shell_load_uri):
2122         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2123         Use want_uri and add_uri to simplify and make generic
2124         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
2126         If a source that returns TRUE from try_playlist wants all the URIs in
2127         the playlist, give it the playlist URI instead.  This retains the
2128         existing behaviour for adding iradio playlists.
2130         * bindings/python/rb.defs: Update for above changes.
2132         From bug #347097.
2134 2006-07-31  James Livingston  <doclivingston@gmail.com>
2136         * data/Makefile.am:
2137         * data/generate-keys.sh: fix the build I broke with the last commit.
2138         Oops.
2140 2006-07-31  James Livingston  <doclivingston@gmail.com>
2142         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
2143         in a long time. Fixes #349179.
2145 2006-07-30  James Livingston  <doclivingston@gmail.com>
2147         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
2148         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2149         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
2151 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2153         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2154         Don't tell the browser the query is still pending when doing a subset
2155         search.  Fixes #348617 again.
2157 2006-07-30  James Livingston  <doclivingston@gmail.com>
2159         * bindings/python/rb.override: remove an extraneous _wrap_ from the
2160         override definition. Fixes #348893.
2162 2006-07-30  James Livingston  <doclivingston@gmail.com>
2164         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
2165         rb_error_dialog, as it's above this in the stack.
2167         * lib/rb-util.c: (rb_gvalue_compare):
2168         * lib/rb-util.h: change the return type to int, as we're returning
2169         -1/0/1
2171         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
2172         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2173         (rb_query_creator_set_sorting): minor leak fixes
2175 2006-07-28  James Livingston  <doclivingston@gmail.com>
2177         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2178         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
2179         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
2180         (get_or_create_genre), (remove_entry_from_album),
2181         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2182         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
2183         (rhythmdb_tree_entry_lookup_by_location),
2184         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2185         (rhythmdb_hash_tree_foreach),
2186         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
2187         threadsafe. Fix a nasty problem if the _foreach callback function
2188         caused the addition/removal of entries.
2190 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2192         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
2193         Clear selection before changing our idea of the model.  Fixes crashes
2194         on model changes while playing.
2196 2006-07-27  James Livingston  <doclivingston@gmail.com>
2198         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
2199         a missing rb_refstring_unref.
2201         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2202         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
2203         oops. should hopefully fix the crash reported on #347425.
2205 2006-07-27  James Livingston  <doclivingston@gmail.com>
2207         * backends/gstreamer/rb-encoder-gst.c:
2208         (get_profile_from_mime_type): fix encoding error issue, from #310774.
2210         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
2211         thread-safety issue.
2213 2006-07-27  James Livingston  <doclivingston@gmail.com>
2215         * rhythmdb/rb-refstring.c: (rb_refstring_find):
2216         * rhythmdb/rb-refstring.h: add a new function which returns the
2217         RBRefString that matches a string, but never creates a new one.
2219         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2220         (monitor_entry_file), (rhythmdb_check_changed_file),
2221         (rhythmdb_directory_change_cb):
2222         * rhythmdb/rhythmdb-private.h:
2223         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2224         (unparent_entries), (free_unknown_entries),
2225         (rhythmdb_tree_parser_start_element),
2226         (rhythmdb_tree_parser_end_element), (save_entry),
2227         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
2228         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2229         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
2230         (rhythmdb_tree_entry_type_registered):
2231         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
2232         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
2233         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
2234         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2235         (rhythmdb_process_metadata_load),
2236         (rhythmdb_process_file_created_or_modified),
2237         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
2238         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2239         (action_thread_main), (rhythmdb_entry_set_internal),
2240         (rhythmdb_entry_move_to_trash_set_error),
2241         (rhythmdb_entry_move_to_trash),
2242         (rhythmdb_entry_lookup_by_location),
2243         (rhythmdb_entry_lookup_by_location_refstring),
2244         (default_sync_metadata), (rhythmdb_entry_get_string),
2245         (rhythmdb_entry_get_refstring):
2246         * rhythmdb/rhythmdb.h:
2247         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
2248         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2249         (rb_playlist_source_row_deleted),
2250         (rb_playlist_source_entry_added_cb),
2251         (rb_playlist_source_location_in_map),
2252         (rb_playlist_source_add_to_map): Make the LOCATION field of
2253         RhythmDBEntry be a RBRefString instead, which reduces some of the
2254         memory-fragmentation on startup and saves RBStaticPlaylistSource
2255         duplicating all the strings.
2257 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2259         * rhythmdb/rhythmdb-query-model.c:
2260         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
2261         * rhythmdb/rhythmdb-query-model.h:
2262         Add function to copy contents from one query model to another,
2263         filtered by the destination model's query.
2265         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2266         Use the above to create a new query model for subset searches, rather
2267         than filtering the existing model. Fixes #348617.
2269 2006-07-25  James Livingston  <doclivingston@gmail.com>
2271         * rhythmdb/rhythmdb-query-model.c:
2272         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2273         lost from static playlists. Yet again. Fixes #323095.
2275         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2276         case for the above, so that we should know if a change will break it
2277         again.
2279 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2281         * data/rhythmbox.schemas: Fix for last commit.
2283         * podcast/rb-podcast-manager.c:
2284         (rb_podcast_manager_download_entry),
2285         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2286         (rb_podcast_manager_db_entry_deleted_cb):
2287         * rhythmdb/rhythmdb-property-model.c:
2288         (rhythmdb_property_model_set_query_model_internal),
2289         (rhythmdb_property_model_set_property),
2290         (rhythmdb_property_model_finalize),
2291         (rhythmdb_property_model_drag_data_get):
2292         * rhythmdb/rhythmdb-query-model.c:
2293         (rhythmdb_query_model_set_query_internal),
2294         (rhythmdb_query_model_set_property),
2295         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2296         * rhythmdb/rhythmdb-query-model.h:
2297         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2298         (rb_browser_source_do_query):
2299         * sources/rb-import-errors-source.c:
2300         (rb_import_errors_source_constructor):
2301         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2302         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2303         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2304         (impl_search), (impl_get_status),
2305         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2306         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2307         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2308         * sources/rb-missing-files-source.c:
2309         (rb_missing_files_source_constructor),
2310         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2311         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2312         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2313         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2314         (rb_playlist_source_save_playlist),
2315         (rb_playlist_source_new_from_xml),
2316         (rb_playlist_source_save_to_xml),
2317         (rb_playlist_source_setup_entry_view),
2318         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2319         (rb_playlist_source_get_query_model),
2320         (rb_playlist_source_mark_dirty),
2321         (rb_playlist_source_location_in_map),
2322         (rb_playlist_source_add_to_map):
2323         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2324         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2325         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2326         (impl_delete), (rb_podcast_source_state_prefs_sync),
2327         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2328         (impl_get_config_widget), (rb_podcast_source_add_feed),
2329         (rb_podcast_source_cmd_download_post),
2330         (rb_podcast_source_cmd_cancel_download),
2331         (rb_podcast_source_cmd_delete_feed),
2332         (rb_podcast_source_cmd_update_feed),
2333         (rb_podcast_source_cmd_update_all),
2334         (rb_podcast_source_cb_interval_changed_cb),
2335         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2336         (rb_podcast_source_entry_activated_cb):
2337         * sources/rb-source.c: (rb_source_finalize),
2338         (rb_source_set_query_model_internal), (rb_source_set_property),
2339         (default_get_status):
2340         * sources/rb-static-playlist-source.c:
2341         (rb_static_playlist_source_dispose),
2342         (rb_static_playlist_source_finalize),
2343         (rb_static_playlist_source_constructor),
2344         (rb_static_playlist_source_do_query):
2345         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2346         (rb_entry_view_set_shell_player_internal),
2347         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2348         (rb_entry_view_set_model), (rb_entry_view_append_column),
2349         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2350         (rb_entry_view_set_state):
2351         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2352         (rb_library_browser_finalize), (rb_library_browser_new),
2353         (update_browser_property_visibilty), (view_selection_reset_cb),
2354         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2355         (restore_selection), (rebuild_child_model),
2356         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2357         * widgets/rb-property-view.c:
2358         (rb_property_view_set_model_internal),
2359         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2360         (rb_property_view_get_model), (rb_property_view_set_model),
2361         (rb_property_view_get_num_properties),
2362         (rb_property_view_set_selection),
2363         (rb_property_view_append_column_custom),
2364         (rb_property_view_set_search_func):
2365         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2366         From #347446
2368 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2370         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2371         Work around a small n-c-b API change.
2373 2006-07-25  James Livingston  <doclivingston@gmail.com>
2375         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2377         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2378         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2379         aborting entry-emission on finalise
2381 2006-07-25  James Livingston  <doclivingston@gmail.com>
2383         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2384         warning when entry is NULL.
2386 2006-07-25  James Livingston  <doclivingston@gmail.com>
2388         * help/sv/.cvsignore:
2389         * lib/.cvsignore:
2390         * plugins/generic-player/.cvsignore:
2391         * remote/.cvsignore:
2392         * remote/dbus/.cvsignore:
2393         * shell/.cvsignore:
2394         * tests/.cvsignore: more .cvsignore updates
2396 2006-07-24  James Livingston  <doclivingston@gmail.com>
2398         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2399         (transparent_expose_event), (make_transparent_again),
2400         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2401         apply a patch for EggTrayIcon so that it handled transparent panels
2402         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2403         Fixes #348208.
2405 2006-07-24  James Livingston  <doclivingston@gmail.com>
2407         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2408         queries rather than taking ownership when parsing a subquery. Fixed a
2409         crash exposed by the recent leak fixes.
2411         * doc/reference/tmpl/disclosure-widget.sgml:
2412         * doc/reference/tmpl/rb-debug.sgml:
2413         * doc/reference/tmpl/rb-metadata.sgml:
2414         * doc/reference/tmpl/rb-play-order.sgml:
2415         * doc/reference/tmpl/rb-playlist-manager.sgml:
2416         * doc/reference/tmpl/rb-playlist-source.sgml:
2417         * doc/reference/tmpl/rb-shell-player.sgml:
2418         * doc/reference/tmpl/rb-shell.sgml:
2419         * doc/reference/tmpl/rb-song-display-box.sgml:
2420         * doc/reference/tmpl/rhythmbox-unused.sgml:
2421         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2423 2006-07-24  James Livingston  <doclivingston@gmail.com>
2425         * lib/.cvsignore:
2426         * plugins/artdisplay/.cvsignore:
2427         * plugins/artdisplay/artdisplay/.cvsignore:
2428         * plugins/lyrics/.cvsignore:
2429         * plugins/pythonconsole/.cvsignore:
2430         * plugins/rb/.cvsignore: add/update various .cvsignore files
2432 2006-07-24  James Livingston  <doclivingston@gmail.com>
2434         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2435         (rb_refstring_ref): don't emit critical warnings when the refstring
2436         is NULL, as that happens often for podcast metadata.
2438         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2439         missing rhythmdb_entry_ref call
2441 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2443         * bindings/python/rb.override:
2444         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2445         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2446         (playlist_row_inserted_cb):
2447         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2448         * plugins/rb-plugin-manager.c:
2449         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2450         (rb_podcast_manager_copy_post),
2451         (rb_podcast_manager_db_entry_deleted_cb),
2452         (rb_podcast_manager_insert_feed):
2453         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2454         (rb_refstring_ref), (rb_refstring_get_sort_key):
2455         * rhythmdb/rhythmdb-private.h:
2456         * rhythmdb/rhythmdb-property-model.c:
2457         (rhythmdb_property_model_set_property),
2458         (rhythmdb_property_model_get_property),
2459         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2460         (rhythmdb_property_model_row_inserted_cb),
2461         (rhythmdb_property_model_prop_changed_cb),
2462         (rhythmdb_property_model_compare),
2463         (rhythmdb_property_model_insert),
2464         (rhythmdb_property_model_iter_from_string),
2465         (rhythmdb_property_model_get_column_type),
2466         (rhythmdb_property_model_get_iter),
2467         (rhythmdb_property_model_get_value),
2468         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2469         (rhythmdb_property_model_enable_drag):
2470         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2471         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2472         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2473         (rhythmdb_query_model_chain),
2474         (rhythmdb_query_model_entry_added_cb),
2475         (rhythmdb_query_model_entry_changed_cb),
2476         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2477         (rhythmdb_query_model_add_entry),
2478         (rhythmdb_query_model_insert_into_main_list),
2479         (rhythmdb_query_model_insert_into_limited_list),
2480         (rhythmdb_query_model_remove_from_main_list),
2481         (rhythmdb_query_model_remove_from_limited_list),
2482         (rhythmdb_query_model_update_limited_entries),
2483         (rhythmdb_query_model_emit_reorder),
2484         (rhythmdb_query_model_do_reorder),
2485         (rhythmdb_query_model_do_insert),
2486         (rhythmdb_query_model_move_entry),
2487         (rhythmdb_query_model_remove_entry),
2488         (rhythmdb_query_model_entry_to_iter),
2489         (rhythmdb_query_model_iter_to_entry),
2490         (rhythmdb_query_model_get_previous_from_entry),
2491         (rhythmdb_query_model_row_draggable),
2492         (rhythmdb_query_model_drag_data_delete),
2493         (rhythmdb_query_model_drag_data_get),
2494         (rhythmdb_query_model_drag_data_received),
2495         (rhythmdb_query_model_row_drop_possible),
2496         (rhythmdb_query_model_row_drop_position),
2497         (rhythmdb_query_model_add_results),
2498         (rhythmdb_query_model_query_complete),
2499         (rhythmdb_query_model_get_column_type),
2500         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2501         (rhythmdb_query_model_iter_nth_child),
2502         (apply_updated_entry_sequence),
2503         (rhythmdb_query_model_child_index_to_base_index),
2504         (rhythmdb_query_model_get_entry_index),
2505         (rhythmdb_query_model_base_row_inserted),
2506         (rhythmdb_query_model_base_row_deleted),
2507         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2508         (rhythmdb_query_model_location_sort_func),
2509         (rhythmdb_query_model_title_sort_func),
2510         (rhythmdb_query_model_album_sort_func),
2511         (rhythmdb_query_model_artist_sort_func),
2512         (rhythmdb_query_model_track_sort_func),
2513         (rhythmdb_query_model_double_ceiling_sort_func),
2514         (rhythmdb_query_model_ulong_sort_func),
2515         (rhythmdb_query_model_date_sort_func),
2516         (rhythmdb_query_model_string_sort_func),
2517         (rhythmdb_query_model_within_limit):
2518         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2519         (rhythmdb_tree_parser_start_element),
2520         (rhythmdb_tree_parser_end_element),
2521         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2522         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2523         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2524         (save_entry_uint64), (save_entry_double), (save_entry),
2525         (set_entry_album), (rhythmdb_tree_entry_new),
2526         (get_genres_hash_for_type), (get_or_create_genre),
2527         (get_or_create_artist), (get_or_create_album), (remove_child),
2528         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2529         (rhythmdb_tree_entry_delete), (remove_one_song),
2530         (rhythmdb_tree_entry_delete_by_type),
2531         (rhythmdb_tree_evaluate_query), (search_match_properties),
2532         (evaluate_conjunctive_subquery), (do_conjunction),
2533         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2534         (conjunctive_query_albums), (conjunctive_query_artists),
2535         (conjunctive_query_genre), (conjunctive_query),
2536         (split_query_by_disjunctions), (do_query_recurse),
2537         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2538         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2539         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2540         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2541         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2542         (extract_gtype_from_enum_entry),
2543         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2544         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2545         (rhythmdb_event_free), (rhythmdb_finalize),
2546         (rhythmdb_set_property), (rhythmdb_get_property),
2547         (rhythmdb_thread_create), (free_entry_changes),
2548         (emit_entry_changed), (sync_entry_changed),
2549         (process_added_entries_cb), (process_deleted_entries_cb),
2550         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2551         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2552         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2553         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2554         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2555         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2556         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2557         (rhythmdb_process_metadata_load),
2558         (rhythmdb_process_file_created_or_modified),
2559         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2560         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2561         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2562         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2563         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2564         (record_entry_change), (rhythmdb_entry_set_internal),
2565         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2566         (rhythmdb_entry_move_to_trash_cb),
2567         (rhythmdb_entry_move_to_trash_set_error),
2568         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2569         (rhythmdb_nice_elt_name_from_propid),
2570         (rhythmdb_propid_from_nice_elt_name),
2571         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2572         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2573         (rhythmdb_compute_status_normal), (default_sync_metadata),
2574         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2575         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2576         (podcast_get_playback_uri), (podcast_data_destroy),
2577         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2578         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2579         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2580         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2581         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2582         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2583         * rhythmdb/rhythmdb.h:
2584         * shell/rb-play-order-linear-loop.c:
2585         (rb_linear_play_order_loop_get_next),
2586         (rb_linear_play_order_loop_get_previous):
2587         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2588         (rb_linear_play_order_get_previous):
2589         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2590         * shell/rb-play-order-random.c: (get_query_model_contents):
2591         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2592         (get_query_model_contents):
2593         * shell/rb-play-order.c: (rb_play_order_constructor),
2594         (rb_play_order_finalize),
2595         (rb_play_order_set_playing_entry_internal),
2596         (rb_play_order_set_property), (rb_play_order_new),
2597         (rb_play_order_get_player), (rb_play_order_get_source),
2598         (rb_play_order_get_db), (rb_play_order_get_query_model),
2599         (rb_play_order_player_is_playing),
2600         (rb_play_order_set_playing_entry),
2601         (rb_play_order_get_playing_entry),
2602         (rb_play_order_playing_source_changed),
2603         (rb_play_order_query_model_changed),
2604         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2605         (default_has_next), (default_has_previous),
2606         (sync_playing_entry_cb), (default_playing_entry_removed),
2607         (rb_play_order_has_next), (rb_play_order_get_next),
2608         (rb_play_order_go_next), (rb_play_order_has_previous),
2609         (rb_play_order_get_previous), (rb_play_order_go_previous),
2610         (rb_play_order_model_not_empty),
2611         (rb_play_order_update_have_next_previous):
2612         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2613         (rb_playlist_manager_save_playlists),
2614         (rb_playlist_manager_set_automatic_playlist),
2615         (rb_playlist_manager_cmd_edit_automatic_playlist),
2616         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2617         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2618         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2619         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2620         (volume_pre_unmount_cb), (reemit_playing_signal),
2621         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2622         (rb_shell_player_handle_eos_unlocked),
2623         (rb_shell_player_handle_eos), (rb_shell_player_init),
2624         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2625         (playlist_entry_cb), (rb_shell_player_open_entry),
2626         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2627         (rb_shell_player_set_play_order),
2628         (rb_shell_player_set_playback_state),
2629         (rb_shell_player_sync_play_order),
2630         (rb_shell_player_play_order_update_cb),
2631         (rb_shell_player_jump_to_current), (swap_playing_source),
2632         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2633         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2634         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2635         (rb_shell_player_entry_activated_cb),
2636         (rb_shell_player_property_row_activated_cb),
2637         (rb_shell_player_entry_changed_cb),
2638         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2639         (rb_shell_player_pause),
2640         (rb_shell_player_get_playing_song_duration),
2641         (rb_shell_player_error), (error_cb), (tick_cb),
2642         (info_available_cb), (buffering_cb),
2643         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2644         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2645         (rb_shell_jump_to_current):
2646         * sources/rb-auto-playlist-source.c:
2647         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2648         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2649         (rb_auto_playlist_source_get_query):
2650         * sources/rb-auto-playlist-source.h:
2651         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2652         * sources/rb-import-errors-source.c:
2653         (rb_import_errors_source_constructor):
2654         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2655         * sources/rb-library-source.c: (filepath_parse_pattern):
2656         * sources/rb-missing-files-source.c:
2657         (rb_missing_files_source_constructor):
2658         * sources/rb-play-queue-source.c:
2659         (rb_play_queue_source_clear_queue),
2660         (rb_play_queue_source_track_info_cell_data_func):
2661         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2662         (rb_playlist_source_get_property), (playlist_iter_func),
2663         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2664         (rb_playlist_source_track_cell_data_func):
2665         * sources/rb-podcast-source.c: (construct_query_from_selection),
2666         (rb_podcast_source_post_status_cell_data_func),
2667         (rb_podcast_source_post_feed_cell_data_func),
2668         (rb_podcast_source_feed_title_search_func),
2669         (rb_podcast_source_post_date_cell_data_func):
2670         * sources/rb-source.c: (default_get_status),
2671         (rb_source_get_status), (rb_source_browser_toggled),
2672         (rb_source_update_play_statistics), (rb_source_search),
2673         (rb_source_get_config_widget), (default_add_to_queue),
2674         (rb_source_add_to_queue), (rb_source_receive_drag),
2675         (rb_source_gather_hash_keys):
2676         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2677         (rb_sourcelist_model_is_row_visible),
2678         (rb_sourcelist_model_row_is_separator),
2679         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2680         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2681         (rb_sourcelist_model_drag_data_get):
2682         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2683         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2684         (rb_sourcelist_visible_source_to_iter),
2685         (rb_sourcelist_edit_source_name), (set_source_playing),
2686         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2687         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2688         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2689         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2690         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2691         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2692         (rb_static_playlist_source_add_location_internal),
2693         (rb_static_playlist_source_row_inserted):
2694         * widgets/rb-entry-view.c: (type_ahead_search_func),
2695         (rb_entry_view_finalize), (rb_entry_view_set_model),
2696         (rb_entry_view_playing_cell_data_func),
2697         (rb_entry_view_rating_cell_data_func),
2698         (rb_entry_view_long_cell_data_func),
2699         (rb_entry_view_play_count_cell_data_func),
2700         (rb_entry_view_duration_cell_data_func),
2701         (rb_entry_view_year_cell_data_func),
2702         (rb_entry_view_quality_cell_data_func),
2703         (rb_entry_view_location_cell_data_func),
2704         (rb_entry_view_string_cell_data_func),
2705         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2706         (rb_entry_view_get_sorting_order),
2707         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2708         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2709         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2710         (rb_entry_view_playing_song_changed), (harvest_entries),
2711         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2712         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2713         (set_column_visibility):
2714         * widgets/rb-entry-view.h:
2715         * widgets/rb-header.c: (rb_header_new),
2716         (rb_header_set_playing_entry), (rb_header_set_title):
2717         * widgets/rb-library-browser.c: (rebuild_child_model),
2718         (rb_library_browser_set_model):
2719         * widgets/rb-property-view.c:
2720         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2721         (rb_property_view_set_property), (rb_property_view_get_property),
2722         (rb_property_view_reset), (rb_property_view_get_model),
2723         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2724         (rb_property_view_button_press_cb):
2725         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2726         (rb_query_creator_get_property), (rb_query_creator_load_query),
2727         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2728         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2729         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2730         (lookup_row_by_widget), (remove_button_click_cb),
2731         (add_button_click_cb), (create_property_option_menu):
2732         * widgets/rb-song-info.c: (rb_song_info_constructor),
2733         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2734         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2735         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2736         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2738 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2740         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2741         (rb_shell_player_get_property):
2742         Add a property providing access to the player backend object.
2744 2006-07-23  James Livingston  <doclivingston@gmail.com>
2746         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2747         (get_history), (rb_random_filter_history),
2748         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2749         remove the tentative history, since it appears to be a remanent from
2750         older play order code. The only thing it was doing was using up
2751         CPU-time and memory. From #345857
2753 2006-07-23  James Livingston  <doclivingston@gmail.com>
2755         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2757         * shell/main.c: (main):
2758         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2759         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2760         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2761         (rb_playlist_manager_load_playlists),
2762         (rb_playlist_manager_save_data):
2763         * shell/rb-playlist-manager.h:
2764         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2765         (rb_shell_get_property), (rb_shell_sync_state),
2766         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2767         (construct_sources), (idle_handle_load_complete):
2768         * shell/rb-shell.h: Add a command-line option for changing the
2769         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2771 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2773         * daapsharing/rb-daap-share.c: (databases_cb):
2774         Make sure we set status codes on HTTP responses.
2776 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2778         * configure.ac:
2779         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2780         (chunked_message_finished), (send_chunked_file),
2781         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2782         Use GMappedFile to send local files to DAAP clients where possible.  
2783         iTunes can't seek properly in files sent using chunked transfer 
2784         encoding.  Also remove the useless bitrate calculation code, as we
2785         never even used the result anyway.  From #330410.
2787 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2789         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2791         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2792         Enable multiple selection for 'import file'.  Fixes #347478.
2794 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2796         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2797         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2798         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2799         Fixes #348098.
2801 2006-07-20  James Livingston  <doclivingston@gmail.com>
2803         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2804         aren't NULL before calling strstr. Fixes #347998.
2806 2006-07-19  James Livingston  <doclivingston@gmail.com>
2808         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2810         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2811         MB that only have years. Fixes #347906.
2813 2006-07-19  James Livingston  <doclivingston@gmail.com>
2815         * rhythmdb/rhythmdb-private.h:
2816         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2817         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2818         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2819         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2820         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2821         (rhythmdb_execute_stat), (queue_stat_uri),
2822         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2823         (rhythmdb_load), (rhythmdb_entry_register_type),
2824         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2825         asynchronous vfs operations, and cancel them when shutting down the
2826         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2828         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2829         (test_rhythmdb_shutdown): wait until the db has been finalised before
2830         continuing on to the next test.
2832 2006-07-19  James Livingston  <doclivingston@gmail.com>
2834         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2835         right thing in the #ifdef. From #347832.
2837 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2839         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2840         Fix compile warning.
2842 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2844         * rhythmdb/rhythmdb-query-model.c:
2845         (rhythmdb_query_model_set_property),
2846         (rhythmdb_query_model_reapply_query_cb):
2847         Ignore old query == new query case.
2848         Fixes auto playlists with time-relative queries.
2850         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2851         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2852         (rhythmdb_query_to_string):
2853         * rhythmdb/rhythmdb.h:
2854         Add debug helper for printing queries in case someone needs it again.
2856 2006-07-18  James Livingston  <doclivingston@gmail.com>
2858         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2859         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2860         Fixes #347832
2862         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2863         write then into files.
2865 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2867         * daapsharing/rb-daap-connection.c:
2868         (rb_daap_connection_set_property):
2869         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2870         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2871         (add_playlist_to_mlcl), (databases_cb):
2872         * daapsharing/rb-daap-sharing.c: (create_share):
2873         * iradio/rb-new-station-dialog.c:
2874         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2875         * iradio/rb-station-properties-dialog.c:
2876         (rb_station_properties_dialog_finalize),
2877         (rb_station_properties_dialog_set_property),
2878         (rb_station_properties_dialog_get_current_entry):
2879         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2880         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2881         * plugins/generic-player/rb-generic-player-source.c:
2882         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2883         (handle_playlist_entry_cb):
2884         * plugins/generic-player/rb-nokia770-source.c:
2885         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2886         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2887         (visit_playlist_dirs), (hal_udi_is_psp):
2888         * podcast/rb-podcast-manager.c:
2889         * podcast/rb-podcast-properties-dialog.c:
2890         (rb_podcast_properties_dialog_finalize),
2891         (rb_podcast_properties_dialog_set_entry_view),
2892         (rb_podcast_properties_dialog_set_property):
2893         * rhythmdb/rhythmdb-property-model.c:
2894         * rhythmdb/rhythmdb-query-model.c:
2895         (rhythmdb_query_model_set_property),
2896         (rhythmdb_query_model_reapply_query_cb):
2897         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2898         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2899         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2900         (rhythmdb_event_free), (rhythmdb_shutdown),
2901         (rhythmdb_thread_create), (action_thread_main),
2902         (rhythmdb_do_full_query_async_parsed),
2903         (rhythmdb_do_full_query_internal):
2904         * shell/main.c: (main):
2905         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2906         * shell/rb-play-order.c: (rb_play_order_finalize),
2907         (rb_play_order_set_player),
2908         (rb_play_order_set_playing_entry_internal),
2909         (rb_play_order_set_property),
2910         (rb_play_order_playing_source_changed),
2911         (rb_play_order_query_model_changed):
2912         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2913         (rb_playlist_manager_set_source),
2914         (rb_playlist_manager_set_shell_internal),
2915         (rb_playlist_manager_set_property):
2916         * shell/rb-removable-media-manager.c:
2917         (rb_removable_media_manager_set_property),
2918         (rb_removable_media_manager_set_uimanager),
2919         (rb_removable_media_manager_cmd_eject_medium),
2920         (rb_removable_media_manager_cmd_copy_tracks):
2921         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2922         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2923         (rb_shell_clipboard_set),
2924         (rb_shell_clipboard_cmd_add_to_playlist_new),
2925         (rb_shell_clipboard_playlist_add_cb),
2926         (rb_shell_clipboard_playlist_renamed_cb),
2927         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2928         (rebuild_playlist_menu):
2929         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2930         (rb_shell_player_set_queue_source_internal),
2931         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2932         (rb_shell_player_entry_activated_cb),
2933         (rb_shell_player_property_row_activated_cb),
2934         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2935         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2936         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2937         (rb_shell_finalize), (construct_widgets),
2938         (rb_shell_playing_from_queue_cb),
2939         (rb_shell_player_stream_song_changed_cb),
2940         (rb_shell_player_volume_changed_cb):
2941         * shell/rb-statusbar.c: (rb_statusbar_new):
2942         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2943         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2944         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2945         * sources/rb-auto-playlist-source.c:
2946         (rb_auto_playlist_source_class_init),
2947         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2948         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2949         (rb_auto_playlist_source_do_query),
2950         (rb_auto_playlist_source_set_query),
2951         (rb_auto_playlist_source_browser_changed_cb),
2952         (search_action_changed):
2953         * sources/rb-auto-playlist-source.h:
2954         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2955         (search_action_changed), (rb_browser_source_constructor),
2956         (rb_browser_source_cmd_choose_artist), (impl_delete),
2957         (rb_browser_source_browser_changed_cb),
2958         (rb_browser_source_do_query):
2959         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2960         (rb_daap_source_finalize), (rb_daap_source_class_init),
2961         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2962         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2963         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2964         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2965         (rb_daap_source_get_headers):
2966         * sources/rb-import-errors-source.c:
2967         (rb_import_errors_source_constructor),
2968         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2969         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2970         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2971         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2972         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2973         (impl_paste), (impl_receive_drag):
2974         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2975         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2976         (impl_song_properties):
2977         * sources/rb-library-source.c: (rb_library_source_constructor),
2978         (rb_library_source_new), (impl_paste),
2979         (rb_library_source_add_child_source):
2980         * sources/rb-missing-files-source.c: (impl_delete),
2981         (impl_get_status):
2982         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2983         (rb_play_queue_source_class_init),
2984         (rb_play_queue_source_constructor):
2985         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2986         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2987         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2988         (rb_playlist_source_new_from_xml),
2989         (rb_playlist_source_save_to_xml):
2990         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2991         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2992         (search_action_changed), (rb_podcast_source_constructor),
2993         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2994         (construct_query_from_selection),
2995         (rb_podcast_source_cmd_download_post),
2996         (rb_podcast_source_cmd_cancel_download),
2997         (rb_podcast_source_cmd_delete_feed),
2998         (rb_podcast_source_start_download_cb),
2999         (rb_podcast_source_finish_download_cb),
3000         (rb_podcast_source_feed_updates_avaliable_cb),
3001         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
3002         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3003         (impl_get_status):
3004         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3005         * sources/rb-source.c: (rb_source_get_property),
3006         (default_add_to_queue), (default_move_to_trash),
3007         (_rb_source_show_popup), (rb_source_gather_selected_properties),
3008         (_rb_source_register_action_group):
3009         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
3010         (rb_sourcelist_model_is_row_visible),
3011         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3012         (rb_sourcelist_model_row_draggable),
3013         (rb_sourcelist_model_drag_data_get):
3014         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
3015         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
3016         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
3017         (visibility_notify_cb):
3018         * sources/rb-static-playlist-source.c:
3019         (rb_static_playlist_source_class_init),
3020         (rb_static_playlist_source_init),
3021         (rb_static_playlist_source_finalize),
3022         (rb_static_playlist_source_constructor), (impl_delete),
3023         (rb_static_playlist_source_browser_changed_cb),
3024         (rb_static_playlist_source_add_location_internal),
3025         (search_action_changed):
3026         * sources/rb-static-playlist-source.h:
3027         * widgets/rb-druid.c:
3028         * widgets/rb-entry-view.c:
3029         (rb_entry_view_set_shell_player_internal),
3030         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
3031         (rb_entry_view_get_property), (rb_entry_view_new),
3032         (rb_entry_view_button_press_cb):
3033         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
3034         (rb_library_browser_set_property),
3035         (rb_library_browser_get_property):
3036         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
3037         (get_entry_for_property), (get_property_index_from_proptype):
3038         * widgets/rb-song-info.c: (rb_song_info_constructor),
3039         (rb_song_info_finalize), (rb_song_info_set_source_internal),
3040         (rb_song_info_set_property), (rb_song_info_get_property):
3042         More leak and reference counting fixes.  From bug #347446.
3044 2006-07-17  James Livingston  <doclivingston@gmail.com>
3046         * sources/rb-auto-playlist-source.c:
3047         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
3048         rather than setting the base model, as that lets us not import all the
3049         entries from the base model. This fixes some issues whether the search
3050         box wasn't filting automatic playlists.
3052 2006-07-17  James Livingston  <doclivingston@gmail.com>
3054         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
3055         error, which caused blacklist creation to fail.
3057 2006-07-17  James Livingston  <doclivingston@gmail.com>
3059         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
3060         running with -n, because we don't start it then. Fixes a crash on
3061         exit.
3063 2006-07-17  James Livingston  <doclivingston@gmail.com>
3065         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3067         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
3068         Save not Open for the button. Fixes #345816
3070 2006-07-17  James Livingston  <doclivingston@gmail.com>
3072         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3074         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
3075         when track transfer is disabled. Fixes #347705
3077 2006-07-17  James Livingston  <doclivingston@gmail.com>
3079         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3081         * sources/rb-library-source.c: (impl_get_config_widget): fix build
3082         with track transfer disabled. Fixes #347705
3084 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3086         * rhythmdb/rhythmdb-query-model.c:
3087         (rhythmdb_query_model_set_property):
3088         * shell/main.c: (main):
3089         * shell/rb-shell-clipboard.c: (unset_source_internal),
3090         (rb_shell_clipboard_finalize),
3091         (rb_shell_clipboard_set_source_internal),
3092         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
3093         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
3094         (rb_shell_player_set_db_internal),
3095         (rb_shell_player_set_queue_source_internal),
3096         (rb_shell_player_finalize), (rb_shell_player_set_property):
3097         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
3098         * sources/rb-auto-playlist-source.c:
3099         (rb_auto_playlist_source_constructor),
3100         (rb_auto_playlist_source_new_from_xml):
3101         * sources/rb-daap-source.c: (create_pixbufs):
3102         * sources/rb-ipod-source.c:
3103         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
3104         * sources/rb-library-source.c:
3105         (rb_library_source_add_child_source):
3106         * sources/rb-play-queue-source.c:
3107         (rb_play_queue_sync_playing_state),
3108         (rb_play_queue_source_track_info_cell_data_func):
3109         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3110         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
3111         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
3112         (impl_can_add_to_queue), (impl_add_to_queue):
3113         * sources/rb-source.c: (rb_source_set_property):
3114         * sources/rb-sourcelist.c: (rb_sourcelist_append):
3115         * sources/rb-static-playlist-source.c:
3116         (rb_static_playlist_source_constructor),
3117         (rb_static_playlist_source_load_from_xml):
3118         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3119         * widgets/rb-entry-view.c: (rb_entry_view_init),
3120         (rb_entry_view_finalize), (rb_entry_view_append_column),
3121         (rb_entry_view_constructor):
3122         * widgets/rb-song-info.c: (rb_song_info_set_property):
3123         Fix leaks.  From bug #347446.
3125 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3127         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
3128         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
3129         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
3130         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
3131         (add_decoding_pipeline), (profile_bin_find_encoder),
3132         (get_profile_from_mime_type), (extract_track), (transcode_track),
3133         (rb_encoder_gst_encode):
3134         * backends/gstreamer/rb-encoder-gst.h:
3135         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
3136         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3137         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
3138         (rb_player_gst_construct):
3139         * backends/gstreamer/rb-player-gst.h:
3140         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
3141         * backends/rb-encoder.h:
3142         * backends/rb-player.c: (_rb_player_emit_tick):
3143         * backends/rb-player.h:
3144         * daapsharing/rb-daap-connection.c: (build_message),
3145         (actual_http_response_handler), (http_response_handler),
3146         (http_get), (entry_set_string_prop), (emit_progress_idle),
3147         (handle_server_info), (handle_database_info),
3148         (handle_song_listing), (handle_playlists),
3149         (handle_playlist_entries), (rb_daap_connection_new),
3150         (connected_cb), (rb_daap_connection_do_something),
3151         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
3152         (rb_daap_connection_get_property):
3153         * daapsharing/rb-daap-connection.h:
3154         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
3155         (rb_daap_collision_dialog_new_run):
3156         * daapsharing/rb-daap-dialog.h:
3157         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
3158         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
3159         (DigestToString), (rb_daap_hash_generate):
3160         * daapsharing/rb-daap-hash.h:
3161         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3162         (resolve_cb), (browse_cb):
3163         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
3164         (resolve_cb), (rb_daap_mdns_browser_resolve),
3165         (rb_daap_mdns_browser_start), (resolver_free):
3166         * daapsharing/rb-daap-mdns-browser.h:
3167         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
3168         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
3169         (publish_cb):
3170         * daapsharing/rb-daap-mdns-publisher.h:
3171         * daapsharing/rb-daap-share.c: (name_collision_cb),
3172         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
3173         (message_set_from_rb_daap_structure), (content_codes_cb),
3174         (session_id_validate), (logout_cb), (update_cb),
3175         (add_entry_to_mlcl), (add_playlist_to_mlcl),
3176         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
3177         (rb_daap_share_server_start), (rb_daap_share_server_stop),
3178         (rb_daap_share_publish_start):
3179         * daapsharing/rb-daap-share.h:
3180         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
3181         (share_password_changed_cb), (rb_daap_sharing_shutdown):
3182         * daapsharing/rb-daap-sharing.h:
3183         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
3184         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
3185         (rb_daap_src_open):
3186         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
3187         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
3188         (rb_daap_structure_parse_container_buffer),
3189         (rb_daap_structure_parse), (gnode_find_node),
3190         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
3191         (print_rb_daap_item):
3192         * daapsharing/rb-daap-structure.h:
3193         * iradio/rb-new-station-dialog.c:
3194         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
3195         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
3196         (rb_new_station_dialog_text_changed):
3197         * iradio/rb-station-properties-dialog.c:
3198         (rb_station_properties_dialog_init),
3199         (rb_station_properties_dialog_new),
3200         (rb_station_properties_dialog_response_cb),
3201         (rb_station_properties_dialog_get_current_entry),
3202         (rb_station_properties_dialog_rated_cb),
3203         (rb_station_properties_dialog_update_rating),
3204         (rb_station_properties_dialog_update_playback_error),
3205         (rb_station_properties_dialog_sync_entries):
3206         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
3207         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
3208         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
3209         (rb_metadata_can_save), (rb_metadata_save):
3210         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
3211         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
3212         (_handle_message), (_new_connection), (main):
3213         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
3214         (rb_metadata_dbus_read_from_message):
3215         * metadata/rb-metadata-dbus.h:
3216         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
3217         (rb_add_id3_tagger), (rb_metadata_init),
3218         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
3219         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
3220         (rb_metadata_gst_new_decoded_pad_cb),
3221         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3222         * metadata/sj-error.c: (sj_error_quark):
3223         * metadata/sj-error.h:
3224         * metadata/sj-metadata-musicbrainz.c:
3225         (sj_metadata_musicbrainz_instance_init),
3226         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
3227         (get_rdf), (lookup_cd):
3228         * metadata/sj-metadata.c: (sj_metadata_get_type):
3229         * metadata/sj-structures.c:
3230         * metadata/sj-structures.h:
3231         * metadata/test-metadata.c: (load_metadata_cb), (main):
3232         * podcast/rb-feed-podcast-properties-dialog.c:
3233         (rb_feed_podcast_properties_dialog_init),
3234         (rb_feed_podcast_properties_dialog_update_title):
3235         * podcast/rb-feed-podcast-properties-dialog.h:
3236         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3237         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
3238         (rb_new_podcast_dialog_text_changed):
3239         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3240         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3241         (rb_podcast_manager_set_property),
3242         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
3243         (rb_podcast_manager_download_entry),
3244         (rb_podcast_manager_update_feeds),
3245         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
3246         (rb_podcast_manager_copy_post),
3247         (rb_podcast_manager_thread_parse_feed),
3248         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
3249         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
3250         (download_info_free), (download_info_new), (start_job),
3251         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
3252         (download_progress_cb), (download_progress_update_cb),
3253         (rb_podcast_manager_remove_feed),
3254         (rb_podcast_manager_db_entry_deleted_cb),
3255         (rb_podcast_manager_cancel_download),
3256         (rb_podcast_manager_update_synctime),
3257         (rb_podcast_manager_set_remove_files),
3258         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3259         (rb_podcast_manager_abort_subscribe),
3260         (rb_podcast_manager_get_podcast_dir):
3261         * podcast/rb-podcast-manager.h:
3262         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
3263         (rb_validate_channel_propert), (rb_validate_item_propert),
3264         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3265         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3266         (rb_podcast_parse_date), (rb_podcast_parse_time),
3267         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3268         * podcast/rb-podcast-parse.h:
3269         * podcast/rb-podcast-properties-dialog.c:
3270         (rb_podcast_properties_dialog_init),
3271         (rb_podcast_properties_dialog_get_current_entry),
3272         (rb_podcast_properties_dialog_update_title),
3273         (rb_podcast_properties_dialog_update_duration),
3274         (rb_podcast_properties_dialog_update_date):
3275         * podcast/rb-podcast-properties-dialog.h:
3276         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3277         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3278         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3279         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3280         (g_sequence_search), (g_sequence_set_aggregate_data),
3281         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3282         (find_min), (g_sequence_node_find_by_pos),
3283         (g_sequence_node_find_closest), (g_sequence_node_free),
3284         (g_sequence_node_split), (g_sequence_node_insert_before),
3285         (g_sequence_node_get_length), (g_sequence_node_remove),
3286         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3287         (g_sequence_calc_tree_height):
3288         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3289         (rb_refstring_get):
3290         * rhythmdb/rb-refstring.h:
3291         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3292         (rhythmdb_gda_init), (dump_model), (execute_query),
3293         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3294         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3295         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3296         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3297         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3298         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3299         * rhythmdb/rhythmdb-gda.h:
3300         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3301         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3302         (monitor_library_directory), (rhythmdb_check_changed_file),
3303         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3304         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3305         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3306         * rhythmdb/rhythmdb-private.h:
3307         * rhythmdb/rhythmdb-property-model.c:
3308         (rhythmdb_property_model_set_property),
3309         (rhythmdb_property_model_row_inserted_cb),
3310         (rhythmdb_property_model_prop_changed_cb),
3311         (rhythmdb_property_model_compare),
3312         (rhythmdb_property_model_get_value),
3313         (rhythmdb_property_model_iter_nth_child),
3314         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3315         (rhythmdb_property_model_drag_data_get),
3316         (rhythmdb_property_model_enable_drag),
3317         (rhythmdb_property_model_column_get_type):
3318         * rhythmdb/rhythmdb-property-model.h:
3319         * rhythmdb/rhythmdb-query-model.c:
3320         (rhythmdb_query_model_class_init),
3321         (rhythmdb_query_model_set_property),
3322         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3323         (rhythmdb_query_model_has_pending_changes),
3324         (rhythmdb_query_model_entry_changed_cb),
3325         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3326         (rhythmdb_query_model_add_entry),
3327         (rhythmdb_query_model_remove_from_main_list),
3328         (rhythmdb_query_model_remove_entry),
3329         (rhythmdb_query_model_drag_data_received),
3330         (rhythmdb_query_model_row_drop_possible),
3331         (rhythmdb_query_model_compute_status_normal),
3332         (rhythmdb_query_model_set_sort_order),
3333         (rhythmdb_query_model_get_entry_index),
3334         (rhythmdb_query_model_base_row_inserted),
3335         (rhythmdb_query_model_base_row_deleted),
3336         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3337         (rhythmdb_query_model_date_sort_func),
3338         (rhythmdb_query_model_within_limit):
3339         * rhythmdb/rhythmdb-query-model.h:
3340         * rhythmdb/rhythmdb-query-results.c:
3341         (rhythmdb_query_results_query_complete):
3342         * rhythmdb/rhythmdb-query-results.h:
3343         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3344         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3345         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3346         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3347         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3348         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3349         (rhythmdb_tree_parser_start_element),
3350         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3351         (save_entry), (save_entry_type), (save_unknown_entry_type),
3352         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3353         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3354         (get_or_create_genre), (remove_entry_from_album),
3355         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3356         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3357         (search_match_properties), (evaluate_conjunctive_subquery),
3358         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3359         (conjunctive_query_artists), (conjunctive_query_genre),
3360         (conjunctive_query), (split_query_by_disjunctions),
3361         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3362         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3363         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3364         (rhythmdb_hash_tree_foreach),
3365         (rhythmdb_tree_entry_type_registered):
3366         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3367         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3368         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3369         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3370         (rhythmdb_shutdown), (rhythmdb_finalize),
3371         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3372         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3373         (rhythmdb_entry_example_new),
3374         (set_metadata_string_default_unknown), (is_ghost_entry),
3375         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3376         (rhythmdb_process_metadata_load),
3377         (rhythmdb_process_queued_entry_set_event),
3378         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3379         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3380         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3381         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3382         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3383         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3384         (rhythmdb_entry_delete_by_type),
3385         (rhythmdb_propid_from_nice_elt_name),
3386         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3387         (rhythmdb_compute_status_normal),
3388         (rhythmdb_entry_register_type_alias),
3389         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3390         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3391         (rhythmdb_entry_import_error_get_type),
3392         (rhythmdb_entry_podcast_post_get_type),
3393         (rhythmdb_entry_podcast_feed_get_type),
3394         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3395         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3396         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3397         * rhythmdb/rhythmdb.h:
3398         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3399         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3400         (rb_history_limit_size):
3401         * shell/rb-history.h:
3402         * shell/rb-play-order-linear-loop.c:
3403         (rb_linear_play_order_loop_get_next):
3404         * shell/rb-play-order-linear-loop.h:
3405         * shell/rb-play-order-linear.c:
3406         * shell/rb-play-order-linear.h:
3407         * shell/rb-play-order-queue.c:
3408         (rb_queue_play_order_playing_entry_removed):
3409         * shell/rb-play-order-queue.h:
3410         * shell/rb-play-order-random-by-age-and-rating.c:
3411         * shell/rb-play-order-random-by-age-and-rating.h:
3412         * shell/rb-play-order-random-by-age.c:
3413         (rb_random_by_age_get_entry_weight):
3414         * shell/rb-play-order-random-by-age.h:
3415         * shell/rb-play-order-random-by-rating.c:
3416         * shell/rb-play-order-random-by-rating.h:
3417         * shell/rb-play-order-random-equal-weights.c:
3418         * shell/rb-play-order-random-equal-weights.h:
3419         * shell/rb-play-order-random.c: (rb_random_filter_history),
3420         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3421         (rb_random_db_changed), (rb_random_playing_entry_changed),
3422         (rb_random_db_entry_deleted):
3423         * shell/rb-play-order-shuffle.c: (remove_from_history),
3424         (add_randomly_to_history), (get_query_model_contents),
3425         (rb_shuffle_playing_entry_changed):
3426         * shell/rb-play-order-shuffle.h:
3427         * shell/rb-play-order.c: (rb_play_order_class_init),
3428         (rb_play_order_set_property),
3429         (rb_play_order_playing_source_changed),
3430         (rb_play_order_query_model_changed_cb),
3431         (rb_play_order_query_model_changed),
3432         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3433         * shell/rb-play-order.h:
3434         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3435         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3436         (rb_playlist_manager_set_property),
3437         (rb_playlist_manager_parse_file),
3438         (rb_playlist_manager_load_playlists),
3439         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3440         (rb_playlist_manager_save_playlists),
3441         (rb_playlist_manager_new_playlist),
3442         (rb_playlist_manager_new_playlist_from_selection_data),
3443         (rb_playlist_manager_cmd_new_automatic_playlist),
3444         (rb_playlist_manager_cmd_edit_automatic_playlist),
3445         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3446         (save_playlist_response_cb), (export_set_extension_cb),
3447         (filter_get_export_filter_label), (setup_format_menu),
3448         (rb_playlist_manager_cmd_save_playlist),
3449         (rb_playlist_manager_get_playlists),
3450         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3451         (rb_playlist_manager_delete_playlist),
3452         (rb_playlist_manager_export_playlist):
3453         * shell/rb-playlist-manager.h:
3454         * shell/rb-removable-media-manager.c:
3455         (rb_removable_media_manager_class_init),
3456         (rb_removable_media_manager_dispose),
3457         (rb_removable_media_manager_finalize),
3458         (rb_removable_media_manager_set_property),
3459         (split_drive_from_cdda_uri),
3460         (rb_removable_media_manager_playing_uri_changed_cb),
3461         (rb_removable_media_manager_load_media),
3462         (rb_removable_media_manager_volume_mounted_cb),
3463         (remove_volume_by_source),
3464         (rb_removable_media_manager_source_deleted_cb),
3465         (rb_removable_media_manager_volume_unmounted_cb),
3466         (rb_removable_media_manager_mount_volume),
3467         (rb_removable_media_manager_set_uimanager),
3468         (rb_removable_media_manager_scan), (do_transfer),
3469         (rb_removable_media_manager_cmd_copy_tracks):
3470         * shell/rb-removable-media-manager.h:
3471         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3472         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3473         (rb_shell_clipboard_sync),
3474         (rb_shell_clipboard_idle_poll_deletions),
3475         (rb_shell_clipboard_cmd_add_to_playlist_new),
3476         (rb_shell_clipboard_playlist_add_cb),
3477         (rb_shell_clipboard_playlist_deleted_cb),
3478         (rb_shell_clipboard_playlist_renamed_cb),
3479         (rb_shell_clipboard_playlist_visible_cb),
3480         (rb_shell_clipboard_playlist_added_cb):
3481         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3482         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3483         (rb_shell_player_init), (rb_shell_player_set_property),
3484         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3485         (rb_shell_player_open_location),
3486         (rb_shell_player_set_playing_entry),
3487         (rb_shell_player_play_order_update_cb),
3488         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3489         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3490         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3491         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3492         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3493         (gconf_song_position_slider_visibility_changed),
3494         (rb_shell_player_entry_activated_cb),
3495         (rb_shell_player_property_row_activated_cb),
3496         (rb_shell_player_entry_changed_cb),
3497         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3498         (actually_set_playing_source),
3499         (rb_shell_player_set_playing_source_internal),
3500         (rb_shell_player_get_playing_song_duration), (eos_cb),
3501         (rb_shell_player_error), (error_cb), (info_available_cb),
3502         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3503         (rb_shell_player_error_get_type):
3504         * shell/rb-shell-player.h:
3505         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3506         (rb_shell_preferences_append_page),
3507         (share_check_button_toggled_cb),
3508         (password_check_button_toggled_cb), (add_daap_preferences),
3509         (rb_shell_preferences_column_check_changed_cb),
3510         (rb_shell_preferences_sync_column_button),
3511         (rb_shell_preferences_sync),
3512         (rb_shell_preferences_browser_views_activated_cb):
3513         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3514         (rb_shell_set_property), (rb_shell_get_property),
3515         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3516         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3517         (rb_shell_get_visibility), (rb_shell_set_visibility),
3518         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3519         (rb_shell_register_entry_type_for_source),
3520         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3521         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3522         (rb_shell_player_stream_song_changed_cb),
3523         (rb_shell_set_window_title),
3524         (rb_shell_view_smalldisplay_changed_cb),
3525         (rb_shell_view_queue_as_sidebar_changed_cb),
3526         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3527         (rb_shell_cmd_add_folder_to_library),
3528         (rb_shell_cmd_add_file_to_library),
3529         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3530         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3531         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3532         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3533         (handle_playlist_entry_cb), (rb_shell_load_uri),
3534         (rb_shell_add_to_queue), (rb_shell_present),
3535         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3536         (rb_shell_volume_widget_changed_cb),
3537         (rb_shell_player_volume_changed_cb),
3538         (rb_shell_ui_location_get_type):
3539         * shell/rb-shell.h:
3540         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3541         (rb_source_header_init), (rb_source_header_set_source_internal),
3542         (rb_source_state_sync), (rb_source_header_clear_search),
3543         (rb_source_header_view_browser_changed_cb):
3544         * shell/rb-source-header.h:
3545         * shell/rb-statusbar.c: (rb_statusbar_construct),
3546         (rb_statusbar_init), (rb_statusbar_finalize),
3547         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3548         (rb_statusbar_source_status_changed_cb):
3549         * shell/rb-statusbar.h:
3550         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3551         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3552         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3553         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3554         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3555         (rb_audiocd_create_track_entry):
3556         * sources/rb-auto-playlist-source.c:
3557         (rb_auto_playlist_source_class_init),
3558         (rb_auto_playlist_source_constructor),
3559         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3560         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3561         (rb_auto_playlist_source_query_complete_cb),
3562         (rb_auto_playlist_source_do_query),
3563         (rb_auto_playlist_source_set_query),
3564         (rb_auto_playlist_source_browser_changed_cb),
3565         (search_action_to_prop):
3566         * sources/rb-auto-playlist-source.h:
3567         * sources/rb-browser-source.c: (rb_browser_source_init),
3568         (rb_browser_source_dispose), (search_action_to_prop),
3569         (rb_browser_source_constructor),
3570         (rb_browser_source_cmd_choose_genre),
3571         (rb_browser_source_cmd_choose_artist),
3572         (rb_browser_source_cmd_choose_album), (impl_search),
3573         (rb_browser_source_browser_changed_cb),
3574         (rb_browser_source_do_query):
3575         * sources/rb-browser-source.h:
3576         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3577         (rb_daap_source_init), (rb_daap_source_dispose),
3578         (rb_daap_source_set_property), (start_browsing),
3579         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3580         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3581         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3582         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3583         * sources/rb-daap-source.h:
3584         * sources/rb-import-errors-source.h:
3585         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3586         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3587         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3588         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3589         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3590         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3591         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3592         (generate_ipod_filename), (ipod_path_from_unix_path),
3593         (impl_delete_thyself):
3594         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3595         (rb_iradio_source_init), (rb_iradio_source_constructor),
3596         (rb_iradio_source_new), (guess_uri_scheme),
3597         (rb_iradio_source_add_station),
3598         (rb_iradio_source_async_update_play_statistics),
3599         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3600         (stations_view_drag_data_received_cb),
3601         (rb_iradio_source_cmd_new_station):
3602         * sources/rb-iradio-source.h:
3603         * sources/rb-library-source.c: (rb_library_source_dispose),
3604         (rb_library_source_constructor),
3605         (rb_library_source_location_button_clicked_cb),
3606         (impl_get_config_widget), (rb_library_source_library_location_cb),
3607         (sanitize_path), (filepath_parse_pattern),
3608         (layout_example_label_update),
3609         (rb_library_source_layout_filename_changed), (build_filename),
3610         (impl_can_paste), (impl_paste),
3611         (rb_library_source_add_child_source),
3612         (rb_library_source_sync_child_sources):
3613         * sources/rb-library-source.h:
3614         * sources/rb-missing-files-source.h:
3615         * sources/rb-play-queue-source.c:
3616         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3617         * sources/rb-play-queue-source.h:
3618         * sources/rb-playlist-source-recorder.c:
3619         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3620         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3621         (rb_playlist_source_recorder_init),
3622         (rb_playlist_source_recorder_new):
3623         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3624         (rb_playlist_source_save_playlist),
3625         (rb_playlist_source_entry_added_cb),
3626         (rb_playlist_source_set_query_model),
3627         (rb_playlist_source_add_to_map):
3628         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3629         (rb_podcast_source_init), (rb_podcast_source_dispose),
3630         (rb_podcast_source_finalize), (search_action_to_prop),
3631         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3632         (rb_podcast_source_get_property), (rb_podcast_source_new),
3633         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3634         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3635         (rb_podcast_source_show_browser), (construct_query_from_selection),
3636         (rb_podcast_source_do_query), (impl_get_config_widget),
3637         (rb_podcast_source_btn_file_change_cb),
3638         (posts_view_drag_data_received_cb),
3639         (rb_podcast_source_cmd_download_post),
3640         (rb_podcast_source_cmd_cancel_download),
3641         (rb_podcast_source_cmd_delete_feed),
3642         (rb_podcast_source_cmd_properties_feed),
3643         (rb_podcast_source_cmd_update_feed),
3644         (rb_podcast_source_post_status_cell_data_func),
3645         (rb_podcast_source_post_feed_cell_data_func),
3646         (rb_podcast_source_post_date_cell_data_func),
3647         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3648         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3649         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3650         (impl_get_status):
3651         * sources/rb-podcast-source.h:
3652         * sources/rb-removable-media-source.c:
3653         (rb_removable_media_source_constructor):
3654         * sources/rb-removable-media-source.h:
3655         * sources/rb-source.h:
3656         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3657         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3658         (rb_sourcelist_model_row_is_separator),
3659         (rb_sourcelist_model_drag_data_received),
3660         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3661         (rb_sourcelist_model_row_drop_position),
3662         (rb_sourcelist_model_get_drag_target),
3663         (rb_sourcelist_model_row_draggable),
3664         (rb_sourcelist_model_drag_data_get),
3665         (rb_sourcelist_model_row_inserted_cb),
3666         (rb_sourcelist_model_get_group_path):
3667         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3668         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3669         (rb_sourcelist_visible_source_to_iter),
3670         (rb_sourcelist_edit_source_name),
3671         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3672         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3673         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3674         * sources/rb-static-playlist-source.c:
3675         (rb_static_playlist_source_class_init),
3676         (rb_static_playlist_source_constructor),
3677         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3678         (impl_search), (rb_static_playlist_source_do_query),
3679         (rb_static_playlist_source_browser_changed_cb),
3680         (impl_receive_drag), (impl_save_contents_to_xml),
3681         (rb_static_playlist_source_add_location_swapped),
3682         (search_action_to_prop):
3683         * sources/rb-static-playlist-source.h:
3684         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3685         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3686         (egg_tray_icon_get_orientation_property),
3687         (egg_tray_icon_send_manager_message),
3688         (egg_tray_icon_update_manager_window),
3689         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3690         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3691         * widgets/eggtrayicon.h:
3692         * widgets/rb-cell-renderer-pixbuf.c:
3693         (rb_cell_renderer_pixbuf_get_property),
3694         (rb_cell_renderer_pixbuf_set_property),
3695         (rb_cell_renderer_pixbuf_get_size),
3696         (rb_cell_renderer_pixbuf_render),
3697         (rb_cell_renderer_pixbuf_activate):
3698         * widgets/rb-cell-renderer-rating.c:
3699         (rb_cell_renderer_rating_class_init),
3700         (rb_cell_renderer_rating_get_property),
3701         (rb_cell_renderer_rating_set_property),
3702         (rb_cell_renderer_rating_get_size),
3703         (rb_cell_renderer_rating_render),
3704         (rb_cell_renderer_rating_activate):
3705         * widgets/rb-dialog.c:
3706         * widgets/rb-dialog.h:
3707         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3708         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3709         (rb_druid_page3_finish_cb):
3710         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3711         (rb_entry_view_init), (rb_entry_view_set_property),
3712         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3713         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3714         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3715         (rb_entry_view_set_sorting_order),
3716         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3717         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3718         (rb_entry_view_playing_song_changed),
3719         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3720         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3721         (rb_entry_view_set_fixed_column_width),
3722         (rb_entry_view_get_time_date_column_sample),
3723         (rb_entry_view_state_get_type):
3724         * widgets/rb-entry-view.h:
3725         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3726         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3727         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3728         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3729         (update_browser_property_visibilty),
3730         (rb_library_browser_construct_query), (restore_selection),
3731         (rebuild_child_model), (rb_library_browser_set_selection),
3732         (rb_library_browser_set_model):
3733         * widgets/rb-library-browser.h:
3734         * widgets/rb-property-view.c: (rb_property_view_class_init),
3735         (rb_property_view_set_property), (rb_property_view_reset),
3736         (rb_property_view_get_model), (rb_property_view_constructor),
3737         (rb_property_view_set_selection),
3738         (rb_property_view_selection_changed_cb),
3739         (rb_property_view_button_press_cb),
3740         (rb_property_view_set_search_func):
3741         * widgets/rb-query-creator-private.h:
3742         * widgets/rb-query-creator-properties.c:
3743         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3744         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3745         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3746         (relativeTimeCriteriaCreateWidget),
3747         (relativeTimeCriteriaSetWidgetData):
3748         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3749         (rb_query_creator_dispose), (rb_query_creator_load_query),
3750         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3751         (get_property_index_from_proptype), (select_criteria_from_value),
3752         (create_property_option_menu), (create_criteria_option_menu),
3753         (sort_option_menu_changed), (setup_sort_option_menu):
3754         * widgets/rb-query-creator.h:
3755         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3756         (rb_rating_render_stars):
3757         * widgets/rb-rating-helper.h:
3758         * widgets/rb-rating.c: (rb_rating_expose):
3759         * widgets/rb-rating.h:
3760         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3761         (rb_search_entry_timeout_cb):
3762         * widgets/rb-search-entry.h:
3763         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3764         (rb_song_info_constructor), (rb_song_info_new),
3765         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3766         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3767         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3768         (rb_song_info_query_model_changed_cb),
3769         (rb_song_info_sync_entries_multiple),
3770         (rb_song_info_sync_entry_single):
3771         Strip all trailing whitespace.  Fixes #344293.
3773 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3775         * doc/reference/Makefile.am: Fix GTK Doc Build
3777 2006-07-13  James Livingston  <doclivingston@gmail.com>
3779         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3781         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3782         instead of the LOCATION, and don't try to get the directory listing
3783         for http URI schemes
3785         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3786         invalid utf8 in the error message, since apparently it can happen.
3788 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3790         * sources/rb-import-errors-source.c:
3791         (rb_import_errors_source_class_init),
3792         (rb_import_errors_source_init),
3793         (rb_import_errors_source_constructor),
3794         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3795         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3796         * sources/rb-missing-files-source.c:
3797         (rb_missing_files_source_class_init),
3798         (rb_missing_files_source_init),
3799         (rb_missing_files_source_constructor),
3800         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3801         (rb_missing_files_source_songs_sort_order_changed_cb),
3802         (impl_get_status):
3803         * sources/rb-source.c: (rb_source_class_init),
3804         (rb_source_finalize), (update_visibility_idle),
3805         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3806         (rb_source_set_property), (rb_source_get_property),
3807         (default_get_status), (rb_source_update_play_statistics),
3808         (default_add_to_queue), (_rb_source_show_popup),
3809         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3810         (rb_source_gather_selected_properties),
3811         (_rb_source_register_action_group):
3812         * sources/rb-source.h:
3813         * sources/rb-sourcelist.c: (visibility_notify_cb):
3814         Don't use a fake model for import-errors and missing-files
3815         sources.  Add a new source property "hidden-when-empty".
3816         Update source visibility in an idle.  Clean up some whitespace.
3817         From bug #346800
3819 2006-07-12  James Livingston  <doclivingston@gmail.com>
3821         * bindings/python/rb.defs:
3822         * bindings/python/rb.override: bind rb_error_dialog
3824         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3825         the current working directory for uninstalled plugins, and add the
3826         class name to the method name.
3828 2006-07-12  James Livingston  <doclivingston@gmail.com>
3830         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3831         the sources EOF type if it's NULL. Fixes #346284.
3833 2006-07-12  James Livingston  <doclivingston@gmail.com>
3835         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3836         I accidently committed. Nothing to see here, move along...
3838 2006-07-11  James Livingston  <doclivingston@gmail.com>
3840         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3841         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3842         Unknown.
3844 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3846         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3848 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3850         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3851         Don't try to set mtime if we've deleted the entry.
3853 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3855         * bindings/python/rhythmdb.defs:
3856         * rhythmdb/rhythmdb.c:
3857         * rhythmdb/rhythmdb.h:
3858         * rhythmdb/rhythmdb-private.h:
3859         * rhythmdb/rhythmdb-query.c:
3860         Move data structures holding registered entry types inside the
3861         RhythmDB object, and add a vfunc called when new types are registered.
3862         Add a flag to RhythmDBEntryType specifying whether entries of the type
3863         should be saved to the on-disk database.
3865         * sources/rb-audiocd-source.c:
3866         * sources/rb-daap-source.c:
3867         * sources/rb-ipod-source.c:
3868         * plugins/generic-player/rb-generic-player-source.c:
3869         * plugins/generic-player/rb-nokia770-source.c:
3870         * plugins/generic-player/rb-psp-source.c:
3871         Adjust to the above changes.
3873         * rhythmdb/rhythmdb-tree.c:
3874         If the type for an entry hasn't been registered yet, store the entry's
3875         properties as-is, and convert them to a real entry when the type is
3876         registered.  If the type doesn't get registered, save the entry back
3877         to the database unmodified.  From #330226.
3879 2006-07-10  James Livingston  <doclivingston@gmail.com>
3881         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3882         os.path.unlink to os.unlink, so removing stuff works.
3884 2006-07-10  James Livingston  <doclivingston@gmail.com>
3886         patch by: Ed Catmur  <ed@catmur.co.uk>
3887               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3889         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3890         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3891         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3892         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3893         internals of the cover database and Amazon lookup engine, and add
3894         support for loading art from the local file system. Fixes #345688.
3896         * plugins/rb/Coroutine.py:
3897         * plugins/rb/Makefile.am:
3898         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3899         plugin classes.
3901 2006-07-10  James Livingston  <doclivingston@gmail.com>
3903         * tests/Makefile.am: don't run the benchmark when doing "make check"
3905         * po/POTFILES.in: more build fixes, from Matti Lindell
3906         <feenixx@hotmail.com>. Fixes #347049.
3909 2006-07-10  James Livingston  <doclivingston@gmail.com>
3911         * plugins/cd-recorder/Makefile.am: build fixes
3913         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3914         attempt to change properties if we couldn't create an entry.
3916         * shell/rb-source-header.c: (rb_source_header_init),
3917         (rb_source_header_view_browser_changed_cb),
3918         (rb_source_header_sync_control_state):
3919         * shell/rb-tray-icon.c:
3920         * widgets/Makefile.am:
3921         * widgets/disclosure-widget.c:
3922         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3923         widget, as it hasn't been used for a while.
3925 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3927         * Makefile.am:
3928         * configure.ac:
3929         * data/ui/rhythmbox-ui.xml:
3930         * plugins/Makefile.am:
3931         * plugins/cd-recorder/.cvsignore:
3932         * plugins/cd-recorder/Makefile.am:
3933         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3934         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3935         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3936         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3937         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3938         (playlist_row_inserted_cb), (update_source),
3939         (shell_selected_source_notify_cb), (impl_activate),
3940         (impl_deactivate):
3941         * shell/Makefile.am:
3942         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3943         (rb_playlist_manager_cmd_save_playlist):
3944         * shell/rb-shell.c: (rb_shell_select_source):
3945         * sources/Makefile.am:
3946         * sources/rb-playlist-source-recorder.c:
3947         (rb_playlist_source_recorder_new):
3948         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3949         (rb_playlist_source_add_to_map):
3950         * sources/rb-playlist-source.h:
3951         Move cd burning into a plugin.  Fixes #344300.
3953 2006-07-10  James Livingston  <doclivingston@gmail.com>
3955         * lib/eel-gconf-extensions.c:
3956         * shell/rb-shell.c: remove some ununsed gnomeui includes
3958         * widgets/Makefile.am:
3959         * widgets/rb-song-display-box.c:
3960         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3961         since it isn't acutally used anywhere. Fixes #346926
3963 2006-07-09  James Livingston  <doclivingston@gmail.com>
3965         * bindings/python/rb.defs:
3966         * bindings/python/rb.override:
3967         * lib/rb-debug.c: (rb_debug_real):
3968         * lib/rb-debug.h:
3969         * plugins/rb/__init__.py: don't print out an extra newline when
3970         diverting python print statements to RB's debug log.
3972 2006-07-09  James Livingston  <doclivingston@gmail.com>
3974         * rhythmdb/rhythmdb-property-model.c:
3975         (rhythmdb_property_model_drag_data_get):
3976         * sources/rb-sourcelist-model.c:
3977         (rb_sourcelist_model_row_draggable),
3978         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3979         from the row reference is still valid. Fixes #346709.
3981 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3983         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3985         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3986         If all selected entries have the same rating, use that as the initial
3987         rating for the multiple song info dialog.  Fixes #345970.
3989 2006-07-09  James Livingston  <doclivingston@gmail.com>
3991         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3992         to prevent #343345:
3993                 - don't ever scale to 1x1, just hide the image in that case
3994                 - don't fade when the window is minimised
3995                 - use the last-good allocation width, not the current one - as
3996                   it sometimes get weird values.
3998 2006-07-08  William Jon McCann  <mccann@jhu.edu>
4000         * data/ui/rhythmbox-ui.xml:
4001         * shell/rb-shell.c:
4002         Remove Import audio CD from menu.  Fixes #339732
4004 2006-07-08  James Livingston  <doclivingston@gmail.com>
4006         * metadata/test-metadata.c: (print_metadata_string),
4007         (load_metadata_cb): print out all the metadata we have read, not just
4008         a few.
4010         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
4011         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
4013 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4015         * plugins/lyrics/lyrics.py:
4016         Change the lyrics cache location to match Quod Libet's,
4017         and fix the '&' -> 'and' substitution to require spaces.
4019 2006-07-08  James Livingston  <doclivingston@gmail.com>
4021         * bindings/python/rb.defs:
4022         * bindings/python/rb.override: bind rb_debug_real to rb._debug
4024         * configure.ac:
4025         * plugins/Makefile.am:
4026         * plugins/rb-python-module.c: (rb_python_module_init_python):
4027         * plugins/rb/Makefile.am: add a place to put common python classes.
4028         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
4029         rb module/
4031         * plugins/lyrics/Makefile.am:
4032         * plugins/lyrics/Loader.py:
4033         * plugins/artdisplay/artdisplay/Makefile.am:
4034         * plugins/artdisplay/artdisplay/Loader.py:
4035         * plugins/rb/Loader.py: move the loader class to rb.Loader
4037         * plugins/rb/__init__.py: redirect stdout from python (e.g.
4038         "print ...") to rb_debug. error output (e.g. exceptions) are still
4039         printed on stderr.
4041         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4042         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4043         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
4044         instead of Loader.
4046         Fixes #346895.
4048 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4050         * shell/rb-shell-player.xml:
4051         * shell/rb-shell-player.h:
4052         Correct the details of the playing-song-property-changed signal.
4054 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4056         * lib/rb-marshal.list:
4057         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4058         (rb_shell_player_entry_changed_cb):
4059         * shell/rb-shell-player.h:
4060         * shell/rb-shell-player.xml:
4061         Emit a dbus signal when a property is changed on the playing entry.
4062         Fixes #332461.
4064 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4066         * rhythmdb/rhythmdb-private.h:
4067         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4068         Fix build break with gcc 4.1 by changing RBRefString pointers into
4069         gpointers.
4071 2006-07-07  James Livingston  <doclivingston@gmail.com>
4073         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
4074         remove an extraneous !, which caused it not to monitor folders in the
4075         library with no tracks in them. Fixes #346759.
4077 2006-07-07  James Livingston  <doclivingston@gmail.com>
4079         * rhythmdb/rhythmdb-private.h:
4080         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4081         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
4082         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
4083         (rhythmdb_entry_get_string):
4084         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
4085         flags for the affected properties. _sync_mirrored will get run
4086         automatically when a dirty property is accessed, which improves
4087         performance a bit (especially during startup) as we don't need to sync
4088         every time they change. From #325215.
4090         * tests/bench-rhythmdb-load.c
4091         * tests/Makefile.am: add a RhythmDB loading benchmark.
4093 2006-07-06  James Livingston  <doclivingston@gmail.com>
4095         * bindings/python/rb.defs:
4096         * bindings/python/rb.override: some more fixes, so that
4097         python classes derived from RBSource work correctly.
4099 2006-07-06  James Livingston  <doclivingston@gmail.com>
4101         * configure.ac: bump pygtk requirements to 2.8, since we're already
4102         using some features of it, and weird things will happen if people are
4103         actually trying to use pygtk 2.6.
4105         * bindings/python/rb.override:
4106         * bindings/python/rhythmdb.defs:
4107         * bindings/python/rhythmdb.override: allow python to set
4108         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
4110         * sources/rb-browser-source.c: remove some left over member variables
4112 2006-07-06  James Livingston  <doclivingston@gmail.com>
4114         * rhythmdb/rhythmdb.c:
4115         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4116         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
4117         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
4118         former is pointless (as rhythmdb already knows which it should use)
4119         and the latter doesn't seem useful at all, and possibly bad. From
4120         #330226.
4122         * bindings/python/rhythmdb.defs:
4123         * bindings/python/rhythmdb.override:
4124         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
4125         (handle_song_listing):
4126         * podcast/rb-podcast-manager.c:
4127         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
4128         (rb_podcast_manager_insert_feed):
4129         * sources/rb-audiocd-source.c: (entry_set_string_prop),
4130         (rb_audiocd_create_track_entry):
4131         * sources/rb-ipod-source.c: (entry_set_string_prop),
4132         (add_ipod_song_to_db):
4133         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
4134         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
4136 2006-07-05  James Livingston  <doclivingston@gmail.com>
4138         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4139         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
4140         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
4141         totem-plparser gives us, or the file name if it doesn't give us
4142         anything. Set the default file name when saving too. Fixes #345261
4144 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4146         patch by: Ed Catmur  <ed@catmur.co.uk>
4148         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
4149         Skip all hidden directories, not just trash, and skip unreadable
4150         files.  Fixes #346322.
4152 2006-07-04  James Livingston  <doclivingston@gmail.com>
4154         * plugins/rb-module.h:
4155         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
4156         (rb_module_new):
4157         * plugins/rb-plugin.h:
4158         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
4159         (rb_plugin_finalise), (rb_plugin_set_property),
4160         (rb_plugin_get_property), (rb_plugin_activate),
4161         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
4162         (rb_plugin_find_file):
4163         * plugins/rb-plugins-engine.c: (load_plugin_module):
4164         * plugins/rb-python-module.c: (rb_python_module_new_object),
4165         (rb_python_module_new):
4166         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
4167         rb_plugin_find_file method for locating plugin-specific data. Fixes
4168         346473.
4170         * bindings/python/rb.defs:
4171         * plugins/Makefile.am:
4172         * plugins/generic-player/rb-generic-player-plugin.c:
4173         (create_source_cb):
4174         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
4176 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4178         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
4179         (rb_metadata_can_save), (rb_metadata_save):
4180         Protect the dbus connection with a mutex.
4182 2006-07-03  James Livingston  <doclivingston@gmail.com>
4184         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
4185         case of the parser/tagger not being able to be created.
4187 2006-07-03  James Livingston  <doclivingston@gmail.com>
4189         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4191         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
4192         window resizable, as it used to be. Fixes #345940.
4194 2006-07-01  James Livingston  <doclivingston@gmail.com>
4196         Patch from Ståle Lyngaas  <staale@lyngaas.com>
4198         * rhythmdb/rhythmdb.h:
4199         * rhythmdb/rhythmdb-private.h:
4200         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4201         (rhythmdb_tree_parser_end_element), (save_entry):
4202         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
4203         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
4204         (set_props_from_metadata), (rhythmdb_entry_set_internal),
4205         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
4206         MusicBrainz track IDs in the database, and bump the on-disk version
4207         number to trigger a metadata reload.
4209         * backends/gstreamer/rb-player-gst.c: (process_tag):
4210         * metadata/rb-metadata-common.c:
4211         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
4212         (rb_metadata_gst_field_to_gst_tag):
4213         * metadata/rb-metadata.h: grab MB track IDs and use them.
4215         * plugins/audioscrobbler/rb-audioscrobbler.c:
4216         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4217         (rb_audioscrobbler_timeout_cb),
4218         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
4219         the other metadata. Fixes #343491.
4221 2006-06-30  James Livingston  <doclivingston@gmail.com>
4223         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
4224         method.
4226 2006-06-30  James Livingston  <doclivingston@gmail.com>
4228         * bindings/python/rb.defs:
4229         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4230         (rb_browser_source_songs_show_popup_cb),
4231         (default_show_entry_popup):
4232         * sources/rb-browser-source.h:
4233         * sources/rb-library-source.c: (rb_library_source_class_init),
4234         (rb_library_source_constructor), (impl_show_popup): allow
4235         RBBrowserSource-derived sources to override the entry context menu
4236         properly - by making it a virtual function, rather than relying on
4237         signal handler order (which doesn't really work).
4239 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4241         * rhythmdb/rhythmdb-query-model.c:
4242         (rhythmdb_query_model_reapply_query_cb):
4243         Use the original query, not the preprocessed query, when redoing
4244         the query to pick up entries that previously didn't match.
4245         Preprocessing the query twice is bad.  Fixes #346186.
4247 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4249         * plugins/audioscrobbler/rb-audioscrobbler.c:
4250         (rb_audioscrobbler_song_changed_cb):
4251         Just check if the elapsed time has been reset, rather
4252         than checking if it's a different track.  Fixes #344827.
4254 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4256         * backends/gstreamer/rb-player-gst.c:
4257         Set cdda source read-speed to 1.  Fixes gaps in playback while the
4258         drive spins up, #344576.
4260 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4262         * plugins/audioscrobbler/rb-audioscrobbler.c:
4263         (rb_audioscrobbler_perform):
4264         Use HTTP/1.1.  Fixes #345895.
4266 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4268         * lib/rb-preferences.h:
4269         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4270         (check_auto_proxy_config), (get_proxy_config):
4271         Don't try to use a HTTP proxy if no proxy host is specified.
4272         Alert the user to the fact that we don't support automatic proxy
4273         configuration as infrequently as possible.  From #345712.
4275 2006-06-25  James Livingston  <doclivingston@gmail.com>
4277         * rhythmdb/rhythmdb-property-model.c:
4278         (rhythmdb_property_model_set_property): connect to the
4279         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4280         things get removed correctly, fixes #338183.
4282 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4284         * rhythmdb/rhythmdb-query-model.c:
4285         (rhythmdb_query_model_drag_data_received):
4286         Fix build break.
4288 2006-06-25  James Livingston  <doclivingston@gmail.com>
4290         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4292         * widgets/rb-search-entry.c: (rb_search_entry_init),
4293         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4294         search box have a pale yellow background when it's in use, except for
4295         when the user has an "accessability" theme. Code based heavily on
4296         Epiphany's. Fixes #344416.
4298 2006-06-25  James Livingston  <doclivingston@gmail.com>
4300         * plugins/lyrics/lyrics.py:
4301         * plugins/pythonconsole/pythonconsole.py:
4302         * plugins/sample-python/sample-python.py: don't import gettext stuff
4303         as _, as the C code does this for us. Fixes i18n for python plugins,
4304         #343081
4306 2006-06-25  James Livingston  <doclivingston@gmail.com>
4308         * rhythmdb/rhythmdb-query-model.c:
4309         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4310         a model use a reorder rather then deleting and re-adding the entry.
4311         This means it does do weird things like stop playback of a track that
4312         is dragged, fixing #337657.
4314 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4316         * metadata/rb-metadata-dbus-service.c:
4317         Add missing #include <glib/gi18n.h> from previous commit.
4319 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4321         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4323         * metadata/rb-metadata-dbus-service.c: (main):
4324         Initialize gettext in the metadata helper.
4325         * metadata/rb-metadata-gst.c:
4326         Make some strings translatable.  Fixes #345286.
4328 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4330         * configure.ac:
4331         * lib/Makefile.am:
4332         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4333         Inline the custom icons so they can always be loaded, but are still
4334         themable.  Fixes #345796.
4336 2006-06-23  James Livingston  <doclivingston@gmail.com>
4338         * sources/rb-auto-playlist-source.c:
4339         (rb_auto_playlist_source_do_query): stop the search box being applied
4340         for limits in auto playlists. Fixes #345307.
4342 2006-06-23  James Livingston  <doclivingston@gmail.com>
4344         * shell/rb-shell-clipboard.c:
4345         (rb_shell_clipboard_set_source_internal),
4346         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4347         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4348         non-library tracks, as we don't supprot it yet. From #345248.
4350 2006-06-23  James Livingston  <doclivingston@gmail.com>
4352         patch by: Brian Cameron  <brian.cameron@sun.com>
4354         * plugins/generic-player/rb-generic-player-plugin.c:
4355         * plugins/generic-player/rb-generic-player-source.c:
4356         * plugins/generic-player/rb-nokia770-source.c:
4357         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4358         Fixes 345673.
4360 2006-06-22  James Livingston  <doclivingston@gmail.com>
4362         * backends/rb-player.c: (rb_player_interface_init):
4363         * lib/rb-marshal.list:
4364         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4365         * rhythmdb/rhythmdb-query-model.c:
4366         (rhythmdb_query_model_class_init):
4367         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4368         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4369         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4370         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4371         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4372         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4373         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4374         possible not.
4376 2006-06-20  James Livingston  <doclivingston@gmail.com>
4378         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4380         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4381         metadata to clients. Fixes #345276.
4383 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4385         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4386         (rb_add_id3_tagger):
4387         Fix plugin/element version detection for id3v2mux.
4389 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4391         * sources/rb-source.c: (rb_source_finalize),
4392         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4393         (_autohide_update_visibility),
4394         (_rb_autohide_source_post_entry_deleted_cb),
4395         (_rb_autohide_source_row_inserted_cb),
4396         (_rb_source_hide_when_empty):
4397         Use post-entry-delete signal to update status and autohide sources.
4399 2006-06-20  James Livingston  <doclivingston@gmail.com>
4401         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4402         "selection changed" idle callback, if present.
4404 2006-06-19  James Livingston  <doclivingston@gmail.com>
4406         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4408         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4409         don't try to translate the empty string. Fixes #345285.
4411 2006-06-19  James Livingston  <doclivingston@gmail.com>
4413         * bindings/python/rhythmdb.override: more python binding fixes
4415 2006-06-19  James Livingston  <doclivingston@gmail.com>
4417         * lib/rb-util.c: (rb_copy_function):
4418         * lib/rb-util.h: add a function that returns the same pointer it was
4419         passed.
4421         * rhythmdb/rhythmdb.h:
4422         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4423         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4424         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4425         and RhythmDBEntryType into boxed types. This allows them to be used
4426         from python. Note that entry-types aren't actually reference counted
4427         (yet).
4429         * bindings/python/rb.defs:
4430         * bindings/python/rhythmdb.defs:
4431         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4432         return types of some bindings.
4434         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4435         (process_added_entries_cb), (rhythmdb_entry_finalize),
4436         (rhythmdb_entry_delete):
4437         * daapsharing/rb-daap-connection.c:
4438         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4439         (rb_daap_connection_get_property):
4440         * plugins/generic-player/rb-generic-player-source.c:
4441         (rb_generic_player_source_load_songs), (load_playlist_file):
4442         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4443         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4444         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4445         (idle_process_update), (rhythmdb_query_model_add_entry),
4446         (rhythmdb_query_model_insert_into_main_list),
4447         (rhythmdb_query_model_insert_into_limited_list),
4448         (rhythmdb_query_model_remove_from_main_list),
4449         (rhythmdb_query_model_remove_from_limited_list),
4450         (rhythmdb_query_model_drag_data_received),
4451         (rhythmdb_query_model_add_results),
4452         (rhythmdb_query_model_get_column_type),
4453         (rhythmdb_query_model_get_value):
4454         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4455         (rhythmdb_tree_entry_delete), (remove_one_song):
4456         * shell/rb-play-order-linear-loop.c:
4457         (rb_linear_play_order_loop_get_next),
4458         (rb_linear_play_order_loop_get_previous):
4459         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4460         (rb_linear_play_order_get_previous):
4461         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4462         (rb_queue_play_order_get_previous):
4463         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4464         (rb_random_filter_history), (rb_random_play_order_get_next),
4465         (rb_random_play_order_go_next), (rb_random_db_changed),
4466         (rb_random_playing_entry_changed):
4467         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4468         (remove_from_history), (add_randomly_to_history),
4469         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4470         * shell/rb-play-order.c: (rb_play_order_class_init),
4471         (rb_play_order_set_property), (rb_play_order_get_property),
4472         (rb_play_order_update_have_next_previous):
4473         * shell/rb-play-order.h:
4474         * shell/rb-shell-clipboard.c:
4475         (rb_shell_clipboard_process_deletions),
4476         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4477         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4478         * sources/rb-auto-playlist-source.c:
4479         (rb_auto_playlist_source_constructor):
4480         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4481         (rb_browser_source_set_property), (rb_browser_source_get_property),
4482         (rb_browser_source_do_query):
4483         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4484         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4485         * sources/rb-ipod-source.c: (add_rb_playlist),
4486         (add_ipod_song_to_db), (impl_paste):
4487         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4488         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4489         * sources/rb-library-source.c: (layout_example_label_update):
4490         * sources/rb-missing-files-source.c:
4491         (rb_missing_files_source_class_init),
4492         (rb_missing_files_source_set_property),
4493         (rb_missing_files_source_get_property),
4494         (rb_missing_files_source_new):
4495         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4496         (rb_playlist_source_set_property),
4497         (rb_playlist_source_get_property):
4498         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4499         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4500         (construct_query_from_selection):
4501         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4502         * sources/rb-static-playlist-source.c:
4503         (rb_static_playlist_source_constructor),
4504         (rb_static_playlist_source_add_location_internal):
4505         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4506         * widgets/rb-header.c: (rb_header_class_init),
4507         (rb_header_set_property), (rb_header_get_property):
4508         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4509         (rb_library_browser_set_property),
4510         (rb_library_browser_get_property):
4511         * widgets/rb-song-info.c: (rb_song_info_class_init),
4512         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4513         change, do s/pointer/boxed/ in many places and free entry-types
4514         properly.
4516 2006-06-18  James Livingston  <doclivingston@gmail.com>
4518         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4519         unushed GThreadPool non-exclusive threads every now and then.
4521         * rhythmdb/rhythmdb-private.h:
4522         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4523         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4524         threads. Fixes #341593
4526 2006-06-19  James Livingston  <doclivingston@gmail.com>
4528         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4529         the "Track number" checkbox actually work for playlists. From #329986.
4531 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4533         * plugins/generic-player/rb-generic-player-source.c:
4534         Get playlist and audio folder information from HAL.  Fixes #333845.
4536 2006-06-18  James Livingston  <doclivingston@gmail.com>
4538         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4540         * widgets/rb-entry-view.h:
4541         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4542         (rb_entry_view_append_column_custom),
4543         (rb_entry_view_insert_column_custom): add support for inserting custom
4544         columns at arbitrary locations, rather than just appending to the end.
4546         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4547         the playlists "track number" column go at the start, and add a normal
4548         track number column. Fixes #329986.
4550 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4552         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4553         a mnemonic conflict.  Add ellipses to the edit button.
4554         * sources/rb-library-source.c:
4555         (rb_library_source_edit_profile_clicked_cb),
4556         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4557         mnemonic widget to the labels. Fixes #344114.
4559 2006-06-18  James Livingston  <doclivingston@gmail.com>
4561         * configure.ac: bump version
4562         * NEWS: add NEWS for 0.9.5
4564 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4566         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4567         (rb_uri_handle_recursively):
4568         Don't attempt to recurse into directories we can't open.  
4569         Fixes #341485.
4571 2006-06-18  James Livingston  <doclivingston@gmail.com>
4573         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4575         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4576         #344610.
4578 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4580         * bindings/python/rb.defs:
4581         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4582         * shell/rb-shell-player.h:
4583         * shell/rb-shell.c: (rb_shell_play_entry):
4584         Add source parameter to rb_shell_player_play_entry, using the selected
4585         source if not specified.
4587         * shell/rb-play-order.c: (rb_play_order_class_init),
4588         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4589         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4590         (default_playing_entry_removed):
4591         * shell/rb-play-order.h:
4592         Move entry removal handling back to the row-deleted signal, as we need
4593         the entry to be present in the model.  When changing to the next entry
4594         after the playing entry is deleted, set the new entry as the playing
4595         entry and then sync it to the player in an idle handler, so we don't
4596         end up playing it if it was removed too.
4597         * shell/rb-play-order-queue.c:
4598         (rb_queue_play_order_playing_entry_changed),
4599         (rb_queue_play_order_playing_entry_removed):
4600         Use the playing-entry-removed handler from the play order class,
4601         setting a flag so we don't try to remove the already-removed entry
4602         from the model.
4604         This makes removal of the playing entry from playlists etc. work more
4605         or less correctly for all play orders.  Fixes #344627.
4607 2006-06-17  James Livingston  <doclivingston@gmail.com>
4609         patch by: Elijah Newren  <newren@gmail.com>
4611         * tests/test-rhythmdb.c: fix the build with older versions of check
4612         (again). Fixes #343718.
4614 2006-06-17  James Livingston  <doclivingston@gmail.com>
4616         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4617         name for capsfilter's "caps" property. Fixes #344968.
4619 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4621         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4622         Don't leak the selected entry list when finding an entry to play.
4624 2006-06-17  James Livingston  <doclivingston@gmail.com>
4626         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4627         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4628         as a O(1) one works fine, and it will get called often when the user
4629         deleted multiple tracks. Part of #344922.
4631 2006-06-17  James Livingston  <doclivingston@gmail.com>
4633         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4634         rb_shell_player_stop and rb_shell_player_playpause not mutually
4635         recursive. Fixed #336912.
4637 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4639         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4640         Treat nested elements inside properties as unknown.  Fixes parsing of
4641         podcast feeds with unescaped HTML in description tags, bug #344532.
4643 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4645         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4646         when quitting.  Fixes #344875.
4648 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4650         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4651         Move the playing-entry-removed handling to after the normal entry
4652         delete handling, since we're called after the entry has been removed
4653         from the query model now.  Fixes crashes described in #344627.
4655 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4657         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4658         (rb_rating_get_rating_from_widget):
4659         * widgets/rb-rating.c: (rb_rating_class_init),
4660         (rb_rating_finalize), (rb_rating_get_property),
4661         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4662         (rb_rating_button_press_cb):
4663         Don't crash when ratings icons can't be found.  Fixes #344533.
4665 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4667         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4669 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4671         * Makefile.am:
4672         * configure.ac:
4673         * remote/Makefile.am:
4674         * remote/dbus/Makefile.am:
4675         * remote/dbus/rb-client.c:
4676         * shell/Makefile.am:
4677         New dbus client program providing --play/--next etc. arguments.
4678         Fixes #340863, #155763.
4680 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4682         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4683         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4685 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4687         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4689         * rhythmdb/rhythmdb-query-model.c:
4690         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4691         to Library incorrectly
4693 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4695         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4696         Return input string untouched if gnome_vfs_uri_new returns NULL.
4697         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4698         (rb_static_playlist_source_add_list_uri):
4699         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4700         URIs don't break it.  Fixes #339033.
4702 2006-06-08  James Livingston  <doclivingston@gmail.com>
4704         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4705         for sources on the edge (i.e. the queue). Fixes #328409.
4707         * sources/rb-ipod-source.c: fix typo
4709 2006-06-08  James Livingston  <doclivingston@gmail.com>
4711         * configure.ac:
4712         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4713         --enable-ipod-writing to enable the ipod syncing code.
4715 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4717         * sources/rb-library-source.c: (layout_example_label_update):
4718         add missing comma so we don't generate broken markup.
4720 2006-06-08  James Livingston  <doclivingston@gmail.com>
4722         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4723         tag-merging with id3v2mux as well as id3mux. From #342330.
4725 2006-06-07  James Livingston  <doclivingston@gmail.com>
4727         * tests/test-rhythmdb.c: #define fail_if for old version of check
4728         which don't have it. Hopefully fixes #343718.
4730 2006-06-07  James Livingston  <doclivingston@gmail.com>
4732         * shell/rb-playlist-manager.c:
4733         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4734         g_value_array_free with NULL. Fixes #341053.
4736 2006-06-07  James Livingston  <doclivingston@gmail.com>
4738         * shell/rb-playlist-manager.c:
4739         (rb_playlist_manager_playlist_entries_changed),
4740         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4741         instead of "row-removed", which fixes updating "burn playlist"
4742         sensitivity. Fixes #331119.
4744 2006-06-07  James Livingston  <doclivingston@gmail.com>
4746         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4747         rather than restarting if the source uses _RETRY and there is an
4748         actual error (like an undecodable stream) rather than it just dropping
4749         out and causing EOS.
4751 2006-06-07  James Livingston  <doclivingston@gmail.com>
4753         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4754         free the pixbufs if they couldn't be loaded. Fixed #343852.
4756 2006-06-07  James Livingston  <doclivingston@gmail.com>
4758         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4759         the close button on the dialog work. Fixes #335346.
4761 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4763         * sources/rb-sourcelist-model.c: (path_is_droppable),
4764         (path_is_reorderable):
4765         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4766         (row_activated_cb), (emit_show_popup), (key_release_cb),
4767         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4768         Ignore group marker rows in the source list.  Fixes #344089, a couple
4769         of other crashers, and some weird UI glitches too.
4771 2006-06-07  James Livingston  <doclivingston@gmail.com>
4773         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4774         the seeking query fails. This is needed because many gst elements
4775         don't implement the seeking query yet. Should fix 329977.
4777 2006-06-06  James Livingston  <doclivingston@gmail.com>
4779         * configure.ac: bump version for a prerelease, turn on track transfer
4780         by default.
4782         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4783         ipod transfer stuff, since it has big issues and we'll hopefully land
4784         real support (bug 310774) after 0.9.5
4786 2006-06-06  James Livingston  <doclivingston@gmail.com>
4788         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4789         id3v2mux once we've detected it.
4791 2006-06-06  James Livingston  <doclivingston@gmail.com>
4793         * lib/Makefile.am:
4794         * tests/test-rhythmdb.c: undo accidental commit which caused
4795         rb-thread.c to be built (which it isn't normally)
4797 2006-06-06  James Livingston  <doclivingston@gmail.com>
4799         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4800         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4801         fail_{if/unless} calls, as some versions of check need them (they are
4802         optional in others). Should fix bug 343718.
4804 2006-06-06  James Livingston  <doclivingston@gmail.com>
4806         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4807         343836.
4808         
4809         * lib/Makefile.am:
4810         * lib/rb-thread.c: (process_actions):
4811         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4812         tests that don't pass.
4814 2006-06-05  James Livingston  <doclivingston@gmail.com>
4816         * data/glade/Makefile.am:
4817         * data/glade/load-failure.glade:
4818         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4819         dialog.
4821 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4823         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4824         checked in.
4826 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4828         * bindings/python/rb.defs:
4829         * sources/rb-source.h:
4830         * sources/rb-source.c: (rb_source_class_init),
4831         (rb_source_set_property), (rb_source_get_property),
4832         (rb_sourcelist_group_get_type):
4833         Add 'sourcelist-group' property on the RBSource class, describing how
4834         sources should be grouped in the source list.
4836         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4837         (rb_sourcelist_model_new), (real_row_is_separator),
4838         (rb_sourcelist_model_is_row_visible),
4839         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4840         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4841         (rb_sourcelist_model_row_draggable),
4842         (rb_sourcelist_model_row_inserted_cb),
4843         (rb_sourcelist_model_row_deleted_cb),
4844         (rb_sourcelist_model_get_group_path):
4845         * sources/rb-sourcelist-model.h:
4846         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4847         (rb_sourcelist_append):
4848         Add group marker rows for each sourcelist group, and use these to
4849         insert sources in the right place.  Sort transient sources (DAAP
4850         shares) by name.  Show the group marker rows as separators when the
4851         next visible row is a source.  Make persistant sources (playlists) and
4852         removable sources reorderable using drag and drop, restricting them
4853         within the source groups.
4854         
4855         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4856         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4857         * sources/rb-daap-source.c: (rb_daap_source_new):
4858         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4859         * sources/rb-static-playlist-source.c:
4860         (rb_static_playlist_source_new):
4861         * plugins/generic-player/rb-generic-player-source.c:
4862         (rb_generic_player_source_new):
4863         * plugins/generic-player/rb-nokia770-source.c:
4864         (rb_nokia770_source_new):
4865         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4866         Add source list group information to existing source classes.
4868         Fixes #318754 and #336492.
4870 2006-06-04  James Livingston  <doclivingston@gmail.com>
4872         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4873         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4874         win32 build fixes.
4876 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4878         * rhythmdb/rhythmdb-query-model.c:
4879         (rhythmdb_query_model_class_init),
4880         (rhythmdb_query_model_remove_from_main_list):
4881         * rhythmdb/rhythmdb-query-model.h:
4882         Add a new 'post-entry-delete' signal, emitted when the entry has been
4883         removed from the model's data structures.
4885         * shell/rb-play-order.c: (rb_play_order_finalize),
4886         (rb_play_order_query_model_changed),
4887         (rb_play_order_post_entry_delete_cb):
4888         Use the new signal to update the play order, so the queue play order
4889         doesn't try to scroll to entries that don't exist in a way that causes
4890         the tree view to crash.  Fixes #340216.
4892 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4894         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4895         Fix rb_debug call I missed previously.
4897 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4899         * metadata/rb-metadata-gst.c:
4900         Don't use NULL as the error message for ignored files, as it crashes
4901         with some C libraries.  Fixes #343713.
4903 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4905         * widgets/rb-dialog.c: (rb_error_dialog):
4906         * widgets/rb-dialog.h:
4907         Mark rb_error_dialog as taking printf-like arguments, and use a format
4908         string for the primary message rather than passing in the message
4909         directly.
4911         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4912         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4913         (info_available_cb):
4914         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4915         * shell/rb-removable-media-manager.c:
4916         (rb_removable_media_manager_eject_medium_cb):
4917         Make sure all calls to rb_error_dialog use string constants for the
4918         format string rather than passing the error message directly.  Remove
4919         an extra %s from the message used when playback fails.  Fixes #343562.
4921         * lib/rb-debug.h:
4922         * sources/rb-audiocd-source.c:
4923         * plugins/audioscrobbler/rb-audioscrobbler.c:
4924         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4925         Mark rb_debug as taking printf-like arguments and fix a few resulting
4926         warnings.
4928 2006-06-02  James Livingston  <doclivingston@gmail.com>
4930         * configure.ac:
4931         + macros/check.m4: add support for using check for unit tests, the .m4
4932         files is so autogen can run without check being installed
4934         * tests/Makefile.am:
4935         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4936         some of the old tests, and add some new ones. Currently
4937         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4938         yet (the query doesn't return any entries).
4940         - tests/deserialization-test1.xml:
4941         - tests/deserialization-test2.xml:
4942         - tests/deserialization-test3.xml:
4943         - tests/test-rhythmdb-indexing.c:
4944         - tests/test-rhythmdb-simple.c:
4945         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4946         have been ported
4948         - tests/test-cd.c:
4949         - tests/test-cmdline.c: remove obsolete tests
4951 2006-06-02  James Livingston  <doclivingston@gmail.com>
4953         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4954         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4955         id3v2mux, and check whether we are using a version of id3mux that has
4956         the correct merge-mode behaviour.
4958         * plugins/sample-python/Makefile.am: fix distcheck.
4960         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4961         the changed-files source was added before trying to remove it.
4963         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4964         *old* bug which would crash if a query with top-level disjunctions
4965         tried to check later disjunctive parts. Hooray for unit-testing.
4967 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4969         * player/rb-recorder-gst.c (rb_recorder_set_device):
4970         Check for a null drive.
4972 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4974         * lib/Makefile.am:
4975         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4976         Register the app icon as a builtin if the icon theme can't find it.
4978 2006-05-31  James Livingston  <doclivingston@gmail.com>
4980         * player/rb-recorder-gst.c: add missing include.
4982 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4984         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4985         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4986         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4987         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4988         (rb_recorder_set_device), (rb_recorder_get_default_device):
4989         * shell/main.c: (main):
4990         * shell/rb-removable-media-manager.c:
4991         (rb_removable_media_manager_finalize),
4992         (get_nautilus_burn_drive_for_path),
4993         (rb_removable_media_manager_playing_uri_changed_cb),
4994         (rb_removable_media_manager_load_media),
4995         (nautilus_burn_drive_get_device),
4996         (rb_removable_media_manager_scan):
4997         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4999         Update for libnautilus-burn 2.15.3 API changes.
5000         Fixes #342604
5002 2006-05-30  James Livingston  <doclivingston@gmail.com>
5004         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
5005         "return" to that it asks for the password again if it was wrong.
5007 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5009         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
5010         typefind element.
5012 2006-05-30  James Livingston  <doclivingston@gmail.com>
5014         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5015         (download_progress_cb): don't do wonky things if the transfer
5016         "suceeds" without transferring any data.
5018 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5020         * sources/rb-library-source.c: (layout_example_label_update),
5021         (build_filename):  Fix crash when no audio profile is selected.
5022         Fixes #341447.
5024 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5026         * shell/rb-shell.c: (rb_shell_clear_queue):
5027         * shell/rb-shell.h:
5028         * shell/rb-shell.xml:
5029         * sources/rb-play-queue-source.c:
5030         (rb_play_queue_source_clear_queue),
5031         (rb_play_queue_source_cmd_clear):
5032         * sources/rb-play-queue-source.h:
5033         Add clearQueue dbus method.
5035 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5037         * shell/main.c: (main):  Implement --quit option.
5039 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5041         * rhythmdb/rhythmdb-private.h:
5042         * rhythmdb/rhythmdb-tree.h:
5043         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
5044         (rhythmdb_entry_insert), (rhythmdb_entry_set),
5045         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
5046         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
5047         (rhythmdb_entry_get_boolean):
5048         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
5049         bitmask, giving the db backend anything past the first 16 bits for 
5050         its own private use.
5052         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5053         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
5054         Add a 'loading' flag to indicate that an entry is being loaded from
5055         disk, and use that to ignore entry_set operations on such entries
5056         rather than the 'inserted' flag, which doesn't quite mean the same
5057         thing.  Fixes #342694.
5059 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5061         * shell/rb-shell.xml: Remove visibility property, since it causes
5062         crashes (dbus bug 7057) and doesn't do much else.
5064 2006-05-28  James Livingston  <doclivingston@gmail.com>
5066         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
5068         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5069         * po/POTFILES.in: fix some more i18n issues.
5071 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5073         * bindings/python/rb.defs:
5074         * shell/rb-shell-player.c: (rb_shell_player_playpause),
5075         (filter_mmkeys):
5076         * shell/rb-shell-player.h:
5077         Deprecate the useless 'ignore_stop' parameter to
5078         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
5079         API.  From bug #334829.
5081 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5083         * plugins/generic-player/rb-generic-player-source.c:
5084         (visit_playlist_dirs), (default_transform_playlist_uri):
5085         When playlist parsing fails, unref the playlist, not the parent
5086         source.  Fix memory leak in playlist uri transform.
5087         * plugins/generic-player/rb-nokia770-source.c:
5088         (impl_transform_playlist_uri):
5089         Fix memory leak in playlist uri transform.
5091 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
5093         * doc/reference/Makefile.am: fix grk-doc build
5095 2006-05-27  James Livingston  <doclivingston@gmail.com>
5097         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5099         * plugins/lyrics/lyrics.py:
5100         * po/POTFILES.in: Make strings in plugins translatable. From bug
5101         343081.
5103 2006-05-27  James Livingston  <doclivingston@gmail.com>
5105         * backends/Makefile.am:
5106         * backends/gstreamer/Makefile.am:
5107         * lib/Makefile.am:
5108         * plugins/audioscrobbler/Makefile.am:
5109         * plugins/generic-player/Makefile.am:
5110         * po/POTFILES.in:
5111         * rhythmdb/rhythmdb-monitor.c:
5112         * rhythmdb/rhythmdb.c:
5113         * sources/Makefile.am:
5114         * widgets/Makefile.am: fix compilation after some CVS surgery was
5115         done.
5117 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5119         * bindings/python/rhythmdb.defs:
5120         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
5121         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
5122         (rhythmdb_query_deserialize):
5123         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
5124         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
5125         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
5126         (rhythmdb_entry_register_type_alias),
5127         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
5128         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
5129         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
5130         (rhythmdb_entry_podcast_feed_get_type),
5131         (rhythmdb_entry_import_error_get_type),
5132         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
5133         * rhythmdb/rhythmdb.h:
5134         Allocate a specified amount of extra memory for each db entry, to be
5135         used to store fields specific to the entry type.  Optionally associate
5136         a name with each entry type, to be used when saving entries and
5137         auto playlists to disk.  Allow entry types to have multiple names
5138         to handle older playlist files that used '0' to represent 'song'.
5139         Use private data to store podcast fields.
5141         * rhythmdb/rhythmdb-private.h:
5142         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5143         (rhythmdb_tree_parser_end_element), (save_entry),
5144         (rhythmdb_tree_entry_set):
5145         Simplify property handling by using existing code to convert
5146         properties from strings to GValues and to set properties on entries.
5147         Other assorted changes due to the above.
5149         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5150         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
5151         * sources/rb-generic-player-source.c:
5152         (rb_generic_player_source_new):
5153         * sources/rb-ipod-source.c: (rb_ipod_source_new):
5154         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
5155         * sources/rb-psp-source.c: (rb_psp_source_new):
5156         Update for changes to rhythmdb_entry_register_type.  None of these
5157         entry types need names or use private data.
5159         Fixes #337429.
5161 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5163         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5164         Fix creation of ignored-file db entries - need to check for
5165         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
5167 2006-05-25  James Livingston  <doclivingston@gmail.com>
5169         * AUTHORS:
5170         * MAINTAINERS: update my email address
5172 2006-05-25  James Livingston  <doclivingston@gmail.com>
5174         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
5175         "(... mix)" when searching for lyrics. Cache the lyrics under
5176         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
5178 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5180         * sources/rb-import-errors-source.c:
5181         (rb_import_errors_source_class_init):
5182         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5183         * sources/rb-browser-source.c: (rb_browser_source_class_init):
5184         * sources/rb-source.c: (rb_source_class_init),
5185         (default_move_to_trash):
5186         Implement the basic move-to-trash operation once in rb-source.c, 
5187         rather than in each source type that supports it.
5189         * plugins/ipod/rb-ipod-plugin.c:
5190         * shell/rb-removable-media-manager.c:
5191         * shell/rb-shell.c: (rb_shell_constructor):
5192         Only scan removable media once after loading plugins.  Add a flag
5193         plugins can use to check if the initial scan has been done.
5195         * data/rhythmbox.schemas:
5196         Enable ipod and generic-player plugins by default.
5197         
5198         * configure.ac:
5199         * data/ui/Makefile.am:
5200         * data/ui/generic-player-ui.xml:
5201         * data/ui/rhythmbox-ui.xml:
5202         * plugins/Makefile.am:
5203         * plugins/generic-player/Makefile.am:
5204         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
5205         * plugins/generic-player/rb-generic-player-plugin.c:
5206         * sources/Makefile.am:
5207         * sources/rb-generic-player-source.c:
5208         * sources/rb-generic-player-source.h:
5209         * sources/rb-nokia770-source.c:
5210         * sources/rb-nokia770-source.h:
5211         * sources/rb-psp-source.c: (visit_playlist_dirs):
5212         * sources/rb-psp-source.h:
5213         Pluginise generic player (and nokia770 and PSP) support and add
5214         move-to-trash for players not mounted read-only.
5215         Fixes #342868.
5217 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5219         * daapsharing/rb-daap-connection.c (handle_song_listing):
5220         Lower bound check for batch commit.  Fixes #342848
5222         * sources/rb-daap-source.c (rb_daap_source_get_status):
5223         Always set output variables if provided.
5225 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5227         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
5228         (rhythmdb_tree_entry_delete), (remove_one_song):
5229         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
5230         Fix two db entry reference counting problems.
5231         The initial reference on the entry is held by the db backend, but it
5232         was never being dropped.  The reference count was incremented when
5233         adding an entry to the deleted_entries map and to the
5234         deleted_entries_to_emit list, but only decremented for one of those.
5236 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5238         * daapsharing/rb-daap-connection.c (http_response_handler) 
5239         (rb_daap_connection_dispose):
5240         Call soup_session_abort to make sure there are no outstanding
5241         requests when we dispose of the connection.  Ignore cancelled
5242         messages in the callback.
5244 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5246         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
5247         (rb_daap_source_disconnect): Set a flag when disconnecting
5248         the source.  Check this flag in connection callback
5249         to see if we should release the connection.
5251 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5253         * daapsharing/Makefile.am:
5254         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
5255         (rb_daap_connection_class_init), (connection_connected),
5256         (connection_disconnected), (connection_operation_done),
5257         (build_message), (connection_set_error_message),
5258         (actual_http_response_handler), (http_get),
5259         (entry_set_string_prop), (emit_progress_idle),
5260         (handle_server_info), (handle_login), (handle_update),
5261         (handle_database_info), (handle_song_listing), (handle_playlists),
5262         (handle_playlist_entries), (handle_logout),
5263         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5264         (connection_response_data_free), (connected_cb),
5265         (rb_daap_connection_connect), (disconnected_cb),
5266         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5267         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5268         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5269         (rb_daap_connection_get_property):
5270         * daapsharing/rb-daap-connection.h:
5271         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5272         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5273         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5274         (rb_daap_hash_generate):
5275         * daapsharing/rb-daap-hash.h:
5276         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5277         (rb_daap_get_icon), (remove_source), (stop_browsing),
5278         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5279         (connection_connecting_cb), (connection_disconnected_cb),
5280         (release_connection), (rb_daap_source_connection_cb),
5281         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5282         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5284         Adds a better async API for connect and disconnect.  Doesn't share
5285         callback data for every async call.  Adds a connect signal.  Uses
5286         an operation-done signal to trigger the callbacks.  Displays an
5287         error when connections fail.  A few refcounting fixes to fix
5288         crashes.  Uses a weak pointer to set the connection to NULL so we
5289         don't clobber references.  Wait for each disconnect when shutting
5290         down sources.  Split out DAAP hash stuff into its own file.  Fix
5291         typo in header.
5293         Fixes #342643
5294         
5295 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5297         * sources/rb-auto-playlist-source.c:
5298         (rb_auto_playlist_source_new_from_xml):
5299         Initialize the gvalue used to hold the size limit correctly.
5300         Fixes #342744.
5302 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5304         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5305         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5306         * shell/rb-shell.h:
5307         * shell/rb-shell.xml:
5308         Convert rb_shell_quit into a dbus method, and add visibility dbus
5309         property.
5311 2006-05-22  James Livingston  <doclivingston@gmail.com>
5313         * rhythmdb/rhythmdb.h:
5314         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5315         (rhythmdb_entry_is_editable), (action_thread_main),
5316         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5317         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5318         false, and syncing into the file.
5320         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5321         (rhythmdb_entry_iradio_get_type),
5322         (rhythmdb_entry_import_error_get_type):
5323         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5324         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5325         change the DB.
5327 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5329         * rhythmdb/Makefile.am:
5330         * rhythmdb/rhythmdb-monitor.c:
5331         * rhythmdb/rhythmdb-private.h:
5332         * rhythmdb/rhythmdb-query.c:
5333         * rhythmdb/rhythmdb.c:
5334         Split up rhythmdb.c a bit.
5336 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5338         * data/glade/audioscrobbler-prefs.glade:
5339         Add a link to the last.fm server status page.
5341 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5343         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5344         Capitalization fix.
5345         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5346         (impl_create_configure_dialog):  UI layout fixes, remove
5347         dialog separator, and capitalization fix for window title.
5348         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5349         and remove dialog separator.
5350         * data/glade/plugins.glade:  UI layout fixes.
5351         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5352         and capitalization fix.  Fixes #342438.
5354 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5356         * data/glade/podcast-properties.glade:  Fix layout of the download 
5357         location.  Fixes #342431.
5359 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5361         * data/ui/rhythmbox-ui.xml:
5362         We only need one copy of the 'add to queue' action in the edit menu.
5364 2006-05-20  James Livingston  <doclivingston@gmail.com>
5366         * data/ui/rhythmbox-ui.xml:
5367         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5368         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5369         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5370         (rb_shell_clipboard_sync),
5371         (rb_shell_clipboard_cmd_add_to_playlist_new),
5372         (rb_shell_clipboard_cmd_queue_song_info),
5373         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5374         (rb_shell_clipboard_playlist_deleted_cb),
5375         (rb_shell_clipboard_playlist_renamed_cb),
5376         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5377         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5378         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5379         dynamically generated with all the static playlists. Fixes bug 323364.
5381         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5382         right child, so it doesn't go weird when art appears and disappears.
5384 2006-05-20  James Livingston  <doclivingston@gmail.com>
5386         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5388         * rhythmdb/rhythmdb-query-model.c:
5389         (rhythmdb_query_model_set_property),
5390         (rhythmdb_query_model_finalize),
5391         (rhythmdb_query_model_reapply_query_cb):
5392         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5393         (rhythmdb_query_append_prop_multiple),
5394         (rhythmdb_query_is_time_relative):
5395         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5396         time-based criteria, fixes bug 341131.
5398 2006-05-20  James Livingston  <doclivingston@gmail.com>
5400         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5401         we have already changed playing entries. Interpolate the art size so
5402         it doesn't jump when the old and new images have different aspect
5403         ratios.
5405 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5407         * rhythmdb/rhythmdb-private.h:
5408         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5409         (save_entry):
5410         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5411         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5412         (rhythmdb_entry_get_ulong):
5413         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5414         and elsewhere, use them on the stack rather than allocating on 
5415         the heap.  From bug #342333.
5417 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5419         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5420         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5421         (add_track), (eos_cb), (error_signal_idle),
5422         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5423         (rb_recorder_construct), (recorder_track_free),
5424         (rb_recorder_finalize):
5425         * sources/rb-playlist-source-recorder.c:
5426         Support libnautilus-burn size -> capacity API change.  Add
5427         some braces to blocks.
5429 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5431         * metadata/sj-metadata-musicbrainz.c:
5432         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5433         Sync with sound-juicer in CVS.  Fixes #342177
5434         * sources/rb-audiocd-source.c: Don't declare variables
5435         in the middle of a block (c99ism).  Fix order of #includes.
5436         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5437         one variable per line.  Update copyright date.
5439 2006-05-19  James Livingston  <doclivingston@gmail.com>
5441         patch by: Hendrik Richter  <hendi@gnome-de.org>
5443         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5444         "translator_credits" to a hyphen, so it doesn't cause problems for
5445         tools that check access keys. Fixes bug 341832.
5447 2006-05-19  James Livingston  <doclivingston@gmail.com>
5449         * po/POTFILES.in: remove references to files that don't exist any more
5450         (fixes make distcheck).
5452 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5454         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5455         Song Lyrics dialog. Fixes bug 342322.
5457 2006-05-19  James Livingston  <doclivingston@gmail.com>
5459         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5461         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5462         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5463         version checks not break when libnotify goes to 1.0.0. Fixes bug
5464         342244.
5466 2006-05-18  James Livingston  <doclivingston@gmail.com>
5468         * shell/rb-shell-clipboard.c:
5469         * shell/rb-shell.c:
5470         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5472 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5474         * sources/rb-playlist-source-recorder.c (get_song_description):
5475         Reverse artist and title in song description.  This
5476         is useful because at least the title will be visible
5477         when there is limited space.
5479 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5481         * daapsharing/rb-daap-connection.c: (connection_get_password):
5482         Take gdk lock before emitting authenticate signal.
5483         * sources/rb-daap-source.c: (connection_connecting_cb):
5484         Get rid of the unnecessary idle handler (it's already called from one)
5485         Fixes #342047 once more.
5487 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5489         * shell/rb-shell.c: (rb_shell_class_init):
5490         * shell/rb-shell.h:
5491         * widgets/rb-song-info.c: (rb_song_info_class_init),
5492         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5493         (rb_song_info_constructor), (rb_song_info_get_property),
5494         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5495         (rb_song_info_forward_clicked_cb):
5496         * widgets/rb-song-info.h:
5497         * data/glade/song-info-multiple.glade:
5498         * lib/rb-marshal.list:
5499         * bindings/python/Makefile.am:
5500         * bindings/python/rb.defs:
5501         * bindings/python/rb.override:
5502         Allow plugins to add pages to the notebooks used in song info windows,
5503         and to track the current song displayed in single-entry windows.
5504         
5505         * configure.ac:
5506         * plugins/Makefile.am:
5507         * plugins/lyrics/Loader.py:
5508         * plugins/lyrics/Makefile.am:
5509         * plugins/lyrics/lyrics.py:
5510         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5511         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5512         as a separate window (for the playing song) or as a page in the song
5513         info window.  A few TODO items left, but this fixes #319320.
5515 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5517         Patch by:  Roozbeh Pournader
5519         * configure.ac:
5520         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5521         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5523 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5524         
5525         * sources/rb-daap-source.c: (update_connection_status):
5526         Correct return value.  Fixes #342047 again.
5528 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5530         * sources/rb-daap-source.c: (update_connection_status),
5531         (connection_connecting_cb):
5532         Update status in an idle handler so we don't rely on the gdk lock
5533         being recursive (because it isn't any more).  Fixes #342047.
5535 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5537         * lib/rb-util.c: (rb_make_duration_string),
5538         (rb_make_elapsed_time_string):
5539         * lib/rb-util.h:
5540         Add a function for formatting an elapsed time string.
5542         * shell/rb-shell-player.c: (rb_shell_player_init),
5543         (rb_shell_player_sync_with_source),
5544         (rb_shell_player_get_playing_time_string), (tick_cb):
5545         Store elapsed time in the private data structure, and use the above
5546         function.
5547         
5548         * widgets/rb-header.c:
5549         * widgets/rb-header.h:
5550         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5551         object, so everything has the same idea of the elapsed time.
5552         Fixes #339693.
5554 2006-05-16  James Livingston  <doclivingston@gmail.com>
5556         * bindings/python/rhythmdb.defs:
5557         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5558         some parametre defaults, so you don't have to pass None, False for the
5559         sorting order.
5561 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5563         * bindings/python/rhythmdb.defs:
5564         * rhythmdb/rhythmdb-query-model.c:
5565         (rhythmdb_query_model_compute_status_normal):
5566         * rhythmdb/rhythmdb-query-model.h:
5567         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5568         * rhythmdb/rhythmdb.h:
5569         Change the various compute_status methods to accept a singular/plural
5570         pair to use in the status string.
5571         
5572         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5573         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5574         * sources/rb-source.c: (default_get_status):
5575         Call entries 'songs' by default, and 'episodes' in the podcast source.
5576         Fixes #340227.
5578 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5580         patch by:  Paul Drain
5582         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5583         Fixes #341817.
5585 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5587         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5588         Generate reorder maps correctly.
5589         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5590         Scroll to the first entry from the old selection.
5591         Fixes #322992.
5593 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5595         * data/ui/rhythmbox-ui.xml:
5596         * lib/rb-preferences.h:
5597         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5598         (rb_shell_playlist_created_cb),
5599         (rb_shell_view_sidepane_changed_cb),
5600         (rb_shell_sync_sidepane_visibility),
5601         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5602         (sidepane_visibility_changed_cb):
5603         * sources/rb-podcast-source.c:
5604         Convert sourcelist visibility to side-pane visbility.
5605         Fixes #339733
5607 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5609         * widgets/rb-header.c:
5610         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5611         'player', and make it use the private data structure allocated for it.
5613 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5615         * configure.ac: enable metadata helper with dbus < 0.35.
5617 2006-05-15  James Livingston  <doclivingston@gmail.com>
5619         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5621         * data/glade/song-info.glade:
5622         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5623         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5624         (rb_song_info_update_filesize): Add the file size into the song info
5625         window. Fixes bug 340861.
5627 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5629         * bindings/python/rhythmdb.defs:
5630         * rhythmdb/rhythmdb-query-model.c:
5631         (rhythmdb_query_model_set_property),
5632         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5633         * rhythmdb/rhythmdb-query-model.h:
5634         Add a new method to chain query models without importing entries from
5635         the parent into the child.  This is useful when the subset of entries
5636         in the child can be more easily determined by running a query than by
5637         filtering entries from the parent.
5639         * bindings/python/rb.defs:
5640         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5641         (rb_library_browser_set_property),
5642         (rb_library_browser_get_property), (rb_library_browser_new),
5643         (rebuild_child_model):
5644         * widgets/rb-library-browser.h:
5645         * sources/rb-auto-playlist-source.c:
5646         (rb_auto_playlist_source_constructor):
5647         * sources/rb-static-playlist-source.c:
5648         (rb_static_playlist_source_constructor):
5649         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5650         Use more efficient queries for constructing the browser query model
5651         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5652         backend to optimise the query) and run new queries rather than
5653         filtering entries from the parent.  Fixes #341402.
5655         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5657 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5659         * configure.ac:
5660         * shell/Makefile.am:
5661         * shell/main.c: (main), (load_uri_args), (send_present_message),
5662         (unregister_dbus_handler), (handle_dbus_message),
5663         (register_dbus_handler):
5664         Add minimal support for dbus 0.31 - 0.35.
5666         * doc/reference/Makefile.am:
5667         * doc/reference/rhythmbox.types:
5668         * data/Makefile.am:
5669         * data/GNOME_Rhythmbox.server.in:
5670         * data/rhythmbox.pc.in:
5671         * remote/*:
5672         * remote/bonobo/*:
5673         Remove remaining bonobo and generic remote interface files.
5675 2006-05-14  James Livingston  <doclivingston@gmail.com>
5677         * shell/rb-shell.c: (construct_widgets):
5678         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5679         resize the browser and queue-sidebar section of their panes, unless
5680         the other section is below the minimum size. Fixes bug 331927.
5682 2006-05-13  James Livingston  <doclivingston@gmail.com>
5684         * rhythmdb/rhythmdb-query-model.c:
5685         (rhythmdb_query_model_class_init),
5686         (rhythmdb_query_model_set_property),
5687         (rhythmdb_query_model_get_property),
5688         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5689         (rhythmdb_query_model_insert_into_main_list),
5690         (rhythmdb_query_model_insert_into_limited_list),
5691         (rhythmdb_query_model_do_reorder),
5692         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5693         (rhythmdb_query_model_location_sort_func),
5694         (rhythmdb_query_model_title_sort_func),
5695         (rhythmdb_query_model_album_sort_func),
5696         (rhythmdb_query_model_artist_sort_func),
5697         (rhythmdb_query_model_genre_sort_func),
5698         (rhythmdb_query_model_track_sort_func),
5699         (rhythmdb_query_model_double_ceiling_sort_func),
5700         (rhythmdb_query_model_ulong_sort_func),
5701         (rhythmdb_query_model_date_sort_func),
5702         (rhythmdb_query_model_string_sort_func):
5703         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5704         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5705         "data destroy" property. Fixed bug 341543.
5707         * bindings/python/rhythmdb.defs:
5708         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5709         rhythmdb_query_model_set_sorting_order
5711         * rhythmdb/rhythmdb-property-model.c:
5712         (rhythmdb_property_model_drag_data_get):
5713         * sources/rb-import-errors-source.c:
5714         (rb_import_errors_source_constructor):
5715         * sources/rb-missing-files-source.c:
5716         (rb_missing_files_source_constructor):
5717         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5718         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5719         * widgets/rb-entry-view.h: adapt to the above change.
5721 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5723         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5724         (rhythmdb_tree_load):
5725         Commit loaded entries in batches, rather than individually.  
5726         More startup time reduction.
5728 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5730         * doc/reference/Makefile.am: fix gtk-doc compilation
5732 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5734         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5735         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5736         * plugins/artdisplay/artdisplay/Loader.py:
5737         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5738         Only call the first artist the best match when album==Unknown.
5739         Don't perform each query twice if album doesn't include "Vol N".
5740         Fix searching for compilations.  Fix blacklisting.
5741         Part of bug #307848
5743 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5745         * Makefile.am:
5746         * bindings/python/Makefile.am:
5747         * bindings/python/rb.defs:
5748         * bindings/python/rb.override:
5749         * configure.ac:
5750         * doc/reference/Makefile.am:
5751         * plugins/Makefile.am:
5752         * plugins/audioscrobbler/Makefile.am:
5753         * plugins/ipod/Makefile.am:
5754         * plugins/lirc/Makefile.am:
5755         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5756         (impl_activate), (impl_deactivate):
5757         * plugins/sample/Makefile.am:
5758         * remote/Makefile.am:
5759         * shell/Makefile.am:
5760         * shell/main.c: (main), (main_shell_weak_ref_cb):
5761         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5762         (rb_shell_get_property), (rb_shell_window_state_cb),
5763         (idle_hide_mainwindow), (rb_shell_set_visibility),
5764         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5765         (rb_shell_set_song_property):
5766         * shell/rb-shell.h:
5767         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5768         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5769         (rb_tray_icon_get_property), (rb_tray_icon_new),
5770         (rb_tray_icon_button_press_event_cb),
5771         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5772         (rb_tray_icon_show_window_changed_cb):
5773         * shell/rb-tray-icon.h:
5775         Remove bonobo, require DBUS.
5776         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5777         Fixes #339720
5779 2006-05-13  James Livingston  <doclivingston@gmail.com>
5781         * bindings/python/rb.override: fix some pointer-type warnings
5783 2006-05-12  James Livingston  <doclivingston@gmail.com>
5785         * lib/rb-util.c: (rb_value_free):
5786         * lib/rb-util.h: Add function to unset and free a GValue* that was
5787         allocated in the heap.
5789         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5790         the metadata hastable values
5791         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5792         leak the metadata hashtable structure
5793         * metadata/rb-metadata-dbus.c:
5794         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5795         using g_strdup and then _take_string
5797         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5798         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5799         stat something.
5801         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5802         leak the encoded string
5804         * widgets/rb-property-view.c:
5805         (rb_property_view_selection_changed_cb): set some variables to have
5806         inital values, because some code paths may not set them before we use
5807         them.
5809         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5810         don't have python warning into a debug message".
5812 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5814         * data/rhythmbox.schemas: Use zero instead of null for
5815         default burn speed.  Fixes #341283.
5817 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5819         * bindings/python/rb.defs:
5820         * widgets/rb-library-browser.c:
5821         (rb_library_browser_get_property_view):
5822         * widgets/rb-library-browser.h:
5823         Add a method to get the property view for a given property.
5825         * sources/rb-browser-source.c:
5826         (rb_browser_source_cmd_choose_genre),
5827         (rb_browser_source_cmd_choose_artist),
5828         (rb_browser_source_cmd_choose_album):
5829         Change the browser selection by changing the property view selection. 
5830         Makes the selection change visible, fixing #331740.
5832 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5834         * bindings/python/rb.defs:
5835         * bindings/python/rb.override:
5836         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5837         * shell/rb-statusbar.c: (*),
5838         * sources/rb-import-errors-source.c: (impl_get_status):
5839         * sources/rb-iradio-source.c: (impl_get_status):
5840         * sources/rb-missing-files-source.c: (impl_get_status):
5841         * sources/rb-source.c: (default_get_status),
5842         (rb_source_get_status):
5843         * sources/rb-source.h:
5844         Allow sources to provide a progress value for the status bar.
5845         Simplify status bar processing (much less polling).
5846         Consider rhythmdb busy while it's still loading the database.
5848         * daapsharing/rb-daap-connection.c: (*)
5849         * daapsharing/rb-daap-connection.h:
5850         * lib/rb-marshal.list:
5851         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5852         (rb_daap_source_init), (connection_connecting_cb),
5853         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5854         (rb_daap_source_get_status):
5855         Provide status information for DAAP connections, and move processing
5856         of large responses into a separate thread.
5857         Fixes bugs #322020 and #338978.
5859 2006-05-09  James Livingston  <doclivingston@gmail.com>
5861         Split the artdisplay plugin into several files.
5862         Fix loader and amazon-search re-use issues.
5863         Add some better search heuristics.
5865         * configure.ac:
5866         * plugins/artdisplay/Makefile.am:
5867         * plugins/artdisplay/artdisplay.py:
5868         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5869         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5870         * plugins/artdisplay/artdisplay/Loader.py:
5871         * plugins/artdisplay/artdisplay/Makefile.am:
5872         * plugins/artdisplay/artdisplay/__init__.py:
5874 2006-05-09  James Livingston  <doclivingston@gmail.com>
5876         * sources/rb-browser-source.h: remove the _has_first_added_column
5877         stuff since it isn't actually used anywhere. Sources that want it
5878         should just add it themselves, as the library already does
5880         * bindings/python/rb.defs:
5881         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5882         * sources/rb-library-source.c: (rb_library_source_class_init):
5883         * sources/rb-removable-media-source.c:
5884         (rb_removable_media_source_class_init): Remove the remanants of the
5885         above.
5887 2006-05-09  James Livingston  <doclivingston@gmail.com>
5889         * bindings/python/rb.defs:
5890         * sources/rb-browser-source.h: remove a function that was declared in
5891         the header, but not defined anywhere.
5893 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5895         * plugins/artdisplay/.cvsignore:
5896         * plugins/ipod/.cvsignore: Added.
5898 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5900         * sources/rb-auto-playlist-source.c:
5901         (rb_auto_playlist_source_new_from_xml):
5902         Fix reading of older playlist files where all three limits were
5903         specified so we take the first nonzero limit.  From #341053.
5905 2006-05-09  James Livingston  <doclivingston@gmail.com>
5907         * bindings/python/Makefile.am:
5908         * bindings/python/rb.defs:
5909         * bindings/python/rb.override: bind RBBrowserSource,
5910         RBRemovableMediaSource and RBRemovableMediamanager.
5912 2006-05-09  James Livingston  <doclivingston@gmail.com>
5914         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5916         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5917         Fixes bug 339221.
5919 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5921         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5922         Don't explode when trying to edit a query with no limit set.
5924 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5926         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5927         Clear the should_queue flag when switching to a non-submittable entry,
5928         so we don't submit songs that played for three seconds before
5929         switching to a podcast episode.
5931         * rhythmdb/rhythmdb-query-model.c
5932         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5933         in the drag data list.
5935 2006-05-08  James Livingston  <doclivingston@gmail.com>
5937         * lib/rb-util.c: (rb_value_array_append_data):
5938         * lib/rb-util.h: add function which is basically a combination of
5939         G_VALUE_COLLECT and g_value_array_append.
5941         * rhythmdb/rhythmdb-query-model.h:
5942         * rhythmdb/rhythmdb-query-model.c:
5943         (rhythmdb_query_model_class_init),
5944         (rhythmdb_query_model_set_property),
5945         (rhythmdb_query_model_get_property),
5946         (rhythmdb_query_model_finalize),
5947         (rhythmdb_query_model_update_limited_entries),
5948         (rhythmdb_query_model_set_sort_order),
5949         (rhythmdb_query_model_within_limit),
5950         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5951         saner. Rather than having <count=N, time=N, size=N> we now have a
5952         <type, value> pair. This will also make it much easier to add new
5953         limit types in the future.
5955         * shell/rb-playlist-manager.c:
5956         (rb_playlist_manager_set_automatic_playlist),
5957         (rb_playlist_manager_cmd_edit_automatic_playlist):
5958         * sources/rb-auto-playlist-source.c:
5959         (rb_auto_playlist_source_finalize),
5960         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5961         (_save_write_ulong), (_save_write_uint64),
5962         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5963         (rb_auto_playlist_source_set_query),
5964         (rb_auto_playlist_source_get_query):
5965         * sources/rb-auto-playlist-source.h:
5966         * sources/rb-library-source.c:
5967         (rb_library_source_add_child_source):
5968         * sources/rb-psp-source.c: (visit_playlist_dirs):
5969         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5970         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5971         * widgets/rb-query-creator.h: Adapt to the above change.
5973 2006-05-08  James Livingston  <doclivingston@gmail.com>
5975         * shell/rb-playlist-manager.c:
5976         (rb_playlist_manager_cmd_edit_automatic_playlist):
5977         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5978         (rb_auto_playlist_source_set_query),
5979         (rb_auto_playlist_source_get_query): copy the query in the _get method
5980         and free it in things calling that. Fixes a crasher.
5982 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5984         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5985         Make entries on newly mounted volumes visible immediately, hiding them
5986         later if they turn out to be missing.  Fixes #340068.
5988 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5990         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5991         Ignore zip files and ignore errors for files we've decided to ignore.
5993 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5995         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5996         Add missing }, should fix #340844.
5998 2006-05-06  James Livingston  <doclivingston@gmail.com>
6000         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
6001         typo.
6003 2006-05-06  James Livingston  <doclivingston@gmail.com>
6005         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
6006         that we work with libnotify >= 0.4
6008 2006-05-06  James Livingston  <doclivingston@gmail.com>
6010         patch by: Joe Barnett  <thejoe@gmail.com>
6012         * configure.ac: check if we're using a version of libgpod that
6013         supports the Motorola ROKR
6015         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
6016         for the db path, if we using the newer version.
6018         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
6020 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6022         * rhythmdb/rhythmdb-query-model.c:
6023         (rhythmdb_query_model_drag_data_get):
6024         Use playback URI, not location, for drag data.  Fixes #322597.
6026 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
6028         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
6030 2006-05-03  James Livingston  <doclivingston@gmail.com>
6032         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
6033         (rb_add_id3_tagger), (rb_metadata_save):
6034         Set the tags on the tagging element when it is
6035         created, not during pipeline creation - which is required for
6036         dynamically created elements.
6038         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
6039         support for using the "vorbistag" element to re-tag ogg vorbis files.
6040         Fixes bug 339878.
6042 2006-05-03  James Livingston  <doclivingston@gmail.com>
6044         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
6046         * plugins/artdisplay/artdisplay.py:
6047         - Fix small bug callback of data loader getting overwritten on fast
6048         connections.
6049         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
6050         Jonathan Matthew)
6051         - Fix Rhythmbox UI blocking while loading/searching cover art
6052         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
6053         - Initial approach to allow additional "art search engines"
6054         - Further modularization in a couple of places
6055         - Minor fixes for empty entries (iradio, album, artist etc.)
6057 2006-05-03  James Livingston  <doclivingston@gmail.com>
6059         * shell/rb-playlist-manager.c:
6060         (rb_playlist_manager_playlist_entries_changed),
6061         (rb_playlist_manager_set_source): don't show the edit/delete/rename
6062         options for non-local sources, rather than showing disabled ones.
6064         * sources/rb-library-source.c: (add_child_sources_idle),
6065         (rb_library_source_constructor), (rb_library_source_new),
6066         (rb_library_source_library_location_changed),
6067         (rb_library_source_add_child_source),
6068         (rb_library_source_sync_child_sources): Create "child library" sources
6069         when the user has multiple library locations set. Fixes bug 100552.
6071 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6073         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
6074         * plugins/sample/sample.rb-plugin.desktop.in:
6075         Finish changing 'Author' to 'Authors'
6076         
6077         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
6078         (rhythmdb_entry_import_error_get_type):
6079         Implement get_playback_uri for import errors (returns NULL)
6081         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6082         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
6083         entry, rather than doing entry type checks.
6085 2006-05-02  James Livingston  <doclivingston@gmail.com>
6087         patch from Alessandro Decina  <alessandro@nnva.org>
6089         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
6090         the signal emission in the case of fatal-on-init errors. From bug
6091         322268.
6093 2006-05-02  James Livingston  <doclivingston@gmail.com>
6095         * rhythmdb/rhythmdb.h:
6096         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
6097         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
6098         (rhythmdb_entry_podcast_post_get_type),
6099         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
6100         virtual function to entry-types for getting the playback URI. From bug
6101         330226.
6103         * backends/gstreamer/rb-encoder-gst.c:
6104         (create_pipeline_and_source), (extract_track):
6105         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
6106         to get the URI.
6108 2006-05-02  James Livingston  <doclivingston@gmail.com>
6110         patch by: Brian Cameron  <brian.cameron@sun.com>
6112         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
6113         340337.
6115 2006-05-01  William Jon McCann  <mccann@jhu.edu>
6117         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
6118         instead of clear.  Use regex matching to strip "disc N"
6119         from album.  Match titles in ProductName.  Perform
6120         fallback queries including various artist compilations.
6121         Include "us" locale.  Improve queries when artist or album
6122         is unknown.  Use medium size image if large is unavailable.
6124         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
6125         William Jon McCann  <mccann@jhu.edu>
6126         
6127 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6129         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
6130         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
6131         (conjunctive_query): Sanity check.
6132         (evaluate_conjunctive_subquery): 
6133         Don't return TRUE immediately when a relative-time query criterion
6134         matches.  Fixes #339972.
6136 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6138         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6139         Don't crash if primary or secondary are NULL.
6141 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6143         * doc/reference/Makefile.am: fix gtk-doc build yet again
6145 2006-04-28  James Livingston  <doclivingston@gmail.com>
6147         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
6148         python console. Fixes bug 339934.
6150 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6152         * rhythmdb/rhythmdb-property-model.c:
6153         (rhythmdb_property_model_drag_data_get):
6154         When creating uri list drag data, create a new query model based on
6155         the query model the property model is attached to.  Makes the
6156         resulting query use the right entry type and include the upstream
6157         query criteria.  Fixes half of #327540.
6159 2006-04-27  James Livingston  <doclivingston@gmail.com>
6161         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
6162         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
6163         build fixes.
6165 2006-04-27  James Livingston  <doclivingston@gmail.com>
6167         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
6169 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6171         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
6172         (rb_playlist_manager_save_data),
6173         (rb_playlist_manager_save_playlists):
6174         * shell/rb-playlist-manager.h:
6175         * shell/rb-shell.c: (rb_shell_sync_state),
6176         (idle_save_playlist_manager):
6177         Remove a bit more threading insanity from the playlist manager.
6179 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6181         * shell/rb-playlist-manager.c: 
6182         * shell/rb-playlist-manager.h:
6183         Remove dead code, add gtk-doc, remove threading insanity (mostly).
6184         
6185         * shell/rb-shell.c: (rb_shell_sync_state),
6186         (idle_save_playlist_manager), (construct_sources),
6187         (rb_shell_select_source), (rb_shell_sync_party_mode):
6188         Adjustments for above changes.
6190 2006-04-26  William Jon McCann  <mccann@jhu.edu>
6192         * sources/rb-browser-source.c (impl_browser_toggled):
6193         Reset browser when hidden.  Fixes #339617.
6195 2006-04-26  James Livingston  <doclivingston@gmail.com>
6197         * backends/Makefile.am:
6198         * backends/gstreamer/Makefile.am: work again with separated
6199         built-roots
6201 2006-04-26  James Livingston  <doclivingston@gmail.com>
6203         * shell/rb-removable-media-manager.c:
6204         (rb_removable_media_manager_set_uimanager): fix compilation with
6205         -Werror and --enable-track-transfer.
6207 2006-04-26  James Livingston  <doclivingston@gmail.com>
6209         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
6210         implementing class. In theory allows alternate player implementations
6211         to be selected at run-time rather than compile-time. Fixes bug 338667.
6213         * Makefile.am:
6214         * backends/Makefile.am:
6215         * backends/gstreamer/Makefile.am:
6216         * backends/gstreamer/rb-player-gst.h:
6217         * backends/rb-player.c: (rb_player_interface_init),
6218         (rb_player_get_type), (rb_player_open), (rb_player_opened),
6219         (rb_player_close), (rb_player_play), (rb_player_pause),
6220         (rb_player_playing), (rb_player_set_volume),
6221         (rb_player_get_volume), (rb_player_set_replaygain),
6222         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
6223         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
6224         (_rb_player_emit_buffering), (_rb_player_emit_error),
6225         (_rb_player_emit_tick), (rb_player_error_quark):
6226         * player/Makefile.am:
6227         * player/rb-player-gst.c: (rb_player_gst_class_init),
6228         (rb_player_init), (tick_timeout), (rb_player_gst_init),
6229         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
6230         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
6231         (process_tag), (found_tag_cb), (buffering_cb),
6232         (rb_player_gst_bus_cb), (rb_player_gst_construct),
6233         (rb_player_gst_new):
6234         * player/rb-player.h:
6235         * shell/Makefile.am:
6236         * sources/rb-audiocd-source.c:
6237         * widgets/Makefile.am:
6238         * widgets/rb-header.c: (rb_header_class_init):
6240 2006-04-26  James Livingston  <doclivingston@gmail.com>
6242         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6243         don't try to download an episode if it couldn't be parsed. Fixes bug
6244         339712.
6246         * shell/rb-removable-media-manager.c:
6247         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
6248         Library" option when track transfer is disabled. Fixes bug 339728.
6250 2006-04-26  James Livingston  <doclivingston@gmail.com>
6252         * data/ui/Makefile.am:
6253         * data/ui/daap-ui.xml:
6254         * data/ui/rhythmbox-ui.xml:
6255         * sources/rb-daap-source.c: (rb_daap_sources_init),
6256         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
6257         way that the ipod ui is. Fixes bug 339743.
6259 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6261         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
6262         (process_added_entries_cb), (process_deleted_entries_cb),
6263         (rhythmdb_commit_internal): 
6264         Combine the idle functions to emit entry-added and entry-deleted,
6265         and combine as many invocations of same as possible.  Another
6266         significant reduction in startup time.
6267         
6268         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6269         Delay the next call to rhythmdb_process_events if the queue is
6270         empty or if we can't process any of the events in the queue because
6271         the database is read only.
6273         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6275 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6277         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6279         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6280         Don't special case errors quite so much.
6282 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6284         * data/rhythmbox.schemas: Remove default speed.
6286         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6287         Add n-c-b 2.15 support.  Make the default speed to slowest since
6288         that is all that works reliably.
6290 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6292         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6293         Fix compiler error from last commit.
6295 2006-04-25  James Livingston  <doclivingston@gmail.com>
6297         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6298         transcoding-related issues. From bug 322268.
6300         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6301         don't emit the signal, since the object is being finalised, which os a
6302         Bad Thing To Do.
6304         (profile_bin_find_encoder), (get_profile_from_mime_type),
6305         (transcode_track): find the encoding element by iterating looking for
6306         element in the class Codec/Encoder/Audio rather than the one named
6307         "enc".
6309 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6311         * shell/rb-shell-player.xml:
6312         * shell/rb-shell.xml:
6313         Add signal argument information.  
6314         Patch by Tim Moloney  <t.moloney@verizon.net>
6316         * shell/rb-shell.c: (rb_shell_window_state_cb):
6317         Use the right value for the visibility_changed signal.  Most of the
6318         time, anyway.
6320 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6322         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6323         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6324         (impl_create_configure_dialog):
6325         * data/glade/audioscrobbler-prefs.glade:
6326         * shell/rb-audioscrobbler.c (*):
6327         * lib/rb-preferences.h:
6328         * data/rhythmbox.schemas:
6329         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6330         Add status information (# tracks submitted, # queued, last submit
6331         time, result of last submission) to the plugin config window.
6332         Remove 'enabled' setting, since it's easier to just disable the
6333         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6334         nonexistant (so far) 'last.fm streaming' plugin.
6335         
6336         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6337         plugin
6339         Fixes some of #325848.  We still don't provide a way to view the
6340         submission queue.
6342 2006-04-25  James Livingston  <doclivingston@gmail.com>
6344         patch by: Anders Petersson  <demitar@worldforge.org>
6346         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6347         the YY-MM-DD format.
6349 2006-04-23  James Livingston  <doclivingston@gmail.com>
6351         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6352         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6353         * bindings/python/override_common.h:
6354         * bindings/python/rb.override: python binding fixes
6356 2006-04-23  James Livingston  <doclivingston@gmail.com>
6358         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6359         (rb_statusbar_sync_with_source),
6360         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6361         callback, rather than immediately every time. Takes ~5% off my warm-cache
6362         startup time.
6364         * bindings/python/rhythmdb.defs: fix the types using for
6365         RhythmDBEntryTypes.
6367 2006-04-22  James Livingston  <doclivingston@gmail.com>
6369         * data/ui/rhythmbox-ui.xml:
6370         * shell/rb-shell.c:
6371         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6372         (remove_source), (rb_daap_sources_init),
6373         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6374         (rb_daap_source_disconnect):
6375         * sources/rb-source.c: (rb_source_class_init),
6376         (rb_source_deactivate):
6377         * sources/rb-source.h: move the "disconnect" functionality from into
6378         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6380 2006-04-22  James Livingston  <doclivingston@gmail.com>
6382         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6383         actually get the translated strings for browser headers (they were
6384         already marked as translatable). Fixes bug 339380.
6386 2006-04-22  James Livingston  <doclivingston@gmail.com>
6388         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6389         submission timeout when the object is finalised.
6391         * bindings/python/Makefile.am:
6392         * bindings/python/rb.defs:
6393         * bindings/python/rb.override:
6394         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6396         * widgets/rb-library-browser.c:
6397         (rb_library_browser_construct_query), (rebuild_output_model),
6398         (rebuild_child_model):
6399         * widgets/rb-library-browser.h: change from GPtrArray to
6400         RhythmDBQuery (which in C is the same thing).
6402 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6404         * shell/rb-shell.c: (rb_shell_get_song_properties):
6405         Don't try to include entry-type (or anything else not easily
6406         marshallable) in the song properties hash table.
6408         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6410         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6411         (rb_playlist_source_constructor): Fix entry-type initialization as
6412         with previous commit.
6414 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6416         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6417         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6418         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6419         (rb_podcast_source_constructor):
6420         Set default values for entry-type after base class construction,
6421         rather than in _init, because gobject will set the entry-type property
6422         to NULL after _init if no value is provided.  Fixes #339206.
6424 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6426         patch by: Gunnar Steinn Magnusson
6428         * COPYING:
6429         * backends/gstreamer/rb-encoder-gst.c:
6430         * backends/gstreamer/rb-encoder-gst.h:
6431         * backends/rb-encoder.c:
6432         * backends/rb-encoder.h:
6433         * bindings/python/override_common.c:
6434         * bindings/python/override_common.h:
6435         * daapsharing/rb-daap-connection.c:
6436         * daapsharing/rb-daap-connection.h:
6437         * daapsharing/rb-daap-dialog.c:
6438         * daapsharing/rb-daap-dialog.h:
6439         * daapsharing/rb-daap-mdns-browser-avahi.c:
6440         * daapsharing/rb-daap-mdns-browser-howl.c:
6441         * daapsharing/rb-daap-mdns-browser.h:
6442         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6443         * daapsharing/rb-daap-mdns-publisher-howl.c:
6444         * daapsharing/rb-daap-mdns-publisher.h:
6445         * daapsharing/rb-daap-share.c:
6446         * daapsharing/rb-daap-share.h:
6447         * daapsharing/rb-daap-sharing.c:
6448         * daapsharing/rb-daap-sharing.h:
6449         * daapsharing/rb-daap-src.c:
6450         * daapsharing/rb-daap-src.h:
6451         * daapsharing/rb-daap-structure.c:
6452         * daapsharing/rb-daap-structure.h:
6453         * help/C/fdl-appendix.xml:
6454         * help/es/es.po:
6455         * help/ja/fdl-appendix.xml:
6456         * iradio/rb-new-station-dialog.c:
6457         * iradio/rb-new-station-dialog.h:
6458         * iradio/rb-station-properties-dialog.c:
6459         * iradio/rb-station-properties-dialog.h:
6460         * lib/mkdtemp.c:
6461         * lib/mkdtemp.h:
6462         * lib/rb-cut-and-paste-code.c:
6463         * lib/rb-cut-and-paste-code.h:
6464         * lib/rb-debug.c:
6465         * lib/rb-debug.h:
6466         * lib/rb-file-helpers.c:
6467         * lib/rb-file-helpers.h:
6468         * lib/rb-glade-helpers.c:
6469         * lib/rb-glade-helpers.h:
6470         * lib/rb-preferences.h:
6471         * lib/rb-proxy-config.c:
6472         * lib/rb-stock-icons.c:
6473         * lib/rb-stock-icons.h:
6474         * lib/rb-thread.c:
6475         * lib/rb-thread.h:
6476         * lib/rb-tree-dnd.c:
6477         * lib/rb-tree-dnd.h:
6478         * lib/rb-util.c:
6479         * lib/rb-util.h:
6480         * metadata/rb-metadata-common.c:
6481         * metadata/rb-metadata-dbus-client.c:
6482         * metadata/rb-metadata-dbus-service.c:
6483         * metadata/rb-metadata-dbus.c:
6484         * metadata/rb-metadata-dbus.h:
6485         * metadata/rb-metadata-gst.c:
6486         * metadata/rb-metadata.h:
6487         * metadata/sj-error.c:
6488         * metadata/sj-error.h:
6489         * metadata/sj-metadata-musicbrainz.c:
6490         * metadata/sj-metadata-musicbrainz.h:
6491         * metadata/sj-metadata.c:
6492         * metadata/sj-metadata.h:
6493         * metadata/sj-structures.c:
6494         * metadata/sj-structures.h:
6495         * metadata/test-metadata.c:
6496         * player/rb-player-gst.c:
6497         * player/rb-player.h:
6498         * player/rb-recorder-gst.c:
6499         * player/rb-recorder.h:
6500         * plugins/artdisplay/artdisplay.py:
6501         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6502         * plugins/ipod/rb-ipod-plugin.c:
6503         * plugins/lirc/rb-lirc-plugin.c:
6504         * plugins/pythonconsole/pythonconsole.py:
6505         * plugins/rb-module.c:
6506         * plugins/rb-module.h:
6507         * plugins/rb-plugin-manager.c:
6508         * plugins/rb-plugin-manager.h:
6509         * plugins/rb-plugin.c:
6510         * plugins/rb-plugin.h:
6511         * plugins/rb-plugins-engine.c:
6512         * plugins/rb-plugins-engine.h:
6513         * plugins/rb-python-module.c:
6514         * plugins/rb-python-module.h:
6515         * plugins/rb-python-plugin.c:
6516         * plugins/rb-python-plugin.h:
6517         * plugins/sample/rb-sample-plugin.c:
6518         * po/de.po:
6519         * po/el.po:
6520         * po/en_CA.po:
6521         * po/eu.po:
6522         * po/fi.po:
6523         * po/fr.po:
6524         * po/it.po:
6525         * po/ja.po:
6526         * po/mk.po:
6527         * po/pt_BR.po:
6528         * po/ru.po:
6529         * podcast/rb-feed-podcast-properties-dialog.c:
6530         * podcast/rb-feed-podcast-properties-dialog.h:
6531         * podcast/rb-new-podcast-dialog.c:
6532         * podcast/rb-new-podcast-dialog.h:
6533         * podcast/rb-podcast-manager.c:
6534         * podcast/rb-podcast-manager.h:
6535         * podcast/rb-podcast-parse.c:
6536         * podcast/rb-podcast-parse.h:
6537         * podcast/rb-podcast-properties-dialog.c:
6538         * podcast/rb-podcast-properties-dialog.h:
6539         * remote/bonobo/libmain.c:
6540         * remote/bonobo/rb-nautilus-context-menu.c:
6541         * remote/bonobo/rb-nautilus-context-menu.h:
6542         * remote/bonobo/rb-remote-bonobo.c:
6543         * remote/bonobo/rb-remote-bonobo.h:
6544         * remote/rb-remote-client-proxy.c:
6545         * remote/rb-remote-client-proxy.h:
6546         * remote/rb-remote-common.c:
6547         * remote/rb-remote-common.h:
6548         * remote/rb-remote-proxy.c:
6549         * remote/rb-remote-proxy.h:
6550         * rhythmdb/gsequence.c:
6551         * rhythmdb/gsequence.h:
6552         * rhythmdb/rb-refstring.c:
6553         * rhythmdb/rb-refstring.h:
6554         * rhythmdb/rhythmdb-gda.c:
6555         * rhythmdb/rhythmdb-gda.h:
6556         * rhythmdb/rhythmdb-private.h:
6557         * rhythmdb/rhythmdb-property-model.c:
6558         * rhythmdb/rhythmdb-property-model.h:
6559         * rhythmdb/rhythmdb-query-model.c:
6560         * rhythmdb/rhythmdb-query-model.h:
6561         * rhythmdb/rhythmdb-query-results.c:
6562         * rhythmdb/rhythmdb-query-results.h:
6563         * rhythmdb/rhythmdb-tree.c:
6564         * rhythmdb/rhythmdb-tree.h:
6565         * rhythmdb/rhythmdb.c:
6566         * rhythmdb/rhythmdb.h:
6567         * shell/main.c:
6568         * shell/rb-audioscrobbler.c:
6569         * shell/rb-audioscrobbler.h:
6570         * shell/rb-history.c:
6571         * shell/rb-history.h:
6572         * shell/rb-play-order-linear-loop.c:
6573         * shell/rb-play-order-linear-loop.h:
6574         * shell/rb-play-order-linear.c:
6575         * shell/rb-play-order-linear.h:
6576         * shell/rb-play-order-queue.c:
6577         * shell/rb-play-order-queue.h:
6578         * shell/rb-play-order-random-by-age-and-rating.c:
6579         * shell/rb-play-order-random-by-age-and-rating.h:
6580         * shell/rb-play-order-random-by-age.c:
6581         * shell/rb-play-order-random-by-age.h:
6582         * shell/rb-play-order-random-by-rating.c:
6583         * shell/rb-play-order-random-by-rating.h:
6584         * shell/rb-play-order-random-equal-weights.c:
6585         * shell/rb-play-order-random-equal-weights.h:
6586         * shell/rb-play-order-random.c:
6587         * shell/rb-play-order-random.h:
6588         * shell/rb-play-order-shuffle.c:
6589         * shell/rb-play-order-shuffle.h:
6590         * shell/rb-play-order.c:
6591         * shell/rb-play-order.h:
6592         * shell/rb-playlist-manager.c:
6593         * shell/rb-playlist-manager.h:
6594         * shell/rb-removable-media-manager.c:
6595         * shell/rb-removable-media-manager.h:
6596         * shell/rb-shell-clipboard.c:
6597         * shell/rb-shell-clipboard.h:
6598         * shell/rb-shell-player.c:
6599         * shell/rb-shell-player.h:
6600         * shell/rb-shell-preferences.c:
6601         * shell/rb-shell-preferences.h:
6602         * shell/rb-shell.c:
6603         * shell/rb-shell.h:
6604         * shell/rb-source-header.c:
6605         * shell/rb-source-header.h:
6606         * shell/rb-statusbar.c:
6607         * shell/rb-statusbar.h:
6608         * shell/rb-tray-icon.c:
6609         * shell/rb-tray-icon.h:
6610         * sources/rb-audiocd-source.c:
6611         * sources/rb-audiocd-source.h:
6612         * sources/rb-auto-playlist-source.c:
6613         * sources/rb-auto-playlist-source.h:
6614         * sources/rb-browser-source.c:
6615         * sources/rb-browser-source.h:
6616         * sources/rb-daap-source.c:
6617         * sources/rb-daap-source.h:
6618         * sources/rb-generic-player-source.c:
6619         * sources/rb-generic-player-source.h:
6620         * sources/rb-import-errors-source.c:
6621         * sources/rb-import-errors-source.h:
6622         * sources/rb-ipod-source.c:
6623         * sources/rb-ipod-source.h:
6624         * sources/rb-iradio-source.c:
6625         * sources/rb-iradio-source.h:
6626         * sources/rb-library-source.c:
6627         * sources/rb-library-source.h:
6628         * sources/rb-missing-files-source.c:
6629         * sources/rb-missing-files-source.h:
6630         * sources/rb-nokia770-source.c:
6631         * sources/rb-nokia770-source.h:
6632         * sources/rb-play-queue-source.c:
6633         * sources/rb-play-queue-source.h:
6634         * sources/rb-playlist-source-recorder.c:
6635         * sources/rb-playlist-source-recorder.h:
6636         * sources/rb-playlist-source.c:
6637         * sources/rb-playlist-source.h:
6638         * sources/rb-playlist-xml.h:
6639         * sources/rb-podcast-source.c:
6640         * sources/rb-podcast-source.h:
6641         * sources/rb-psp-source.c:
6642         * sources/rb-psp-source.h:
6643         * sources/rb-removable-media-source.c:
6644         * sources/rb-removable-media-source.h:
6645         * sources/rb-source.c:
6646         * sources/rb-source.h:
6647         * sources/rb-sourcelist-model.c:
6648         * sources/rb-sourcelist-model.h:
6649         * sources/rb-sourcelist.c:
6650         * sources/rb-sourcelist.h:
6651         * sources/rb-static-playlist-source.c:
6652         * sources/rb-static-playlist-source.h:
6653         * tests/test-cd.c:
6654         * tests/test-cmdline.c:
6655         * tests/test-rhythmdb-indexing.c:
6656         * tests/test-rhythmdb-query.c:
6657         * tests/test-rhythmdb-simple.c:
6658         * tests/test-rhythmdb-tree-deserialization.c:
6659         * tests/test-rhythmdb-tree-serialization.c:
6660         * tests/test-rhythmdb-view.c:
6661         * widgets/bacon-volume.c:
6662         * widgets/bacon-volume.h:
6663         * widgets/disclosure-widget.c:
6664         * widgets/disclosure-widget.h:
6665         * widgets/eel-gconf-extensions.c:
6666         * widgets/eel-gconf-extensions.h:
6667         * widgets/eggtrayicon.c:
6668         * widgets/eggtrayicon.h:
6669         * widgets/libsexy/sexy-icon-entry.c:
6670         * widgets/libsexy/sexy-icon-entry.h:
6671         * widgets/rb-cell-renderer-pixbuf.c:
6672         * widgets/rb-cell-renderer-pixbuf.h:
6673         * widgets/rb-cell-renderer-rating.c:
6674         * widgets/rb-cell-renderer-rating.h:
6675         * widgets/rb-dialog.c:
6676         * widgets/rb-dialog.h:
6677         * widgets/rb-druid.c:
6678         * widgets/rb-druid.h:
6679         * widgets/rb-entry-view.c:
6680         * widgets/rb-entry-view.h:
6681         * widgets/rb-header.c:
6682         * widgets/rb-header.h:
6683         * widgets/rb-library-browser.c:
6684         * widgets/rb-library-browser.h:
6685         * widgets/rb-property-view.c:
6686         * widgets/rb-property-view.h:
6687         * widgets/rb-query-creator-private.h:
6688         * widgets/rb-query-creator-properties.c:
6689         * widgets/rb-query-creator.c:
6690         * widgets/rb-query-creator.h:
6691         * widgets/rb-rating-helper.c:
6692         * widgets/rb-rating-helper.h:
6693         * widgets/rb-rating.c:
6694         * widgets/rb-rating.h:
6695         * widgets/rb-search-entry.c:
6696         * widgets/rb-search-entry.h:
6697         * widgets/rb-song-display-box.c:
6698         * widgets/rb-song-display-box.h:
6699         * widgets/rb-song-info.c:
6700         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6702 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6704         patch by: Gareth Murphy, James Livingston
6706         * bindings/python/rb.defs:
6707         * configure.ac:
6708         * plugins/Makefile.am:
6709         * plugins/artdisplay/Makefile.am:
6710         * plugins/artdisplay/artdisplay.py:
6711         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6712         * plugins/rb-python-module.c: (rb_python_module_init_python):
6713         * shell/rb-shell.c: (construct_widgets),
6714         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6715         (rb_shell_add_widget), (rb_shell_remove_widget),
6716         (rb_shell_ui_location_get_type):
6717         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6719 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6721         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6722         Fix build failure caused by the combination of the previous two
6723         commits.
6725 2006-04-20  James Livingston  <doclivingston@gmail.com>
6727         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6728         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6729         table to the entry types, which will allow us to get rid of some of
6730         the "if entry type == WHATEVER" code everywhere. From bug 
6732         * bindings/python/rb.defs:
6733         * bindings/python/rb.override:
6734         * bindings/python/rhythmdb.defs:
6735         * bindings/python/rhythmdb.override:
6736         * daapsharing/rb-daap-connection.c:
6737         (rb_daap_connection_class_init), (rb_daap_connection_init),
6738         (rb_daap_connection_set_property),
6739         (rb_daap_connection_get_property):
6740         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6741         * podcast/rb-podcast-manager.c:
6742         (rb_podcast_manager_entry_downloaded),
6743         (rb_podcast_manager_subscribe_feed),
6744         (rb_podcast_manager_db_entry_added_cb),
6745         (rb_podcast_manager_db_entry_deleted_cb),
6746         (rb_podcast_manager_insert_feed):
6747         * rhythmdb/rhythmdb-private.h:
6748         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6749         (conjunctive_query):
6750         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6751         (process_added_entries_cb), (rhythmdb_entry_allocate),
6752         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6753         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6754         (rhythmdb_process_metadata_load),
6755         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6756         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6757         (write_encoded_gvalue), (read_encoded_property),
6758         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6759         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6760         (rhythmdb_entry_iradio_get_type),
6761         (rhythmdb_entry_podcast_post_get_type),
6762         (rhythmdb_entry_podcast_feed_get_type),
6763         (rhythmdb_entry_import_error_get_type),
6764         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6765         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6766         (rhythmdb_entry_type_get_type):
6767         * rhythmdb/rhythmdb.h:
6768         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6769         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6770         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6771         (rb_shell_player_entry_activated_cb), (info_available_cb):
6772         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6773         (rb_shell_register_entry_type_for_source),
6774         (rb_shell_playing_from_queue_cb),
6775         (rb_shell_playing_entry_changed_cb),
6776         (rb_shell_player_stream_song_changed_cb),
6777         (rb_shell_jump_to_entry_with_source),
6778         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6779         (handle_playlist_entry_cb), (rb_shell_load_uri):
6780         * shell/rb-shell.h:
6781         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6782         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6783         (rb_browser_source_init), (rb_browser_source_set_property),
6784         (rb_browser_source_get_property):
6785         * sources/rb-ipod-source.c: (impl_paste):
6786         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6787         (rb_iradio_source_init), (rb_iradio_source_set_property),
6788         (rb_iradio_source_get_property):
6789         * sources/rb-library-source.c: (impl_paste):
6790         * sources/rb-missing-files-source.c:
6791         (rb_missing_files_source_class_init),
6792         (rb_missing_files_source_init),
6793         (rb_missing_files_source_set_property),
6794         (rb_missing_files_source_get_property):
6795         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6796         (rb_playlist_source_init), (rb_playlist_source_set_property),
6797         (rb_playlist_source_get_property):
6798         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6799         (rb_podcast_source_init), (rb_podcast_source_set_property),
6800         (rb_podcast_source_get_property):
6801         * sources/rb-static-playlist-source.c:
6802         (rb_static_playlist_source_add_location_internal):
6804 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6806         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6807         (rhythmdb_add_import_error_entry),
6808         (entry_volume_mounted_or_unmounted),
6809         (rhythmdb_volume_unmounted_cb):
6810         When a volume is unmounted, delete import errors for files stored on
6811         it.  When a volume is mounted, stat all tracks stored on it, rather
6812         than assuming they're present.  Fixes #339023.
6814 2006-04-20  James Livingston  <doclivingston@gmail.com>
6816         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6817         browser visibility for non-gconf-using sources (like playlists). Part
6818         of bug 118862.
6820         * shell/rb-source-header.c: (sourcestate_free),
6821         (rb_source_header_init), (rb_source_header_finalize),
6822         (rb_source_header_source_weak_destroy_cb): switch from storing the
6823         search string to storing a "source state" structure
6825         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6826         (rb_source_header_search_cb), (rb_source_header_clear_search),
6827         (rb_source_header_disclosure_toggled_cb): as well as storing the
6828         string, stop the visibility of the source's browser.
6830 2006-04-20  James Livingston  <doclivingston@gmail.com>
6832         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6833         library entries back into the library. Fixes bug 339065.
6835 2006-04-20  James Livingston  <doclivingston@gmail.com>
6837         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6838         only exists in glib 2.10.
6840 2006-04-20  James Livingston  <doclivingston@gmail.com>
6842         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6843         Solaris. From bug 335318.
6845         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6846         * shell/rb-audioscrobbler.c:
6847         * sources/rb-psp-source.c:
6849 2006-04-20  James Livingston  <doclivingston@gmail.com>
6851         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6852         issues for some people.
6854         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6855         accidental s/suffix/prefix/
6857         * sources/rb-auto-playlist-source.c:
6858         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6859         you from sorting playlists which aren't limited by time.
6861 2006-04-19  James Livingston  <doclivingston@gmail.com>
6863         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6864         duration or bitrate back to the file, since they are properties of the
6865         audio data, not tags we can set.
6867 2006-04-19  James Livingston  <doclivingston@gmail.com>
6869         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6870         of libtool, to fix builds which are using a different version. Fixes
6871         bug 338996.
6873         * shell/Makefile.am:
6875 2006-04-19  James Livingston  <doclivingston@gmail.com>
6877         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6878         to sync data to a file which is uneditable.
6880 2006-04-19  James Livingston  <doclivingston@gmail.com>
6882         patch by: Gavin Stewart  <gavin@brokentrain.net>
6884         * data/glade/playlist-save.glade:
6885         * data/glade/Makefile.am:
6886         * po/POTFILES.in: add the playlist saving dialog.
6888         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6889         (export_set_extension_cb), (filter_get_export_filter_label),
6890         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6891         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6892         formats (PLS and M3U at the moment). Fixes bug 316295.
6894 2006-04-19  James Livingston  <doclivingston@gmail.com>
6896         * shell/rb-playlist-manager.c:
6897         (rb_playlist_manager_set_source_internal): don't let you edit remove
6898         auto playlists.
6900         * sources/rb-auto-playlist-source.c:
6901         (rb_auto_playlist_source_set_query): correctly handle time-limited
6902         playlists.
6904 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6906         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6908         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6909         Don't crash if the queue file contains no newlines.
6910         Fixes #338924.
6912 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6914         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6915         condition
6917 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6919         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6920         case. Moreover, they may not exist yet, so take that into account when
6921         generating the iPod filename.
6923 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6925         * sources/rb-ipod-source.c: added support for drag and drop from the
6926         library to the iPod (only enabled if --enable-track-transfer was
6927         passed to configure)
6929 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6931         * configure.ac:
6932         * lib/rb-marshal.list:
6933         * lib/rb-util.c: 
6934         * lib/rb-util.h:
6935         * plugins/Makefile.am:
6936         * plugins/ipod/Makefile.am:
6937         * plugins/ipod/ipod.rb-plugin.desktop.in:
6938         * plugins/ipod/rb-ipod-plugin.c: 
6939         * plugins/rb-plugin.h:
6940         * shell/Makefile.am:
6941         * shell/rb-removable-media-manager.c:
6942         * shell/rb-removable-media-manager.h:
6943         * shell/rb-shell.c: 
6944         * sources/Makefile.am:
6945         * sources/rb-ipod-source.c: 
6946         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6947         various iPod related files should be moved to plugins/ipod/ now...
6949 2006-04-17  James Livingston  <doclivingston@gmail.com>
6951         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6952         and "vic".
6954         * help/C/figures/rb-iradio-main.png:
6955         * help/C/figures/rb-notification-area-menu.png:
6956         * help/C/figures/rb-notification-window.png:
6957         * help/C/figures/rb-notification-zone.png:
6958         * help/C/figures/rb-podcast-main.png:
6959         * help/C/figures/rb-statusbar.png:
6960         * help/C/figures/rb-volume-changer.png:
6961         * help/C/figures/rb-window-small.png:
6962         * help/C/figures/rb-window.png:
6963         * help/C/rhythmbox.xml:
6965 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6967         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6968         more obviously.
6970         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6971         (make_undecodable_error), (rb_metadata_gst_error_cb),
6972         (rb_metadata_gst_new_decoded_pad_cb),
6973         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6974         Ignore really small files (<4kB) for which typefinding fails.
6975         Always link decoded pads from decodebin to fakesink.
6976         Shut the pipeline down by posting an error on the bus when decodebin
6977         emits unknown-type signals.  Fixes bug #338062.
6979 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6981         * shell/rb-shell.c: (rb_shell_load_uri):
6982         Fix glaring mistakes in previous commit: actually pass arguments to
6983         rb_debug, and specify the right entry type when adding a new iradio
6984         station so we don't try to add local playlist files to the library.
6986 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6988         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6989         before trying to add them, as iradio streams often fail rb_uri_exists().
6991         * shell/rb-shell-player.c: (notify_playing_idle),
6992         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6993         (open_location_thread), (rb_shell_player_open_location),
6994         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6995         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6996         of all the stream URLs, and try them in turn.  If we get through the
6997         whole playlist too quickly, error out.  Various other fixes that make
6998         iradio work a lot better.
7000         * shell/rb-shell.c: (add_to_library_response_cb),
7001         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
7002         (handle_playlist_entry_cb), (rb_shell_load_uri):
7003         Add playlists containing streams as iradio stations.  If the playlist
7004         is local, add each stream URL, but if the playlist is remote, just add
7005         the playlist URL.
7006         
7007         * sources/rb-iradio-source.c: (new_station_location_added):
7008         Add new station URLs as-is, rather than parsing the playlist and
7009         adding the streams.
7010         
7011         * rhythmdb/rhythmdb-query-model.c:
7012         (rhythmdb_query_model_entry_changed_cb),
7013         (rhythmdb_query_model_emit_reorder),
7014         (rhythmdb_query_model_do_reorder):
7015         Emit row-changed notifications when an entry changes but is not
7016         reordered.
7018         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
7019         Display the playback error icon when the entry has an error and
7020         there's nothing else to display.
7021         
7022         Fixes bug #320336 and some of #324402.
7023         
7024 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7026         * sources/rb-ipod-source.c: use a GHashTable for the
7027         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
7028         time, this fixes compilation breakage for people not having libgpod
7029         CVS HEAD
7031 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
7033         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7035         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
7036         (rb_podcast_manager_insert_feed):
7037         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
7038         fixes bug 321945
7040 2006-04-16  James Livingston  <doclivingston@gmail.com>
7042         * sources/rb-library-source.c:
7043         (rb_library_source_library_location_cb): return FALSE like we are
7044         supposed to, not void.
7046         patch by: FreeBSD GNOME Project
7047         * configure.ac: fix some bash-isms.
7049         patch by: Pawel Worach  <pawel.worach@gmail.com>
7050         * metadata/rb-metadata-dbus-client.c:
7051         * rhythmdb/rhythmdb-query-model.c:
7052         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
7055 2006-04-16  James Livingston  <doclivingston@gmail.com>
7057         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
7058         for transcoding to RBEncoderGst.
7060         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
7061         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
7062         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
7063         (add_decoding_pipeline), (encoder_match_mime),
7064         (get_profile_from_mime_type), (extract_track), (transcode_track),
7065         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
7067 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7069         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
7070         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
7071         load_ipod_db_idle_cb to a new separate function
7073 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7075         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
7076         source
7078 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7080         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
7081         variables
7083 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7085         * data/ui/Makefile.am:
7086         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
7087         menu
7088         * lib/rb-util.c: check if the widget we got from the UI manager isn't
7089         NULL before using it as a popup menu
7090         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
7091         'eject' an iPod
7093 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7095         * sources/rb-ipod-source.c: when hal tells us a partition is on an
7096         iPod, check if it contains an iPod database before using it (in case
7097         the iPod was repartitionned somehow). Should fix bug #325034
7099 2006-04-16  Steve Frécinaux  <steve@istique.net>
7101         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
7103         * data/Makefile.am: install application icon into the default theme.
7105         * data/rhythmbox.desktop.in: don't specify icon file extension.
7106         
7107         * shell/main.c: (main): set default window icon from theme.
7108         
7109         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
7110         code concerning window icon, and fix leak by unreferencing the about
7111         logo pixbuf once it's not used anymore.
7113 2006-04-16  James Livingston  <doclivingston@gmail.com>
7115         * configure.ac: bump version to 0.9.4
7116         * NEWS: update NEWS and 0.9.4 insert translations
7118 2006-04-16  James Livingston  <doclivingston@gmail.com>
7120         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
7121         namespace automatically.
7123 2006-04-16  James Livingston  <doclivingston@gmail.com>
7125         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
7127         * doc/reference/Makefile.am:
7128         * doc/reference/rhythmbox.types: make distcheck work again
7130         * doc/reference/tmpl/eggnotificationbubble.sgml:
7131         * doc/reference/tmpl/eggtrayicon.sgml:
7132         * doc/reference/tmpl/rb-debug.sgml:
7133         * doc/reference/tmpl/rb-entry-view.sgml:
7134         * doc/reference/tmpl/rb-enums.sgml:
7135         * doc/reference/tmpl/rb-metadata.sgml:
7136         * doc/reference/tmpl/rb-new-station-dialog.sgml:
7137         * doc/reference/tmpl/rb-playlist-manager.sgml:
7138         * doc/reference/tmpl/rb-refstring.sgml:
7139         * doc/reference/tmpl/rb-shell-player.sgml:
7140         * doc/reference/tmpl/rb-shell-preferences.sgml:
7141         * doc/reference/tmpl/rb-shell.sgml:
7142         * doc/reference/tmpl/rb-song-info.sgml:
7143         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
7144         * doc/reference/tmpl/rb-statusbar.sgml:
7145         * doc/reference/tmpl/rhythmbox-unused.sgml:
7146         * doc/reference/tmpl/rhythmdb-query-model.sgml:
7147         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
7149 2006-04-16  James Livingston  <doclivingston@gmail.com>
7151         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
7153         * po/LINGUAS: don't split the variable across two lines, as it breaks
7154         the build. Fixes bug 338625.
7156 2006-04-15  James Livingston  <doclivingston@gmail.com>
7158         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
7159         add a "sourcelist-model" gobject property.
7161 2006-04-14  William Jon McCann  <mccann@jhu.edu>
7163         * .cvsignore:
7164         * backends/.cvsignore:
7165         * backends/gstreamer/.cvsignore:
7166         * bindings/.cvsignore:
7167         * bindings/python/.cvsignore:
7168         * help/es/.cvsignore:
7169         * metadata/.cvsignore:
7170         * plugins/.cvsignore:
7171         * plugins/audioscrobbler/.cvsignore:
7172         * plugins/lirc/.cvsignore:
7173         * plugins/pythonconsole/.cvsignore:
7174         * plugins/sample-python/.cvsignore:
7175         * plugins/sample/.cvsignore:
7176         * shell/.cvsignore:
7177         * widgets/libsexy/.cvsignore:
7178         Make CVS ignore files.
7180 2006-04-14  James Livingston  <doclivingston@gmail.com>
7182         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
7183         the track-loading thread hold a reference on the source, so it doesn't
7184         explode if the cd is removed before it is done. Fixes bug 337237.
7186 2006-04-14  James Livingston  <doclivingston@gmail.com>
7188         * bindings/python/override_common.c:
7189         (_helper_unwrap_pointer_pylist):
7190         * bindings/python/override_common.h:
7191         * bindings/python/rb.override:
7192         * bindings/python/rhythmdb.override: Bind some more functions and
7193         virtual functions.
7195         * shell/rb-shell.c: (rb_shell_select_source):
7196         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
7197         * sources/rb-audiocd-source.c:
7198         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
7199         * sources/rb-browser-source.c: (impl_get_search_actions):
7200         * sources/rb-iradio-source.c: (impl_get_ui_actions):
7201         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
7202         * sources/rb-playlist-source.c: (impl_get_ui_actions):
7203         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7204         (impl_get_search_actions):
7205         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
7206         the impl_get_ui_actions and impl_get_search_actions functions return
7207         lists that contain copies of the strings, instead of constant ones.
7208         Needed to bindings
7210 2006-04-14  James Livingston  <doclivingston@gmail.com>
7212         * bindings/python/rhythmdb.defs:
7213         * bindings/python/rhythmdb.override: fix the method argument format
7214         specifiers.
7216 2006-04-14  James Livingston  <doclivingston@gmail.com>
7218         * bindings/python/rhythmdb.defs:
7219         * bindings/python/rhythmdb.override:
7220         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
7221         (entry_to_rb_metadata), (record_entry_change),
7222         (rhythmdb_entry_set_visibility):
7223         * rhythmdb/rhythmdb.h:
7224         * shell/rb-shell.c: (rb_shell_get_song_properties): change
7225         rhythmdb_entry_get to take the db as the first parameter. Fixes the
7226         python bindings of it. The rhythmdb_entry_get_* ones are left the same
7227         since they are used in too many places, and not in the Python
7228         bindings.
7230 2006-04-13  William Jon McCann  <mccann@jhu.edu>
7232         * lib/rb-debug.c: (_rb_profile_log):
7233         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
7234         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7235         * shell/main.c: (main):
7236         * shell/rb-shell.c: (rb_shell_constructor),
7237         (rb_shell_set_visibility), (rb_shell_sync_window_state),
7238         (rb_shell_present):
7239         Fix profile output indentation.  Add more profiling points.
7240         Fixes part of #338114
7242 2006-04-13  James Livingston  <doclivingston@gmail.com>
7244         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
7245         library source being deleted, by setting the active source to NULL.
7246         From bug 338116.
7248 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7250         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7251         Update the last-seen string when hiddenness changes.
7253 2006-04-12  James Livingston  <doclivingston@gmail.com>
7255         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
7256         which caused the first-seen time to be reset when a metadata load was
7257         done. Fixes bug 336874.
7259         * shell/rb-shell.h: remove old function declaration.
7261         * bindings/python/rhythmdb.defs:
7262         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7264 2006-04-11  James Livingston  <doclivingston@gmail.com>
7266         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7267         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7268         interaction. Fixes bug 337999.
7270 2006-04-11  James Livingston  <doclivingston@gmail.com>
7272         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7273         track transfer. Fixes bug 338056.
7275         * shell/Makefile.am:
7277 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7279         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7281 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7283         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7284         (_rb_profile_log):
7285         * lib/rb-debug.h:
7286         * shell/rb-shell.c: (construct_db), (construct_widgets),
7287         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7288         Add profiling.  Fixes #337387
7290 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7292         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7293         * widgets/rb-header.c:
7294         Use italics for artist and album. Fixes #336748
7296 2006-04-10  James Livingston  <doclivingston@gmail.com>
7298         * Makefile.am:
7299         * backends/gstreamer/Makefile.am:
7300         * configure.ac:
7301         * data/glade/library-prefs.glade:
7302         * shell/Makefile.am:
7303         * shell/rb-removable-media-manager.c:
7304         * shell/rb-removable-media-manager.h:
7305         * sources/Makefile.am:
7306         * sources/rb-audiocd-source.c:
7307         * sources/rb-library-source.c: (rb_library_source_class_init),
7308         (rb_library_source_finalize), (impl_get_config_widget),
7309         (rb_library_source_preferences_sync), (impl_can_paste): add a
7310         --enable-track-transfer configure option, abd make cd ripping disabled
7311         by default.
7313         * shell/rb-source-header.c:
7314         * sources/rb-source.c: (rb_source_class_init),
7315         (rb_source_delete_thyself), (default_get_entry_view):
7316         * lib/rb-glade-helpers.c:
7317         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7318         some compiler warnings, and also bug 337427.
7320 2006-04-10  James Livingston  <doclivingston@gmail.com>
7322         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7323         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7324         if the gconf key is missing. Fixes bug 337742.
7326 2006-04-10  James Livingston  <doclivingston@gmail.com>
7328         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7329         to fix build problems I caused with a commit yesterday. Fixed bug
7330         337806.
7332         * daapsharing/rb-daap-mdns-browser-howl.c:
7333         (rb_daap_mdns_browser_class_init):
7334         * podcast/Makefile.am:
7335         * rhythmdb/Makefile.am:
7336         * widgets/eggtrayicon.h:
7338 2006-04-09  Steve Frécinaux  <steve@istique.net>
7340         * configure.ac:
7341         * po/LINGUAS:
7342         
7343         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7344         translators' life easier.
7346 2006-04-09  James Livingston  <doclivingston@gmail.com>
7348         * bindings/python/rb.defs:
7349         * bindings/python/rb.override: add bindings for most RBSource virtual
7350         functions.
7352         * sources/rb-source.h:
7353         * sources/rb-source.c: (rb_source_class_init): make
7354         impl_get_browser_key return a non-consht string, since Python can't
7355         really give us constant strings.
7357         * shell/rb-source-header.c: (rb_source_header_finalize),
7358         (rb_source_header_set_source_internal):
7359         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7360         * sources/rb-iradio-source.c: (impl_get_browser_key):
7361         * sources/rb-library-source.c: (impl_get_browser_key):
7362         * sources/rb-playlist-source.c:
7363         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7364         (rb_browser_source_state_prefs_sync):
7365         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7366         above change.
7368         * plugins/sample-python/sample-python.py: show how to add a new
7369         source.
7371 2006-04-09  James Livingston  <doclivingston@gmail.com>
7373         * daapsharing/Makefile.am:
7374         * daapsharing/rb-daap-connection.c:
7375         (rb_daap_connection_class_init):
7376         * daapsharing/rb-daap-marshal.list:
7377         * daapsharing/rb-daap-mdns-browser-avahi.c:
7378         (rb_daap_mdns_browser_class_init):
7379         * lib/rb-marshal.list:
7380         * player/Makefile.am:
7381         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7382         * player/rb-recorder-marshal.list:
7383         * podcast/Makefile.am:
7384         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7385         * podcast/rb-podcast-marshal.list:
7386         * rhythmdb/Makefile.am:
7387         * rhythmdb/rhythmdb-marshal.list:
7388         * rhythmdb/rhythmdb-query-model.c:
7389         (rhythmdb_query_model_class_init):
7390         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7391         into one file, as there is no point having several of them.
7393 2006-04-09  James Livingston  <doclivingston@gmail.com>
7395         * lib/Makefile.am:
7396         * lib/rb-enums.h:
7397         * widgets/Makefile.am:
7398         * widgets/eggnotificationbubble.c:
7399         * widgets/eggnotificationbubble.h:
7400         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7401         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7403         * rhythmdb/rhythmdb-property-model.h:
7404         * rhythmdb/rhythmdb-query-model.h:
7405         * rhythmdb/rhythmdb.h:
7406         * shell/rb-playlist-manager.h:
7407         * widgets/rb-cell-renderer-pixbuf.h:
7408         * widgets/rb-cell-renderer-rating.h:
7409         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7411 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7413         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7414         so we can build without a system-wide installed copy.
7416 2006-04-09  James Livingston  <doclivingston@gmail.com>
7418         * data/glade/general-prefs.glade:
7419         * data/rhythmbox.schemas:
7420         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7421         (rb_combo_box_hyphen_separator_func):
7422         * lib/rb-glade-helpers.h:
7423         * lib/rb-preferences.h:
7424         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7425         (rb_shell_preferences_sync),
7426         (rb_shell_preferences_toolbar_style_cb),
7427         (rb_shell_preferences_browser_views_activated_cb):
7428         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7429         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7430         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7432 2006-04-09  James Livingston  <doclivingston@gmail.com>
7434         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7435         data that MusicBrainz returns to us. Last part of bug 334167.
7437 2006-04-09  James Livingston  <doclivingston@gmail.com>
7439         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7440         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7442 2006-04-09  James Livingston  <doclivingston@gmail.com>
7444         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7445         the entry view properly when the rows are reordered. Fixes bug 337019.
7447 2006-04-09  James Livingston  <doclivingston@gmail.com>
7449         * configure.ac:
7450         * widgets/Makefile.am:
7451         * widgets/libsexy/Makefile.am:
7452         * widgets/libsexy/sexy-icon-entry.c:
7453         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7454         libsexy, and allow building against it or a system-wide installed
7455         copy.
7458         * widgets/rb-search-entry.c: (rb_search_entry_init),
7459         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7460         search box. Fixes bug 128109.
7462 2006-04-09  James Livingston  <doclivingston@gmail.com>
7464         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7466         * widgets/rb-entry-view.c: (rb_entry_view_init),
7467         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7468         and Pause icons rather than the volume ones in the Now Playing column.
7469         Closes bug 336482.
7471 2006-04-08  James Livingston  <doclivingston@gmail.com>
7473         * bindings/python/override_common.h:
7474         * bindings/python/rb.override:
7475         * bindings/python/rhythmdb.override: bind some more functions 
7477 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7479         * metadata/rb-metadata-dbus-service.c: (_send_error):
7480         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7481         are sent properly and we don't get 'method doesn't exist' messages
7482         from dbus instead.
7484 2006-04-08  James Livingston  <doclivingston@gmail.com>
7486         * bindings/python/override_common.h:
7487         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7488         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7489         more utility functions for C<->Python conversions
7491         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7492         (rb_entry_view_state_get_type):
7493         * widgets/rb-entry-view.h: make the colume type and entry view state
7494         GTypes
7496         * bindings/python/Makefile.am:
7497         * bindings/python/rb.defs:
7498         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7499         RBSource.
7501 2006-04-08  James Livingston  <doclivingston@gmail.com>
7503         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7504         initialiser for a GError
7506         * sources/rb-source.c: (rb_source_eof_type_get_type):
7507         * sources/rb-source.h: add a GType for RBSourceEOFType
7509         * bindings/python/Makefile.am:
7510         * bindings/python/rb.defs:
7511         * bindings/python/rb.override: bind RBSource and RBSourceList
7513 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7515         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7516         (rb_shell_player_get_property),
7517         (rb_shell_player_get_active_source),
7518         (rb_shell_player_set_playing_source_internal):
7519         * shell/rb-shell-player.h:
7520         Change 'playing-from-queue' from being a signal to being a property.
7522         * shell/rb-shell.c: (rb_shell_constructor),
7523         (rb_shell_playing_from_queue_cb),
7524         (rb_shell_view_queue_as_sidebar_changed_cb),
7525         (rb_shell_jump_to_entry_with_source):
7526         When the queue side pane is used, make 'jump to current' jump to the
7527         entry in the registered source for its type, rather than in the queue,
7528         and show it as playing in that source.
7529         
7530         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7531         * sources/rb-sourcelist.h:
7532         Remove the 'preempted source' stuff, since it wasn't doing anything
7533         anyway.
7535 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7537         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7538         (download_progress_cb): Canonicalise downloaded file location before
7539         setting the mountpoint property of the corresponding entry.
7540         Fixes #337287 and a couple of memory leaks.
7542 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7544         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7545         (test_load), (main): Call g_set_prgname, report errors more
7546         usefully in test mode.
7547         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7548         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7549         files.  Run the event loop when the state change fails so we get the
7550         error messages from the bus.  Fixes #336921.
7552 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7554         * data/art/Makefile.am: Install media-eject.
7556         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7557         return value of rb_file.
7559         Fixes #337209
7561 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7563         Patch by: William Jon McCann  <mccann@jhu.edu>
7565         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7566         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7567         Fix GError leak.
7569 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7571         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7572         Don't try to add a date when we don't have one.  Fixes #336741.
7574         Also fix variable declaration in middle of block.
7576 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7578         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7579         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7581 2006-04-02  James Livingston  <doclivingston@gmail.com>
7583         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7584         inverted logic causing imports to fail.
7586 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7588         * shell/main.c: (main): Fix dbusless build.
7590 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7592         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7593         wav header for non-gcc compilers (not tested much, was only written
7594         according to docs)
7596 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7598         * shell/main.c: (main): Check if we got a dbus connection before
7599         trying to create a proxy for the shell object.  Fixes #336634.
7601 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7603         * doc/reference/Makefile.am:
7604         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7605         * shell/rb-source-header.c:
7606         * sources/rb-generic-player-source.c:
7607         (default_transform_playlist_uri):
7608         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7609         <alexl@users.sourceforge.net>
7611 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7613         * configure.ac: Detect LIRC.
7614         
7615         * plugins/Makefile.am:
7616         * plugins/lirc/Makefile.am:
7617         * plugins/lirc/lirc.rb-plugin.desktop.in:
7618         * plugins/lirc/rb-lirc-plugin.c:
7619         LIRC plugin.
7621         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7622         Remove obsolete files.
7624 2006-04-02  James Livingston  <doclivingston@gmail.com>
7626         * sources/rb-generic-player-source.c:
7627         (default_transform_playlist_uri): consider playlist paths as relative
7628         to the volume root by default, since that is what most players use.
7630 2006-04-02  James Livingston  <doclivingston@gmail.com>
7632         * lib/rb-util.c: (rb_mime_get_friendly_name):
7633         * lib/rb-util.h: add helper function to get the "friendly" name for a
7634         mime-type
7636         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7637         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7638         the user better error messages about undecodable streams, using the
7639         "friendly" name if possible. Fixes bug 128109.
7641 2006-04-02  James Livingston  <doclivingston@gmail.com>
7643         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7644         (start_pipeline): fix building with gstreamer 0.8
7646 2006-04-02  James Livingston  <doclivingston@gmail.com>
7648         * sources/rb-podcast-source.c: (impl_delete),
7649         (rb_podcast_source_cmd_delete_feed),
7650         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7651         it, since it may change during traversal. Fixes bug 336204.
7653 2006-04-01  James Livingston  <doclivingston@gmail.com>
7655         * data/art/media-eject.png: add the media-eject icon from Banshee
7656         (BSD-licensed), for use when the user's icon theme doesn't have one.
7658         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7659         bug 334897.
7661 2006-04-01  James Livingston  <doclivingston@gmail.com>
7663         * shell/rb-shell-player.h:
7664         * shell/rb-shell-player.c: (rb_shell_player_play),
7665         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7666         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7667         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7669         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7670         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7671         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7673         * bindings/python/rb.defs: bind the above to Python, and remove some
7674         useless stuff from the bindings.
7676 2006-04-01  James Livingston  <doclivingston@gmail.com>
7678         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7679         number tag.
7681         * shell/rb-shell.c:
7682         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7684         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7685         to true.
7687         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7688         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7689         method assigning, so it's understandable
7691         * sources/rb-library-source.c: (rb_library_source_class_init),
7692         (impl_paste): rather than hard-coding the types to ignore, use
7693         rb_source_can_copy.
7695 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7697         * sources/rb-library-source.c:
7698         (rb_library_source_preferences_sync):
7699         Don't crash if no audio profile is selected and the gconf schemas are 
7700         not installed.
7702 2006-03-31  James Livingston  <doclivingston@gmail.com>
7704         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7705         "*" which caused compilation to fail
7707 2006-03-31  James Livingston  <doclivingston@gmail.com>
7709         * configure.ac:
7710         * Makefile.am:
7711         * backends/Makefile.am:
7712         * backends/gstreamer/Makefile.am:
7713         * backends/gstreamer/rb-encoder-gst.c:
7714         * backends/gstreamer/rb-encoder-gst.h:
7715         * backends/rb-encoder.c:
7716         * backends/rb-encoder.h: add a interface for transcoding, and a
7717         GStreamer implementation of it (based on Sound-Juicer's code).
7719         * shell/Makefile.am:
7720         * shell/rb-removable-media-manager.c:
7721         (rb_removable_media_manager_class_init),
7722         (rb_removable_media_manager_init),
7723         (rb_removable_media_manager_dispose),
7724         (rb_removable_media_manager_finalize),
7725         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7726         (progress_cb), (completed_cb), (do_transfer),
7727         (rb_removable_media_manager_queue_transfer), (copy_entry),
7728         (rb_removable_media_manager_cmd_copy_tracks):
7729         * shell/rb-removable-media-manager.h: use the encoder interface to
7730         perform transfers of entries to other locations
7732         * shell/rb-shell-player.c: (open_location_thread):
7733         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7734         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7735         (rb_shell_quit):
7736         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7737         progress in the status bar.
7739         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7740         (rb_shell_preferences_sync),
7741         (rb_shell_preferences_browser_views_activated_cb):
7742         * data/glade/general-prefs.glade: move the browser views setting from
7743         the library tab to the general one.
7745         * data/glade/library-prefs.glade: add settings for the layout of the
7746         user's library, and their preferred encoding format (e.g. for CD
7747         ripping).
7749         * lib/rb-preferences.h:
7750         * data/rhythmbox.schemas: add keys for the above options (and a few
7751         other minor ones)
7753         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7754         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7755         entry, that isn't inserted into the database.
7757         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7758         (rb_audiocd_create_track_entry):
7759         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7760         cds, and set the mime-type of audio cd tracks correctly.
7762         * sources/rb-library-source.c: (rb_library_source_class_init),
7763         (rb_library_source_finalize),
7764         (rb_library_source_edit_profile_clicked_cb),
7765         (impl_get_config_widget), (rb_library_source_preferences_sync),
7766         (impl_receive_drag), (rb_library_source_path_changed_cb),
7767         (rb_library_source_filename_changed_cb),
7768         (rb_library_source_format_changed_cb), (sanitize_path),
7769         (filepath_parse_pattern), (layout_example_label_update),
7770         (rb_library_source_layout_path_changed),
7771         (rb_library_source_layout_filename_changed), (build_filename),
7772         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7773         entries to the library. Large chunks of code for determining the
7774         destination file name stolen from Sound-Juicer.
7776         * sources/rb-sourcelist-model.c: (path_is_droppable):
7777         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7778         * sources/rb-static-playlist-source.c:
7779         (rb_static_playlist_source_class_init):
7780         * sources/rb-removable-media-source.c:
7781         (rb_removable_media_source_class_init):
7782         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7783         (rb_source_can_paste):
7784         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7785         than _can_copy) to determine whether we can paste into the source.
7788 2006-03-31  Steve Frécinaux  <steve@istique.net>
7790         * plugins/rb-python-module.c: allow import of python modules with a '.'
7791         (gedit's bug 336403). Patch by Johan Dahlin.
7793 2006-03-31  James Livingston  <doclivingston@gmail.com>
7795         * sources/rb-library-source.c: 
7796         * sources/rb-library-source.h:
7797         * sources/rb-browser-source.c:
7798         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7799         RBBrowserSource now contains all the stuff for having a source which
7800         views a particular entry type (including browsers and searching).
7801         RBLibrarySource derives from this, and includes the library-specific
7802         stuff, like importing and library watching. Fixes some issues where
7803         library-derived sources were doing things that should be
7804         library-specific. Fixes bug 335185.
7806         * data/ui/rhythmbox-ui.xml:
7807         * sources/Makefile.am: modifications for the above
7809         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7810         (rb_daap_source_get_paned_key):
7811         * sources/rb-daap-source.h:
7812         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7813         * sources/rb-removable-media-source.c:
7814         (rb_removable_media_source_class_init):
7815         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7816         instead of RBLibrarySource.
7818 2006-03-31  James Livingston  <doclivingston@gmail.com>
7820         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7821         I buggered up when changing from GnomeVFSFileSize.
7823 2006-03-30  James Livingston  <doclivingston@gmail.com>
7825         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7826         for "-Wno-error".
7828         * bindings/python/rb.override:
7829         * bindings/python/Makefile.am: make the RB python bindings depend on
7830         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7831         code sometimes emits warnings.
7833         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7834         (rb_shell_player_error_get_type):
7835         * shell/rb-shell-player.h:
7836         * bindings/python/rb.defs: add bindings for RBShellPlayer
7838         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7839         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7840         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7841         * rhythmdb/rhythmdb.h:
7842         * shell/rb-shell.c: (rb_shell_get_song_properties):
7843         * widgets/rb-entry-view.c: (propid_from_name):
7844         * widgets/rb-property-view.c: (rb_property_view_class_init):
7845         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7846         than just plain GPtrArray, and add bindings for it.
7848         * bindings/python/rhythmdb.override: wrap some functions that use
7849         GValues
7851 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7853         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7854         Only watch directories from which entries of type SONG have been
7855         added.
7857 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7859         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7860         No need to restore the selection after rebuilding the child model,
7861         since that can't have changed the selection.
7863 2006-03-29  James Livingston  <doclivingston@gmail.com>
7865         * bindings/python/override_common.c:
7866         * bindings/python/override_common.h: add some for missing files to
7867         cvs.
7869 2006-03-29  James Livingston  <doclivingston@gmail.com>
7871         * configure.ac:
7872         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7873         copied from gedit's autofoo and we don't need it
7875         * bindings/python/rhythmdb.defs:
7876         * bindings/python/rhythmdb.override: add missing files to cvs
7878 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7880         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7881         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7882         before running any of the debug/test modes.
7883         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7884         Make plugin loading work when running uninstalled from the shell/
7885         directory.
7887 2006-03-29  James Livingston  <doclivingston@gmail.com>
7889         * rhythmdb/rhythmdb-property-model.c:
7890         (rhythmdb_property_model_sync),
7891         (rhythmdb_property_model_column_get_type):
7892         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7894         * rhythmdb/rhythmdb-private.h:
7895         * rhythmdb/rhythmdb-query-model.c:
7896         (rhythmdb_query_model_class_init):
7897         * rhythmdb/rhythmdb-query-model.h:
7898         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7899         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7900         (rhythmdb_entry_get_type):
7901         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7903         * widgets/rb-query-creator-properties.c:
7904         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7905         was missing.
7907         * bindings/python/Makefile.am:
7908         * bindings/python/rb.defs:
7909         * bindings/python/rb.override:
7910         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7911         Python bindings for RhythmDB.
7913 2006-03-29  James Livingston  <doclivingston@gmail.com>
7915         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7916         sharing when using --no-registration
7918 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7920         * rhythmdb/rhythmdb-query-model.c:
7921         (rhythmdb_query_model_reapply_query):
7922         Don't remove entries while iterating, as it breaks the sequence
7923         nodes.  Instead, collect a list of removed entries and process it
7924         after iterating the sequence.  Fixes #334642.
7926 2006-03-29  James Livingston  <doclivingston@gmail.com>
7928         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7929         (row_activated_cb), (plugin_manager_toggle_all):
7930         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7931         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7932         (button_press_cb), (source_name_edited_cb):
7933         * widgets/rb-property-view.c: (rb_property_view_set_property),
7934         (rb_property_view_post_row_deleted_cb),
7935         (rb_property_view_row_activated_cb),
7936         (rb_property_view_selection_changed_cb),
7937         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7938         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7940 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7942         * rhythmdb/rhythmdb-query-model.c:
7943         (rhythmdb_query_model_drag_data_received):
7944         Increment the reference count for entries added by drag and drop.
7945         Fixes #336045.
7947 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7949         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7950         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7951         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7953 2006-03-27  James Livingston  <doclivingston@gmail.com>
7955         * shell/rb-shell.c: (rb_shell_constructor),
7956         (rb_shell_sync_window_state): fix a maximise-realise race that would
7957         cause some widgets to be resized after we had explicity set theri
7958         size. Hopefully fixes bug 331927.
7960 2006-03-27  James Livingston  <doclivingston@gmail.com>
7962         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7963         (row_activated_cb), (plugin_manager_set_active),
7964         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7965         configure button sensitivity when a plugin is enabled/disabled.
7967 2006-03-27  James Livingston  <doclivingston@gmail.com>
7969         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7970         stop warnings, only the vbos is used anyway
7972         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7973         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7974         collection every now an then.
7976         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7977         if we are finalising because the python object couldn't be created.
7979         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7980         NULL if the python-side object couldn't be created. Stops crashes when
7981         the object is later used when it doesn't exist in Python.
7983         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7984         (rb_python_shutdown): do better garbage collection when shutting down.
7985         Fixes the problem where Python was holding a reference to the shell,
7986         causing RB not to exit.
7988 2006-03-27  James Livingston  <doclivingston@gmail.com>
7990         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7991         336131.
7993 2006-03-27  James Livingston  <doclivingston@gmail.com>
7995         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7996         From bug 334829.
7998 2006-03-26  James Livingston  <doclivingston@gmail.com>
8000         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
8001         library location list to NULL after we free it. Fixes bug 336047.
8003 2006-03-26  James Livingston  <doclivingston@gmail.com>
8005         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8007         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
8008         supplies. Fixes bug 335947.
8010 2006-03-25  James Livingston  <doclivingston@gmail.com>
8012         * data/glade/audioscrobbler-prefs.glade:
8013         * shell/rb-audioscrobbler.c:
8014         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
8015         "submit songs" checkbox, and make it not disable username/password
8016         entry. This will be needed when we support other last.fm stuff
8017         (profile access, radio, etc).
8019 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
8021         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
8022         Volume should not display stock_volume-0 for volume > 0. Fixes bug
8023         335777.
8025 2006-03-24  James Livingston  <doclivingston@gmail.com>
8027         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8028         (rb_shell_player_sync_play_order),
8029         (rb_shell_player_play_order_update_cb),
8030         (actually_set_playing_source): update the next/previous availablility
8031         in places where it was missing. Fixes bug 335490.
8033 2006-03-24  James Livingston  <doclivingston@gmail.com>
8035         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
8036         can't find the widget
8038         * lib/rb-util.c: (rb_uri_list_parse):
8039         * lib/rb-util.h: add function for parsing a URI list into strings.
8041         * metadata/Makefile.am: make the metdata helper build when linking
8042         with --as-needed
8044         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
8045         g_mkdir_with_parents instead of coding our own.
8047         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
8048         <itunes:author> over <generator>, instead of using whichever comes
8049         last.
8051         * rhythmdb/rhythmdb-private.h:
8052         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
8053         field, as we don't ever check it (to detect corruption). Saves a bit
8054         of memory.
8056 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8058         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
8059         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
8060         Escape '&' and '=' in the paths we get back from
8061         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
8063 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8065         * shell/rb-shell.c: (rb_shell_constructor):
8066         Issue startup notification after creating the main window, so
8067         notification is issued whether the window is visible or not.
8068         Fixes #335086.
8070 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8072         * sources/rb-auto-playlist-source.c: (impl_search),
8073         (rb_auto_playlist_source_query_complete_cb),
8074         (rb_auto_playlist_source_do_query):
8075         * sources/rb-library-source.c: (impl_search),
8076         (rb_library_source_query_complete_cb),
8077         (rb_library_source_do_query):
8078         Defer subset searches (where text is appended to an existing search)
8079         until the original query is complete.
8081 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
8083         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
8085         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8086         (rb_refstring_get_sort_key): fixes for strict-aliasing
8088 2006-03-21  James Livingston  <jrl@ids.org.au>
8090         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
8091         importing a single file. Fixes bug 335307.
8093 2006-03-21  James Livingston  <jrl@ids.org.au>
8095         * shell/Makefile.am: remove the reference to backends/ that I
8096         accidently included.
8098 2006-03-21  James Livingston  <jrl@ids.org.au>
8100         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
8101         with Forte (on Solaris). Closes bug 335318.
8103         * configure.ac:
8104         * lib/Makefile.am:
8105         * player/rb-recorder-gst.c:
8106         * podcast/rb-podcast-parse.c:
8107         * remote/bonobo/Makefile.am:
8108         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
8109         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
8110         (rhythmdb_query_model_add_entry),
8111         (rhythmdb_query_model_add_results):
8112         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
8113         * rhythmdb/rhythmdb.h:
8114         * shell/Makefile.am:
8115         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
8116         (update_speed_combobox):
8117         * sources/rb-sourcelist-model.c:
8119 2006-03-21  James Livingston  <jrl@ids.org.au>
8121         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8123         * player/Makefile.am:
8124         * shell/Makefile.am: work correctly with a separate build root.
8126 2006-03-21  James Livingston  <jrl@ids.org.au>
8128         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
8129         get handed NULL.
8131 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8133         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
8134         Only create ignore entries when importing into the library.  
8135         Ignore entries for files in removable media sources don't help.
8137 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8139         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
8140         * shell/rb-source-header.h:
8141         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
8142         * widgets/rb-search-entry.h:
8143         Add functions to make the search box grab focus.
8145         * shell/rb-shell.c: (rb_shell_cmd_view_all):
8146         Focus the search box after handling the 'view all' action.
8148 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8150         * rhythmdb/rhythmdb.h:
8151         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8152         (rhythmdb_execute_multi_stat_info_cb),
8153         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
8154         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
8155         (action_thread_main):
8156         Collect all the get_file_info requests on startup into one gnome-vfs
8157         job to reduce overhead and avoid contention for the rhythmdb lock.
8158         Add a new method to call when all initial query models are set up.
8159         
8160         * shell/rb-shell.c: (idle_handle_load_complete):
8161         Call rhythmdb startup complete function when we've loaded all the
8162         playlists.  Fixes #334106.
8164 2006-03-20  James Livingston  <jrl@ids.org.au>
8166         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
8167         (rb_entry_view_selection_changed_cb),
8168         (rb_entry_view_have_complete_selection): make has_complete_selection
8169         not slow. Fixes a performance issue I added a week or so ago.
8171 2006-03-20  James Livingston  <jrl@ids.org.au>
8173         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
8174         before passing to strcmp. From bug 334559.
8176 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8178         * configure.ac:
8179         * lib/Makefile.am:
8180         * lib/rb-proxy-config.c:
8181         * lib/rb-proxy-config.h:
8182         Add a new object to watch the HTTP proxy configuration and emit
8183         signals when it changes.
8185         * shell/rb-audioscrobbler.c:
8186         * shell/rb-audioscrobbler.h:
8187         Use rb-proxy-config to watch HTTP proxy configuration.
8189         * shell/rb-shell.c:
8190         Construct rb-proxy-config object on startup, and remove all
8191         audioscrobbler references.
8193         * shell/Makefile.am:
8194         * plugins/audioscrobbler/Makefile.am:
8195         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
8196         Move all audioscrobbler code into the plugin.  We should move
8197         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
8198         point.  Don't use a private data structure in the plugin, since the
8199         class definition isn't in a header file.  Fixes #335091.
8201 2006-03-20  James Livingston  <jrl@ids.org.au>
8203         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
8204         don't enable Next if the source has an EOS type other than
8205         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
8207 2006-03-20  James Livingston  <jrl@ids.org.au>
8209         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
8210         (rb_song_info_forward_clicked_cb): deal with there being no
8211         next/previous entry.
8213         (rb_song_info_query_model_inserted_cb),
8214         (rb_song_info_query_model_deleted_cb),
8215         (rb_song_info_query_model_reordered_cb),
8216         (rb_song_info_query_model_changed_cb): monitor the query for changes,
8217         to update the button status. Fixes bug 333293.
8219 2006-03-20  James Livingston  <jrl@ids.org.au>
8221         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
8222         caused by my last commit
8224 2006-03-20  James Livingston  <jrl@ids.org.au>
8226         * bindings/python/Makefile.am:
8227         * bindings/python/rb.defs:
8228         * bindings/python/rb.override: add python bindings of RBRemoteProxy
8230         * shell/rb-shell.c: (rb_shell_constructor),
8231         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
8232         tray-icon detection slightly
8234 2006-03-19  Steve Frécinaux  <steve@istique.net>
8236         * data/ui/rhythmbox-ui.xml:
8237         * shell/rb-shell.c:
8239         Add an empty Tool Menu (hidden by default) containing placeholders for
8240         plugins.
8242         * configure.ac:
8243         * plugins/Makefile.am:
8244         * plugins/pythonconsole/Makefile.am:
8245         * plugins/pythonconsole/pythonconsole.py:
8246         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
8247         
8248         Python Console plugin
8250 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8252         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
8253         Extra step to encode '&' and '=' to match what gnome-vfs does
8254         internally.
8255         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8256         (rhythmdb_tree_save):
8257         Increment rhythmdb xml version to 1.2, and force another uri
8258         re-canonicalisation when loading v1.1 databases.
8259         Fixes bug #333998.
8261 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8263         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8264         (avahi_client_init), (browse_cb):
8265         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8266         (avahi_client_init):
8267         Fix compilation with Avahi 0.5.x (bug #334551).
8269 2006-03-19  James Livingston  <jrl@ids.org.au>
8271         Add Increase/Decrease Volume menu items and keybindings. From bug
8272         123383.
8274         * data/ui/rhythmbox-ui.xml:
8275         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8276         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8277         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8279 2006-03-19  James Livingston  <jrl@ids.org.au>
8281         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8283         * shell/Makefile.am: fix the link order, so that we compile with
8284         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8286 2006-03-19  James Livingston  <jrl@ids.org.au>
8288         patch by: Adam Petaccia  <adam@tpetaccia.com>
8290         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8291         plugins". Fixes bug 335037.
8293 2006-03-18  James Livingston  <jrl@ids.org.au>
8295         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8296         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8297         332992.
8299         * widgets/rb-header.c: don't make artist/album info in the header the
8300         small size, since it's hard to read.
8302 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8304         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8305         (rhythmdb_finalize): Don't leak the hash tables.
8306         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8307         (rhythmdb_commit_internal): Make sure to process the deletions.
8308         (rhythmdb_entry_delete): Use a hash.
8310         * podcast/rb-podcast-manager.c: Random analness about char*
8311         (rb_podcast_manager_remove_feed): Add debugging.
8312         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8313         the result of gnome_vfs_unlink.  Don't leak a uri.
8315         Fixes #334786
8317 2006-03-18  James Livingston  <jrl@ids.org.au>
8319         * NEWS: update NEWS file
8321 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8323         * rhythmdb/rhythmdb-property-model.c:
8324         (rhythmdb_property_model_prop_changed_cb):
8325         Remove entries from the hash table after processing visible->hidden
8326         changes.
8328 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8330         * sources/rb-daap-source.c (connection_connected_cb) 
8331         (connection_disconnected_cb): Add debug.
8332         (rb_daap_source_get_headers): Check for NULL connection.
8334         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8335         Check return value of rb_daap_source_get_headers.
8337         Fixes #332089
8339 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8341         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8342         Restore the selection after rebuilding the child model, so the
8343         selection is shown correctly after using the 'browse this
8344         album/artist/genre' menu items.
8346 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8348         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8349         Clear the selection before changing the active model.
8350         Fixes crash reported in bug 334549.
8352 2006-03-15  James Livingston  <jrl@ids.org.au>
8354         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8355         (rb_tray_icon_sync_action):
8356         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8357         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8358         for non-libnotify notification bubbles. Fixes bug 331721.
8360 2006-03-15  James Livingston  <jrl@ids.org.au>
8362         Add search-bar options to playlists. Fixes bug 334407.
8364         * sources/rb-auto-playlist-source.c:
8365         (rb_auto_playlist_source_class_init),
8366         (rb_auto_playlist_source_constructor),
8367         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8368         (search_action_to_prop), (search_action_changed):
8369         * sources/rb-static-playlist-source.c:
8370         (rb_static_playlist_source_class_init),
8371         (rb_static_playlist_source_constructor),
8372         (construct_query_from_selection), (impl_get_search_actions),
8373         (search_action_to_prop), (search_action_changed):
8375 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8377         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8378         Remove broken attempt at making the search bar buttons not
8379         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8381 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8383         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8384         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8386 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8388         * widgets/rb-header.c (rb_header_sync): Escape album and
8389         artist before adding to markup.
8391 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8393         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8394         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8395         (rb_header_set_property), (rb_header_get_property),
8396         (rb_header_sync):
8397         Remove the GnomeUrl song links until we can do it properly.
8398         Fixes #334453.
8400 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8402         * shell/rb-source-header.c: (rb_source_header_clear_search):
8403         Remove the stored search text from the hash table, so it doesn't
8404         reappear after switching to another source and back.
8406         * sources/rb-auto-playlist-source.c: (impl_search):
8407         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8408         * sources/rb-static-playlist-source.c: (impl_search):
8409         Make sure all sources treat impl_search(NULL) and impl_search("") the
8410         same.  Fixes #334525.
8412 2006-03-14  James Livingston  <jrl@ids.org.au>
8414         Store which thread created new entries, and make rhythmdb_commit only
8415         insert the entries for the thread that calls it. This stops one thread
8416         calling rhythmdb_commit inserting entries that are half-way through
8417         construction by another thread (as happens with audio cds). From bug
8418         330226.
8420         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8421         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8422         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8423         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8424         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8425         (rhythmdb_process_metadata_load),
8426         (rhythmdb_process_queued_entry_set_event),
8427         (rhythmdb_prop_get_type):
8429 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8431         * rhythmdb/rhythmdb-query-model.c:
8432         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8433         (rhythmdb_query_model_finalize):
8434         Move object unrefs from _finalize into _dispose.
8435         
8436         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8437         Remove extra g_object_ref that was causing query model leaks.
8438         
8439         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8440         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8441         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8442         Remove the cached 'all' query, since it doesn't really help and it
8443         makes the code more complicated.  Attach the genre property view to
8444         the query model build from the search text, so only genres for
8445         stations matching the search terms are displayed.  Preserve the genre
8446         selection across searches.
8448         * widgets/rb-library-browser.c: 
8449         (rb_library_browser_class_init), (rb_library_browser_get_property):
8450         Add properties for the input and output models for the browser, and
8451         remove the 'changed' signal as we can just use notify::output-model.
8452         (ignore_selection_changes),
8453         (selection_restore_data_destroy), (query_complete_cb),
8454         (restore_selection): Helper functions for preserving selections across
8455         query model rebuilds.
8456         (rebuild_output_model):  New function for creating a query model to
8457         use as the display model for a source using the browser.
8458         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8459         g_object_unrefs, reuse the parent's query model when there's no
8460         selection, and use ignore_selection_changes and restore_selection.
8461         (rb_library_browser_set_selection): rebuild_child_model emits the
8462         changed signal, so no need to do it here.
8463         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8464         ignore_selection_changes and restore_selection. 
8465         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8466         flag to rb_library_browser_set_model indicating whether the query is
8467         asynchronous.
8469         * sources/rb-static-playlist-source.c:
8470         (rb_static_playlist_source_class_init),
8471         (rb_static_playlist_source_dispose):
8472         (rb_static_playlist_source_constructor):  Add an extra reference on
8473         the base model, so it doesn't vanish when we set a new display model
8474         based on a search or browser selection.
8475         (impl_search): Ensure the search_text field in the source is NULL if
8476         the search box is empty.
8477         (construct_query_from_selection),
8478         (rb_static_playlist_source_do_query): Use the query model constructed
8479         from the search as the input model for the browser.
8480         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8481         output model as the query model for the source.
8483         * sources/rb-auto-playlist-source.c:
8484         (rb_auto_playlist_source_finalize): Free more stuff.
8485         (rb_auto_playlist_source_constructor),
8486         (rb_auto_playlist_source_browser_changed_cb):
8487         Update for rb-library-browser changes, use the browser's output query
8488         model as the query model for the source.
8489         (impl_reset_filters), (impl_search), 
8490         (rb_auto_playlist_source_do_query),
8491         (rb_auto_playlist_source_set_query):
8492         Use the query model constructed from the search text as the input to
8493         the library browser, and when adding text to an existing search, apply
8494         the new query to the existing query model.
8495         
8496         * sources/rb-library-source.c: (rb_library_source_dispose):
8497         (rb_library_source_finalize): Chain dispose up to the parent class.
8498         (rb_library_source_constructor): Update for rb-library-browser
8499         changes. 
8500         (impl_search): Ensure search_text is NULL if the search box is empty,
8501         and use the subset flag to _do_query if text has been appended to an
8502         existing search.
8503         (search_action_changed), (impl_reset_filters):
8504         (rb_library_source_browser_changed_cb),
8505         (rb_library_source_do_query): Use the browser's output model as the
8506         query model for the source.
8508         Rework library and playlist sources to use a single query chain,
8509         and to limit the entries shown in property views based on the search
8510         terms.  Fixes bug #322787.
8512 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8514         * configure.ac:  Enable metadata helper by default, and fix a typo.
8516 2006-03-13  James Livingston  <jrl@ids.org.au>
8518         Make RBRefStrings lazily create the folded and sort-key strings when
8519         they are first used. This will same some memory by not creating ones
8520         that are never used, and delaying some of the others to when the user
8521         resorts or performs a similar action. Fixes bug 332992.
8523         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8524         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8525         (rb_refstring_get), (rb_refstring_get_folded),
8526         (rb_refstring_get_sort_key), (rb_refstring_hash),
8527         (rb_refstring_equal):
8528         * rhythmdb/rb-refstring.h:
8529         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8531 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8533         * data/ui/rhythmbox-ui.xml:
8534         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8535         * lib/rb-stock-icons.h:
8536         * shell/rb-shell-player.c:
8537         * shell/rb-shell.c: (rb_shell_constructor):
8538         * shell/rb-source-header.c: (force_no_shadow),
8539         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8540         (rb_source_header_class_init), (rb_source_header_init),
8541         (merge_source_ui_cb), (toolbar_set_homogeneous),
8542         (rb_source_header_set_source_internal),
8543         (rb_source_header_set_property), (rb_source_header_get_property),
8544         (rb_source_header_set_source), (rb_source_header_new),
8545         (rb_source_header_filter_changed_cb):
8546         * shell/rb-source-header.h:
8547         * sources/rb-library-source.c: (rb_library_source_class_init),
8548         (rb_library_source_init), (search_action_to_prop),
8549         (search_action_changed), (rb_library_source_constructor),
8550         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8551         (construct_query_from_selection):
8552         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8553         (rb_podcast_source_init), (search_action_to_prop),
8554         (search_action_changed), (rb_podcast_source_constructor),
8555         (construct_query_from_selection), (impl_get_ui_actions),
8556         (impl_get_search_actions):
8557         * sources/rb-source.c: (rb_source_class_init),
8558         (rb_source_get_ui_actions), (default_get_search_actions),
8559         (rb_source_get_search_actions):
8560         * sources/rb-source.h:
8562         Add a search bar.  Fixes #328618
8564 2006-03-12  James Livingston  <jrl@ids.org.au>
8566         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8567         * shell/main.c: (main): make --no-update not stat files checking for
8568         changes, instead of doing nothing. Fixes bug 125177.
8570 2006-03-12  James Livingston  <jrl@ids.org.au>
8572         * podcast/rb-podcast-manager.c:
8573         (rb_podcast_manager_thread_parse_feed):
8574         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8575         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8576         having an invalid mime-type. Fixed bug 329813.
8578 2006-03-12  James Livingston  <jrl@ids.org.au>
8580         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8581         Finally lets us close bug 309609.
8583         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8584         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8585         0.10
8587         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8588         inverted logic of the editable check.
8590 2006-03-12  James Livingston  <jrl@ids.org.au>
8592         Make API doc generation work again. Fixes bug 334276.
8594         * doc/reference/Makefile.am:
8595         * doc/reference/tmpl/rb-debug.sgml:
8596         * doc/reference/tmpl/rb-druid.sgml:
8597         * doc/reference/tmpl/rb-entry-view.sgml:
8598         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8599         * doc/reference/tmpl/rb-metadata.sgml:
8600         * doc/reference/tmpl/rb-shell.sgml:
8601         * doc/reference/tmpl/rhythmbox-unused.sgml:
8602         * doc/reference/tmpl/rhythmdb.sgml:
8604 2006-03-12  James Livingston  <jrl@ids.org.au>
8606         * shell/rb-shell-clipboard.c:
8607         (rb_shell_clipboard_set_source_internal),
8608         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8609         it doesn't have one. Fixes bug 331673.
8611         * sources/rb-source.c: (rb_source_class_init): provide a default
8612         have_url implementation that returns FALSE.
8614 2006-03-12  James Livingston  <jrl@ids.org.au>
8616         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8617         doing a distclean. Fixes bug 334221.
8620         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8622         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8624 2006-03-11  James Livingston  <jrl@ids.org.au>
8626         * shell/rb-shell.c: (rb_shell_window_state_cb),
8627         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8628         update the window width/height when iconified. Stops the window
8629         changing size when it is restored from the tray, fixing bug 333824. 
8631 2006-03-11  James Livingston  <jrl@ids.org.au>
8633         Try to get cvs to actually add the necessary files for plugin support
8635 2006-03-11  James Livingston  <jrl@ids.org.au>
8637         Add a plugin framework, with basic support for Python plugins (based
8638         on gedit's). Closes bug 330523.
8640         * Makefile.am:
8641         * shell/Makefile.am:
8642         * configure.ac: necessary autofoo.
8644         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8646         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8647         * lib/rb-file-helpers.h:
8649         * data/glade/plugins/glade:
8650         * lib/rb-preferences.h:
8651         * plugins/*:
8652         * bindings/*: plugin framework
8654         * plugins/sample/*:
8655         * plugins/sample-python/*: sample plugins
8657         * plugins/audioscrobbler/*:
8658         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8659         (rb_audioscrobbler_set_property),
8660         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8661         submission into a plugin. shell/audioscrobbler.* should really be
8662         moved, but that sucks with cvs.
8664         * shell/rb-shell.h:
8665         * shell/rb-shell.c: (rb_shell_constructor),
8666         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8667         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8668         (rb_shell_quit): start and stop plugin framework.
8670 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8672         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8673         (rhythmdb_entry_delete):
8674         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8675         immediately, so we can't get change notifications afterwards.  
8676         Fixes #331732.
8677         (rhythmdb_process_metadata_load): Add a commit after removing an
8678         entry so we can recreate it with a different type without getting
8679         confused.
8681 2006-03-11  James Livingston  <jrl@ids.org.au>
8683         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8684         use the drive name for audio CDs, use "Unknown CD".
8686 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8688         patch by:  James Henstridge  <james@jamesh.id.au>
8690         * sources/rb-removable-media-source.c:
8691         (rb_removable_media_source_constructor):
8692         Get the device name from the GnomeVFSDrive if possible,
8693         since this is usually a more descriptive name.  Fixes #333080.
8695 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8697         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8699         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8700         Don't automatically download episodes when configured for manual
8701         updating.  Fixes #331564.
8703 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8705         * rhythmdb/rhythmdb-property-model.c:
8706         (rhythmdb_property_model_iter_from_string):
8707         Return an iterator for the 'all' property when name == NULL,
8708         and don't write to *iter if iter == NULL.
8710 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8712         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8713         When switching to the play queue, still call _go_next on the normal
8714         play order, so self-emptying auto playlists ("play count = 0" etc.)
8715         don't restart once the queue is empty.
8717         * shell/rb-tray-icon.c:
8718         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8719         with 'next'.
8721 2006-03-05  James Livingston  <jrl@ids.org.au>
8723         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8724         don't submit tracks which could not be played. Fixed bug 333013.
8726         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8727         tracks which could not be played.
8729 2006-03-05  James Livingston  <jrl@ids.org.au>
8731         Sync musicbrainz lookup code from Sound-Juicer cvs.
8733         * metadata/sj-metadata-musicbrainz.c:
8734         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8735         (get_offline_track_listing), (artist_and_title_from_title),
8736         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8737         (mb_list_albums), (mb_get_submit_url):
8738         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8739         * metadata/sj-metadata.h:
8740         * metadata/sj-structures.c: (track_details_free),
8741         (album_details_free):
8742         * metadata/sj-structures.h:
8744 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8746         * lib/rb-debug.h:
8747         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8748         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8749         (rb_profiler_reset), (rb_profiler_free):
8750         Filter debug output by matching the file and function names against a
8751         match string.
8753         * shell/main.c: (main):
8754         Add -D command line option to specify the debug match string.
8756         * shell/rb-removable-media-manager.c:
8757         (rb_removable_media_manager_mount_volume):
8758         Fix some typos in debug output.
8760 2006-03-03  James Livingston  <jrl@ids.org.au>
8762         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8763         * shell/rb-shell.c: (rb_shell_load_uri):
8764         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8765         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8766         use the new "recurse" property from totem-plparser, if present. Stop
8767         RB hanging for new users who don't have a 'net connection. From bug
8768         331508.
8770 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8772         * shell/rb-removable-media-manager.c:
8773         (rb_removable_media_manager_mount_volume):
8774         * sources/Makefile.am:
8775         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8776         Fix missing files on make dist (conditional files), only build the
8777         N770 support if there's HAL support, as we have no other ways of
8778         detecting it
8780 2006-03-03  James Livingston  <jrl@ids.org.au>
8782         * shell/rb-shell-clipboard.c:
8783         (rb_shell_clipboard_set_source_internal): really fix it this time.
8784         hopefully.
8786 2006-03-03  James Livingston  <jrl@ids.org.au>
8788         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8789         with the idle function not being removed.
8791 2006-03-02  James Livingston  <jrl@ids.org.au>
8793         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8794         * widgets/rb-entry-view.h: add function for determining whether all
8795         entries are selected.
8797         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8798         (rb_shell_clipboard_set_source_internal),
8799         (rb_shell_clipboard_finalize),
8800         (rb_shell_clipboard_idle_poll_deletions),
8801         (rb_shell_clipboard_entryview_changed_cb),
8802         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8803         removals, to update things.
8805         (rb_shell_clipboard_sync): update the Select All and Select None
8806         sensitivity, based on what is selected. Fixed bug 172220.
8808 2006-03-02  James Livingston  <jrl@ids.org.au>
8810         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8811         restore the selections of later models. This means that selecting the
8812         artist for the selected album does not reset the album selection.
8814 2006-03-02  James Livingston  <jrl@ids.org.au>
8816         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8817         Stops it emitting critical warnings.
8819 2006-03-02  James Livingston  <jrl@ids.org.au>
8821         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8822         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8823         second fragment is already escaped.
8825         * sources/rb-generic-player-source.c:
8826         (rb_generic_player_source_class_init),
8827         (rb_generic_player_source_constructor), (impl_show_popup),
8828         (rb_generic_player_source_load_playlists),
8829         (rb_generic_player_source_transform_playlist_uri),
8830         (handle_playlist_entry_cb), (visit_playlist_dirs),
8831         (default_load_playlists), (default_transform_playlist_uri):
8832         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8833         the device. Allow subclasses to override the playlist loading, and
8834         (playlist uri)->(actual uri) mapping. A lot of devices which have
8835         playlists won't work right now, but people will see them and hopefully
8836         file bugs.
8838         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8839         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8840         
8841         * sources/Makefile.am:
8842         + sources/rb-nokia770-source.{c,h}:
8843         * shell/rb-removable-media-manager.c:
8844         (rb_removable_media_manager_mount_volume): Add support for reading
8845         playlists of Nokia 770s.
8847 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8849         * data/glade/podcast-properties.glade:
8850         * podcast/rb-podcast-properties-dialog.c:
8851         (rb_podcast_properties_dialog_init),
8852         (rb_podcast_properties_dialog_update),
8853         (rb_podcast_properties_dialog_update_location),
8854         (rb_podcast_properties_dialog_update_download_location):
8855         Add 'download location' field showing the path to the downloaded copy.
8856         Fixes #330696.
8858 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8860         * configure.ac: simplify HAVE_HAL define
8862 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8864         * configure.ac:
8865         * lib/rb-file-helpers.c: (rb_uri_append_path):
8866         * lib/rb-file-helpers.h:
8867         * shell/rb-removable-media-manager.c:
8868         (rb_removable_media_manager_mount_volume):
8869         * sources/Makefile.am:
8870         * sources/rb-ipod-source.c:
8871         * sources/rb-psp-source.*:
8872         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8873         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8875 2006-03-02  James Livingston  <jrl@ids.org.au>
8877         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8878         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8879         (swap_playing_source), (rb_shell_player_playpause),
8880         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8881         (rb_shell_player_set_playing_source_internal): check for the entry
8882         view being NULL before trying to use it. Lets us support sources which
8883         don't have an entry view. From bug 331673.
8885 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8887         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8888         use gnome_vfs_read_entire_file with a URI, not a local filename
8890 2006-03-01  James Livingston  <jrl@ids.org.au>
8892         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8893         first-seen and last-seen when merging duplicate entries.
8895 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8897         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8898         * widgets/rb-property-view.h:  New function, allowing custom 
8899         interactive search functions for property views.
8900         
8901         * sources/rb-podcast-source.c: 
8902         (feed_select_change_cb): Only do a new query when the selection
8903         actually changes.
8904         (rb_podcast_source_constructor),
8905         (rb_podcast_source_feed_title_search_func):
8906         Interactive search function for podcast feed titles.  Fixes #327451.
8908 2006-03-01  James Livingston  <jrl@ids.org.au>
8910         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8911         the uri in the callback, since it causes symbols to not be escaped.
8912         Fixes bug 332976.
8914         * data/ui/rhythmbox-ui.xml:
8915         * sources/rb-import-errors-source.c:
8916         (rb_import_errors_source_class_init),
8917         (rb_import_errors_source_constructor), (impl_get_status),
8918         (impl_move_to_trash),
8919         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8920         import errors source
8921         
8922         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8923         (rb_entry_view_append_column): unescape the URI for display.
8925 2006-03-01  James Livingston  <jrl@ids.org.au>
8927         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8928         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8929         function fails.
8931 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8933         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8934         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8935         * sources/rb-play-queue-source.c:
8936         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8937         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8938         of "Queued Songs".
8940         Fixes #331637.
8942 2006-03-01  James Livingston  <jrl@ids.org.au>
8944         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8945         Fixes bug 332913.
8947 2006-03-01  James Livingston  <jrl@ids.org.au>
8949         * daapsharing/rb-daap-mdns-browser-howl.c:
8950         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8951         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8952         (rb_daap_mdns_publisher_class_init),
8953         (rb_daap_mdns_publisher_finalize):
8954         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8955         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8956         (rb_recorder_finalize):
8957         * rhythmdb/rhythmdb-query-model.c:
8958         (rhythmdb_query_model_constructor):
8959         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8960         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8961         * sources/rb-playlist-source-recorder.c:
8962         (rb_playlist_source_recorder_style_set),
8963         (rb_playlist_source_recorder_class_init),
8964         (rb_playlist_source_recorder_finalize):
8965         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8966         other classes in the same way, so they don't break when derived from.
8968 2006-03-01  James Livingston  <jrl@ids.org.au>
8970         * sources/rb-generic-player-source.c:
8971         (rb_generic_player_source_constructor): don't get the parent class in
8972         a dumb way, and it breaks when the class is derived from.
8974 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8976         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8978 2006-03-01  James Livingston  <jrl@ids.org.au>
8980         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8981         not work in glib 2.8 systems.
8983 2006-03-01  James Livingston  <jrl@ids.org.au>
8985         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8986         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8987         say it is crap.
8989         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8990         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8991         podcasts on ion-local places
8993         * rhythmdb/gsequence.c: (g_sequence_node_new),
8994         (g_sequence_node_free): use gslice if we are building against glib
8995         2.10.
8997         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8998         local files too, so it doesn't block.
9000 2006-02-28  James Livingston  <jrl@ids.org.au>
9002         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
9003         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
9004         stats the file. Stops the UI blocking while stats are done.
9006 2006-02-28  James Livingston  <jrl@ids.org.au>
9008         * sources/rb-static-playlist-source.c:
9009         (rb_static_playlist_source_class_init),
9010         (rb_static_playlist_source_constructor), (impl_reset_filters),
9011         (impl_get_property_views), (impl_browser_toggled),
9012         (rb_static_playlist_source_do_query),
9013         (rb_static_playlist_source_browser_changed_cb): add browsers to static
9014         playlists. From bug 118862.
9016         * sources/rb-play-queue-source.c:
9017         (rb_play_queue_source_class_init): disable them for the play queue.
9019 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
9021         * data/glade/library-prefs.glade:  Add a mnemonic.
9022         * sources/rb-library-source.c:
9023         (rb_library_source_location_button_clicked_cb):  Use title
9024         capitalization for window title.
9026 2006-02-28  James Livingston  <jrl@ids.org.au>
9028         * sources/rb-auto-playlist-source.c:
9029         (construct_query_from_selection): don't create a subquery for only one
9030         criteria, as it's a silly effifiency degredation.
9032 2006-02-28  James Livingston  <jrl@ids.org.au>
9034         * rhythmdb/rhythmdb.h:
9035         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9036         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
9037         saved to disk
9039         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
9040         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
9041         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
9042         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
9043         IGNORE (e.g. known video stream) create an entry of the Ignore type.
9044         This will make importing files quicker as we don't need to try files
9045         that we know are not going to be interesting - especially useful when
9046         using the library watching facility.
9048         Fixes bug 323179.
9050 2006-02-28  James Livingston  <jrl@ids.org.au>
9052         * shell/rb-shell.c: (rb_shell_constructor),
9053         (rb_shell_set_visibility): fix browser and source-list pane
9054         positioning, that I broke with the "remember visibility" patch.
9056 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9058         * metadata/rb-metadata-dbus-service.c: (main):
9059         Change argument handling so you can use --debug with the --load and
9060         --can-save test modes.
9061         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
9062         Use a separate GMainContext, not the default one.  Probably fixes
9063         #332344.
9065 2006-02-27  James Livingston  <jrl@ids.org.au>
9067         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
9068         first starting up. Fixes bug 330342.
9070 2006-02-27  James Livingston  <jrl@ids.org.au>
9072         * sources/rb-sourcelist-model.c:
9073         (rb_sourcelist_model_set_dnd_targets):
9074         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
9075         COPY action for draging sources and tracks, not MOVE as well. Stops
9076         Nautilus moving file away, and fixes bug 332488.
9078 2006-02-27  James Livingston  <jrl@ids.org.au>
9080         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
9082         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
9083         and Last Played metadata off iPods. Closes bug 324648.
9085 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9087         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
9088         Disable audioscrobbler when run with the --no-registration flag, since
9089         last.fm doesn't allow multiple concurrent clients per user.
9091 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9093         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
9094         Rename renamable sources when F2 is pressed when the sourcelist has
9095         focus.  Fixes #330700.
9097 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9099         * shell/rb-playlist-manager.c: (cleanup_edit_data),
9100         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
9101         (rb_playlist_manager_cmd_edit_automatic_playlist):
9102         Fix various crashes when deleting auto playlists previously edited
9103         by disconnecting signal handlers when the query editor is closed or
9104         the playlist is deleted.
9106 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9108         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
9109         removed load failure dialog, and actually use the friendly file type
9110         name in error messages.
9112 2006-02-24  James Livingston  <jrl@ids.org.au>
9114         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9116         * sources/rb-library-source.c:
9117         (rb_library_source_location_button_clicked_cb),
9118         (rb_library_source_preferences_sync),
9119         (rb_library_source_library_location_cb): convert the library URI to
9120         for display, and back again. Fixes bug 332356.
9122 2006-02-23  James Livingston  <jrl@ids.org.au>
9124         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9125         (rhythmdb_process_metadata_load), (monitor_subdirectory),
9126         (rhythmdb_sync_library_location): don't monitor files at all if
9127         watching is turned off. From bug 323096.
9129 2006-02-23  James Livingston  <jrl@ids.org.au>
9131         * data/rhythmbox.schemas:
9132         * lib/rb-preferences.h:
9133         * shell/rb-shell.c: (rb_shell_constructor),
9134         (rb_shell_set_visibility): remember main window visibility between
9135         sessions. Fixes bug 127320.
9137 2006-02-23  James Livingston  <jrl@ids.org.au>
9139         * data/glade/library-prefs.glade:
9140         * sources/rb-library-source.c: (impl_get_config_widget),
9141         (rb_library_source_location_button_clicked_cb),
9142         (rb_library_source_preferences_sync),
9143         (rb_library_source_library_location_cb),
9144         (rb_library_source_watch_toggled_cb): change the library-location
9145         widgets from the file-chooser drop menu to a text entry and Browse
9146         button. This is needed to prevent the location from chaning if the
9147         directory cannot be found. Fixes bug 328414.
9149 2006-02-23  James Livingston  <jrl@ids.org.au>
9151         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
9152         item. Fixes bug 329042.
9154 2006-02-23  James Livingston  <jrl@ids.org.au>
9156         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
9158         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
9159         comma in some podcast feeds. Fixes bug 332194.
9161 2006-02-23  James Livingston  <jrl@ids.org.au>
9163         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
9164         lower priority.
9166         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
9167         the internal audio cd URIs from "cdda://device:track" to
9168         "cdda://track#device" as it makes processing much easier.
9170         * shell/rb-shell-player.c: (rb_shell_player_open_location):
9171         * player/rb-player-gst.c: don't have the shell close the player
9172         between songs, as doing that should be backend-specific. Make the
9173         gstreamer backend close before starting a new track, unless the old
9174         and new ones are both tracks on the same audio cd. Just seek in that
9175         case.
9177 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9179         * doc/reference/rhythmbox.types: Fix doc build a bit more.
9181 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9183         * configure.ac: Enable more warnings in my stupid setup too.
9184         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
9185         #332210.
9187 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9189         * sources/rb-missing-files-source.h,
9190         * sources/rb-missing-files-source.c,
9191         * sources/rb-import-errors-source.h,
9192         * sources/rb-import-errors-source.c:
9193         Add library meta-sources, showing missing files and import errors.
9194         Fixes #167763, #142322.
9196         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
9197         * sources/rb-sourcelist-model.h:
9198         * sources/rb-sourcelist.c: (rb_sourcelist_append),
9199         (match_source_to_iter), (rb_sourcelist_source_to_iter),
9200         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
9201         (visibility_notify_cb):
9202         Store source visibility in the sourcelist model, so we can determine
9203         child source counts correctly and get the sourcelist expander column
9204         right.
9205         
9206         * widgets/rb-entry-view.h:
9207         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9208         (rb_entry_view_append_column), (set_column_visibility):
9209         Allow the creator of the entry view to specify which columns are
9210         always visible.
9212         * sources/rb-source.h:
9213         * sources/rb-source.c: (_autohide_update_visibility),
9214         (_rb_autohide_source_row_deleted_cb),
9215         (_rb_autohide_source_row_inserted_cb),
9216         (_rb_source_hide_when_empty):
9217         Allow sources to automatically hide themselves when empty.
9218         
9219         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
9220         * sources/rb-library-source.c: (rb_library_source_constructor):
9221         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9222         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9223         Explicitly specify which columns are always visible.
9224         
9225         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9226         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
9227         Remove load error signal handling and load failure dialog.
9228         Create missing files and import errors sources for the library.
9230         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9231         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
9232         Create DB entries for import errors rather than emitting the 'load
9233         error' signal; mark loaded entries visible.
9234         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
9235         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
9236         (rhythmdb_prop_get_type): Store string form of last seen time for
9237         hidden entries, since it's used in the missing files source.
9238         (rhythmdb_entry_import_error_get_type): 
9239         Add entry type for import errors.
9240         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
9241         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
9242         (rhythmdb_entry_move_to_trash_set_error),
9243         (rhythmdb_entry_move_to_trash):  
9244         Correct spelling, add missing rhythmdb_commit.
9245         * rhythmdb/rhythmdb.h:  
9246         Add import error entry type and last seen string property.
9247         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
9248         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9249         (save_entry):  Ignore string form of 'last seen' property.
9251         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9252         Don't try to play hidden entries or import error entries.
9254         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
9255         * sources/Makefile.am: Add meta-source files
9256         * widgets/Makefile.am: Remove load failure dialog files
9258 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9260         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9261         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
9262         few bits and pieces.
9264 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9266         * metadata/test-metadata.c: (load_metadata_cb):
9267         Fix compile warning for ignoring return value from getcwd, #332064.
9269 2006-02-21  James Livingston  <jrl@ids.org.au>
9271         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9272         (edit_auto_playlist_deleted_cb),
9273         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9274         playlist editor non-modal. Fixes bug 320030.
9276 2006-02-21  James Livingston  <jrl@ids.org.au>
9278         * shell/rb-shell.c: (rb_shell_constructor):
9279         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9280         (rb_header_set_show_artist_album):
9281         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9282         (rb_song_display_box_sync): make the queue sidebar and song display
9283         not get affected by gtk_widget_show_all. Fixes bug 332001.
9285 2006-02-21  James Livingston  <jrl@ids.org.au>
9287         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9289         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9290         feeds which use timezone names instead of offsets. Doesn't actually
9291         parse the timezone name since they are not standardised. Fixes bug
9292         331691.
9294 2006-02-21  James Livingston  <jrl@ids.org.au>
9296         * help/C/figures/rb-notification-area.png:
9297         * help/C/figures/rb-sidebar.png:
9298         * help/C/quick-reference.xml: remove obsolete files from CVS.
9300         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9301         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9302         (rhythmdb_query_free), (rhythmdb_query_serialize),
9303         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9304         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9306         * widgets/rb-query-creator-properties.c: add prefix and suffix
9307         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9308         doesn't escape the ':' separator in uris.
9310 2006-02-21  James Livingston  <jrl@ids.org.au>
9312         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9313         on startup.
9315 2006-02-21  James Livingston  <jrl@ids.org.au>
9317         * NEWS: update with recent changes
9319 2006-02-21  James Livingston  <jrl@ids.org.au>
9321         * shell/rb-shell.c: (rb_shell_constructor),
9322         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9323         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9324         (rb_druid_browse_clicked_cb), (do_response):
9325         * widgets/rb-druid.h: Make running the druid not block RBShell
9326         starting up. This is required so that bonobo registration doesn't time
9327         out. Fixed bug 318766.
9329 2006-02-21  James Livingston  <jrl@ids.org.au>
9331         * rhythmdb/rhythmdb-property-model.c:
9332         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9333         hash table after using it, not before. Fixed bug 331922.
9335 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9337         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9338         (rb_shell_view_queue_as_sidebar_changed_cb):
9339         When playing from the queue, only attempt to highlight the queue
9340         source in the source list if it's actually visible there.  Otherwise,
9341         leave the preempted source highlighted.  Mostly fixes #330819.
9343 2006-02-20  James Livingston  <jrl@ids.org.au>
9345         * rhythmdb/rhythmdb-property-model.c:
9346         (rhythmdb_property_model_row_inserted_cb),
9347         (rhythmdb_property_model_prop_changed_cb),
9348         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9349         store the roperty value in the entry-mapping table, so that receiving
9350         the remove signal from a query model before we get notified of a
9351         change doesn't cause a crash. Fixes bug 331770.
9353 2006-02-20  James Livingston  <jrl@ids.org.au>
9355         * data/ui/rhythmbox-ui.xml:
9356         * sources/rb-play-queue-source.c:
9357         (rb_play_queue_source_class_init),
9358         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9359         playlist things in the queue popup source. From 330490.
9361         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9362         previous commit
9364 2006-02-20  James Livingston  <jrl@ids.org.au>
9366         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9367         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9368         attempt to sync data for non-editable entries when using
9369         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9370         331762.
9372 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9374         * .cvsignore:
9375         * Makefile.am:
9376         * autogen.sh:
9377         * configure.ac:
9378         * help/.cvsignore:
9379         * help/Makefile.am: ported to gnome-doc-utils
9380         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9381         * help/ChangeLog: added, for translators
9382         * help/C/rhytmbox-C.omf: removed, no longer used
9383         Know issue: figures are installed, but some are not showed; manual
9384         description added, but not showed in Yelp while browsing. I'll
9385         investigate, maybe are needed some little changes to
9386         help/C/rhythmbox.xml.
9388 2006-02-20  James Livingston  <jrl@ids.org.au>
9390         * data/ui/rhythmbox-ui.xml:
9391         * help/C/figures/rb-adv.png:
9392         * help/C/figures/rb-asst-finish.png:
9393         * help/C/figures/rb-asst-library.png:
9394         * help/C/figures/rb-asst-start.png:
9395         * help/C/figures/rb-basic.png:
9396         * help/C/figures/rb-browser.png:
9397         * help/C/figures/rb-context-menu.png:
9398         * help/C/figures/rb-empty.png:
9399         * help/C/figures/rb-full-play.png:
9400         * help/C/figures/rb-group-auto.png:
9401         * help/C/figures/rb-group-create.png:
9402         * help/C/figures/rb-group.png:
9403         * help/C/figures/rb-imported.png:
9404         * help/C/figures/rb-iradio-add.png:
9405         * help/C/figures/rb-iradio.png:
9406         * help/C/figures/rb-nextprev.png:
9407         * help/C/figures/rb-nobrowse-play.png:
9408         * help/C/figures/rb-notification-area-menu.png:
9409         * help/C/figures/rb-player.png:
9410         * help/C/figures/rb-prefs-general.png:
9411         * help/C/figures/rb-prefs-ipod.png:
9412         * help/C/figures/rb-prefs-library.png:
9413         * help/C/figures/rb-prefs.png:
9414         * help/C/figures/rb-repeat.png:
9415         * help/C/figures/rb-search.png:
9416         * help/C/figures/rb-shuffle.png:
9417         * help/C/figures/rb-stats.png:
9418         * help/C/figures/rb-toolbar-editor.png:
9419         * help/C/figures/rb-volume-mute.png:
9420         * help/C/figures/rhythmbox-group.png:
9421         * help/C/figures/rhythmbox-tray-icon.png:
9422         * help/C/user-guide.xml: remove old stuff from cvs
9424 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9426         * metadata/rb-metadata-dbus-client.c: 
9427         * metadata/rb-metadata-dbus-service.c:
9428         * metadata/rb-metadata-dbus.c:
9429         * metadata/rb-metadata-dbus.h:
9430         New files, adding an external service for reading and writing
9431         metadata, and an implementation of the RBMetaData interface that uses
9432         dbus to communicate with it.
9433         
9434         * metadata/rb-metadata.h,
9435         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9436         (rb_metadata_get_field_name): Put metadata details in a static array
9437         instead of using a hash table, and add a field for language code (not
9438         used for anything)
9439         * metadata/rb-metadata-gst.c: Updates for changes in
9440         rb-metadata-common.c, fix signal handler closure leak for the typefind
9441         element's have-type signal, and add XML to the list of types we ignore.
9442         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9443         Update for changes to rb_metadata_get_field_type
9444         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9445         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9446         here and there.
9447         
9448         * configure.ac: Add --enable-metadata-helper option (not enabled by
9449         default) to use the external metadata service
9450         * metadata/Makefile.am: Add new files
9451         * metadata/test-metadata.c:  Test program for the metadata service
9453         Fixes #329597. 
9455 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9457         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9458         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9459         (rb_podcast_source_cmd_new_podcast):
9460         Move 'new podcast' action to the podcast source, and add it to the
9461         toolbar.  Fixes #331562.
9463 2006-02-19  James Livingston  <jrl@ids.org.au>
9465         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9466         menus, and away from move-to-trash. Fixes bug 331013.
9468 2006-02-19  James Livingston  <jrl@ids.org.au>
9470         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9471         when deleting last entry. Fixes bug 331712.
9473 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9475         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9476         (rb_entry_view_button_press_cb):
9477         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9478         anywhere, and include a flag indicating whether the click was over an
9479         entry or not.
9480         
9481         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9482         (rb_playlist_source_songs_show_popup_cb):
9483         * sources/rb-playlist-source.h:
9484         Add the 'over entry' flag to the class show popup method, and in the
9485         default handler, ignore right clicks when not over an entry.
9486         
9487         * sources/rb-iradio-source.c:
9488         (rb_iradio_source_songs_show_popup_cb):
9489         * sources/rb-library-source.c:
9490         (rb_library_source_songs_show_popup_cb):
9491         * sources/rb-podcast-source.c:
9492         (rb_podcast_source_songs_show_popup_cb):
9493         Show the source list popup menu when right clicked while not over an
9494         entry.
9496         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9497         For the queue sidebar, always display the popup so the 'clear queue'
9498         action is available regardless of where you click.  For the queue
9499         source, only display the popup when right clicked over an entry.
9500         Fixes #331392.
9502 2006-02-19  James Livingston  <jrl@ids.org.au>
9504         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9505         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9506         entry view, when we're not even using it
9508         * rhythmdb/rhythmdb-property-model.c:
9509         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9510         function, rather than a copy of the code.
9512         * shell/rb-playlist-manager.c:
9513         (rb_playlist_manager_playlist_row_inserted_cb),
9514         (rb_playlist_manager_set_source_internal),
9515         (rb_playlist_manager_playlist_entries_changed): use the query-model
9516         directly, rather than the source's entry view.
9518         * shell/rb-source-header.c: don't use the entry view, just select the
9519         source widget.
9521 2006-02-18  James Livingston  <jrl@ids.org.au>
9523         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9525         * help/C/figures/rb-iradio-main.png:
9526         * help/C/figures/rb-notification-area-menu.png:
9527         * help/C/figures/rb-notification-window.png:
9528         * help/C/figures/rb-notification-zone.png:
9529         * help/C/figures/rb-podcast-main.png:
9530         * help/C/figures/rb-statusbar.png:
9531         * help/C/figures/rb-toolbar-prevplaynext.png:
9532         * help/C/figures/rb-toolbar-repeat.png:
9533         * help/C/figures/rb-toolbar-shuffle.png:
9534         * help/C/figures/rb-toolbar.png:
9535         * help/C/figures/rb-volume-changer.png:
9536         * help/C/figures/rb-window-small.png:
9537         * help/C/figures/rb-window.png:
9538         * help/C/rhythmbox.xml: Update user guide with some of the changes
9539         that have occurred after 0.8.8. From bug 314001.
9541 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9543         * rhythmdb/rhythmdb-query-results.h,
9544           rhythmdb/rhythmdb-query-results.c:
9545         New interface for objects that accept query results from RhythmDB.
9547         * rhythmdb/rhythmdb-query-model.c:
9548         (rhythmdb_query_model_query_results_init),
9549         (rhythmdb_query_model_set_query),
9550         (rhythmdb_query_model_add_results),
9551         (rhythmdb_query_model_query_complete):
9552         * rhythmdb/rhythmdb-query-model.h:
9553         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9555         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9556         (rhythmdb_tree_do_full_query):
9557         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9558         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9559         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9560         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9561         * rhythmdb/rhythmdb.h:
9562         Pass query results through the RhythmDBQueryResults interface, rather
9563         than directly to a RhythmDBQueryModel.
9565         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9566         (rb_podcast_manager_db_entry_deleted_cb):
9567         * sources/rb-auto-playlist-source.c:
9568         (rb_auto_playlist_source_do_query),
9569         (rb_auto_playlist_source_set_query):
9570         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9571         * sources/rb-library-source.c: (rb_library_source_constructor),
9572         (rb_library_source_do_query):
9573         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9574         (rb_podcast_source_do_query):
9575         * rhythmdb/rhythmdb-property-model.c:
9576         (rhythmdb_property_model_drag_data_get):
9577         Cast the query model to RhythmDBQueryResults when passing to one of
9578         the RhythmDB query methods.
9580         * rhythmdb/Makefile.am: Add new files.
9582 2006-02-18  James Livingston  <jrl@ids.org.au>
9584         * data/ui/rhythmbox-ui.xml:
9585         * shell/rb-playlist-manager.c:
9586         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9587         "queue playlist" item to source context menu. Fixes bug 330490.
9589 2006-02-18  James Livingston  <jrl@ids.org.au>
9591         * data/glade/general-prefs.glade:
9592         * shell/rb-shell-preferences.c:
9593         (rb_shell_preferences_column_check_changed_cb),
9594         (rb_shell_preferences_sync):
9595         * sources/rb-library-source.c: (rb_library_source_constructor):
9596         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9597         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9598         (rb_entry_view_append_column): Add a "quality" colume which indicates
9599         the bitrate of media. Part of bug 167659.
9601 2006-02-18  James Livingston  <jrl@ids.org.au>
9603         * shell/rb-play-order.c: (do_next_idle_cb),
9604         (default_playing_entry_removed): move to next track when playing entry
9605         is deleted. Fixes bug 131150.
9607         * shell/rb-shell-player.h: remove ancient stuff
9609 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9611         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9612         (rb_shell_clipboard_set_property): 
9613         * shell/rb-shell.c (rb_shell_sync_party_mode):
9614         Trigger a resync of the clipboard properties when changing party mode.
9616 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9618         * sources/rb-static-playlist-source.c: Fix includes.
9620         * sources/rb-source.c (rb_source_can_rename) 
9621         (rb_source_can_delete, rb_source_can_move_to_trash):
9622         Return FALSE if in party mode.
9624         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9625         Replace fullscreen with party mode.
9626         (rb_shell_window_delete_cb): Don't quit if in party mode.
9627         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9628         (window_state_event_cb): Try to deiconify shell when iconified
9629         in party mode.
9630         (rb_shell_sync_party_mode): Sync party mode properties.
9631         Currently, that means [de]sensitizing close, quit, and small-display,
9632         going into fullscreen mode with window stuck and kept above, and
9633         toggling queue-only for the shell player.
9634         (rb_shell_sync_smalldisplay): Sensitive party mode.
9635         (rb_shell_get_party_mode): Get party mode setting.
9637         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9638         (rb_shell_player_set_property, rb_shell_player_get_property):
9639         Add queue-only property.
9640         (rb_shell_player_entry_activated_cb): If in party mode
9641         only queue the entry on activation.
9643         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9644         Break out from set_properties.  Desensitize some actions when
9645         in party mode.
9646         (rb_playlist_manager_set_property): Break out set_source_internal.
9648         * data/rhythmbox.schemas: Remove fullscreen mode.
9650         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9651         action with party mode.
9653         Partial fix for #323933
9655 2006-02-17  James Livingston  <jrl@ids.org.au>
9657         * configure.ac:
9658         * shell/rb-removable-media-manager.c:
9659         (get_nautilus_burn_drive_for_path),
9660         (rb_removable_media_manager_playing_uri_changed_cb): only use
9661         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9662         over the list when it doesn't.
9664 2006-02-17  James Livingston  <jrl@ids.org.au>
9666         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9667         (rb_iradio_source_first_time_changed): Only do the import on the
9668         first change from FALSE to TRUE.
9670         * sources/rb-library-source.c:
9671         (rb_library_source_preferences_sync),
9672         (rb_library_source_library_location_cb): set the first-run done flag
9673         if the user presses close and then sets their watches library
9674         location. Fixes bug 325997.
9676 2006-02-17  James Livingston  <jrl@ids.org.au>
9678         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9679         removable media manager gobject properties
9681         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9682         (split_drive_from_cdda_uri),
9683         (rb_removable_media_manager_playing_uri_changed_cb),
9684         (rb_removable_media_manager_load_media): stop polling a cd drive
9685         when we are playing from it. Part of bug 330716.
9687 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9689         * rhythmdb/rhythmdb-query-model.c:
9690         (rhythmdb_query_model_set_property),
9691         (rhythmdb_query_model_finalize),
9692         (rhythmdb_query_model_base_entry_removed):
9693         Propagate entry removal from base models out to attached property
9694         models.  Fixes the rest of #331165.
9696 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9698         * rhythmdb/rhythmdb-property-model.c:
9699         (rhythmdb_property_model_row_inserted_cb),
9700         (rhythmdb_property_model_prop_changed_cb),
9701         (rhythmdb_property_model_insert):
9702         Don't store NULL as a hash table value if we want to use
9703         g_hash_table_lookup to check if a key exists, and get the checks for
9704         how and whether to handle entry changes the right way around.
9705         Fixes #331211 and half of #331165.
9707 2006-02-16  James Livingston  <jrl@ids.org.au>
9709         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9710         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9711         Fixes bug 329942.
9713 2006-02-16  James Livingston  <jrl@ids.org.au>
9715         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9716         actually reset the browsers.
9718 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9720         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9721         Escape the strings we pass into libnotify so we don't get blank
9722         notifications when the song name contains '&' etc.  Fixes #330784.
9724 2006-02-16  James Livingston  <jrl@ids.org.au>
9726         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9727         enable "View All" when there is only a search box and no browser.
9728         Fixes bug 331395.
9730 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9732         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9733         popup menu, which I forgot to commit with the patch for bug #330014.
9735 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9737         * shell/rb-shell-player.c: (open_location_thread):
9738         Sync button and entry view state once we've started the player, so the
9739         entry view gets into the playing state for iradio.
9741 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9743         * shell/rb-shell-player.c: (open_location_thread):
9744         Take GDK lock before doing anything UI-related.
9746 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9748         * shell/rb-shell.c: Move 'new iradio station' action to
9749         iradio source.
9751         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9752         (rb_iradio_source_init), (rb_iradio_source_finalize),
9753         (rb_iradio_source_constructor):
9754         Remove some unused stuff.
9756         (guess_uri_scheme), (rb_iradio_source_add_station),
9757         (rb_iradio_source_add_from_playlist),
9758         (impl_get_ui_actions), (new_station_location_added),
9759         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9760         action, include it in the toolbar, and make sure the URI we add has a
9761         scheme.  Fixes #327059, more or less.
9763 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9765         * sources/rb-play-queue-source.c:
9766         (rb_play_queue_source_class_init),
9767         (rb_play_queue_source_constructor),
9768         (rb_play_queue_source_update_count),
9769         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9770         Add a toolbar button to clear the play queue, and make it sensitive
9771         only when there are entries in the queue.  Fixes #330014.
9773         * sources/rb-source.c: (_rb_source_register_action_group):
9774         * sources/rb-source.h:  Add helper function to register an
9775         action group for a source.
9777         * sources/rb-library-source.c: (rb_library_source_constructor):
9778         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9779         (register_action_group):  Use _rb_source_register_action_group.
9781 2006-02-15  James Livingston  <jrl@ids.org.au>
9783         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9784         (rb_song_info_constructor), (rb_song_info_set_property): make
9785         tag-editing completion work for albums too.
9787 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9789         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9790         Check the 'limit' checkbox for time-limited playlists.
9792 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9794         * widgets/rb-song-info.c: Prove text-completion when editing title,
9795         artist or album
9797 2006-02-14  James Livingston  <jrl@ids.org.au>
9799         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9800         tray icon popup menu. Fixes bug 331026.
9802 2006-02-14  James Livingston  <jrl@ids.org.au>
9804         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9805         Ogg Vorbis streams, instead of the MP3 ones.
9807 2006-02-14  James Livingston  <jrl@ids.org.au>
9809         * rhythmdb/rhythmdb-property-model.c:
9810         (rhythmdb_property_model_class_init),
9811         (rhythmdb_property_model_drag_data_get):
9812         * rhythmdb/rhythmdb-query-model.c:
9813         (rhythmdb_query_model_title_sort_func):
9814         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9815         LOCATION as the key. Fixes bug 330601.
9817 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9819         * sources/rb-playlist-source.c: (playlist_iter_func):
9820         Make it compile with older versions of totem-plparser too.      
9822 2006-02-13  James Livingston  <jrl@ids.org.au>
9824         * rhythmdb/rhythmdb.h:
9825         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9826         structure private, since things should use the accessor functions
9827         rather than manipulating it directly - Only RhythmDB and the
9828         implementation classes should access it directly. Part of the RhythmDB
9829         cleanup of bug 330226.
9831         * iradio/rb-station-properties-dialog.c:
9832         (rb_station_properties_dialog_update_title),
9833         (rb_station_properties_dialog_update_title_entry),
9834         (rb_station_properties_dialog_update_genre),
9835         (rb_station_properties_dialog_update_location),
9836         (rb_station_properties_dialog_update_play_count),
9837         (rb_station_properties_dialog_update_bitrate),
9838         (rb_station_properties_dialog_update_last_played),
9839         (rb_station_properties_dialog_update_rating),
9840         (rb_station_properties_dialog_update_playback_error),
9841         (rb_station_properties_dialog_sync_entries):
9842         * podcast/rb-feed-podcast-properties-dialog.c:
9843         (rb_feed_podcast_properties_dialog_update_title),
9844         (rb_feed_podcast_properties_dialog_update_title_label),
9845         (rb_feed_podcast_properties_dialog_update_author),
9846         (rb_feed_podcast_properties_dialog_update_location),
9847         (rb_feed_podcast_properties_dialog_update_copyright),
9848         (rb_feed_podcast_properties_dialog_update_language),
9849         (rb_feed_podcast_properties_dialog_update_summary):
9850         * podcast/rb-podcast-manager.c:
9851         (rb_podcast_manager_entry_downloaded),
9852         (rb_podcast_manager_db_entry_added_cb),
9853         (download_progress_update_cb),
9854         (rb_podcast_manager_db_entry_deleted_cb):
9855         * podcast/rb-podcast-properties-dialog.c:
9856         (rb_podcast_properties_dialog_update_title),
9857         (rb_podcast_properties_dialog_update_title_label),
9858         (rb_podcast_properties_dialog_update_feed),
9859         (rb_podcast_properties_dialog_update_location),
9860         (rb_podcast_properties_dialog_update_play_count),
9861         (rb_podcast_properties_dialog_update_bitrate),
9862         (rb_podcast_properties_dialog_update_last_played),
9863         (rb_podcast_properties_dialog_update_rating),
9864         (rb_podcast_properties_dialog_update_date),
9865         (rb_podcast_properties_dialog_update_description):
9866         * rhythmdb/rhythmdb-query-model.c:
9867         (rhythmdb_query_model_entry_changed_cb),
9868         (rhythmdb_query_model_remove_from_main_list),
9869         (rhythmdb_query_model_update_limited_entries),
9870         (rhythmdb_query_model_drag_data_get),
9871         (rhythmdb_query_model_album_sort_func):
9872         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9873         (save_entry):
9874         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9875         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9876         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9877         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9878         (rhythmdb_entry_get_double):
9879         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9880         * shell/rb-play-order-random-by-age-and-rating.c:
9881         (rb_random_by_age_and_rating_get_entry_weight):
9882         * shell/rb-play-order-random-by-age.c:
9883         (rb_random_by_age_get_entry_weight):
9884         * shell/rb-play-order-random-by-rating.c:
9885         (rb_random_by_rating_get_entry_weight):
9886         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9887         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9888         (rb_shell_player_set_playing_entry),
9889         (rb_shell_player_sync_replaygain),
9890         (rb_shell_player_sync_with_source),
9891         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9892         * sources/rb-playlist-source.c: (playlist_iter_func),
9893         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9894         (rb_playlist_source_entry_added_cb):
9895         * sources/rb-podcast-source.c:
9896         (rb_podcast_source_post_status_cell_data_func):
9897         * sources/rb-source.c: (rb_source_update_play_statistics):
9898         * sources/rb-sourcelist-model.c:
9899         (rb_sourcelist_model_drag_data_get):
9900         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9901         (rb_static_playlist_source_add_entry),
9902         (rb_static_playlist_source_remove_entry):
9903         * widgets/rb-entry-view.c: (type_ahead_search_func),
9904         (rb_entry_view_playing_cell_data_func),
9905         (rb_entry_view_rating_cell_data_func),
9906         (rb_entry_view_pixbuf_clicked_cb):
9907         * widgets/rb-header.c: (rb_header_get_duration):
9908         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9909         (rb_song_info_populate_dialog),
9910         (rb_song_info_update_playback_error),
9911         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9912         (rb_song_info_update_location), (rb_song_info_update_play_count),
9913         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9914         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9915         (rb_song_info_sync_entry_single): fix the huge number of times that
9916         the internals got accessed directly.
9918 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9920         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9921         trash' are grouped together.
9922         * shell/main.c: (main): Pass no-registration flag in to RBShell
9923         constructor, rather than mysteriously always passing TRUE.
9924         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9925         Set dirty flag when entries are removed from the model, so the play
9926         queue is marked dirty appropriately.
9927         * AUTHORS: update my email address
9929 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9931         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9933         * widgets/rb-druid.c: (path_dialog_response_cb):
9934         If the URI is local, don't display the 'file://' prefix.  
9935         Fixes #330919.
9937 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9939         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9940         Attach the notification to the tray icon widget, so libnotify
9941         positions it less badly.  Fixes #330876.
9943 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9945         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9946         Reverse the selection list before returning it, so we get it in the
9947         right order.  Fixes #330283 and some other weirdness.
9949 2006-02-11  James Livingston  <jrl@ids.org.au>
9951         * shell/rb-shell.c: (rb_shell_constructor),
9952         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9953         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9954         make small-mode and fullscreen mutually exclusive, since they don't
9955         work together
9957         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9958         Mode.
9960 2006-02-10  James Livingston  <jrl@ids.org.au>
9962         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9963         since it can cause it to be slower than real-time. Should fix bug
9964         322270.
9966 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9968         * rhythmdb/rhythmdb-query-model.c:
9969         (rhythmdb_query_model_set_property):
9970         Think just a little bit harder about that last commit.
9972 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9974         * rhythmdb/rhythmdb-query-model.c:
9975         (rhythmdb_query_model_set_property):
9976         Get the check for hidden entries the right way around.
9977         Fixes #330527, #330514.
9979         (rhythmdb_query_model_set_sort_order):
9980         Ignore no-op sort order changes, so we don't get critical
9981         messages when selecting 'all' in auto playlist browsers.
9983 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9985         Patch by: Christophe Fergeau  <teuf@gnome.org>
9987         * sources/rb-removable-media-source.c:
9988         (rb_removable_media_source_init),
9989         (rb_removable_media_source_constructor):
9990         Move icon setup code to the constructor, as the volume property
9991         haven't been set yet when _init is called.
9993 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9995         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9996         Make the source pixbuf a dynamic property.
9998         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9999         (rb_source_set_pixbuf, rb_source_set_property) 
10000         (rb_source_get_property): Add icon property.
10002         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
10003         (rb_auto_playlist_source_init):
10004         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
10005         (rb_static_playlist_source_init):
10006         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
10007         (rb_removable_media_source_init): 
10008         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
10009         (rb_podcast_source_init): 
10010         * sources/rb-library-source.c (rb_library_source_class_init) 
10011         (rb_library_source_set_property, rb_library_source_get_property): 
10012         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
10013         (rb_iradio_source_init): Remove impl_get_pixbuf and
10014         set icon property on source base class.
10016         * sources/rb-daap-source.c (rb_daap_get_icon): Get
10017         a different icon for when the share is password protected
10018         and locked.
10019         (rb_daap_source_new): Set icon property.
10020         (composite_icons): Composite an emblem on a pixbuf.
10021         (create_pixbufs): Load global pixbufs.
10022         (destroy_pixbufs): unref global pixbufs.
10023         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
10024         (connection_auth_cb, connection_connected_cb) 
10025         (connection_disconnected_cb): Update icon when connection
10026         status changes.
10027         (rb_daap_source_activate): Connect signals.
10029         * daapsharing/rb-daap-share.c (name_collision_cb): Run
10030         dialog with parent.
10032         * daapsharing/rb-daap-marshal.list: Add new signal.
10034         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
10035         (rb_daap_collision_dialog_new_run): Set parent of dialog.
10037         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
10038         Add authenticate, connected, and disconnected signals.
10039         (connection_get_password): emit authenticate signal instead
10040         of running dialog directly.
10041         (connection_connected, connection_disconnected): Emit signals.
10042         (handle_login): Emit connected signal.
10043         (handle_logout): Emit disconnected signal.
10044         (rb_daap_connection_do_something): Fix leak.
10046         Fixes #330291
10048 2006-02-09  James Livingston  <jrl@ids.org.au>
10050         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
10051         entries from the base model if we don't have show-hidden set. Fixes
10052         bug 330514.
10054 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10056         * daapsharing/rb-daap-share.c (message_get_session_id):
10057         Ugh. Use strtoul instead of atoi.
10058         (session_id_validate): Add debug statements.
10060 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10062         * daapsharing/rb-daap-connection.c (http_response_handler):
10063         Report the actual uri from the message in debug statements.
10065 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10067         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
10068         Add context argument.
10069         (message_get_session_id): New function to parse session id from
10070         the message.
10071         (message_get_revision_number): Break out function to parse
10072         revision number from the message.
10073         (session_id_validate): New function to validate given session id
10074         is valid for given context (ie. client address).
10075         (session_id_generate): Generate a random session id.
10076         (session_id_create): Create a unique session id and store it.
10077         (session_id_remove): Remove a session id from the store.
10078         (login_cb): Create a session id instead of using a constant one.
10079         (logout_cb): Validate session id.
10080         (update_cb): Use new message_get_revision_number function.
10081         (databases_cb): Validate session id.
10082         (server_cb): Add server context to argument list for callbacks.  It
10083         is needed to look up the remote host.
10084         (db_entry_changed_cb): Use braces.
10085         (soup_auth_callback): Remove FIXME.
10086         (rb_daap_share_server_start): Create session id store.
10087         (rb_daap_share_server_stop): Destroy session id store.
10089         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
10090         Don't base64-encode password here since it needs to be
10091         combined with the username first.
10093         * daapsharing/rb-daap-connection.c (build_message):
10094         Add username to Authorization token.
10095         (handle_login, handle_song_listing) 
10096         (rb_daap_connection_do_something): Session id
10097         must be an unsigned int.
10099         Fixes #329814
10101 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10103         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10104         Don't check if we've got a playing entry, ask the player object (duh).
10105         Might actually fix #329993.     
10107 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10109         * sources/rb-static-playlist-source.c:
10110         (rb_static_playlist_source_add_list_uri):
10111         Canonicalise URIs before trying to add them to the playlist, and 
10112         don't try to add files to the database for which there is 
10113         already an entry.
10115 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10117         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10118         Don't ask the entry view if we're playing, just check if we've got a
10119         playing entry.  Fixes #329993.
10121 2006-02-08  James Livingston  <jrl@ids.org.au>
10123         * rhythmdb/rhythmdb-query-model.c:
10124         (rhythmdb_query_model_set_property),
10125         (rhythmdb_query_model_finalize),
10126         (rhythmdb_query_model_base_complete): remove
10127         rhythmdb_query_model_base_entry_prop_changed, so that two signals
10128         don't get emitted for entry changes. Fixes bug 330301.
10130         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
10131         (rb_library_browser_init), (rb_library_browser_constructor),
10132         (rb_library_browser_new): do stuff in the constructor, not the init
10133         function, so that the db property gets set on RBPropertyViews
10134         correctly. Fixes a crash when dragging properties to a playlist.
10136 2006-02-07  William Jon McCann  <mccann@jhu.edu>
10138         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
10139         Actually stop soup server.  Fixes #329816.
10141 2006-02-07  James Livingston  <jrl@ids.org.au>
10143         * lib/rb-util.h:
10144         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
10145         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
10146         (collate_values_cb), (rb_collate_hash_table_keys),
10147         (rb_collate_hash_table_values): add functions to compare, copy and
10148         free string-lists. add functions to collate the keys or values of a
10149         hash table into a list.
10151         * rhythmdb/rhythmdb-property-model.c:
10152         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
10153         (_remove_entry_cb), (_add_entry_cb),
10154         (rhythmdb_property_model_set_property),
10155         (rhythmdb_property_model_get_property),
10156         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10157         (rhythmdb_property_model_row_inserted_cb),
10158         (rhythmdb_property_model_prop_changed_cb),
10159         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
10160         that are hidden, storing those that we have counted in a hash-table.
10162         * shell/Makefile.am: fix build order issue
10164         * shell/rb-shell-player.c: (rb_shell_player_set_property):
10165         * sources/rb-source.h:
10166         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10167         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10168         * sources/rb-podcast-source.c: (feed_select_change_cb): add
10169         browser-toggled method, rename _get_exta_views to _get_property_views,
10170         since several things depend on returning only that.
10172         * sources/rb-source.c: (rb_source_class_init),
10173         (rb_source_browser_toggled), (default_get_property_views),
10174         (rb_source_get_property_views), (rb_source_row_deleted_cb),
10175         (rb_source_gather_hash_keys),
10176         (rb_source_gather_selected_properties): above changes, and move some
10177         utility functions up from RBLibraryView
10179         * widgets/rb-property-view.c:
10180         (rb_property_view_selection_changed_cb): fix leak.
10182         * rhythmdb/rhythmdb-query-model.c:
10183         (rhythmdb_query_model_set_property),
10184         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
10185         (rhythmdb_query_model_set_sort_order),
10186         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
10187         query model being resorted.
10189         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
10190         NULL query.
10192         * rhythmdb/rhythmdb.h:
10193         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
10194         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
10195         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
10196         two queries. Add a function to append "property={X,Y,Z,...}" to a
10197         query.
10199         * sources/rb-library-source.c: (rb_library_source_class_init),
10200         (rb_library_source_finalize), (rb_library_source_constructor),
10201         (rb_library_source_cmd_choose_genre),
10202         (rb_library_source_cmd_choose_artist),
10203         (rb_library_source_cmd_choose_album), (impl_search),
10204         (impl_get_property_views), (impl_reset_filters),
10205         (rb_library_source_preferences_sync),
10206         (rb_library_source_browser_views_activated_cb),
10207         (rb_library_source_state_prefs_sync),
10208         (construct_query_from_selection), (rb_library_source_do_query),
10209         (rb_library_source_browser_changed_cb):
10210         * widgets/Makefile.am:
10211         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
10212         browser" widgets, which contains several property views, based on the
10213         code from RBLibrarySource. Make RBLibrarySource use it.
10215         * sources/rb-auto-playlist-source.c:
10216         (rb_auto_playlist_source_class_init),
10217         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
10218         (rb_auto_playlist_source_constructor), (impl_reset_filters),
10219         (impl_get_property_views), (impl_browser_toggled),
10220         (construct_query_from_selection),
10221         (rb_auto_playlist_source_do_query),
10222         (rb_auto_playlist_source_set_query),
10223         (rb_auto_playlist_source_browser_changed_cb): Use the new
10224         library-browser widget to add browsers to automatic playlists.
10226 2006-02-07  James Livingston  <jrl@ids.org.au>
10228         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
10229         properly.
10230         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
10231         type of the source is taken into account. Fixes bug 329621.
10233 2006-02-07  James Livingston  <jrl@ids.org.au>
10235         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10236         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
10237         1.1, and perform URI canonicalistion when first upgrading. This should
10238         fix our remaining canonicalisation issues, such as bug 329988.
10240 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10242         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
10243         Track the playing entry when the entry view isn't in the playing
10244         state, so we don't have to get the state changes exactly right.
10245         Fixes #330135.
10247 2006-02-06  James Livingston  <jrl@ids.org.au>
10249         * shell/rb-shell-player.c: (open_location_thread),
10250         (rb_shell_player_open_location): fix several iradio issues: having to
10251         press play after double-clicking on a station, not working correctly
10252         without a http:// prefix, and ignoring totem-plparser results other
10253         than success or error (e.g. IGNORE).
10255 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10257         Addition of dbus methods for dealing with static playlists and the
10258         play queue.  Fixes #329958.
10260         * shell/Makefile.am:
10261         * shell/rb-playlist-manager.h:
10262         * shell/rb-playlist-manager.xml:
10263         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10264         (rb_playlist_manager_get_playlists),
10265         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10266         (rb_playlist_manager_create_static_playlist),
10267         (rb_playlist_manager_delete_playlist),
10268         (rb_playlist_manager_add_to_playlist),
10269         (rb_playlist_manager_remove_from_playlist),
10270         (rb_playlist_manager_export_playlist):
10271         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10272         to create, delete, list, modify, export, and import  static playlists.
10273         
10274         * shell/main.c: (main): Register playlist manager object with dbus.
10276         * shell/rb-shell.h:
10277         * shell/rb-shell.xml:
10278         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10279         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10280         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10281         object, and implement the addToQueue and removeFromQueue methods.
10282         
10283         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10284         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10285         formats.
10287 2006-02-05  James Livingston  <jrl@ids.org.au>
10289         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10290         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10291         (save_entry): allow storage of booleans in the on-disk db, and
10292         save/load the HIDDEN property.
10294         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10295         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10296         to the state it was when RB shutdown. This makes RB appear to start
10297         faster, as tracks can appear before the stat is done. Remote files
10298         still start hidden. From bug 325215.
10300 2006-02-05  James Livingston  <jrl@ids.org.au>
10302         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10303         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10304         really cares about the difference from "entry-added", and it isn't
10305         emitted by the tree backend anyway.
10307         * rhythmdb/rhythmdb-query-model.c:
10308         (rhythmdb_query_model_constructor):
10309         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10310         remove the references to the entry-restored signal.
10312 2006-02-05  James Livingston  <jrl@ids.org.au>
10314         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10315         issue.
10317 2006-02-05  James Livingston  <jrl@ids.org.au>
10319         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10320         things are NULL before using g_object_unref. Fixes bug 327452.
10322         * player/rb-recorder-gst.c: (rb_recorder_construct):
10323         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10324         rather than assertion.
10326         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10327         emit a warning, rather than asserting if an unknown playlist type is
10328         encountered.
10330 2006-02-05  James Livingston  <jrl@ids.org.au>
10332         * widgets/Makefile.am:
10333         * widgets/rb-simple-view.c:
10334         * widgets/rb-simple-view.h: Move the two features that this class
10335         provides into RBPropertyView, and remove this class. Closes bug
10336         327500.
10338         * podcast/rb-feed-podcast-properties-dialog.c:
10339         * podcast/rb-feed-podcast-properties-dialog.h:
10340         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10341         (rb_podcast_source_feeds_show_popup_cb):
10342         * sources/rb-podcast-source.h:
10343         * widgets/rb-property-view.c: (rb_property_view_class_init),
10344         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10345         (rb_property_view_append_column_custom),
10346         (rb_property_view_button_press_cb):
10347         * widgets/rb-property-view.h: Updated for the above change.
10349 2006-02-04  James Livingston  <jrl@ids.org.au>
10351         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10352         too close to Move to Trash and people aren't likely to use it often.
10354 2006-02-04  James Livingston  <jrl@ids.org.au>
10356         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10358 2006-02-04  James Livingston  <jrl@ids.org.au>
10360         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10361         passed a path instead of a URI.
10363         * sources/rb-generic-player-source.c: (default_get_mount_path):
10364         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10365         the path. This fixes bug 329723.
10367 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10369         * daapsharing/rb-daap-structure.c:
10370         (rb_daap_content_code_string_as_int32):
10371         Use network byte order.
10373 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10375         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10376         Use a hash for source lookup.
10377         (mdns_service_added, mdns_service_removed): Handle
10378         service-added and service-removed signals from RBDaapMdnsBrowser.
10379         (remove_source): GDestroyNotify function for when sources
10380         are removed from the hash.
10381         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10382         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10383         (rb_daap_sources_shutdown): Update.
10384         (source_host_find): GHRFunc for finding a source by ip.
10385         (rb_daap_source_find_for_uri): Use the hash source lookup.
10387         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10388         Namespace keys.
10389         (password_check_button_toggled_cb): Handle password enabled.
10390         (share_name_entry_focus_out_event_cb): Namespace keys.
10391         Handle changes more robustly.
10392         (share_password_entry_focus_out_event_cb): Handle password entry.
10393         (add_daap_preferences): Connect to password signals.
10395         * lib/rb-preferences.h: Add DAAP keys.
10397         * data/glade/daap-prefs.glade: Add password UI.
10399         * data/rhythmbox.schemas: Add password keys.
10401         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10402         assert with warning.
10404         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10405         gconf keys to lib/rb-preferences.h.  Namespace
10406         the gconf keys.
10407         (create_share): Add password support.
10408         (enable_sharing_changed_cb): Namespaced keys.
10409         (require_password_changed_cb): Handle key change.
10410         (share_name_changed_cb): Namespaced keys.
10411         (share_password_changed_cb): Handle key change.
10412         (rb_daap_sharing_init): Namespaced keys.
10413         (rb_daap_sharing_shutdown): Ditto.
10415         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10416         Add password property.
10417         (rb_daap_share_set_name): Break out prop set function.
10418         (published_cb): New RBDaapMdnsPublisher signal handler.
10419         (name_collision_cb): Ditto.
10420         (rb_daap_share_init): Create publisher object and
10421         connect to signals.
10422         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10423         (rb_daap_share_set_property): Break out prop set functions.
10424         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10425         Unref publisher.
10426         (rb_daap_share_new): Add password argument.  Start
10427         publishing and DAAP server.
10428         (message_set_from_rb_daap_structure): Change print to debug.
10429         (server_info_cb): Set auth method to publish.
10430         (logout_cb): Handle DAAP client logout.
10431         (update_cb): Remove C++ comments.
10432         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10433         (server_cb): Add debug.
10434         (soup_auth_callback): Handle auth requests.
10435         (rb_daap_share_server_start): Split up functions for starting
10436         server and publishing.  Add auth handling to server.
10437         (rb_daap_share_server_stop): Split stop server and publish.
10438         No C++ comments.
10439         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10440         Start and stop publishing.
10441         (rb_daap_share_restart): Restart server and publishing.
10442         (rb_daap_share_maybe_restart): Conditionally restart.
10444         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10445         (rb_daap_collision_dialog_new_run): Don't use
10446         separators in dialogs.
10448         * daapsharing/rb-daap-connection.h: Add private
10449         data to class structure.
10451         * daapsharing/rb-daap-connection.c: Move
10452         some includes to top of file.  Make private
10453         data struct name consistent with others.
10454         (rb_daap_connection_class_init): Rename
10455         private.
10456         (rb_daap_connection_init): Get and store the pointer
10457         to the private data once instead of in every
10458         function.  Create a username value "Rhythmbox_VERSION".
10459         (connection_get_password): Don't get private.
10460         (build_message): Ditto.
10461         (http_response_handler): Don't init variables in
10462         declaration.  Add debug.  Spacing.
10463         (http_get, entry_set_string_prop, handle_server_info) 
10464         (handle_login, handle_update, handle_database_info) 
10465         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10466         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10467         (rb_daap_connection_state_done): Don't get private.
10468         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10469         spacing.  Correctly base64 encode the Authentication token.
10470         Add username to auth token.
10471         (rb_daap_connection_get_playlists): Don't get private.
10472         (rb_daap_connection_dispose): Ditto.  Free username.
10473         (rb_daap_connection_set_property) 
10474         (rb_daap_connection_get_property): Don't get private.
10476         * daapsharing/Makefile.am: Conditionally
10477         compile MDNS backends.  Add marshall stuff.
10479         * daapsharing/.cvsignore: Update.
10481         * configure.ac: Add conditional to see which
10482         MDNS backend we should use.
10484         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10486         * daapsharing/rb-daap-marshal.list:
10487         * daapsharing/rb-daap-mdns-browser-avahi.c:
10488         * daapsharing/rb-daap-mdns-browser-howl.c:
10489         * daapsharing/rb-daap-mdns-browser.h:
10490         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10491         * daapsharing/rb-daap-mdns-publisher-howl.c:
10492         * daapsharing/rb-daap-mdns-publisher.h:
10493         Split rb-daap-mdns.c into two classes.  One for
10494         publishing and one for browsing.  Split out
10495         the avahi and howl backends into different files.
10497         Fixes #322966
10498         
10499 2006-02-04  James Livingston  <jrl@ids.org.au>
10501         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10503         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10504         crash if metadata reader gives us NULL for strings.
10506 2006-02-03  James Livingston  <jrl@ids.org.au>
10508         * shell/rb-shell-player.c: (open_location_thread),
10509         (rb_shell_player_open_location):
10510         retrieve iradio playlists files in a thread, so that with GStreamer
10511         0.10 the UI doesn't block while connecting to stations. The streamer
10512         connection is synchronous with 0.8, so that will still block (a bit).
10513         Fixed bug 128106.
10515         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10516         because _open_entry does that automatically when it is ready to.
10518 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10520         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10521         (rb_podcast_source_post_status_cell_data_func):
10522         Leave the podcast status column blank for episodes that have not been
10523         downloaded.
10525 2006-02-03  James Livingston  <jrl@ids.org.au>
10527         Add support for source-specific toolbar items, and make the Burn
10528         Playlist item only available for playlists. Also add Update All
10529         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10531         * data/ui/rhythmbox-ui.xml:
10532         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10533         (impl_get_ui_actions): make the Burn CD toolbar item only for
10534         playlists
10536         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10537         * lib/rb-stock-icons.h: load the Eject icon as stock.
10539         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10540         action
10542         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10543         (rb_shell_select_source):
10544         * sources/rb-source.c: (rb_source_class_init),
10545         (rb_source_disconnect), (default_get_ui_actions),
10546         (rb_source_get_ui_actions):
10547         * sources/rb-source.h: add support for source-specific toolbar items
10549         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10550         Eject and Rip toolbar items
10552         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10553         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10554         item.
10556 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10558         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10559         * shell/main.c: (main):
10560         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10561         Replace all g_critical calls with g_warning, since none of them are
10562         the sort of thing the process should die over.  Fixes #329398.
10564 2006-02-03  James Livingston  <jrl@ids.org.au>
10566         * configure.ac: mention gst-plugins-base in the error message for not
10567         finding GStreamer 0.10, since not having that will cause it to fail.
10569 2006-02-03  James Livingston  <jrl@ids.org.au>
10571         * configure.ac: fix typo that means you get the wrong error message if
10572         you explicity request a particular playback engine, and it can't be
10573         found.
10575 2006-02-03  James Livingston  <jrl@ids.org.au>
10577         * data/glade/library-prefs.glade: allow the watched library location
10578         to be a non-local place.
10580 ============ Version 0.9.3
10583 2006-02-02  James Livingston  <jrl@ids.org.au>
10585         * NEWS: update NEWS
10586         * configure.ac: bump version to 0.9.3
10588         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10589         <caillon@redhat.com>, fixed bug 329517. 
10591 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10593         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10595         * widgets/rb-song-info.c: (rb_song_info_constructor):
10596         Make year and disc number fields non-editable if tag editing
10597         is disabled.  Fixes #329463.
10599 2006-02-01  James Livingston  <jrl@ids.org.au>
10601         * rhythmdb/rhythmdb-property-model.c:
10602         (rhythmdb_property_model_row_inserted_cb),
10603         (rhythmdb_property_model_prop_changed_cb),
10604         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10605         correctly. Fixes bug 327061.
10607         * rhythmdb/rhythmdb-query-model.c:
10608         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10609         the HIDDEN property when an entry is removed for being hidden.
10611         * rhythmdb/rhythmdb-query-model.h:
10612         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10613         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10614         models's "connected" property. Whatever it was needed for seems to
10615         have gone.
10617 2006-02-01  James Livingston  <jrl@ids.org.au>
10619         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10621         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10622         (rb_shell_player_playing_changed_cb): block the signal to prevent
10623         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10624         button pausing.
10626 2006-02-01  James Livingston  <jrl@ids.org.au>
10628         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10629         /should/ now work, if the neccessary plugins get ported.
10631 2006-01-30  James Livingston  <jrl@ids.org.au>
10633         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10634         string properties to "Unknown" is the string is empty. Kind of fixes
10635         bug 327495.
10637         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10638         gettext calls once, rather than once per time the function is used.
10639         This stops us making tens of thousands of gettext calls on startup,
10640         which reduces the cpu-time of startup by 10-20%
10642 2006-01-29  James Livingston  <jrl@ids.org.au>
10644         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10645         (rhythmdb_add_uri):
10646         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10647         for files containing known video streams.
10650 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10652         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10653         required.
10655 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10657         * INSTALL.quick: More random updates
10659         * rhythmdb/rhythmdb-query-model.c:
10660         (rhythmdb_query_model_class_init),
10661         (rhythmdb_query_model_set_property),
10662         (rhythmdb_query_model_get_property),
10663         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10664         Remove user sort data handling, take a property ID and a reverse
10665         flag instead.
10666         (rhythmdb_query_model_insert_into_main_list),
10667         (rhythmdb_query_model_insert_into_limited_list),
10668         (rhythmdb_query_model_do_reorder),
10669         (_reverse_sorting_func):
10670         Handle reverse sorting by calling _reverse_sorting_func, which
10671         calls the real sort function and reverses the result.
10672         (rhythmdb_query_model_set_sort_order):
10673         Allow this to be called to set the initial sort order for limited
10674         queries, and handle reverse sorting when reordering.
10675         (rhythmdb_query_model_location_sort_func),
10676         (rhythmdb_query_model_album_sort_func),
10677         (rhythmdb_query_model_artist_sort_func),
10678         (rhythmdb_query_model_genre_sort_func),
10679         (rhythmdb_query_model_track_sort_func),
10680         (rhythmdb_query_model_double_ceiling_sort_func),
10681         (rhythmdb_query_model_ulong_sort_func),
10682         (rhythmdb_query_model_date_sort_func),
10683         (rhythmdb_query_model_string_sort_func):
10684         Sort functions moved from rb-entry-view.c.
10685         * rhythmdb/rhythmdb-query-model.h:
10686         Add the sort functions, and update the changed functions.
10687         
10688         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10689         Just call _resort_model when the query model is set, since it
10690         does all the same things.
10691         (rb_entry_view_append_column):
10692         Rework bits so the rating column doesn't have to be so much of a
10693         special case.
10694         (rb_entry_view_append_column_custom):
10695         Take a property ID to sort on, rather than arbitrary custom data.
10696         (rb_entry_view_resort_model):
10697         Query model does all the reverse sort handling now.
10698         * widgets/rb-entry-view.h: Update _append_column_custom.
10700         * sources/rb-play-queue-source.c:
10701         (rb_play_queue_source_constructor):
10702         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10703         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10704         (rb_podcast_source_post_date_cell_sort_func),
10705         (rb_podcast_source_post_status_cell_sort_func),
10706         (rb_podcast_source_post_feed_cell_sort_func):
10707         Updates required by all the other changes.
10709         * rhythmdb/rhythmdb-property-model.c:
10710         (rhythmdb_property_model_drag_data_get):
10711         Sort the query results on the selected property,
10712         so they arrive in the expected order.  All the other changes were made
10713         to make this possible.  Fixes bug #327494.
10715 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10716         
10717         * shell/rb-shell-clipboard.c:
10718         Use GTK_STOCK_REMOVE icon for the remove action in
10719         the play queue too.
10721 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10723         * sources/rb-play-queue-source.c:
10724         (rb_play_queue_source_constructor),
10725         (rb_play_queue_source_update_count):
10726         Don't make the 'queued songs' column clickable,
10727         and add the queued song count to the column title.
10729 2006-01-29  James Livingston  <jrl@ids.org.au>
10731         * configure.ac: remove "experimental" marking from DAAP, and enable by
10732         default if the dependencies are found.
10734 2006-01-29  James Livingston  <jrl@ids.org.au>
10736         * NEWS: update NEWS
10738 2006-01-29  James Livingston  <jrl@ids.org.au>
10740         patch by: William Jon McCann  <mccann@jhu.edu>
10742         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10743         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10744         property used for the feed list. Fixes problem with feeds with no
10745         episodes not showing up.
10747 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10748         
10749         * shell/rb-play-order-random-by-age-and-rating.c:
10750         (rb_random_by_age_and_rating_get_entry_weight):
10751         Fix compile errors, bug #328978.
10753 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10755         * INSTALL.quick, README: Random updates
10756         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10758 2006-01-28  James Livingston  <jrl@ids.org.au>
10760         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10761         default rating back to 0 (from 2.5, which was needed for autorating).
10763         * shell/rb-play-order-random-by-age-and-rating.c:
10764         (rb_random_by_age_and_rating_get_entry_weight):
10765         * shell/rb-play-order-random-by-rating.c:
10766         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10767         2.5 for the purposes of weighting entries.
10769 2006-01-28  James Livingston  <jrl@ids.org.au>
10771         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10772         translator comments, to make it clearer what the "friendly time"
10773         formatting strings mean.
10775 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10777         * daapsharing/rb-daap-connection.c: (http_response_handler):
10778         Fix the sense of the overflow check so it'll accept valid input.
10780 2006-01-27  James Livingston  <jrl@ids.org.au>
10782         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10784         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10785         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10787 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10789         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10790         
10791         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10792         Don't include the artist field in the window title if it's blank.
10793         Fixes #325973.
10795 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10797         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10798         Use stock delete icon for move to trash and stock remove
10799         for remove menu item.
10801 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10803         * shell/rb-shell.c: (rb_shell_constructor),
10804         (idle_handle_load_complete):  Don't start the playlist save
10805         timeout until we've loaded the playlists, otherwise we'll
10806         write an empty playlist file if startup takes too long.
10808 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10810         * shell/rb-shell.c: Make view toolbar toggle use
10811         shift+ctrl+t.  Fixes #327585.
10813 2006-01-25  James Livingston  <jrl@ids.org.au>
10815         patch by: Christope Fergeau  <teuf@gnome.org>
10817         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10818         (http_response_handler): fix a potential buffer overflow issue.
10820 2006-01-25  James Livingston  <jrl@ids.org.au>
10822         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10823         Year column wide enough to display "Unknown"
10825 2006-01-25  James Livingston  <jrl@ids.org.au>
10827         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10828         (rb_podcast_source_post_status_cell_data_func): make the episode
10829         status wording better. Part of bug 321607.
10831 2006-01-25  James Livingston  <jrl@ids.org.au>
10833         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10834         others with a separator.
10836         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10837         stock Delete icon.
10839 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10841         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10843 2006-01-23  James Livingston  <jrl@ids.org.au>
10845         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10846         0.3.2. Fixed bug 328158.
10848 2006-01-23  James Livingston  <jrl@ids.org.au>
10850         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10851         (gulong_gst_date_transform), (rb_metadata_class_init):
10852         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10854 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10856         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10857         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10858         (record_entry_change): Protect added_entries and changed_entries with
10859         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10861 2006-01-23  James Livingston  <jrl@ids.org.au>
10863         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10864         the browser for audio CDs.
10866 2006-01-22  James Livingston  <jrl@ids.org.au>
10868         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10869         NEVER_FAIL as it causes the daemon-not-running error to never be
10870         reported, resulting in bug 319438 re-occurring.
10872 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10874         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10875         Just call the podcast manager's update method.  Unbreaks the 'update
10876         all feeds' command.
10878 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10880         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10882 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10884         * configure.ac: Don't disable DAAP with gstreamer 0.10
10886         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10887         (rb_daap_src_class_init), (rb_daap_src_init),
10888         (rb_daap_src_finalize), (rb_daap_src_set_property),
10889         (rb_daap_src_get_property), (rb_daap_src_write),
10890         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10891         (_split_uri), (rb_daap_src_open):
10892         * daapsharing/rb-daap-src.h:
10893         Mostly fix seeking, handle chunked transfer encoding, and port to
10894         gstreamer 0.10.
10895         
10896         * player/rb-player-gst.c:
10897         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10898         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10900         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10901         being fixed.
10903 2006-01-21  James Livingston  <jrl@ids.org.au>
10905         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10906         for Year metadata in DAAP sources. Fixes bug 327700.
10908         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10910 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10912         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10913         enum values instead of magic numbers.
10915         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10916         Add number of songs that match each property title into
10917         the cell.  Also show the number of properties that match
10918         in the All entry.
10919         (rb_property_view_constructor): Use enum values instead of
10920         magic numbers.
10922         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10923         Query podcast posts instead of feeds for browser.  Use
10924         post SUBTITLE which is the location for the property view.
10925         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10926         (construct_query_from_selection) 
10927         (rb_podcast_source_cmd_delete_feed) 
10928         (rb_podcast_source_cmd_properties_feed) 
10929         (rb_podcast_source_cmd_update_feed): Use variable to make
10930         it clear what the selection data represents.
10931         (rb_podcast_source_feed_title_cell_data_func): Add number
10932         of posts that belong to each feed in the browser.
10934         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10935         (rhythmdb_property_model_delete_prop): Decrement the refcount
10936         for the All entry.
10937         (rhythmdb_property_model_get_column_type): Use column enum
10938         values instead of magic numbers.  Add NUMBER column.
10939         (rhythmdb_property_model_get_value): Use enum.
10940         Add NUMBER column that represents the refcount for
10941         the title of that property.
10942         (rhythmdb_property_model_perform_sync): Don't fake up
10943         a title for All here.
10945         Fixes #327372.
10946         
10947 2006-01-21  James Livingston  <jrl@ids.org.au>
10949         Make Rhythmbox start faster by not blocking the UI while database
10950         initialisation and loading occurs. Closes bug 323348.
10952         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10953         start 10 seconds later instead of immediately.
10954         
10955         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10956         safe to call from any thread.
10958         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10959         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10960         so the UI doesn't block.
10962 2006-01-18  James Livingston  <jrl@ids.org.au>
10964         * sources/rb-static-playlist-source.c:
10965         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10966         cause crashes. Oops. fixes bug 327477.
10968 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10970         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10971         Set GST element state to NULL before unreffing.
10972         Fixes #327422.
10974 2006-01-18  James Livingston  <jrl@ids.org.au>
10976         * sources/rb-static-playlist-source.c:
10977         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10978         type, since the playlists can contain non-song entries. Fixes bug
10979         327448.
10981         * sources/rb-play-queue-source.c:
10982         (rb_play_queue_source_class_init): disable the search box for the
10983         queue.
10985 2006-01-18  James Livingston  <jrl@ids.org.au>
10987         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10988         dragging of podcast episodes. Fixed bug 327450.
10990 2006-01-18  James Livingston  <jrl@ids.org.au>
10992         * rhythmdb/rhythmdb-query-model.c:
10993         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10994         dragging to an emoty playlist.
10996 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10998         * sources/rb-playlist-source-recorder.c:
10999         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
11001 2006-01-17  James Livingston  <jrl@ids.org.au>
11003         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
11005         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
11006         different number of tracks than exist on the cd, since that happens
11007         with audio+data hybrid CDs. Part of bug 325046.
11009 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
11011         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11012         Remove useless call to gtk_tree_view_column_set_clickable().
11014         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
11015         Don't store sort data for columns if the sort function is NULL,
11016         so only sortable columns will be in the column sort data map.
11017         (rb_entry_view_set_columns_clickable): Only make columns we can sort
11018         on clickable.
11019         (rb_entry_view_constructor):  The 'playing icon' column is never
11020         clickable, so don't connect a signal handler for it.
11022         Fixes bug 326811.
11024 2006-01-17  James Livingston  <jrl@ids.org.au>
11026         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
11027         are 0.8 only. Fix element detection.
11029         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
11030         saving the new metadata failed
11032 2006-01-17  James Livingston  <jrl@ids.org.au>
11034         * shell/rb-shell-player.c: (do_next_idle),
11035         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
11036         (eos_cb): release audio device when a playlist finishes. Fixes bug
11037         323679.
11039 2006-01-17  James Livingston  <jrl@ids.org.au>
11041         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
11042         canonicalise the URIs when things are added via library watching.
11044 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11046         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11047         Off by one error in default speed index.
11049 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11051         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
11052         (update_speed_combobox, update_speed_combobox):
11053         Get a list of the actually supported write speeds from
11054         n-c-b >= 2.13.90.  Otherwise use fallback list.
11056 2006-01-17  James Livingston  <jrl@ids.org.au>
11058         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
11059         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
11060         don't get stuck on recursive symlinks. Fixed bug 125452.
11062 2006-01-17  James Livingston  <jrl@ids.org.au>
11064         Add support for mass-storage audio players. Players are detected via
11065         either the HAL "audio_player" capability, or a ".is_audio_player" file
11066         in the root of the volume. Closes bug 325602.
11068         * configure.ac: separate using HAL from ipod support.
11070         * lib/rb-file-helpers.c: (rb_uri_is_local):
11071         * lib/rb-file-helpers.h: add function to determine whether a URI is
11072         local.
11074         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
11075         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
11076         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
11077         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
11078         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
11079         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
11080         directories can be scanned for files to add as  non-SONG entries.
11082         * shell/rb-removable-media-manager.c:
11083         (rb_removable_media_manager_mount_volume): add checking for
11084         mass-storage players.
11086         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
11087         * sources/rb-ipod-source.c: (rb_ipod_source_new),
11088         (hal_udi_is_ipod):
11089         * sources/rb-removable-media-source.c:
11090         (rb_removable_media_source_class_init),
11091         (rb_removable_media_source_constructor): move some things up to the
11092         RBRemovableMediaSource, rather than making subclasses do it.
11094         * sources/Makefile.am:
11095         * sources/rb-generic-player-source.c:
11096         * sources/rb-generic-player-source.h: add mass-storage player source.
11098 2006-01-16  James Livingston  <jrl@ids.org.au>
11100         patch by: William Jon McCann  <mccann@jhu.edu>
11102         * rhythmdb/rhythmdb-query-model.c:
11103         (rhythmdb_query_model_base_row_deleted): fix build issue from last
11104         commit.
11106 2006-01-16  James Livingston  <jrl@ids.org.au>
11108         Patch to add support for "chained queries" and putting hidden tracks
11109         in query models. Use chained queries to add search box support to
11110         normal playlists, and to make hidden entries not get lost. Fixes bug
11111         319278.
11113         * rhythmdb/rhythmdb-query-model.h:
11114         * rhythmdb/rhythmdb-query-model.c:
11115         (rhythmdb_query_model_class_init),
11116         (rhythmdb_query_model_set_property),
11117         (rhythmdb_query_model_get_property):
11118         (rhythmdb_query_model_finalize): add "show-hidden" and
11119         "base-model" properties.
11121         (rhythmdb_query_model_set_connected),
11122         (rhythmdb_query_model_has_pending_changes),     
11123         (rhythmdb_query_model_entry_added_cb),
11124         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
11125         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
11126         (rhythmdb_query_model_remove_entry),
11127         (rhythmdb_query_model_drag_data_received),
11128         (rhythmdb_query_model_base_row_inserted),
11129         (rhythmdb_query_model_base_row_deleted),
11130         (rhythmdb_query_model_base_non_entry_dropped),
11131         (rhythmdb_query_model_base_complete),
11132         (rhythmdb_query_model_base_entry_prop_changed),
11133         (rhythmdb_query_model_base_rows_reordered),
11134         (rhythmdb_query_model_row_drop_possible): handle base-model by
11135         chaining events and operations where necessary. Make hidden entries
11136         not get added only if "show-hidden" is false.
11138         (rhythmdb_query_model_child_index_to_base_index),
11139         (rhythmdb_query_model_base_index_to_child_index),
11140         (rhythmdb_query_model_get_entry_index): utility functions for handling
11141         base-model entries.
11143         (rhythmdb_query_model_reapply_query): apply the current query, and
11144         remove entries that don't match it.
11146         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
11147         empty queries.
11149         * sources/rb-source.c: (rb_source_set_property): move the unref later
11150         to fix problem if it is the last reference.
11152         * sources/rb-static-playlist-source.c:
11153         (rb_static_playlist_source_class_init),
11154         (rb_static_playlist_source_init),
11155         (rb_static_playlist_source_finalize),
11156         (rb_static_playlist_source_constructor), (impl_reset_filters),
11157         (impl_search), (rb_static_playlist_source_do_query),
11158         (impl_save_contents_to_xml),
11159         (rb_static_playlist_source_add_location_internal): use a chained query
11160         model to filter out hidden entries and implement the search box.
11162 2006-01-15  James Livingston  <jrl@ids.org.au>
11164         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
11165         the default playlist loading, which I broke earlier.
11167 2006-01-15  James Livingston  <jrl@ids.org.au>
11169         patch by: William Jon McCann  <mccann@jhu.edu>
11171         * sources/rb-playlist-source.c: (playlist_iter_func): use
11172         totem-plparser's new API version macros to check for API changes.
11173         Handle the recent API change.
11175 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11177         * sources/rb-library-source.c: (impl_get_config_widget):
11178         Ref the preferences object to match the unref in the
11179         finalizer.  Fixes some portion of #323505.
11181 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11183         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
11184         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
11185         Fix valgrind warnings about accessing uninitialised values.
11187 2006-01-14  William Jon McCann  <mccann@jhu.edu>
11189         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
11191 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11193         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
11194         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
11195         Stops the 'now playing' icon from being displayed after the play
11196         order finishes.
11198 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11200         * podcast/rb-podcast-manager.c:
11201         (rb_podcast_manager_db_entry_deleted_cb):
11202         Don't try to delete files we never downloaded, and cancel downloads
11203         for deleted episodes.  Fixes bug #326862.
11204         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
11205         Don't complain about NULL data items in the selection list.
11207 2006-01-14  James Livingston  <jrl@ids.org.au>
11209         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11210         Make the name ofthe queue non editable. Fixes bug 326918.
11212 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11214         * sources/rb-playlist-source-recorder.c (burn_cd) 
11215         (ask_rewrite_disc): Don't use our locally copied functions
11216         if we have at least 2.13.
11218 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11220         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
11221         Correct the argument type for the process_error signal.
11222         May fix bug #323154.
11224 2006-01-13  James Livingston  <jrl@ids.org.au>
11226         save the queue to disk when exiting, and reload on startup. Fixed bug
11227         326677 .
11229         * shell/rb-playlist-manager.c:
11230         (rb_playlist_manager_load_playlists),
11231         (rb_playlist_manager_save_playlists_async): don't disable saving of
11232         the queue
11234         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11235         add the queue source as a gobject property.
11237         * sources/rb-play-queue-source.c:
11238         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
11239         code to save the queue to xml
11241         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
11242         load the queue from xml.
11243         * sources/rb-playlist-xml.h:
11245         * sources/rb-static-playlist-source.c:
11246         (rb_static_playlist_source_load_from_xml),
11247         (rb_static_playlist_source_new_from_xml):
11248         * sources/rb-static-playlist-source.h: split the playlist xml loading
11249         from the static playlist creation function, so the queue can use it.
11251 2006-01-13  James Livingston  <jrl@ids.org.au>
11253         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
11254         assertion that should be there. Fixes bug 325923.
11255         
11256         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
11257         return NULL if the entry already exists (e.g. as another type).
11258         * daapsharing/rb-daap-connection.c: (handle_song_listing):
11259         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11260         (rb_podcast_manager_insert_feed):
11261         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
11262         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
11263         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11264         for the above function returning NULL.
11266 2006-01-12  James Livingston  <jrl@ids.org.au>
11268         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11269         is enabled. Fixes bug 326673.
11270         
11271         * doc/reference/tmpl/eggtrayicon.sgml:
11272         * doc/reference/tmpl/rb-daap-src.sgml:
11273         * doc/reference/tmpl/rb-source.sgml:
11274         * doc/reference/tmpl/rb-statusbar.sgml:
11275         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11276         * doc/reference/tmpl/rhythmbox-unused.sgml:
11277         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11279 2006-01-11  James Livingston  <jrl@ids.org.au>
11281         * widgets/rb-song-info.c: (rb_song_info_constructor),
11282         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11283         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11284         the same value for properties. From bug 326054.
11286 2006-01-11  James Livingston  <jrl@ids.org.au>
11288         * sources/rb-source.h:
11289         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11290         (rb_shell_player_set_playing_source_internal), (eos_cb):
11291         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11292         every entry.
11294         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11295         source use this. Closes bug 322077.
11297 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11299         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11300         In order for set_icon_data_from_pixbuf() to be
11301         effective, one must not set an icon in _new().
11303 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11305         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11306         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11307         (egg_tray_icon_notify): Add support for libnotify 0.3.
11308         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11309         * configure.ac: Determine the version of libnotify.
11310         Fixes #326333.
11312 2006-01-08  James Livingston  <jrl@ids.org.au>
11314         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11315         trying to share a track with unknown length.
11317 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11319         * shell/rb-shell-player.c: (rb_shell_player_init):
11320         Sync volume on startup so it doesn't default to 0.
11322 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11324         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11325         (rb_shell_player_get_property), (rb_shell_player_open_location),
11326         (info_available_cb):  Add the iradio streamed song title as a
11327         property, and emit a signal when it changes.
11329         * shell/rb-shell.c: (rb_shell_constructor),
11330         (rb_shell_player_elapsed_changed_cb),
11331         (rb_shell_player_stream_song_changed_cb):
11332         Issue a notification when the iradio song title changes.
11333         Fixes #326166.
11335 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11337         * shell/rb-shell-player.c: (rb_shell_player_init),
11338         (rb_shell_player_finalize), (rb_shell_player_set_property),
11339         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11340         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11341         (rb_shell_player_set_volume_relative),
11342         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11343         (rb_shell_player_get_mute):
11344         * shell/rb-shell-player.h:
11345         * shell/rb-shell-player.xml:
11346         Store volume as a property on RBShellPlayer, rather than in gconf.
11347         Add some methods to control volume via dbus.
11349         * shell/rb-shell.c: (rb_shell_constructor),
11350         (rb_shell_volume_widget_changed_cb),
11351         (rb_shell_player_volume_changed_cb):
11352         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11353         Update volume using player properties rather than gconf, and sync the
11354         volume with the volume control button when something else changes it.
11355         Fixes #323840.
11357 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11359         * shell/rb-tray-icon.c (tray_popup_position_menu):
11360         Make tray menu align with edge of panel.
11362         patch from Jaap A. Haitsma <jaap@haitsma.org>
11363         Fixes #319913
11365 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11366         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11367         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11368         (rb_playlist_manager_new_playlist_from_selection_data):
11369         Make a reasonable default name for playlists created from
11370         dropped data.  Fixes #326116.
11372 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11374         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11375         Use new gconf key.
11376         (burn_cd): Always eject CD after burning.  Too many drives
11377         get confused if we don't.  Save the speed used if the burn
11378         was completed successfully.
11380         * data/rhythmbox.schemas: Use our own speed instead of from
11381         n-c-b. The situation is that the default_speed for n-c-b is most
11382         likely the maximum write speed.  This is fine for n-c-b because it
11383         has burn-proof turned on.  We can't turn it on for audio CDs
11384         because the results are poor in quality.  So we'll just pick a
11385         default that should work for everyone (4).
11387 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11388         
11389         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11390         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11392 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11394         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11395         in my previous commit.  Fixes #326037.
11397 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11399         patch by: Jonathan Matthew
11401         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11402         error on Fedora Rawhide.
11404 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11406         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11407         Assume HTTP URLs ending with .xml or .rss are podcasts.
11408         (rb_shell_add_uri): Handle adding podcast feeds.
11410         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11411         Register as the source for podcast feeds.
11413 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11415         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11416         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11417         (rb_shell_preferences_append_view_page):
11418         * shell/rb-shell-preferences.h:
11419         Fix typo in function name.  Fixes #325992.
11421 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11423         * shell/rb-audioscrobbler.c:
11424         Add '+' to the list of characters to URI-encode, so it doesn't get
11425         interpreted as a space.
11427 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11429         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11430         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11431         goes away while we're still trying to log in.
11433 2006-01-06  James Livingston  <jrl@ids.org.au>
11435         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11437 2006-01-06  James Livingston  <jrl@ids.org.au>
11439         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11440         support for Year to automatic playlists. Closes bug 321341.
11442         * rhythmdb/rhythmdb-query-model.c:
11443         (rhythmdb_query_model_set_property):
11444         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11445         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11446         (rhythmdb_query_free), (rhythmdb_query_serialize),
11447         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11448         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11449         * rhythmdb/rhythmdb.h: Support special
11450         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11451         year in date.
11453         * widgets/rb-query-creator-properties.c:
11454         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11455         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11457 2006-01-06  James Livingston  <jrl@ids.org.au>
11459         * configure.ac: make the playback backend selection work correctly
11461         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11462         (rb_daap_src_class_init), (rb_daap_src_dispose),
11463         (rb_daap_src_change_state), (rb_daap_src_initialize):
11464         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11465         doesn't work for this class. Fixes bug 325934
11467 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11469         * configure.ac: Fix check for libnotify.
11471 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11473         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11474         Get name element for current lang and remove all name nodes
11475         from the XML tree.
11476         (get_playlist_name_from_xml): Try to get name element or
11477         fall back to name attribute.
11478         (rb_playlist_source_new_from_xml): Get name before turning over
11479         to sub-types for parsing so that we can remove name elements
11480         from the tree if necessary.
11482         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11483         Load default playlists file if per user playlists are not found.
11485         * data/playlists.xml.in: 
11486         * data/Makefile.am: 
11487         * data/.cvsignore: Add default set of playlists.
11488         Fixes #323004
11490 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11492         * shell/main.c: (main): Don't use the dbus interface to show the
11493         window if we're also going to use the bonobo interface.
11495 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11497         * shell/rb-history.c: (rb_history_set_playing):
11498         Allow setting the playing song to NULL.
11499         (rb_history_append), (rb_history_delete_link):
11500         Don't randomly change position when entries are added and removed,
11501         it confuses play orders.
11502         
11503         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11504         Random orders always have a next entry if the model is not empty.
11505         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11506         Go back to the start of the history if we're past its end.
11508         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11509         (rb_shuffle_play_order_go_next): Go back to the start of the history
11510         if we're past its end.
11511         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11512         the history if the current entry is removed.
11514         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11515         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11516         the play order when the query has finished. This wasted about 10% CPU
11517         while the query was running.
11519         Fixes #324641: assertion failures when the query model was changed
11520         such that the playing song was no longer present.
11522 2006-01-05  James Livingston  <jrl@ids.org.au>
11524         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11525         (rb_daap_src_dispose), (rb_daap_src_change_state):
11526         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11527         (rhythmdb_gda_finalize):
11528         * widgets/rb-cell-renderer-pixbuf.c:
11529         * widgets/rb-cell-renderer-rating.c:
11530         (rb_cell_renderer_rating_class_init),
11531         (rb_cell_renderer_rating_finalize):
11532         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11533         * widgets/rb-load-failure-dialog.c:
11534         (rb_load_failure_dialog_class_init),
11535         (rb_load_failure_dialog_finalize):
11536         * widgets/rb-rating.c: (rb_rating_class_init),
11537         (rb_rating_finalize):
11538         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11539         (rb_search_entry_finalize): use G_DEFINE_TYPE
11541         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11543 2006-01-05  James Livingston  <jrl@ids.org.au>
11545         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11547         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11548         the tarball.
11550         * shell/rb-history.c: (rb_history_class_init),
11551         (rb_history_finalize):
11552         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11553         (rb_playlist_manager_finalize):
11554         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11555         (rb_remote_init): use G_DEFINE_TYPE.
11557 2006-01-05  James Livingston  <jrl@ids.org.au>
11559         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11560         changes
11562 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11564         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11565         Disable burn action when source is not a playlist.
11566         Fixes #323578.
11568 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11570         Optionally use libnotify to display song change and other
11571         notifications, and provide an option to disable notifications.
11572         Fixes #320355 and innumerable informal complaints.
11574         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11575         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11576         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11577         (egg_tray_icon_notify):
11578         * widgets/eggtrayicon.h:
11579         * configure.ac:
11580         * shell/Makefile.am:
11581         Optionally use libnotify instead of eggnotificationbubble.
11583         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11584         (rb_tray_icon_constructor), 
11585         (rb_tray_icon_show_notifications_changed_cb),
11586         (rb_tray_icon_hide_notify_cb)
11587         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11588         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11589         EggNotificationBubble pointer to eggtrayicon.
11591         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11592         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11593         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11595 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11597         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11598         Request a minimum size for the progress bar so that
11599         the window doesn't shrink too small.
11601 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11603         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11604         (add_db_entry), (db_entry_deleted_cb):
11605         Don't track the number of songs currently present, track the next ID
11606         to assign.  Fixes potential ID conflict problems.
11607         
11608         (db_entry_changed_cb), (rb_daap_share_start_publish),
11609         (rb_daap_share_stop_publish):
11610         Watch for db entry changes, and when songs become non-hidden after
11611         a successful stat, add them to the mapping tables.   Fixes #325178,
11612         making the DAAP server usable again.
11614 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11615         
11616         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11617         (rb_statusbar_construct), (rb_statusbar_init),
11618         (rb_statusbar_finalize), (rb_statusbar_set_property),
11619         (rb_statusbar_get_property), (rb_statusbar_new),
11620         (rb_statusbar_sync_with_source):
11621         * shell/rb-statusbar.h:
11622         Remove visibility management code, stop watching for play order
11623         changes (status bar doesn't show play order any more), remove unused
11624         'player' property, and some other minor cleanup.
11625         
11626         * shell/rb-shell.c: (rb_shell_constructor),
11627         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11628         (rb_shell_sync_statusbar_visibility):
11629         Manage status bar visibility here rather than in the status bar
11630         itself, so we can take small mode into account.  Fixes #323589.
11632 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11634         * widgets/eggnotificationbubble.c: (draw_bubble):
11635         Move the bubble off the visible screen while setting up bevels.  
11636         Fixes #316810.
11638 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11640         * shell/rb-shell-player.c: (rb_shell_player_init),
11641         (rb_shell_player_finalize): 
11642         Remove unused structure members.
11643         
11644         (do_next_idle), (rb_shell_player_error):
11645         Only queue one call to do_next_idle, so we don't skip tracks if we get
11646         two errors for the same song.  Fixes #325216.
11648 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11650         * data/glade/podcast-feed-properties.glade,
11651          podcast/rb-feed-podcast-properties-dialog.c:
11652         (rb_feed_podcast_properties_dialog_init),
11653         (rb_feed_podcast_properties_dialog_update):
11654         Add 'last episode' field to the podcast feed properties dialog.
11656         * podcast/rb-feed-podcast-properties-dialog.c:
11657         (rb_feed_podcast_properties_dialog_update_last_update),
11658         (rb_feed_podcast_properties_dialog_update_last_episode),
11659          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11660         Use last-seen property for the time at which we last updated the feed,
11661         and post-time for the time the last episode was published.
11663         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11664         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11665         feed, use last-seen (which in 0.9.2 was the last post time).
11667         Fixes #323894.
11669 2006-01-01  James Livingston  <jrl@ids.org.au>
11671         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11673         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11674         year from the ipod database.
11676 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11678         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11679         Only set the pipeline back to NULL state for really uninteresting
11680         files.  This was causing deadlocks with various video files.
11681         Fixes #324912.
11683 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11685         * data/glade/song-info-multiple.glade:
11686         Add disc number label and field.
11687         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11688         (rb_song_info_constructor): 
11689         Handle widgets for disc number.
11690         (rb_song_info_sync_entries_multiple):
11691         Set disc number property on selected entries.
11692         Fixes #324777.
11694 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11696         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11697         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11698         Activate the default widget when enter is pressed in these dialogs.
11699         Fixes #322887.
11701 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11703         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11704         Use rb_shell_player_get_playing_entry, so we get the right entry
11705         when playing from the queue.  Fixes #325379.
11707 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11709         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11710         Include podcast posts with no publication date.  Typically
11711         seen in static collections rather than feeds.
11713 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11715         * shell/main.c: (main): Don't attempt to handle
11716         bonobo-only arguments if we couldn't get a bonobo
11717         client proxy.
11719 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11721         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11722         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11723         abort if daap sharing is disabled and then re-enabled.
11725 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11727         * podcast/rb-podcast-parse.c (rb_insert_item):
11728         Add debugging.
11729         (rb_podcast_parser_start_element): Support itunes:image.
11730         Add debugging.  Don't abuse the break statement.  Warn
11731         if state is unknown.
11732         (rb_podcast_parser_end_element): Add debugging.  Warn
11733         if state is unknown.
11734         (rb_podcast_parser_characters): Warn if state is unknown.
11736         Fixes parsing of feeds that use the itunes:image element.
11737         Fixes #324632
11739 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11741         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11742         (stations_view_drag_data_received_cb):
11743         Remove calls to rhythmdb_entry_lookup_by_location, as
11744         rb_iradio_source_add_station does that anyway.
11745         
11746         (rb_iradio_source_add_from_playlist):
11747         If the URL doesn't point to a playlist, add it as the stream
11748         URL instead.
11750 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11752         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11753         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11754         so we don't get an assertion failure.
11755         Fixes #325025.
11757 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11759         * shell/main.c: (load_uri_args): don't compile this in if
11760         neither bonobo nor dbus are enabled.  Fixes #324890.
11762 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11764         * sources/rb-audiocd-source.c:
11765         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11766         so it closes the device.
11768 2005-12-20  James Livingston  <jrl@ids.org.au>
11770         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11771         so that it doesn't spend forever getting stuck on the one file. Don't
11772         report errors for failing to change state on known non-audio files.
11774         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11775         audio sink creation if we can't create the gconfaudiosink. This lets
11776         it work with only gst-plugins-base on 0.10.
11778 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11780         * rhythmdb/rhythmdb-query-model.c:
11781         (rhythmdb_query_model_set_sort_order):
11782         Fix a tiny memory leak in the previous commit.
11784 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11786         * rhythmdb/rhythmdb-query-model.c:
11787         (rhythmdb_query_model_set_sort_order):
11788         Don't try to emit reorders for empty query models, since it doesn't
11789         achieve anything and it results in a few warnings.
11791 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11793         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11794         Make burn dialog non-resizable so that the expander can shrink.
11795         Fixes #308951.
11797 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11799         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11800         add entries without a location, rather than those with one.
11802 2005-12-19  James Livingston  <jrl@ids.org.au>
11804         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11805         the error isn't set.
11807 2005-12-19  James Livingston  <jrl@ids.org.au>
11808         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11809         add entries without a location. Fixes bug 324290.
11811         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11812         without a location.
11814         * shell/main.c: (main): don't crash if dbus initialisation fails
11815         without setting an error
11817 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11819         * sources/rb-library-source.c: Remove unused structure members
11820         (rb_library_source_do_query): Actually use the cached 'all' query.
11821         Fixes #324025.
11822         
11823 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11825         * sources/rb-audiocd-source.c 
11826         (rb_audiocd_get_cd_info): tab
11827         (rb_audiocd_scan_songs): Return boolean success/failure,
11828         fix error messages a bit.
11829         (metadata_cb): Don't crash if we have no tracks
11830         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11831         the CD.
11832         Fixes #324222.
11834 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11836         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11837         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11838         key.
11840         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11841         Fixes #324157
11843 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11845         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11846         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11847         (fullscreen_changed_cb): 
11848         * lib/rb-preferences.h: 
11849         * data/ui/rhythmbox-ui.xml: 
11850         * data/rhythmbox.schemas:
11851         Add fullscreen mode.
11853         Fixes #324075.
11855 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11857         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11858         configure.  It was not working with RPM.
11859         * data/Makefile.am: Switched dbus directory location to use
11860         datadir instead of variable that was not working.
11862 2005-12-13  James Livingston  <jrl@ids.org.au>
11864         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11866         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11867         the podcast browser work again. Closes bug 323856.
11869 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11871         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11872         Remove C99ism.
11874         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11875         (rb_utf_friendly_time):
11876         * lib/rb-cut-and-paste-code.h:
11878         * podcast/rb-feed-podcast-properties-dialog.c:
11879         (rb_feed_podcast_properties_dialog_parse_time):
11880         * podcast/rb-podcast-properties-dialog.c:
11881         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11882         to display the date in a more user friendly way.
11883         For example, if the feed was updated yesterday it will say:
11884         Last updated: Yesterday 10:00 AM
11885         instead of printing the date.
11887 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11889         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11890         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11891         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11892         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11893         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11894         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11895         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11896         (rb_podcast_parse_date): Add support for some real world
11897         date formats.
11898         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11899         (rb_podcast_parse_item_free): Style and no need to check
11900         for NULL before g_free.
11902         May fix #323742
11904 2005-12-12  James Livingston  <jrl@ids.org.au>
11906         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11907         with gstreamer 0.10, which replaced audioscale.
11909         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11910         function to free the SoupSession
11912         * shell/rb-source-header.c: (rb_source_header_set_property),
11913         (rb_source_header_disclosure_toggled_cb),
11914         (rb_source_header_view_browser_changed_cb),
11915         (rb_source_header_sync_control_state):
11916         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11917         * sources/rb-library-source.c: (rb_library_source_class_init):
11918         * sources/rb-source.c: (rb_source_class_init),
11919         (rb_source_get_status), (default_get_browser_key),
11920         (rb_source_get_browser_key), (rb_source_can_browse),
11921         (rb_source_notify_status_changed),
11922         (rb_source_notify_filter_changed):
11923         * sources/rb-source.h: seperate the enabling of browsers from the use
11924         of a gconf key.
11926 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11928         * data/glade/podcast-feed-properties.glade: 
11929         * data/glade/podcast-properties.glade: Use scrolled viewports
11930         for description text.  Fix regression of #320509.
11932 2005-12-11  James Livingston  <jrl@ids.org.au>
11934         * sources/rb-auto-playlist-source.c:
11935         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11936         (impl_search), (rb_auto_playlist_source_do_query),
11937         (rb_auto_playlist_source_set_query),
11938         (rb_auto_playlist_source_get_query): add support for the search box
11939         to automatic playlists.
11941         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11942         memory leak.
11944 2005-12-11  James Livingston  <jrl@ids.org.au>
11946         * NEWS: update NEWS
11948 2005-12-11  James Livingston  <jrl@ids.org.au>
11950         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11951         (rhythmdb_load), (monitor_subdirectory),
11952         (rhythmdb_sync_library_location):  start the library sync and
11953         monitoring in an idle callback.
11955 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11957         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11958         (rb_podcast_source_constructor): Remove unused pixbuf column.
11959         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11960         Use consistent style.
11962         Fixes #322961.
11964 2005-12-11  James Livingston  <jrl@ids.org.au>
11966         * rhythmdb/rhythmdb-property-model.c:
11967         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11968         (rhythmdb_property_model_insert),
11969         (rhythmdb_property_model_delete_prop):
11970         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11971         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11972         (destroy_tree_property):
11973         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11974         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11975         GMemChunks, they are crap and deprecated. Improves startup-time and
11976         memory usage slightly.
11978 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11980         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11981         Added license and website info.
11983         * MAINTAINERS.old: Add Colin.
11984         * MAINTAINERS: Add James.
11985         * AUTHORS: Put back in order.  Add extra space between name and email
11986         to make it easier to read.  Add James and jonathan.
11988         * widgets/rb-song-info.c (rb_song_info_init) 
11989         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11991 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11993         Play queue implementation. Closes bug 107787.
11995         * data/rhythmbox.schemas: add items for whether the queue should be
11996         displayed as a sidebar, and the height of the sourcelist if it is.
11998         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11999         playlist, and podcast popups; add 'view queue as sidebar' menu item,
12000         add popups for queue as source and as sidebar.  We need a separate
12001         popup for the sidebar view because otherwise it's hard to tell which
12002         of the visible entry views the action came from.
12004         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
12006         * po/POTFILES.in: Add new file
12008         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
12009         Add helper function for deciding if a podcast episode is available for
12010         playback.
12012         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
12013         reorder entries in the query model.
12014         (idle_process_update): Handle new update type used to insert entries
12015         at a particular position in the query model.
12016         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
12017         parameter to specify the position (-1 meaning 'at the end').
12018         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
12019         parameter.
12020         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
12021         bad entry removal updates for entries that aren't in the model.
12022         (rhythmdb_query_model_emit_reorder): Add helper function for
12023         reordering rows.
12024         (rhythmdb_query_model_move_entry): New method for moving entries
12025         around in the model
12026         (rhythmdb_query_model_entry_added_cb),
12027         (rhythmdb_query_model_update_limited_entries),
12028         (rhythmdb_query_model_do_reorder),
12029         (rhythmdb_query_model_do_insert): Pass through the index parameter,
12030         use rhythmdb_query_model_emit_reorder where appropriate.
12032         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12033         Don't allow the queue to be deleted.
12034         (handle_playlist_entry_cb): Update for method signature change
12035         (rb_playlist_manager_save_playlists_async),
12036         (rb_playlist_manager_get_playlists): Don't save the play queue,
12037         don't report it as a playlist.
12039         * shell/rb-play-order.c: Include queue play order in the list of
12040         available orders.
12042         * shell/rb-shell.c
12043         (rb_shell_class_init), (rb_shell_get_property): Add new property 
12044         for access to the clipboard object.
12045         (rb_shell_constructor): Handle playing-from-queue signal to update the
12046         sourcelist display; add queue sidebar in to UI, listen for queue
12047         sidebar pane changes, and read initial settings from gconf.
12048         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
12049         Only tell the sourcelist the source has changed if the new source is 
12050         not the queue, as we update the sourcelist differently in that case.
12051         (rb_shell_set_window_title): Only use the cached window title if the
12052         playing state was the same when it was created.
12053         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
12054         (rb_shell_sync_pane_visibility): Only hide the side pane if the
12055         sourcelist is hidden and the queue is shown as a source.
12056         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
12057         mode, since it doesn't make any sense.
12058         (sourcelist_visibility_changed_cb): Update the visibility of the pane
12059         too.
12060         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
12061         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
12062         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
12063         playing from queue shown as sidebar.
12065         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
12066         MusicProperties action here from rb-shell-player.c, since it acts like
12067         cut/copy/paste etc.
12068         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
12069         (rb_shell_clipboard_get_property): new property for queue source.
12070         Watch for selection changes in the sidebar entry view as well as the
12071         normal one.
12072         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
12073         actions and MusicProperties.
12074         (rb_shell_clipboard_cmd_queue_delete),
12075         (rb_shell_clipboard_cmd_add_song_to_queue),
12076         (rb_shell_clipboard_cmd_song_info),
12077         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
12079         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
12080         actually came from (could be the playing source, or the queue), add a 
12081         new play order object for the queue, add a property for the queue
12082         source, add a signal for when we switch between playing from the
12083         source and from the queue.
12084         (rb_shell_player_set_property): Handle playing directly from the
12085         queue so we stop once the queue is empty.  Create queue play order
12086         when we get the queue source.
12087         (rb_shell_player_get_playing_source): Return the source we're actually
12088         playing from.
12089         (rb_shell_player_get_playing_entry): Get playing entry from queue if
12090         that's where it is.
12091         (rb_shell_player_set_playing_entry): Update the queue play order if 
12092         that's where we're playing from.
12093         (rb_shell_player_play_order_update_cb): Take has next/previous for the
12094         queue into consideration too.
12095         (swap_playing_source): Helper function for switching the playing
12096         source.
12097         (rb_shell_player_do_previous): Check the queue, even though there's
12098         never a previous entry in it (yet), swap playing source if it changed.
12099         (rb_shell_player_do_next): Check the queue for entries to play before
12100         the normal play order, and swap playing source if it changed.
12101         (rb_shell_player_do_previous_or_seek): Check the queue for previous
12102         entries to go to as well.
12103         (rb_shell_player_playpause): Check the queue before the selection and
12104         the play order, and swap playing source if it changed.
12105         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
12106         (rb_shell_player_entry_activated_cb): Use
12107         rb_podcast_manager_entry_downloaded, do some tapdancing to make
12108         activating queue entries work properly (move the activated entry to
12109         the start of the queue and then play it); if we were playing from the
12110         queue, clear its playing entry so it'll start again from the start
12111         after the activated entry.
12112         (rb_shell_player_sync_buttons): MusicProperties action handler moved
12113         to rb-shell-clipboard.c
12114         (actually_set_playing_source): Add helper for updating the playing
12115         source.
12116         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
12117         signal if we stop or start doing so; use actually_set_playing_source; 
12118         emit playing-source-changed if we actually did change source.
12120         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
12121         rb_static_playlist_source_add_location.
12123         * sources/rb-library-source.c (rb_library_source_class_init): Allow
12124         enqueueing of songs from the library.
12126         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
12127         enqueueing of sonsg from playlists.
12128         (rb_playlist_source_entry_added_cb): Add extra parameter for
12129         rhythmdb_query_model_add_entry.
12130         
12131         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
12132         Implement (can_)add_to_queue for this class.
12133         (rb_podcast_source_entry_activated): Use
12134         rb_podcast_manager_entry_downloaded.
12135         (impl_can_add_to_queue): Return TRUE if at least one entry that has
12136         been downloaded is selected.
12137         (impl_add_to_queue): Only add downloaded entries to the queue.
12139         * sources/rb-source.{c,h}:
12140         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
12141         methods.
12142         (rb_source_class_init): Don't allow enqueueing by default; implement 
12143         add_to_queue though.
12144         (default_add_to_queue): Add all selected entries to the queue.
12145         
12146         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
12147         would be playing if there wasn't anything in the queue).
12148         (set_source_playing): Helper function for manipulating tree store.
12149         (rb_sourcelist_set_playing_source): Use set_source_playing
12150         (rb_sourcelist_preempt_playing_source): Update preempted source
12151         pointer, manipulate source states.
12153         * sources/rb-static-playlist-source.{c,h}:
12154         (rb_static_playlist_source_add_location_internal),
12155         (rb_static_playlist_source_add_location),
12156         (rb_static_playlist_source_add_entry): Add index parameter for
12157         specifying where in the playlist the new entry goes.
12158         (rb_static_playlist_source_new_from_xml), (impl_paste),
12159         (rb_static_playlist_source_add_list_uri),
12160         (rb_static_playlist_source_add_location_swapped),
12161         (rb_static_playlist_source_add_locations),
12162         (rb_static_playlist_source_non_entry_dropped),
12163         (rb_static_playlist_source_row_inserted):
12164         Handle new index parameter everywhere it appears
12165         (rb_static_playlist_source_move_entry): New method for moving entries
12166         around in the playlist.
12168         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
12169         warnings when trying to scroll entry views that have never been
12170         displayed.
12172         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
12173         play order that removes the old entry when switching to a new one.
12175         * sources/rb-play-queue-source.{c,h}: New files, implementing a
12176         static playlist subclass that has a second entry view for the sidebar
12177         view using alternate formatting, and that displays the number of
12178         entries it contains in its source list entry.
12180 2005-12-10  James Livingston  <jrl@ids.org.au>
12182         * rhythmdb/rhythmdb-query-model.c:
12183         (rhythmdb_query_model_add_entry),
12184         (rhythmdb_query_model_drag_data_received):
12185         * sources/rb-static-playlist-source.c:
12186         (rb_static_playlist_source_non_entry_dropped): when things are
12187         dropped, ignore any blank lines in the list of uris. Make the source
12188         responsible for adding new items to the db.
12190         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
12191         empty string.
12193 2005-12-10  James Livingston  <jrl@ids.org.au>
12195         * shell/rb-shell-player.c: (rb_shell_player_set_property),
12196         (rb_shell_player_sync_buttons),
12197         (rb_shell_player_selection_changed_cb): watch for the
12198         "selection-changed" signal, so that the Song Properties get enabled.
12199         Closes bug 323694.
12201 2005-12-10  James Livingston  <jrl@ids.org.au>
12203         * data/rhythmbox.schemas: fix the gconf schema
12205 2005-12-10  James Livingston  <jrl@ids.org.au>
12207         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
12208         the decoded-pad callback with gstreamer 0.8, it causes problems.
12210 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12212         Remove more junk from RBEntryView. Closes bug 323640.
12214         * widgets/rb-entry-view.{c,h}:
12215         Remove unused private structure members, replace 'playing' boolean
12216         with an enum (so we know if we're paused too), and store a pointer to
12217         the RBShellPlayer too.  
12218         (rb_entry_view_class_init), (rb_entry_view_set_property),
12219         (rb_entry_view_get_property):
12220         Remove 'entry-selected' and 'changed' signals and
12221         'playing-entry' property, add 'selection-changed' signal and
12222         'shell-player' and 'playing-state' properties.
12223         (rb_entry_view_new): Take the shell player object reference
12224         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
12225         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
12226         No longer needed, shell player is the place to get this information.
12227         (rb_entry_view_busy), (rb_entry_view_get_duration),
12228         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
12229         (rb_entry_view_get_next_from_entry),
12230         (rb_entry_view_get_previous_from_entry),
12231         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
12232         (rb_entry_view_get_num_entries):
12233         Removed, callers should go to the query model directly.
12234         (rb_entry_view_playing_song_changed): Update active query model, emit
12235         row changed signals to update pixbufs, and scroll to the playing song
12236         when the playing song changes, based on a signal from the shell
12237         player.
12238         (queue_changed_sig), (rb_entry_view_row_changed_cb),
12239         (emit_entry_changed): Evil, removed.
12240         (rb_entry_view_selection_changed_cb): Remove old signals, add new
12241         selection-changed signal.
12242         (rb_entry_view_select_none), (rb_entry_view_select_entry):
12243         Remove selection lock.  It didn't work anyway.
12244         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
12245         (rb_entry_view_emit_row_changed): Simple helper function to emit
12246         row-changed signals.
12248         * widgets/Makefile.am: Entry view needs headers from the shell/
12249         directory.
12250         * widgets/rb-song-info.{c,h}: Use the query model for everything except
12252         scrolling the entry view to show the entry being displayed.
12253         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
12254         'source' property so we can watch for query model changes.
12255         (rb_song_info_finalize): Unref objects, disconnect signal handlers
12256         (rb_song_info_set_property): Watch for query model changes, don't
12257         watch for entry view changes.
12258         (rb_song_info_new): Take source as a parameter, use the source's entry
12259         view unless one was specifically supplied.
12260         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
12261         Use query model rather than entry view to move between songs.
12262         (rb_song_info_update_buttons): Use query model.
12263         (rb_song_info_query_model_changed_cb): Handle query model changes.
12265         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12266         Only one copy of the code to enable/disable the CD burning action
12267         (rb_playlist_manager_playlist_entries_changed):
12268         Use the query model to get the number of entries, not the entry view.
12270         * shell/rb-play-order-random-by-age-and-rating.c,
12271         shell/rb-play-order-random-by-age.c,
12272         shell/rb-play-order-random-by-rating.c,
12273         shell/rb-play-order-random-equal-weights.c:
12274         Use G_DEFINE_TYPE
12276         * shell/rb-shell-player.{c,h}:
12277         Remove a few unused entries from the structure.
12278         (rb_shell_player_set_property):
12279         Don't use the 'changed' signal on the entry view (it's evil)
12280         (rb_shell_player_have_first): No longer needed
12281         (rb_shell_player_play): Just tell the entry view it's playing
12282         (rb_shell_player_playpause): Tell the entry view it's paused
12283         when pausing.
12284         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12285         (rb_shell_player_property_row_activated_cb):
12286         Get the entry to play using the query model, not the entry view.
12287         (rb_shell_player_sync_buttons): Update entry view state while we're
12288         here.
12289         (rb_shell_player_set_playing_source_internal): Update entry view state
12290         (rb_shell_player_get_playing): Ask the entry view, not the player.
12291         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12292         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12293         the window title and tray icon tooltip.
12294         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12296         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12297         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12298         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12299         view constructor, pass the source in to the song info widget
12300         constructor.
12302         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12303         Use 'selection-changed' instead of 'changed', since that's what the
12304         clipboard cares about.
12305         (rb_shell_clipboard_set_source): Don't die if source == NULL
12307 2005-12-10  James Livingston  <jrl@ids.org.au>
12309         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12310         * sources/rb-playlist-source-recorder.c:
12311         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12312         stuff not use the deprecated API when compiled against 2.13
12314 2005-12-10  James Livingston  <jrl@ids.org.au>
12316         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12318         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12319         problem where the genre tag was getting set to the artist. Closes bug
12320         323642.
12322 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12324         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12325         Return NULL if can't get first iter.
12327         Fixes #323663
12329 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12331         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12332         updated rb_station_properties_dialog_new API.
12333         (rb_iradio_source_add_from_playlist): New public function.
12334         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12336         * shell/rb-shell.c (new_station_location_added): Handle
12337         iradio location added signal.
12338         (rb_shell_cmd_new_station): Use new iradio station dialog.
12340         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12341         (rb_station_properties_dialog_new): Don't squeeze new
12342         station functionality into this class.
12343         (rb_station_properties_dialog_response_cb): ditto.
12344         (rb_station_properties_dialog_update_title): Make
12345         consistent with other properties dialogs.
12346         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12348         * iradio/rb-new-station-dialog.[ch]: 
12349         * iradio/Makefile.am: Add new station dialog.
12351         * data/glade/station-new.glade: New file based on
12352         new podcast feed dialog.
12353         * data/glade/station-properties.glade: Updated to
12354         be consistent with song properties dialog.
12356         Fixes #323306.
12358 2005-12-10  James Livingston  <jrl@ids.org.au>
12360         patch by: Ståle Lyngaas <staale@lyngaas.com>
12362         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12363         submit songs longer than 30 minutes. Fixes bug 323639.
12365 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12367         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12368         async save function.
12369         (rb_shell_finalize): Remove save timeout sources.  Reorder
12370         steps a bit to make saving db and playlists a bit more
12371         failsafe in case something goes wrong later.
12372         (rb_shell_constructor): Keep track of save timeout source.
12373         (add_to_library_response_cb): Keep track of db save timeout source.
12375         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12376         g_atomic.
12377         (rb_playlist_manager_shutdown): New function to shutdown
12378         threads etc. before exit.
12379         (rb_playlist_manager_finalize): Moved handling outstanding
12380         threads stuff to shutdown since if there are outstanding threads
12381         they hold a ref and finalize is never called.
12382         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12383         of signal which may be required for sync save.
12384         (rb_playlist_manager_save_playlists_async): Renamed old
12385         save_playlists to save_playlists_async.  Use g_atomic.
12386         (rb_playlist_manager_save_playlists): New function to
12387         perform sync saves (symmetric with RhythmDB API).
12388         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12390         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12391         Style consistency anality.
12392         (rhythmdb_finalize): Remove save timeout source.
12393         (rhythmdb_set_property, rhythmdb_get_property) 
12394         (rhythmdb_process_events): More anality and keep track of
12395         save timeout source.
12396         (action_thread_main): No need to call g_thread_exit.
12397         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12398         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12399         (write_encoded_gvalue, read_encoded_property): La la la.
12401         Fixes #322940.
12403 2005-12-10  James Livingston  <jrl@ids.org.au>
12405         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12406         non-audio files.
12408 2005-12-10  James Livingston  <jrl@ids.org.au>
12410         * Makefile.am:
12411         * configure.ac: remove the rpm spec files, so that automake works.
12412         oops
12414         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12415         locking issue
12417 2005-12-09  James Livingston  <jrl@ids.org.au>
12419         * debian/: try to get cvs to actually remove the files
12421 2005-12-09  James Livingston  <jrl@ids.org.au>
12423         * rhythmbox.spec.in:
12424         * debian/: remove the distro package stuff, they are *really* old, and
12425         downstream manage it anyway.
12427 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12429         Rework play orders to work off query models rather than 
12430         entry views, and track the playing entry themselves rather
12431         than relying on the entry view to do it.  This makes the entry
12432         view mostly just a widget. Closes bug 323612.
12434         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12435         Use query model rather than entry view to get the number
12436         of entries in playlists.
12438         * rhythmdb/rhythmdb-query-model.{c.h}
12439         (rhythmdb_query_model_tree_path_to_entry),
12440         (rhythmdb_query_model_iter_to_entry),
12441         (rhythmdb_query_model_get_next_from_entry),
12442         (rhythmdb_query_model_get_previous_from_entry):
12443         New utility functions for iterating through query models.
12444         (rhythmdb_query_model_compute_status_normal):
12445         Have one copy of this code, not four.
12447         * shell/rb-play-order.{c,h}:
12448         Add signals for when next/previous availability changes, and
12449         when the playing entry is removed, and add a property for
12450         the current playing entry.  Add gtkdoc comments too.
12451         (rb_play_order_class_init): Add new property and signals.
12452         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12453         (rb_play_orer_query_model_changed_cb),
12454         (rb_play_order_query_model_changed): 
12455         Use query model rather than entry view.
12456         (rb_play_order_set_property), (rb_play_order_get_property):
12457         Handle new playing-entry property.  Call playing_entry_changed virtual
12458         method so subclasses can do any processing required.
12459         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12460         (rb_play_order_set_playing_entry):
12461         Just use the playing-entry property.
12462         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12463         Utility methods for subclasses.
12464         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12465         Update next/previous availability, check if the playing entry
12466         was removed.
12467         (default_playing_entry_removed):
12468         Keep the current behaviour of just stopping playback when the 
12469         playing entry is deleted.
12470         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12471         these for subclasses that don't have go_next/go_previous, but do
12472         have get_next/get_previous.
12473         (rb_play_order_update_have_next_previous): Emit signal if the
12474         availability of next/previous entries has changed.
12476         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12477         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12478         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12479         methods.
12480         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12481         on the last song in the shuffled order, go back to the start. This
12482         means if you press 'play' again you'll get the whole order again, not
12483         just one song.
12485         * shell/rb-shell-player.c:
12486         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12487         play order rather than the entry view.
12488         (rb_shell_player_set_property): Update the play order when the
12489         selected source changes and we aren't playing anything.
12490         (rb_shell_player_sync_play_order): Copy the playing entry across to
12491         the new play order so playback continues from the same song, and watch
12492         for updates to have_next/have_previous.
12493         (rb_shell_player_play_order_update_cb): Enable/disable the
12494         next/previous actions when next/previous entry availability changes.
12495         (rb_shell_player_jump_to_current): Just use the play order's idea of
12496         what's playing, not the entry view's; if not playing anything, clear
12497         the selection, so when a playlist ends and you hit play again, it'll
12498         start at the start rather than the end.
12499         (rb_shell_player_do_previous): restructure a bit.
12500         (rb_shell_player_do_next): restructure, jump to new playing entry in
12501         an idle handler instead of directly.
12502         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12503         song if there is one.
12504         (rb_shell_player_playpause): Jump to playing song, don't update the
12505         play order if we got the song from the selection.
12506         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12507         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12508         looks after next/previous actions now.  Don't break if called while
12509         there is no selected source.
12510         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12511         (rb_shell_player_set_playing_source_internal),
12512         (rb_shell_player_error): No need to track the attempted playing entry
12513         any more, since the play order does that.
12515         * shell/rb-shell.c:
12516         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12517         rb_shell_player_get_playing_entry rather than going through the entry
12518         view.
12520         * shell/rb-statusbar.c (rb_statusbar_set_property),
12521         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12522         than the entry view for status bar text changes.
12523         (rb_statusbar_sync_status): Ask the query model directly
12525         * sources/rb-source.{c}: Add query model property.
12526         (default_get_status): Get status text from query model, should be
12527         suitable for most sources.
12528         (rb_source_set_property): Listen for changes to the query model 
12529         to update the status text.
12530         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12531         (idle_emit_status_changed): Emit status-changed signals when query
12532         model changes. 
12534         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12535         (impl_get_status): Not needed, RBSource does this now
12536         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12537         Update RBSource's query model reference.
12539         * sources/rb-playlist-source.c:
12540         Remove query-model property, since RBSource has one now
12541         (impl_get_status): Not needed, RBSource does this now
12542         (rb_playlist_source_row_deleted): Use query model iterator helper
12543         function.
12544         (rb_playlist_source_set_query_model): Update RBSource's query model
12545         reference too.
12547         * sources/rb-iradio-source.c:
12548         (impl_get_status): Ask the query model directly.
12549         (rb_iradio_source_do_query): Update RBSource's query model reference
12550         when we create a new query.
12552         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12553         Use query model rather than entry view.
12555         * widgets/rb-entry-view.{c,h}: 
12556         Remove playing_entry_deleted signal (now in play order).
12557         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12558          as RhythmDBQueryModel has equivalent helper functions.
12559         (rb_entry_view_*): Use query model helpers instead of the above two
12560         functions.
12562 2005-12-09  James Livingston  <jrl@ids.org.au>
12564         * configure.ac:
12565         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12566         (rb_recorder_enabled):
12567         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12568         * sources/rb-playlist-source-recorder.c:
12569         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12570         whether libnautilusburn has the _drive_unref function, and if so use
12571         it. Stops it complaining about deprecated API.
12573 2005-12-09  James Livingston  <jrl@ids.org.au>
12575         * configure.ac: drop the minimum gstreamer version back down, it
12576         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12578 2005-12-09  James Livingston  <jrl@ids.org.au>
12580         * widgets/rb-song-info.c: (rb_song_info_class_init),
12581         (rb_song_info_show), (rb_song_info_constructor),
12582         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12583         (rb_song_info_forward_clicked_cb): save metadata changes when the
12584         Next/Previous buttons are pressed (closes bug 320952). use
12585         G_DEFINE_TYPE.
12587 2005-12-09  James Livingston  <jrl@ids.org.au>
12589         Patch by: <jonathan@kaolin.hn.org>
12591         * sources/rb-iradio-source.c:
12592         (stations_view_drag_data_received_cb):
12593         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12594         of urls. Fixes bug 323610.
12596 2005-12-09  James Livingston  <jrl@ids.org.au>
12598          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12599          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12601         * configure.ac:
12602         * metadata/rb-metadata-gst.c:
12603         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12604         (rb_player_construct), (rb_player_new):
12605         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12606         (rb_recorder_gst_signal_error), (pipe_message),
12607         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12608         (rb_recorder_new):
12609         * shell/main.c: (main):
12610         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12611         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12613 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12615         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12617         * shell/rb-playlist-manager.c:
12618           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12619           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12620           (rb_playlist_manager_set_automatic_playlist),
12621           (rb_playlist_manager_cmd_new_automatic_playlist),
12622           (rb_playlist_manager_cmd_edit_automatic_playlist):
12623            Use new playlist subclasses.
12624           (rb_playlist_manager_save_playlists): Only read the dirty flag
12625            for local playlists, minor pointless reformatting
12627         * sources/Makefile.am: add new files
12629         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12630           split lots of stuff out into two
12631           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12632           make RBPlaylistSource abstract, add virtual methods for showing a
12633           popup for the entry view and saving the playlist to XML.
12634           Other stuff is subclass-specific, or already virtual in RBSource.
12636         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12637           in one place, since they're used across three source files now
12639         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12640           Use new static playlist class
12642         * sources/rb-ipod-source.c: (add_rb_playlist):
12643           Use new static playlist class
12645         * sources/rb-static-playlist-source.{c,h},
12646         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12647         files.
12649         * po/POTFILES.in: add new files
12651 2005-12-07  James Livingston  <jrl@ids.org.au>
12653         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12654         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12655         metadata loads not attempt to write changes to disk.
12657 2005-12-07  James Livingston  <jrl@ids.org.au>
12659         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12661         * data/glade/song-info-multiple.glade:
12662         * widgets/rb-song-info.c: (rb_song_info_constructor),
12663         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12664         multiple songs at once.
12666 2005-12-06  James Livingston  <jrl@ids.org.au>
12668         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12669         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12671 2005-12-06  James Livingston  <jrl@ids.org.au>
12673         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12674         names rather than adding a horizontal scroll bar.
12676 2005-12-06  James Livingston  <jrl@ids.org.au>
12678         * rhythmdb/rhythmdb-query-model.c:
12679         (rhythmdb_query_model_update_limited_entries),
12680         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12681         messages
12683         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12684         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12685         always hide rather than remove DB entries, which will make RB not lose
12686         information when tag editing happens or people move files to trash and
12687         then change their mind. Also fix some races where the monitoring code
12688         would notice the temporary files generated by saving metadata.
12690 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12692         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12693         Hide internals and add tooltips.
12694         (rb_song_display_box_size_allocate): Hide internals.
12695         (sanitize_string, info_url): Copied from rb-header.
12696         (rb_song_display_box_sync): New public function.
12698         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12699         (rb_header_init): Use a separate row for the seek bar.
12700         (rb_header_finalize): Don't unref widgets.
12701         (rb_header_sync): Use rb_song_display_box_sync.
12702         (rb_header_set_urldata)
12703         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12704         (rb_header_set_show_position_slider): Set visibility of seek bar.
12705         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12706         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12708         * shell/rb-statusbar.c (rb_statusbar_init)
12709         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12711         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12712         (rb_shell_constructor): Remove hseparator.  Monitor
12713         toolbar visibility settings.  Add toolbar.  Add
12714         volume button to toolbar.  Add tooltips for volume button.
12715         (rb_shell_view_toolbar_changed_cb) 
12716         (rb_shell_sync_toolbar_visibility)
12717         (toolbar_visibility_changed_cb): Set visibility of
12718         toolbar.
12719         (rb_shell_sync_smalldisplay): Set the toolbar style to
12720         icons only when in small display mode.
12721         (rb_shell_volume_widget_changed_cb): Save volume setting.
12723         * shell/rb-shell-player.c (rb_shell_player_constructor):
12724         Remove pause and stop actions.  Make play action "important"
12725         so that text is visible in horizontal toolbar position.
12726         Remove control buttons.
12727         (rb_shell_player_init) 
12728         (rb_shell_player_sync_song_position_slider_visibility):
12729         Set visbibility of seek bar.
12730         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12731         Make play action a toggle.
12732         (rb_shell_player_sync_volume): Volume control moved
12733         to player.
12734         (gconf_song_position_slider_visibility_changed):
12735         Set visbibility of seek bar.
12736         (rb_shell_player_sync_buttons):
12737         Set sensitivity of actions instead of buttons.
12738         (rb_shell_player_playing_changed_cb): Add callback
12739         for player notify::playing changes.
12741         * lib/rb-preferences.h: Add hide toolbar and seek
12742         bar key names.
12744         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12745         seek bar menu items.  Remove pause and stop actions
12746         from the control menu.  Add a toolbar.
12748         * data/rhythmbox.schemas: Add toolbar_hidden
12749         song_position_slider_hidden keys.
12751         Patch by: James Livingston  <jrl@ids.org.au>
12752                   William Jon McCann  <mccann@jhu.edu>
12753         Fixes #316238.
12755 2005-12-05  James Livingston  <jrl@ids.org.au>
12757         * data/glade/library-prefs.glade:
12758         * data/rhythmbox.schemas:
12759         * lib/rb-preferences.h:
12760         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12761         (rhythmdb_sync_library_location):
12762         * sources/rb-library-source.c: (rb_library_source_class_init),
12763         (rb_library_source_finalize), (rb_library_source_constructor),
12764         (impl_get_config_widget), (rb_library_source_preferences_sync),
12765         (rb_library_source_watch_toggled_cb): allow people to disable library
12766         monitoring, because with nothing set the file chooser button selects
12767         the Home folder (and hence that will get monitored).
12769 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12771         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12772         attempt to fix problem with RSS parsing showing invalid feed types.
12773         Fixes bug 323153
12775 2005-12-04  James Livingston  <jrl@ids.org.au>
12777         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12778         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12779         importing a remote directory not block the UI.
12781 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12783         * data/glade/podcast-feed-properties.glade:
12784         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12786 2005-12-04  James Livingston  <jrl@ids.org.au>
12788         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12790         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12791         to && to fix a mistake in the earlier podcast patch.
12793 2005-12-03  James Livingston  <jrl@ids.org.au>
12795         * data/glade/podcast-new.glade:
12796         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12797         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12799         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12800         GValue, which stops occasional errors.
12802         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12803         compile issue.
12805 2005-12-03  James Livingston  <jrl@ids.org.au>
12807         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12809         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12810         crasher with some podcasts feeds.
12812 2005-12-03  James Livingston  <jrl@ids.org.au>
12814         * data/rhythmbox.schemas: fix the gconf schema
12816 2005-12-03  James Livingston  <jrl@ids.org.au>
12818         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12819         add a selection timeout to the sourcelist. This lets you hold a track
12820         over the playlist source, and then have the view switch so you can
12821         insert the track in the middle of the playlist. Closes bug 323044.
12823         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12824         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12825         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12826         (rb_tree_dnd_add_drag_dest_support):
12827         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12828         timeout.
12830         * sources/rb-sourcelist-model.c:
12831         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12832         the source list.
12834 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12836         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12837         links, so that the text doesn't touch the button
12839 2005-12-02  James Livingston  <jrl@ids.org.au>
12841         Add full support for gnome-vfs remote files. Closes bug 140355.
12843         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12844         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12845         for authentication information from the user doesn't block the UI.
12847         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12849         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12850         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12851         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12852         (rhythmdb_process_stat_event), (emit_load_error_idle),
12853         (rhythmdb_process_metadata_load),
12854         (rhythmdb_process_queued_entry_set_event),
12855         (rhythmdb_process_file_created_or_modified),
12856         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12857         (queue_stat_uri), (add_thread_main),
12858         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12859         (rhythmdb_load), (rhythmdb_save_thread_main),
12860         (threadsafe_entry_set), (rhythmdb_query_internal),
12861         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12862         (rhythmdb_do_full_query_internal),
12863         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12864         (rhythmdb_volume_unmounted_cb),
12865         (rhythmdb_check_changed_file): trivial changes to support the
12866         asynchronous stats.
12868         * shell/main.c: (main): activate the authentication manager.
12870         * shell/rb-playlist-manager.c:
12871         (rb_playlist_manager_cmd_load_playlist),
12872         (rb_playlist_manager_cmd_save_playlist):
12873         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12874         (rb_shell_cmd_add_file_to_library):
12875         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12876         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12877         remote files.
12879 2005-12-02  James Livingston  <jrl@ids.org.au>
12881         * shell/rb-playlist-manager.c: makes playlist menu items use the
12882         elipses correctly. Fixes bug 322283.
12884 2005-12-02  James Livingston  <jrl@ids.org.au>
12886         * shell/rb-playlist-manager.c:
12887         (rb_playlist_manager_load_playlists): fix silly mistake
12889 2005-12-02  James Livingston  <jrl@ids.org.au>
12891         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12892         print out metadata-write unless --debug was passed.
12894         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12895         * shell/rb-playlist-manager.c:
12896         (rb_playlist_manager_load_playlists): block writes to disk if they are
12897         still being loaded.
12899 2005-12-02  James Livingston  <jrl@ids.org.au>
12901         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12902         ctrl-T, because Ctrl-D is used by "small mode"
12904 2005-12-02  James Livingston  <jrl@ids.org.au>
12906         * shell/rb-shell-preferences.c:
12907         (rb_shell_preferences_append_view_page):
12908         * sources/rb-library-source.c: (impl_get_config_widget):
12909         * sources/rb-podcast-source.c: (impl_get_config_widget):
12910         * sources/rb-source.c: (rb_source_get_config_widget):
12911         * sources/rb-source.h: Make the preference actually work.
12913         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12914         if Rhythmbox is being run for the first time.
12916 2005-12-02  James Livingston  <jrl@ids.org.au>
12918         Add support for Rhythmbox to watch your library, and automatically add
12919         new tracks. Fixes bug 160159.
12921         * data/glade/library-prefs.glade: add "library location" preference
12922         * data/rhythmbox.schemas: add gconf key for the library location
12924         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12925         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12926         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12927         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12928         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12929         (rhythmdb_load_thread_main), (rhythmdb_load),
12930         (monitor_subdirectory), (monitor_library_directory),
12931         (monitor_entry_file), (rhythmdb_sync_library_location),
12932         (library_location_changed_cb), (rhythmdb_check_changed_file),
12933         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12934         specifiec in the gconf key for new additions. Also fix monitoring code
12935         so that it works properly, and notices deletions.
12937         * lib/rb-preferences.h:
12938         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12939         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12940         * shell/rb-audioscrobbler.h:
12941         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12942         (rb_shell_preferences_append_view_page),
12943         (rb_shell_preferences_new):
12944         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12945         it's preferences pane, so that we don't need #ifdef's through
12946         rb-shell-preferences.
12948         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12949         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12950         "preferences" property, so that sources can acccess it. This is needed
12951         because the library location pref needs to take effect when the window
12952         is closed.
12954         * sources/rb-library-source.c:
12955         (rb_library_source_library_location_changed),
12956         (rb_library_source_dispose), (rb_library_source_finalize),
12957         (rb_library_source_constructor), (impl_get_config_widget),
12958         (rb_library_source_preferences_sync),
12959         (rb_library_source_process_library_location_change),
12960         (rb_library_source_prefs_update),
12961         (rb_library_source_process_library_handle_selection),
12962         (rb_library_source_library_location_cb): set up and control the
12963         "library location" preference.
12965         * sources/rb-audiocd-source.c:(rb_source_class_init):
12966         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12967         code.
12969 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12971         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12972         (rb_feed_podcast_properties_dialog_update_title): 
12973         * data/glade/podcast-feed-properties.glade:
12974         Make the feed properties dialog consistent with the podcast
12975         properties dialog.
12977 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12979         * metadata/.cvsignore: 
12980         * po/.cvsignore: 
12981         * podcast/.cvsignore: Updated.
12983         * shell/main.c (main): Support DBus 0.6 flags.
12985 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12987         * data/ui/rhythmbox-ui.xml:
12988         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12989         (rhythmbd_entry_move_to_trash_set_error),
12990         (rhythmdb_entry_move_to_trash):
12991         * rhythmdb/rhythmdb.h:
12992         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12993         (rb_shell_clipboard_cmd_delete),
12994         (rb_shell_clipboard_cmd_move_to_trash):
12995         * sources/rb-library-source.c: (rb_library_source_class_init),
12996         (impl_delete), (impl_move_to_trash):
12997         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12998         (impl_delete), (impl_move_to_trash):
12999         * sources/rb-removable-media-source.c:
13000         (rb_removable_media_source_class_init):
13001         * sources/rb-source.c: (rb_source_class_init),
13002         (rb_source_can_move_to_trash), (rb_source_delete),
13003         (rb_source_move_to_trash):
13004         * sources/rb-source.h:
13005         Add move_to_trash member for the sources, implement move to trash for
13006         the library and playlists
13007         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
13008         local files to the trash, and deleting them from the database
13009         (Closes: #315389)
13011 2005-11-30  William Jon McCann  <mccann@jhu.edu>
13013         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
13014         (rb_tray_icon_init, rb_tray_icon_finalize): 
13015         * shell/rb-statusbar.c (rb_statusbar_class_init) 
13016         (rb_statusbar_init, rb_statusbar_finalize): 
13017         * shell/rb-source-header.c (rb_source_header_class_init) 
13018         (rb_source_header_init, rb_source_header_finalize): 
13019         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
13020         (rb_shell_finalize): 
13021         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
13022         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
13023         * shell/rb-shell-player.c (rb_shell_player_class_init) 
13024         (rb_shell_player_init, rb_shell_player_finalize): 
13025         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
13026         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
13027         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
13028         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
13029         * shell/rb-play-order.c (rb_play_order_class_init) 
13030         (rb_play_order_init, rb_play_order_finalize): 
13031         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
13032         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
13033         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
13034         (rb_random_play_order_init, rb_random_play_order_finalize): 
13035         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
13036         (rb_history_finalize): 
13037         * shell/rb-commander.c (rb_commander_class_init) 
13038         (rb_commander_init, rb_commander_finalize): 
13039         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
13040         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
13041         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
13042         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
13043         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
13044         (rb_podcast_properties_dialog_init) 
13045         (rb_podcast_properties_dialog_finalize): 
13046         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
13047         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
13048         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
13049         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
13050         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
13051         (rb_feed_podcast_properties_dialog_init) 
13052         (rb_feed_podcast_properties_dialog_finalize): 
13053         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
13054         (rb_metadata_init, rb_metadata_finalize): 
13055         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
13056         (rb_station_properties_dialog_init) 
13057         (rb_station_properties_dialog_finalize): 
13058         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
13059         (rb_daap_share_init, rb_daap_share_dispose): 
13061         Use g_type_class_add_private in all classes. Closes bug 313688.
13062         
13063 2005-11-30  James Livingston  <jrl@ids.org.au>
13065         patch by: William Jon McCann <mccann@jhu.edu> to use
13066         g_type_class_add_private in all classes. Closes bug 313688.
13068         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
13069         (rb_thread_finalize):
13070         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
13071         (rb_player_finalize):
13072         * rhythmdb/rhythmdb-property-model.c:
13073         (rhythmdb_property_model_class_init),
13074         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
13075         * rhythmdb/rhythmdb-query-model.c:
13076         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
13077         (rhythmdb_query_model_finalize):
13078         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
13079         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
13080         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
13081         (rhythmdb_finalize):
13082         * sources/rb-daap-source.c: (rb_daap_source_class_init),
13083         (rb_daap_source_init), (rb_daap_source_dispose):
13084         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13085         (rb_iradio_source_init), (rb_iradio_source_finalize):
13086         * sources/rb-library-source.c: (rb_library_source_class_init),
13087         (rb_library_source_init), (rb_library_source_finalize):
13088         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13089         (rb_playlist_source_init), (rb_playlist_source_dispose):
13090         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13091         (rb_podcast_source_init), (rb_podcast_source_finalize):
13092         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13093         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
13094         * sources/rb-sourcelist-model.h:
13095         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13096         (rb_sourcelist_init), (rb_sourcelist_finalize):
13097         * sources/rb-sourcelist.h:
13098         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
13099         * widgets/rb-cell-renderer-rating.c:
13100         (rb_cell_renderer_rating_init),
13101         (rb_cell_renderer_rating_class_init),
13102         (rb_cell_renderer_rating_finalize):
13103         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
13104         (rb_druid_finalize):
13105         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13106         (rb_entry_view_init), (rb_entry_view_finalize):
13107         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
13108         (rb_header_finalize):
13109         * widgets/rb-load-failure-dialog.c:
13110         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
13111         (rb_load_failure_dialog_finalize):
13112         * widgets/rb-property-view.c: (rb_property_view_class_init),
13113         (rb_property_view_init), (rb_property_view_finalize):
13114         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
13115         (rb_rating_finalize):
13116         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13117         (rb_search_entry_init), (rb_search_entry_finalize):
13118         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13119         (rb_simple_view_init), (rb_simple_view_finalize):
13120         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
13121         (rb_song_display_box_init), (rb_song_display_box_finalize):
13122         * widgets/rb-song-info.c: (rb_song_info_class_init),
13123         (rb_song_info_init), (rb_song_info_finalize):
13124         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
13125         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
13127 2005-11-30  James Livingston  <jrl@ids.org.au>
13129         * iradio/rb-station-properties-dialog.c:
13130         (rb_station_properties_dialog_init),
13131         (rb_station_properties_dialog_new):
13132         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
13133         * lib/rb-glade-helpers.h:
13134         * podcast/rb-feed-podcast-properties-dialog.c:
13135         (rb_feed_podcast_properties_dialog_init),
13136         (rb_feed_podcast_properties_dialog_new):
13137         * podcast/rb-podcast-properties-dialog.c:
13138         (rb_podcast_properties_dialog_init),
13139         (rb_podcast_properties_dialog_new):
13140         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
13141         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13142         * sources/rb-library-source.c: (impl_get_config_widget):
13143         * sources/rb-playlist-source-recorder.c:
13144         (rb_playlist_source_recorder_init):
13145         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13146         (rb_song_info_constructor): create a single rb_glade_boldify_label()
13147         in rb-glade-helpers, rather than having eight implementation
13148         throughout the code.
13150 2005-11-30  James Livingston  <jrl@ids.org.au>
13152         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
13153         * lib/rb-util.h:
13154         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13155         move the duration->string function into rb-utils, as it gets used in a
13156         few places.
13158         patch by: William Jon McCann <mccann@jhu.edu>
13160         * data/glade/podcast-properties.glade:
13161         * podcast/rb-podcast-properties-dialog.c:
13162         (rb_podcast_properties_dialog_init),
13163         (rb_podcast_properties_dialog_update),
13164         (rb_podcast_properties_dialog_update_title),
13165         (rb_podcast_properties_dialog_update_feed),
13166         (rb_podcast_properties_dialog_update_duration),
13167         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
13168         info dialog look more like the song info dialog. Use the same "Feed"
13169         value that is displayed in the treeview (ie. the album field), displays
13170         the duration, uses units in the bitrate field, and sort the fields in
13171         the same order.
13173 2005-11-29  James Livingston  <jrl@ids.org.au>
13175         * rhythmdb/rhythmdb-marshal.list:
13176         * rhythmdb/rhythmdb.h:
13177         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
13178         (emit_load_error_idle), (rhythmdb_process_metadata_load),
13179         (entry_to_rb_metadata), (emit_save_error_idle),
13180         (action_thread_main): emit error signal when metadata write fails.
13182         * shell/rb-shell.c: (rb_shell_constructor),
13183         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
13184         "metadata save" error and display it to the user.
13186 2005-11-29  James Livingston  <jrl@ids.org.au>
13188         * data/ui/rhythmbox-ui.xml:
13189         * sources/rb-podcast-source.c:
13190         (rb_podcast_source_songs_show_popup_cb),
13191         (rb_podcast_source_cmd_download_post),
13192         (rb_podcast_source_cmd_cancel_download): split download and cancel
13193         download commands. Replace usage of "Post" with "Esisode". Fixes bug
13194         321653.
13196 2005-11-18  William Jon McCann  <mccann@jhu.edu>
13198         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
13199         title on alert dialogs per the HIG.
13201         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
13202         the term Burn.
13203         (free_song_list): Routine to free song list.
13204         (rb_playlist_source_recorder_finalize): Use free_song_list.
13205         (rb_playlist_source_recorder_add_from_model): Return FALSE
13206         if unable to add all songs.  Check that duration of all
13207         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
13208         Fixes #321753.
13210         * sources/rb-playlist-source-recorder.c (check_media_length)
13211         (rb_playlist_source_recorder_start): Only check the duration
13212         and current media if the playlist length is longer than a
13213         standard CD (74 min).  Otherwise, just let the Recorder do the
13214         check.
13215         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
13216         drive at init.
13217         (rb_recorder_set_device): Don't leak drives.
13218         (rb_recorder_get_media_length): Use drive that was already set.
13219         (rb_recorder_burn): Let the recorder handle checking media type/size.
13220         Fixes bug 321754.
13222 2005-11-29  James Livingston  <jrl@ids.org.au>
13224         * rhythmdb/rhythmdb-query-model.c:
13225         (rhythmdb_query_model_set_sort_order):
13226         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
13227         emitting the tree-model "resorted" signal.
13229         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13230         (rb_entry_view_finalize), (rb_entry_view_set_property),
13231         (rb_entry_view_constructor), (rb_entry_view_resort_model):
13232         * widgets/rb-entry-view.h: add a function to resort the entry view,
13233         using the above function.
13235         * sources/rb-iradio-source.c:
13236         (rb_iradio_source_songs_view_sort_order_changed_cb):
13237         * sources/rb-library-source.c: (rb_library_source_finalize),
13238         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
13239         * sources/rb-playlist-source.c:
13240         (rb_playlist_source_songs_sort_order_changed_cb):
13241         * sources/rb-podcast-source.c:
13242         (rb_podcast_source_posts_view_sort_order_changed_cb),
13243         (rb_podcast_source_do_query): use the above function instead of
13244         re-creating the query model. This makes changing the sorting an order
13245         of magnitude faster, as it uses a single resorted signal rather than
13246         deleting and re-adding everything (which emits 2N signals). Closes bug
13247         315389.
13249 2005-11-29  James Livingston  <jrl@ids.org.au>
13251         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
13252         autosizing, which results in large speedups. Closes bug 312122.
13254         * po/ja.po: change the date format, so that it is a constant width
13256         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13257         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13258         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
13259         (rb_entry_view_constructor): make columns use fixed widths,
13260         disable column autosizing, and enable fixed-height mode.
13262         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
13263         (rb_entry_view_get_time_date_column_sample):
13264         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13265         and get the canonical date format for the locale.
13267 ============ Version 0.9.2
13269 2005-11-28  James Livingston  <jrl@ids.org.au>
13271         * configure.ac: bump version to 0.9.2
13272         * NEWS: update with changes for 0.9.2
13274 2005-11-28  James Livingston  <jrl@ids.org.au>
13276         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13278         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13279         Disable saving, renaming and delting for DAAP playlists.
13280         Fixes bug 322627.
13282 2005-11-28  James Livingston  <jrl@ids.org.au>
13284         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13285         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13286         prevent bug 322619.
13288         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13289         * sources/rb-removable-media-source.c:
13290         (rb_removable_media_source_class_init): fix ipod browser visibility
13291         problem.
13293 2005-11-28  James Livingston  <jrl@ids.org.au>
13295         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13296         Avahi 0.6 support actually work. Fixes bug 322519.
13298 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13300         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13301         avahi is specified in --with-mdns
13303 2005-11-27  James Livingston  <jrl@ids.org.au>
13305         patch by: Bastien Nocera <hadess@hadess.net>
13307         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13308         not the private one. Fixes bug 322485.
13310 2005-11-26  James Livingston  <jrl@ids.org.au>
13312         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13313         Avahi 0.6, as well as 0.5.
13315         * configure.ac:
13316         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13317         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13318         (add_service):
13320 2005-11-25  James Livingston  <jrl@ids.org.au>
13322         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13323         321926.
13325 2005-11-25  James Livingston  <jrl@ids.org.au>
13327         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13328         correct type for checking the date against 0. Stops a warning when
13329         saving metadata.
13331 2005-11-25  James Livingston  <jrl@ids.org.au>
13333         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13334         adjustment to be inside the element's limits. Without this songs that
13335         have large ReplayGain values will recieve no increase because they are
13336         outside the acceptable range, causing them to remain quiet.
13338 2005-11-25  James Livingston  <jrl@ids.org.au>
13340         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13341         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13342         * sources/rb-ipod-source.c:
13343         * sources/rb-source.h:
13344         * sources/rb-library-source.h:
13345         * sources/rb-library-source.c: (rb_library_source_class_init),
13346         (rb_library_source_constructor),
13347         (rb_library_source_has_first_added_column),
13348         (rb_library_source_has_drop_support):
13349         * sources/rb-removable-media-source.c:
13350         (rb_removable_media_source_class_init): Make library-derived sources
13351         not show the Date Added column, as it doesn't make sense. Fixes bug
13352         322269.
13353         Move some of the feature funcs from the ipod and audio cd sources up to
13354         the removable media source.
13356 2005-11-24  James Livingston  <jrl@ids.org.au>
13358         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13359         errors. oops.
13361 2005-11-24  James Livingston  <jrl@ids.org.au>
13363         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13364         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13365         (rb_iradio_source_constructor): Chain up dispose method and use
13366         G_DEFINE_TYPE
13368 2005-11-24  James Livingston  <jrl@ids.org.au>
13370         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13371         mistake in the last commit that can cause crashes.
13373 2005-11-24  James Livingston  <jrl@ids.org.au>
13375         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13376         instead of g_printerr.
13378         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13379         rb_debug instead of g_warning. The message happens every time for
13380         removable media/daap shares, so it's not unusual.
13382 2005-11-24  James Livingston  <jrl@ids.org.au>
13384         patch by: Tom Parker <palfrey@tevp.net>
13386         * configure.ac: fix libsoup test for enabling daap
13388 2005-11-23  James Livingston  <jrl@ids.org.au>
13390         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13391         (rb_query_creator_init), (rb_query_creator_constructor),
13392         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13393         empty row to queries with no criteria. Fixes bug 322078. use
13394         G_DEFINE_TYPE.
13396 2005-11-23  James Livingston  <jrl@ids.org.au>
13398         patch by:  <baptiste.millemathias@gmail.com>
13400         * help/C/quick-reference.xml: update the quick reference to have the
13401         correct key bindings.
13403 2005-11-22  James Livingston  <jrl@ids.org.au>
13405         * sources/rb-library-source.c: (genres_selection_reset_cb),
13406         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13407         reset the query when all browser selections are removed.
13409 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13411         * podcast/rb-podcast-manager.c:
13412         (rb_podcast_manager_db_entry_deleted_cb):
13413         Use a custom loop to remove podcast posts, rather than
13414         gtk_tree_model_foreach(), as deleting the entries within
13415         that loop causes the iterator to return the first entry
13416         twice.  Instead, we need to find the next entry before
13417         removing the current one. Fixes bug 321956.
13418         (rb_podcast_manager_entry_remove_cb): No longer needed.
13420 2005-11-22  James Livingston  <jrl@ids.org.au>
13422         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13423         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13424         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13426 2005-11-22  James Livingston  <jrl@ids.org.au>
13428         * sources/rb-podcast-source.c:
13429         (rb_podcast_source_post_date_cell_sort_func),
13430         (rb_podcast_source_post_status_cell_sort_func),
13431         (rb_podcast_source_post_feed_cell_sort_func):
13432         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13433         (rb_entry_view_album_sort_func),
13434         (rb_entry_view_double_ceiling_sort_func),
13435         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13436         the entry's location as a last resort when sorting, so the sort order
13437         is stable. This will stop entries moving around when two entries have
13438         the same sorting, and one of them gets played.
13440 2005-11-22  James Livingston  <jrl@ids.org.au>
13442         * daapsharing/rb-daap-connection.c:
13443         (rb_daap_connection_class_init), (rb_daap_connection_init),
13444         (connection_get_password), (build_message),
13445         (http_response_handler), (http_get), (handle_server_info),
13446         (handle_login), (handle_update), (handle_database_info),
13447         (handle_song_listing), (handle_playlists),
13448         (handle_playlist_entries), (rb_daap_connection_new),
13449         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13450         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13451         (rb_daap_connection_get_headers),
13452         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13453         (rb_daap_connection_set_property),
13454         (rb_daap_connection_get_property):
13455         * daapsharing/rb-daap-connection.h:
13456         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13457         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13458         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13459         of destroying the object when it is going to be used by a callback and
13460         fixes a double-free. Fixes bugs 321930 and 322007.
13462 2005-11-22  James Livingston  <jrl@ids.org.au>
13464         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13465         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13466         notification if there aren't any. Fixes bug 321968.
13468 2005-11-22  James Livingston  <jrl@ids.org.au>
13470         * rhythmdb/rhythmdb-property-model.c:
13471         (rhythmdb_property_model_set_property),
13472         (rhythmdb_property_model_finalize),
13473         (rhythmdb_property_model_compare),
13474         (rhythmdb_property_model_insert),
13475         (rhythmdb_property_model_delete_prop): Fix property model sorting
13476         where the display and sort keys are different. Fixes bug 321980.
13478 2005-11-22  James Livingston  <jrl@ids.org.au>
13480         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13481         when import as a file or passed on the command line, and load them as
13482         playlists.
13484 2005-11-22  James Livingston  <jrl@ids.org.au>
13486         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13488         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13489         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13490         a broken daap server. Fixes bug 321919.
13492 2005-11-22  James Livingston  <jrl@ids.org.au>
13494         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13495         drag-and-drop for both the episodes and feeds list.
13496         
13497         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13498         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13499         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13501         * widgets/rb-property-view.c: (rb_property_view_class_init),
13502         (rb_property_view_set_property), (rb_property_view_get_property),
13503         (rb_property_view_new), (rb_property_view_constructor):
13504         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13505         (rb_simple_view_new), (rb_simple_view_constructor):
13506         * widgets/rb-simple-view.h: add a "draggable" property to property
13507         views and set it to false for the feed list. Fixes bug 321284.
13509 2005-11-22  James Livingston  <jrl@ids.org.au>
13511         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13513         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13514         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13515         * sources/rb-ipod-source.c: (add_rb_playlist):
13516         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13517         (rb_playlist_source_set_property),
13518         (rb_playlist_source_get_property), (rb_playlist_source_new),
13519         (impl_receive_drag), (rb_playlist_source_add_location),
13520         (rb_playlist_source_new_from_xml):
13521         * sources/rb-playlist-source.h: give playlists and (optional)
13522         entry-type, and reject entries that don't match. Fixes bug 322006.
13524 2005-11-21  James Livingston  <jrl@ids.org.au>
13526         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13527         (rb_source_header_finalize): remove the weak references when the
13528         source header is finalised. Stops the callbacks being called after the
13529         object is destroyed.
13531 2005-11-21  James Livingston  <jrl@ids.org.au>
13533         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13534         --no-registration was passed. It causes warnings that make it
13535         impossible to run with --no-registration --g-fatal-warnings
13537 2005-11-21  James Livingston  <jrl@ids.org.au>
13539         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13540         of strings when they are still in use. Fixes bug 321547.
13542         (rb_daap_connection_destroy): fix memory leak
13544 2005-11-21  James Livingston  <jrl@ids.org.au>
13546         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13547         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13548         (rb_daap_mdns_resolve_cancel), (publish_cb),
13549         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13550         support.
13552 2005-11-21  James Livingston  <jrl@ids.org.au>
13554         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13555         sorting by genre
13557 2005-11-20  James Livingston  <jrl@ids.org.au>
13559         * podcast/rb-podcast-manager.c:
13560         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13561         that we don't leak thread structures. Fixes bug 321636, and probably
13562         321775.
13564 2005-11-20  James Livingston  <jrl@ids.org.au>
13566         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13567         (lookup_cd):
13568         * podcast/rb-podcast-manager.c: (start_job),
13569         (rb_podcast_manager_db_entry_deleted_cb),
13570         (rb_podcast_manager_entry_remove_cb):
13571         * podcast/rb-podcast-parse.c: (rb_insert_item),
13572         (rb_podcast_parse_load_feed):
13573         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13574         * shell/rb-removable-media-manager.c:
13575         (rb_removable_media_manager_append_media_source):
13576         * shell/rb-shell.c: (add_to_library_response_cb):
13577         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13578         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13579         * sources/rb-iradio-source.c:
13580         (stations_view_drag_data_received_cb):
13581         * sources/rb-library-source.c: (string_list_equal),
13582         (impl_get_extra_views), (impl_receive_drag):
13583         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13584         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13585         (impl_receive_drag):
13586         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13587         (rb_entry_view_append_column_custom), (harvest_entries):
13588         * widgets/rb-property-view.c:
13589         (rb_property_view_selection_changed_cb):
13590         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13591         switch from using g_list_append to g_list_prepend. This changes
13592         operations from O(n^2) to O(n), which in cases like deleting a lot of
13593         tracks can give huge improvements in speed. Closes bug 321696.
13595 2005-11-20  James Livingston  <jrl@ids.org.au>
13597         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13598         (rb_sourcelist_update_expander_visibility): fix indenting of child
13599         sources.
13601 2005-11-20  James Livingston  <jrl@ids.org.au>
13603         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13604         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13605         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13606         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13607         (add_service), (entry_group_cb): dynamically allocate memory, rather
13608         than using static variables.
13610         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13611         re-enable the daap share if the name hasn't changed.
13612         * shell/rb-shell-preferences.c:
13613         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13614         change it's name when the checkbox is disabled. Fixed bug 321748.
13616 2005-11-18  James Livingston  <jrl@ids.org.au>
13618         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13619         as hidden if it is on the current workspace.
13621 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13623         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13624         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13625         (rb_podcast_properties_dialog_parse_time): 
13626         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13627         (rb_feed_podcast_properties_dialog_parse_time):
13628         Rework the way the last mod time strings are created.  It was using
13629         thread unsafe functions, not creating value UTF, and not not checking
13630         the value of the result before modifying it.  This new method fixes
13631         these problems.
13633 2005-11-18  James Livingston  <jrl@ids.org.au>
13635         Don't reset the search box when viewing a different source, because it
13636         will change what is being played. Closes 321593.
13638         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13639         the search box
13641         * shell/rb-source-header.c: (rb_source_header_class_init),
13642         (rb_source_header_init), (rb_source_header_finalize): use
13643         G_DEFINE_TYPE.
13645         (rb_source_header_set_property),
13646         (rb_source_header_source_weak_destroy_cb),
13647         (rb_source_header_search_cb): store the search text when leaving a
13648         source and put it in the search box when viewing it again.
13650 2005-11-18  James Livingston  <jrl@ids.org.au>
13652         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13653         (save_entry):
13654         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13655         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13656         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13657         time stamp.
13659         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13660         last-seen as the timestamp of the last update of the feed. Don't
13661         re-add episodes that have been deleted. Closes 319759.
13663 2005-11-18  James Livingston  <jrl@ids.org.au>
13665         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13666         that don't have the day name at the start. Closes 321645.
13668 2005-11-18  James Livingston  <jrl@ids.org.au>
13670         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13671         (rb_podcast_manager_copy_post),
13672         (rb_podcast_manager_get_podcast_dir):
13673         * podcast/rb-podcast-manager.h:
13674         * sources/rb-podcast-source.c: (impl_get_config_widget),
13675         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13676         download location switching to / if the prefs were opened before
13677         downloading an episode. Closes 321611.
13679 2005-11-18  James Livingston  <jrl@ids.org.au>
13681         * data/glade/podcast-new.glade:
13682         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13683         (rb_new_podcast_dialog_set_property),
13684         (rb_new_podcast_dialog_get_property),
13685         (rb_new_podcast_dialog_response_cb),
13686         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13687         for entering new podcast urls in. Closes bug 321610.
13689 2005-11-18  James Livingston  <jrl@ids.org.au>
13691         * sources/rb-podcast-source.c: (construct_query_from_selection),
13692         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13693         without restarting RB. Closes bug 321612.
13695 2005-11-18  James Livingston  <jrl@ids.org.au>
13697         * widgets/rb-entry-view.c: (set_column_visibility),
13698         (rb_entry_view_sync_columns_visible): when changing visibility of one
13699         column, don't hide and re-show all the others. Makes a show/hide
13700         column operation a lot faster.
13702 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13704         Closes bug 321702.
13706         * iradio/rb-station-properties-dialog.c
13707          (rb_station_properties_dialog_update_bitrate):
13708         Mark the bitrate value as being kbps, using the same
13709         translatable format string as rb-song-info.c
13711         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13712          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13714         * shell/rb-shell-player.c (info_available_cb):
13715          Use RB_METADATA_FIELD_BITRATE to update the iradio
13716          station's bitrate value.
13718 2005-11-17  James Livingston  <jrl@ids.org.au>
13720         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13722         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13723         free a NULL date.
13725 2005-11-17  James Livingston  <jrl@ids.org.au>
13727         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13729         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13730         assertions. Lookup the icon size correctly.
13732 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13734         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13735         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13736         Fix build errors.
13738 2005-11-16  James Livingston  <jrl@ids.org.au>
13740         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13741         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13742         (rb_shell_preferences_sync_column_button): block the toggle signal of
13743         the column checkboxes while setting their initial state. This stops
13744         the visibility being re-set, which causes a lot of time being spent
13745         measuring the columns aagin when opening the prefs window.
13747         Use G_DEFINE_TYPE.
13749 2005-11-16  James Livingston  <jrl@ids.org.au>
13751         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13752         (rb_sourcelist_edit_source_name): don't assume that the editable
13753         source name is in the first column, because it isn't. Fixes bug
13754         320137.
13756 2005-11-16  James Livingston  <jrl@ids.org.au>
13758         * daapsharing/rb-daap-mdns.h:
13759         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13760         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13761         parts can know why operations failed. Avahi can report that the daemon
13762         was not running. Howl doesn't do this (yet).
13763         
13764         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13765         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13766         (browse_cb): don't display mdns errors to the user, if it wa because
13767         the daemon was not running.
13769 2005-11-16  James Livingston  <jrl@ids.org.au>
13771         * rhythmdb/rhythmdb-property-model.c:
13772         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13773         (rhythmdb_property_model_compare),
13774         (rhythmdb_property_model_insert),
13775         (rhythmdb_property_model_insert_prop),
13776         (rhythmdb_property_model_delete),
13777         (rhythmdb_property_model_delete_prop),
13778         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13779         copying the string and re-creating the sort key. Saves a little bit of
13780         memory and time.
13782         (rhythmdb_property_model_perform_sync),
13783         (rhythmdb_property_model_sync): perform the count sync in an idle
13784         callback, so that it doesn't have to be re-run once per value when
13785         loading.
13787 2005-11-16  James Livingston  <jrl@ids.org.au>
13789         * rhythmdb/rhythmdb-query-model.c:
13790         (rhythmdb_query_model_entry_deleted_cb),
13791         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13792         limited list. Stops problems if they are deleted, and then things on
13793         the main list are
13795 2005-11-16  James Livingston  <jrl@ids.org.au>
13797         * NEWS: update NEWS
13799         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13800         button's minimise-to-tray action
13802 2005-11-16  James Livingston  <jrl@ids.org.au>
13804         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13805         leak. Disable adding newly created files for now, because it doesn't
13806         work properly.
13808         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13809         (rb_sourcelist_model_finalize):
13810         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13811         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13813 2005-11-16  James Livingston  <jrl@ids.org.au>
13815         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13816         problem where a GError* wasn't being set to NULL. Actually check the
13817         result.
13819 2005-11-16  James Livingston  <jrl@ids.org.au>
13821         * doc/reference/tmpl/rb-entry-view.sgml:
13822         * doc/reference/tmpl/rhythmbox-unused.sgml:
13823         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13824         * doc/reference/tmpl/rhythmdb.sgml:
13825         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13826         docs, including the patch that was on bug 
13828         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13829         API, because it should only be used by RhythmDB itself.
13831 2005-11-16  James Livingston  <jrl@ids.org.au>
13833         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13834         pausing by middle clicking on the tray icon.
13836 2005-11-15  James Livingston  <jrl@ids.org.au>
13838         * configure.ac: enable audioscrobbler support by default, if libsoup
13839         is present.
13841 2005-11-15  James Livingston  <jrl@ids.org.au>
13843         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13844         Closes bug 321157.
13846         * configure.ac:
13847         * daapsharing/rb-daap-connection.c: (build_message),
13848         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13849         support gzip encoded daap connections.
13851         (handle_song_listing): fix leak
13853 2005-11-15  James Livingston  <jrl@ids.org.au>
13855         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13856         * sources/rb-podcast-source.c:
13857         (rb_podcast_source_post_date_cell_data_func): make the date format
13858         translatable again, so that translators can choose the best format for
13859         their locale (%x is huge in some locales)
13861 2005-11-15  James Livingston  <jrl@ids.org.au>
13863         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13864         (end_job): mark podcast episodes as failed, if the metadata load
13865         fails. This will prevent people playing non-audio enclosures, helping
13866         stop bug 320366.
13868 2005-11-14  James Livingston  <jrl@ids.org.au>
13870         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13871         video sink to fakesink. This will stop problems (potentially crashers)
13872         that will occur if the file contains a video stream.
13874         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13875         rather than using magic numbers everywhere.
13877         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13878         * sources/rb-podcast-source.c:
13879         (rb_podcast_source_songs_show_popup_cb),
13880         (rb_podcast_source_cmd_download_post),
13881         (rb_podcast_source_post_status_cell_data_func),
13882         (rb_podcast_source_entry_activated_cb): use the above constants.
13884         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13885         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13886         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13887         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13888         (cancel_job), (download_progress_cb),
13889         (rb_podcast_manager_cancel_download),
13890         (rb_podcast_manager_insert_feed): use the constants, and fix a
13891         trhead-safety issue.
13893 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13895         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13896         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13897         entry-changed events after stats on startup, fixes entry deleted from
13898         filtered views not disappearing
13900 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13902         Fix rhythmdb query model refcount and polling problems. Closes bug
13903         321410.
13905         * rhythmdb/rhythmdb-property-model.c:
13906         (rhythmdb_property_model_finalize):
13907          Unref the query model if we have one.
13909         * rhythmdb/rhythmdb-query-model.h:
13910          Remove poll and cancel methods.  Query cancellation
13911          never did anything anyway.
13913         * rhythmdb/rhythmdb-query-model.c:
13914         (rhythmdb_query_model_init): Remove GAsyncQueues.
13915          Replace the GAsyncQueue-based update processing
13916          with a simpler g_idle_add approach; still has the
13917          same queueing properties, but now we don't poll the
13918          model forever and updates are processed immediately.
13920         (_unref_entry), (rhythmdb_query_model_finalize):
13921          Unref DB entries when finalized
13923         (rhythmdb_query_model_has_pending_changes):
13924          Use our own counter to decide if there are updates pending
13926         (rhythmdb_query_model_process_update), (idle_process_update):
13927          Process updates using g_idle_add, or directly if possible
13929         (rhythmdb_query_model_signal_complete),
13930         (rhythmdb_query_model_add_entries):
13931          Change to new update processing method
13933         (idle_poll_model), (rhythmdb_query_model_poll):
13934          Remove GAsyncQueue-based update processing.
13936         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13937          No need to poll the model any more - updates are processed
13938          directly for synchronous queries.
13940         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13941          Property model needs to be unref'd here
13943         * sources/rb-library-source.c: (rb_library_source_do_query):
13944          Don't try to cancel the active query (it never worked anyway),
13945          remove obsolete poll call, unref property models as required,
13946          and don't unref the cached 'all' query, since hold on to it.
13947          We unref it when the sort order changes, which forces the query
13948          to be rerun.
13950         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13951          Unref the property model as required
13953         (rb_podcast_source_do_query):
13954          Treat any query with no selected feeds and no search text as
13955          an 'all' query.  Unref query models except for the cached
13956          'all' query, since we hold on to that.
13958         (rb_podcast_source_cmd_update_all):
13959          Unref the property model as required.
13961         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13962          Don't try to cancel the query (it never worked anyway)
13964         (rb_entry_view_poll_model):
13965          No need for this any more.
13967         * widgets/rb-entry-view.h:
13968          Remove obsolete function rb_entry_view_poll_model
13970         * widgets/rb-property-view.c: (rb_property_view_set_property):
13971          Ref and unref the property model as required.
13973 2005-11-14  James Livingston  <jrl@ids.org.au>
13975         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13977         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13978         for error. Closes bug 321416.
13980 2005-11-14  James Livingston  <jrl@ids.org.au>
13982         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13984         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13985         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13987 2005-11-14  James Livingston  <jrl@ids.org.au>
13989         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13990         * shell/rb-removable-media-manager.c:
13991         (rb_removable_media_manager_set_uimanager):
13992         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13993         translation domain for GTK action groups.
13995 2005-11-12  James Livingston  <jrl@ids.org.au>
13997         * po/POTFILES.in: remove the old station-new files
13999 2005-11-12  James Livingston  <jrl@ids.org.au>
14001         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14002         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
14003         (save_entry): cause Rhythmbox to re-read the metadata from a file,
14004         when upgrading from a pre-Date-supporting version to a version that
14005         supports Date metadata. Closes bug 320760.
14007 2005-11-12  James Livingston  <jrl@ids.org.au>
14009         Add "update all podcast feeds" command. Closes bug 319954.
14011         * data/ui/rhythmbox-ui.xml: add to source context menu.
14013         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14014         (register_action_group), (rb_podcast_source_cmd_download_post),
14015         (rb_podcast_source_cmd_delete_feed),
14016         (rb_podcast_source_cmd_properties_feed),
14017         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
14018         rather than the shell.
14020         (rb_podcast_source_update_feed_func),
14021         (rb_podcast_source_cmd_update_all): update every feed.
14023 2005-11-11  James Livingston  <jrl@ids.org.au>
14025         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14026         (rb_shell_player_constructor), (rb_shell_player_finalize):
14027         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
14028         others follow the HIG recommentations.
14030 2005-11-11  James Livingston  <jrl@ids.org.au>
14032         * podcast/rb-podcast-manager.c:
14033         (rb_podcast_manager_subscribe_feed): check that the url is valid,
14034         before trying to use it.
14036 2005-11-11  James Livingston  <jrl@ids.org.au>
14038         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
14039         (rb_entry_view_append_column): When sorting by year, sort by album
14040         within a particular year.
14042 2005-11-11  James Livingston  <jrl@ids.org.au>
14044         * NEWS: updates
14046 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
14047         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
14048         spelling of "Language."
14050 2005-11-11  James Livingston  <jrl@ids.org.au>
14052         * rhythmdb/rhythmdb-property-model.c:
14053         (rhythmdb_property_model_row_inserted_cb),
14054         (rhythmdb_property_model_prop_changed_cb),
14055         (rhythmdb_property_model_entry_removed_cb),
14056         (rhythmdb_property_model_insert_prop),
14057         (rhythmdb_property_model_sync): display the count after the "All"
14058         entry of a property model.
14060         * widgets/rb-property-view.c: (rb_property_view_class_init),
14061         (rb_property_view_finalize), (rb_property_view_constructor): use
14062         G_DEFINE_TYPE
14064 2005-11-10  James Livingston  <jrl@ids.org.au>
14066         * rhythmdb/rhythmdb-query-model.c:
14067         (rhythmdb_query_model_remove_entry):
14068         * rhythmdb/rhythmdb-query-model.h: make
14069         rhythmdb_query_model_remove_entry return whether the entry was in the
14070         model.
14072         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
14073         don't add non-SONG entries, as it doesn't really work and can cause
14074         crashes.
14076         (rb_playlist_source_remove_location): assert if the playlist and model
14077         differ on whether the entry is in the playlist
14079 2005-11-10  James Livingston  <jrl@ids.org.au>
14081         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
14082         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
14083         (rb_podcast_manager_thread_parse_feed),
14084         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
14085         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
14086         emulating one with a list and mutex. Fixes a couple of threading
14087         issues.
14088         
14089         (rb_podcast_manager_insert_feed): fix some problems with ignoring
14090         updated feeds.
14091         
14092         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
14093         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
14094         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
14095         * podcast/rb-podcast-parse.c: (rb_insert_item),
14096         (rb_podcast_parse_channel_free):
14097         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
14098         fix some typos, and make a bit of code clearer.
14100 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
14102         Make the "delete podcast" dialog better. Closes bug 320899.
14104         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
14105         Add PROP_WINDOW for rb_shell_get_property so we can access the
14106         GtkWindow widget of the main window. 
14107         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
14108         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
14109         podcast feed delete dialog less confusing as well.
14111 2005-11-09  James Livingston  <jrl@ids.org.au>
14113         * shell/rb-removable-media-manager.c:
14114         (rb_removable_media_manager_mount_volume),
14115         (rb_removable_media_manager_scan): Fix a crasher where we were getting
14116         NULL for a cd volume.
14118 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14120         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
14121         method return a gboolean indicating whether the changes
14122         to the entry have already been applied.
14124         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
14125         only modify the entry if impl_entry_set returns FALSE.
14127         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
14128         When setting the location of an entry, update the
14129         hash table mapping locations to entries.
14131 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14133         * data/glade/Makefile.am:
14134         * iradio/Makefile.am:
14135           Remove 'new station' dialog.
14137         * iradio/rb-station-properties-dialog.h:
14138         * sources/rb-iradio-source.c: (impl_song_properties):
14139         * shell/rb-shell.c: (rb_shell_cmd_new_station):
14140          Add 'new station' mode parameter to
14141          rb_station_properties_dialog_new.
14143         * (rb_station_properties_dialog_response_cb),
14144         (rb_station_properties_dialog_create_station):
14145          When in 'new station' mode, create the station
14146          when OK button is pressed.
14148         * iradio/rb-station-properties-dialog.c:
14149         (rb_station_properties_dialog_location_changed_cb):
14150          Only enable OK button if a location is specified
14151         (rb_station_properties_dialog_init),
14152         (rb_station_properties_dialog_new),
14153         (rb_station_properties_dialog_update),
14154         (rb_station_properties_dialog_update_title),
14155         (rb_station_properties_dialog_rated_cb),
14156         (rb_station_properties_dialog_update_play_count),
14157         (rb_station_properties_dialog_update_bitrate),
14158         (rb_station_properties_dialog_update_last_played),
14159         (rb_station_properties_dialog_update_rating),
14160         (rb_station_properties_dialog_update_playback_error),
14161         (rb_station_properties_dialog_show):
14162          Handle 'new station' mode, where there's no current
14163          station to edit.
14165 2005-11-08  James Livingston  <jrl@ids.org.au>
14167         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
14168         keybinding for track columns consistent between library and playlist
14169         sources.
14171 2005-11-07  James Livingston  <jrl@ids.org.au>
14173         * data/ui/rhythmbox-ui.xml:
14174         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
14175         "Edit" item to playlist menu. Closes bug 311470.
14177 2005-11-07  James Livingston  <jrl@ids.org.au>
14179         patch by: Jaap A. Haitsma <jaap@haitsma.org>
14181         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
14182         confirmation to save dialogs, with gtk 2.8 or higher.
14184 2005-11-07 James Livingston  <jrl@ids.org.au>
14185         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
14186         requirement to a general on, because people are going to have it for
14187         the other dependencies.
14189 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
14191         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
14192         delete dialog less confusing.  Use HIG recommended button order.
14193         Closes bug 320840.
14195 2005-11-06  James Livingston  <jrl@ids.org.au>
14197         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
14198         drag-and-drop error.
14199         
14200         * sources/rb-library-source.c: (rb_library_source_constructor): only
14201         add drag-and-drop for the Library itself, subclasses can add support
14202         themselves if they want it.
14204         * sources/rb-removable-media-source.c:
14205         (rb_removable_media_source_class_init): by default removable media
14206         sources do not support dnd
14208 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
14210         * data/glade/station-properties.glade:
14211          Add box containing error icon and error message label
14212         * iradio/rb-station-properties-dialog.c:
14213         (rb_station_properties_dialog_class_init),
14214         (rb_station_properties_dialog_finalize):
14215          Change this class to use G_DEFINE_TYPE
14216         (rb_station_properties_dialog_init),
14217         (rb_station_properties_dialog_update),
14218         (rb_station_properties_dialog_update_playback_error):
14219          Display error icon and message when there is one, and hide the error
14220          box otherwise.
14221         (rb_station_properties_dialog_show): Hack widget show
14222          method to update the visibility of the error info box when showing
14223          the widget.  Otherwise the icon is displayed all the time (same thing
14224          is done in rb-song-info). Closes bug 320749.
14226 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
14228         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
14229         parsing of the duration of podcast episodes from the feed. Closes bug
14230         320748.
14232 2005-11-05  James Livingston  <jrl@ids.org.au>
14234         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
14235         release date metadata ("Year"). Closes bug 166093.
14237         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
14238         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
14239         (rb_metadata_gst_add_tag_data):
14240         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14241         (save_entry):
14242         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
14243         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
14244         (set_props_from_metadata), (rhythmdb_entry_set_internal),
14245         (rhythmdb_prop_get_type):
14246         * rhythmdb/rhythmdb.h: add support for "date" property
14247         
14248         * data/glade/general-prefs.glade:
14249         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
14250         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
14251         (rb_entry_view_append_column):
14252         * widgets/rb-entry-view.h:
14253         * sources/rb-library-source.c: (rb_library_source_constructor):
14254         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
14255         "Year" colums
14257         * data/glade/song-info.glade:
14258         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
14259         (rb_song_info_construct_single), (rb_song_info_constructor),
14260         (rb_song_info_populate_dialog), (rb_song_info_update_year),
14261         (rb_song_info_sync_entry_single): Add "Year" to song info window
14263         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14264         sorted by year.
14266 2005-11-05  James Livingston  <jrl@ids.org.au>
14268         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14269         description if it's very long.
14271 2005-11-05  James Livingston  <jrl@ids.org.au>
14273         pathc by: Artem Baguinski <femistofel@gmail.com>
14275         * help/C/Makefile.am:
14276         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14277         Closes bug 320613.
14279 2005-11-05  James Livingston  <jrl@ids.org.au>
14281         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14283         * daapsharing/rb-daap-share.c: (write_next_chunk),
14284         (message_finished), (databases_cb): Use chunked file loading and
14285         sending in the DAAP server. This should reduce the amount of memory
14286         required to send files to the client.
14288 2005-11-05  James Livingston  <jrl@ids.org.au>
14290         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14291         work better on some systems. Closes 320622.
14293 2005-11-05  James Livingston  <jrl@ids.org.au>
14295         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14296         homepage, so that users can find out what AudioScrobbler is. Add
14297         access keys.
14299         * data/glade/daap-prefs.glade:
14300         * data/glade/general-prefs.glade:
14301         * data/glade/library-prefs.glade: make the indent be more consistent
14303         * data/glade/podcast-prefs.glade: 
14304         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14305         (impl_get_config_widget): move thing out of code into glade, where
14306         they belong
14308 2005-11-05  James Livingston  <jrl@ids.org.au>
14310         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14311         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14313 2005-11-04  James Livingston  <jrl@ids.org.au>
14315         * configure.ac: don't print DAAP configure info twice
14317 2005-11-04  James Livingston  <jrl@ids.org.au>
14319         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14320         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14321         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14322         #ifdefs, since we removed the symbol. Oops
14324 2005-11-04  James Livingston  <jrl@ids.org.au>
14326         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14327         after the connect line, not before. Oops.
14329 2005-11-04  James Livingston  <jrl@ids.org.au>
14331         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14332         fix some warnings
14334 2005-11-03  James Livingston  <jrl@ids.org.au>
14336         * NEWS: update the news file
14338         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14339         "duration" column.
14341         * data/ui/rhythmbox-ui.xml:
14342         * shell/rb-playlist-manager.c:
14343         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14344         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14345         and "delete" for feeds.
14347 2005-11-03  James Livingston  <jrl@ids.org.au>
14349         * sources/rb-podcast-source.c: (impl_delete),
14350         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14351         feed. Closes 319760.
14353 2005-11-03  James Livingston  <jrl@ids.org.au>
14355         Don't start playing from the remote site when a un-downloaded podcast
14356         is activated. Closes 319983.
14357         
14359         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14360         (write_job_data), (download_progress_cb): write the local location as
14361         soon as any data is recieved
14363         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14364         the mountpoint to NULL for podcast episodes that haven't yet been
14365         downloaded.
14366         
14367         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14368         start playing a podcast if it hasn't been downloaded.
14369         
14370         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14371         (rb_podcast_source_entry_activated_cb): begin downloading when the
14372         podcast is activated.
14374 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14376         * data/glade/general-prefs.glade:  Fix capitalization.
14377         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14378         * sources/rb-podcast-source.c:
14379         (rb_podcast_source_songs_show_popup_cb),
14380         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14382 2005-11-03  James Livingston  <jrl@ids.org.au>
14384         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14386         * shell/rb-removable-media-manager.c:
14387         (rb_removable_media_manager_mount_volume): don't check network or
14388         autofs mounts, as they're not going to be removable media. Stops
14389         sending lots of warnings to syslog. Closes 320571.
14391         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14392         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14393         320570.
14395 2005-11-03  James Livingston  <jrl@ids.org.au>
14397         Add support for playing audio CDs. Metadata lookup is done using
14398         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14399         the library when it gets broken out of S-J.
14400         
14401         Add a "rescan media" menu item, and commands for ejecting removable
14402         media.
14404         Move nautilus-cd-burner from optional to required depenency.
14406         * configure.ac:
14407         * data/ui/rhythmbox-ui.xml:
14408         * metadata/Makefile.am:
14409         + metadata/sj-error.c:
14410         + metadata/sj-error.h:
14411         + metadata/sj-metadata-marshal.list:
14412         + metadata/sj-metadata-musicbrainz.c:
14413         + metadata/sj-metadata-musicbrainz.h:
14414         + metadata/sj-metadata.c:
14415         + metadata/sj-metadata.h:
14416         + metadata/sj-structures.c:
14417         + metadata/sj-structures.h:
14418         * player/Makefile.am:
14419         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14420         * po/POTFILES.in:
14421         * shell/Makefile.am:
14422         * shell/rb-removable-media-manager.c:
14423         (rb_removable_media_manager_dispose), (poll_tray_opened),
14424         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14425         (rb_removable_media_manager_load_media),
14426         (rb_removable_media_manager_mount_volume),
14427         (rb_removable_media_manager_cmd_eject_medium),
14428         (rb_removable_media_manager_cmd_scan_media),
14429         (rb_removable_media_manager_check_volume),
14430         (rb_removable_media_manager_unmount_volume_swap),
14431         (rb_removable_media_manager_scan):
14432         * sources/Makefile.am:
14433         + sources/rb-audiocd-source.c:
14434         + sources/rb-audiocd-source.h:
14435         * tests/Makefile.am:
14437 2005-11-02  James Livingston  <jrl@ids.org.au>
14439         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14441         * sources/rb-iradio-source.c:
14442         (stations_view_drag_data_received_cb):
14443         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14444         don't crash when the second uri is missing frm the drop, which
14445         browsers sometimes do.
14447 2005-11-01  James Livingston  <jrl@ids.org.au>
14449         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14450         (rb_podcast_manager_insert_feed):
14451         * podcast/rb-podcast-manager.h:
14452         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14453         (rb_set_item_value), (rb_validate_item_propert),
14454         (rb_podcast_parse_date), (rb_podcast_parse_time):
14455         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14456         from the feed.
14458 2005-10-31  James Livingston  <jrl@ids.org.au>
14460         * ChangeLog:
14461         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14462         huge
14464 2005-10-31  James Livingston  <jrl@ids.org.au>
14466         * sources/rb-podcast-source.c:
14467         (rb_podcast_source_post_date_cell_data_func): generate the date string
14468         in a way that is correct in all locales.
14469         
14470         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14471         (rhythmdb_entry_sync_mirrored): make the last played/date added
14472         columns use the same format.
14474 2005-10-30  James Livingston  <jrl@ids.org.au>
14477         * podcast/rb-podcast-manager.c:
14478         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14479         
14480         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14481         iradio errors better.
14483 2005-10-30  James Livingston  <jrl@ids.org.au>
14485         patch by: Artem Baguinski <femistofel@gmail.com>
14487         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14489 2005-10-30  James Livingston  <jrl@ids.org.au>
14491         * podcast/rb-podcast-manager.c:
14492         (rb_podcast_manager_subscribe_feed),
14493         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14494         already been added, usually as a radio station. Closes 319434.
14496 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14498         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14499         mnemonics & resize issues)
14500         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14501         & mnemonics)
14502         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14503         widget for the "download location" label.
14505         Closes bug 320184.
14507 2005-10-29  James Livingston  <jrl@ids.org.au>
14509         Allow the search box to match words from multiple properties. Closes
14510         bug 139196. Thanks to the person from IRC who did a lot of the initial
14511         work.
14514         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14515         * lib/rb-util.h: Add functions to split a string into words, and one
14516         to perform "search folding" which is currently like casefolding but
14517         also strips punctuation
14518         
14519         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14520         (rhythmdb_query_preprocess):
14521         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14522         against title, artist, album and genre (for the search box)
14523         
14524         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14525         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14526         (save_entry), (search_match_properties),
14527         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14528         splitting into words and matching across multiple properties.
14529         
14530         * sources/rb-library-source.c: (construct_query_from_selection): use
14531         the new SEARCH_MATCH property for the search box
14532         
14533         * widgets/rb-entry-view.c: (type_ahead_search_func):
14535 2005-10-29  James Livingston  <jrl@ids.org.au>
14537         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14538         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14539         
14540         * shell/rb-playlist-manager.c:
14541         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14542         correctly.
14543         
14544         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14545         initial state of the shuffle/repeat menu items correctly. Patch from
14546         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14548 2005-10-29  James Livingston  <jrl@ids.org.au>
14550         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14551         double-free.
14552         
14553         * widgets/rb-cell-renderer-pixbuf.c:
14554         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14555         icon go black when row is not selected
14556         
14557         * doc/reference/tmpl/rb-daap-connection.sgml:
14558         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14560 2005-10-29  James Livingston  <jrl@ids.org.au>
14562         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14563         silly mistake, where it could think partial downloads has been
14564         completed.
14566 2005-10-29  James Livingston  <jrl@ids.org.au>
14568         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14570         * data/glade/song-info.glade:
14571         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14572         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14573         (rb_song_info_sync_entry_single): show the disc number in the song
14574         info window. From bug 311199.
14576 2005-10-29  James Livingston  <jrl@ids.org.au>
14578         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14579         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14580         regularly. Closes 155306.
14582 2005-10-29  James Livingston  <jrl@ids.org.au>
14584         * podcast/rb-podcast-manager.c:
14585         (rb_podcast_manager_download_entry),
14586         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14587         (rb_podcast_manager_insert_feed):
14588         * podcast/rb-podcast-manager.h:
14589         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14590         (rb_podcast_parser_start_element):
14591         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14592         don't download them again. However, it can't resume
14593         partially-downloaded ones.
14595 2005-10-28  James Livingston  <jrl@ids.org.au>
14597         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14598         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14599         work. Don't attempt to write duration as a tag.
14601         Thanks to Artem Baguinski <femistofel@gmail.com>
14603 2005-10-28  James Livingston  <jrl@ids.org.au>
14605         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14606         don't disable the status-bar menu item when the current source doesn't
14607         use the search box.
14609 2005-10-28  James Livingston  <jrl@ids.org.au>
14611         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14612         crash if the file has unknown length
14614 2005-10-27  James Livingston  <jrl@ids.org.au>
14616         * daapsharing/rb-daap-connection.c:
14617         (rb_daap_connection_state_done): don't assert when a daap server
14618         doesn't have any playlists
14620 2005-10-27  James Livingston  <jrl@ids.org.au>
14622         * sources/rb-sourcelist-model.c:
14623         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14624         source for the sourcelist. Closes bug 319817.
14626 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14628         Patch by: Renato Araujo <renatox@gmail.com>
14630         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14631           Fix for a crasher caused by previous patch.
14633 2005-10-26  James Livingston  <jrl@ids.org.au>
14635         * data/glade/podcast-prefs.glade:
14636         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14637         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14638         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14639         * podcast/rb-podcast-manager.c:
14640         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14641         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14642         * shell/rb-shell.c: Change some strings to make them more consistent.
14643         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14644         makes it clearer which is which. "Episode" may not be the best term,
14645         but it seems to be widely used.
14646         
14647         Also fix some strings that weren't marked as translatable.
14648         
14649         * podcast/rb-feed-podcast-properties-dialog.c:
14650         (rb_feed_podcast_properties_dialog_class_init),
14651         (rb_feed_podcast_properties_dialog_finalize):
14652         * podcast/rb-new-podcast-dialog.c:
14653         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14654         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14655         (rb_simple_view_finalize), (rb_simple_view_constructor):
14656         * podcast/rb-podcast-properties-dialog.c:
14657         (rb_podcast_properties_dialog_class_init),
14658         (rb_podcast_properties_dialog_finalize):
14659         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14660         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14661         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14662         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14663         use G_DEFINE_TYPE, instead of doing it manually.
14665 2005-10-26  James Livingston  <jrl@ids.org.au>
14667         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14668         <jrl@ids.org.au>
14670         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14671         (rb_metadata_init): Check that the necessary plugins are present to do
14672         id3 editing.
14673         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14674         corrupted before replacing the original.
14676 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14678         reviewed by: James Livingston <jrl@ids.org.au>
14680         Assign sequential IDs to playlists for DAAP rather than using the
14681         address of the playlist object.  Less flaky, and should work on 64bit
14682         platforms. Closes bug 319304.
14684         * daapsharing/rb-daap-share.c: 
14685         (rb_daap_share_set_property): watch for playlist creation
14686         (_find_by_id), (_find_by_source): playlist list search functions
14687         (rb_daap_share_playlist_created),
14688         (rb_daap_share_process_playlist),
14689         (rb_daap_share_playlist_destroyed):
14690          update playlist list as it changes, use weak refs on 
14691          playlists to get notified on destroy.
14692         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14693          destroy playlist list on shutdown
14694         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14695          DAAP response
14696         (databases_cb): search for playlist ID in list rather than just
14697          converting it to a pointer; return HTTP 404 if playlist not 
14698          found.
14699         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14700          is already used for the main library
14702 2005-10-26  James Livingston  <jrl@ids.org.au>
14704         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14706         * daapsharing/rb-daap-connection.c: (build_message),
14707         (http_response_handler), (http_get), (handle_server_info),
14708         (handle_login), (handle_update), (handle_database_info),
14709         (handle_song_listing), (handle_playlists),
14710         (handle_playlist_entries), (handle_logout),
14711         (rb_daap_connection_new), (rb_daap_connection_logout),
14712         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14713         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14714         * daapsharing/rb-daap-connection.h:
14715         * sources/rb-daap-source.c: (rb_daap_source_activate),
14716         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14717         (rb_daap_source_disconnect): Make connecting to DAAP sources
14718         asynchronous, so that non-responsive servers don't hang the UI. Closes
14719         316225.
14721 2005-10-26  James Livingston  <jrl@ids.org.au>
14723         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14725         * rhythmdb/rhythmdb-query-model.c:
14726         (rhythmdb_query_model_do_reorder): generate the row re-order map
14727         correctly.
14728         
14729         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14730         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14731         Update selection when rows get re-ordered. Closes 319718.
14733 2005-10-26  James Livingston  <jrl@ids.org.au>
14735         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14737         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14738         actually set the db pointer in play orders. Closes 319818.
14740 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14742         Patch by: Renato Araujo <renatox@gmail.com>
14744         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14745         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14746         (rb_podcast_manager_update_synctime),
14747         (rb_podcast_manager_config_changed),
14748         (rb_podcast_manager_insert_feed):
14749         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14750         (save_entry):
14751         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14752         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14753         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14755 2005-10-25  James Livingston  <jrl@ids.org.au>
14757         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14758         (db_entry_deleted_cb): don't share tracks that are hidden because the
14759         file is missing.
14761 2005-10-22  James Livingston  <jrl@ids.org.au>
14763         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14764         crash if an entry couldn't be playerd, without streamer setting an
14765         error.
14767         
14768         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14770         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14771         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14772         is pasted into the dialog.
14773         
14774         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14775         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14776         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14777         (rb_podcast_parse_channel_free):
14778         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14779         feeds
14781 2005-10-22  James Livingston  <jrl@ids.org.au>
14783         * sources/rb-iradio-source.c:
14784         (rb_iradio_source_first_time_changed): Make merging the default
14785         stations actually work.
14786         
14787         * sources/rb-podcast-source.c:
14788         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14789         people weren't seing the percentages in the stats column.
14791 2005-10-21  James Livingston  <jrl@ids.org.au>
14793         Patch from Caio Marcelo <cmarcelo@gmail.com>
14795         * shell/rb-shell.c: (rb_shell_window_state_cb),
14796         (rb_shell_get_visibility), (idle_hide_mainwindow),
14797         (rb_shell_set_visibility): Make the "show window" item in the tray
14798         icon menu show the toggle state correctly. Use a better policy on
14799         deciding whether the window is "visible" or not. Closes bug 308053.
14801 2005-10-21  James Livingston  <jrl@ids.org.au>
14803         * doc/reference/tmpl/rb-shell-preferences.sgml:
14804         * shell/Makefile.am: fix building with gtk-doc
14806         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14807         don't submit podcasts to audioscrobbler
14808         
14809         
14810         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14811         
14812         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14813         (rb_set_item_value): strip spaces surrounding podcast urls
14814         
14816         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14817         
14818         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14820 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14822         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14823          Audioscrobbler/Last.fm support
14825         * configure.ac:
14826         * data/glade/Makefile.am:
14827         * data/glade/audioscrobbler-prefs.glade:
14828         * data/rhythmbox.schemas:
14829         * lib/Makefile.am:
14830         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14831         * lib/md5.h:
14832         * lib/rb-preferences.h:
14833         * po/POTFILES.in:
14834         * shell/Makefile.am:
14835         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14836         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14837         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14838         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14839         (rb_audioscrobbler_timeout_cb), (mkmd5),
14840         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14841         (rb_audioscrobbler_do_handshake),
14842         (rb_audioscrobbler_do_handshake_cb),
14843         (rb_audioscrobbler_submit_queue),
14844         (rb_audioscrobbler_submit_queue_cb),
14845         (rb_audioscrobbler_import_settings),
14846         (rb_audioscrobbler_preferences_sync),
14847         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14848         (rb_audioscrobbler_gconf_changed_cb),
14849         (rb_audioscrobbler_song_changed_cb),
14850         (rb_audioscrobbler_username_entry_changed_cb),
14851         (rb_audioscrobbler_username_entry_activate_cb),
14852         (rb_audioscrobbler_password_entry_changed_cb),
14853         (rb_audioscrobbler_password_entry_activate_cb),
14854         (rb_audioscrobbler_enabled_check_changed_cb),
14855         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14856         (rb_audioscrobbler_load_entry_from_string),
14857         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14858         (rb_audioscrobbler_print_queue),
14859         (rb_audioscrobbler_free_queue_entries):
14860         * shell/rb-audioscrobbler.h:
14861         * shell/rb-shell-preferences.c:
14862         (rb_shell_preferences_append_audioscrobbler_config):
14863         * shell/rb-shell-preferences.h:
14864         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14865         (rb_shell_select_source), (rb_shell_cmd_preferences):
14866         * sources/Makefile.am:
14868 2005-10-21  James Livingston  <jrl@ids.org.au>
14870         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14872         * Makefile.am:
14873         * NEWS:
14874         * configure.ac:
14875         * data/art/Makefile.am:
14876         * data/glade/Makefile.am:
14877         * data/rhythmbox.schemas:
14878         * data/ui/rhythmbox-ui.xml:
14879         * doc/reference/Makefile.am:
14880         * doc/reference/tmpl/rhythmdb.sgml:
14881         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14882         * lib/rb-stock-icons.h:
14883         * po/POTFILES.in:
14884         * podcast/Makefile.am:
14885         + podcast/rb-feed-podcast-properties-dialog.c:
14886         + podcast/rb-feed-podcast-properties-dialog.h:
14887         + podcast/rb-new-podcast-dialog.c:
14888         + podcast/rb-new-podcast-dialog.h:
14889         + podcast/rb-podcast-manager.c:
14890         + podcast/rb-podcast-manager.h:
14891         + podcast/rb-podcast-marshal.list:
14892         + podcast/rb-podcast-parse.c:
14893         + podcast/rb-podcast-parse.h:
14894         + podcast/rb-podcast-properties-dialog.c:
14895         + podcast/rb-podcast-properties-dialog.h:
14896         * rhythmdb/rhythmdb-property-model.c:
14897         (rhythmdb_property_model_set_property),
14898         (rhythmdb_property_model_enable_drag):
14899         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14900         (rhythmdb_tree_parser_end_element), (save_entry),
14901         (rhythmdb_tree_save):
14902         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14903         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14904         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14905         (rhythmdb_entry_podcast_feed_get_type):
14906         * rhythmdb/rhythmdb.h:
14907         * shell/Makefile.am:
14908         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14909         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14910         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14911         (rb_shell_quit):
14912         * sources/Makefile.am:
14913         + sources/rb-podcast-source.c:
14914         + sources/rb-podcast-source.h:
14915         * widgets/Makefile.am:
14916         * widgets/rb-property-view.c: (rb_property_view_class_init),
14917         (rb_property_view_constructor),
14918         (rb_property_view_selection_changed_cb),
14919         (rb_property_view_get_treeview):
14920         * widgets/rb-property-view.h:
14921         + widgets/rb-simple-view.c:
14922         + widgets/rb-simple-view.h:
14924 2005-10-20  James Livingston  <jrl@ids.org.au>
14926         * NEWS: update with changes since 0.9.1
14928         * configure.ac: check whether collate_key_for_filename is available
14929         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14930         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14931         it if it isn't available in glib (i.e. building against 2.6)
14932         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14933         collation to get "natural sorting". Closes bug 158599.
14935 2005-10-20  James Livingston  <jrl@ids.org.au>
14937         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14939         * doc/reference/tmpl/rb-shell-player.sgml:
14940         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14941         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14942         (rb_shell_player_get_playing),
14943         (rb_shell_player_get_playing_time_string),
14944         (rb_shell_player_get_playing_time),
14945         (rb_shell_player_set_playing_time), (tick_cb),
14946         (rb_shell_player_get_playing_path), (filter_mmkeys):
14947         * shell/rb-shell-player.h:
14948         * shell/rb-shell-player.xml:
14949         * shell/rb-shell.c: (rb_shell_constructor),
14950         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14951         (rb_shell_set_window_title), (rb_shell_playing_impl),
14952         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14953         Merge the duration_changed and elapsed_changed DBUS signals into one
14954         elapsed_changed signal. Check that the output argument isn't NULL
14955         before trying to put things in it.
14957 2005-10-20  James Livingston  <jrl@ids.org.au>
14959         * rhythmdb/rhythmdb-query-model.c:
14960         (rhythmdb_query_model_entry_added_cb),
14961         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14962         problem where hidden entries could be shown in playlists.
14963         
14964         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14965         issues when switching in and out of small mode.
14967 2005-10-19  James Livingston  <jrl@ids.org.au>
14969         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14970         (rb_shell_constructor), (rb_shell_window_state_cb),
14971         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14972         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14973         (rb_shell_view_smalldisplay_changed_cb),
14974         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14975         (rb_shell_sync_paned): remove gconf window-state races, prevent
14976         changing small mode too often, fix window event races. Closes 122806.
14978         
14979         Patch from Caio Marcelo <cmarcelo@gmail.com>
14981         * data/rhythmbox.schemas:
14982         * shell/rb-shell.c: (rb_shell_window_state_cb),
14983         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14984         Remember the position of the window. Closes 315289.
14986 2005-10-19  James Livingston  <jrl@ids.org.au>
14988         Patch from Christophe Fergeau  <teuf@gnome.org>
14990         * configure.ac: determine whether libgpod is present when neither
14991         --with-ipod nor --without-ipod is passed
14993 2005-10-19  James Livingston  <jrl@ids.org.au>
14995         Patch from Caio Marcelo <cmarcelo@gmail.com>
14997         * shell/rb-shell-player.c: (do_next_idle),
14998         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14999         (rb_shell_player_do_previous_or_seek),
15000         (rb_shell_player_previous_button_cb),
15001         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15002         (rb_shell_player_cmd_next), (eos_cb):
15003         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
15004         end of the playlist is reached.
15006 2005-10-19  Christopher Aillon  <caillon@redhat.com>
15008         * lib/rb-thread.c: fix a few GSource leaks
15010 2005-10-19  James Livingston  <jrl@ids.org.au>
15012         * doc/reference/tmpl/bacon-volume.sgml:
15013         * doc/reference/tmpl/disclosure-widget.sgml:
15014         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15015         * doc/reference/tmpl/eggnotificationbubble.sgml:
15016         * doc/reference/tmpl/eggtrayicon.sgml:
15017         * doc/reference/tmpl/gsequence.sgml:
15018         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15019         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15020         * doc/reference/tmpl/rb-daap-connection.sgml:
15021         * doc/reference/tmpl/rb-daap-dialog.sgml:
15022         * doc/reference/tmpl/rb-daap-mdns.sgml:
15023         * doc/reference/tmpl/rb-daap-share.sgml:
15024         * doc/reference/tmpl/rb-daap-sharing.sgml:
15025         * doc/reference/tmpl/rb-daap-source.sgml:
15026         * doc/reference/tmpl/rb-daap-src.sgml:
15027         * doc/reference/tmpl/rb-daap-structure.sgml:
15028         * doc/reference/tmpl/rb-debug.sgml:
15029         * doc/reference/tmpl/rb-dialog.sgml:
15030         * doc/reference/tmpl/rb-druid.sgml:
15031         * doc/reference/tmpl/rb-entry-view.sgml:
15032         * doc/reference/tmpl/rb-enums.sgml:
15033         * doc/reference/tmpl/rb-file-helpers.sgml:
15034         * doc/reference/tmpl/rb-glade-helpers.sgml:
15035         * doc/reference/tmpl/rb-header.sgml:
15036         * doc/reference/tmpl/rb-history.sgml:
15037         * doc/reference/tmpl/rb-ipod-source.sgml:
15038         * doc/reference/tmpl/rb-iradio-source.sgml:
15039         * doc/reference/tmpl/rb-library-source.sgml:
15040         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15041         * doc/reference/tmpl/rb-metadata.sgml:
15042         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15043         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15044         * doc/reference/tmpl/rb-play-order-linear.sgml:
15045         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15046         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15047         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15048         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15049         * doc/reference/tmpl/rb-play-order-random.sgml:
15050         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15051         * doc/reference/tmpl/rb-play-order.sgml:
15052         * doc/reference/tmpl/rb-player.sgml:
15053         * doc/reference/tmpl/rb-playlist-manager.sgml:
15054         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15055         * doc/reference/tmpl/rb-playlist-source.sgml:
15056         * doc/reference/tmpl/rb-preferences.sgml:
15057         * doc/reference/tmpl/rb-property-view.sgml:
15058         * doc/reference/tmpl/rb-query-creator-private.sgml:
15059         * doc/reference/tmpl/rb-query-creator.sgml:
15060         * doc/reference/tmpl/rb-rating-helper.sgml:
15061         * doc/reference/tmpl/rb-rating.sgml:
15062         * doc/reference/tmpl/rb-recorder.sgml:
15063         * doc/reference/tmpl/rb-refstring.sgml:
15064         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15065         * doc/reference/tmpl/rb-removable-media-source.sgml:
15066         * doc/reference/tmpl/rb-search-entry.sgml:
15067         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15068         * doc/reference/tmpl/rb-shell-glue.sgml:
15069         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15070         * doc/reference/tmpl/rb-shell-player.sgml:
15071         * doc/reference/tmpl/rb-shell-preferences.sgml:
15072         * doc/reference/tmpl/rb-shell.sgml:
15073         * doc/reference/tmpl/rb-song-display-box.sgml:
15074         * doc/reference/tmpl/rb-song-info.sgml:
15075         * doc/reference/tmpl/rb-source-header.sgml:
15076         * doc/reference/tmpl/rb-source.sgml:
15077         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15078         * doc/reference/tmpl/rb-sourcelist.sgml:
15079         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15080         * doc/reference/tmpl/rb-statusbar.sgml:
15081         * doc/reference/tmpl/rb-stock-icons.sgml:
15082         * doc/reference/tmpl/rb-string-helpers.sgml:
15083         * doc/reference/tmpl/rb-thread.sgml:
15084         * doc/reference/tmpl/rb-tray-icon.sgml:
15085         * doc/reference/tmpl/rb-tree-dnd.sgml:
15086         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15087         * doc/reference/tmpl/rb-util.sgml:
15088         * doc/reference/tmpl/rhythmbox-unused.sgml:
15089         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15090         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15091         * doc/reference/tmpl/rhythmdb-tree.sgml:
15092         * doc/reference/tmpl/rhythmdb.sgml: update for changes
15093         
15094         * doc/reference/Makefile.am: make docs build with changed ipod support
15095         
15096         * po/POTFILES.in: remove sources/itunesdb
15098 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
15100         * sources/itunesdb.c:
15101         * sources/itunesdb.h: removed now useless files
15103 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
15105         * configure.ac:
15106         * shell/Makefile.am:
15107         * sources/Makefile.am:
15108         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
15109         code
15110         [1]: http://www.gtkpod.org/libgpod.html
15113 2005-10-18  James Livingston  <jrl@ids.org.au>
15115         patch from Funda Wang <fundawang@linux.net.cn>
15117         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
15118         the notification bubble string translatable.
15120 ============ Version 0.9.1
15122 2005-10-16  James Livingston  <jrl@ids.org.au>
15124         * configure.ac: bump version to 0.9.1
15125         * NEWS: update translation credits
15127 2005-10-16  James Livingston  <jrl@ids.org.au>
15129         * rhythmdb/rhythmdb-query-model.c:
15130         (rhythmdb_query_model_class_init),
15131         (rhythmdb_query_model_drag_data_received): 
15132         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
15133         notified when things are dropped into the entry view.
15134         
15135         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15136         (rb_playlist_source_add_location_swapped),
15137         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
15138         (rb_playlist_source_non_entry_dropped),
15139         (rb_playlist_source_row_inserted): Use the new signal so that dropping
15140         things onto a playlist's entry view work correctly, and doesn't cause
15141         crashes. Allow folders to be dropped as well. (Closes 318308)
15143 2005-10-16  James Livingston  <jrl@ids.org.au>
15145         * NEWS: Update some more
15147         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15148         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
15149         with the paned size, so that it doesn't move when the window is
15150         maximised/restored. Closes bug 315852.
15152         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
15153         display the playcount column, as it's useless (it never get changed).
15155 2005-10-14  James Livingston  <jrl@ids.org.au>
15157         * Makefile.am:
15158         * data/Makefile.am:
15159         * doc/reference/Makefile.am: get "make distcheck" to pass again
15161 2005-10-11  James Livingston  <jrl@ids.org.au>
15163         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
15164         destroy the connection when retrieving the playlists fails, because
15165         tracks have already been added. Closes 318380.
15167 2005-10-11  James Livingston  <jrl@ids.org.au>
15169         * sources/rb-sourcelist.c: (rb_sourcelist_append),
15170         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
15171         (source_name_edited_cb): Ask for the columns to be resized when a
15172         source is added, deleted or changes name.
15174 2005-10-11  James Livingston  <jrl@ids.org.au>
15176         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
15177         create a thread when processing a directory. This stops up created one
15178         thread for each file in a playlist we're trying to load. Closes
15179         317850.
15181         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
15182         typo that made sort-by-artist not work correctly.
15184 2005-10-11  James Livingston  <jrl@ids.org.au>
15186         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
15187         support is enabled
15189 2005-10-11  James Livingston  <jrl@ids.org.au>
15191         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
15192         * lib/rb-file-helpers.h: add a function to turn uris into our
15193         canonical path-escaped form
15194         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
15195         above function when import playlists. This will fix the problem of
15196         duplicate entries due to different representations of the uri (bug
15197         158211).
15199 2005-10-11  James Livingston  <jrl@ids.org.au>
15201         * shell/rb-shell.c: (rb_shell_get_visibility),
15202         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
15203         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
15204         window hiding so that Alt-F4 works again.
15206         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
15207         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
15208         (rb_entry_view_string_sort_func): Stop some crashes where a string
15209         property was set to NULL.
15211 2005-10-10  James Livingston  <jrl@ids.org.au>
15213         * doc/reference/rhythmbox.types: fix gtk-doc generation
15215 2005-10-09  James Livingston  <jrl@ids.org.au>
15217         * sources/rb-sourcelist.c: (rb_sourcelist_init):
15218         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
15219         accelerators, so that we don't have as many conflicting keys.
15221 2005-10-08  James Livingston  <jrl@ids.org.au>
15223         * data/iradio-initial.pls: Update the list of radio stations. Thanks
15224         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
15225         bug 129285.
15227 2005-10-07  James Livingston  <jrl@ids.org.au>
15229         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
15230         local path names in the same way as every other URI. This should stop
15231         duplicates occurring due to different escapings. Closes bug 158211.
15233 2005-10-06  James Livingston  <jrl@ids.org.au>
15235         * NEWS: more updates
15236         
15237         patch from Jaap Haitsma <jaap@haitsma.org>:
15239         * configure.ac:
15240         * data/Makefile.am:
15241         * data/art/Makefile.am:
15242         - data/art/rhythmbox-paused.png:
15243         - data/art/rhythmbox-playback-error.png:
15244         - data/art/rhythmbox-playing.png:
15245         - data/art-clearlooks/:
15246         * lib/rb-file-helpers.c: (rb_file):
15247         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15248         * lib/rb-stock-icons.h:
15249         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
15250         * widgets/rb-cell-renderer-pixbuf.c:
15251         (rb_cell_renderer_pixbuf_render):
15252         * widgets/rb-entry-view.c: (rb_entry_view_init),
15253         (rb_entry_view_set_playing):
15254         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
15255         stock icons instead of custom art. Drop remanents of art-clearlooks.
15257 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
15259         * configure.ac: Added ne in ALL_LINGUAS
15261 2005-10-02  James Livingston  <jrl@ids.org.au>
15263         * data/glade/Makefile.am: actually install the daap prefs glade file
15265 2005-09-30  James Livingston  <jrl@ids.org.au>
15267         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15268         translatable files, so that make check works and we don't annoy the
15269         translators.
15270         
15271         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15272         sanity checking, in case a db entry is missing some properties.
15274 2005-09-29  James Livingston  <jrl@ids.org.au>
15276         - lib/rb-string-helpers.c:
15277         - lib/rb-string-helpers.h:
15278         * lib/Makefile.am:
15279         * rhythmdb/rhythmdb-tree.c:
15280         * rhythmdb/rhythmdb.c:
15281         * shell/main.c: (main):
15282         * shell/rb-shell.c:
15283         * widgets/rb-entry-view.c:
15284         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15285         utility functions haven't been used in a while.
15287 2005-09-27  James Livingston  <jrl@ids.org.au>
15289         * data/art-clearlooks/Makefile.am:
15290         - data/art-clearlooks/rhythmbox-album.png:
15291         - data/art-clearlooks/rhythmbox-audiocd.png:
15292         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15293         - data/art-clearlooks/rhythmbox-dnd.png:
15294         - data/art-clearlooks/rhythmbox-ipod.png:
15295         - data/art-clearlooks/rhythmbox-iradio.png:
15296         - data/art-clearlooks/rhythmbox-library.png:
15297         - data/art-clearlooks/rhythmbox-next.png:
15298         - data/art-clearlooks/rhythmbox-pause.png:
15299         - data/art-clearlooks/rhythmbox-play.png:
15300         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15301         - data/art-clearlooks/rhythmbox-playlist.png:
15302         - data/art-clearlooks/rhythmbox-previous.png:
15303         - data/art-clearlooks/rhythmbox-repeat.png:
15304         - data/art-clearlooks/rhythmbox-rewind.png:
15305         - data/art-clearlooks/rhythmbox-shuffle.png:
15306         - data/art-clearlooks/rhythmbox-stop.png:
15307         - data/art-clearlooks/rhythmbox-visuals.png:
15308         - data/art-clearlooks/rhythmbox-volume-max.png:
15309         - data/art-clearlooks/rhythmbox-volume-medium.png:
15310         - data/art-clearlooks/rhythmbox-volume-min.png:
15311         - data/art-clearlooks/rhythmbox-volume-mute.png:
15312         - data/art-clearlooks/rhythmbox-volume-zero.png:
15313         * data/art/Makefile.am:
15314         - data/art/rhythmbox-album.png:
15315         - data/art/rhythmbox-audiocd.png:
15316         - data/art/rhythmbox-automatic-playlist.png:
15317         - data/art/rhythmbox-dnd.png:
15318         - data/art/rhythmbox-ipod.png:
15319         - data/art/rhythmbox-iradio.png:
15320         - data/art/rhythmbox-library.png:
15321         - data/art/rhythmbox-next.png:
15322         - data/art/rhythmbox-pause.png:
15323         - data/art/rhythmbox-play.png:
15324         - data/art/rhythmbox-playlist-menu.png:
15325         - data/art/rhythmbox-playlist.png:
15326         - data/art/rhythmbox-previous.png:
15327         - data/art/rhythmbox-repeat.png:
15328         - data/art/rhythmbox-rewind.png:
15329         - data/art/rhythmbox-shuffle.png:
15330         - data/art/rhythmbox-stop.png:
15331         - data/art/rhythmbox-visuals.png:
15332         - data/art/rhythmbox-volume-max.png:
15333         - data/art/rhythmbox-volume-medium.png:
15334         - data/art/rhythmbox-volume-min.png:
15335         - data/art/rhythmbox-volume-mute.png:
15336         - data/art/rhythmbox-volume-zero.png:
15337         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15338         * lib/rb-stock-icons.h:
15339         * shell/rb-playlist-manager.c:
15340         * shell/rb-shell-player.c:
15341         * sources/rb-daap-source.c: (rb_daap_get_icon):
15342         * sources/rb-ipod-source.c:
15343         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15344         * sources/rb-library-source.c: (rb_library_source_new):
15345         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15346         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15347         that hasn't been used in a LONG time, and also remove art that are
15348         now stock icons.
15350 2005-09-27  James Livingston  <jrl@ids.org.au>
15352         * README: point to the gnome.org web sites, and update the example
15353         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15354         
15355         * rhythmdb/rhythmdb-query-model.c:
15356         (rhythmdb_query_model_set_property),
15357         (rhythmdb_query_model_get_property),
15358         (rhythmdb_query_model_finalize):
15359         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15360         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15361         * rhythmdb/rhythmdb.h:
15362         * sources/rb-iradio-source.c: (impl_search):
15363         * sources/rb-library-source.c: (impl_search): Add query
15364         "preprocessing", which performs operations such as casefolding any
15365         strings that will be compared to any of the *_FOLDED properties.
15366         Closes bug 316039
15368 2005-09-27  James Livingston  <jrl@ids.org.au>
15370         * data/glade/daap-prefs.glade:
15371         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15372         file for the daap preferences pane
15373         
15374         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15375         (rb_sourcelist_append), (rb_sourcelist_remove),
15376         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15377         don't display the column for source expanders unless there is an
15378         expandable source.
15380 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15382         * .cvsignore:
15383         * Makefile.am:
15384         * configure.ac:
15385         * doc/.cvsignore:
15386         * doc/Makefile.am:
15387         * doc/reference/.cvsignore:
15388         * doc/reference/Makefile.am:
15389         * doc/reference/rhythmbox-docs.sgml:
15390         * doc/reference/rhythmbox-sections.txt:
15391         * doc/reference/rhythmbox.types:
15392         * doc/reference/tmpl/bacon-volume.sgml:
15393         * doc/reference/tmpl/disclosure-widget.sgml:
15394         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15395         * doc/reference/tmpl/eggnotificationbubble.sgml:
15396         * doc/reference/tmpl/eggtrayicon.sgml:
15397         * doc/reference/tmpl/gsequence.sgml:
15398         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15399         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15400         * doc/reference/tmpl/rb-daap-connection.sgml:
15401         * doc/reference/tmpl/rb-daap-dialog.sgml:
15402         * doc/reference/tmpl/rb-daap-mdns.sgml:
15403         * doc/reference/tmpl/rb-daap-share.sgml:
15404         * doc/reference/tmpl/rb-daap-sharing.sgml:
15405         * doc/reference/tmpl/rb-daap-source.sgml:
15406         * doc/reference/tmpl/rb-daap-src.sgml:
15407         * doc/reference/tmpl/rb-daap-structure.sgml:
15408         * doc/reference/tmpl/rb-debug.sgml:
15409         * doc/reference/tmpl/rb-dialog.sgml:
15410         * doc/reference/tmpl/rb-druid.sgml:
15411         * doc/reference/tmpl/rb-entry-view.sgml:
15412         * doc/reference/tmpl/rb-enums.sgml:
15413         * doc/reference/tmpl/rb-file-helpers.sgml:
15414         * doc/reference/tmpl/rb-glade-helpers.sgml:
15415         * doc/reference/tmpl/rb-header.sgml:
15416         * doc/reference/tmpl/rb-history.sgml:
15417         * doc/reference/tmpl/rb-ipod-source.sgml:
15418         * doc/reference/tmpl/rb-iradio-source.sgml:
15419         * doc/reference/tmpl/rb-library-source.sgml:
15420         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15421         * doc/reference/tmpl/rb-metadata.sgml:
15422         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15423         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15424         * doc/reference/tmpl/rb-play-order-linear.sgml:
15425         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15426         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15427         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15428         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15429         * doc/reference/tmpl/rb-play-order-random.sgml:
15430         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15431         * doc/reference/tmpl/rb-play-order.sgml:
15432         * doc/reference/tmpl/rb-player.sgml:
15433         * doc/reference/tmpl/rb-playlist-manager.sgml:
15434         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15435         * doc/reference/tmpl/rb-playlist-source.sgml:
15436         * doc/reference/tmpl/rb-preferences.sgml:
15437         * doc/reference/tmpl/rb-property-view.sgml:
15438         * doc/reference/tmpl/rb-query-creator-private.sgml:
15439         * doc/reference/tmpl/rb-query-creator.sgml:
15440         * doc/reference/tmpl/rb-rating-helper.sgml:
15441         * doc/reference/tmpl/rb-rating.sgml:
15442         * doc/reference/tmpl/rb-recorder.sgml:
15443         * doc/reference/tmpl/rb-refstring.sgml:
15444         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15445         * doc/reference/tmpl/rb-removable-media-source.sgml:
15446         * doc/reference/tmpl/rb-search-entry.sgml:
15447         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15448         * doc/reference/tmpl/rb-shell-glue.sgml:
15449         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15450         * doc/reference/tmpl/rb-shell-player.sgml:
15451         * doc/reference/tmpl/rb-shell-preferences.sgml:
15452         * doc/reference/tmpl/rb-shell.sgml:
15453         * doc/reference/tmpl/rb-song-display-box.sgml:
15454         * doc/reference/tmpl/rb-song-info.sgml:
15455         * doc/reference/tmpl/rb-source-header.sgml:
15456         * doc/reference/tmpl/rb-source.sgml:
15457         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15458         * doc/reference/tmpl/rb-sourcelist.sgml:
15459         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15460         * doc/reference/tmpl/rb-statusbar.sgml:
15461         * doc/reference/tmpl/rb-stock-icons.sgml:
15462         * doc/reference/tmpl/rb-string-helpers.sgml:
15463         * doc/reference/tmpl/rb-thread.sgml:
15464         * doc/reference/tmpl/rb-tray-icon.sgml:
15465         * doc/reference/tmpl/rb-tree-dnd.sgml:
15466         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15467         * doc/reference/tmpl/rb-util.sgml:
15468         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15469         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15470         * doc/reference/tmpl/rhythmdb-tree.sgml:
15471         * doc/reference/tmpl/rhythmdb.sgml:
15472         * macros/.cvsignore:
15473         * shell/Makefile.am:
15474         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15475         (rb_source_finalize), (rb_source_set_property),
15476         (rb_source_get_property), (default_get_pixbuf),
15477         (_rb_source_show_popup):
15478         * sources/rb-source.h:
15479         Add support for gtk-doc in rhythmbox.
15480         Convert RBSource to use newer glib functions, such as add_private.
15481         Gives RBSource a default get_pixbuf implementation.
15483 2005-09-25  James Livingston  <jrl@ids.org.au>
15485         * NEWS: Update with about a months worth of changes
15487         * data/glade/song-info-multiple.glade:
15488         * data/glade/song-info.glade:
15489         * data/rhythmbox.schemas:
15490         * lib/rb-preferences.h:
15491         * rhythmdb/rhythmdb.h:
15492         * shell/rb-shell-player.c:
15493         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15494         few remaining parts of autorating.
15496 2005-09-24  James Livingston  <jrl@ids.org.au>
15498         * shell/rb-shell.c: (rb_shell_constructor),
15499         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15500         (rb_shell_window_configure_cb): store window state in the gconf keys,
15501         so that it gets used. Closes bugs 313893 and 137068.
15503 2005-09-20  James Livingston  <jrl@ids.org.au>
15505         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15506         crash if the entry has a NULL string in a property
15507         
15508         * shell/rb-removable-media-manager.c:
15509         (rb_removable_media_manager_load_media): fix some memory leaks
15510         
15511         (rb_removable_media_manager_mount_volume),
15512         (rb_removable_media_manager_eject_medium_cb),
15513         (rb_removable_media_manager_cmd_eject_medium): use
15514         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15515         
15516         * sources/rb-removable-media-source.c:
15517         (rb_removable_media_source_set_property),
15518         (rb_removable_media_source_get_property): use
15519         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15521 2005-09-18  James Livingston  <jrl@ids.org.au>
15523         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15524         column
15526         * data/glade/general-prefs.glade:
15527         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15528         (rb_shell_preferences_column_check_changed_cb),
15529         (rb_shell_preferences_sync): add checkbox to control visibility
15530         of the column
15531         
15532         
15533         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15534         (save_entry):
15535         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15536         (rhythmdb_prop_get_type):
15537         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15538         was as "last played" is handled
15539         
15540         * sources/rb-library-source.c: (rb_library_source_constructor):
15541         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15542         Make the column show in the library and playlists
15543         
15544         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15545         * widgets/rb-entry-view.h: add the column
15546         
15547         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15548         be sorted by the column
15550 2005-09-16  James Livingston  <jrl@ids.org.au>
15552         * shell/rb-shell-player.c: (rb_shell_player_init),
15553         (rb_shell_player_do_previous_or_seek),
15554         (rb_shell_player_previous_button_cb),
15555         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15556         (rb_shell_player_playpause_button_cb): Make the previous button act
15557         the same as the menu item. Fix an inversion of the "previous track or
15558         seek" logic.
15559         
15560         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15561         
15562         (rb_shell_player_playpause): make --play-pause stop source that can't
15563         be paused
15565 2005-09-15  James Livingston  <jrl@ids.org.au>
15567         * configure.ac: increase totem-plparser requirements to 1.1.5
15569         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15570         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15571         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15572         use the newer playlist APIs to save the name of the playlist, and use
15573         the name of a loaded playlist.
15575         Closes bug 309817.
15577 2005-09-15  James Livingston  <jrl@ids.org.au>
15579         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15581         * shell/Makefile.am: stop some linker warnings
15583         * shell/main.c: (main): make --no-registration work with dbus
15585 2005-09-15  James Livingston  <jrl@ids.org.au>
15587         * daapsharing/rb-daap-sharing.c: (create_share):
15588         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15589         reference sinking and counting issues that I caused.
15591 2005-09-15  James Livingston  <jrl@ids.org.au>
15593         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15594         playing" icon in the "now playing" column header.
15596 2005-09-14  James Livingston  <jrl@ids.org.au>
15598         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15599         daap shares, when sharing is turned off.
15601 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15603         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15604         the GConf value's default, especially for badly installed schema
15605         files
15607 2005-09-12  James Livingston  <jrl@ids.org.au>
15609         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15611         Patch from Paolo Borelli <pborelli@katamail.com>
15613         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15614         grip when maximised. Closes bug 316055.
15616 2005-09-11  James Livingston  <jrl@ids.org.au>
15618         Patch from William Jon McCann <mccann@jhu.edu>
15620         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15621         subclass of GtkStatusbar instead of GtkHBox.
15622         (rb_statusbar_construct): Don't set border width.
15623         (rb_statusbar_init): Use resize grip.  Don't use
15624         markup.
15625         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15626         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15627         Connect tooltips for actions.
15628         (rb_statusbar_sync_status): Push new message to statusbar.
15629         (rb_statusbar_set_progress): Don't use markup.
15630         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15631         flag here since it prevents actually showing or hiding.
15632         (rb_statusbar_sync_with_source): Push new message to statusbar.
15634 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15636         * daapsharing/rb-daap-structure.c:
15637         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15638         around debugging definition.
15640 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15641         
15642         * daapsharing/rb-daap-structure.c:
15643         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15644         type = version.
15646         * daapsharing/rb-daap-mdns.c/h:
15647         (resolve_cb): Updated mDNS resolve callback to send service-name &
15648         name (read from Machine Name in the TXT data or equal to service-name
15649         if not in TXT).
15651         * daapsharing/rb-daap-source.c:
15652         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15653         (rb_daap_source_get_property), (rb_daap_source_new),
15654         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15655         (stop_resolver), (start_browsing), (stop_browsing), 
15656         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15657         and added 'host' and 'port' gobject properties.  Updated to use new
15658         mDNS resolve callback sending service-name & name arguments.
15660 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15662         * daapsharing/rb-daap-mdns.c:
15663         (howl_strerror): New function to report errors from Howl
15664         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15665         (get_sw_discovery), (get_avahi_client): Better error reporting from
15666         Howl & Avahi.
15668         * sources/rb-daap-source.:
15669         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15670         not get started or stopped in some situations.
15671         
15672 2005-09-12  James Livingston  <jrl@ids.org.au>
15674         * shell/rb-removable-media-manager.c: add a missing include, that
15675         would stop compilation if ipod support wasn't turned on
15677 2005-09-11  James Livingston  <jrl@ids.org.au>
15679         * daapsharing/rb-daap-dialog.c: (encode_base64),
15680         (rb_daap_password_dialog_new_run),
15681         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15682         it is no broken in to two pieces, and remove a use of a goto
15683         
15684         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15685         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15686         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15687         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15688         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15689         memory leaks, and some code style things.
15690         
15691         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15692         (rb_daap_share_init), (rb_daap_share_set_property),
15693         (rb_daap_share_dispose), (rb_daap_share_new),
15694         (rb_daap_share_get_property): make the DB and the playlist manager
15695         gobject properties.
15696         
15697         (message_add_standard_headers),
15698         (message_set_from_rb_daap_structure), (server_info_cb),
15699         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15700         (server_cb), (add_db_entry), (db_entry_added_cb),
15701         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15702         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15703         style and use CONF_PREFIX in the gconf keys
15704         
15705         * daapsharing/rb-daap-sharing.c: (create_share),
15706         (enable_sharing_changed_cb), (share_name_changed_cb),
15707         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15708         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15709         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15710         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15711         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15712         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15713         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15714         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15715         hasn't actually changed, fix some memory leaks, code style and release
15716         gconf notifications when the object is destroyed.
15717         
15718         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15719         (rb_daap_source_class_init), (rb_daap_source_init),
15720         (rb_daap_source_dispose), (rb_daap_source_set_property),
15721         (rb_daap_source_get_property), (rb_daap_source_new),
15722         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15723         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15724         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15725         (rb_daap_source_activate), (rb_daap_source_disconnect),
15726         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15727         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15728         release gconf notifications, handle gconf callbacks where the key
15729         hasn't changed, make "real name" and "password protected" gobject
15730         properties, fix some code style and fix a memory leak.
15732 2005-09-11  James Livingston  <jrl@ids.org.au>
15734         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15736         * shell/rb-playlist-manager.c:
15737         (rb_playlist_manager_save_playlists),
15738         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15739         when we aren't supposed to. (Closes bug 315886)
15741 2005-09-11  James Livingston  <jrl@ids.org.au>
15743         * shell/rb-removable-media-manager.c:
15744         (rb_removable_media_manager_class_init),
15745         (rb_removable_media_manager_init),
15746         (rb_removable_media_manager_dispose),
15747         (rb_removable_media_manager_set_property),
15748         (rb_removable_media_manager_get_property),
15749         (rb_removable_media_manager_new),
15750         (rb_removable_media_manager_load_media),
15751         (rb_removable_media_manager_volume_mounted_cb),
15752         (rb_removable_media_manager_volume_unmounted_cb),
15753         (rb_removable_media_manager_mount_volume),
15754         (rb_removable_media_manager_unmount_volume),
15755         (rb_removable_media_manager_source_deleted_cb),
15756         (rb_removable_media_manager_append_media_source),
15757         (rb_removable_media_manager_set_uimanager),
15758         (rb_removable_media_manager_eject_medium_cb),
15759         (rb_removable_media_manager_cmd_eject_medium):
15760         * shell/rb-removable-media-manager.h:
15761         * sources/rb-removable-media-source.c:
15762         (rb_removable_media_source_class_init),
15763         (rb_removable_media_source_init),
15764         (rb_removable_media_source_dispose),
15765         (rb_removable_media_source_set_property),
15766         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15767         (impl_delete_thyself):
15768         * sources/rb-removable-media-source.h: Add the four files that I
15769         somehow managed not to add to cvs in the last commit. Oops.
15771 2005-09-11  James Livingston  <jrl@ids.org.au>
15773         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15774         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15775         
15776         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15777         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15778         removable-media-manager on startup, and handle creation of sources.
15779         
15780         * sources/rb-ipod-source.h:
15781         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15782         (rb_ipod_source_init), (rb_ipod_source_constructor),
15783         (rb_ipod_source_dispose), (rb_ipod_source_new),
15784         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15785         the iPod source over to the removable media framework.
15786         
15787         * sources/rb-library-source.c: (paned_size_allocate_cb),
15788         (rb_library_source_get_paned_key): fix a potential bug is a
15789         library-derived source doesn't have a paned-key
15791 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15793         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15794         mp3 when we can't get the suffix of a file (Closes: #315941)
15796 2005-09-10  James Livingston  <jrl@ids.org.au>
15798         * configure.ac: fix the mdns tests, so that it doesn't complain about
15799         not finding one, if daap support isn't being compiled in
15801 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15803         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15805         * daapsharing/rb-daap-dialog.c:
15806         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15807         HIG compliancy & images.
15809         * daapsharing/rb-daap-mdns.c:
15810         (browse_cb), (resolve_cb): Better detection of local services.  
15811         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15812         Howl's limitations.  Fix the way collision handling is done under
15813         Avahi.
15815         * daapsharing/rb-daap-share.c:
15816         (publish_cb): Better name collision handling (at least for Avahi).
15818 2005-09-10  James Livingston  <jrl@ids.org.au>
15820         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15821         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15822         preferences more HIG compliant (Closes #315889)
15823         
15824         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15825         list of files to be translated
15827 2005-09-10  James Livingston  <jrl@ids.org.au>
15829         * configure.ac: fix it so that --enable-daap=no works
15830         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15831         uninstalled
15833 2005-09-10  James Livingston  <jrl@ids.org.au>
15835         Patch from Christophe Fergeau <teuf@gnome.org>
15837         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15838         the ipod code.
15840 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15841         * README.daap: Updating documentation
15843 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15844         * AUTHORS: Added myself.
15846         * daapsharing/rb-daap-connection.c:
15847         (connection_login), (rb_connection_new): Reorganized password
15848         handling.
15850         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15852         * shell/rb-shell.c:
15853         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15855         * sources/rb-daap-source.c:
15856         (rb_daap_source_activate): Better error handling when we are unable to
15857         connect.
15858         
15859 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15860         * README.daap: Fixed some terminology.
15862         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15863         New --with-mdns=auto|howl|avahi flag to specify.
15865         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15866         name collision dialogs.
15868         * daapsharing/rb-daap-connection.c:
15869         (connection_get_password), (build_message), (http_get)
15870         (connection_login): Ask for & use a password if the share demands it.
15872         * daapsharing/rb-daap-connection.h: Changed prototype of
15873         rb_daap_connection_new.
15874         
15875         * daapsharing/rb-daap-mdns.c: 
15876         (resolve_cb): Better detection of your own music share so it doesn't 
15877         appear in the sourcelist.
15879         * daapsharing/rb-daap-share.c:
15880         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15881         that start on any available port.
15883         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15885         * sources/rb-daap-source.c:
15886         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15887         (browse_cb): Handle passworded shares. Resolve the host immediately
15888         instead of when activated.
15889         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15890         (rb_daap_source_new): New GConf keys for UI state.
15891         (rb_daap_source_activate): Use RBPlaylistSource instead of
15892         RBDAAPPlaylistSource
15893         
15894         * sources/rb-daap-playlist-source.c/h: Removed
15896         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15897         if the playlist is local (i.e. not DAAP or iPod).
15898         
15899         * shell/rb-playlist-manager.c:
15900         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15901         wouldn't get saved if the last playlist hadn't changed.  Only save
15902         local playlists.
15903         
15904 2005-09-09  James Livingston  <jrl@ids.org.au>
15906         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15907         iPod preferences pane, as it already uses the browser views as the
15908         library.
15910 2005-09-09  James Livingston  <jrl@ids.org.au>
15912         * sources/rb-library-source.c: (rb_library_source_finalize),
15913         (rb_library_source_constructor): fix gconf monitoring of library
15914         preference keys.
15915         * sources/rb-library-source.h: remove declaration of function that
15916         does not exist
15918 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15920         * player/rb-player-gst.c:
15921         (rb_player_set_time): Fix seeking in daap streams.
15923 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15925         * data/rhythmbox.schemas: Turn music share browsing on by default.
15927 2005-09-07  James Livingston  <jrl@ids.org.au>
15929         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15931 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15932         * player/rb-player-gst.c: 
15933         (rb_player_get_time): Fix for extra << & == that accidentally made
15934         it in.
15936         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15937         
15938 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15939         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15940         it in last time.  Sorry.
15942 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15943         
15944         * player/rb-player-gst.c:
15945         (rb_player_get_time): Fix a small crash appearing when
15946         the uri isn't set in the player, but rb_player_get_time() is
15947         still called.
15949         * configure.ac: Also check for libsoup 2.4, which is what ships with
15950         Gnome 2.12.
15952         * po/POTFILES.in: Added music sharing files that have translatable 
15953         strings.
15955         * README.daap: New file explaining "How Music Sharing Works"  
15957 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15959         * daapsharing/.cvsignore: added
15961 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15963         * daapsharing/*: Music sharing library.
15964         
15965         * sources/rb-daap-source.c/h: Music share RBSource.
15966         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15968         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15969         libsoup and a mutlicast DNS implementation (howl or avahi).
15971         * data/rhythmbox.schemas: New GConf keys for music sharing.
15973         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15974         source right click menu.
15976         * player/rb-player-gst.c: Changes to properly play & seek in remote
15977         music share files.
15979         * shell/rb-playlist-manager.c/h:
15980         (rb_playlist_manager_get_playlists): New function to get a GList * of
15981         the playlists.
15982         (rb_playlist_manager_save_playlists): Don't save music share playlists
15983         and fixed a GObject reference leak.
15985         * shell/rb-shell.c/h:
15986         (rb_shell_append_source): No longer a local function.  Now takes a
15987         parent RBSource * argument, NULL to append a toplevel source.
15988         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15989         source (useful for disconnecting from remote music share,
15990         specifically).
15991         (rb_shell_quit): Stop music sharing/browsing.
15992         (rb_shell_playlist_added_cb): Work with tree source structure.
15993         (rb_shell_get_property): "playlist-manager" property accessor.
15994         (rb_shell_class_init): New "playlist-manager" property.
15995         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15996         daap sharing/browsing.
15997         (rb_shell_select_source): Notify source of activation/deactivation.
15999         * shell/rb-shell-prefernces.c: Music sharing preferences.
16001         * sources/rb-source.c/h: New activate, deactivate and disconnect
16002         class functions.  Activate & deactivate are notification style 
16003         functions that will tell a source when it is selected/unselected.
16004         Disconnect can be hooked up to a UI object to disconnect the source.
16006         * sources/rb-sourcelist-model.c:
16007         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
16008         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
16009         append a toplevel source.
16011 2005-09-05  James Livingston  <jrl@ids.org.au>
16013         * rhythmdb/rhythmdb-query-model.c:
16014         (rhythmdb_query_model_entry_changed_cb),
16015         (rhythmdb_query_model_do_reorder): Update the query model's totals if
16016         the duration of filesize of an entry changes.  Emit the row-changed
16017         signals that I forgot to put back in, when I was doing query sorting.
16019         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
16020         out "0 minutes" or "0 bytes".
16022 2005-09-04  James Livingston  <jrl@ids.org.au>
16024         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
16025         remove a leftover bit of the "internal-name" property of sources.
16027 2005-09-03  James Livingston  <jrl@ids.org.au>
16029         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
16030         extraneous debug message
16031         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
16032         crasher would affect any library-derived sources (which was also a
16033         memory leak).
16035 2005-09-02  Colin Walters  <walters@verbum.org>
16037         * configure.ac: Fix sytnax error.
16039         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
16040         code to disable minimization icons - need to figure out
16041         why it doesn't work...
16043 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
16045         * data/glade/song-info-multiple.glade:
16046         * data/glade/song-info.glade:
16047         * widgets/rb-song-info.c: (rb_song_info_constructor):
16048         Add a mnemonic to the newly added "Automatically rate" label
16049         in the properties dialog and use a bold typeface like all the 
16050         other labels in the dialog. (Closes bug 315089)
16052 2005-09-03  James Livingston  <jrl@ids.org.au>
16054         * sources/rb-library-source.c: (rb_library_source_class_init),
16055         (rb_library_source_finalize), (rb_library_source_constructor),
16056         (rb_library_source_set_property), (rb_library_source_get_property),
16057         (impl_get_paned_key), (paned_size_allocate_cb),
16058         (rb_library_source_state_prefs_sync), (impl_show_popup),
16059         (rb_library_source_get_paned_key):
16060         * sources/rb-library-source.h: Allow sources derived from
16061         RBLibrarySource to use different gconf keys for sort order, browser
16062         visibility and browser pane position. Fix a crasher if a derived
16063         source overrides _get_pixbuf.
16065 2005-09-02  Colin Walters  <walters@verbum.org>
16067         * shell/rb-shell.c (rb_shell_set_visibility): Move
16068         hint setting which seems to avoid races more.
16069         
16070 2005-09-03  James Livingston  <jrl@ids.org.au>
16072         * shell/rb-shell.c: fix compilation with iPod support enabled
16073         
16074 2005-09-02  Colin Walters  <walters@verbum.org>
16076         * shell/rb-shell.c (struct RBShellPrivate): Add
16077         idle_hide_mainwindow_id.
16078         (rb_shell_constructor): Move taskbar skipping hint into
16079         rb_shell_set_visibility.
16080         (idle_hide_mainwindow): New function.
16081         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
16082         racy hack to avoid rb appearing in taskbar when minimized.
16084 2005-09-01  Colin Walters  <walters@verbum.org>
16086         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
16088         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
16089         from gtkstatusicion.c.
16091         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
16093         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
16094         TrayShowWindow entry.
16095         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
16096         (rb_tray_icon_constructor): Create action group here.
16097         (rb_tray_icon_finalize): Destroy action group.
16098         (rb_tray_icon_set_property): Don't take an action group.
16099         (rb_tray_icon_new): Ditto.
16100         (tray_popup_position_menu): Some mostly boilerplate code
16101         to position menu.
16102         (rb_tray_icon_button_press_event_cb): Position menu.
16103         (rb_tray_icon_get_geom): New function used for the shell
16104         to set minimization hints.
16106         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
16108         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
16109         (struct RBShellPrivate): Change visible to iconified.
16110         (set_icon_geometry): New function from Søren Sandmann to
16111         tell Metacity where to draw the minimization animiation.
16112         (rb_shell_window_state_cb): Update iconified.
16113         (rb_shell_get_visibility): New function to say whether
16114         or not we're currently visible.
16115         (rb_shell_set_visibility): Update to minimize to
16116         tray or present as appropriate.
16117         (rb_shell_window_delete_cb): On window close, just
16118         minimize to tray if we're deleted.
16119         (rb_shell_set_window_title): Kill old notification code.
16120         (rb_shell_toggle_visibility): Nwe function.
16121         (rb_shell_cmd_toggle_visibility): Call it.
16122         (rb_shell_constructor): Skip the taskbar.
16123         (tray_destroy_cb): Better debugging.
16124         
16125 2005-09-01  Colin Walters  <walters@verbum.org>
16127         * data/ui/rhythmbox-ui.xml: Add MusicClose.
16129         * configure.ac: Enable bonobo by default.
16130         
16131 2005-09-01  Colin Walters  <walters@verbum.org>
16133         * configure.ac: Default to old art.  Add macros subdir.
16135         * Makefile.am (SUBDIRS): Add macros.
16137         * macros/Makefile.am: New.
16138         
16139 2005-09-01  Colin Walters  <walters@verbum.org>
16141         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
16142         rb-shell-player.xml.
16144         * remote/dbus/rb-remote-dbus.h: Deleted.
16145         
16146         * remote/dbus/Makefile.am: Delete all the junk, just dist
16147         rb-print-playing.py and rb-set-rating.py.
16149         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
16151         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
16153 2005-09-02  James Livingston  <jrl@ids.org.au>
16155         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
16156         file from cvs
16158         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
16159         (rb_shell_constructor): Patches from Jonathan Matthew
16160         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
16161         a crash when using "browse this artist".
16163 2005-08-31  Colin Walters  <walters@verbum.org>
16165         * configure.ac: Add --with-old-art configure switch.  Also
16166         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
16167         but it doesn't work.
16169         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
16170         Don't use eel_create_colorized_pixbuf for new art.
16171         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
16173         * data/art-clearlooks: New artwork.
16174         
16175 2005-08-31  Colin Walters  <walters@verbum.org>
16177         * shell/main.c (main): Fix Bastien's commit to continue to focus
16178         the window with GTK+ 2.8 at least.
16179         
16180 2005-08-31  Colin Walters  <walters@verbum.org>
16182         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
16183         is already loaded.
16185         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
16187 2005-08-31  Bastien Nocera  <hadess@hadess.net>
16189         * README: remove mentions of the xine-lib backend
16190         * shell/main.c: (main): make it compilable with gtk+ < 2.8
16192 2005-08-30  Colin Walters  <walters@verbum.org>
16194         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
16195         Make non-visible sources insensitive.
16196         
16197 2005-08-30  Colin Walters  <walters@verbum.org>
16199         * shell/rb-shell.c: Don't use GConf for selected source; it's
16200         confusing to have the selected source change after startup,
16201         and since we don't save other things it's not worth saving this.
16203         * sources/rb-playlist-source.c:
16204         * sources/rb-library-source.c:
16205         * sources/rb-iradio-source.c:
16206         * sources/rb-ipod-source.c: Delete internal-name property usage.
16207         * sources/rb-source.c: Delete internal-name property.
16209         * data/rhythmbox.schemas: Delete selected_source.
16210         
16211 2005-08-30  Colin Walters  <walters@verbum.org>
16213         * sources/rb-sourcelist.c: Make playing source bold instead of
16214         displaying a pixbuf; it's much less ugly.
16215         
16216 2005-08-30  Colin Walters  <walters@verbum.org>
16218         * sources/rb-source.c:
16219         * sources/rb-source.h: New virtual method try_playlist.
16221         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
16222         impl_try_playlist.
16223         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
16224         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
16225         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
16226         need to.
16227         (stations_view_drag_data_received_cb): Don't check for iradio uris;
16228         in theory we should though...
16230         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
16231         list in rb_shell_construct now.
16232         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
16233         RBiPodSource.
16234         (rb_shell_constructor): Create library, iradio, ipod here.
16235         (rb_shell_source_deleted_cb): Use source directly instead of
16236         indirecting through type.
16237         (rb_shell_sync_selected_source): Ditto.
16238         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
16239         from the type instead of special-casing.
16240         (rb_shell_guess_type_for_uri) 
16241         (rb_shell_add_uri)
16242         (handle_one_uri_with_possible_metadata): New functions.
16243         (rb_shell_load_uri): Refactor to allow loading playlists again,
16244         also use other URI infrastructure.
16246         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
16247         (rb_shell_player_error): Always set entry error on error, instead
16248         of depending on EOF behavior.
16250         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
16251         to just invoke rb_shell_add_uri.
16252         (rb_playlist_manager_parse_file): Return error instead of tossing
16253         up dialog box directly.
16254         (load_playlist_response_cb): Display error here.
16255         (add_uri_to_playlist): Delete.
16256         (handle_playlist_entry_into_playlist_cb): Renamed to
16257         handle_playlist_entry_cb.
16259         * shell/rb-playlist-manager.h: Add error, update prototype.
16261         * lib/rb-file-helpers.c:
16262         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16264 2005-08-29  Colin Walters  <walters@verbum.org>
16266         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16267         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16269         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16270         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16271         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16273         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16274         Prototype rb_shell_set_song_property.
16276         * shell/rb-shell.xml: Export setSongProperty.
16278         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16279         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16280         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16282         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16283         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16284         want to notify of the change.
16285         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16287         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16288         logic error; idle functions would be enqueued for each set.
16289         (rhythmdb_entry_set): Fix assertion logic error.
16291         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16292         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16293         Return if the entry already exists.
16294         
16295 2005-08-29  Colin Walters  <walters@verbum.org>
16297         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16298         "inserted" member which we use to keep track of
16299         whether or not an entry is in the DB.  Prototype
16300         rhythmdb_entry_set_uninserted.
16302         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16303         flag.
16304         (rhythmdb_entry_insert): Assert entry is not already inserted.
16305         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16306         just after creating entry.
16307         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16308         (rhythmdb_entry_set_nonotify): Ditto.
16309         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16310         entries.
16311         (rhythmdb_entry_set_internal): Change notify flag to
16312         notify_if_inserted.  Also move notification after assertions.
16314         Update all existing callers of rhythmdb_entry_set_internal
16315         to give TRUE for notify_if_inserted; this should be what
16316         we want but may be an efficiency hit.
16317         
16318 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16320         * shell/rb-shell-player.c: (rb_shell_player_init),
16321         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16322         (rb_shell_player_set_playing_source_internal),
16323         (rb_shell_player_sync_with_selected_source): Notify the player when an
16324         entry has updated the title, album or artist field, and resync the big
16325         display.
16326         
16327         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16328         * sources/rb-library-source.c: (rb_library_source_class_init),
16329         (impl_get_config_widget):
16330         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16331         * sources/rb-source.c:
16332         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16333         get_album functions in rb-source and adapted other sources accordingly.
16334         
16335 2005-08-29  Colin Walters  <walters@verbum.org>
16337         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16338         signal_change member.
16339         (threadsafe_entry_set): New function.
16340         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16341         (rhythmdb_entry_set_nonotify): New function; just call
16342         threadsafe_entry_set with FALSE.
16343         (rhythmdb_entry_set_internal): Take a notify flag; if true
16344         add the change to our pending set.
16346         Also update all internal callers of rhythmdb_entry_set_internal
16347         to pass FALSE.  Some of these may be bugs however and need to
16348         pass TRUE...
16350         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16351         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16352         rhythmdb_entry_set_nonotify.
16354         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16355         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16357         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16359         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16360         * sources/rb-source.c (rb_source_update_play_statistics): 
16361         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16362         * sources/rb-ipod-source.c (entry_set_string_prop) 
16363         (load_ipod_db_idle_cb): 
16364         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16365         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16366         (info_available_cb): 
16367         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16368         (rb_station_properties_dialog_sync_entries): 
16369         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16371         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16372         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16373         
16374 2005-08-29  Colin Walters  <walters@verbum.org>
16376         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16378         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16379         linking insanity.
16381         * widgets/rb-header.c (sanitize_string): New function, extracted
16382         from old info_url.  Be sure to always strip the string.
16383         (info_url): Rewrite to take artist/album, and generate a sane
16384         URL for them from last.fm, which is better than allmusic.com in
16385         that they support Rhythmbox, and have a *SANE* URL scheme.
16386         (artist_info_url, album_info_url): Delete.
16387         (rb_header_sync): Use info_url.
16389 2005-08-29  James Livingston  <jrl@ids.org.au>
16391         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16392         is implemented before calling it. Many sources don't implement the
16393         method.
16395 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16397         * data/glade/create-playlist.glade:  Cleanup the layout,
16398         and add a few more mnemonics.
16399         * shell/rb-playlist-manager.c:
16400         (rb_playlist_manager_cmd_load_playlist),
16401         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16402         capitalization for window titles.
16403         * widgets/rb-query-creator-properties.c: Add mnemonics
16404         to checkbutton labels.
16405         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16406         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16408 2005-08-28  Colin Walters  <walters@verbum.org>
16410         * data/rhythmbox.schemas: Delete search_text for library
16411         and iradio; this isn't a persistent value anymore.
16412         Closes #313757.
16413         
16414         * sources/rb-source.h:
16415         * sources/rb-source.c: Delete impl_can_search.
16417         * sources/rb-iradio-source.c: Delete search_text usage.
16418         * sources/rb-library-source.c: Ditto.
16420         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16421         search when source is set, and just do rb_source_search in
16422         rb_source_header_search_cb.
16424         * shell/rb-shell.c (rb_shell_append_source): Don't
16425         initiate search.
16427         * shell/Makefile.am: Don't dist dashboard.c.
16429 2005-08-28  Colin Walters  <walters@verbum.org>
16431         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16432         
16433 2005-08-28  Colin Walters  <walters@verbum.org>
16435         * data/org.gnome.Rhythmbox.service.in: New.
16437         * data/Makefile.am: Install service file.
16439         * configure.ac: Define DBUS_SERVICES_DIR.
16441         * autogen.sh: Set ACLOCAL_FLAGS.
16443         * macros/acinclude.m4: New.
16444         
16445 2005-08-28  Colin Walters  <walters@verbum.org>
16447         Initial patch from Jonathan Matthew; closes 313684.
16449         * rhythmdb/rhythmdb-tree.c:
16450         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16451         (save_entry): Return on error.
16452         (rhythmdb_tree_save): Handle error when saving the
16453         db; additionally, handle errors from fclose and unlink,
16454         and print error too.
16456 2005-08-28  Colin Walters  <walters@verbum.org>
16458         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16459         extra _.
16460         
16461 2005-08-28  Colin Walters  <walters@verbum.org>
16463         * configure.ac: Change iPod support to --with-ipod;
16464           automatically enable it if we have HAL.  Try to
16465           support both HAL 0.5 and HAL 0.2.  Break out
16466           totem-plparser into its own check so later we
16467           can do version tests there too.
16468           Kill dashboard support.
16469         
16470         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16471         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16472         Closes #310017.
16473         
16474         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16475         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16477         * sources/Makefile.am: Also handle
16478         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16480         * shell/dashboard.c: Delete; someone should just write a little
16481         python shim which lists on the D-BUS interface and writes the
16482         stuff to Dashboard.  Even better Dashboard should be ported
16483         to D-BUS and do the listening itself, perhaps on an abstract
16484         "org.gnome.MusicPlayer" interface or something.
16486         * shell/rb-shell.c: Kill dashboard support.
16488 2005-08-28  Colin Walters  <walters@verbum.org>
16490         * remote/dbus/rb-print-playing.py: New file.
16492 2005-08-28  Colin Walters  <walters@verbum.org>
16494         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16495         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16497         * shell/rb-shell-player.h:
16498         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16499         * shell/rb-shell-player.xml: Export it.
16501         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16502         (rb_shell_error_quark): New.
16504         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16505         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16506         
16507 2005-08-28  Colin Walters  <walters@verbum.org>
16509         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16510         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16511         bonobo_unlock.
16512         (rb_remote_bonobo_preinit): Lock setting moved here.
16513         (rb_remote_bonobo_init): From here.
16515         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16516         Also invoke handle_cmdline in the right place.
16517         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16518         GFunc.
16520 2005-08-28  James Livingston  <jrl@ids.org.au>
16522         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16523         when 0.9.1 comes around.
16525 2005-08-28  James Livingston  <jrl@ids.org.au>
16527         * iradio/rb-new-station-dialog.c:
16528         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16529         bug 314477.
16531 2005-08-28  James Livingston  <jrl@ids.org.au>
16533         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16535         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16536         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16537         is a song is longer than 60 minutes. Closes bug 313311.
16539 2005-08-27  James Livingston  <jrl@ids.org.au>
16541         * data/glade/create-playlist.glade:
16542         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16543         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16544         "minutes" as an option in the playlist limit menu.
16546         * rhythmdb/rhythmdb-query-model.c:
16547         (rhythmdb_query_model_class_init),
16548         (rhythmdb_query_model_set_property),
16549         (rhythmdb_query_model_get_property),
16550         (rhythmdb_query_model_update_limited_entries): Allow query models to
16551         have a time limit
16552         
16553         * shell/rb-playlist-manager.c:
16554         (rb_playlist_manager_set_automatic_playlist),
16555         (rb_playlist_manager_cmd_edit_automatic_playlist):
16556         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16557         (rb_playlist_source_get_query), (impl_receive_drag),
16558         (rb_playlist_source_new_from_xml),
16559         (rb_playlist_source_save_to_xml),
16560         (rb_playlist_source_songs_sort_order_changed_cb),
16561         (rb_playlist_source_do_query):
16562         * sources/rb-playlist-source.h:
16563         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16565 2005-08-27  James Livingston  <jrl@ids.org.au>
16567         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16569         * configure.ac:
16570         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16571         non-standard location. Closes bug 314640.
16573 2005-08-26  Colin Walters  <walters@verbum.org>
16574         
16575         Patch from Olivier Blin <oblin@mandriva.com>
16577         * widgets/eggnotificationbubble.c (draw_bubble): 
16578         Handle extreme-left case as well.
16579         
16580 2005-08-26  Colin Walters  <walters@verbum.org>
16582         * shell/rb-shell.c (idle_save_state): Don't do this.
16583         (rb_shell_construct): Remove idle calls to idle_save_state.
16584         We should save the playlists automatically when they're
16585         modified.
16586         (rb_shell_load_uri): Don't try to re-stat entry if it already
16587         exists.
16589         * shell/rb-shell-player.c: Keep track of entry we are attempting
16590         to play.
16591         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16592         Don't double-free error.
16593         (rb_shell_player_play_entry): Signal errors.
16594         (rb_shell_player_entry_activated_cb): Ditto.
16595         (rb_shell_player_property_row_activated_cb): Ditto.
16596         (rb_shell_player_set_playing_source_internal): Unset attempted
16597         playing entry.
16598         (rb_shell_player_error): Refactor to be usable both sync and
16599         async.  Handle case where displayed entry differs from entry.
16600         (error_cb): Move GDK locking here.
16602         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16603         people can just use dbus-send or python.  We only support focusing
16604         and loading files.
16605         (load_uri_args): New function, extracted from handle_cmdline.
16606         (dbus_load_uri, bonobo_load_uri): New functions.
16608         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16609         appropriate.
16611         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16612         * remote/dbus/rb-remote-dbus.c: Deleted.
16614         * player/rb-player-gst.c: Clear any pending idle handlers when we
16615         close the player.  Signal errors generated during open/play etc
16616         as synchronous errors.
16618         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16619         
16620 2005-08-26  Colin Walters  <walters@verbum.org>
16622         * shell/rb-shell.c (rb_shell_present): Try harder.
16624 2005-08-26  Colin Walters  <walters@verbum.org>
16626         * shell/rb-shell.c (rb_shell_present): Try to handle
16627         GTK_MINOR_VERSION < 8.
16629 2005-08-26  James Livingston  <jrl@ids.org.au>
16631         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16632         <pbrobinson@gmail.com>
16634 2005-08-26  Colin Walters  <walters@verbum.org>
16636         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16638 2005-08-25  Colin Walters  <walters@verbum.org>
16640         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16641         Delete.
16642         (rb_shell_player_do_next_with_rating): Move back into
16643         rb_shell_player_do_next.
16644         (rb_shell_player_entry_activated_cb): Remove call to
16645         rb_shell_player_auto_adjust_rating.
16646         (do_next_idle): Just call rb_shell_player_do_next.
16648         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16650 2005-08-25  Colin Walters  <walters@verbum.org>
16652         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16653         before gtk_window_present_with_time.
16654         
16655 2005-08-25  Colin Walters  <walters@verbum.org>
16657         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16658         default.
16660         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16661         rb_shell_construct.  This is so we only have to do g_object_new.
16662         (rb_shell_get_player): New function.
16663         (rb_shell_get_player_path): Ditto.
16664         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16665         
16666         * shell/rb-shell.h: Prototype them.
16668         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16669         export over D-BUS.
16670         (reemit_playing_signal): New function.
16671         (rb_shell_player_open_playlist_location): Use return values from
16672         rb_player_open, rb_player_close, etc. instead of checking "error".
16673         Return a gboolean on failure.
16674         (rb_shell_player_open_entry): Just open entry location, don't
16675         print to stderr.
16676         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16677         a gboolean.
16678         (do_next_idle): Move logic for handling of end of playlist here.
16679         (rb_shell_player_set_playing_entry): Take a GError, return a
16680         gboolean.  Update to use gboolean return values.
16681         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16682         logic.  Signal an error on end of playlist.  Also signal error if
16683         we're not playing.  Move heuristic for replaying the song into
16684         rb_shell_player_cmd_previous.
16685         (rb_shell_player_do_next_with_rating): Signal error on end of
16686         playlist.
16687         (rb_shell_player_do_next): Return errors.
16688         (rb_shell_player_cmd_previous): Heuristic for restarting song
16689         moved here; the idea is you generally only want that from the GUI.
16690         (rb_shell_player_cmd_play): Handle error.
16691         (rb_shell_player_playpause): Signal errors.
16692         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16693         rb_shell_player_cmd_next in favor of the internal _do functions.
16694         
16695         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16696         errors.  Update prototypes for above changes.
16698         * shell/main.c: More tightly integrate D-BUS; register various
16699         major singleton objects here.  Fix handle_cmdline so we only
16700         process extra arguments, not every argument.
16702         * shell/Makefile.am: Generate D-BUS glue headers.
16704         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16705         into shell/main.c.  Now this file just acts as a client library.
16706         Not heavily tested.
16708         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16709         Moved here.
16710         (rb_remote_bonobo_init): Move long CORBA rant here along with
16711         setting of lock functions.
16713         * player/rb-player-gst.c (rb_player_construct)
16714         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16715         on error.
16717         * player/rb-player.h: Update prototypes.
16719         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16720         rb-remote-bonobo.c.
16721         (rb_threads_init): Don't set gdk lock functions here.
16723 2005-08-25  James Livingston  <jrl@ids.org.au>
16725         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16727         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16728         * lib/rb-tree-dnd.h:
16729         * rhythmdb/rhythmdb-property-model.c:
16730         (rhythmdb_property_model_class_init),
16731         (rhythmdb_property_model_drag_source_init),
16732         (rhythmdb_property_model_iter_parent),
16733         (rhythmdb_property_model_row_draggable),
16734         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16735         (rhythmdb_property_model_drag_data_get),
16736         (rhythmdb_property_model_enable_drag):
16737         * rhythmdb/rhythmdb-property-model.h:
16738         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16739         (rb_playlist_manager_set_property), (append_new_playlist_source),
16740         (rb_playlist_manager_save_playlists):
16741         * shell/rb-shell.c: (rb_shell_construct),
16742         (sourcelist_drag_received_cb):
16743         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16744         * sources/rb-playlist-source.c: (impl_receive_drag):
16745         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16746         (rb_sourcelist_model_drag_dest_init),
16747         (rb_sourcelist_model_set_dnd_targets),
16748         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16749         (rb_sourcelist_model_row_drop_position),
16750         (rb_sourcelist_model_get_drag_target),
16751         (rb_sourcelist_model_drag_data_get):
16752         * sources/rb-sourcelist-model.h:
16753         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16754         (rb_sourcelist_init), (rb_sourcelist_get_property),
16755         (rb_sourcelist_selection_changed_cb):
16756         * sources/rb-sourcelist.h:
16757         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16758         improve drag-n-drop support. Allow dragging of item from property
16759         views to the source list, to create new automatic playlists. Allow
16760         playlist re-ordering. Fix dragging from Rhythmbox to other
16761         applications. (Closes bug 147337)
16763 2005-08-24  Colin Walters  <walters@verbum.org>
16765         Patch from Olivier Blin <oblin@mandriva.com>
16767         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16768         correctly in the case where the window is next to monitor edge.
16770 2005-08-24  James Livingston  <jrl@ids.org.au>
16772         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16773         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16774         a gobject property to get the query model that backs the playlist.
16776 2005-08-24  James Livingston  <jrl@ids.org.au>
16778         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16779         (handle_playlist_entry_into_playlist_cb),
16780         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16781         audio cd" menu item when a non-playlist source is selected, or the
16782         playlist is empty. (Closes Bug 313253)
16784 2005-08-24  James Livingston  <jrl@ids.org.au>
16786         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16787         Fix the playlist length checkso it doesn't report 0 for automatic
16788         playlists. This was stopping automati playlists being burnt to cd.
16790 2005-08-24  James Livingston  <jrl@ids.org.au>
16792         * configure.ac:
16793         * sources/rb-playlist-source-recorder.c: (burn_cd):
16794         * sources/rb-playlist-source.c:
16795         (rb_playlist_source_songs_sort_order_changed_cb):
16796         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16797         more warnings that occur when compiling RPMs on Fedora.
16799 2005-08-24  James Livingston  <jrl@ids.org.au>
16801         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16802         was stopping some distros gcc version compiling.
16804 2005-08-24  James Livingston  <jrl@ids.org.au>
16806         * NEWS:
16807         * data/glade/create-playlist.glade:
16808         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16809         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16810         (rhythmdb_query_free), (rhythmdb_query_serialize),
16811         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16812         * rhythmdb/rhythmdb.h:
16813         * shell/rb-playlist-manager.c:
16814         (rb_playlist_manager_set_automatic_playlist),
16815         (rb_playlist_manager_cmd_edit_automatic_playlist):
16816         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16817         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16818         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16819         (rb_playlist_source_save_to_xml),
16820         (rb_playlist_source_songs_sort_order_changed_cb),
16821         (rb_playlist_source_do_query):
16822         * sources/rb-playlist-source.h:
16823         * widgets/Makefile.am:
16824         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16825         (rb_entry_view_set_sorting_order):
16826         * widgets/rb-query-creator-private.h:
16827         * widgets/rb-query-creator-properties.c:
16828         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16829         (stringCriteriaGetWidgetData),
16830         (escapedStringCriteriaSetWidgetData),
16831         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16832         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16833         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16834         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16835         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16836         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16837         (relativeTimeCriteriaCreateWidget),
16838         (relativeTimeCriteriaSetWidgetData),
16839         (relativeTimeCriteriaGetWidgetData):
16840         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16841         (rb_query_creator_class_init), (rb_query_creator_constructor),
16842         (rb_query_creator_dispose), (rb_query_creator_set_property),
16843         (rb_query_creator_get_property), (rb_query_creator_load_query),
16844         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16845         (get_entry_for_property), (rb_query_creator_get_query),
16846         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16847         (limit_toggled_cb), (lookup_row_by_widget),
16848         (remove_button_click_cb), (append_row),
16849         (get_property_index_from_proptype), (select_criteria_from_value),
16850         (property_option_menu_changed), (create_property_option_menu),
16851         (create_criteria_option_menu), (sort_option_menu_changed),
16852         (setup_sort_option_menu):
16853         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16854         playlists. The two most notable improvements are 1) adding more
16855         properties to the query creator, making it much easier to add more in
16856         the future, and 2) allow playlists to be sorted, from the query editor
16857         if they gave limits, and by clicking on column headers if they don't.
16859         Files added: widgets/rb-query-creator-private.h,
16860         sources/rb-query-creator-properties.c
16862 2005-08-21  James Livingston  <jrl@ids.org.au>
16864         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16865         error=NULL. This stops some crashes.
16867 2005-08-19  Colin Walters  <walters@verbum.org>
16869         Patch from Olivier Blin <oblin@mandriva.com>
16871         * widgets/eggnotificationbubble.c (force_window): Support top
16872         orientation.
16873         * widgets/eggnotificationbubble.h: Remove
16874         egg_notification_bubble_force_window from header.
16875         
16876 2005-08-18  James Livingston  <jrl@ids.org.au>
16878         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16879         with the changes since then.
16881 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16883         * shell/rb-shell-player.c: (rb_shell_player_init),
16884         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16885         (rb_shell_player_volume_widget_changed_cb):
16886         * sources/rb-iradio-source.c:
16887         * sources/rb-library-source.c:
16888         * sources/rb-playlist-source.c:
16889         * widgets/Makefile.am:
16890         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16891         (bacon_volume_button_class_init), (bacon_volume_button_init),
16892         (bacon_volume_button_dispose), (bacon_volume_button_new),
16893         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16894         (bacon_volume_button_scroll), (bacon_volume_button_press),
16895         (cb_button_timeout), (cb_button_press), (cb_button_release),
16896         (bacon_volume_release_grab), (cb_dock_press),
16897         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16898         (bacon_volume_scale_new), (bacon_volume_scale_press),
16899         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16900         * widgets/bacon-volume.h:
16901         * widgets/rb-volume.c:
16902         * widgets/rb-volume.h:
16903           Use BaconVolumeButton (#300867).
16905 2005-08-17  James Livingston  <jrl@ids.org.au>
16907         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16908         (rhythmdb_process_metadata_load): don't reset the First Seen time
16909         whenever we recheck the metadata.
16911 2005-08-17  James Livingston  <jrl@ids.org.au>
16913         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16914         temporary workaround to stop crashes when trying to burn an empty
16915         playlist. Doesn't disable the menu item which is the better solution
16916         (Bug 313253).
16918 2005-08-15  James Livingston  <jrl@ids.org.au>
16920         * shell/rb-source-header.c: (rb_source_header_init),
16921         (rb_source_header_sync_control_state),
16922         (rb_source_header_search_activate_cb):
16923         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16924         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16925         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16926         (rb_search_entry_init), (rb_search_entry_searching),
16927         (rb_search_entry_activate_cb):
16928         * widgets/rb-search-entry.h: Move focus to the entry view when user
16929         presses enter in the search box. Patch from Paolo Borelli
16930         <pborelli@katamail.com> (Closes bug 128110)
16932 2005-08-15  James Livingston  <jrl@ids.org.au>
16934         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16935         (rb_playlist_manager_new_playlist):
16936         * shell/rb-playlist-manager.h:
16937         * shell/rb-shell.c: (rb_shell_construct),
16938         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16939         the source list to be shown when a new playlist is created. (Closes
16940         bug 161935)
16942 2005-08-15  James Livingston  <jrl@ids.org.au>
16944         * widgets/rb-header.c: (rb_header_init),
16945         (rb_header_set_show_timeline): disable the seek slider, rather than
16946         hiding it, which more closely follows the HIG. (Closes bug 139102)
16948 2005-08-13  Colin Walters  <walters@verbum.org>
16950         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16951         rb_shell_hidden_notify.
16952         (rb_shell_hidden_notify): Notify if the shell is hidden.
16953         (rb_shell_set_visibility_impl): Debug goo.
16955         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16957         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16958         when the user clicks on notification.
16960         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16961         CD burn is complete.
16962         (rb_playlist_source_recorder_finalize): Unref shell.
16963         (rb_playlist_source_recorder_new): Take shell.
16965         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16966         Pass shell to RBPlaylistSourceRecorder.
16967         
16968 2005-08-13  Colin Walters  <walters@verbum.org>
16970         * lib/rb-thread.c:
16971         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16972           time to convert.
16974 2005-08-13  Colin Walters  <walters@verbum.org>
16976         * widgets/eggnotificationbubble.h:
16977         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16978         * widgets/eggtrayicon.c:
16979         * widgets/eggtrayicon.h: Add notification API.
16980         * shell/rb-tray-icon.c:
16981         * shell/rb-tray-icon.h: Add notification API.
16982         * shell/rb-shell.c: Notify on song change.
16984 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16986         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16987         Correct an inversion of two lines causing NULL to be unreffed
16989 ============ Version 0.9.0
16991 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16993         * configure.ac: 0.9.0, whee!
16994         * NEWS: badly updated
16995         * remote/bonobo/Makefile.am:
16996         * remote/bonobo/rb-remote-bonobo.h:
16997         * shell/Makefile.am:
16998         * shell/main.c: make distcheck fixes