2006-12-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
[rhythmbox.git] / ChangeLog
blob0c6ffcb7d46e0e6ff1d84b47e0766996f781a929
1 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3         * daapsharing/rb-daap-connection.c:
4         (rb_daap_connection_do_something):
5         Request daap.songdiscnumber from the DAAP server.
7 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9         * sources/rb-static-playlist-source.c:
10         (rb_static_playlist_source_add_uri_list):
11         Don't free the URI list twice.  Fixes #380947.
13 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
15         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
16         (rb_uri_get_dir_name):
17         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
18         * rhythmdb/rhythmdb.c:
19         * sources/rb-library-source.c: (build_filename),
20         (rb_library_source_add_child_source):
21         * sources/rb-playlist-source-recorder.c: (check_dir_has_space):
22         Handle cases where gnome_vfs_uri_new returns NULL.  From #380947.
24 2006-12-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
26         * metadata/sj-metadata-musicbrainz.c: (get_drive_media_type),
27         (lookup_cd):
28         Add support for older versions of libnautilus-burn.
30 2006-12-13  James Livingston  <doclivingston@gmail.com>
32         Patch from Tim Retout  <tim@retout.co.uk>
34         * shell/rb-history.c: (rb_history_append):
35         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix a
36         problem where appending a song could get the history wrong. Fixes #346287
38 2006-12-12  James Livingston  <doclivingston@gmail.com>
40         * plugins/audioscrobbler/Makefile.am:
41         * metadata/sj-error.c: (sj_error_quark):
42         * metadata/sj-error.h:
43         * metadata/sj-metadata-musicbrainz.c:
44         (sj_metadata_musicbrainz_instance_init),
45         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
46         (get_rdf), (lookup_cd):
47         * metadata/sj-metadata-musicbrainz.h:
48         * metadata/sj-metadata.c: (sj_metadata_get_type):
49         * metadata/sj-metadata.h:
50         * metadata/sj-structures.c:
51         * metadata/sj-structures.h: get bug fixes from S-J and hopefully fix
52         #382954.
54 2006-12-12  James Livingston  <doclivingston@gmail.com>
56         * sources/rb-ipod-source.c: (rb_ipod_load_songs): hopefully fix
57         some corrupt-ipod-db issues. from #358855
59 2006-12-12  James Livingston  <doclivingston@gmail.com>
61         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal): don't
62         try to re-sort the model if it's NULL. Fixes #367646
64 2006-12-12  James Livingston  <doclivingston@gmail.com>
66         * data/rhythmbox.schemas:
67         * lib/rb-util.c: (_threads_enter), (_threads_leave),
68         (rb_threads_init):
69         * plugins/magnatune/magnatune-prefs.glade:
70         * plugins/magnatune/magnatune-purchase.glade:
71         * plugins/magnatune/magnatune/MagnatuneSource.py:
72         * plugins/magnatune/magnatune/__init__.py: add code to use
73         Gnome-Keyring to store the user's credit card details, but force it to
74         be disabled (due to bugs). From #377354
76 2006-12-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
78         * rhythmdb/rhythmdb-query-model.c:
79         (rhythmdb_query_model_remove_from_main_list):
80         Re-find the sequence node pointer after emitting the row-deleted
81         signal, as signal handlers may cause it to change.  Fixes #370443.
83 2006-12-11  James Livingston  <doclivingston@gmail.com>
85         * sources/rb-daap-source.c: (connection_auth_cb): fix a code path
86         trying to free an unset pointer. Fixes #384208
88 2006-12-11  James Livingston  <doclivingston@gmail.com>
90         * sources/rb-library-source.c: (build_filename): deal with URIs that
91         don't have a period in them. Fixes #384016
93 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
95         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
96         Use G_GINT64_FORMAT instead of %lld.
98 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
100         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
101         (rb_encoder_gst_encode):
102         When copying rather than transcoding, do position queries in byte
103         format rather than time.
105         * sources/rb-ipod-source.c: (impl_receive_drag):
106         * sources/rb-library-source.c: (impl_receive_drag):
107         Handle application/x-rhythmbox-entry drops.  Fixes drag and drop from
108         daap shares to library.
110 2006-12-10  James Livingston  <doclivingston@gmail.com>
112         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post): add
113         posts that are missing their date tag.
115 2006-12-09  James Livingston  <doclivingston@gmail.com>
117         * shell/rb-statusbar.c: (rb_statusbar_init): revert the patch from bug
118         #368757
120 2006-12-09  James Livingston  <doclivingston@gmail.com>
122         * configure.ac:
123         * data/rhythmbox.schemas:
124         * plugins/Makefile.am:
125         * plugins/magnatune/magnatune-prefs.glade:
126         * plugins/magnatune/magnatune-purchase.glade:
127         * plugins/magnatune/magnatune/MagnatuneSource.py:
128         * plugins/magnatune/magnatune/__init__.py: revert some stuff I
129         accidently comitted.
131 2006-12-09  James Livingston  <doclivingston@gmail.com>
133         * rhythmdb/rhythmdb-property-model.c:
134         (rhythmdb_property_model_finalize): fix a memory leak.
136 2006-12-09  James Livingston  <doclivingston@gmail.com>
138         * sources/rb-ipod-source.c: (rb_ipod_source_set_ipod_name): don't
139         crash if the iPod's name set to is NULL #358855
141 2006-12-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
143         * widgets/rb-property-view.c: (rb_property_view_class_init),
144         (rb_property_view_dispose), (rb_property_view_finalize):
145         Disconnect signal handlers in dispose, not finalize.  Fixes #374892.
147 2006-12-04  James Livingston  <doclivingston@gmail.com>
149         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
151         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_preprocess):
152         * widgets/rb-query-creator-properties.c:
153         (yearCriteriaSetWidgetData), (yearCriteriaGetWidgetData): stop some
154         critical warnings emitted if a YEAR=0 query was done. Fixes #381839
156 2006-12-03  James Livingston  <doclivingston@gmail.com>
158         * lib/rb-file-helpers.c: (_rb_uri_recurse_data_free),
159         (rb_uri_handle_recursively_cb), (rb_uri_handle_recursively),
160         (_recurse_async_idle_cb), (_recurse_async_data_free),
161         (_recurse_async_cb), (_recurse_async_func),
162         (rb_uri_handle_recursively_async):
163         * lib/rb-file-helpers.h:
164         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
165         (rb_plugins_engine_load_dir):
166         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
167         (rhythmdb_stop_monitoring), (monitor_entry_file),
168         (monitor_subdirectory), (monitor_library_directory),
169         (_monitor_entry_thread), (rhythmdb_start_monitoring),
170         (rhythmdb_monitor_uri_path):
171         * rhythmdb/rhythmdb.c:
172         * sources/rb-static-playlist-source.c:
173         (rb_static_playlist_source_add_location_cb),
174         (rb_static_playlist_source_add_location): add a utility function for
175         doing directory recusion asynchronously, and use it everywhere instead
176         of the old one. Removes one of our biggest do-IO-synchronously issues.
177         From #325215
179 2006-12-03  James Livingston  <doclivingston@gmail.com>
181         * plugins/audioscrobbler/Makefile.am:
182         * plugins/audioscrobbler/audioscrobbler-ui.xml:
183         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
184         (impl_activate), (impl_deactivate):
185         * plugins/audioscrobbler/rb-lastfm-source.c:
186         (rb_lastfm_source_class_init), (rb_lastfm_source_constructor),
187         (impl_activate), (impl_show_popup), (show_entry_popup): add a context
188         menu to the last.fm source, and allow deletion of stations.
190 2006-12-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
192         * plugins/rb-plugin-manager.c: (plugin_manager_populate_lists):
193         gtk_tree_view_get_model doesn't ref the model, so don't unref it
194         when we're done with it.
196 2006-12-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
198         * rhythmdb/rhythmdb.c:
199         (rhythmdb_execute_load), (rhythmdb_add_uri_with_type):
200         Handle rb_uri_resolve_symlink returning NULL, as it does when it
201         encounters a symlink loop.  Create import errors for such URIs.
202         Fixes #380826.
204 2006-11-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
206         patch started by:  James Livingston  <doclivingston@gmail.com>
208         * podcast/rb-podcast-manager.c: (*)
209         * podcast/rb-podcast-manager.h:
210         * sources/rb-podcast-source.c: (rb_podcast_source_set_property),
211         (rb_podcast_source_cmd_cancel_download),
212         (rb_podcast_source_load_finish_cb),
213         (rb_podcast_source_feed_updates_available_cb),
214         (rb_podcast_source_shutdown), (rb_podcast_source_cmd_new_podcast):
215         Remove mutexes and async queues from the podcast manager; just do
216         everything on the main thread and use idle handlers to marshal things
217         across to it.  Should fix crashes on FreeBSD, various other weird
218         stuff, and bug 337332.
220 2006-11-29  James Livingston  <doclivingston@gmail.com>
222         patch from: Glynn Foster <glynn.foster@sun.com>
224         * metadata/sj-metadata-musicbrainz.c:
225         (sj_metadata_musicbrainz_instance_init): fix a typo in the proxy
226         settings.
228 2006-11-29  James Livingston  <doclivingston@gmail.com>
230         patch by: Thomas Thurman  <thomas@thurman.org.uk>
232         * data/glade/song-info-multiple.glade:
233         * data/glade/song-info.glade:
234         * data/glade/station-properties.glade: Make the return key close these
235         dialogs. Fixes #379148
237 2006-11-29  James Livingston  <doclivingston@gmail.com>
239         patch by: Ingo Planz  <planz@mi-fu-berlin.de>
241         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Make the
242         podcast plugin set unknown dates to the current time, not the start of
243         the epoch. Fixes #367572.
245 2006-11-29  James Livingston  <doclivingston@gmail.com>
247         * lib/rb-tree-dnd.c: (rb_tree_drag_source_row_draggable),
248         (rb_tree_drag_source_drag_data_delete),
249         (rb_tree_drag_source_drag_data_get),
250         (rb_tree_drag_dest_drag_data_received),
251         (rb_tree_drag_dest_row_drop_possible),
252         (rb_tree_drag_dest_row_drop_position), (rb_tree_dnd_drag_drop_cb):
253         * lib/rb-tree-dnd.h:
254         * rhythmdb/rhythmdb-property-model.c:
255         (rhythmdb_property_model_drag_source_init):
256         * rhythmdb/rhythmdb-query-model.c:
257         (rhythmdb_query_model_drag_source_init),
258         (rhythmdb_query_model_drag_dest_init):
259         * sources/rb-sourcelist-model.c:
260         (rb_sourcelist_model_drag_dest_init),
261         (rb_sourcelist_model_drag_source_init): don't use the same method
262         names as the GtkTreeDnd ones, since it break bindings to other
263         languages.
265         * shell/rb-shell.c: (_scan_idle), (rb_shell_constructor): run the
266         removable media scan in an idle callback.
268 2006-11-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
270         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct):
271         Use the right variable name when setting the "profile" property on the
272         sink.  Fixes #379532 and closes #379314 again.
274 2006-11-27  James Livingston  <doclivingston@gmail.com>
276         patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
278         * plugins/magnatune/magnatune/MagnatuneSource.py: fix a race condition
279         in the Magnatune plugin, from #373684.
281 2006-11-26  James Livingston  <doclivingston@gmail.com>
283         patch from Alex Jones  <alex@weej.com>
285         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct): set
286         the "profile" on the audio sink, if it's present. Fixes #379314.
288 2006-11-23  James Livingston  <doclivingston@gmail.com>
290         * bindings/python/rhythmdb.defs:
291         * bindings/python/rhythmdb.override: fix some binding stuff.
293 2006-11-23  James Livingston  <doclivingston@gmail.com>
295         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
297         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
298         details from debug output. Fixes #378355.
300 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
302         * shell/rb-shell-player.c: (rb_shell_player_play):
303         Don't crash if current_playing_source is NULL.  Fixes #378195.
304         
305         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
306         rb_shell_player_play isn't very useful, use _playpause if not
307         already playing instead.
309 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
311         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
312         (rhythmdb_property_model_drag_data_get):
313         * rhythmdb/rhythmdb-query-model.c:
314         (rhythmdb_query_model_drag_data_get),
315         (rhythmdb_query_model_drag_data_received):
316         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
317         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
318         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
319         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
320         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
321         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
322         (rhythmdb_tree_entry_count_by_type):
323         * rhythmdb/rhythmdb.c:
324         * rhythmdb/rhythmdb.h:
325         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
326         (rb_daap_share_set_property), (rb_daap_share_get_property),
327         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
328         (send_mapped_file), (databases_cb), (db_entry_added_cb),
329         (db_entry_deleted_cb), (rb_daap_share_server_start),
330         (rb_daap_share_server_stop):
331         * daapsharing/rb-daap-share.h:
332         * daapsharing/rb-daap-sharing.c: (create_share):
333         Move id-to-entry map from daap share into rhythmdb.
335         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
336         (rb_playlist_manager_new_playlist_from_selection_data):
337         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
338         * sources/rb-browser-source.c: (rb_browser_source_constructor):
339         * sources/rb-sourcelist-model.c:
340         (rb_sourcelist_model_drag_data_received),
341         (rb_sourcelist_model_row_drop_position),
342         (rb_sourcelist_model_get_drag_target),
343         (rb_sourcelist_model_drag_data_get):
344         * sources/rb-static-playlist-source.c: (impl_receive_drag),
345         (rb_static_playlist_source_add_id_list),
346         (rb_static_playlist_source_add_uri_list):
347         * widgets/rb-entry-view.c:
348         * widgets/rb-property-view.c:
349         Add a new drag-and-drop type: application/x-rhythmbox-entry
350         containing a list of entry IDs, and use it for DnD within the
351         application.  Avoids having to pick a URI to use for an entry, so we
352         can make DnD of podcast entries (and anything else where playback URI
353         is not the same as the entry location) work as expected.
354         Fixes #343537.
356 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
358         * shell/rb-shell.c: (rb_shell_present):
359         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
361 2006-11-20  James Livingston  <doclivingston@gmail.com>
363         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
364         find the responsible source. Fixes #377029
366 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
368         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
369         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
370         * lib/rb-file-helpers.h:
371         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
372         Implement rb_uri_get_short_path_name to replace
373         gnome_vfs_uri_extract_short_path name with something that doesn't
374         reject unknown URI schemes such as daap://.  Fixes #361077.
376         * tests/Makefile.am:
377         * tests/test-file-helpers.c: (test_get_short_path_name),
378         (START_TEST), (rb_file_helpers_suite), (main):
379         Add tests for the above.
381 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
383         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
384         (bacon_volume_button_new), (bacon_volume_button_style_set),
385         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
386         (bacon_volume_scale_value_changed),
387         (bacon_volume_button_load_icons):
388         * widgets/bacon-volume.h:
389         Update bacon-volume from libbacon CVS again.
391 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
393         * widgets/bacon-volume.c: (bacon_volume_load_icons):
394         Fall back to old icon names if the icon naming spec compliant
395         names don't work.  From #369491.
397 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
399         * plugins/audiocd/Makefile.am:
400         Stop automake complaining about duplicate definitions.
402 2006-11-17  James Livingston  <doclivingston@gmail.com>
404         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
405         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
406         when disposing of the source. Fixes #376155
408         * plugins/daap/Makefile.am: fix some distcheck brokenness.
410 2006-11-17  James Livingston  <doclivingston@gmail.com>
412         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
414 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
416         * shell/rb-playlist-manager.c: (*):
417         General cleanup, add appropriate object references and implement
418         dispose method.  Should fix #357099.
420 2006-11-15  James Livingston  <doclivingston@gmail.com>
422         patch by: William Lachance  <wrlach@gmail.com>
424         * rhythmdb/rhythmdb-query-model.c:
425         (rhythmdb_query_model_album_sort_func): improve sorting when some
426         tracks are missing track/disc number info. Fixes #371322
428 2006-11-14  James Livingston  <doclivingston@gmail.com>
430         patch by: Alex Lancaster
432         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
433         episode dates which are missing the seconds. Fixes #373845
435 2006-11-13  James Livingston  <doclivingston@gmail.com>
437         * bindings/python/rhythmdb.override: bidn a few other pieces of
438         rhythmdb.
440 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
442         * shell/rb-statusbar.c: (rb_statusbar_class_init),
443         (rb_statusbar_dispose), (rb_statusbar_finalize),
444         (rb_statusbar_set_property):
445         Remove idle handler in dispose, rather than finalize.
446         Keep references on all referenced objects (duh?).
447         Fixes #374443.
449 2006-11-12  James Livingston  <doclivingston@gmail.com>
451         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
453         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
454         the status bar smaller, so it isn't too big. Fixes #368757.
456 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
458         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
459         (mdns_service_removed):
460         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
461         disappear.
463 2006-11-12  James Livingston  <doclivingston@gmail.com>
465         * plugins/audioscrobbler/rb-lastfm-source.c:
466         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
467         more supported last.fm radio things. From #373622
469 2006-11-12  James Livingston  <doclivingston@gmail.com>
471         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
472         through the earlier checks. Fixes #373605
474 2006-11-12  James Livingston  <doclivingston@gmail.com>
476         * sources/rb-library-source.c:
477         (rb_library_source_add_child_source): sort the child-library sources
478         the same as the library by default.
480 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
482         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
483         Don't try to report the size if we didn't get one.
484         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
485         work), from #350276.
487 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
489         * daapsharing/rb-daap-sharing.c:
490         (rb_daap_sharing_default_share_name), (create_share),
491         (share_name_changed_cb):
492         * daapsharing/rb-daap-sharing.h:
493         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
494         (make_config_widget), (impl_create_configure_dialog):
495         Update DAAP preferences widget when displaying it, and
496         populate the share name entry with the default if there's nothing
497         there already.  Fixes #340279.
499 2006-11-11  James Livingston  <doclivingston@gmail.com>
501         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
503         * plugins/magnatune/magnatune/MagnatuneSource.py:
504         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
505         Magnatune stuff. From #345783
507 2006-11-10  James Livingston  <doclivingston@gmail.com>
509         * plugins/generic-player/rb-nokia770-source.c:
510         (hal_udi_is_nokia770):
511         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
512         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
513         context if it wasn't inited. Fixes #372824
515 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
517         * plugins/daap/rb-daap-plugin.h:
518         Add the file I missed last time.
520 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
522         * CVS-SURGERY:
523         * backends/gstreamer/Makefile.am:
524         * backends/gstreamer/rb-player-gst.c:
525         * configure.ac:
526         * daapsharing/Makefile.am:
527         * daapsharing/rb-daap-connection.c:
528         (rb_daap_connection_disconnect):
529         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
530         (rb_daap_src_open):
531         * daapsharing/rb-daap-src.h:
532         * data/glade/Makefile.am:
533         * data/rhythmbox.schemas:
534         * data/ui/Makefile.am:
535         * plugins/Makefile.am:
536         * plugins/daap/.cvsignore:
537         * plugins/daap/Makefile.am:
538         * plugins/daap/daap.rb-plugin.desktop.in:
539         * plugins/daap/rb-daap-plugin.c:
540         * shell/Makefile.am:
541         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
542         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
543         * sources/Makefile.am:
544         * sources/rb-daap-source.c: (rb_daap_source_class_init),
545         (rb_daap_source_new), (connection_auth_cb),
546         (connection_connecting_cb), (connection_disconnected_cb),
547         (release_connection), (rb_daap_source_disconnect),
548         (rb_daap_source_show_popup):
549         * sources/rb-daap-source.h:
550         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
551         Fixes #336150.
553 2006-11-09  James Livingston  <doclivingston@gmail.com>
555         * rhythmdb/rhythmdb.c: take the ref before calling the delete
556         implementation, not after. From #372851.
558 2006-11-09  James Livingston  <doclivingston@gmail.com>
560         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
562         * plugins/Makefile.am:
563         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
564         fixes #371178.
566 2006-11-09  James Livingston  <doclivingston@gmail.com>
568         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
569         g_signal_connect_object not g_signal_object, which stops it beign
570         called after the plugin is disposed.
572 2006-11-09  James Livingston  <doclivingston@gmail.com>
574         * plugins/audioscrobbler/rb-audioscrobbler.c:
575         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
576         after we're finalised. Should fix #370513
578 2006-11-08  James Livingston  <doclivingston@gmail.com>
580         patch by: Jerry Tan  <jerry.tan@sun.com>
582         * data/glade/song-info.glade: set more a11y properties on the
583         label-for/labelled-by info. Fixes #368179.
585 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
587         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
588         (rb_entry_view_dispose), (rb_entry_view_finalize):
589         Unref objects and remove idle handlers in dispose rather than
590         finalize.  Should fix #364783.
592 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
594         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
595         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
596         xmlCreateMemoryParserCtxt returning NULL that was previously checking
597         the wrong variable.  Really fixes #336842.
599 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
601         * plugins/iradio/Makefile.am:
602         Actually install the UI file.
604 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
606         * plugins/generic-player/rb-generic-player-source.c:
607         (rb_generic_player_source_constructor),
608         (rb_generic_player_source_dispose),
609         (rb_generic_player_source_load_playlists):
610         Don't crash if the source is destroyed before it gets a chance
611         to load playlists.
613 2006-11-06  James Livingston  <doclivingston@gmail.com>
615         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
616         * rhythmdb/rhythmdb.c: some leak fixes
618 2006-11-06  James Livingston  <doclivingston@gmail.com>
620         * bindings/python/rb.override: change the right function in the last
621         commit.
623 2006-11-06  James Livingston  <doclivingston@gmail.com>
625         * bindings/python/rb.override: unwrap the python string instead of
626         wrapping it. Oops.
628 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
630         * tests/test-utils.c: (test_rhythmdb_setup):
631         Fix build break, #371106.
633 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
635         * tests/Makefile.am:
636         * tests/test-rhythmdb-property-model.c: (_get_property_count),
637         (START_TEST), (rhythmdb_property_model_suite), (main):
638         * tests/test-rhythmdb-query-model.c: (START_TEST),
639         (rhythmdb_query_model_suite), (main):
640         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
641         * tests/test-utils.c: (start_test_case), (end_step),
642         (end_test_case), (mark_signal), (set_waiting_signal),
643         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
644         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
645         * tests/test-utils.h:
646         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
648 2006-11-04  James Livingston  <doclivingston@gmail.com>
650         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
651         we were passed a absolute path, e.g. from the plugin file find
652         function.
654 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
656         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
658         * remote/dbus/rb-client.c: (main):
659         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
660         * shell/rb-shell.h:
661         * shell/rb-shell.xml:
662         Add dbus method to request a notification for the playing song, and
663         an argument to rhythmbox-client to use it.  Fixes #359593.
665 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
667         * remote/dbus/rb-print-playing.py:
668         Revert changes I accidentally committed a while ago.
670 2006-11-03  James Livingston  <doclivingston@gmail.com>
672         * data/glade/song-info.glade: make more labels selectable, from #368641
674 2006-11-03  James Livingston  <doclivingston@gmail.com>
676         * shell/rb-shell-clipboard.c: (get_focussed_widget),
677         (rb_shell_clipboard_cmd_select_all),
678         (rb_shell_clipboard_cmd_select_none): make Select All select text in
679         the focussed widget if it's a text entry. Fixes #364590
681 2006-11-03  James Livingston  <doclivingston@gmail.com>
683         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
684         (bacon_volume_button_init), (bacon_volume_button_dispose),
685         (bacon_volume_button_new), (bacon_volume_button_realize),
686         (bacon_volume_button_press), (bacon_volume_key_release),
687         (bacon_volume_release_grab), (cb_dock_key_release),
688         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
689         (bacon_volume_theme_changed), (bacon_volume_load_icons):
690         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
691         Fixes #369491
693 2006-10-31  James Livingston  <doclivingston@gmail.com>
695         * configure.ac: remove spaces around '=' where they shouldn't be,
696         fixes building when you have libgpod 0.3.x
698 2006-10-31  James Livingston  <doclivingston@gmail.com>
700         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
702         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
703         period is 0. Fixes #351425
705 2006-10-31  James Livingston  <doclivingston@gmail.com>
707         patch by: Luca Ferretti  <elle.uca@libero.it>
709         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
710         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
711         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
712         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
713         * plugins/ipod/ipod.rb-plugin.desktop.in:
714         * plugins/iradio/iradio.rb-plugin.desktop.in:
715         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
716         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
717         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
718         of the plugins. Fixes #365326
720 2006-10-31  James Livingston  <doclivingston@gmail.com>
722         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
724 2006-10-31  James Livingston  <doclivingston@gmail.com>
726         * data/glade/song-info.glade: set the mnemonic target for the labels
727         in the details tab. Fixes #368179.
729 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
731         * configure.ac:
732         When complaining about GStreamer being too old, use the right variable
733         name for the version we want.
735 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
737         * shell/rb-shell.h:
738         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
739         * shell/rb-tray-icon.h:
740         * bindings/python/rb.defs:
741         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
742         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
743         * sources/rb-playlist-source-recorder.c: (burn_cd):
744         * sources/rb-podcast-source.c:
745         (rb_podcast_source_start_download_cb),
746         (rb_podcast_source_finish_download_cb),
747         (rb_podcast_source_feed_updates_avaliable_cb):
748         Change the various notification functions to take a parameter
749         specifying whether the notification was explicitly requested by the
750         user.  Add a function to display a notification for an entry,
751         including streaming song metadata.
753         * shell/rb-shell-player.c: (rb_shell_player_stop):
754         Emit playing-song-changed and playing-uri-changed when stopping
755         playback.
757         * sources/Makefile.am:
758         * sources/rb-streaming-source.c:
759         * sources/rb-streaming-source.h:
760         Add a base class for streaming sources, handling streaming song
761         metadata and buffering messages, emitting notifications on song
762         changes, and updating play count statistics when playback stops.
764         * plugins/audioscrobbler/Makefile.am:
765         * plugins/audioscrobbler/rb-lastfm-source.c:
766         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
767         (rb_lastfm_source_constructor), (impl_get_status),
768         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
769         (rb_lastfm_source_title_from_uri),
770         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
771         (rb_lastfm_song_changed_cb), (impl_activate):
772         * plugins/audioscrobbler/rb-lastfm-source.h:
773         * plugins/iradio/Makefile.am:
774         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
775         (rb_iradio_source_constructor), (impl_get_status),
776         (info_available_cb), (playing_source_changed_cb):
777         * sources/rb-iradio-source.h:
778         Use the new streaming source base class for iradio and last.fm
779         sources.  Fixes #364094.
781 2006-10-30  James Livingston  <doclivingston@gmail.com>
783         * podcast/rb-podcast-manager.c:
784         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
785         any downloads from it before deleting the post entry. Fixes #366567.
787 2006-10-30  James Livingston  <doclivingston@gmail.com>
789         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
790         move-to-trash, since there have been reports of people accidently
791         deleting tracks and it probably isn't a common enough operation to be
792         worth a shortcut.
794 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
796         * backends/gstreamer/rb-player-gst.c:
797         * configure.ac:
798         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
799         Fix GStreamer 0.8 build (and some typos in configure.ac).
801 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
803         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
805         * sources/rb-source.c: (rb_source_class_init),
806         (rb_source_set_property), (rb_source_get_property):
807         Add a property to RBSource for plugin-created sources to have a
808         pointer to the RBPlugin object that created them.
810         * plugins/audiocd/Makefile.am:
811         * plugins/audiocd/multiple-album.glade:
812         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
813         * sources/Makefile.am:
814         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
815         * sources/rb-audiocd-source.h:
816         If musicbrainz returns multiple albums, present the user with a
817         choice between them.  Fixes #333215.
819         * configure.ac:
820         * plugins/Makefile.am:
821         Remove unused old audio CD stuff, only build audiocd plugin if we have
822         libnautilus-burn.  Fixes #367440.
824 2006-10-30  James Livingston  <doclivingston@gmail.com>
826         patch by: Brian McKenna  <puffnfresh@gmail.com>
828         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
829         handle blocks. Fixes #366696.
831 2006-10-30  James Livingston  <doclivingston@gmail.com>
833         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
835 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * shell/rb-shell-player.c: (rb_shell_player_class_init),
838         (rb_shell_player_sync_with_source),
839         (rb_shell_player_get_playing_time_string), (tick_cb):
840         * widgets/rb-header.c: (rb_header_sync_time),
841         (slider_moved_callback), (rb_header_update_elapsed),
842         (rb_header_elapsed_changed_cb):
843         Revert dbus interface breakage introduced in the fix for #365908.
845 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
847         patch by: Luca Ferretti  <elle.uca@libero.it>
849         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
850         Remove the access keys from the podcast-specific column headers.
851         Fixes #360640 again.
853 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
855         patch by: James Livingston <doclivingston@gmail.com>
857         * sources/rb-browser-source.c: (rb_browser_source_constructor):
858         Only register the search actions once.  From #346801.
860 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
862         * shell/rb-shell-player.c: (rb_shell_player_error):
863         When handling an error, try playing the next stream URL if we have
864         one, rather than stopping playback.  From #358140.
866 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
868         * shell/rb-shell.c: (handle_playlist_entry_cb):
869         Don't crash if we can't guess a source for a URI in the playlist.
870         Fixes #366261.
872 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
874         * shell/rb-shell-player.c: (rb_shell_player_class_init),
875         (rb_shell_player_sync_with_source),
876         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
877         (tick_cb):
878         * widgets/rb-header.c: (rb_header_sync_time),
879         (rb_header_elapsed_changed_cb):
880         Treat elapsed time as signed, since rb_player_get_time returns a
881         signed value.  When actually using the value, mostly treat negative
882         values as 0.  Fixes #365908.
884 2006-10-27  James Livingston  <doclivingston@gmail.com>
886         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
888         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
889         returning 0 for the year/month/day. Fixes #364837.
891 2006-10-27  James Livingston  <doclivingston@gmail.com>
893         patch by: Luca Ferretti  <elle.uca@libero.it>
895         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
896         access keys from the entry view columns headers - they cause
897         keybindings conflicts, headaches for translators and the HIG says
898         they are bad. Fixes #360640.
900 2006-10-27  James Livingston  <doclivingston@gmail.com>
902         patch by: Luca Ferretti  <elle.uca@libero.it>
904         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
905         access keys from the entry view columns headers - they cause
906         keybindings conflicts, headaches for translators and the HIG says
907         they are bad. Fixes #360640.
909 2006-10-27  James Livingston  <doclivingston@gmail.com>
911         * rhythmdb/rhythmdb-private.h:
912         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
913         issues
915 2006-10-27  James Livingston  <doclivingston@gmail.com>
917         * plugins/artdisplay/Makefile.am:
918         * plugins/audioscrobbler/Makefile.am:
919         * plugins/iradio/Makefile.am: fix make clean
921 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
923         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
924         Fall back to strtod() if g_ascii_strtod() doesn't work.
926         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
927         Write floating point values using g_ascii_dtostr() to avoid
928         problems with locale-specific representations.  From #353205.
930 2006-10-25  James Livingston  <doclivingston@gmail.com>
932         * plugins/artdisplay/Makefile.am:
933         * plugins/audioscrobbler/Makefile.am:
934         * plugins/iradio/Makefile.am: fix "make distcheck"
936 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
938         patch by: Brian Cameron <brian.cameron@sun.com>
940         * plugins/audiocd/Makefile.am:
941         Link audiocd plugin with libnautilus-burn as required to get it to work
942         on Solaris.  Fixes #363288.
944 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
946         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
948         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
949         Clarify that we don't submit actual songs to last.fm, just information
950         on what you're listening to.  Fixes #364014.
952 2006-10-24  Bastien Nocera  <hadess@hadess.net>
954         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
955         (bacon_volume_button_class_init), (bacon_volume_button_new),
956         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
957         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
958         (bacon_volume_scale_value_changed): update from libbacon, to get
959         better accessibility support (Closes: #364637)
961 2006-10-24  James Livingston  <doclivingston@gmail.com>
963         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
965         * configure.ac: fix some typos and leftovers from disabled->enabled
966         changes. Fixes #364217
968 2006-10-23  William Jon McCann  <mccann@jhu.edu>
970         * shell/rb-source-header.c (rb_source_header_init):
971         Don't require source header cells to be homogeneous.
972         Patch from #359188
974 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
976         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
977         Pause the pipeline while buffering.  Fixes #358290.
979 2006-10-23  Bastien Nocera  <hadess@hadess.net>
981         * configure.ac: update required libgpod version to avoid crashes
982         when starting up with an iPod connect (Closes: #352972)
983         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
984         (hal_udi_is_ipod): remove outdated ifdefs
986 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
988         * plugins/Makefile.am:
989         * plugins/power-manager/rb-power-manager-plugin.c:
990         Don't try to build the power-manager plugin with dbus < 0.35.
992 2006-10-22  James Livingston  <doclivingston@gmail.com>
994         patch by: Ed Catmur  <ed@catmur.co.uk>
996         * plugins/artdisplay/Makefile.am:
997         * plugins/artdisplay/artdisplay/__init__.py:
998         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
999         placeholder art when none is available, to avoid having the widget pop
1000         in and out of existance.
1002 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1004         * plugins/lyrics/lyrics.py:
1005         Set the lyrics window transient for the main window so it can
1006         actually be seen in party mode.  Fixes #362981.
1008 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1010         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
1011         * sources/rb-source.c: (rb_source_class_init),
1012         (rb_source_can_show_properties), (rb_source_song_properties):
1013         * sources/rb-source.h:
1014         Only enable the 'properties' item in the 'music' menu if the selected
1015         source implements the show_properties method.  Fixes #356485.
1017 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1019         * shell/rb-shell-player.c:
1020         (rb_shell_player_property_row_activated_cb):
1021         Take the entry to play from the play order, rather than grabbing the
1022         first entry in the query model.  Fixes #362042.
1024 2006-10-16  James Livingston  <doclivingston@gmail.com>
1026         * shell/main.c: (main): save custom menu accelerators before exiting.
1027         Fixed #362300
1029 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
1031         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
1032         I HATE adding this patch, but I'm sick of hitting Yes once
1033         and hour.  Working around brain-dead podcasts.
1035 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1037         * plugins/lyrics/lyrics.py:
1038         Disconnect the create-song-info handler when deactivated.
1039         Fixes #361882.
1041 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1043         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
1044         Reset the style when clearing the search text.  Fixes #361295.
1046 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1048         * rhythmdb/rhythmdb-query-model.c:
1049         (rhythmdb_query_model_entry_changed_cb):
1050         Don't emit entry-prop-changed for hidden signals from chained query
1051         models, as the model will also propagate the parent model's
1052         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
1054 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1056         * sources/rb-ipod-source.c: (generate_ipod_filename):
1057         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
1058         * lib/rb-cut-and-paste-code.h:
1059         Move eel_make_valid_utf8 to lib/, make the replacement
1060         character a parameter.
1062         * rhythmdb/rhythmdb.c: (make_access_failed_error),
1063         (rhythmdb_execute_multi_stat_info_cb),
1064         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
1065         When constructing an error message that includes a URI, make sure the
1066         URI is valid utf-8.  Fixes #353588.
1068 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1070         * player/rb-recorder-gst.c: (rb_recorder_construct),
1071         (acb_wave_time):
1072         Add an extra audioconvert element to allow endianness conversion on
1073         big-endian machines, and fix a few endianness issues in the .wav
1074         reading code.  Fixes #355611.
1076 2006-10-09  James Livingston  <doclivingston@gmail.com>
1078         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1080         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
1081         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
1082         Fixes #357553.
1084 2006-10-09  James Livingston  <doclivingston@gmail.com>
1086         patch by: Luca Ferretti  <elle.uca@libero.it>
1088         * data/glade/song-info-multiple.glade:
1089         * data/glade/song-info.glade: Fix a few HIG issues.
1091 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1093         * plugins/audioscrobbler/rb-lastfm-source.c:
1094         (rb_lastfm_source_class_init):
1095         Return TRUE from impl_try_playlist so playback starts in a separate
1096         thread.
1098 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1100         * shell/main.c: (main):
1101         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
1102         UTF-8 GStreamer messages.  Fixes #357973.
1104 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1106         * shell/rb-shell.c: (rb_shell_constructor):
1107         Remove a line that accidentally slipped in from some other universe.
1109 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1111         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
1112         Don't remove sources from the hash table while iterating it on
1113         shutdown.  Fixes #359583.
1115 2006-10-07  James Livingston  <doclivingston@gmail.com>
1117         patch from Alex Lancaster  <alexl@users.sourceforge.net>
1119         * shell/rb-shell.c: change the keybinding for "Plugins" to not
1120         conflict with others. Fixes #355904
1122 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1124         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
1125         (rhythmdb_query_model_chain),
1126         (rhythmdb_query_model_entry_changed_cb),
1127         (rhythmdb_query_model_base_entry_prop_changed),
1128         (rhythmdb_query_model_base_entry_removed):
1129         For chained models, propagate the parent model's entry-prop-changed
1130         signal rather than emitting one from the db entry-changed handler.
1131         This ensures that when the change filters the entry out of the parent
1132         model, property models attached to the child model get the entry
1133         change signal before the post-entry-delete signal, so they can
1134         decrement the refcount for the right property value.  Fixes #359083.
1136 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1138         * plugins/audioscrobbler/Makefile.am:
1139         define NULL
1141 2006-10-07  James Livingston  <doclivingston@gmail.com>
1143         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1144         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
1145         * plugins/audioscrobbler/rb-lastfm-source.c:
1146         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
1147         hypens in URI schemes.
1149 2006-10-06  William Jon McCann  <mccann@jhu.edu>
1151         * plugins/iradio/Makefile.am:
1152         * plugins/audioscrobbler/Makefile.am:
1153         * plugins/cd-recorder/Makefile.am:
1154         Don't clean all plugin_DATA.
1155         Fixes #360210
1157 2006-10-06  James Livingston  <doclivingston@gmail.com>
1159         patch from Matt N  <fisxoj@gmail.com>
1161         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
1162         (rb_player_gst_bus_cb):
1163         * backends/rb-player.c: (rb_player_interface_init),
1164         (_rb_player_emit_tick), (_rb_player_emit_event):
1165         * backends/rb-player.h: let the backend emit named "events", for
1166         things that the core shouldn't know about.
1168         * rhythmdb/rhythmdb.h:
1169         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
1170         support for streams containing album metadata.
1172         * plugins/audioscrobbler/Makefile.am:
1173         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1174         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1175         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
1176         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1177         * plugins/audioscrobbler/rb-lastfm-source.c:
1178         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
1179         of last.fm streams. From #313049.
1181 2006-10-06  James Livingston  <doclivingston@gmail.com>
1183         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
1184         committing. Oops.
1186 2006-10-06  James Livingston  <doclivingston@gmail.com>
1188         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
1190         * configure.ac:
1191         * data/rhythmbox.schemas:
1192         * plugins/Makefile.am:
1193         * plugins/magnatune/Makefile.am:
1194         * plugins/magnatune/magnatune-loading.glade:
1195         * plugins/magnatune/magnatune-prefs.glade:
1196         * plugins/magnatune/magnatune-purchase.glade:
1197         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
1198         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
1199         * plugins/magnatune/magnatune/MagnatuneSource.py:
1200         * plugins/magnatune/magnatune/TrackListHandler.py:
1201         * plugins/magnatune/magnatune/__init__.py:
1202         * plugins/magnatune/magnatune_circle_small.png:
1203         * plugins/magnatune/magnatune_logo_color_small.png:
1204         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
1205         play and download tracks from the MagnaTune online music store. From
1206         #345783.
1208 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1210         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1211         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
1212         (check_auto_proxy_config), (get_proxy_config):
1213         Don't crash when eel_gconf_get_string returns NULL.
1214         Fixes #359974.
1216 2006-10-04  James Livingston  <doclivingston@gmail.com>
1218         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
1220         * plugins/audiocd/Makefile.am: fix the plugin when linking with
1221         --as-needed. Fixes #358730
1223 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1225         patch by:  William Jon McCann  <mccann@jhu.edu>
1227         * sources/rb-iradio-source.c: (playing_source_changed_cb):
1228         Fix some stupidity I introduced that caused crashes on shutdown.
1229         Fixes #359181.
1231 2006-10-02  William Jon McCann  <mccann@jhu.edu>
1233         * plugins/audiocd/Makefile.am:
1234         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
1235         * plugins/iradio/.cvsignore:
1236         * plugins/iradio/Makefile.am:
1237         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
1238         (impl_deactivate):
1239         * plugins/power-manager/.cvsignore:
1240         Install missing iradio ui file.  Don't leak ui filename.
1241         Fix iradio install dir. Fix audiocd install dir.
1242         Remove unused code from audio cd plugin.
1244         Fixes #359170
1246 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1248         * sources/rb-ipod-source.c: (impl_move_to_trash):
1249         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
1250         commented out while fixing bug 355235.  Oops.
1252 2006-10-03  James Livingston  <doclivingston@gmail.com>
1254         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
1255         non-unicode warnings to debug statements, since they can occur with
1256         slightly broken files.
1258         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
1259         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
1260         iradio plugin is disabled and re-enabled.
1262 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1264         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
1265         (rhythmdb_entry_podcast_post_get_type):
1266         * rhythmdb/rhythmdb.h:
1267         * tests/bench-rhythmdb-load.c: (main):
1268         Add definitions for some common extra-metadata fields,
1269         remove iradio entry type definition, add the concept of entry type
1270         categories, define categories for the core entry types.
1271         Categories are used to decide if an entry can be copied to a removable
1272         device, if it should be reported to audioscrobbler, etc.
1274         * shell/Makefile.am:
1275         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1276         (rb_shell_player_constructor), (rb_shell_player_init),
1277         (rb_shell_player_get_property), (open_location_thread),
1278         (rb_shell_player_open_location),
1279         (rb_shell_player_sync_with_source),
1280         (rb_shell_player_set_playing_source_internal), (tick_cb):
1281         * shell/rb-shell.c: (construct_widgets), (construct_sources),
1282         (rb_shell_player_elapsed_changed_cb):
1283         Remove iradio-specific code, use extra metadata fields for streaming
1284         title and artist name.
1286         * data/ui/rhythmbox-ui.xml:
1287         Add a placeholder for 'new ...' menu items.
1289         * Makefile.am:
1290         * sources/Makefile.am:
1291         * configure.ac:
1292         * data/rhythmbox.schemas:
1293         * plugins/Makefile.am:
1294         * plugins/iradio/Makefile.am:
1295         * plugins/iradio/iradio-ui.xml:
1296         * plugins/iradio/iradio.rb-plugin.desktop.in:
1297         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1298         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1299         (rb_iradio_plugin_class_init):
1300         iradio plugin, enabled and hidden by default.
1302         * plugins/audioscrobbler/rb-audioscrobbler.c:
1303         (rb_audioscrobbler_song_changed_cb):
1304         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1305         * sources/rb-daap-source.c: (rb_daap_source_new):
1306         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1307         Define entry type categories, and use them where appropriate.
1309         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1310         (rb_iradio_source_constructor), (rb_iradio_source_new),
1311         (impl_get_status), (impl_want_uri), (buffering_cb),
1312         (check_entry_type), (streaming_title_request_cb),
1313         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1314         (info_available_cb), (playing_entry_changed_cb),
1315         (playing_source_changed_cb):
1316         Move streaming metadata and buffering handling here from
1317         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1318         title or artist changes, and handle request and gather signals for
1319         those.
1321         * widgets/rb-header.c: (rb_header_class_init),
1322         (rb_header_set_property), (rb_header_get_property),
1323         (rb_header_new), (append_and_free), (rb_header_sync):
1324         * widgets/rb-header.h:
1325         Rework to use streaming artist and title extra-metadata.
1326         streaming-artist overrides entry artist, and streaming-title means
1327         entry title is a stream name, displayed in brackets.
1329         * doc/reference/Makefile.am:
1330         * doc/reference/rhythmbox.types:
1331         Remove iradio stuff from gtk-doc build.
1333         Fixed #347097.
1335 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1337         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1339         * bindings/python/rhythmdb.defs:
1340         * lib/rb-marshal.list:
1341         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1342         (rhythmdb_emit_entry_deleted),
1343         (rhythmdb_entry_extra_metadata_accumulator),
1344         (rhythmdb_entry_request_extra_metadata),
1345         (rhythmdb_emit_entry_extra_metadata_notify),
1346         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1347         * rhythmdb/rhythmdb.h:
1348         Add signals for dealing with transient metadata outside the set stored
1349         in RhythmDBEntry:
1350         - entry_extra_metadata_request returns a value for the requested
1351           metadata field
1352         - entry_extra_metadata_notify notifies observers of a change to an
1353           extra metadata field
1354         - entry_extra_metadata_gather returns the values of all extra metadata
1355           fields
1357         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1358         (rb_shell_player_extra_metadata_cb):
1359         Sync the display on extra metadata changes and emit dbus signals when
1360         we can marshal the value.
1362         * shell/rb-shell.c: (rb_shell_get_song_properties):
1363         Implement rb_shell_song_get_properties using
1364         rhythmdb_entry_gather_metadata.
1366         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1367         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1368         * configure.ac:
1369         Add GValue marshaller for python (until bug 351072 is fixed)
1371         From #345592.
1373 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1375         * configure.ac:
1376         * data/rhythmbox.schemas:
1377         * plugins/Makefile.am:
1378         * plugins/power-manager/Makefile.am:
1379         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1380         * plugins/power-manager/rb-power-manager-plugin.c:
1381         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1382         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1383         (playing_changed_cb), (impl_activate), (impl_deactivate):
1384         gnome-power-manager integration: inhibit suspend while playing.
1385         Fixes #344979.
1387 2006-10-02  James Livingston  <doclivingston@gmail.com>
1389         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1390         and Alex Lancaster  <alexl@users.sourceforge.net>
1392         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1393         Fixes #353143, #353146 and #353147.
1395 ============ Version 0.9.6
1397 2006-10-01  James Livingston  <doclivingston@gmail.com>
1399         * configure.ac: bump version to 0.9.6. enable tag-writing and
1400         ipod-writing by default
1402         * NEWS: update NEWS
1404 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1406         patch by:  William Jon McCann  <mccann@jhu.edu>
1408         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1409         Use a local GError in case no error pointer pointer is passed in.
1410         From bug #358396.
1412 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1414         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1415         Don't reference members of freed structures.
1417 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1419         patch by:  William Jon McCann  <mccann@jhu.edu>
1421         * player/rb-recorder-gst.c: (rb_recorder_burn):
1422         Drop GDK lock before entering n-c-b.  Fixes #353894?
1424 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1426         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1427         (impl_activate):
1428         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1430 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1432         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1433         Call lirc_init before lirc_readconfig so we don't crash if the user's
1434         .lircrc file has any mode sections. Fixes #357419.
1436 2006-09-24  James Livingston  <doclivingston@gmail.com>
1438         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1439         if we get called twice, as that can happen. Fixes #357214.
1441 2006-09-24  James Livingston  <doclivingston@gmail.com>
1443         * backends/rb-encoder.h: add "file access" error
1445         * lib/rb-file-helpers.c: (rb_dot_dir):
1446         * podcast/rb-podcast-manager.c:
1447         (rb_podcast_manager_download_file_info_cb): remove directory creation
1448         race condition.
1450         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1451         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1452         directory creation. Fixes #347743
1454 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1456         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1457         Strip trailing whitespace
1459 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1461         * rhythmdb/Makefile.am:
1462         * rhythmdb/rhythmdb-private.h:
1463         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1464         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1465         * rhythmdb/rhythmdb-tree.h:
1466         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1467         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1468         * rhythmdb/rhythmdb.h:
1469         Rather than aborting, show an error and refuse to load the database when
1470         it appears to come from the future.  From bug #350304.
1472 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1474         * bindings/python/rhythmdb.override:
1475         Make entry_foreach usable.
1477 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1479         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1480         Scale the icon so it matches the rest of the sources.
1481         Fixes #351410.
1483 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1485         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1486         (rhythmdb_property_model_set_query_model_internal),
1487         (rhythmdb_property_model_row_inserted_cb),
1488         (rhythmdb_property_model_prop_changed_cb),
1489         (rhythmdb_property_model_entry_removed_cb),
1490         (rhythmdb_property_model_delete),
1491         (rhythmdb_property_model_perform_sync):
1492         Use the hash table to track hidden entries, rather than visible
1493         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1495 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1497         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1498         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1500 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1502         * sources/rb-ipod-source.c: (add_rb_playlist),
1503         (impl_move_to_trash), (impl_delete_thyself):
1504         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1506         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1507         Make sure we don't leave the sourcelist thinking a deleted source is
1508         still playing.  Fixes nothing.
1510 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1512         * shell/rb-shell.c:
1513         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1514         'Music->Import Folder' menu item for better icon theme coverage.
1515         Fixes #354575.
1517 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1519         * rhythmdb/rhythmdb-private.h:
1520         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1521         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1522         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1523         (rhythmdb_load), (rhythmdb_save_async):
1524         Use a limited thread pool for adding URIs to the database.
1525         Fixes #352494.
1527 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1529         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1530         Do something like the previous change, but for gstreamer 0.10
1531         this time.  Oops.  Really fixes #349569.
1533 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1535         * backends/gstreamer/rb-player-gst.c: (error_cb):
1536         Ignore 'internal data flow error' messages if we've already got an
1537         error for the file.  Fixes #349569.
1539 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1541         * shell/rb-shell-clipboard.c:
1542         (rb_shell_clipboard_playlist_deleted_cb):
1543         Rebuild 'add to playlist' menu before removing actions for deleted
1544         playlists, and don't unref the action, as we never had a reference on
1545         it to begin with.  Fixes #354599.
1547 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1549         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1550         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1551         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1553 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1555         * daapsharing/rb-daap-connection.c: (handle_playlists):
1556         Reverse the list of playlists on the DAAP server so it ends up in the
1557         right order.  Fixes #353926.
1559 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1561         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1562         Fully process each code so the LIRC client returns to its normal state
1563         when we're done.  Makes LIRC actually work properly for me.
1565 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1567         patch by: Ed Catmur  <ed@catmur.co.uk>
1569         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1570         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1571         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1573 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1575         patch by: James Livingston <doclivingston@gmail.com>
1577         * configure.ac:
1578         * data/rhythmbox.schemas:
1579         * metadata/Makefile.am:
1580         * plugins/Makefile.am:
1581         * plugins/audiocd/.cvsignore:
1582         * plugins/audiocd/Makefile.am:
1583         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1584         * plugins/audiocd/rb-audiocd-plugin.c:
1585         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1586         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1587         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1588         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1589         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1590         (rb_audiocd_plugin_playing_uri_changed_cb),
1591         (nautilus_burn_drive_get_device),
1592         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1593         (impl_activate), (_delete_cb), (impl_deactivate):
1594         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1595         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1596         * shell/main.c: (main):
1597         * shell/rb-removable-media-manager.c:
1598         (rb_removable_media_manager_finalize),
1599         (rb_removable_media_manager_load_media),
1600         (rb_removable_media_manager_mount_volume),
1601         (rb_removable_media_manager_scan):
1602         * sources/Makefile.am:
1603         * sources/rb-audiocd-source.c:
1604         * sources/rb-audiocd-source.h:
1605         Make auto CD support a plugin.
1607         Fixes #349415.
1609 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1611         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1612         Add a final rhythmdb_commit to make sure all songs from the share show
1613         up in the daap source.  Fixes #353913.
1615 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1617         * sources/rb-sourcelist-model.c:
1618         (rb_sourcelist_model_drag_data_received),
1619         (rb_sourcelist_model_row_drop_possible):
1620         Re-enable dragging of a set of tracks to the source list to create a
1621         new static playlist.  Fixes #353893.
1623 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1625         * widgets/bacon-volume.c: (cb_button_timeout):
1626         Actually drop the GDK lock, rather than returning while holding it.
1627         Fixes #353895.
1629 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1631         * plugins/generic-player/rb-generic-player-source.c:
1632         (rb_generic_player_source_constructor),
1633         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1634         (rb_generic_player_source_load_songs), (load_playlist_file),
1635         (default_load_playlists), (get_hal_context):
1636         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1637         Fixes #353483.
1639 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1641         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1642         Canonicalise URIs received from gnome-vfs file monitor.
1643         Fixes #353447.
1645 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1647         * help/C/rhythmbox.xml: unbreak help build
1648         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1649         Unbuffer the IO channel.  Fixes some weirdness for me.
1651 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1653         * help/C/rhythmbox.xml:
1654         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1655         (impl_activate), (impl_deactivate):
1656         Add 'playpause' LIRC command.
1658 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1660         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1661         (rb_source_finalize):
1662         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1663         when disconnecting generic audio players.
1665 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1667         patch by: Paolo Borelli  <pborelli@katamail.com>
1669         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1670         Fix a small leak.
1672 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1674         * backends/gstreamer/rb-player-gst.c:
1675         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1676         Don't actually disable the seek bar for non-seekable songs,
1677         because we can't reliably tell yet.
1679 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1681         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1682         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1683         (db_entry_deleted_cb), (rb_daap_share_server_start),
1684         (rb_daap_share_server_stop):
1685         * rhythmdb/rhythmdb-private.h:
1686         * rhythmdb/rhythmdb-tree.c: (save_entry):
1687         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1688         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1689         (rhythmdb_entry_get_ulong):
1690         * rhythmdb/rhythmdb.h:
1691         Give db entries a numeric ID property, replacing the daap server's
1692         entry->id map.  From #347665.
1694 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1696         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1697         * widgets/rb-header.c: (rb_header_class_init),
1698         (rb_header_set_property), (rb_header_get_property),
1699         (rb_header_set_playing_entry), (rb_header_sync),
1700         (rb_header_sync_time):
1701         * widgets/rb-header.h:
1702         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1703         insensitive when the player backend tells us we can't seek in the
1704         current song.  From #330410.
1706 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1708         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1709         Don't try to unref previous/next entries if they aren't there.
1710         Fixes #351806.
1712 2006-08-15  James Livingston  <doclivingston@gmail.com>
1714         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1715         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1716         mountpoint into a RBRefString and compare equality of those, rather
1717         than doign lots of strcmp()s.
1719         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1720         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1721         status notification as well as the visibility update in an idle
1722         callback. Makes it take much less time to update after a volume
1723         mount/unmount event.
1725 2006-08-15  James Livingston  <doclivingston@gmail.com>
1727         patch by: Christian Becke  <christianbecke@web.de>
1729         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1730         multiple selections in the Import Folder dialog. Fixes #351414.
1732 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1734         * shell/rb-shell.c: (construct_widgets):
1735         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1736         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1737         (rb_statusbar_get_property), (rb_statusbar_new):
1738         * shell/rb-statusbar.h:
1739         Use the connect-proxy signal from the UI manager, which covers all
1740         action groups, rather than just one.  Fixes #351280.
1742 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1744         * widgets/rb-library-browser.c: (rebuild_child_model):
1745         Fix query model reference counts (bug #349601).
1747 2006-08-15  James Livingston  <doclivingston@gmail.com>
1749         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1750         Error signals be non-recursive. Fixes a highly-unlikely issue that
1751         could have caused #322972.
1753 2006-08-14  James Livingston  <doclivingston@gmail.com>
1755         * sources/rb-auto-playlist-source.c:
1756         (rb_auto_playlist_source_init):
1757         * sources/rb-static-playlist-source.c:
1758         (rb_static_playlist_source_init):
1760 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1762         * sources/rb-browser-source.c:
1763         * sources/rb-import-errors-source.c:
1764         * sources/rb-iradio-source.c:
1765         * sources/rb-library-source.c:
1766         * sources/rb-missing-files-source.c:
1767         * sources/rb-play-queue-source.c:
1768         * sources/rb-playlist-source.c:
1769         * sources/rb-podcast-source.c:
1770         * sources/rb-source.c:
1771         Make entry-type a property on RBSource, rather than on most of its
1772         subclasses.  Fixes #347288.
1774 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1776         * remote/dbus/rb-client.c: (parse_pattern),
1777         (create_rb_shell_proxies), (main):
1778         Actually implement %ag and %aG (genre) for --print-playing-format
1780 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1782         * lib/rb-debug.c: (rb_debug_real):
1783         No point allocating a buffer for the timestamp when we can just put it
1784         on the stack.
1786 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1788         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1789         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1791 2006-08-11  James Livingston  <doclivingston@gmail.com>
1793         * podcast/rb-podcast-manager.c:
1794         (rb_podcast_manager_update_synctime): fix accidental commit in the
1795         last, which caused a warning.
1797 2006-08-11  James Livingston  <doclivingston@gmail.com>
1799         * data/rhythmbox.schemas:
1800         * podcast/rb-podcast-manager.c:
1801         (rb_podcast_manager_update_synctime): change the schema's
1802         update-inteval value from 0 to 1, which causes it to update on
1803         startup, rather than never. Should fixs #343818.
1805 2006-08-11  James Livingston  <doclivingston@gmail.com>
1807         * configure.ac:
1808         * data/Makefile.am:
1809         - data/rhythmbox.desktop.in:
1810         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1811         the @VERSION@ can be substituted in. Fix some issues with newer
1812         bug-buddy versions. Fixes #348853.
1814 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1816         * data/rhythmbox.schemas:
1817         * plugins/Makefile.am:
1818         * plugins/artdisplay/Makefile.am:
1819         * plugins/audioscrobbler/Makefile.am:
1820         * plugins/cd-recorder/Makefile.am:
1821         * plugins/generic-player/Makefile.am:
1822         * plugins/ipod/Makefile.am:
1823         * plugins/lirc/Makefile.am:
1824         * plugins/lyrics/Makefile.am:
1825         * plugins/pythonconsole/Makefile.am:
1826         * plugins/rb-module.c:
1827         * plugins/rb-module.h:
1828         * plugins/rb-plugin-manager.c: (configure_button_cb),
1829         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1830         (plugin_manager_populate_lists), (plugin_manager_set_active),
1831         (plugin_manager_toggle_active),
1832         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1833         (rb_plugin_manager_finalize):
1834         * plugins/rb-plugin-manager.h:
1835         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1836         (rb_plugin_find_file):
1837         * plugins/rb-plugin.h:
1838         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1839         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1840         (rb_plugins_engine_init), (rb_plugin_info_free),
1841         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1842         (rb_plugins_engine_deactivate_plugin),
1843         (rb_plugins_engine_plugin_is_active),
1844         (rb_plugins_engine_plugin_is_visible),
1845         (rb_plugins_engine_plugin_is_configurable),
1846         (rb_plugins_engine_configure_plugin),
1847         (rb_plugins_engine_get_plugin_name),
1848         (rb_plugins_engine_get_plugin_description),
1849         (rb_plugins_engine_get_plugin_authors),
1850         (rb_plugins_engine_get_plugin_website),
1851         (rb_plugins_engine_get_plugin_copyright),
1852         (rb_plugins_engine_get_plugin_icon):
1853         * plugins/rb-plugins-engine.h:
1854         * plugins/rb-python-module.c: (rb_python_module_init_python),
1855         (rb_python_module_load), (rb_python_module_unload),
1856         (rb_python_module_class_init), (rb_python_module_new),
1857         (finalise_collect_cb), (rb_python_shutdown):
1858         * plugins/rb-python-module.h:
1859         * plugins/rb-python-plugin.c: (call_python_method),
1860         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1861         (impl_is_configurable), (rb_python_object_get_type):
1862         * plugins/rb-python-plugin.h:
1863         * plugins/rb/Makefile.am:
1865         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1866         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1867         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1868         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1869         special case loading of dirs.  Install plugins to subdirectors of
1870         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1871         not DATADIR.  Fixes #350352
1873 2006-08-10  James Livingston  <doclivingston@gmail.com>
1875         * daapsharing/rb-daap-connection.c: (connection_connected),
1876         (connection_disconnected), (connection_operation_done):
1877         * daapsharing/rb-daap-share.c: (name_collision_cb):
1878         * plugins/generic-player/rb-generic-player-source.c:
1879         (rb_generic_player_source_load_playlists):
1880         * podcast/rb-podcast-manager.c:
1881         (rb_podcast_manager_download_entry),
1882         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1883         (end_job), (rb_podcast_manager_event_loop):
1884         * rhythmdb/rhythmdb-property-model.c:
1885         (rhythmdb_property_model_perform_sync):
1886         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1887         (rhythmdb_query_model_process_update), (idle_process_update),
1888         (rhythmdb_query_model_reapply_query_cb):
1889         * shell/rb-play-order.c: (sync_playing_entry_cb):
1890         * shell/rb-removable-media-manager.c:
1891         (rb_removable_media_manager_load_media):
1892         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1893         (rb_shell_clipboard_sync),
1894         (rb_shell_clipboard_entryview_changed_cb),
1895         (rb_shell_clipboard_entries_changed_cb),
1896         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1897         (rebuild_playlist_menu_idle),
1898         (rb_shell_clipboard_playlist_added_cb):
1899         * shell/rb-shell-player.c: (notify_playing_idle),
1900         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1901         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1902         (rb_shell_quit):
1903         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1904         * sources/rb-library-source.c: (add_child_sources_idle):
1905         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1906         (burn_cd_idle):
1907         * sources/rb-source.c: (update_visibility_idle):
1908         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1909         (cb_button_press):
1910         * widgets/rb-druid.c: (idle_set_sensitive):
1911         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1912         take the GDK lock when we should be, from #348588
1914 2006-08-09  James Livingston  <doclivingston@gmail.com>
1916         * rhythmdb/rhythmdb-property-model.c:
1917         (rhythmdb_property_model_get_path),
1918         (rhythmdb_property_model_get_value),
1919         (rhythmdb_property_model_iter_next): don't attempt to verify the
1920         iterator if it's the All value, since it isn't valid. Fixes a
1921         potential crasher.
1923 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1925         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1926         (rb_podcast_manager_download_file_info_cb),
1927         (rb_podcast_manager_abort_download), (download_info_free),
1928         (download_info_new):
1929         Use gnome_vfs_async_get_file_info to figure out the local filename for
1930         a podcast episode, so we get the filename from the target of any
1931         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1932         the query string, then append it later, to stop gnome-vfs from
1933         converting 'http://' to 'http:/'.  If the local filename ends with the
1934         query string, remove it.  Fixes #330766 and #321991.
1936 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1938         * sources/rb-library-source.c: (impl_want_uri):
1939         * sources/rb-static-playlist-source.c: (impl_want_uri):
1940         Treat sftp:// URIs as likely indicators of songness.
1942 2006-08-07  James Livingston  <doclivingston@gmail.com>
1944         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1945         remote tracks with GStreamer 0.10, and remember their visibility like
1946         local ones.
1948 2006-08-07  James Livingston  <doclivingston@gmail.com>
1950         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1951         apparently it's a borrowed reference. Should fix #347072.
1953 2006-08-06  James Livingston  <doclivingston@gmail.com>
1955         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1956         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1957         (rb_shuffle_play_order_get_previous),
1958         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1959         (remove_from_history), (add_randomly_to_history),
1960         (rb_shuffle_sync_history_with_query_model),
1961         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1962         (query_model_and_history_contents_match): remove the tentatative
1963         history stuff, which is from older code, like we did for -random a few
1964         weeks ago.
1966 2006-08-06  James Livingston  <doclivingston@gmail.com>
1968         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1969         (rb_queue_play_order_get_previous):
1970         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1971         (rb_random_play_order_go_next),
1972         (rb_random_play_order_get_previous), (rb_random_db_changed):
1973         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1974         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1975         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1976         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1977         (rb_shuffle_entry_removed),
1978         (query_model_and_history_contents_match):
1979         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1980         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1981         (default_has_next), (default_has_previous),
1982         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1983         various play orders, after reviewing the code. Should fix #349601.
1985 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1987         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1988         Pass the items_per_notification parameter to
1989         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1990         with some versions of python.
1992 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1994         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1995         Don't try to draw the icon if the drawable area is too small.
1996         Fixes #349838.
1998 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
2000         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
2002         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
2004 2006-08-05  James Livingston  <doclivingston@gmail.com>
2006         * configure.ac: tell libtool not to check for C++/fortran/ etc
2007         compilers
2009         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
2010         watch, to fix some gconf warnings.
2012 2006-08-04  James Livingston  <doclivingston@gmail.com>
2014         patch by: William Jon McCann  <mccann@jhu.edu>
2016         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
2018 2006-08-04  James Livingston  <doclivingston@gmail.com>
2020         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
2021         actually fix #349722 this time
2023 2006-08-04  James Livingston  <doclivingston@gmail.com>
2025         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
2026         to seach for local art from http:// URIs, or those gnome-vfs doesn't
2027         know about. Fixes #348571.
2029 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
2031         various fixes for valgrind complaints:
2032         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
2033         (init_rb_tree_dnd_data):
2034           free the associated target list, too
2035         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
2036           initialize allocation.{x,y,width,height} correctly
2037         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
2038         (rb_entry_view_constructor):
2039           free strings when no longer needed
2041 2006-08-03  James Livingston  <doclivingston@gmail.com>
2043         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
2044         real GtkTreeModel not the filter. Fixes #349722
2046 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2048         * backends/gstreamer/rb-player-gst.c:
2049         Only use DAAP seek hacks for GStreamer 0.8 builds.
2051         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
2052         (rb_daap_src_open):
2053         * daapsharing/rb-daap-src.h:
2054         Implement normal GStreamer seeking for GStreamer 0.10 builds.
2056         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2057         (rb_daap_source_get_headers):
2058         * sources/rb-daap-source.h:
2059         Reimplement rb_daap_source_get_headers for the case where we've
2060         already got the byte offset.  Add a small hack to
2061         rb_daap_source_class_init to prevent the linker from dropping
2062         rb-daap-src.o entirely.
2064         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
2066 2006-08-02  James Livingston  <doclivingston@gmail.com>
2068         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
2069         (handle_song_listing), (handle_playlist_entries),
2070         (rb_daap_connection_dispose):
2071         * sources/rb-daap-source.c: (_add_location_to_playlist),
2072         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
2073         for playlist URIs, not pointless duplicate strings. From #347425.
2075 2006-08-02  James Livingston  <doclivingston@gmail.com>
2077         * data/rhythmbox.schemas:
2078         * lib/rb-preferences.h:
2079         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
2080         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
2081         (plugin_manager_set_active), (plugin_manager_toggle_active),
2082         (plugin_manager_get_selected_plugin), (name_search_cb),
2083         (plugin_manager_construct_tree), (rb_plugin_manager_new),
2084         (rb_plugin_manager_finalize):
2085         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
2086         (rb_plugins_engine_load_all), (rb_plugin_info_free),
2087         (rb_plugins_engine_plugin_is_visible),
2088         (rb_plugins_engine_plugin_visible_cb):
2089         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
2090         per-user plugins, and 2) hide plugins from the manager UI. From #349395
2092 2006-08-02  James Livingston  <doclivingston@gmail.com>
2094         * sources/rb-sourcelist-model.c:
2095         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
2096         drop on a source. Fixes #349580.
2098 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2100         * configure.ac:
2101         * daapsharing/rb-daap-dialog.c:
2102         * daapsharing/rb-daap-dialog.h:
2103         * shell/Makefile.am:
2104         * sources/Makefile.am:
2105         * sources/rb-daap-source.c: (connection_auth_cb),
2106         (rb_daap_source_connection_cb), (rb_daap_source_activate):
2107         Add gnome-keyring support for DAAP passwords and use
2108         gnome-password-dialog instead of our own.  
2109         Patch mostly by James Livingston.  Fixes bug #330346.
2111 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2113         * shell/rb-shell-player.c:
2114         (rb_shell_player_set_playing_source_internal),
2115         (rb_shell_player_sync_with_selected_source):
2116         Remove call to rb_source_have_url, as we never did anything with the
2117         result.
2119         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2120         * sources/rb-import-errors-source.c:
2121         (rb_import_errors_source_class_init):
2122         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2123         (impl_song_properties), (impl_want_uri), (impl_add_uri):
2124         * sources/rb-library-source.c: (rb_library_source_class_init),
2125         (impl_want_uri), (impl_add_uri):
2126         * sources/rb-missing-files-source.c:
2127         (rb_missing_files_source_class_init):
2128         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2129         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2130         (impl_want_uri), (impl_add_uri):
2131         * sources/rb-source.c: (rb_source_class_init),
2132         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
2133         * sources/rb-source.h:
2134         * sources/rb-static-playlist-source.c:
2135         (rb_static_playlist_source_class_init), (search_action_changed),
2136         (impl_want_uri):
2137         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
2138         When adding a URI, want_uri gets called for each source; the one that
2139         wants it most gets the URI passed to its add_uri method.
2140         
2141         * shell/rb-shell.h:
2142         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
2143         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
2144         (handle_playlist_entry_cb), (rb_shell_load_uri):
2145         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2146         Use want_uri and add_uri to simplify and make generic
2147         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
2149         If a source that returns TRUE from try_playlist wants all the URIs in
2150         the playlist, give it the playlist URI instead.  This retains the
2151         existing behaviour for adding iradio playlists.
2153         * bindings/python/rb.defs: Update for above changes.
2155         From bug #347097.
2157 2006-07-31  James Livingston  <doclivingston@gmail.com>
2159         * data/Makefile.am:
2160         * data/generate-keys.sh: fix the build I broke with the last commit.
2161         Oops.
2163 2006-07-31  James Livingston  <doclivingston@gmail.com>
2165         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
2166         in a long time. Fixes #349179.
2168 2006-07-30  James Livingston  <doclivingston@gmail.com>
2170         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
2171         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2172         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
2174 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2176         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2177         Don't tell the browser the query is still pending when doing a subset
2178         search.  Fixes #348617 again.
2180 2006-07-30  James Livingston  <doclivingston@gmail.com>
2182         * bindings/python/rb.override: remove an extraneous _wrap_ from the
2183         override definition. Fixes #348893.
2185 2006-07-30  James Livingston  <doclivingston@gmail.com>
2187         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
2188         rb_error_dialog, as it's above this in the stack.
2190         * lib/rb-util.c: (rb_gvalue_compare):
2191         * lib/rb-util.h: change the return type to int, as we're returning
2192         -1/0/1
2194         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
2195         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2196         (rb_query_creator_set_sorting): minor leak fixes
2198 2006-07-28  James Livingston  <doclivingston@gmail.com>
2200         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2201         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
2202         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
2203         (get_or_create_genre), (remove_entry_from_album),
2204         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2205         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
2206         (rhythmdb_tree_entry_lookup_by_location),
2207         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2208         (rhythmdb_hash_tree_foreach),
2209         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
2210         threadsafe. Fix a nasty problem if the _foreach callback function
2211         caused the addition/removal of entries.
2213 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2215         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
2216         Clear selection before changing our idea of the model.  Fixes crashes
2217         on model changes while playing.
2219 2006-07-27  James Livingston  <doclivingston@gmail.com>
2221         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
2222         a missing rb_refstring_unref.
2224         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2225         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
2226         oops. should hopefully fix the crash reported on #347425.
2228 2006-07-27  James Livingston  <doclivingston@gmail.com>
2230         * backends/gstreamer/rb-encoder-gst.c:
2231         (get_profile_from_mime_type): fix encoding error issue, from #310774.
2233         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
2234         thread-safety issue.
2236 2006-07-27  James Livingston  <doclivingston@gmail.com>
2238         * rhythmdb/rb-refstring.c: (rb_refstring_find):
2239         * rhythmdb/rb-refstring.h: add a new function which returns the
2240         RBRefString that matches a string, but never creates a new one.
2242         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2243         (monitor_entry_file), (rhythmdb_check_changed_file),
2244         (rhythmdb_directory_change_cb):
2245         * rhythmdb/rhythmdb-private.h:
2246         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2247         (unparent_entries), (free_unknown_entries),
2248         (rhythmdb_tree_parser_start_element),
2249         (rhythmdb_tree_parser_end_element), (save_entry),
2250         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
2251         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2252         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
2253         (rhythmdb_tree_entry_type_registered):
2254         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
2255         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
2256         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
2257         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2258         (rhythmdb_process_metadata_load),
2259         (rhythmdb_process_file_created_or_modified),
2260         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
2261         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2262         (action_thread_main), (rhythmdb_entry_set_internal),
2263         (rhythmdb_entry_move_to_trash_set_error),
2264         (rhythmdb_entry_move_to_trash),
2265         (rhythmdb_entry_lookup_by_location),
2266         (rhythmdb_entry_lookup_by_location_refstring),
2267         (default_sync_metadata), (rhythmdb_entry_get_string),
2268         (rhythmdb_entry_get_refstring):
2269         * rhythmdb/rhythmdb.h:
2270         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
2271         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2272         (rb_playlist_source_row_deleted),
2273         (rb_playlist_source_entry_added_cb),
2274         (rb_playlist_source_location_in_map),
2275         (rb_playlist_source_add_to_map): Make the LOCATION field of
2276         RhythmDBEntry be a RBRefString instead, which reduces some of the
2277         memory-fragmentation on startup and saves RBStaticPlaylistSource
2278         duplicating all the strings.
2280 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2282         * rhythmdb/rhythmdb-query-model.c:
2283         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
2284         * rhythmdb/rhythmdb-query-model.h:
2285         Add function to copy contents from one query model to another,
2286         filtered by the destination model's query.
2288         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2289         Use the above to create a new query model for subset searches, rather
2290         than filtering the existing model. Fixes #348617.
2292 2006-07-25  James Livingston  <doclivingston@gmail.com>
2294         * rhythmdb/rhythmdb-query-model.c:
2295         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2296         lost from static playlists. Yet again. Fixes #323095.
2298         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2299         case for the above, so that we should know if a change will break it
2300         again.
2302 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2304         * data/rhythmbox.schemas: Fix for last commit.
2306         * podcast/rb-podcast-manager.c:
2307         (rb_podcast_manager_download_entry),
2308         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2309         (rb_podcast_manager_db_entry_deleted_cb):
2310         * rhythmdb/rhythmdb-property-model.c:
2311         (rhythmdb_property_model_set_query_model_internal),
2312         (rhythmdb_property_model_set_property),
2313         (rhythmdb_property_model_finalize),
2314         (rhythmdb_property_model_drag_data_get):
2315         * rhythmdb/rhythmdb-query-model.c:
2316         (rhythmdb_query_model_set_query_internal),
2317         (rhythmdb_query_model_set_property),
2318         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2319         * rhythmdb/rhythmdb-query-model.h:
2320         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2321         (rb_browser_source_do_query):
2322         * sources/rb-import-errors-source.c:
2323         (rb_import_errors_source_constructor):
2324         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2325         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2326         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2327         (impl_search), (impl_get_status),
2328         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2329         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2330         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2331         * sources/rb-missing-files-source.c:
2332         (rb_missing_files_source_constructor),
2333         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2334         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2335         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2336         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2337         (rb_playlist_source_save_playlist),
2338         (rb_playlist_source_new_from_xml),
2339         (rb_playlist_source_save_to_xml),
2340         (rb_playlist_source_setup_entry_view),
2341         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2342         (rb_playlist_source_get_query_model),
2343         (rb_playlist_source_mark_dirty),
2344         (rb_playlist_source_location_in_map),
2345         (rb_playlist_source_add_to_map):
2346         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2347         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2348         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2349         (impl_delete), (rb_podcast_source_state_prefs_sync),
2350         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2351         (impl_get_config_widget), (rb_podcast_source_add_feed),
2352         (rb_podcast_source_cmd_download_post),
2353         (rb_podcast_source_cmd_cancel_download),
2354         (rb_podcast_source_cmd_delete_feed),
2355         (rb_podcast_source_cmd_update_feed),
2356         (rb_podcast_source_cmd_update_all),
2357         (rb_podcast_source_cb_interval_changed_cb),
2358         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2359         (rb_podcast_source_entry_activated_cb):
2360         * sources/rb-source.c: (rb_source_finalize),
2361         (rb_source_set_query_model_internal), (rb_source_set_property),
2362         (default_get_status):
2363         * sources/rb-static-playlist-source.c:
2364         (rb_static_playlist_source_dispose),
2365         (rb_static_playlist_source_finalize),
2366         (rb_static_playlist_source_constructor),
2367         (rb_static_playlist_source_do_query):
2368         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2369         (rb_entry_view_set_shell_player_internal),
2370         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2371         (rb_entry_view_set_model), (rb_entry_view_append_column),
2372         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2373         (rb_entry_view_set_state):
2374         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2375         (rb_library_browser_finalize), (rb_library_browser_new),
2376         (update_browser_property_visibilty), (view_selection_reset_cb),
2377         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2378         (restore_selection), (rebuild_child_model),
2379         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2380         * widgets/rb-property-view.c:
2381         (rb_property_view_set_model_internal),
2382         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2383         (rb_property_view_get_model), (rb_property_view_set_model),
2384         (rb_property_view_get_num_properties),
2385         (rb_property_view_set_selection),
2386         (rb_property_view_append_column_custom),
2387         (rb_property_view_set_search_func):
2388         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2389         From #347446
2391 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2393         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2394         Work around a small n-c-b API change.
2396 2006-07-25  James Livingston  <doclivingston@gmail.com>
2398         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2400         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2401         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2402         aborting entry-emission on finalise
2404 2006-07-25  James Livingston  <doclivingston@gmail.com>
2406         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2407         warning when entry is NULL.
2409 2006-07-25  James Livingston  <doclivingston@gmail.com>
2411         * help/sv/.cvsignore:
2412         * lib/.cvsignore:
2413         * plugins/generic-player/.cvsignore:
2414         * remote/.cvsignore:
2415         * remote/dbus/.cvsignore:
2416         * shell/.cvsignore:
2417         * tests/.cvsignore: more .cvsignore updates
2419 2006-07-24  James Livingston  <doclivingston@gmail.com>
2421         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2422         (transparent_expose_event), (make_transparent_again),
2423         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2424         apply a patch for EggTrayIcon so that it handled transparent panels
2425         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2426         Fixes #348208.
2428 2006-07-24  James Livingston  <doclivingston@gmail.com>
2430         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2431         queries rather than taking ownership when parsing a subquery. Fixed a
2432         crash exposed by the recent leak fixes.
2434         * doc/reference/tmpl/disclosure-widget.sgml:
2435         * doc/reference/tmpl/rb-debug.sgml:
2436         * doc/reference/tmpl/rb-metadata.sgml:
2437         * doc/reference/tmpl/rb-play-order.sgml:
2438         * doc/reference/tmpl/rb-playlist-manager.sgml:
2439         * doc/reference/tmpl/rb-playlist-source.sgml:
2440         * doc/reference/tmpl/rb-shell-player.sgml:
2441         * doc/reference/tmpl/rb-shell.sgml:
2442         * doc/reference/tmpl/rb-song-display-box.sgml:
2443         * doc/reference/tmpl/rhythmbox-unused.sgml:
2444         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2446 2006-07-24  James Livingston  <doclivingston@gmail.com>
2448         * lib/.cvsignore:
2449         * plugins/artdisplay/.cvsignore:
2450         * plugins/artdisplay/artdisplay/.cvsignore:
2451         * plugins/lyrics/.cvsignore:
2452         * plugins/pythonconsole/.cvsignore:
2453         * plugins/rb/.cvsignore: add/update various .cvsignore files
2455 2006-07-24  James Livingston  <doclivingston@gmail.com>
2457         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2458         (rb_refstring_ref): don't emit critical warnings when the refstring
2459         is NULL, as that happens often for podcast metadata.
2461         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2462         missing rhythmdb_entry_ref call
2464 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2466         * bindings/python/rb.override:
2467         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2468         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2469         (playlist_row_inserted_cb):
2470         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2471         * plugins/rb-plugin-manager.c:
2472         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2473         (rb_podcast_manager_copy_post),
2474         (rb_podcast_manager_db_entry_deleted_cb),
2475         (rb_podcast_manager_insert_feed):
2476         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2477         (rb_refstring_ref), (rb_refstring_get_sort_key):
2478         * rhythmdb/rhythmdb-private.h:
2479         * rhythmdb/rhythmdb-property-model.c:
2480         (rhythmdb_property_model_set_property),
2481         (rhythmdb_property_model_get_property),
2482         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2483         (rhythmdb_property_model_row_inserted_cb),
2484         (rhythmdb_property_model_prop_changed_cb),
2485         (rhythmdb_property_model_compare),
2486         (rhythmdb_property_model_insert),
2487         (rhythmdb_property_model_iter_from_string),
2488         (rhythmdb_property_model_get_column_type),
2489         (rhythmdb_property_model_get_iter),
2490         (rhythmdb_property_model_get_value),
2491         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2492         (rhythmdb_property_model_enable_drag):
2493         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2494         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2495         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2496         (rhythmdb_query_model_chain),
2497         (rhythmdb_query_model_entry_added_cb),
2498         (rhythmdb_query_model_entry_changed_cb),
2499         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2500         (rhythmdb_query_model_add_entry),
2501         (rhythmdb_query_model_insert_into_main_list),
2502         (rhythmdb_query_model_insert_into_limited_list),
2503         (rhythmdb_query_model_remove_from_main_list),
2504         (rhythmdb_query_model_remove_from_limited_list),
2505         (rhythmdb_query_model_update_limited_entries),
2506         (rhythmdb_query_model_emit_reorder),
2507         (rhythmdb_query_model_do_reorder),
2508         (rhythmdb_query_model_do_insert),
2509         (rhythmdb_query_model_move_entry),
2510         (rhythmdb_query_model_remove_entry),
2511         (rhythmdb_query_model_entry_to_iter),
2512         (rhythmdb_query_model_iter_to_entry),
2513         (rhythmdb_query_model_get_previous_from_entry),
2514         (rhythmdb_query_model_row_draggable),
2515         (rhythmdb_query_model_drag_data_delete),
2516         (rhythmdb_query_model_drag_data_get),
2517         (rhythmdb_query_model_drag_data_received),
2518         (rhythmdb_query_model_row_drop_possible),
2519         (rhythmdb_query_model_row_drop_position),
2520         (rhythmdb_query_model_add_results),
2521         (rhythmdb_query_model_query_complete),
2522         (rhythmdb_query_model_get_column_type),
2523         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2524         (rhythmdb_query_model_iter_nth_child),
2525         (apply_updated_entry_sequence),
2526         (rhythmdb_query_model_child_index_to_base_index),
2527         (rhythmdb_query_model_get_entry_index),
2528         (rhythmdb_query_model_base_row_inserted),
2529         (rhythmdb_query_model_base_row_deleted),
2530         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2531         (rhythmdb_query_model_location_sort_func),
2532         (rhythmdb_query_model_title_sort_func),
2533         (rhythmdb_query_model_album_sort_func),
2534         (rhythmdb_query_model_artist_sort_func),
2535         (rhythmdb_query_model_track_sort_func),
2536         (rhythmdb_query_model_double_ceiling_sort_func),
2537         (rhythmdb_query_model_ulong_sort_func),
2538         (rhythmdb_query_model_date_sort_func),
2539         (rhythmdb_query_model_string_sort_func),
2540         (rhythmdb_query_model_within_limit):
2541         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2542         (rhythmdb_tree_parser_start_element),
2543         (rhythmdb_tree_parser_end_element),
2544         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2545         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2546         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2547         (save_entry_uint64), (save_entry_double), (save_entry),
2548         (set_entry_album), (rhythmdb_tree_entry_new),
2549         (get_genres_hash_for_type), (get_or_create_genre),
2550         (get_or_create_artist), (get_or_create_album), (remove_child),
2551         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2552         (rhythmdb_tree_entry_delete), (remove_one_song),
2553         (rhythmdb_tree_entry_delete_by_type),
2554         (rhythmdb_tree_evaluate_query), (search_match_properties),
2555         (evaluate_conjunctive_subquery), (do_conjunction),
2556         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2557         (conjunctive_query_albums), (conjunctive_query_artists),
2558         (conjunctive_query_genre), (conjunctive_query),
2559         (split_query_by_disjunctions), (do_query_recurse),
2560         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2561         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2562         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2563         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2564         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2565         (extract_gtype_from_enum_entry),
2566         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2567         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2568         (rhythmdb_event_free), (rhythmdb_finalize),
2569         (rhythmdb_set_property), (rhythmdb_get_property),
2570         (rhythmdb_thread_create), (free_entry_changes),
2571         (emit_entry_changed), (sync_entry_changed),
2572         (process_added_entries_cb), (process_deleted_entries_cb),
2573         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2574         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2575         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2576         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2577         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2578         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2579         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2580         (rhythmdb_process_metadata_load),
2581         (rhythmdb_process_file_created_or_modified),
2582         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2583         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2584         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2585         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2586         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2587         (record_entry_change), (rhythmdb_entry_set_internal),
2588         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2589         (rhythmdb_entry_move_to_trash_cb),
2590         (rhythmdb_entry_move_to_trash_set_error),
2591         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2592         (rhythmdb_nice_elt_name_from_propid),
2593         (rhythmdb_propid_from_nice_elt_name),
2594         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2595         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2596         (rhythmdb_compute_status_normal), (default_sync_metadata),
2597         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2598         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2599         (podcast_get_playback_uri), (podcast_data_destroy),
2600         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2601         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2602         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2603         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2604         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2605         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2606         * rhythmdb/rhythmdb.h:
2607         * shell/rb-play-order-linear-loop.c:
2608         (rb_linear_play_order_loop_get_next),
2609         (rb_linear_play_order_loop_get_previous):
2610         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2611         (rb_linear_play_order_get_previous):
2612         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2613         * shell/rb-play-order-random.c: (get_query_model_contents):
2614         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2615         (get_query_model_contents):
2616         * shell/rb-play-order.c: (rb_play_order_constructor),
2617         (rb_play_order_finalize),
2618         (rb_play_order_set_playing_entry_internal),
2619         (rb_play_order_set_property), (rb_play_order_new),
2620         (rb_play_order_get_player), (rb_play_order_get_source),
2621         (rb_play_order_get_db), (rb_play_order_get_query_model),
2622         (rb_play_order_player_is_playing),
2623         (rb_play_order_set_playing_entry),
2624         (rb_play_order_get_playing_entry),
2625         (rb_play_order_playing_source_changed),
2626         (rb_play_order_query_model_changed),
2627         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2628         (default_has_next), (default_has_previous),
2629         (sync_playing_entry_cb), (default_playing_entry_removed),
2630         (rb_play_order_has_next), (rb_play_order_get_next),
2631         (rb_play_order_go_next), (rb_play_order_has_previous),
2632         (rb_play_order_get_previous), (rb_play_order_go_previous),
2633         (rb_play_order_model_not_empty),
2634         (rb_play_order_update_have_next_previous):
2635         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2636         (rb_playlist_manager_save_playlists),
2637         (rb_playlist_manager_set_automatic_playlist),
2638         (rb_playlist_manager_cmd_edit_automatic_playlist),
2639         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2640         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2641         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2642         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2643         (volume_pre_unmount_cb), (reemit_playing_signal),
2644         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2645         (rb_shell_player_handle_eos_unlocked),
2646         (rb_shell_player_handle_eos), (rb_shell_player_init),
2647         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2648         (playlist_entry_cb), (rb_shell_player_open_entry),
2649         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2650         (rb_shell_player_set_play_order),
2651         (rb_shell_player_set_playback_state),
2652         (rb_shell_player_sync_play_order),
2653         (rb_shell_player_play_order_update_cb),
2654         (rb_shell_player_jump_to_current), (swap_playing_source),
2655         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2656         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2657         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2658         (rb_shell_player_entry_activated_cb),
2659         (rb_shell_player_property_row_activated_cb),
2660         (rb_shell_player_entry_changed_cb),
2661         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2662         (rb_shell_player_pause),
2663         (rb_shell_player_get_playing_song_duration),
2664         (rb_shell_player_error), (error_cb), (tick_cb),
2665         (info_available_cb), (buffering_cb),
2666         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2667         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2668         (rb_shell_jump_to_current):
2669         * sources/rb-auto-playlist-source.c:
2670         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2671         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2672         (rb_auto_playlist_source_get_query):
2673         * sources/rb-auto-playlist-source.h:
2674         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2675         * sources/rb-import-errors-source.c:
2676         (rb_import_errors_source_constructor):
2677         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2678         * sources/rb-library-source.c: (filepath_parse_pattern):
2679         * sources/rb-missing-files-source.c:
2680         (rb_missing_files_source_constructor):
2681         * sources/rb-play-queue-source.c:
2682         (rb_play_queue_source_clear_queue),
2683         (rb_play_queue_source_track_info_cell_data_func):
2684         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2685         (rb_playlist_source_get_property), (playlist_iter_func),
2686         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2687         (rb_playlist_source_track_cell_data_func):
2688         * sources/rb-podcast-source.c: (construct_query_from_selection),
2689         (rb_podcast_source_post_status_cell_data_func),
2690         (rb_podcast_source_post_feed_cell_data_func),
2691         (rb_podcast_source_feed_title_search_func),
2692         (rb_podcast_source_post_date_cell_data_func):
2693         * sources/rb-source.c: (default_get_status),
2694         (rb_source_get_status), (rb_source_browser_toggled),
2695         (rb_source_update_play_statistics), (rb_source_search),
2696         (rb_source_get_config_widget), (default_add_to_queue),
2697         (rb_source_add_to_queue), (rb_source_receive_drag),
2698         (rb_source_gather_hash_keys):
2699         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2700         (rb_sourcelist_model_is_row_visible),
2701         (rb_sourcelist_model_row_is_separator),
2702         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2703         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2704         (rb_sourcelist_model_drag_data_get):
2705         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2706         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2707         (rb_sourcelist_visible_source_to_iter),
2708         (rb_sourcelist_edit_source_name), (set_source_playing),
2709         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2710         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2711         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2712         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2713         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2714         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2715         (rb_static_playlist_source_add_location_internal),
2716         (rb_static_playlist_source_row_inserted):
2717         * widgets/rb-entry-view.c: (type_ahead_search_func),
2718         (rb_entry_view_finalize), (rb_entry_view_set_model),
2719         (rb_entry_view_playing_cell_data_func),
2720         (rb_entry_view_rating_cell_data_func),
2721         (rb_entry_view_long_cell_data_func),
2722         (rb_entry_view_play_count_cell_data_func),
2723         (rb_entry_view_duration_cell_data_func),
2724         (rb_entry_view_year_cell_data_func),
2725         (rb_entry_view_quality_cell_data_func),
2726         (rb_entry_view_location_cell_data_func),
2727         (rb_entry_view_string_cell_data_func),
2728         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2729         (rb_entry_view_get_sorting_order),
2730         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2731         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2732         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2733         (rb_entry_view_playing_song_changed), (harvest_entries),
2734         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2735         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2736         (set_column_visibility):
2737         * widgets/rb-entry-view.h:
2738         * widgets/rb-header.c: (rb_header_new),
2739         (rb_header_set_playing_entry), (rb_header_set_title):
2740         * widgets/rb-library-browser.c: (rebuild_child_model),
2741         (rb_library_browser_set_model):
2742         * widgets/rb-property-view.c:
2743         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2744         (rb_property_view_set_property), (rb_property_view_get_property),
2745         (rb_property_view_reset), (rb_property_view_get_model),
2746         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2747         (rb_property_view_button_press_cb):
2748         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2749         (rb_query_creator_get_property), (rb_query_creator_load_query),
2750         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2751         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2752         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2753         (lookup_row_by_widget), (remove_button_click_cb),
2754         (add_button_click_cb), (create_property_option_menu):
2755         * widgets/rb-song-info.c: (rb_song_info_constructor),
2756         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2757         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2758         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2759         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2761 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2763         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2764         (rb_shell_player_get_property):
2765         Add a property providing access to the player backend object.
2767 2006-07-23  James Livingston  <doclivingston@gmail.com>
2769         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2770         (get_history), (rb_random_filter_history),
2771         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2772         remove the tentative history, since it appears to be a remanent from
2773         older play order code. The only thing it was doing was using up
2774         CPU-time and memory. From #345857
2776 2006-07-23  James Livingston  <doclivingston@gmail.com>
2778         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2780         * shell/main.c: (main):
2781         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2782         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2783         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2784         (rb_playlist_manager_load_playlists),
2785         (rb_playlist_manager_save_data):
2786         * shell/rb-playlist-manager.h:
2787         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2788         (rb_shell_get_property), (rb_shell_sync_state),
2789         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2790         (construct_sources), (idle_handle_load_complete):
2791         * shell/rb-shell.h: Add a command-line option for changing the
2792         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2794 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2796         * daapsharing/rb-daap-share.c: (databases_cb):
2797         Make sure we set status codes on HTTP responses.
2799 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2801         * configure.ac:
2802         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2803         (chunked_message_finished), (send_chunked_file),
2804         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2805         Use GMappedFile to send local files to DAAP clients where possible.  
2806         iTunes can't seek properly in files sent using chunked transfer 
2807         encoding.  Also remove the useless bitrate calculation code, as we
2808         never even used the result anyway.  From #330410.
2810 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2812         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2814         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2815         Enable multiple selection for 'import file'.  Fixes #347478.
2817 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2819         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2820         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2821         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2822         Fixes #348098.
2824 2006-07-20  James Livingston  <doclivingston@gmail.com>
2826         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2827         aren't NULL before calling strstr. Fixes #347998.
2829 2006-07-19  James Livingston  <doclivingston@gmail.com>
2831         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2833         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2834         MB that only have years. Fixes #347906.
2836 2006-07-19  James Livingston  <doclivingston@gmail.com>
2838         * rhythmdb/rhythmdb-private.h:
2839         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2840         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2841         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2842         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2843         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2844         (rhythmdb_execute_stat), (queue_stat_uri),
2845         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2846         (rhythmdb_load), (rhythmdb_entry_register_type),
2847         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2848         asynchronous vfs operations, and cancel them when shutting down the
2849         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2851         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2852         (test_rhythmdb_shutdown): wait until the db has been finalised before
2853         continuing on to the next test.
2855 2006-07-19  James Livingston  <doclivingston@gmail.com>
2857         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2858         right thing in the #ifdef. From #347832.
2860 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2862         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2863         Fix compile warning.
2865 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2867         * rhythmdb/rhythmdb-query-model.c:
2868         (rhythmdb_query_model_set_property),
2869         (rhythmdb_query_model_reapply_query_cb):
2870         Ignore old query == new query case.
2871         Fixes auto playlists with time-relative queries.
2873         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2874         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2875         (rhythmdb_query_to_string):
2876         * rhythmdb/rhythmdb.h:
2877         Add debug helper for printing queries in case someone needs it again.
2879 2006-07-18  James Livingston  <doclivingston@gmail.com>
2881         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2882         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2883         Fixes #347832
2885         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2886         write then into files.
2888 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2890         * daapsharing/rb-daap-connection.c:
2891         (rb_daap_connection_set_property):
2892         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2893         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2894         (add_playlist_to_mlcl), (databases_cb):
2895         * daapsharing/rb-daap-sharing.c: (create_share):
2896         * iradio/rb-new-station-dialog.c:
2897         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2898         * iradio/rb-station-properties-dialog.c:
2899         (rb_station_properties_dialog_finalize),
2900         (rb_station_properties_dialog_set_property),
2901         (rb_station_properties_dialog_get_current_entry):
2902         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2903         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2904         * plugins/generic-player/rb-generic-player-source.c:
2905         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2906         (handle_playlist_entry_cb):
2907         * plugins/generic-player/rb-nokia770-source.c:
2908         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2909         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2910         (visit_playlist_dirs), (hal_udi_is_psp):
2911         * podcast/rb-podcast-manager.c:
2912         * podcast/rb-podcast-properties-dialog.c:
2913         (rb_podcast_properties_dialog_finalize),
2914         (rb_podcast_properties_dialog_set_entry_view),
2915         (rb_podcast_properties_dialog_set_property):
2916         * rhythmdb/rhythmdb-property-model.c:
2917         * rhythmdb/rhythmdb-query-model.c:
2918         (rhythmdb_query_model_set_property),
2919         (rhythmdb_query_model_reapply_query_cb):
2920         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2921         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2922         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2923         (rhythmdb_event_free), (rhythmdb_shutdown),
2924         (rhythmdb_thread_create), (action_thread_main),
2925         (rhythmdb_do_full_query_async_parsed),
2926         (rhythmdb_do_full_query_internal):
2927         * shell/main.c: (main):
2928         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2929         * shell/rb-play-order.c: (rb_play_order_finalize),
2930         (rb_play_order_set_player),
2931         (rb_play_order_set_playing_entry_internal),
2932         (rb_play_order_set_property),
2933         (rb_play_order_playing_source_changed),
2934         (rb_play_order_query_model_changed):
2935         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2936         (rb_playlist_manager_set_source),
2937         (rb_playlist_manager_set_shell_internal),
2938         (rb_playlist_manager_set_property):
2939         * shell/rb-removable-media-manager.c:
2940         (rb_removable_media_manager_set_property),
2941         (rb_removable_media_manager_set_uimanager),
2942         (rb_removable_media_manager_cmd_eject_medium),
2943         (rb_removable_media_manager_cmd_copy_tracks):
2944         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2945         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2946         (rb_shell_clipboard_set),
2947         (rb_shell_clipboard_cmd_add_to_playlist_new),
2948         (rb_shell_clipboard_playlist_add_cb),
2949         (rb_shell_clipboard_playlist_renamed_cb),
2950         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2951         (rebuild_playlist_menu):
2952         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2953         (rb_shell_player_set_queue_source_internal),
2954         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2955         (rb_shell_player_entry_activated_cb),
2956         (rb_shell_player_property_row_activated_cb),
2957         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2958         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2959         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2960         (rb_shell_finalize), (construct_widgets),
2961         (rb_shell_playing_from_queue_cb),
2962         (rb_shell_player_stream_song_changed_cb),
2963         (rb_shell_player_volume_changed_cb):
2964         * shell/rb-statusbar.c: (rb_statusbar_new):
2965         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2966         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2967         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2968         * sources/rb-auto-playlist-source.c:
2969         (rb_auto_playlist_source_class_init),
2970         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2971         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2972         (rb_auto_playlist_source_do_query),
2973         (rb_auto_playlist_source_set_query),
2974         (rb_auto_playlist_source_browser_changed_cb),
2975         (search_action_changed):
2976         * sources/rb-auto-playlist-source.h:
2977         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2978         (search_action_changed), (rb_browser_source_constructor),
2979         (rb_browser_source_cmd_choose_artist), (impl_delete),
2980         (rb_browser_source_browser_changed_cb),
2981         (rb_browser_source_do_query):
2982         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2983         (rb_daap_source_finalize), (rb_daap_source_class_init),
2984         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2985         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2986         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2987         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2988         (rb_daap_source_get_headers):
2989         * sources/rb-import-errors-source.c:
2990         (rb_import_errors_source_constructor),
2991         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2992         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2993         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2994         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2995         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2996         (impl_paste), (impl_receive_drag):
2997         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2998         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2999         (impl_song_properties):
3000         * sources/rb-library-source.c: (rb_library_source_constructor),
3001         (rb_library_source_new), (impl_paste),
3002         (rb_library_source_add_child_source):
3003         * sources/rb-missing-files-source.c: (impl_delete),
3004         (impl_get_status):
3005         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
3006         (rb_play_queue_source_class_init),
3007         (rb_play_queue_source_constructor):
3008         * sources/rb-playlist-source.c: (rb_playlist_source_init),
3009         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
3010         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
3011         (rb_playlist_source_new_from_xml),
3012         (rb_playlist_source_save_to_xml):
3013         * sources/rb-podcast-source.c: (rb_podcast_source_init),
3014         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
3015         (search_action_changed), (rb_podcast_source_constructor),
3016         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3017         (construct_query_from_selection),
3018         (rb_podcast_source_cmd_download_post),
3019         (rb_podcast_source_cmd_cancel_download),
3020         (rb_podcast_source_cmd_delete_feed),
3021         (rb_podcast_source_start_download_cb),
3022         (rb_podcast_source_finish_download_cb),
3023         (rb_podcast_source_feed_updates_avaliable_cb),
3024         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
3025         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3026         (impl_get_status):
3027         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3028         * sources/rb-source.c: (rb_source_get_property),
3029         (default_add_to_queue), (default_move_to_trash),
3030         (_rb_source_show_popup), (rb_source_gather_selected_properties),
3031         (_rb_source_register_action_group):
3032         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
3033         (rb_sourcelist_model_is_row_visible),
3034         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3035         (rb_sourcelist_model_row_draggable),
3036         (rb_sourcelist_model_drag_data_get):
3037         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
3038         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
3039         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
3040         (visibility_notify_cb):
3041         * sources/rb-static-playlist-source.c:
3042         (rb_static_playlist_source_class_init),
3043         (rb_static_playlist_source_init),
3044         (rb_static_playlist_source_finalize),
3045         (rb_static_playlist_source_constructor), (impl_delete),
3046         (rb_static_playlist_source_browser_changed_cb),
3047         (rb_static_playlist_source_add_location_internal),
3048         (search_action_changed):
3049         * sources/rb-static-playlist-source.h:
3050         * widgets/rb-druid.c:
3051         * widgets/rb-entry-view.c:
3052         (rb_entry_view_set_shell_player_internal),
3053         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
3054         (rb_entry_view_get_property), (rb_entry_view_new),
3055         (rb_entry_view_button_press_cb):
3056         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
3057         (rb_library_browser_set_property),
3058         (rb_library_browser_get_property):
3059         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
3060         (get_entry_for_property), (get_property_index_from_proptype):
3061         * widgets/rb-song-info.c: (rb_song_info_constructor),
3062         (rb_song_info_finalize), (rb_song_info_set_source_internal),
3063         (rb_song_info_set_property), (rb_song_info_get_property):
3065         More leak and reference counting fixes.  From bug #347446.
3067 2006-07-17  James Livingston  <doclivingston@gmail.com>
3069         * sources/rb-auto-playlist-source.c:
3070         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
3071         rather than setting the base model, as that lets us not import all the
3072         entries from the base model. This fixes some issues whether the search
3073         box wasn't filting automatic playlists.
3075 2006-07-17  James Livingston  <doclivingston@gmail.com>
3077         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
3078         error, which caused blacklist creation to fail.
3080 2006-07-17  James Livingston  <doclivingston@gmail.com>
3082         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
3083         running with -n, because we don't start it then. Fixes a crash on
3084         exit.
3086 2006-07-17  James Livingston  <doclivingston@gmail.com>
3088         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3090         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
3091         Save not Open for the button. Fixes #345816
3093 2006-07-17  James Livingston  <doclivingston@gmail.com>
3095         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3097         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
3098         when track transfer is disabled. Fixes #347705
3100 2006-07-17  James Livingston  <doclivingston@gmail.com>
3102         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3104         * sources/rb-library-source.c: (impl_get_config_widget): fix build
3105         with track transfer disabled. Fixes #347705
3107 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3109         * rhythmdb/rhythmdb-query-model.c:
3110         (rhythmdb_query_model_set_property):
3111         * shell/main.c: (main):
3112         * shell/rb-shell-clipboard.c: (unset_source_internal),
3113         (rb_shell_clipboard_finalize),
3114         (rb_shell_clipboard_set_source_internal),
3115         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
3116         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
3117         (rb_shell_player_set_db_internal),
3118         (rb_shell_player_set_queue_source_internal),
3119         (rb_shell_player_finalize), (rb_shell_player_set_property):
3120         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
3121         * sources/rb-auto-playlist-source.c:
3122         (rb_auto_playlist_source_constructor),
3123         (rb_auto_playlist_source_new_from_xml):
3124         * sources/rb-daap-source.c: (create_pixbufs):
3125         * sources/rb-ipod-source.c:
3126         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
3127         * sources/rb-library-source.c:
3128         (rb_library_source_add_child_source):
3129         * sources/rb-play-queue-source.c:
3130         (rb_play_queue_sync_playing_state),
3131         (rb_play_queue_source_track_info_cell_data_func):
3132         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3133         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
3134         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
3135         (impl_can_add_to_queue), (impl_add_to_queue):
3136         * sources/rb-source.c: (rb_source_set_property):
3137         * sources/rb-sourcelist.c: (rb_sourcelist_append):
3138         * sources/rb-static-playlist-source.c:
3139         (rb_static_playlist_source_constructor),
3140         (rb_static_playlist_source_load_from_xml):
3141         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3142         * widgets/rb-entry-view.c: (rb_entry_view_init),
3143         (rb_entry_view_finalize), (rb_entry_view_append_column),
3144         (rb_entry_view_constructor):
3145         * widgets/rb-song-info.c: (rb_song_info_set_property):
3146         Fix leaks.  From bug #347446.
3148 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3150         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
3151         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
3152         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
3153         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
3154         (add_decoding_pipeline), (profile_bin_find_encoder),
3155         (get_profile_from_mime_type), (extract_track), (transcode_track),
3156         (rb_encoder_gst_encode):
3157         * backends/gstreamer/rb-encoder-gst.h:
3158         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
3159         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3160         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
3161         (rb_player_gst_construct):
3162         * backends/gstreamer/rb-player-gst.h:
3163         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
3164         * backends/rb-encoder.h:
3165         * backends/rb-player.c: (_rb_player_emit_tick):
3166         * backends/rb-player.h:
3167         * daapsharing/rb-daap-connection.c: (build_message),
3168         (actual_http_response_handler), (http_response_handler),
3169         (http_get), (entry_set_string_prop), (emit_progress_idle),
3170         (handle_server_info), (handle_database_info),
3171         (handle_song_listing), (handle_playlists),
3172         (handle_playlist_entries), (rb_daap_connection_new),
3173         (connected_cb), (rb_daap_connection_do_something),
3174         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
3175         (rb_daap_connection_get_property):
3176         * daapsharing/rb-daap-connection.h:
3177         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
3178         (rb_daap_collision_dialog_new_run):
3179         * daapsharing/rb-daap-dialog.h:
3180         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
3181         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
3182         (DigestToString), (rb_daap_hash_generate):
3183         * daapsharing/rb-daap-hash.h:
3184         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3185         (resolve_cb), (browse_cb):
3186         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
3187         (resolve_cb), (rb_daap_mdns_browser_resolve),
3188         (rb_daap_mdns_browser_start), (resolver_free):
3189         * daapsharing/rb-daap-mdns-browser.h:
3190         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
3191         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
3192         (publish_cb):
3193         * daapsharing/rb-daap-mdns-publisher.h:
3194         * daapsharing/rb-daap-share.c: (name_collision_cb),
3195         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
3196         (message_set_from_rb_daap_structure), (content_codes_cb),
3197         (session_id_validate), (logout_cb), (update_cb),
3198         (add_entry_to_mlcl), (add_playlist_to_mlcl),
3199         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
3200         (rb_daap_share_server_start), (rb_daap_share_server_stop),
3201         (rb_daap_share_publish_start):
3202         * daapsharing/rb-daap-share.h:
3203         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
3204         (share_password_changed_cb), (rb_daap_sharing_shutdown):
3205         * daapsharing/rb-daap-sharing.h:
3206         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
3207         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
3208         (rb_daap_src_open):
3209         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
3210         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
3211         (rb_daap_structure_parse_container_buffer),
3212         (rb_daap_structure_parse), (gnode_find_node),
3213         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
3214         (print_rb_daap_item):
3215         * daapsharing/rb-daap-structure.h:
3216         * iradio/rb-new-station-dialog.c:
3217         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
3218         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
3219         (rb_new_station_dialog_text_changed):
3220         * iradio/rb-station-properties-dialog.c:
3221         (rb_station_properties_dialog_init),
3222         (rb_station_properties_dialog_new),
3223         (rb_station_properties_dialog_response_cb),
3224         (rb_station_properties_dialog_get_current_entry),
3225         (rb_station_properties_dialog_rated_cb),
3226         (rb_station_properties_dialog_update_rating),
3227         (rb_station_properties_dialog_update_playback_error),
3228         (rb_station_properties_dialog_sync_entries):
3229         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
3230         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
3231         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
3232         (rb_metadata_can_save), (rb_metadata_save):
3233         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
3234         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
3235         (_handle_message), (_new_connection), (main):
3236         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
3237         (rb_metadata_dbus_read_from_message):
3238         * metadata/rb-metadata-dbus.h:
3239         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
3240         (rb_add_id3_tagger), (rb_metadata_init),
3241         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
3242         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
3243         (rb_metadata_gst_new_decoded_pad_cb),
3244         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3245         * metadata/sj-error.c: (sj_error_quark):
3246         * metadata/sj-error.h:
3247         * metadata/sj-metadata-musicbrainz.c:
3248         (sj_metadata_musicbrainz_instance_init),
3249         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
3250         (get_rdf), (lookup_cd):
3251         * metadata/sj-metadata.c: (sj_metadata_get_type):
3252         * metadata/sj-structures.c:
3253         * metadata/sj-structures.h:
3254         * metadata/test-metadata.c: (load_metadata_cb), (main):
3255         * podcast/rb-feed-podcast-properties-dialog.c:
3256         (rb_feed_podcast_properties_dialog_init),
3257         (rb_feed_podcast_properties_dialog_update_title):
3258         * podcast/rb-feed-podcast-properties-dialog.h:
3259         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3260         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
3261         (rb_new_podcast_dialog_text_changed):
3262         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3263         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3264         (rb_podcast_manager_set_property),
3265         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
3266         (rb_podcast_manager_download_entry),
3267         (rb_podcast_manager_update_feeds),
3268         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
3269         (rb_podcast_manager_copy_post),
3270         (rb_podcast_manager_thread_parse_feed),
3271         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
3272         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
3273         (download_info_free), (download_info_new), (start_job),
3274         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
3275         (download_progress_cb), (download_progress_update_cb),
3276         (rb_podcast_manager_remove_feed),
3277         (rb_podcast_manager_db_entry_deleted_cb),
3278         (rb_podcast_manager_cancel_download),
3279         (rb_podcast_manager_update_synctime),
3280         (rb_podcast_manager_set_remove_files),
3281         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3282         (rb_podcast_manager_abort_subscribe),
3283         (rb_podcast_manager_get_podcast_dir):
3284         * podcast/rb-podcast-manager.h:
3285         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
3286         (rb_validate_channel_propert), (rb_validate_item_propert),
3287         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3288         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3289         (rb_podcast_parse_date), (rb_podcast_parse_time),
3290         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3291         * podcast/rb-podcast-parse.h:
3292         * podcast/rb-podcast-properties-dialog.c:
3293         (rb_podcast_properties_dialog_init),
3294         (rb_podcast_properties_dialog_get_current_entry),
3295         (rb_podcast_properties_dialog_update_title),
3296         (rb_podcast_properties_dialog_update_duration),
3297         (rb_podcast_properties_dialog_update_date):
3298         * podcast/rb-podcast-properties-dialog.h:
3299         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3300         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3301         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3302         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3303         (g_sequence_search), (g_sequence_set_aggregate_data),
3304         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3305         (find_min), (g_sequence_node_find_by_pos),
3306         (g_sequence_node_find_closest), (g_sequence_node_free),
3307         (g_sequence_node_split), (g_sequence_node_insert_before),
3308         (g_sequence_node_get_length), (g_sequence_node_remove),
3309         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3310         (g_sequence_calc_tree_height):
3311         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3312         (rb_refstring_get):
3313         * rhythmdb/rb-refstring.h:
3314         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3315         (rhythmdb_gda_init), (dump_model), (execute_query),
3316         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3317         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3318         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3319         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3320         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3321         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3322         * rhythmdb/rhythmdb-gda.h:
3323         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3324         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3325         (monitor_library_directory), (rhythmdb_check_changed_file),
3326         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3327         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3328         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3329         * rhythmdb/rhythmdb-private.h:
3330         * rhythmdb/rhythmdb-property-model.c:
3331         (rhythmdb_property_model_set_property),
3332         (rhythmdb_property_model_row_inserted_cb),
3333         (rhythmdb_property_model_prop_changed_cb),
3334         (rhythmdb_property_model_compare),
3335         (rhythmdb_property_model_get_value),
3336         (rhythmdb_property_model_iter_nth_child),
3337         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3338         (rhythmdb_property_model_drag_data_get),
3339         (rhythmdb_property_model_enable_drag),
3340         (rhythmdb_property_model_column_get_type):
3341         * rhythmdb/rhythmdb-property-model.h:
3342         * rhythmdb/rhythmdb-query-model.c:
3343         (rhythmdb_query_model_class_init),
3344         (rhythmdb_query_model_set_property),
3345         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3346         (rhythmdb_query_model_has_pending_changes),
3347         (rhythmdb_query_model_entry_changed_cb),
3348         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3349         (rhythmdb_query_model_add_entry),
3350         (rhythmdb_query_model_remove_from_main_list),
3351         (rhythmdb_query_model_remove_entry),
3352         (rhythmdb_query_model_drag_data_received),
3353         (rhythmdb_query_model_row_drop_possible),
3354         (rhythmdb_query_model_compute_status_normal),
3355         (rhythmdb_query_model_set_sort_order),
3356         (rhythmdb_query_model_get_entry_index),
3357         (rhythmdb_query_model_base_row_inserted),
3358         (rhythmdb_query_model_base_row_deleted),
3359         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3360         (rhythmdb_query_model_date_sort_func),
3361         (rhythmdb_query_model_within_limit):
3362         * rhythmdb/rhythmdb-query-model.h:
3363         * rhythmdb/rhythmdb-query-results.c:
3364         (rhythmdb_query_results_query_complete):
3365         * rhythmdb/rhythmdb-query-results.h:
3366         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3367         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3368         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3369         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3370         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3371         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3372         (rhythmdb_tree_parser_start_element),
3373         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3374         (save_entry), (save_entry_type), (save_unknown_entry_type),
3375         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3376         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3377         (get_or_create_genre), (remove_entry_from_album),
3378         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3379         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3380         (search_match_properties), (evaluate_conjunctive_subquery),
3381         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3382         (conjunctive_query_artists), (conjunctive_query_genre),
3383         (conjunctive_query), (split_query_by_disjunctions),
3384         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3385         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3386         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3387         (rhythmdb_hash_tree_foreach),
3388         (rhythmdb_tree_entry_type_registered):
3389         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3390         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3391         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3392         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3393         (rhythmdb_shutdown), (rhythmdb_finalize),
3394         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3395         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3396         (rhythmdb_entry_example_new),
3397         (set_metadata_string_default_unknown), (is_ghost_entry),
3398         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3399         (rhythmdb_process_metadata_load),
3400         (rhythmdb_process_queued_entry_set_event),
3401         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3402         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3403         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3404         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3405         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3406         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3407         (rhythmdb_entry_delete_by_type),
3408         (rhythmdb_propid_from_nice_elt_name),
3409         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3410         (rhythmdb_compute_status_normal),
3411         (rhythmdb_entry_register_type_alias),
3412         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3413         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3414         (rhythmdb_entry_import_error_get_type),
3415         (rhythmdb_entry_podcast_post_get_type),
3416         (rhythmdb_entry_podcast_feed_get_type),
3417         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3418         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3419         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3420         * rhythmdb/rhythmdb.h:
3421         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3422         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3423         (rb_history_limit_size):
3424         * shell/rb-history.h:
3425         * shell/rb-play-order-linear-loop.c:
3426         (rb_linear_play_order_loop_get_next):
3427         * shell/rb-play-order-linear-loop.h:
3428         * shell/rb-play-order-linear.c:
3429         * shell/rb-play-order-linear.h:
3430         * shell/rb-play-order-queue.c:
3431         (rb_queue_play_order_playing_entry_removed):
3432         * shell/rb-play-order-queue.h:
3433         * shell/rb-play-order-random-by-age-and-rating.c:
3434         * shell/rb-play-order-random-by-age-and-rating.h:
3435         * shell/rb-play-order-random-by-age.c:
3436         (rb_random_by_age_get_entry_weight):
3437         * shell/rb-play-order-random-by-age.h:
3438         * shell/rb-play-order-random-by-rating.c:
3439         * shell/rb-play-order-random-by-rating.h:
3440         * shell/rb-play-order-random-equal-weights.c:
3441         * shell/rb-play-order-random-equal-weights.h:
3442         * shell/rb-play-order-random.c: (rb_random_filter_history),
3443         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3444         (rb_random_db_changed), (rb_random_playing_entry_changed),
3445         (rb_random_db_entry_deleted):
3446         * shell/rb-play-order-shuffle.c: (remove_from_history),
3447         (add_randomly_to_history), (get_query_model_contents),
3448         (rb_shuffle_playing_entry_changed):
3449         * shell/rb-play-order-shuffle.h:
3450         * shell/rb-play-order.c: (rb_play_order_class_init),
3451         (rb_play_order_set_property),
3452         (rb_play_order_playing_source_changed),
3453         (rb_play_order_query_model_changed_cb),
3454         (rb_play_order_query_model_changed),
3455         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3456         * shell/rb-play-order.h:
3457         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3458         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3459         (rb_playlist_manager_set_property),
3460         (rb_playlist_manager_parse_file),
3461         (rb_playlist_manager_load_playlists),
3462         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3463         (rb_playlist_manager_save_playlists),
3464         (rb_playlist_manager_new_playlist),
3465         (rb_playlist_manager_new_playlist_from_selection_data),
3466         (rb_playlist_manager_cmd_new_automatic_playlist),
3467         (rb_playlist_manager_cmd_edit_automatic_playlist),
3468         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3469         (save_playlist_response_cb), (export_set_extension_cb),
3470         (filter_get_export_filter_label), (setup_format_menu),
3471         (rb_playlist_manager_cmd_save_playlist),
3472         (rb_playlist_manager_get_playlists),
3473         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3474         (rb_playlist_manager_delete_playlist),
3475         (rb_playlist_manager_export_playlist):
3476         * shell/rb-playlist-manager.h:
3477         * shell/rb-removable-media-manager.c:
3478         (rb_removable_media_manager_class_init),
3479         (rb_removable_media_manager_dispose),
3480         (rb_removable_media_manager_finalize),
3481         (rb_removable_media_manager_set_property),
3482         (split_drive_from_cdda_uri),
3483         (rb_removable_media_manager_playing_uri_changed_cb),
3484         (rb_removable_media_manager_load_media),
3485         (rb_removable_media_manager_volume_mounted_cb),
3486         (remove_volume_by_source),
3487         (rb_removable_media_manager_source_deleted_cb),
3488         (rb_removable_media_manager_volume_unmounted_cb),
3489         (rb_removable_media_manager_mount_volume),
3490         (rb_removable_media_manager_set_uimanager),
3491         (rb_removable_media_manager_scan), (do_transfer),
3492         (rb_removable_media_manager_cmd_copy_tracks):
3493         * shell/rb-removable-media-manager.h:
3494         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3495         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3496         (rb_shell_clipboard_sync),
3497         (rb_shell_clipboard_idle_poll_deletions),
3498         (rb_shell_clipboard_cmd_add_to_playlist_new),
3499         (rb_shell_clipboard_playlist_add_cb),
3500         (rb_shell_clipboard_playlist_deleted_cb),
3501         (rb_shell_clipboard_playlist_renamed_cb),
3502         (rb_shell_clipboard_playlist_visible_cb),
3503         (rb_shell_clipboard_playlist_added_cb):
3504         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3505         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3506         (rb_shell_player_init), (rb_shell_player_set_property),
3507         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3508         (rb_shell_player_open_location),
3509         (rb_shell_player_set_playing_entry),
3510         (rb_shell_player_play_order_update_cb),
3511         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3512         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3513         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3514         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3515         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3516         (gconf_song_position_slider_visibility_changed),
3517         (rb_shell_player_entry_activated_cb),
3518         (rb_shell_player_property_row_activated_cb),
3519         (rb_shell_player_entry_changed_cb),
3520         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3521         (actually_set_playing_source),
3522         (rb_shell_player_set_playing_source_internal),
3523         (rb_shell_player_get_playing_song_duration), (eos_cb),
3524         (rb_shell_player_error), (error_cb), (info_available_cb),
3525         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3526         (rb_shell_player_error_get_type):
3527         * shell/rb-shell-player.h:
3528         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3529         (rb_shell_preferences_append_page),
3530         (share_check_button_toggled_cb),
3531         (password_check_button_toggled_cb), (add_daap_preferences),
3532         (rb_shell_preferences_column_check_changed_cb),
3533         (rb_shell_preferences_sync_column_button),
3534         (rb_shell_preferences_sync),
3535         (rb_shell_preferences_browser_views_activated_cb):
3536         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3537         (rb_shell_set_property), (rb_shell_get_property),
3538         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3539         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3540         (rb_shell_get_visibility), (rb_shell_set_visibility),
3541         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3542         (rb_shell_register_entry_type_for_source),
3543         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3544         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3545         (rb_shell_player_stream_song_changed_cb),
3546         (rb_shell_set_window_title),
3547         (rb_shell_view_smalldisplay_changed_cb),
3548         (rb_shell_view_queue_as_sidebar_changed_cb),
3549         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3550         (rb_shell_cmd_add_folder_to_library),
3551         (rb_shell_cmd_add_file_to_library),
3552         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3553         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3554         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3555         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3556         (handle_playlist_entry_cb), (rb_shell_load_uri),
3557         (rb_shell_add_to_queue), (rb_shell_present),
3558         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3559         (rb_shell_volume_widget_changed_cb),
3560         (rb_shell_player_volume_changed_cb),
3561         (rb_shell_ui_location_get_type):
3562         * shell/rb-shell.h:
3563         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3564         (rb_source_header_init), (rb_source_header_set_source_internal),
3565         (rb_source_state_sync), (rb_source_header_clear_search),
3566         (rb_source_header_view_browser_changed_cb):
3567         * shell/rb-source-header.h:
3568         * shell/rb-statusbar.c: (rb_statusbar_construct),
3569         (rb_statusbar_init), (rb_statusbar_finalize),
3570         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3571         (rb_statusbar_source_status_changed_cb):
3572         * shell/rb-statusbar.h:
3573         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3574         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3575         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3576         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3577         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3578         (rb_audiocd_create_track_entry):
3579         * sources/rb-auto-playlist-source.c:
3580         (rb_auto_playlist_source_class_init),
3581         (rb_auto_playlist_source_constructor),
3582         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3583         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3584         (rb_auto_playlist_source_query_complete_cb),
3585         (rb_auto_playlist_source_do_query),
3586         (rb_auto_playlist_source_set_query),
3587         (rb_auto_playlist_source_browser_changed_cb),
3588         (search_action_to_prop):
3589         * sources/rb-auto-playlist-source.h:
3590         * sources/rb-browser-source.c: (rb_browser_source_init),
3591         (rb_browser_source_dispose), (search_action_to_prop),
3592         (rb_browser_source_constructor),
3593         (rb_browser_source_cmd_choose_genre),
3594         (rb_browser_source_cmd_choose_artist),
3595         (rb_browser_source_cmd_choose_album), (impl_search),
3596         (rb_browser_source_browser_changed_cb),
3597         (rb_browser_source_do_query):
3598         * sources/rb-browser-source.h:
3599         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3600         (rb_daap_source_init), (rb_daap_source_dispose),
3601         (rb_daap_source_set_property), (start_browsing),
3602         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3603         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3604         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3605         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3606         * sources/rb-daap-source.h:
3607         * sources/rb-import-errors-source.h:
3608         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3609         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3610         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3611         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3612         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3613         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3614         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3615         (generate_ipod_filename), (ipod_path_from_unix_path),
3616         (impl_delete_thyself):
3617         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3618         (rb_iradio_source_init), (rb_iradio_source_constructor),
3619         (rb_iradio_source_new), (guess_uri_scheme),
3620         (rb_iradio_source_add_station),
3621         (rb_iradio_source_async_update_play_statistics),
3622         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3623         (stations_view_drag_data_received_cb),
3624         (rb_iradio_source_cmd_new_station):
3625         * sources/rb-iradio-source.h:
3626         * sources/rb-library-source.c: (rb_library_source_dispose),
3627         (rb_library_source_constructor),
3628         (rb_library_source_location_button_clicked_cb),
3629         (impl_get_config_widget), (rb_library_source_library_location_cb),
3630         (sanitize_path), (filepath_parse_pattern),
3631         (layout_example_label_update),
3632         (rb_library_source_layout_filename_changed), (build_filename),
3633         (impl_can_paste), (impl_paste),
3634         (rb_library_source_add_child_source),
3635         (rb_library_source_sync_child_sources):
3636         * sources/rb-library-source.h:
3637         * sources/rb-missing-files-source.h:
3638         * sources/rb-play-queue-source.c:
3639         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3640         * sources/rb-play-queue-source.h:
3641         * sources/rb-playlist-source-recorder.c:
3642         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3643         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3644         (rb_playlist_source_recorder_init),
3645         (rb_playlist_source_recorder_new):
3646         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3647         (rb_playlist_source_save_playlist),
3648         (rb_playlist_source_entry_added_cb),
3649         (rb_playlist_source_set_query_model),
3650         (rb_playlist_source_add_to_map):
3651         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3652         (rb_podcast_source_init), (rb_podcast_source_dispose),
3653         (rb_podcast_source_finalize), (search_action_to_prop),
3654         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3655         (rb_podcast_source_get_property), (rb_podcast_source_new),
3656         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3657         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3658         (rb_podcast_source_show_browser), (construct_query_from_selection),
3659         (rb_podcast_source_do_query), (impl_get_config_widget),
3660         (rb_podcast_source_btn_file_change_cb),
3661         (posts_view_drag_data_received_cb),
3662         (rb_podcast_source_cmd_download_post),
3663         (rb_podcast_source_cmd_cancel_download),
3664         (rb_podcast_source_cmd_delete_feed),
3665         (rb_podcast_source_cmd_properties_feed),
3666         (rb_podcast_source_cmd_update_feed),
3667         (rb_podcast_source_post_status_cell_data_func),
3668         (rb_podcast_source_post_feed_cell_data_func),
3669         (rb_podcast_source_post_date_cell_data_func),
3670         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3671         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3672         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3673         (impl_get_status):
3674         * sources/rb-podcast-source.h:
3675         * sources/rb-removable-media-source.c:
3676         (rb_removable_media_source_constructor):
3677         * sources/rb-removable-media-source.h:
3678         * sources/rb-source.h:
3679         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3680         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3681         (rb_sourcelist_model_row_is_separator),
3682         (rb_sourcelist_model_drag_data_received),
3683         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3684         (rb_sourcelist_model_row_drop_position),
3685         (rb_sourcelist_model_get_drag_target),
3686         (rb_sourcelist_model_row_draggable),
3687         (rb_sourcelist_model_drag_data_get),
3688         (rb_sourcelist_model_row_inserted_cb),
3689         (rb_sourcelist_model_get_group_path):
3690         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3691         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3692         (rb_sourcelist_visible_source_to_iter),
3693         (rb_sourcelist_edit_source_name),
3694         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3695         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3696         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3697         * sources/rb-static-playlist-source.c:
3698         (rb_static_playlist_source_class_init),
3699         (rb_static_playlist_source_constructor),
3700         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3701         (impl_search), (rb_static_playlist_source_do_query),
3702         (rb_static_playlist_source_browser_changed_cb),
3703         (impl_receive_drag), (impl_save_contents_to_xml),
3704         (rb_static_playlist_source_add_location_swapped),
3705         (search_action_to_prop):
3706         * sources/rb-static-playlist-source.h:
3707         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3708         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3709         (egg_tray_icon_get_orientation_property),
3710         (egg_tray_icon_send_manager_message),
3711         (egg_tray_icon_update_manager_window),
3712         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3713         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3714         * widgets/eggtrayicon.h:
3715         * widgets/rb-cell-renderer-pixbuf.c:
3716         (rb_cell_renderer_pixbuf_get_property),
3717         (rb_cell_renderer_pixbuf_set_property),
3718         (rb_cell_renderer_pixbuf_get_size),
3719         (rb_cell_renderer_pixbuf_render),
3720         (rb_cell_renderer_pixbuf_activate):
3721         * widgets/rb-cell-renderer-rating.c:
3722         (rb_cell_renderer_rating_class_init),
3723         (rb_cell_renderer_rating_get_property),
3724         (rb_cell_renderer_rating_set_property),
3725         (rb_cell_renderer_rating_get_size),
3726         (rb_cell_renderer_rating_render),
3727         (rb_cell_renderer_rating_activate):
3728         * widgets/rb-dialog.c:
3729         * widgets/rb-dialog.h:
3730         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3731         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3732         (rb_druid_page3_finish_cb):
3733         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3734         (rb_entry_view_init), (rb_entry_view_set_property),
3735         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3736         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3737         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3738         (rb_entry_view_set_sorting_order),
3739         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3740         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3741         (rb_entry_view_playing_song_changed),
3742         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3743         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3744         (rb_entry_view_set_fixed_column_width),
3745         (rb_entry_view_get_time_date_column_sample),
3746         (rb_entry_view_state_get_type):
3747         * widgets/rb-entry-view.h:
3748         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3749         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3750         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3751         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3752         (update_browser_property_visibilty),
3753         (rb_library_browser_construct_query), (restore_selection),
3754         (rebuild_child_model), (rb_library_browser_set_selection),
3755         (rb_library_browser_set_model):
3756         * widgets/rb-library-browser.h:
3757         * widgets/rb-property-view.c: (rb_property_view_class_init),
3758         (rb_property_view_set_property), (rb_property_view_reset),
3759         (rb_property_view_get_model), (rb_property_view_constructor),
3760         (rb_property_view_set_selection),
3761         (rb_property_view_selection_changed_cb),
3762         (rb_property_view_button_press_cb),
3763         (rb_property_view_set_search_func):
3764         * widgets/rb-query-creator-private.h:
3765         * widgets/rb-query-creator-properties.c:
3766         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3767         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3768         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3769         (relativeTimeCriteriaCreateWidget),
3770         (relativeTimeCriteriaSetWidgetData):
3771         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3772         (rb_query_creator_dispose), (rb_query_creator_load_query),
3773         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3774         (get_property_index_from_proptype), (select_criteria_from_value),
3775         (create_property_option_menu), (create_criteria_option_menu),
3776         (sort_option_menu_changed), (setup_sort_option_menu):
3777         * widgets/rb-query-creator.h:
3778         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3779         (rb_rating_render_stars):
3780         * widgets/rb-rating-helper.h:
3781         * widgets/rb-rating.c: (rb_rating_expose):
3782         * widgets/rb-rating.h:
3783         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3784         (rb_search_entry_timeout_cb):
3785         * widgets/rb-search-entry.h:
3786         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3787         (rb_song_info_constructor), (rb_song_info_new),
3788         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3789         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3790         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3791         (rb_song_info_query_model_changed_cb),
3792         (rb_song_info_sync_entries_multiple),
3793         (rb_song_info_sync_entry_single):
3794         Strip all trailing whitespace.  Fixes #344293.
3796 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3798         * doc/reference/Makefile.am: Fix GTK Doc Build
3800 2006-07-13  James Livingston  <doclivingston@gmail.com>
3802         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3804         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3805         instead of the LOCATION, and don't try to get the directory listing
3806         for http URI schemes
3808         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3809         invalid utf8 in the error message, since apparently it can happen.
3811 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3813         * sources/rb-import-errors-source.c:
3814         (rb_import_errors_source_class_init),
3815         (rb_import_errors_source_init),
3816         (rb_import_errors_source_constructor),
3817         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3818         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3819         * sources/rb-missing-files-source.c:
3820         (rb_missing_files_source_class_init),
3821         (rb_missing_files_source_init),
3822         (rb_missing_files_source_constructor),
3823         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3824         (rb_missing_files_source_songs_sort_order_changed_cb),
3825         (impl_get_status):
3826         * sources/rb-source.c: (rb_source_class_init),
3827         (rb_source_finalize), (update_visibility_idle),
3828         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3829         (rb_source_set_property), (rb_source_get_property),
3830         (default_get_status), (rb_source_update_play_statistics),
3831         (default_add_to_queue), (_rb_source_show_popup),
3832         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3833         (rb_source_gather_selected_properties),
3834         (_rb_source_register_action_group):
3835         * sources/rb-source.h:
3836         * sources/rb-sourcelist.c: (visibility_notify_cb):
3837         Don't use a fake model for import-errors and missing-files
3838         sources.  Add a new source property "hidden-when-empty".
3839         Update source visibility in an idle.  Clean up some whitespace.
3840         From bug #346800
3842 2006-07-12  James Livingston  <doclivingston@gmail.com>
3844         * bindings/python/rb.defs:
3845         * bindings/python/rb.override: bind rb_error_dialog
3847         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3848         the current working directory for uninstalled plugins, and add the
3849         class name to the method name.
3851 2006-07-12  James Livingston  <doclivingston@gmail.com>
3853         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3854         the sources EOF type if it's NULL. Fixes #346284.
3856 2006-07-12  James Livingston  <doclivingston@gmail.com>
3858         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3859         I accidently committed. Nothing to see here, move along...
3861 2006-07-11  James Livingston  <doclivingston@gmail.com>
3863         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3864         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3865         Unknown.
3867 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3869         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3871 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3873         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3874         Don't try to set mtime if we've deleted the entry.
3876 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3878         * bindings/python/rhythmdb.defs:
3879         * rhythmdb/rhythmdb.c:
3880         * rhythmdb/rhythmdb.h:
3881         * rhythmdb/rhythmdb-private.h:
3882         * rhythmdb/rhythmdb-query.c:
3883         Move data structures holding registered entry types inside the
3884         RhythmDB object, and add a vfunc called when new types are registered.
3885         Add a flag to RhythmDBEntryType specifying whether entries of the type
3886         should be saved to the on-disk database.
3888         * sources/rb-audiocd-source.c:
3889         * sources/rb-daap-source.c:
3890         * sources/rb-ipod-source.c:
3891         * plugins/generic-player/rb-generic-player-source.c:
3892         * plugins/generic-player/rb-nokia770-source.c:
3893         * plugins/generic-player/rb-psp-source.c:
3894         Adjust to the above changes.
3896         * rhythmdb/rhythmdb-tree.c:
3897         If the type for an entry hasn't been registered yet, store the entry's
3898         properties as-is, and convert them to a real entry when the type is
3899         registered.  If the type doesn't get registered, save the entry back
3900         to the database unmodified.  From #330226.
3902 2006-07-10  James Livingston  <doclivingston@gmail.com>
3904         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3905         os.path.unlink to os.unlink, so removing stuff works.
3907 2006-07-10  James Livingston  <doclivingston@gmail.com>
3909         patch by: Ed Catmur  <ed@catmur.co.uk>
3910               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3912         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3913         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3914         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3915         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3916         internals of the cover database and Amazon lookup engine, and add
3917         support for loading art from the local file system. Fixes #345688.
3919         * plugins/rb/Coroutine.py:
3920         * plugins/rb/Makefile.am:
3921         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3922         plugin classes.
3924 2006-07-10  James Livingston  <doclivingston@gmail.com>
3926         * tests/Makefile.am: don't run the benchmark when doing "make check"
3928         * po/POTFILES.in: more build fixes, from Matti Lindell
3929         <feenixx@hotmail.com>. Fixes #347049.
3932 2006-07-10  James Livingston  <doclivingston@gmail.com>
3934         * plugins/cd-recorder/Makefile.am: build fixes
3936         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3937         attempt to change properties if we couldn't create an entry.
3939         * shell/rb-source-header.c: (rb_source_header_init),
3940         (rb_source_header_view_browser_changed_cb),
3941         (rb_source_header_sync_control_state):
3942         * shell/rb-tray-icon.c:
3943         * widgets/Makefile.am:
3944         * widgets/disclosure-widget.c:
3945         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3946         widget, as it hasn't been used for a while.
3948 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3950         * Makefile.am:
3951         * configure.ac:
3952         * data/ui/rhythmbox-ui.xml:
3953         * plugins/Makefile.am:
3954         * plugins/cd-recorder/.cvsignore:
3955         * plugins/cd-recorder/Makefile.am:
3956         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3957         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3958         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3959         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3960         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3961         (playlist_row_inserted_cb), (update_source),
3962         (shell_selected_source_notify_cb), (impl_activate),
3963         (impl_deactivate):
3964         * shell/Makefile.am:
3965         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3966         (rb_playlist_manager_cmd_save_playlist):
3967         * shell/rb-shell.c: (rb_shell_select_source):
3968         * sources/Makefile.am:
3969         * sources/rb-playlist-source-recorder.c:
3970         (rb_playlist_source_recorder_new):
3971         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3972         (rb_playlist_source_add_to_map):
3973         * sources/rb-playlist-source.h:
3974         Move cd burning into a plugin.  Fixes #344300.
3976 2006-07-10  James Livingston  <doclivingston@gmail.com>
3978         * lib/eel-gconf-extensions.c:
3979         * shell/rb-shell.c: remove some ununsed gnomeui includes
3981         * widgets/Makefile.am:
3982         * widgets/rb-song-display-box.c:
3983         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3984         since it isn't acutally used anywhere. Fixes #346926
3986 2006-07-09  James Livingston  <doclivingston@gmail.com>
3988         * bindings/python/rb.defs:
3989         * bindings/python/rb.override:
3990         * lib/rb-debug.c: (rb_debug_real):
3991         * lib/rb-debug.h:
3992         * plugins/rb/__init__.py: don't print out an extra newline when
3993         diverting python print statements to RB's debug log.
3995 2006-07-09  James Livingston  <doclivingston@gmail.com>
3997         * rhythmdb/rhythmdb-property-model.c:
3998         (rhythmdb_property_model_drag_data_get):
3999         * sources/rb-sourcelist-model.c:
4000         (rb_sourcelist_model_row_draggable),
4001         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
4002         from the row reference is still valid. Fixes #346709.
4004 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4006         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
4008         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
4009         If all selected entries have the same rating, use that as the initial
4010         rating for the multiple song info dialog.  Fixes #345970.
4012 2006-07-09  James Livingston  <doclivingston@gmail.com>
4014         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
4015         to prevent #343345:
4016                 - don't ever scale to 1x1, just hide the image in that case
4017                 - don't fade when the window is minimised
4018                 - use the last-good allocation width, not the current one - as
4019                   it sometimes get weird values.
4021 2006-07-08  William Jon McCann  <mccann@jhu.edu>
4023         * data/ui/rhythmbox-ui.xml:
4024         * shell/rb-shell.c:
4025         Remove Import audio CD from menu.  Fixes #339732
4027 2006-07-08  James Livingston  <doclivingston@gmail.com>
4029         * metadata/test-metadata.c: (print_metadata_string),
4030         (load_metadata_cb): print out all the metadata we have read, not just
4031         a few.
4033         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
4034         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
4036 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4038         * plugins/lyrics/lyrics.py:
4039         Change the lyrics cache location to match Quod Libet's,
4040         and fix the '&' -> 'and' substitution to require spaces.
4042 2006-07-08  James Livingston  <doclivingston@gmail.com>
4044         * bindings/python/rb.defs:
4045         * bindings/python/rb.override: bind rb_debug_real to rb._debug
4047         * configure.ac:
4048         * plugins/Makefile.am:
4049         * plugins/rb-python-module.c: (rb_python_module_init_python):
4050         * plugins/rb/Makefile.am: add a place to put common python classes.
4051         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
4052         rb module/
4054         * plugins/lyrics/Makefile.am:
4055         * plugins/lyrics/Loader.py:
4056         * plugins/artdisplay/artdisplay/Makefile.am:
4057         * plugins/artdisplay/artdisplay/Loader.py:
4058         * plugins/rb/Loader.py: move the loader class to rb.Loader
4060         * plugins/rb/__init__.py: redirect stdout from python (e.g.
4061         "print ...") to rb_debug. error output (e.g. exceptions) are still
4062         printed on stderr.
4064         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4065         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4066         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
4067         instead of Loader.
4069         Fixes #346895.
4071 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4073         * shell/rb-shell-player.xml:
4074         * shell/rb-shell-player.h:
4075         Correct the details of the playing-song-property-changed signal.
4077 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4079         * lib/rb-marshal.list:
4080         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4081         (rb_shell_player_entry_changed_cb):
4082         * shell/rb-shell-player.h:
4083         * shell/rb-shell-player.xml:
4084         Emit a dbus signal when a property is changed on the playing entry.
4085         Fixes #332461.
4087 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4089         * rhythmdb/rhythmdb-private.h:
4090         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4091         Fix build break with gcc 4.1 by changing RBRefString pointers into
4092         gpointers.
4094 2006-07-07  James Livingston  <doclivingston@gmail.com>
4096         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
4097         remove an extraneous !, which caused it not to monitor folders in the
4098         library with no tracks in them. Fixes #346759.
4100 2006-07-07  James Livingston  <doclivingston@gmail.com>
4102         * rhythmdb/rhythmdb-private.h:
4103         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4104         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
4105         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
4106         (rhythmdb_entry_get_string):
4107         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
4108         flags for the affected properties. _sync_mirrored will get run
4109         automatically when a dirty property is accessed, which improves
4110         performance a bit (especially during startup) as we don't need to sync
4111         every time they change. From #325215.
4113         * tests/bench-rhythmdb-load.c
4114         * tests/Makefile.am: add a RhythmDB loading benchmark.
4116 2006-07-06  James Livingston  <doclivingston@gmail.com>
4118         * bindings/python/rb.defs:
4119         * bindings/python/rb.override: some more fixes, so that
4120         python classes derived from RBSource work correctly.
4122 2006-07-06  James Livingston  <doclivingston@gmail.com>
4124         * configure.ac: bump pygtk requirements to 2.8, since we're already
4125         using some features of it, and weird things will happen if people are
4126         actually trying to use pygtk 2.6.
4128         * bindings/python/rb.override:
4129         * bindings/python/rhythmdb.defs:
4130         * bindings/python/rhythmdb.override: allow python to set
4131         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
4133         * sources/rb-browser-source.c: remove some left over member variables
4135 2006-07-06  James Livingston  <doclivingston@gmail.com>
4137         * rhythmdb/rhythmdb.c:
4138         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4139         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
4140         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
4141         former is pointless (as rhythmdb already knows which it should use)
4142         and the latter doesn't seem useful at all, and possibly bad. From
4143         #330226.
4145         * bindings/python/rhythmdb.defs:
4146         * bindings/python/rhythmdb.override:
4147         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
4148         (handle_song_listing):
4149         * podcast/rb-podcast-manager.c:
4150         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
4151         (rb_podcast_manager_insert_feed):
4152         * sources/rb-audiocd-source.c: (entry_set_string_prop),
4153         (rb_audiocd_create_track_entry):
4154         * sources/rb-ipod-source.c: (entry_set_string_prop),
4155         (add_ipod_song_to_db):
4156         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
4157         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
4159 2006-07-05  James Livingston  <doclivingston@gmail.com>
4161         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4162         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
4163         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
4164         totem-plparser gives us, or the file name if it doesn't give us
4165         anything. Set the default file name when saving too. Fixes #345261
4167 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4169         patch by: Ed Catmur  <ed@catmur.co.uk>
4171         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
4172         Skip all hidden directories, not just trash, and skip unreadable
4173         files.  Fixes #346322.
4175 2006-07-04  James Livingston  <doclivingston@gmail.com>
4177         * plugins/rb-module.h:
4178         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
4179         (rb_module_new):
4180         * plugins/rb-plugin.h:
4181         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
4182         (rb_plugin_finalise), (rb_plugin_set_property),
4183         (rb_plugin_get_property), (rb_plugin_activate),
4184         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
4185         (rb_plugin_find_file):
4186         * plugins/rb-plugins-engine.c: (load_plugin_module):
4187         * plugins/rb-python-module.c: (rb_python_module_new_object),
4188         (rb_python_module_new):
4189         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
4190         rb_plugin_find_file method for locating plugin-specific data. Fixes
4191         346473.
4193         * bindings/python/rb.defs:
4194         * plugins/Makefile.am:
4195         * plugins/generic-player/rb-generic-player-plugin.c:
4196         (create_source_cb):
4197         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
4199 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4201         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
4202         (rb_metadata_can_save), (rb_metadata_save):
4203         Protect the dbus connection with a mutex.
4205 2006-07-03  James Livingston  <doclivingston@gmail.com>
4207         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
4208         case of the parser/tagger not being able to be created.
4210 2006-07-03  James Livingston  <doclivingston@gmail.com>
4212         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4214         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
4215         window resizable, as it used to be. Fixes #345940.
4217 2006-07-01  James Livingston  <doclivingston@gmail.com>
4219         Patch from Ståle Lyngaas  <staale@lyngaas.com>
4221         * rhythmdb/rhythmdb.h:
4222         * rhythmdb/rhythmdb-private.h:
4223         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4224         (rhythmdb_tree_parser_end_element), (save_entry):
4225         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
4226         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
4227         (set_props_from_metadata), (rhythmdb_entry_set_internal),
4228         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
4229         MusicBrainz track IDs in the database, and bump the on-disk version
4230         number to trigger a metadata reload.
4232         * backends/gstreamer/rb-player-gst.c: (process_tag):
4233         * metadata/rb-metadata-common.c:
4234         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
4235         (rb_metadata_gst_field_to_gst_tag):
4236         * metadata/rb-metadata.h: grab MB track IDs and use them.
4238         * plugins/audioscrobbler/rb-audioscrobbler.c:
4239         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4240         (rb_audioscrobbler_timeout_cb),
4241         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
4242         the other metadata. Fixes #343491.
4244 2006-06-30  James Livingston  <doclivingston@gmail.com>
4246         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
4247         method.
4249 2006-06-30  James Livingston  <doclivingston@gmail.com>
4251         * bindings/python/rb.defs:
4252         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4253         (rb_browser_source_songs_show_popup_cb),
4254         (default_show_entry_popup):
4255         * sources/rb-browser-source.h:
4256         * sources/rb-library-source.c: (rb_library_source_class_init),
4257         (rb_library_source_constructor), (impl_show_popup): allow
4258         RBBrowserSource-derived sources to override the entry context menu
4259         properly - by making it a virtual function, rather than relying on
4260         signal handler order (which doesn't really work).
4262 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4264         * rhythmdb/rhythmdb-query-model.c:
4265         (rhythmdb_query_model_reapply_query_cb):
4266         Use the original query, not the preprocessed query, when redoing
4267         the query to pick up entries that previously didn't match.
4268         Preprocessing the query twice is bad.  Fixes #346186.
4270 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4272         * plugins/audioscrobbler/rb-audioscrobbler.c:
4273         (rb_audioscrobbler_song_changed_cb):
4274         Just check if the elapsed time has been reset, rather
4275         than checking if it's a different track.  Fixes #344827.
4277 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4279         * backends/gstreamer/rb-player-gst.c:
4280         Set cdda source read-speed to 1.  Fixes gaps in playback while the
4281         drive spins up, #344576.
4283 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4285         * plugins/audioscrobbler/rb-audioscrobbler.c:
4286         (rb_audioscrobbler_perform):
4287         Use HTTP/1.1.  Fixes #345895.
4289 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4291         * lib/rb-preferences.h:
4292         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4293         (check_auto_proxy_config), (get_proxy_config):
4294         Don't try to use a HTTP proxy if no proxy host is specified.
4295         Alert the user to the fact that we don't support automatic proxy
4296         configuration as infrequently as possible.  From #345712.
4298 2006-06-25  James Livingston  <doclivingston@gmail.com>
4300         * rhythmdb/rhythmdb-property-model.c:
4301         (rhythmdb_property_model_set_property): connect to the
4302         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4303         things get removed correctly, fixes #338183.
4305 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4307         * rhythmdb/rhythmdb-query-model.c:
4308         (rhythmdb_query_model_drag_data_received):
4309         Fix build break.
4311 2006-06-25  James Livingston  <doclivingston@gmail.com>
4313         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4315         * widgets/rb-search-entry.c: (rb_search_entry_init),
4316         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4317         search box have a pale yellow background when it's in use, except for
4318         when the user has an "accessability" theme. Code based heavily on
4319         Epiphany's. Fixes #344416.
4321 2006-06-25  James Livingston  <doclivingston@gmail.com>
4323         * plugins/lyrics/lyrics.py:
4324         * plugins/pythonconsole/pythonconsole.py:
4325         * plugins/sample-python/sample-python.py: don't import gettext stuff
4326         as _, as the C code does this for us. Fixes i18n for python plugins,
4327         #343081
4329 2006-06-25  James Livingston  <doclivingston@gmail.com>
4331         * rhythmdb/rhythmdb-query-model.c:
4332         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4333         a model use a reorder rather then deleting and re-adding the entry.
4334         This means it does do weird things like stop playback of a track that
4335         is dragged, fixing #337657.
4337 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4339         * metadata/rb-metadata-dbus-service.c:
4340         Add missing #include <glib/gi18n.h> from previous commit.
4342 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4344         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4346         * metadata/rb-metadata-dbus-service.c: (main):
4347         Initialize gettext in the metadata helper.
4348         * metadata/rb-metadata-gst.c:
4349         Make some strings translatable.  Fixes #345286.
4351 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4353         * configure.ac:
4354         * lib/Makefile.am:
4355         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4356         Inline the custom icons so they can always be loaded, but are still
4357         themable.  Fixes #345796.
4359 2006-06-23  James Livingston  <doclivingston@gmail.com>
4361         * sources/rb-auto-playlist-source.c:
4362         (rb_auto_playlist_source_do_query): stop the search box being applied
4363         for limits in auto playlists. Fixes #345307.
4365 2006-06-23  James Livingston  <doclivingston@gmail.com>
4367         * shell/rb-shell-clipboard.c:
4368         (rb_shell_clipboard_set_source_internal),
4369         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4370         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4371         non-library tracks, as we don't supprot it yet. From #345248.
4373 2006-06-23  James Livingston  <doclivingston@gmail.com>
4375         patch by: Brian Cameron  <brian.cameron@sun.com>
4377         * plugins/generic-player/rb-generic-player-plugin.c:
4378         * plugins/generic-player/rb-generic-player-source.c:
4379         * plugins/generic-player/rb-nokia770-source.c:
4380         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4381         Fixes 345673.
4383 2006-06-22  James Livingston  <doclivingston@gmail.com>
4385         * backends/rb-player.c: (rb_player_interface_init):
4386         * lib/rb-marshal.list:
4387         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4388         * rhythmdb/rhythmdb-query-model.c:
4389         (rhythmdb_query_model_class_init):
4390         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4391         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4392         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4393         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4394         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4395         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4396         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4397         possible not.
4399 2006-06-20  James Livingston  <doclivingston@gmail.com>
4401         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4403         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4404         metadata to clients. Fixes #345276.
4406 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4408         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4409         (rb_add_id3_tagger):
4410         Fix plugin/element version detection for id3v2mux.
4412 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4414         * sources/rb-source.c: (rb_source_finalize),
4415         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4416         (_autohide_update_visibility),
4417         (_rb_autohide_source_post_entry_deleted_cb),
4418         (_rb_autohide_source_row_inserted_cb),
4419         (_rb_source_hide_when_empty):
4420         Use post-entry-delete signal to update status and autohide sources.
4422 2006-06-20  James Livingston  <doclivingston@gmail.com>
4424         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4425         "selection changed" idle callback, if present.
4427 2006-06-19  James Livingston  <doclivingston@gmail.com>
4429         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4431         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4432         don't try to translate the empty string. Fixes #345285.
4434 2006-06-19  James Livingston  <doclivingston@gmail.com>
4436         * bindings/python/rhythmdb.override: more python binding fixes
4438 2006-06-19  James Livingston  <doclivingston@gmail.com>
4440         * lib/rb-util.c: (rb_copy_function):
4441         * lib/rb-util.h: add a function that returns the same pointer it was
4442         passed.
4444         * rhythmdb/rhythmdb.h:
4445         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4446         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4447         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4448         and RhythmDBEntryType into boxed types. This allows them to be used
4449         from python. Note that entry-types aren't actually reference counted
4450         (yet).
4452         * bindings/python/rb.defs:
4453         * bindings/python/rhythmdb.defs:
4454         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4455         return types of some bindings.
4457         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4458         (process_added_entries_cb), (rhythmdb_entry_finalize),
4459         (rhythmdb_entry_delete):
4460         * daapsharing/rb-daap-connection.c:
4461         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4462         (rb_daap_connection_get_property):
4463         * plugins/generic-player/rb-generic-player-source.c:
4464         (rb_generic_player_source_load_songs), (load_playlist_file):
4465         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4466         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4467         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4468         (idle_process_update), (rhythmdb_query_model_add_entry),
4469         (rhythmdb_query_model_insert_into_main_list),
4470         (rhythmdb_query_model_insert_into_limited_list),
4471         (rhythmdb_query_model_remove_from_main_list),
4472         (rhythmdb_query_model_remove_from_limited_list),
4473         (rhythmdb_query_model_drag_data_received),
4474         (rhythmdb_query_model_add_results),
4475         (rhythmdb_query_model_get_column_type),
4476         (rhythmdb_query_model_get_value):
4477         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4478         (rhythmdb_tree_entry_delete), (remove_one_song):
4479         * shell/rb-play-order-linear-loop.c:
4480         (rb_linear_play_order_loop_get_next),
4481         (rb_linear_play_order_loop_get_previous):
4482         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4483         (rb_linear_play_order_get_previous):
4484         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4485         (rb_queue_play_order_get_previous):
4486         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4487         (rb_random_filter_history), (rb_random_play_order_get_next),
4488         (rb_random_play_order_go_next), (rb_random_db_changed),
4489         (rb_random_playing_entry_changed):
4490         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4491         (remove_from_history), (add_randomly_to_history),
4492         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4493         * shell/rb-play-order.c: (rb_play_order_class_init),
4494         (rb_play_order_set_property), (rb_play_order_get_property),
4495         (rb_play_order_update_have_next_previous):
4496         * shell/rb-play-order.h:
4497         * shell/rb-shell-clipboard.c:
4498         (rb_shell_clipboard_process_deletions),
4499         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4500         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4501         * sources/rb-auto-playlist-source.c:
4502         (rb_auto_playlist_source_constructor):
4503         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4504         (rb_browser_source_set_property), (rb_browser_source_get_property),
4505         (rb_browser_source_do_query):
4506         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4507         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4508         * sources/rb-ipod-source.c: (add_rb_playlist),
4509         (add_ipod_song_to_db), (impl_paste):
4510         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4511         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4512         * sources/rb-library-source.c: (layout_example_label_update):
4513         * sources/rb-missing-files-source.c:
4514         (rb_missing_files_source_class_init),
4515         (rb_missing_files_source_set_property),
4516         (rb_missing_files_source_get_property),
4517         (rb_missing_files_source_new):
4518         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4519         (rb_playlist_source_set_property),
4520         (rb_playlist_source_get_property):
4521         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4522         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4523         (construct_query_from_selection):
4524         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4525         * sources/rb-static-playlist-source.c:
4526         (rb_static_playlist_source_constructor),
4527         (rb_static_playlist_source_add_location_internal):
4528         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4529         * widgets/rb-header.c: (rb_header_class_init),
4530         (rb_header_set_property), (rb_header_get_property):
4531         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4532         (rb_library_browser_set_property),
4533         (rb_library_browser_get_property):
4534         * widgets/rb-song-info.c: (rb_song_info_class_init),
4535         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4536         change, do s/pointer/boxed/ in many places and free entry-types
4537         properly.
4539 2006-06-18  James Livingston  <doclivingston@gmail.com>
4541         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4542         unushed GThreadPool non-exclusive threads every now and then.
4544         * rhythmdb/rhythmdb-private.h:
4545         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4546         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4547         threads. Fixes #341593
4549 2006-06-19  James Livingston  <doclivingston@gmail.com>
4551         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4552         the "Track number" checkbox actually work for playlists. From #329986.
4554 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4556         * plugins/generic-player/rb-generic-player-source.c:
4557         Get playlist and audio folder information from HAL.  Fixes #333845.
4559 2006-06-18  James Livingston  <doclivingston@gmail.com>
4561         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4563         * widgets/rb-entry-view.h:
4564         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4565         (rb_entry_view_append_column_custom),
4566         (rb_entry_view_insert_column_custom): add support for inserting custom
4567         columns at arbitrary locations, rather than just appending to the end.
4569         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4570         the playlists "track number" column go at the start, and add a normal
4571         track number column. Fixes #329986.
4573 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4575         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4576         a mnemonic conflict.  Add ellipses to the edit button.
4577         * sources/rb-library-source.c:
4578         (rb_library_source_edit_profile_clicked_cb),
4579         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4580         mnemonic widget to the labels. Fixes #344114.
4582 2006-06-18  James Livingston  <doclivingston@gmail.com>
4584         * configure.ac: bump version
4585         * NEWS: add NEWS for 0.9.5
4587 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4589         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4590         (rb_uri_handle_recursively):
4591         Don't attempt to recurse into directories we can't open.  
4592         Fixes #341485.
4594 2006-06-18  James Livingston  <doclivingston@gmail.com>
4596         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4598         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4599         #344610.
4601 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4603         * bindings/python/rb.defs:
4604         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4605         * shell/rb-shell-player.h:
4606         * shell/rb-shell.c: (rb_shell_play_entry):
4607         Add source parameter to rb_shell_player_play_entry, using the selected
4608         source if not specified.
4610         * shell/rb-play-order.c: (rb_play_order_class_init),
4611         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4612         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4613         (default_playing_entry_removed):
4614         * shell/rb-play-order.h:
4615         Move entry removal handling back to the row-deleted signal, as we need
4616         the entry to be present in the model.  When changing to the next entry
4617         after the playing entry is deleted, set the new entry as the playing
4618         entry and then sync it to the player in an idle handler, so we don't
4619         end up playing it if it was removed too.
4620         * shell/rb-play-order-queue.c:
4621         (rb_queue_play_order_playing_entry_changed),
4622         (rb_queue_play_order_playing_entry_removed):
4623         Use the playing-entry-removed handler from the play order class,
4624         setting a flag so we don't try to remove the already-removed entry
4625         from the model.
4627         This makes removal of the playing entry from playlists etc. work more
4628         or less correctly for all play orders.  Fixes #344627.
4630 2006-06-17  James Livingston  <doclivingston@gmail.com>
4632         patch by: Elijah Newren  <newren@gmail.com>
4634         * tests/test-rhythmdb.c: fix the build with older versions of check
4635         (again). Fixes #343718.
4637 2006-06-17  James Livingston  <doclivingston@gmail.com>
4639         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4640         name for capsfilter's "caps" property. Fixes #344968.
4642 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4644         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4645         Don't leak the selected entry list when finding an entry to play.
4647 2006-06-17  James Livingston  <doclivingston@gmail.com>
4649         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4650         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4651         as a O(1) one works fine, and it will get called often when the user
4652         deleted multiple tracks. Part of #344922.
4654 2006-06-17  James Livingston  <doclivingston@gmail.com>
4656         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4657         rb_shell_player_stop and rb_shell_player_playpause not mutually
4658         recursive. Fixed #336912.
4660 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4662         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4663         Treat nested elements inside properties as unknown.  Fixes parsing of
4664         podcast feeds with unescaped HTML in description tags, bug #344532.
4666 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4668         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4669         when quitting.  Fixes #344875.
4671 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4673         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4674         Move the playing-entry-removed handling to after the normal entry
4675         delete handling, since we're called after the entry has been removed
4676         from the query model now.  Fixes crashes described in #344627.
4678 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4680         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4681         (rb_rating_get_rating_from_widget):
4682         * widgets/rb-rating.c: (rb_rating_class_init),
4683         (rb_rating_finalize), (rb_rating_get_property),
4684         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4685         (rb_rating_button_press_cb):
4686         Don't crash when ratings icons can't be found.  Fixes #344533.
4688 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4690         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4692 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4694         * Makefile.am:
4695         * configure.ac:
4696         * remote/Makefile.am:
4697         * remote/dbus/Makefile.am:
4698         * remote/dbus/rb-client.c:
4699         * shell/Makefile.am:
4700         New dbus client program providing --play/--next etc. arguments.
4701         Fixes #340863, #155763.
4703 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4705         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4706         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4708 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4710         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4712         * rhythmdb/rhythmdb-query-model.c:
4713         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4714         to Library incorrectly
4716 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4718         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4719         Return input string untouched if gnome_vfs_uri_new returns NULL.
4720         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4721         (rb_static_playlist_source_add_list_uri):
4722         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4723         URIs don't break it.  Fixes #339033.
4725 2006-06-08  James Livingston  <doclivingston@gmail.com>
4727         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4728         for sources on the edge (i.e. the queue). Fixes #328409.
4730         * sources/rb-ipod-source.c: fix typo
4732 2006-06-08  James Livingston  <doclivingston@gmail.com>
4734         * configure.ac:
4735         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4736         --enable-ipod-writing to enable the ipod syncing code.
4738 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4740         * sources/rb-library-source.c: (layout_example_label_update):
4741         add missing comma so we don't generate broken markup.
4743 2006-06-08  James Livingston  <doclivingston@gmail.com>
4745         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4746         tag-merging with id3v2mux as well as id3mux. From #342330.
4748 2006-06-07  James Livingston  <doclivingston@gmail.com>
4750         * tests/test-rhythmdb.c: #define fail_if for old version of check
4751         which don't have it. Hopefully fixes #343718.
4753 2006-06-07  James Livingston  <doclivingston@gmail.com>
4755         * shell/rb-playlist-manager.c:
4756         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4757         g_value_array_free with NULL. Fixes #341053.
4759 2006-06-07  James Livingston  <doclivingston@gmail.com>
4761         * shell/rb-playlist-manager.c:
4762         (rb_playlist_manager_playlist_entries_changed),
4763         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4764         instead of "row-removed", which fixes updating "burn playlist"
4765         sensitivity. Fixes #331119.
4767 2006-06-07  James Livingston  <doclivingston@gmail.com>
4769         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4770         rather than restarting if the source uses _RETRY and there is an
4771         actual error (like an undecodable stream) rather than it just dropping
4772         out and causing EOS.
4774 2006-06-07  James Livingston  <doclivingston@gmail.com>
4776         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4777         free the pixbufs if they couldn't be loaded. Fixed #343852.
4779 2006-06-07  James Livingston  <doclivingston@gmail.com>
4781         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4782         the close button on the dialog work. Fixes #335346.
4784 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4786         * sources/rb-sourcelist-model.c: (path_is_droppable),
4787         (path_is_reorderable):
4788         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4789         (row_activated_cb), (emit_show_popup), (key_release_cb),
4790         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4791         Ignore group marker rows in the source list.  Fixes #344089, a couple
4792         of other crashers, and some weird UI glitches too.
4794 2006-06-07  James Livingston  <doclivingston@gmail.com>
4796         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4797         the seeking query fails. This is needed because many gst elements
4798         don't implement the seeking query yet. Should fix 329977.
4800 2006-06-06  James Livingston  <doclivingston@gmail.com>
4802         * configure.ac: bump version for a prerelease, turn on track transfer
4803         by default.
4805         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4806         ipod transfer stuff, since it has big issues and we'll hopefully land
4807         real support (bug 310774) after 0.9.5
4809 2006-06-06  James Livingston  <doclivingston@gmail.com>
4811         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4812         id3v2mux once we've detected it.
4814 2006-06-06  James Livingston  <doclivingston@gmail.com>
4816         * lib/Makefile.am:
4817         * tests/test-rhythmdb.c: undo accidental commit which caused
4818         rb-thread.c to be built (which it isn't normally)
4820 2006-06-06  James Livingston  <doclivingston@gmail.com>
4822         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4823         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4824         fail_{if/unless} calls, as some versions of check need them (they are
4825         optional in others). Should fix bug 343718.
4827 2006-06-06  James Livingston  <doclivingston@gmail.com>
4829         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4830         343836.
4831         
4832         * lib/Makefile.am:
4833         * lib/rb-thread.c: (process_actions):
4834         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4835         tests that don't pass.
4837 2006-06-05  James Livingston  <doclivingston@gmail.com>
4839         * data/glade/Makefile.am:
4840         * data/glade/load-failure.glade:
4841         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4842         dialog.
4844 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4846         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4847         checked in.
4849 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4851         * bindings/python/rb.defs:
4852         * sources/rb-source.h:
4853         * sources/rb-source.c: (rb_source_class_init),
4854         (rb_source_set_property), (rb_source_get_property),
4855         (rb_sourcelist_group_get_type):
4856         Add 'sourcelist-group' property on the RBSource class, describing how
4857         sources should be grouped in the source list.
4859         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4860         (rb_sourcelist_model_new), (real_row_is_separator),
4861         (rb_sourcelist_model_is_row_visible),
4862         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4863         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4864         (rb_sourcelist_model_row_draggable),
4865         (rb_sourcelist_model_row_inserted_cb),
4866         (rb_sourcelist_model_row_deleted_cb),
4867         (rb_sourcelist_model_get_group_path):
4868         * sources/rb-sourcelist-model.h:
4869         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4870         (rb_sourcelist_append):
4871         Add group marker rows for each sourcelist group, and use these to
4872         insert sources in the right place.  Sort transient sources (DAAP
4873         shares) by name.  Show the group marker rows as separators when the
4874         next visible row is a source.  Make persistant sources (playlists) and
4875         removable sources reorderable using drag and drop, restricting them
4876         within the source groups.
4877         
4878         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4879         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4880         * sources/rb-daap-source.c: (rb_daap_source_new):
4881         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4882         * sources/rb-static-playlist-source.c:
4883         (rb_static_playlist_source_new):
4884         * plugins/generic-player/rb-generic-player-source.c:
4885         (rb_generic_player_source_new):
4886         * plugins/generic-player/rb-nokia770-source.c:
4887         (rb_nokia770_source_new):
4888         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4889         Add source list group information to existing source classes.
4891         Fixes #318754 and #336492.
4893 2006-06-04  James Livingston  <doclivingston@gmail.com>
4895         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4896         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4897         win32 build fixes.
4899 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4901         * rhythmdb/rhythmdb-query-model.c:
4902         (rhythmdb_query_model_class_init),
4903         (rhythmdb_query_model_remove_from_main_list):
4904         * rhythmdb/rhythmdb-query-model.h:
4905         Add a new 'post-entry-delete' signal, emitted when the entry has been
4906         removed from the model's data structures.
4908         * shell/rb-play-order.c: (rb_play_order_finalize),
4909         (rb_play_order_query_model_changed),
4910         (rb_play_order_post_entry_delete_cb):
4911         Use the new signal to update the play order, so the queue play order
4912         doesn't try to scroll to entries that don't exist in a way that causes
4913         the tree view to crash.  Fixes #340216.
4915 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4917         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4918         Fix rb_debug call I missed previously.
4920 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4922         * metadata/rb-metadata-gst.c:
4923         Don't use NULL as the error message for ignored files, as it crashes
4924         with some C libraries.  Fixes #343713.
4926 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4928         * widgets/rb-dialog.c: (rb_error_dialog):
4929         * widgets/rb-dialog.h:
4930         Mark rb_error_dialog as taking printf-like arguments, and use a format
4931         string for the primary message rather than passing in the message
4932         directly.
4934         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4935         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4936         (info_available_cb):
4937         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4938         * shell/rb-removable-media-manager.c:
4939         (rb_removable_media_manager_eject_medium_cb):
4940         Make sure all calls to rb_error_dialog use string constants for the
4941         format string rather than passing the error message directly.  Remove
4942         an extra %s from the message used when playback fails.  Fixes #343562.
4944         * lib/rb-debug.h:
4945         * sources/rb-audiocd-source.c:
4946         * plugins/audioscrobbler/rb-audioscrobbler.c:
4947         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4948         Mark rb_debug as taking printf-like arguments and fix a few resulting
4949         warnings.
4951 2006-06-02  James Livingston  <doclivingston@gmail.com>
4953         * configure.ac:
4954         + macros/check.m4: add support for using check for unit tests, the .m4
4955         files is so autogen can run without check being installed
4957         * tests/Makefile.am:
4958         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4959         some of the old tests, and add some new ones. Currently
4960         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4961         yet (the query doesn't return any entries).
4963         - tests/deserialization-test1.xml:
4964         - tests/deserialization-test2.xml:
4965         - tests/deserialization-test3.xml:
4966         - tests/test-rhythmdb-indexing.c:
4967         - tests/test-rhythmdb-simple.c:
4968         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4969         have been ported
4971         - tests/test-cd.c:
4972         - tests/test-cmdline.c: remove obsolete tests
4974 2006-06-02  James Livingston  <doclivingston@gmail.com>
4976         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4977         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4978         id3v2mux, and check whether we are using a version of id3mux that has
4979         the correct merge-mode behaviour.
4981         * plugins/sample-python/Makefile.am: fix distcheck.
4983         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4984         the changed-files source was added before trying to remove it.
4986         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4987         *old* bug which would crash if a query with top-level disjunctions
4988         tried to check later disjunctive parts. Hooray for unit-testing.
4990 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4992         * player/rb-recorder-gst.c (rb_recorder_set_device):
4993         Check for a null drive.
4995 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4997         * lib/Makefile.am:
4998         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4999         Register the app icon as a builtin if the icon theme can't find it.
5001 2006-05-31  James Livingston  <doclivingston@gmail.com>
5003         * player/rb-recorder-gst.c: add missing include.
5005 2006-05-30  William Jon McCann  <mccann@jhu.edu>
5007         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
5008         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
5009         (tick_timeout_cb), (rb_recorder_sync_pipeline),
5010         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
5011         (rb_recorder_set_device), (rb_recorder_get_default_device):
5012         * shell/main.c: (main):
5013         * shell/rb-removable-media-manager.c:
5014         (rb_removable_media_manager_finalize),
5015         (get_nautilus_burn_drive_for_path),
5016         (rb_removable_media_manager_playing_uri_changed_cb),
5017         (rb_removable_media_manager_load_media),
5018         (nautilus_burn_drive_get_device),
5019         (rb_removable_media_manager_scan):
5020         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
5022         Update for libnautilus-burn 2.15.3 API changes.
5023         Fixes #342604
5025 2006-05-30  James Livingston  <doclivingston@gmail.com>
5027         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
5028         "return" to that it asks for the password again if it was wrong.
5030 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5032         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
5033         typefind element.
5035 2006-05-30  James Livingston  <doclivingston@gmail.com>
5037         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5038         (download_progress_cb): don't do wonky things if the transfer
5039         "suceeds" without transferring any data.
5041 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5043         * sources/rb-library-source.c: (layout_example_label_update),
5044         (build_filename):  Fix crash when no audio profile is selected.
5045         Fixes #341447.
5047 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5049         * shell/rb-shell.c: (rb_shell_clear_queue):
5050         * shell/rb-shell.h:
5051         * shell/rb-shell.xml:
5052         * sources/rb-play-queue-source.c:
5053         (rb_play_queue_source_clear_queue),
5054         (rb_play_queue_source_cmd_clear):
5055         * sources/rb-play-queue-source.h:
5056         Add clearQueue dbus method.
5058 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5060         * shell/main.c: (main):  Implement --quit option.
5062 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5064         * rhythmdb/rhythmdb-private.h:
5065         * rhythmdb/rhythmdb-tree.h:
5066         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
5067         (rhythmdb_entry_insert), (rhythmdb_entry_set),
5068         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
5069         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
5070         (rhythmdb_entry_get_boolean):
5071         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
5072         bitmask, giving the db backend anything past the first 16 bits for 
5073         its own private use.
5075         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5076         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
5077         Add a 'loading' flag to indicate that an entry is being loaded from
5078         disk, and use that to ignore entry_set operations on such entries
5079         rather than the 'inserted' flag, which doesn't quite mean the same
5080         thing.  Fixes #342694.
5082 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5084         * shell/rb-shell.xml: Remove visibility property, since it causes
5085         crashes (dbus bug 7057) and doesn't do much else.
5087 2006-05-28  James Livingston  <doclivingston@gmail.com>
5089         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
5091         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5092         * po/POTFILES.in: fix some more i18n issues.
5094 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5096         * bindings/python/rb.defs:
5097         * shell/rb-shell-player.c: (rb_shell_player_playpause),
5098         (filter_mmkeys):
5099         * shell/rb-shell-player.h:
5100         Deprecate the useless 'ignore_stop' parameter to
5101         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
5102         API.  From bug #334829.
5104 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5106         * plugins/generic-player/rb-generic-player-source.c:
5107         (visit_playlist_dirs), (default_transform_playlist_uri):
5108         When playlist parsing fails, unref the playlist, not the parent
5109         source.  Fix memory leak in playlist uri transform.
5110         * plugins/generic-player/rb-nokia770-source.c:
5111         (impl_transform_playlist_uri):
5112         Fix memory leak in playlist uri transform.
5114 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
5116         * doc/reference/Makefile.am: fix grk-doc build
5118 2006-05-27  James Livingston  <doclivingston@gmail.com>
5120         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5122         * plugins/lyrics/lyrics.py:
5123         * po/POTFILES.in: Make strings in plugins translatable. From bug
5124         343081.
5126 2006-05-27  James Livingston  <doclivingston@gmail.com>
5128         * backends/Makefile.am:
5129         * backends/gstreamer/Makefile.am:
5130         * lib/Makefile.am:
5131         * plugins/audioscrobbler/Makefile.am:
5132         * plugins/generic-player/Makefile.am:
5133         * po/POTFILES.in:
5134         * rhythmdb/rhythmdb-monitor.c:
5135         * rhythmdb/rhythmdb.c:
5136         * sources/Makefile.am:
5137         * widgets/Makefile.am: fix compilation after some CVS surgery was
5138         done.
5140 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5142         * bindings/python/rhythmdb.defs:
5143         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
5144         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
5145         (rhythmdb_query_deserialize):
5146         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
5147         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
5148         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
5149         (rhythmdb_entry_register_type_alias),
5150         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
5151         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
5152         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
5153         (rhythmdb_entry_podcast_feed_get_type),
5154         (rhythmdb_entry_import_error_get_type),
5155         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
5156         * rhythmdb/rhythmdb.h:
5157         Allocate a specified amount of extra memory for each db entry, to be
5158         used to store fields specific to the entry type.  Optionally associate
5159         a name with each entry type, to be used when saving entries and
5160         auto playlists to disk.  Allow entry types to have multiple names
5161         to handle older playlist files that used '0' to represent 'song'.
5162         Use private data to store podcast fields.
5164         * rhythmdb/rhythmdb-private.h:
5165         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5166         (rhythmdb_tree_parser_end_element), (save_entry),
5167         (rhythmdb_tree_entry_set):
5168         Simplify property handling by using existing code to convert
5169         properties from strings to GValues and to set properties on entries.
5170         Other assorted changes due to the above.
5172         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5173         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
5174         * sources/rb-generic-player-source.c:
5175         (rb_generic_player_source_new):
5176         * sources/rb-ipod-source.c: (rb_ipod_source_new):
5177         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
5178         * sources/rb-psp-source.c: (rb_psp_source_new):
5179         Update for changes to rhythmdb_entry_register_type.  None of these
5180         entry types need names or use private data.
5182         Fixes #337429.
5184 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5186         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5187         Fix creation of ignored-file db entries - need to check for
5188         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
5190 2006-05-25  James Livingston  <doclivingston@gmail.com>
5192         * AUTHORS:
5193         * MAINTAINERS: update my email address
5195 2006-05-25  James Livingston  <doclivingston@gmail.com>
5197         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
5198         "(... mix)" when searching for lyrics. Cache the lyrics under
5199         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
5201 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5203         * sources/rb-import-errors-source.c:
5204         (rb_import_errors_source_class_init):
5205         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5206         * sources/rb-browser-source.c: (rb_browser_source_class_init):
5207         * sources/rb-source.c: (rb_source_class_init),
5208         (default_move_to_trash):
5209         Implement the basic move-to-trash operation once in rb-source.c, 
5210         rather than in each source type that supports it.
5212         * plugins/ipod/rb-ipod-plugin.c:
5213         * shell/rb-removable-media-manager.c:
5214         * shell/rb-shell.c: (rb_shell_constructor):
5215         Only scan removable media once after loading plugins.  Add a flag
5216         plugins can use to check if the initial scan has been done.
5218         * data/rhythmbox.schemas:
5219         Enable ipod and generic-player plugins by default.
5220         
5221         * configure.ac:
5222         * data/ui/Makefile.am:
5223         * data/ui/generic-player-ui.xml:
5224         * data/ui/rhythmbox-ui.xml:
5225         * plugins/Makefile.am:
5226         * plugins/generic-player/Makefile.am:
5227         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
5228         * plugins/generic-player/rb-generic-player-plugin.c:
5229         * sources/Makefile.am:
5230         * sources/rb-generic-player-source.c:
5231         * sources/rb-generic-player-source.h:
5232         * sources/rb-nokia770-source.c:
5233         * sources/rb-nokia770-source.h:
5234         * sources/rb-psp-source.c: (visit_playlist_dirs):
5235         * sources/rb-psp-source.h:
5236         Pluginise generic player (and nokia770 and PSP) support and add
5237         move-to-trash for players not mounted read-only.
5238         Fixes #342868.
5240 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5242         * daapsharing/rb-daap-connection.c (handle_song_listing):
5243         Lower bound check for batch commit.  Fixes #342848
5245         * sources/rb-daap-source.c (rb_daap_source_get_status):
5246         Always set output variables if provided.
5248 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5250         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
5251         (rhythmdb_tree_entry_delete), (remove_one_song):
5252         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
5253         Fix two db entry reference counting problems.
5254         The initial reference on the entry is held by the db backend, but it
5255         was never being dropped.  The reference count was incremented when
5256         adding an entry to the deleted_entries map and to the
5257         deleted_entries_to_emit list, but only decremented for one of those.
5259 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5261         * daapsharing/rb-daap-connection.c (http_response_handler) 
5262         (rb_daap_connection_dispose):
5263         Call soup_session_abort to make sure there are no outstanding
5264         requests when we dispose of the connection.  Ignore cancelled
5265         messages in the callback.
5267 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5269         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
5270         (rb_daap_source_disconnect): Set a flag when disconnecting
5271         the source.  Check this flag in connection callback
5272         to see if we should release the connection.
5274 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5276         * daapsharing/Makefile.am:
5277         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
5278         (rb_daap_connection_class_init), (connection_connected),
5279         (connection_disconnected), (connection_operation_done),
5280         (build_message), (connection_set_error_message),
5281         (actual_http_response_handler), (http_get),
5282         (entry_set_string_prop), (emit_progress_idle),
5283         (handle_server_info), (handle_login), (handle_update),
5284         (handle_database_info), (handle_song_listing), (handle_playlists),
5285         (handle_playlist_entries), (handle_logout),
5286         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5287         (connection_response_data_free), (connected_cb),
5288         (rb_daap_connection_connect), (disconnected_cb),
5289         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5290         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5291         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5292         (rb_daap_connection_get_property):
5293         * daapsharing/rb-daap-connection.h:
5294         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5295         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5296         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5297         (rb_daap_hash_generate):
5298         * daapsharing/rb-daap-hash.h:
5299         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5300         (rb_daap_get_icon), (remove_source), (stop_browsing),
5301         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5302         (connection_connecting_cb), (connection_disconnected_cb),
5303         (release_connection), (rb_daap_source_connection_cb),
5304         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5305         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5307         Adds a better async API for connect and disconnect.  Doesn't share
5308         callback data for every async call.  Adds a connect signal.  Uses
5309         an operation-done signal to trigger the callbacks.  Displays an
5310         error when connections fail.  A few refcounting fixes to fix
5311         crashes.  Uses a weak pointer to set the connection to NULL so we
5312         don't clobber references.  Wait for each disconnect when shutting
5313         down sources.  Split out DAAP hash stuff into its own file.  Fix
5314         typo in header.
5316         Fixes #342643
5317         
5318 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5320         * sources/rb-auto-playlist-source.c:
5321         (rb_auto_playlist_source_new_from_xml):
5322         Initialize the gvalue used to hold the size limit correctly.
5323         Fixes #342744.
5325 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5327         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5328         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5329         * shell/rb-shell.h:
5330         * shell/rb-shell.xml:
5331         Convert rb_shell_quit into a dbus method, and add visibility dbus
5332         property.
5334 2006-05-22  James Livingston  <doclivingston@gmail.com>
5336         * rhythmdb/rhythmdb.h:
5337         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5338         (rhythmdb_entry_is_editable), (action_thread_main),
5339         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5340         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5341         false, and syncing into the file.
5343         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5344         (rhythmdb_entry_iradio_get_type),
5345         (rhythmdb_entry_import_error_get_type):
5346         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5347         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5348         change the DB.
5350 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5352         * rhythmdb/Makefile.am:
5353         * rhythmdb/rhythmdb-monitor.c:
5354         * rhythmdb/rhythmdb-private.h:
5355         * rhythmdb/rhythmdb-query.c:
5356         * rhythmdb/rhythmdb.c:
5357         Split up rhythmdb.c a bit.
5359 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5361         * data/glade/audioscrobbler-prefs.glade:
5362         Add a link to the last.fm server status page.
5364 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5366         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5367         Capitalization fix.
5368         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5369         (impl_create_configure_dialog):  UI layout fixes, remove
5370         dialog separator, and capitalization fix for window title.
5371         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5372         and remove dialog separator.
5373         * data/glade/plugins.glade:  UI layout fixes.
5374         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5375         and capitalization fix.  Fixes #342438.
5377 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5379         * data/glade/podcast-properties.glade:  Fix layout of the download 
5380         location.  Fixes #342431.
5382 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5384         * data/ui/rhythmbox-ui.xml:
5385         We only need one copy of the 'add to queue' action in the edit menu.
5387 2006-05-20  James Livingston  <doclivingston@gmail.com>
5389         * data/ui/rhythmbox-ui.xml:
5390         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5391         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5392         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5393         (rb_shell_clipboard_sync),
5394         (rb_shell_clipboard_cmd_add_to_playlist_new),
5395         (rb_shell_clipboard_cmd_queue_song_info),
5396         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5397         (rb_shell_clipboard_playlist_deleted_cb),
5398         (rb_shell_clipboard_playlist_renamed_cb),
5399         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5400         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5401         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5402         dynamically generated with all the static playlists. Fixes bug 323364.
5404         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5405         right child, so it doesn't go weird when art appears and disappears.
5407 2006-05-20  James Livingston  <doclivingston@gmail.com>
5409         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5411         * rhythmdb/rhythmdb-query-model.c:
5412         (rhythmdb_query_model_set_property),
5413         (rhythmdb_query_model_finalize),
5414         (rhythmdb_query_model_reapply_query_cb):
5415         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5416         (rhythmdb_query_append_prop_multiple),
5417         (rhythmdb_query_is_time_relative):
5418         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5419         time-based criteria, fixes bug 341131.
5421 2006-05-20  James Livingston  <doclivingston@gmail.com>
5423         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5424         we have already changed playing entries. Interpolate the art size so
5425         it doesn't jump when the old and new images have different aspect
5426         ratios.
5428 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5430         * rhythmdb/rhythmdb-private.h:
5431         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5432         (save_entry):
5433         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5434         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5435         (rhythmdb_entry_get_ulong):
5436         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5437         and elsewhere, use them on the stack rather than allocating on 
5438         the heap.  From bug #342333.
5440 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5442         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5443         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5444         (add_track), (eos_cb), (error_signal_idle),
5445         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5446         (rb_recorder_construct), (recorder_track_free),
5447         (rb_recorder_finalize):
5448         * sources/rb-playlist-source-recorder.c:
5449         Support libnautilus-burn size -> capacity API change.  Add
5450         some braces to blocks.
5452 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5454         * metadata/sj-metadata-musicbrainz.c:
5455         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5456         Sync with sound-juicer in CVS.  Fixes #342177
5457         * sources/rb-audiocd-source.c: Don't declare variables
5458         in the middle of a block (c99ism).  Fix order of #includes.
5459         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5460         one variable per line.  Update copyright date.
5462 2006-05-19  James Livingston  <doclivingston@gmail.com>
5464         patch by: Hendrik Richter  <hendi@gnome-de.org>
5466         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5467         "translator_credits" to a hyphen, so it doesn't cause problems for
5468         tools that check access keys. Fixes bug 341832.
5470 2006-05-19  James Livingston  <doclivingston@gmail.com>
5472         * po/POTFILES.in: remove references to files that don't exist any more
5473         (fixes make distcheck).
5475 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5477         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5478         Song Lyrics dialog. Fixes bug 342322.
5480 2006-05-19  James Livingston  <doclivingston@gmail.com>
5482         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5484         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5485         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5486         version checks not break when libnotify goes to 1.0.0. Fixes bug
5487         342244.
5489 2006-05-18  James Livingston  <doclivingston@gmail.com>
5491         * shell/rb-shell-clipboard.c:
5492         * shell/rb-shell.c:
5493         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5495 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5497         * sources/rb-playlist-source-recorder.c (get_song_description):
5498         Reverse artist and title in song description.  This
5499         is useful because at least the title will be visible
5500         when there is limited space.
5502 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5504         * daapsharing/rb-daap-connection.c: (connection_get_password):
5505         Take gdk lock before emitting authenticate signal.
5506         * sources/rb-daap-source.c: (connection_connecting_cb):
5507         Get rid of the unnecessary idle handler (it's already called from one)
5508         Fixes #342047 once more.
5510 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5512         * shell/rb-shell.c: (rb_shell_class_init):
5513         * shell/rb-shell.h:
5514         * widgets/rb-song-info.c: (rb_song_info_class_init),
5515         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5516         (rb_song_info_constructor), (rb_song_info_get_property),
5517         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5518         (rb_song_info_forward_clicked_cb):
5519         * widgets/rb-song-info.h:
5520         * data/glade/song-info-multiple.glade:
5521         * lib/rb-marshal.list:
5522         * bindings/python/Makefile.am:
5523         * bindings/python/rb.defs:
5524         * bindings/python/rb.override:
5525         Allow plugins to add pages to the notebooks used in song info windows,
5526         and to track the current song displayed in single-entry windows.
5527         
5528         * configure.ac:
5529         * plugins/Makefile.am:
5530         * plugins/lyrics/Loader.py:
5531         * plugins/lyrics/Makefile.am:
5532         * plugins/lyrics/lyrics.py:
5533         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5534         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5535         as a separate window (for the playing song) or as a page in the song
5536         info window.  A few TODO items left, but this fixes #319320.
5538 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5540         Patch by:  Roozbeh Pournader
5542         * configure.ac:
5543         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5544         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5546 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5547         
5548         * sources/rb-daap-source.c: (update_connection_status):
5549         Correct return value.  Fixes #342047 again.
5551 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5553         * sources/rb-daap-source.c: (update_connection_status),
5554         (connection_connecting_cb):
5555         Update status in an idle handler so we don't rely on the gdk lock
5556         being recursive (because it isn't any more).  Fixes #342047.
5558 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5560         * lib/rb-util.c: (rb_make_duration_string),
5561         (rb_make_elapsed_time_string):
5562         * lib/rb-util.h:
5563         Add a function for formatting an elapsed time string.
5565         * shell/rb-shell-player.c: (rb_shell_player_init),
5566         (rb_shell_player_sync_with_source),
5567         (rb_shell_player_get_playing_time_string), (tick_cb):
5568         Store elapsed time in the private data structure, and use the above
5569         function.
5570         
5571         * widgets/rb-header.c:
5572         * widgets/rb-header.h:
5573         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5574         object, so everything has the same idea of the elapsed time.
5575         Fixes #339693.
5577 2006-05-16  James Livingston  <doclivingston@gmail.com>
5579         * bindings/python/rhythmdb.defs:
5580         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5581         some parametre defaults, so you don't have to pass None, False for the
5582         sorting order.
5584 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5586         * bindings/python/rhythmdb.defs:
5587         * rhythmdb/rhythmdb-query-model.c:
5588         (rhythmdb_query_model_compute_status_normal):
5589         * rhythmdb/rhythmdb-query-model.h:
5590         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5591         * rhythmdb/rhythmdb.h:
5592         Change the various compute_status methods to accept a singular/plural
5593         pair to use in the status string.
5594         
5595         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5596         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5597         * sources/rb-source.c: (default_get_status):
5598         Call entries 'songs' by default, and 'episodes' in the podcast source.
5599         Fixes #340227.
5601 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5603         patch by:  Paul Drain
5605         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5606         Fixes #341817.
5608 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5610         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5611         Generate reorder maps correctly.
5612         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5613         Scroll to the first entry from the old selection.
5614         Fixes #322992.
5616 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5618         * data/ui/rhythmbox-ui.xml:
5619         * lib/rb-preferences.h:
5620         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5621         (rb_shell_playlist_created_cb),
5622         (rb_shell_view_sidepane_changed_cb),
5623         (rb_shell_sync_sidepane_visibility),
5624         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5625         (sidepane_visibility_changed_cb):
5626         * sources/rb-podcast-source.c:
5627         Convert sourcelist visibility to side-pane visbility.
5628         Fixes #339733
5630 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5632         * widgets/rb-header.c:
5633         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5634         'player', and make it use the private data structure allocated for it.
5636 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5638         * configure.ac: enable metadata helper with dbus < 0.35.
5640 2006-05-15  James Livingston  <doclivingston@gmail.com>
5642         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5644         * data/glade/song-info.glade:
5645         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5646         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5647         (rb_song_info_update_filesize): Add the file size into the song info
5648         window. Fixes bug 340861.
5650 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5652         * bindings/python/rhythmdb.defs:
5653         * rhythmdb/rhythmdb-query-model.c:
5654         (rhythmdb_query_model_set_property),
5655         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5656         * rhythmdb/rhythmdb-query-model.h:
5657         Add a new method to chain query models without importing entries from
5658         the parent into the child.  This is useful when the subset of entries
5659         in the child can be more easily determined by running a query than by
5660         filtering entries from the parent.
5662         * bindings/python/rb.defs:
5663         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5664         (rb_library_browser_set_property),
5665         (rb_library_browser_get_property), (rb_library_browser_new),
5666         (rebuild_child_model):
5667         * widgets/rb-library-browser.h:
5668         * sources/rb-auto-playlist-source.c:
5669         (rb_auto_playlist_source_constructor):
5670         * sources/rb-static-playlist-source.c:
5671         (rb_static_playlist_source_constructor):
5672         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5673         Use more efficient queries for constructing the browser query model
5674         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5675         backend to optimise the query) and run new queries rather than
5676         filtering entries from the parent.  Fixes #341402.
5678         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5680 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5682         * configure.ac:
5683         * shell/Makefile.am:
5684         * shell/main.c: (main), (load_uri_args), (send_present_message),
5685         (unregister_dbus_handler), (handle_dbus_message),
5686         (register_dbus_handler):
5687         Add minimal support for dbus 0.31 - 0.35.
5689         * doc/reference/Makefile.am:
5690         * doc/reference/rhythmbox.types:
5691         * data/Makefile.am:
5692         * data/GNOME_Rhythmbox.server.in:
5693         * data/rhythmbox.pc.in:
5694         * remote/*:
5695         * remote/bonobo/*:
5696         Remove remaining bonobo and generic remote interface files.
5698 2006-05-14  James Livingston  <doclivingston@gmail.com>
5700         * shell/rb-shell.c: (construct_widgets):
5701         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5702         resize the browser and queue-sidebar section of their panes, unless
5703         the other section is below the minimum size. Fixes bug 331927.
5705 2006-05-13  James Livingston  <doclivingston@gmail.com>
5707         * rhythmdb/rhythmdb-query-model.c:
5708         (rhythmdb_query_model_class_init),
5709         (rhythmdb_query_model_set_property),
5710         (rhythmdb_query_model_get_property),
5711         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5712         (rhythmdb_query_model_insert_into_main_list),
5713         (rhythmdb_query_model_insert_into_limited_list),
5714         (rhythmdb_query_model_do_reorder),
5715         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5716         (rhythmdb_query_model_location_sort_func),
5717         (rhythmdb_query_model_title_sort_func),
5718         (rhythmdb_query_model_album_sort_func),
5719         (rhythmdb_query_model_artist_sort_func),
5720         (rhythmdb_query_model_genre_sort_func),
5721         (rhythmdb_query_model_track_sort_func),
5722         (rhythmdb_query_model_double_ceiling_sort_func),
5723         (rhythmdb_query_model_ulong_sort_func),
5724         (rhythmdb_query_model_date_sort_func),
5725         (rhythmdb_query_model_string_sort_func):
5726         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5727         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5728         "data destroy" property. Fixed bug 341543.
5730         * bindings/python/rhythmdb.defs:
5731         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5732         rhythmdb_query_model_set_sorting_order
5734         * rhythmdb/rhythmdb-property-model.c:
5735         (rhythmdb_property_model_drag_data_get):
5736         * sources/rb-import-errors-source.c:
5737         (rb_import_errors_source_constructor):
5738         * sources/rb-missing-files-source.c:
5739         (rb_missing_files_source_constructor):
5740         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5741         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5742         * widgets/rb-entry-view.h: adapt to the above change.
5744 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5746         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5747         (rhythmdb_tree_load):
5748         Commit loaded entries in batches, rather than individually.  
5749         More startup time reduction.
5751 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5753         * doc/reference/Makefile.am: fix gtk-doc compilation
5755 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5757         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5758         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5759         * plugins/artdisplay/artdisplay/Loader.py:
5760         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5761         Only call the first artist the best match when album==Unknown.
5762         Don't perform each query twice if album doesn't include "Vol N".
5763         Fix searching for compilations.  Fix blacklisting.
5764         Part of bug #307848
5766 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5768         * Makefile.am:
5769         * bindings/python/Makefile.am:
5770         * bindings/python/rb.defs:
5771         * bindings/python/rb.override:
5772         * configure.ac:
5773         * doc/reference/Makefile.am:
5774         * plugins/Makefile.am:
5775         * plugins/audioscrobbler/Makefile.am:
5776         * plugins/ipod/Makefile.am:
5777         * plugins/lirc/Makefile.am:
5778         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5779         (impl_activate), (impl_deactivate):
5780         * plugins/sample/Makefile.am:
5781         * remote/Makefile.am:
5782         * shell/Makefile.am:
5783         * shell/main.c: (main), (main_shell_weak_ref_cb):
5784         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5785         (rb_shell_get_property), (rb_shell_window_state_cb),
5786         (idle_hide_mainwindow), (rb_shell_set_visibility),
5787         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5788         (rb_shell_set_song_property):
5789         * shell/rb-shell.h:
5790         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5791         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5792         (rb_tray_icon_get_property), (rb_tray_icon_new),
5793         (rb_tray_icon_button_press_event_cb),
5794         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5795         (rb_tray_icon_show_window_changed_cb):
5796         * shell/rb-tray-icon.h:
5798         Remove bonobo, require DBUS.
5799         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5800         Fixes #339720
5802 2006-05-13  James Livingston  <doclivingston@gmail.com>
5804         * bindings/python/rb.override: fix some pointer-type warnings
5806 2006-05-12  James Livingston  <doclivingston@gmail.com>
5808         * lib/rb-util.c: (rb_value_free):
5809         * lib/rb-util.h: Add function to unset and free a GValue* that was
5810         allocated in the heap.
5812         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5813         the metadata hastable values
5814         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5815         leak the metadata hashtable structure
5816         * metadata/rb-metadata-dbus.c:
5817         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5818         using g_strdup and then _take_string
5820         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5821         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5822         stat something.
5824         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5825         leak the encoded string
5827         * widgets/rb-property-view.c:
5828         (rb_property_view_selection_changed_cb): set some variables to have
5829         inital values, because some code paths may not set them before we use
5830         them.
5832         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5833         don't have python warning into a debug message".
5835 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5837         * data/rhythmbox.schemas: Use zero instead of null for
5838         default burn speed.  Fixes #341283.
5840 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5842         * bindings/python/rb.defs:
5843         * widgets/rb-library-browser.c:
5844         (rb_library_browser_get_property_view):
5845         * widgets/rb-library-browser.h:
5846         Add a method to get the property view for a given property.
5848         * sources/rb-browser-source.c:
5849         (rb_browser_source_cmd_choose_genre),
5850         (rb_browser_source_cmd_choose_artist),
5851         (rb_browser_source_cmd_choose_album):
5852         Change the browser selection by changing the property view selection. 
5853         Makes the selection change visible, fixing #331740.
5855 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5857         * bindings/python/rb.defs:
5858         * bindings/python/rb.override:
5859         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5860         * shell/rb-statusbar.c: (*),
5861         * sources/rb-import-errors-source.c: (impl_get_status):
5862         * sources/rb-iradio-source.c: (impl_get_status):
5863         * sources/rb-missing-files-source.c: (impl_get_status):
5864         * sources/rb-source.c: (default_get_status),
5865         (rb_source_get_status):
5866         * sources/rb-source.h:
5867         Allow sources to provide a progress value for the status bar.
5868         Simplify status bar processing (much less polling).
5869         Consider rhythmdb busy while it's still loading the database.
5871         * daapsharing/rb-daap-connection.c: (*)
5872         * daapsharing/rb-daap-connection.h:
5873         * lib/rb-marshal.list:
5874         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5875         (rb_daap_source_init), (connection_connecting_cb),
5876         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5877         (rb_daap_source_get_status):
5878         Provide status information for DAAP connections, and move processing
5879         of large responses into a separate thread.
5880         Fixes bugs #322020 and #338978.
5882 2006-05-09  James Livingston  <doclivingston@gmail.com>
5884         Split the artdisplay plugin into several files.
5885         Fix loader and amazon-search re-use issues.
5886         Add some better search heuristics.
5888         * configure.ac:
5889         * plugins/artdisplay/Makefile.am:
5890         * plugins/artdisplay/artdisplay.py:
5891         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5892         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5893         * plugins/artdisplay/artdisplay/Loader.py:
5894         * plugins/artdisplay/artdisplay/Makefile.am:
5895         * plugins/artdisplay/artdisplay/__init__.py:
5897 2006-05-09  James Livingston  <doclivingston@gmail.com>
5899         * sources/rb-browser-source.h: remove the _has_first_added_column
5900         stuff since it isn't actually used anywhere. Sources that want it
5901         should just add it themselves, as the library already does
5903         * bindings/python/rb.defs:
5904         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5905         * sources/rb-library-source.c: (rb_library_source_class_init):
5906         * sources/rb-removable-media-source.c:
5907         (rb_removable_media_source_class_init): Remove the remanants of the
5908         above.
5910 2006-05-09  James Livingston  <doclivingston@gmail.com>
5912         * bindings/python/rb.defs:
5913         * sources/rb-browser-source.h: remove a function that was declared in
5914         the header, but not defined anywhere.
5916 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5918         * plugins/artdisplay/.cvsignore:
5919         * plugins/ipod/.cvsignore: Added.
5921 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5923         * sources/rb-auto-playlist-source.c:
5924         (rb_auto_playlist_source_new_from_xml):
5925         Fix reading of older playlist files where all three limits were
5926         specified so we take the first nonzero limit.  From #341053.
5928 2006-05-09  James Livingston  <doclivingston@gmail.com>
5930         * bindings/python/Makefile.am:
5931         * bindings/python/rb.defs:
5932         * bindings/python/rb.override: bind RBBrowserSource,
5933         RBRemovableMediaSource and RBRemovableMediamanager.
5935 2006-05-09  James Livingston  <doclivingston@gmail.com>
5937         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5939         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5940         Fixes bug 339221.
5942 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5944         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5945         Don't explode when trying to edit a query with no limit set.
5947 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5949         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5950         Clear the should_queue flag when switching to a non-submittable entry,
5951         so we don't submit songs that played for three seconds before
5952         switching to a podcast episode.
5954         * rhythmdb/rhythmdb-query-model.c
5955         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5956         in the drag data list.
5958 2006-05-08  James Livingston  <doclivingston@gmail.com>
5960         * lib/rb-util.c: (rb_value_array_append_data):
5961         * lib/rb-util.h: add function which is basically a combination of
5962         G_VALUE_COLLECT and g_value_array_append.
5964         * rhythmdb/rhythmdb-query-model.h:
5965         * rhythmdb/rhythmdb-query-model.c:
5966         (rhythmdb_query_model_class_init),
5967         (rhythmdb_query_model_set_property),
5968         (rhythmdb_query_model_get_property),
5969         (rhythmdb_query_model_finalize),
5970         (rhythmdb_query_model_update_limited_entries),
5971         (rhythmdb_query_model_set_sort_order),
5972         (rhythmdb_query_model_within_limit),
5973         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5974         saner. Rather than having <count=N, time=N, size=N> we now have a
5975         <type, value> pair. This will also make it much easier to add new
5976         limit types in the future.
5978         * shell/rb-playlist-manager.c:
5979         (rb_playlist_manager_set_automatic_playlist),
5980         (rb_playlist_manager_cmd_edit_automatic_playlist):
5981         * sources/rb-auto-playlist-source.c:
5982         (rb_auto_playlist_source_finalize),
5983         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5984         (_save_write_ulong), (_save_write_uint64),
5985         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5986         (rb_auto_playlist_source_set_query),
5987         (rb_auto_playlist_source_get_query):
5988         * sources/rb-auto-playlist-source.h:
5989         * sources/rb-library-source.c:
5990         (rb_library_source_add_child_source):
5991         * sources/rb-psp-source.c: (visit_playlist_dirs):
5992         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5993         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5994         * widgets/rb-query-creator.h: Adapt to the above change.
5996 2006-05-08  James Livingston  <doclivingston@gmail.com>
5998         * shell/rb-playlist-manager.c:
5999         (rb_playlist_manager_cmd_edit_automatic_playlist):
6000         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
6001         (rb_auto_playlist_source_set_query),
6002         (rb_auto_playlist_source_get_query): copy the query in the _get method
6003         and free it in things calling that. Fixes a crasher.
6005 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6007         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6008         Make entries on newly mounted volumes visible immediately, hiding them
6009         later if they turn out to be missing.  Fixes #340068.
6011 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6013         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
6014         Ignore zip files and ignore errors for files we've decided to ignore.
6016 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6018         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
6019         Add missing }, should fix #340844.
6021 2006-05-06  James Livingston  <doclivingston@gmail.com>
6023         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
6024         typo.
6026 2006-05-06  James Livingston  <doclivingston@gmail.com>
6028         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
6029         that we work with libnotify >= 0.4
6031 2006-05-06  James Livingston  <doclivingston@gmail.com>
6033         patch by: Joe Barnett  <thejoe@gmail.com>
6035         * configure.ac: check if we're using a version of libgpod that
6036         supports the Motorola ROKR
6038         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
6039         for the db path, if we using the newer version.
6041         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
6043 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6045         * rhythmdb/rhythmdb-query-model.c:
6046         (rhythmdb_query_model_drag_data_get):
6047         Use playback URI, not location, for drag data.  Fixes #322597.
6049 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
6051         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
6053 2006-05-03  James Livingston  <doclivingston@gmail.com>
6055         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
6056         (rb_add_id3_tagger), (rb_metadata_save):
6057         Set the tags on the tagging element when it is
6058         created, not during pipeline creation - which is required for
6059         dynamically created elements.
6061         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
6062         support for using the "vorbistag" element to re-tag ogg vorbis files.
6063         Fixes bug 339878.
6065 2006-05-03  James Livingston  <doclivingston@gmail.com>
6067         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
6069         * plugins/artdisplay/artdisplay.py:
6070         - Fix small bug callback of data loader getting overwritten on fast
6071         connections.
6072         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
6073         Jonathan Matthew)
6074         - Fix Rhythmbox UI blocking while loading/searching cover art
6075         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
6076         - Initial approach to allow additional "art search engines"
6077         - Further modularization in a couple of places
6078         - Minor fixes for empty entries (iradio, album, artist etc.)
6080 2006-05-03  James Livingston  <doclivingston@gmail.com>
6082         * shell/rb-playlist-manager.c:
6083         (rb_playlist_manager_playlist_entries_changed),
6084         (rb_playlist_manager_set_source): don't show the edit/delete/rename
6085         options for non-local sources, rather than showing disabled ones.
6087         * sources/rb-library-source.c: (add_child_sources_idle),
6088         (rb_library_source_constructor), (rb_library_source_new),
6089         (rb_library_source_library_location_changed),
6090         (rb_library_source_add_child_source),
6091         (rb_library_source_sync_child_sources): Create "child library" sources
6092         when the user has multiple library locations set. Fixes bug 100552.
6094 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6096         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
6097         * plugins/sample/sample.rb-plugin.desktop.in:
6098         Finish changing 'Author' to 'Authors'
6099         
6100         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
6101         (rhythmdb_entry_import_error_get_type):
6102         Implement get_playback_uri for import errors (returns NULL)
6104         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6105         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
6106         entry, rather than doing entry type checks.
6108 2006-05-02  James Livingston  <doclivingston@gmail.com>
6110         patch from Alessandro Decina  <alessandro@nnva.org>
6112         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
6113         the signal emission in the case of fatal-on-init errors. From bug
6114         322268.
6116 2006-05-02  James Livingston  <doclivingston@gmail.com>
6118         * rhythmdb/rhythmdb.h:
6119         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
6120         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
6121         (rhythmdb_entry_podcast_post_get_type),
6122         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
6123         virtual function to entry-types for getting the playback URI. From bug
6124         330226.
6126         * backends/gstreamer/rb-encoder-gst.c:
6127         (create_pipeline_and_source), (extract_track):
6128         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
6129         to get the URI.
6131 2006-05-02  James Livingston  <doclivingston@gmail.com>
6133         patch by: Brian Cameron  <brian.cameron@sun.com>
6135         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
6136         340337.
6138 2006-05-01  William Jon McCann  <mccann@jhu.edu>
6140         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
6141         instead of clear.  Use regex matching to strip "disc N"
6142         from album.  Match titles in ProductName.  Perform
6143         fallback queries including various artist compilations.
6144         Include "us" locale.  Improve queries when artist or album
6145         is unknown.  Use medium size image if large is unavailable.
6147         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
6148         William Jon McCann  <mccann@jhu.edu>
6149         
6150 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6152         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
6153         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
6154         (conjunctive_query): Sanity check.
6155         (evaluate_conjunctive_subquery): 
6156         Don't return TRUE immediately when a relative-time query criterion
6157         matches.  Fixes #339972.
6159 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6161         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6162         Don't crash if primary or secondary are NULL.
6164 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6166         * doc/reference/Makefile.am: fix gtk-doc build yet again
6168 2006-04-28  James Livingston  <doclivingston@gmail.com>
6170         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
6171         python console. Fixes bug 339934.
6173 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6175         * rhythmdb/rhythmdb-property-model.c:
6176         (rhythmdb_property_model_drag_data_get):
6177         When creating uri list drag data, create a new query model based on
6178         the query model the property model is attached to.  Makes the
6179         resulting query use the right entry type and include the upstream
6180         query criteria.  Fixes half of #327540.
6182 2006-04-27  James Livingston  <doclivingston@gmail.com>
6184         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
6185         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
6186         build fixes.
6188 2006-04-27  James Livingston  <doclivingston@gmail.com>
6190         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
6192 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6194         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
6195         (rb_playlist_manager_save_data),
6196         (rb_playlist_manager_save_playlists):
6197         * shell/rb-playlist-manager.h:
6198         * shell/rb-shell.c: (rb_shell_sync_state),
6199         (idle_save_playlist_manager):
6200         Remove a bit more threading insanity from the playlist manager.
6202 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6204         * shell/rb-playlist-manager.c: 
6205         * shell/rb-playlist-manager.h:
6206         Remove dead code, add gtk-doc, remove threading insanity (mostly).
6207         
6208         * shell/rb-shell.c: (rb_shell_sync_state),
6209         (idle_save_playlist_manager), (construct_sources),
6210         (rb_shell_select_source), (rb_shell_sync_party_mode):
6211         Adjustments for above changes.
6213 2006-04-26  William Jon McCann  <mccann@jhu.edu>
6215         * sources/rb-browser-source.c (impl_browser_toggled):
6216         Reset browser when hidden.  Fixes #339617.
6218 2006-04-26  James Livingston  <doclivingston@gmail.com>
6220         * backends/Makefile.am:
6221         * backends/gstreamer/Makefile.am: work again with separated
6222         built-roots
6224 2006-04-26  James Livingston  <doclivingston@gmail.com>
6226         * shell/rb-removable-media-manager.c:
6227         (rb_removable_media_manager_set_uimanager): fix compilation with
6228         -Werror and --enable-track-transfer.
6230 2006-04-26  James Livingston  <doclivingston@gmail.com>
6232         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
6233         implementing class. In theory allows alternate player implementations
6234         to be selected at run-time rather than compile-time. Fixes bug 338667.
6236         * Makefile.am:
6237         * backends/Makefile.am:
6238         * backends/gstreamer/Makefile.am:
6239         * backends/gstreamer/rb-player-gst.h:
6240         * backends/rb-player.c: (rb_player_interface_init),
6241         (rb_player_get_type), (rb_player_open), (rb_player_opened),
6242         (rb_player_close), (rb_player_play), (rb_player_pause),
6243         (rb_player_playing), (rb_player_set_volume),
6244         (rb_player_get_volume), (rb_player_set_replaygain),
6245         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
6246         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
6247         (_rb_player_emit_buffering), (_rb_player_emit_error),
6248         (_rb_player_emit_tick), (rb_player_error_quark):
6249         * player/Makefile.am:
6250         * player/rb-player-gst.c: (rb_player_gst_class_init),
6251         (rb_player_init), (tick_timeout), (rb_player_gst_init),
6252         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
6253         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
6254         (process_tag), (found_tag_cb), (buffering_cb),
6255         (rb_player_gst_bus_cb), (rb_player_gst_construct),
6256         (rb_player_gst_new):
6257         * player/rb-player.h:
6258         * shell/Makefile.am:
6259         * sources/rb-audiocd-source.c:
6260         * widgets/Makefile.am:
6261         * widgets/rb-header.c: (rb_header_class_init):
6263 2006-04-26  James Livingston  <doclivingston@gmail.com>
6265         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6266         don't try to download an episode if it couldn't be parsed. Fixes bug
6267         339712.
6269         * shell/rb-removable-media-manager.c:
6270         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
6271         Library" option when track transfer is disabled. Fixes bug 339728.
6273 2006-04-26  James Livingston  <doclivingston@gmail.com>
6275         * data/ui/Makefile.am:
6276         * data/ui/daap-ui.xml:
6277         * data/ui/rhythmbox-ui.xml:
6278         * sources/rb-daap-source.c: (rb_daap_sources_init),
6279         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
6280         way that the ipod ui is. Fixes bug 339743.
6282 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6284         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
6285         (process_added_entries_cb), (process_deleted_entries_cb),
6286         (rhythmdb_commit_internal): 
6287         Combine the idle functions to emit entry-added and entry-deleted,
6288         and combine as many invocations of same as possible.  Another
6289         significant reduction in startup time.
6290         
6291         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6292         Delay the next call to rhythmdb_process_events if the queue is
6293         empty or if we can't process any of the events in the queue because
6294         the database is read only.
6296         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6298 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6300         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6302         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6303         Don't special case errors quite so much.
6305 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6307         * data/rhythmbox.schemas: Remove default speed.
6309         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6310         Add n-c-b 2.15 support.  Make the default speed to slowest since
6311         that is all that works reliably.
6313 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6315         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6316         Fix compiler error from last commit.
6318 2006-04-25  James Livingston  <doclivingston@gmail.com>
6320         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6321         transcoding-related issues. From bug 322268.
6323         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6324         don't emit the signal, since the object is being finalised, which os a
6325         Bad Thing To Do.
6327         (profile_bin_find_encoder), (get_profile_from_mime_type),
6328         (transcode_track): find the encoding element by iterating looking for
6329         element in the class Codec/Encoder/Audio rather than the one named
6330         "enc".
6332 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6334         * shell/rb-shell-player.xml:
6335         * shell/rb-shell.xml:
6336         Add signal argument information.  
6337         Patch by Tim Moloney  <t.moloney@verizon.net>
6339         * shell/rb-shell.c: (rb_shell_window_state_cb):
6340         Use the right value for the visibility_changed signal.  Most of the
6341         time, anyway.
6343 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6345         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6346         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6347         (impl_create_configure_dialog):
6348         * data/glade/audioscrobbler-prefs.glade:
6349         * shell/rb-audioscrobbler.c (*):
6350         * lib/rb-preferences.h:
6351         * data/rhythmbox.schemas:
6352         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6353         Add status information (# tracks submitted, # queued, last submit
6354         time, result of last submission) to the plugin config window.
6355         Remove 'enabled' setting, since it's easier to just disable the
6356         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6357         nonexistant (so far) 'last.fm streaming' plugin.
6358         
6359         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6360         plugin
6362         Fixes some of #325848.  We still don't provide a way to view the
6363         submission queue.
6365 2006-04-25  James Livingston  <doclivingston@gmail.com>
6367         patch by: Anders Petersson  <demitar@worldforge.org>
6369         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6370         the YY-MM-DD format.
6372 2006-04-23  James Livingston  <doclivingston@gmail.com>
6374         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6375         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6376         * bindings/python/override_common.h:
6377         * bindings/python/rb.override: python binding fixes
6379 2006-04-23  James Livingston  <doclivingston@gmail.com>
6381         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6382         (rb_statusbar_sync_with_source),
6383         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6384         callback, rather than immediately every time. Takes ~5% off my warm-cache
6385         startup time.
6387         * bindings/python/rhythmdb.defs: fix the types using for
6388         RhythmDBEntryTypes.
6390 2006-04-22  James Livingston  <doclivingston@gmail.com>
6392         * data/ui/rhythmbox-ui.xml:
6393         * shell/rb-shell.c:
6394         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6395         (remove_source), (rb_daap_sources_init),
6396         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6397         (rb_daap_source_disconnect):
6398         * sources/rb-source.c: (rb_source_class_init),
6399         (rb_source_deactivate):
6400         * sources/rb-source.h: move the "disconnect" functionality from into
6401         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6403 2006-04-22  James Livingston  <doclivingston@gmail.com>
6405         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6406         actually get the translated strings for browser headers (they were
6407         already marked as translatable). Fixes bug 339380.
6409 2006-04-22  James Livingston  <doclivingston@gmail.com>
6411         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6412         submission timeout when the object is finalised.
6414         * bindings/python/Makefile.am:
6415         * bindings/python/rb.defs:
6416         * bindings/python/rb.override:
6417         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6419         * widgets/rb-library-browser.c:
6420         (rb_library_browser_construct_query), (rebuild_output_model),
6421         (rebuild_child_model):
6422         * widgets/rb-library-browser.h: change from GPtrArray to
6423         RhythmDBQuery (which in C is the same thing).
6425 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6427         * shell/rb-shell.c: (rb_shell_get_song_properties):
6428         Don't try to include entry-type (or anything else not easily
6429         marshallable) in the song properties hash table.
6431         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6433         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6434         (rb_playlist_source_constructor): Fix entry-type initialization as
6435         with previous commit.
6437 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6439         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6440         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6441         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6442         (rb_podcast_source_constructor):
6443         Set default values for entry-type after base class construction,
6444         rather than in _init, because gobject will set the entry-type property
6445         to NULL after _init if no value is provided.  Fixes #339206.
6447 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6449         patch by: Gunnar Steinn Magnusson
6451         * COPYING:
6452         * backends/gstreamer/rb-encoder-gst.c:
6453         * backends/gstreamer/rb-encoder-gst.h:
6454         * backends/rb-encoder.c:
6455         * backends/rb-encoder.h:
6456         * bindings/python/override_common.c:
6457         * bindings/python/override_common.h:
6458         * daapsharing/rb-daap-connection.c:
6459         * daapsharing/rb-daap-connection.h:
6460         * daapsharing/rb-daap-dialog.c:
6461         * daapsharing/rb-daap-dialog.h:
6462         * daapsharing/rb-daap-mdns-browser-avahi.c:
6463         * daapsharing/rb-daap-mdns-browser-howl.c:
6464         * daapsharing/rb-daap-mdns-browser.h:
6465         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6466         * daapsharing/rb-daap-mdns-publisher-howl.c:
6467         * daapsharing/rb-daap-mdns-publisher.h:
6468         * daapsharing/rb-daap-share.c:
6469         * daapsharing/rb-daap-share.h:
6470         * daapsharing/rb-daap-sharing.c:
6471         * daapsharing/rb-daap-sharing.h:
6472         * daapsharing/rb-daap-src.c:
6473         * daapsharing/rb-daap-src.h:
6474         * daapsharing/rb-daap-structure.c:
6475         * daapsharing/rb-daap-structure.h:
6476         * help/C/fdl-appendix.xml:
6477         * help/es/es.po:
6478         * help/ja/fdl-appendix.xml:
6479         * iradio/rb-new-station-dialog.c:
6480         * iradio/rb-new-station-dialog.h:
6481         * iradio/rb-station-properties-dialog.c:
6482         * iradio/rb-station-properties-dialog.h:
6483         * lib/mkdtemp.c:
6484         * lib/mkdtemp.h:
6485         * lib/rb-cut-and-paste-code.c:
6486         * lib/rb-cut-and-paste-code.h:
6487         * lib/rb-debug.c:
6488         * lib/rb-debug.h:
6489         * lib/rb-file-helpers.c:
6490         * lib/rb-file-helpers.h:
6491         * lib/rb-glade-helpers.c:
6492         * lib/rb-glade-helpers.h:
6493         * lib/rb-preferences.h:
6494         * lib/rb-proxy-config.c:
6495         * lib/rb-stock-icons.c:
6496         * lib/rb-stock-icons.h:
6497         * lib/rb-thread.c:
6498         * lib/rb-thread.h:
6499         * lib/rb-tree-dnd.c:
6500         * lib/rb-tree-dnd.h:
6501         * lib/rb-util.c:
6502         * lib/rb-util.h:
6503         * metadata/rb-metadata-common.c:
6504         * metadata/rb-metadata-dbus-client.c:
6505         * metadata/rb-metadata-dbus-service.c:
6506         * metadata/rb-metadata-dbus.c:
6507         * metadata/rb-metadata-dbus.h:
6508         * metadata/rb-metadata-gst.c:
6509         * metadata/rb-metadata.h:
6510         * metadata/sj-error.c:
6511         * metadata/sj-error.h:
6512         * metadata/sj-metadata-musicbrainz.c:
6513         * metadata/sj-metadata-musicbrainz.h:
6514         * metadata/sj-metadata.c:
6515         * metadata/sj-metadata.h:
6516         * metadata/sj-structures.c:
6517         * metadata/sj-structures.h:
6518         * metadata/test-metadata.c:
6519         * player/rb-player-gst.c:
6520         * player/rb-player.h:
6521         * player/rb-recorder-gst.c:
6522         * player/rb-recorder.h:
6523         * plugins/artdisplay/artdisplay.py:
6524         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6525         * plugins/ipod/rb-ipod-plugin.c:
6526         * plugins/lirc/rb-lirc-plugin.c:
6527         * plugins/pythonconsole/pythonconsole.py:
6528         * plugins/rb-module.c:
6529         * plugins/rb-module.h:
6530         * plugins/rb-plugin-manager.c:
6531         * plugins/rb-plugin-manager.h:
6532         * plugins/rb-plugin.c:
6533         * plugins/rb-plugin.h:
6534         * plugins/rb-plugins-engine.c:
6535         * plugins/rb-plugins-engine.h:
6536         * plugins/rb-python-module.c:
6537         * plugins/rb-python-module.h:
6538         * plugins/rb-python-plugin.c:
6539         * plugins/rb-python-plugin.h:
6540         * plugins/sample/rb-sample-plugin.c:
6541         * po/de.po:
6542         * po/el.po:
6543         * po/en_CA.po:
6544         * po/eu.po:
6545         * po/fi.po:
6546         * po/fr.po:
6547         * po/it.po:
6548         * po/ja.po:
6549         * po/mk.po:
6550         * po/pt_BR.po:
6551         * po/ru.po:
6552         * podcast/rb-feed-podcast-properties-dialog.c:
6553         * podcast/rb-feed-podcast-properties-dialog.h:
6554         * podcast/rb-new-podcast-dialog.c:
6555         * podcast/rb-new-podcast-dialog.h:
6556         * podcast/rb-podcast-manager.c:
6557         * podcast/rb-podcast-manager.h:
6558         * podcast/rb-podcast-parse.c:
6559         * podcast/rb-podcast-parse.h:
6560         * podcast/rb-podcast-properties-dialog.c:
6561         * podcast/rb-podcast-properties-dialog.h:
6562         * remote/bonobo/libmain.c:
6563         * remote/bonobo/rb-nautilus-context-menu.c:
6564         * remote/bonobo/rb-nautilus-context-menu.h:
6565         * remote/bonobo/rb-remote-bonobo.c:
6566         * remote/bonobo/rb-remote-bonobo.h:
6567         * remote/rb-remote-client-proxy.c:
6568         * remote/rb-remote-client-proxy.h:
6569         * remote/rb-remote-common.c:
6570         * remote/rb-remote-common.h:
6571         * remote/rb-remote-proxy.c:
6572         * remote/rb-remote-proxy.h:
6573         * rhythmdb/gsequence.c:
6574         * rhythmdb/gsequence.h:
6575         * rhythmdb/rb-refstring.c:
6576         * rhythmdb/rb-refstring.h:
6577         * rhythmdb/rhythmdb-gda.c:
6578         * rhythmdb/rhythmdb-gda.h:
6579         * rhythmdb/rhythmdb-private.h:
6580         * rhythmdb/rhythmdb-property-model.c:
6581         * rhythmdb/rhythmdb-property-model.h:
6582         * rhythmdb/rhythmdb-query-model.c:
6583         * rhythmdb/rhythmdb-query-model.h:
6584         * rhythmdb/rhythmdb-query-results.c:
6585         * rhythmdb/rhythmdb-query-results.h:
6586         * rhythmdb/rhythmdb-tree.c:
6587         * rhythmdb/rhythmdb-tree.h:
6588         * rhythmdb/rhythmdb.c:
6589         * rhythmdb/rhythmdb.h:
6590         * shell/main.c:
6591         * shell/rb-audioscrobbler.c:
6592         * shell/rb-audioscrobbler.h:
6593         * shell/rb-history.c:
6594         * shell/rb-history.h:
6595         * shell/rb-play-order-linear-loop.c:
6596         * shell/rb-play-order-linear-loop.h:
6597         * shell/rb-play-order-linear.c:
6598         * shell/rb-play-order-linear.h:
6599         * shell/rb-play-order-queue.c:
6600         * shell/rb-play-order-queue.h:
6601         * shell/rb-play-order-random-by-age-and-rating.c:
6602         * shell/rb-play-order-random-by-age-and-rating.h:
6603         * shell/rb-play-order-random-by-age.c:
6604         * shell/rb-play-order-random-by-age.h:
6605         * shell/rb-play-order-random-by-rating.c:
6606         * shell/rb-play-order-random-by-rating.h:
6607         * shell/rb-play-order-random-equal-weights.c:
6608         * shell/rb-play-order-random-equal-weights.h:
6609         * shell/rb-play-order-random.c:
6610         * shell/rb-play-order-random.h:
6611         * shell/rb-play-order-shuffle.c:
6612         * shell/rb-play-order-shuffle.h:
6613         * shell/rb-play-order.c:
6614         * shell/rb-play-order.h:
6615         * shell/rb-playlist-manager.c:
6616         * shell/rb-playlist-manager.h:
6617         * shell/rb-removable-media-manager.c:
6618         * shell/rb-removable-media-manager.h:
6619         * shell/rb-shell-clipboard.c:
6620         * shell/rb-shell-clipboard.h:
6621         * shell/rb-shell-player.c:
6622         * shell/rb-shell-player.h:
6623         * shell/rb-shell-preferences.c:
6624         * shell/rb-shell-preferences.h:
6625         * shell/rb-shell.c:
6626         * shell/rb-shell.h:
6627         * shell/rb-source-header.c:
6628         * shell/rb-source-header.h:
6629         * shell/rb-statusbar.c:
6630         * shell/rb-statusbar.h:
6631         * shell/rb-tray-icon.c:
6632         * shell/rb-tray-icon.h:
6633         * sources/rb-audiocd-source.c:
6634         * sources/rb-audiocd-source.h:
6635         * sources/rb-auto-playlist-source.c:
6636         * sources/rb-auto-playlist-source.h:
6637         * sources/rb-browser-source.c:
6638         * sources/rb-browser-source.h:
6639         * sources/rb-daap-source.c:
6640         * sources/rb-daap-source.h:
6641         * sources/rb-generic-player-source.c:
6642         * sources/rb-generic-player-source.h:
6643         * sources/rb-import-errors-source.c:
6644         * sources/rb-import-errors-source.h:
6645         * sources/rb-ipod-source.c:
6646         * sources/rb-ipod-source.h:
6647         * sources/rb-iradio-source.c:
6648         * sources/rb-iradio-source.h:
6649         * sources/rb-library-source.c:
6650         * sources/rb-library-source.h:
6651         * sources/rb-missing-files-source.c:
6652         * sources/rb-missing-files-source.h:
6653         * sources/rb-nokia770-source.c:
6654         * sources/rb-nokia770-source.h:
6655         * sources/rb-play-queue-source.c:
6656         * sources/rb-play-queue-source.h:
6657         * sources/rb-playlist-source-recorder.c:
6658         * sources/rb-playlist-source-recorder.h:
6659         * sources/rb-playlist-source.c:
6660         * sources/rb-playlist-source.h:
6661         * sources/rb-playlist-xml.h:
6662         * sources/rb-podcast-source.c:
6663         * sources/rb-podcast-source.h:
6664         * sources/rb-psp-source.c:
6665         * sources/rb-psp-source.h:
6666         * sources/rb-removable-media-source.c:
6667         * sources/rb-removable-media-source.h:
6668         * sources/rb-source.c:
6669         * sources/rb-source.h:
6670         * sources/rb-sourcelist-model.c:
6671         * sources/rb-sourcelist-model.h:
6672         * sources/rb-sourcelist.c:
6673         * sources/rb-sourcelist.h:
6674         * sources/rb-static-playlist-source.c:
6675         * sources/rb-static-playlist-source.h:
6676         * tests/test-cd.c:
6677         * tests/test-cmdline.c:
6678         * tests/test-rhythmdb-indexing.c:
6679         * tests/test-rhythmdb-query.c:
6680         * tests/test-rhythmdb-simple.c:
6681         * tests/test-rhythmdb-tree-deserialization.c:
6682         * tests/test-rhythmdb-tree-serialization.c:
6683         * tests/test-rhythmdb-view.c:
6684         * widgets/bacon-volume.c:
6685         * widgets/bacon-volume.h:
6686         * widgets/disclosure-widget.c:
6687         * widgets/disclosure-widget.h:
6688         * widgets/eel-gconf-extensions.c:
6689         * widgets/eel-gconf-extensions.h:
6690         * widgets/eggtrayicon.c:
6691         * widgets/eggtrayicon.h:
6692         * widgets/libsexy/sexy-icon-entry.c:
6693         * widgets/libsexy/sexy-icon-entry.h:
6694         * widgets/rb-cell-renderer-pixbuf.c:
6695         * widgets/rb-cell-renderer-pixbuf.h:
6696         * widgets/rb-cell-renderer-rating.c:
6697         * widgets/rb-cell-renderer-rating.h:
6698         * widgets/rb-dialog.c:
6699         * widgets/rb-dialog.h:
6700         * widgets/rb-druid.c:
6701         * widgets/rb-druid.h:
6702         * widgets/rb-entry-view.c:
6703         * widgets/rb-entry-view.h:
6704         * widgets/rb-header.c:
6705         * widgets/rb-header.h:
6706         * widgets/rb-library-browser.c:
6707         * widgets/rb-library-browser.h:
6708         * widgets/rb-property-view.c:
6709         * widgets/rb-property-view.h:
6710         * widgets/rb-query-creator-private.h:
6711         * widgets/rb-query-creator-properties.c:
6712         * widgets/rb-query-creator.c:
6713         * widgets/rb-query-creator.h:
6714         * widgets/rb-rating-helper.c:
6715         * widgets/rb-rating-helper.h:
6716         * widgets/rb-rating.c:
6717         * widgets/rb-rating.h:
6718         * widgets/rb-search-entry.c:
6719         * widgets/rb-search-entry.h:
6720         * widgets/rb-song-display-box.c:
6721         * widgets/rb-song-display-box.h:
6722         * widgets/rb-song-info.c:
6723         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6725 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6727         patch by: Gareth Murphy, James Livingston
6729         * bindings/python/rb.defs:
6730         * configure.ac:
6731         * plugins/Makefile.am:
6732         * plugins/artdisplay/Makefile.am:
6733         * plugins/artdisplay/artdisplay.py:
6734         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6735         * plugins/rb-python-module.c: (rb_python_module_init_python):
6736         * shell/rb-shell.c: (construct_widgets),
6737         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6738         (rb_shell_add_widget), (rb_shell_remove_widget),
6739         (rb_shell_ui_location_get_type):
6740         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6742 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6744         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6745         Fix build failure caused by the combination of the previous two
6746         commits.
6748 2006-04-20  James Livingston  <doclivingston@gmail.com>
6750         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6751         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6752         table to the entry types, which will allow us to get rid of some of
6753         the "if entry type == WHATEVER" code everywhere. From bug 
6755         * bindings/python/rb.defs:
6756         * bindings/python/rb.override:
6757         * bindings/python/rhythmdb.defs:
6758         * bindings/python/rhythmdb.override:
6759         * daapsharing/rb-daap-connection.c:
6760         (rb_daap_connection_class_init), (rb_daap_connection_init),
6761         (rb_daap_connection_set_property),
6762         (rb_daap_connection_get_property):
6763         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6764         * podcast/rb-podcast-manager.c:
6765         (rb_podcast_manager_entry_downloaded),
6766         (rb_podcast_manager_subscribe_feed),
6767         (rb_podcast_manager_db_entry_added_cb),
6768         (rb_podcast_manager_db_entry_deleted_cb),
6769         (rb_podcast_manager_insert_feed):
6770         * rhythmdb/rhythmdb-private.h:
6771         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6772         (conjunctive_query):
6773         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6774         (process_added_entries_cb), (rhythmdb_entry_allocate),
6775         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6776         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6777         (rhythmdb_process_metadata_load),
6778         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6779         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6780         (write_encoded_gvalue), (read_encoded_property),
6781         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6782         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6783         (rhythmdb_entry_iradio_get_type),
6784         (rhythmdb_entry_podcast_post_get_type),
6785         (rhythmdb_entry_podcast_feed_get_type),
6786         (rhythmdb_entry_import_error_get_type),
6787         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6788         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6789         (rhythmdb_entry_type_get_type):
6790         * rhythmdb/rhythmdb.h:
6791         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6792         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6793         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6794         (rb_shell_player_entry_activated_cb), (info_available_cb):
6795         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6796         (rb_shell_register_entry_type_for_source),
6797         (rb_shell_playing_from_queue_cb),
6798         (rb_shell_playing_entry_changed_cb),
6799         (rb_shell_player_stream_song_changed_cb),
6800         (rb_shell_jump_to_entry_with_source),
6801         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6802         (handle_playlist_entry_cb), (rb_shell_load_uri):
6803         * shell/rb-shell.h:
6804         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6805         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6806         (rb_browser_source_init), (rb_browser_source_set_property),
6807         (rb_browser_source_get_property):
6808         * sources/rb-ipod-source.c: (impl_paste):
6809         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6810         (rb_iradio_source_init), (rb_iradio_source_set_property),
6811         (rb_iradio_source_get_property):
6812         * sources/rb-library-source.c: (impl_paste):
6813         * sources/rb-missing-files-source.c:
6814         (rb_missing_files_source_class_init),
6815         (rb_missing_files_source_init),
6816         (rb_missing_files_source_set_property),
6817         (rb_missing_files_source_get_property):
6818         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6819         (rb_playlist_source_init), (rb_playlist_source_set_property),
6820         (rb_playlist_source_get_property):
6821         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6822         (rb_podcast_source_init), (rb_podcast_source_set_property),
6823         (rb_podcast_source_get_property):
6824         * sources/rb-static-playlist-source.c:
6825         (rb_static_playlist_source_add_location_internal):
6827 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6829         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6830         (rhythmdb_add_import_error_entry),
6831         (entry_volume_mounted_or_unmounted),
6832         (rhythmdb_volume_unmounted_cb):
6833         When a volume is unmounted, delete import errors for files stored on
6834         it.  When a volume is mounted, stat all tracks stored on it, rather
6835         than assuming they're present.  Fixes #339023.
6837 2006-04-20  James Livingston  <doclivingston@gmail.com>
6839         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6840         browser visibility for non-gconf-using sources (like playlists). Part
6841         of bug 118862.
6843         * shell/rb-source-header.c: (sourcestate_free),
6844         (rb_source_header_init), (rb_source_header_finalize),
6845         (rb_source_header_source_weak_destroy_cb): switch from storing the
6846         search string to storing a "source state" structure
6848         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6849         (rb_source_header_search_cb), (rb_source_header_clear_search),
6850         (rb_source_header_disclosure_toggled_cb): as well as storing the
6851         string, stop the visibility of the source's browser.
6853 2006-04-20  James Livingston  <doclivingston@gmail.com>
6855         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6856         library entries back into the library. Fixes bug 339065.
6858 2006-04-20  James Livingston  <doclivingston@gmail.com>
6860         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6861         only exists in glib 2.10.
6863 2006-04-20  James Livingston  <doclivingston@gmail.com>
6865         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6866         Solaris. From bug 335318.
6868         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6869         * shell/rb-audioscrobbler.c:
6870         * sources/rb-psp-source.c:
6872 2006-04-20  James Livingston  <doclivingston@gmail.com>
6874         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6875         issues for some people.
6877         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6878         accidental s/suffix/prefix/
6880         * sources/rb-auto-playlist-source.c:
6881         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6882         you from sorting playlists which aren't limited by time.
6884 2006-04-19  James Livingston  <doclivingston@gmail.com>
6886         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6887         duration or bitrate back to the file, since they are properties of the
6888         audio data, not tags we can set.
6890 2006-04-19  James Livingston  <doclivingston@gmail.com>
6892         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6893         of libtool, to fix builds which are using a different version. Fixes
6894         bug 338996.
6896         * shell/Makefile.am:
6898 2006-04-19  James Livingston  <doclivingston@gmail.com>
6900         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6901         to sync data to a file which is uneditable.
6903 2006-04-19  James Livingston  <doclivingston@gmail.com>
6905         patch by: Gavin Stewart  <gavin@brokentrain.net>
6907         * data/glade/playlist-save.glade:
6908         * data/glade/Makefile.am:
6909         * po/POTFILES.in: add the playlist saving dialog.
6911         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6912         (export_set_extension_cb), (filter_get_export_filter_label),
6913         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6914         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6915         formats (PLS and M3U at the moment). Fixes bug 316295.
6917 2006-04-19  James Livingston  <doclivingston@gmail.com>
6919         * shell/rb-playlist-manager.c:
6920         (rb_playlist_manager_set_source_internal): don't let you edit remove
6921         auto playlists.
6923         * sources/rb-auto-playlist-source.c:
6924         (rb_auto_playlist_source_set_query): correctly handle time-limited
6925         playlists.
6927 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6929         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6931         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6932         Don't crash if the queue file contains no newlines.
6933         Fixes #338924.
6935 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6937         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6938         condition
6940 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6942         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6943         case. Moreover, they may not exist yet, so take that into account when
6944         generating the iPod filename.
6946 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6948         * sources/rb-ipod-source.c: added support for drag and drop from the
6949         library to the iPod (only enabled if --enable-track-transfer was
6950         passed to configure)
6952 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6954         * configure.ac:
6955         * lib/rb-marshal.list:
6956         * lib/rb-util.c: 
6957         * lib/rb-util.h:
6958         * plugins/Makefile.am:
6959         * plugins/ipod/Makefile.am:
6960         * plugins/ipod/ipod.rb-plugin.desktop.in:
6961         * plugins/ipod/rb-ipod-plugin.c: 
6962         * plugins/rb-plugin.h:
6963         * shell/Makefile.am:
6964         * shell/rb-removable-media-manager.c:
6965         * shell/rb-removable-media-manager.h:
6966         * shell/rb-shell.c: 
6967         * sources/Makefile.am:
6968         * sources/rb-ipod-source.c: 
6969         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6970         various iPod related files should be moved to plugins/ipod/ now...
6972 2006-04-17  James Livingston  <doclivingston@gmail.com>
6974         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6975         and "vic".
6977         * help/C/figures/rb-iradio-main.png:
6978         * help/C/figures/rb-notification-area-menu.png:
6979         * help/C/figures/rb-notification-window.png:
6980         * help/C/figures/rb-notification-zone.png:
6981         * help/C/figures/rb-podcast-main.png:
6982         * help/C/figures/rb-statusbar.png:
6983         * help/C/figures/rb-volume-changer.png:
6984         * help/C/figures/rb-window-small.png:
6985         * help/C/figures/rb-window.png:
6986         * help/C/rhythmbox.xml:
6988 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6990         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6991         more obviously.
6993         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6994         (make_undecodable_error), (rb_metadata_gst_error_cb),
6995         (rb_metadata_gst_new_decoded_pad_cb),
6996         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6997         Ignore really small files (<4kB) for which typefinding fails.
6998         Always link decoded pads from decodebin to fakesink.
6999         Shut the pipeline down by posting an error on the bus when decodebin
7000         emits unknown-type signals.  Fixes bug #338062.
7002 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7004         * shell/rb-shell.c: (rb_shell_load_uri):
7005         Fix glaring mistakes in previous commit: actually pass arguments to
7006         rb_debug, and specify the right entry type when adding a new iradio
7007         station so we don't try to add local playlist files to the library.
7009 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7011         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
7012         before trying to add them, as iradio streams often fail rb_uri_exists().
7014         * shell/rb-shell-player.c: (notify_playing_idle),
7015         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
7016         (open_location_thread), (rb_shell_player_open_location),
7017         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
7018         (eos_cb):  When playing an iradio stream using a playlist, keep a list
7019         of all the stream URLs, and try them in turn.  If we get through the
7020         whole playlist too quickly, error out.  Various other fixes that make
7021         iradio work a lot better.
7023         * shell/rb-shell.c: (add_to_library_response_cb),
7024         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
7025         (handle_playlist_entry_cb), (rb_shell_load_uri):
7026         Add playlists containing streams as iradio stations.  If the playlist
7027         is local, add each stream URL, but if the playlist is remote, just add
7028         the playlist URL.
7029         
7030         * sources/rb-iradio-source.c: (new_station_location_added):
7031         Add new station URLs as-is, rather than parsing the playlist and
7032         adding the streams.
7033         
7034         * rhythmdb/rhythmdb-query-model.c:
7035         (rhythmdb_query_model_entry_changed_cb),
7036         (rhythmdb_query_model_emit_reorder),
7037         (rhythmdb_query_model_do_reorder):
7038         Emit row-changed notifications when an entry changes but is not
7039         reordered.
7041         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
7042         Display the playback error icon when the entry has an error and
7043         there's nothing else to display.
7044         
7045         Fixes bug #320336 and some of #324402.
7046         
7047 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7049         * sources/rb-ipod-source.c: use a GHashTable for the
7050         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
7051         time, this fixes compilation breakage for people not having libgpod
7052         CVS HEAD
7054 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
7056         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7058         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
7059         (rb_podcast_manager_insert_feed):
7060         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
7061         fixes bug 321945
7063 2006-04-16  James Livingston  <doclivingston@gmail.com>
7065         * sources/rb-library-source.c:
7066         (rb_library_source_library_location_cb): return FALSE like we are
7067         supposed to, not void.
7069         patch by: FreeBSD GNOME Project
7070         * configure.ac: fix some bash-isms.
7072         patch by: Pawel Worach  <pawel.worach@gmail.com>
7073         * metadata/rb-metadata-dbus-client.c:
7074         * rhythmdb/rhythmdb-query-model.c:
7075         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
7078 2006-04-16  James Livingston  <doclivingston@gmail.com>
7080         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
7081         for transcoding to RBEncoderGst.
7083         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
7084         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
7085         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
7086         (add_decoding_pipeline), (encoder_match_mime),
7087         (get_profile_from_mime_type), (extract_track), (transcode_track),
7088         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
7090 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7092         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
7093         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
7094         load_ipod_db_idle_cb to a new separate function
7096 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7098         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
7099         source
7101 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7103         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
7104         variables
7106 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7108         * data/ui/Makefile.am:
7109         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
7110         menu
7111         * lib/rb-util.c: check if the widget we got from the UI manager isn't
7112         NULL before using it as a popup menu
7113         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
7114         'eject' an iPod
7116 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7118         * sources/rb-ipod-source.c: when hal tells us a partition is on an
7119         iPod, check if it contains an iPod database before using it (in case
7120         the iPod was repartitionned somehow). Should fix bug #325034
7122 2006-04-16  Steve Frécinaux  <steve@istique.net>
7124         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
7126         * data/Makefile.am: install application icon into the default theme.
7128         * data/rhythmbox.desktop.in: don't specify icon file extension.
7129         
7130         * shell/main.c: (main): set default window icon from theme.
7131         
7132         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
7133         code concerning window icon, and fix leak by unreferencing the about
7134         logo pixbuf once it's not used anymore.
7136 2006-04-16  James Livingston  <doclivingston@gmail.com>
7138         * configure.ac: bump version to 0.9.4
7139         * NEWS: update NEWS and 0.9.4 insert translations
7141 2006-04-16  James Livingston  <doclivingston@gmail.com>
7143         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
7144         namespace automatically.
7146 2006-04-16  James Livingston  <doclivingston@gmail.com>
7148         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
7150         * doc/reference/Makefile.am:
7151         * doc/reference/rhythmbox.types: make distcheck work again
7153         * doc/reference/tmpl/eggnotificationbubble.sgml:
7154         * doc/reference/tmpl/eggtrayicon.sgml:
7155         * doc/reference/tmpl/rb-debug.sgml:
7156         * doc/reference/tmpl/rb-entry-view.sgml:
7157         * doc/reference/tmpl/rb-enums.sgml:
7158         * doc/reference/tmpl/rb-metadata.sgml:
7159         * doc/reference/tmpl/rb-new-station-dialog.sgml:
7160         * doc/reference/tmpl/rb-playlist-manager.sgml:
7161         * doc/reference/tmpl/rb-refstring.sgml:
7162         * doc/reference/tmpl/rb-shell-player.sgml:
7163         * doc/reference/tmpl/rb-shell-preferences.sgml:
7164         * doc/reference/tmpl/rb-shell.sgml:
7165         * doc/reference/tmpl/rb-song-info.sgml:
7166         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
7167         * doc/reference/tmpl/rb-statusbar.sgml:
7168         * doc/reference/tmpl/rhythmbox-unused.sgml:
7169         * doc/reference/tmpl/rhythmdb-query-model.sgml:
7170         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
7172 2006-04-16  James Livingston  <doclivingston@gmail.com>
7174         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
7176         * po/LINGUAS: don't split the variable across two lines, as it breaks
7177         the build. Fixes bug 338625.
7179 2006-04-15  James Livingston  <doclivingston@gmail.com>
7181         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
7182         add a "sourcelist-model" gobject property.
7184 2006-04-14  William Jon McCann  <mccann@jhu.edu>
7186         * .cvsignore:
7187         * backends/.cvsignore:
7188         * backends/gstreamer/.cvsignore:
7189         * bindings/.cvsignore:
7190         * bindings/python/.cvsignore:
7191         * help/es/.cvsignore:
7192         * metadata/.cvsignore:
7193         * plugins/.cvsignore:
7194         * plugins/audioscrobbler/.cvsignore:
7195         * plugins/lirc/.cvsignore:
7196         * plugins/pythonconsole/.cvsignore:
7197         * plugins/sample-python/.cvsignore:
7198         * plugins/sample/.cvsignore:
7199         * shell/.cvsignore:
7200         * widgets/libsexy/.cvsignore:
7201         Make CVS ignore files.
7203 2006-04-14  James Livingston  <doclivingston@gmail.com>
7205         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
7206         the track-loading thread hold a reference on the source, so it doesn't
7207         explode if the cd is removed before it is done. Fixes bug 337237.
7209 2006-04-14  James Livingston  <doclivingston@gmail.com>
7211         * bindings/python/override_common.c:
7212         (_helper_unwrap_pointer_pylist):
7213         * bindings/python/override_common.h:
7214         * bindings/python/rb.override:
7215         * bindings/python/rhythmdb.override: Bind some more functions and
7216         virtual functions.
7218         * shell/rb-shell.c: (rb_shell_select_source):
7219         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
7220         * sources/rb-audiocd-source.c:
7221         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
7222         * sources/rb-browser-source.c: (impl_get_search_actions):
7223         * sources/rb-iradio-source.c: (impl_get_ui_actions):
7224         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
7225         * sources/rb-playlist-source.c: (impl_get_ui_actions):
7226         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7227         (impl_get_search_actions):
7228         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
7229         the impl_get_ui_actions and impl_get_search_actions functions return
7230         lists that contain copies of the strings, instead of constant ones.
7231         Needed to bindings
7233 2006-04-14  James Livingston  <doclivingston@gmail.com>
7235         * bindings/python/rhythmdb.defs:
7236         * bindings/python/rhythmdb.override: fix the method argument format
7237         specifiers.
7239 2006-04-14  James Livingston  <doclivingston@gmail.com>
7241         * bindings/python/rhythmdb.defs:
7242         * bindings/python/rhythmdb.override:
7243         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
7244         (entry_to_rb_metadata), (record_entry_change),
7245         (rhythmdb_entry_set_visibility):
7246         * rhythmdb/rhythmdb.h:
7247         * shell/rb-shell.c: (rb_shell_get_song_properties): change
7248         rhythmdb_entry_get to take the db as the first parameter. Fixes the
7249         python bindings of it. The rhythmdb_entry_get_* ones are left the same
7250         since they are used in too many places, and not in the Python
7251         bindings.
7253 2006-04-13  William Jon McCann  <mccann@jhu.edu>
7255         * lib/rb-debug.c: (_rb_profile_log):
7256         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
7257         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7258         * shell/main.c: (main):
7259         * shell/rb-shell.c: (rb_shell_constructor),
7260         (rb_shell_set_visibility), (rb_shell_sync_window_state),
7261         (rb_shell_present):
7262         Fix profile output indentation.  Add more profiling points.
7263         Fixes part of #338114
7265 2006-04-13  James Livingston  <doclivingston@gmail.com>
7267         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
7268         library source being deleted, by setting the active source to NULL.
7269         From bug 338116.
7271 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7273         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7274         Update the last-seen string when hiddenness changes.
7276 2006-04-12  James Livingston  <doclivingston@gmail.com>
7278         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
7279         which caused the first-seen time to be reset when a metadata load was
7280         done. Fixes bug 336874.
7282         * shell/rb-shell.h: remove old function declaration.
7284         * bindings/python/rhythmdb.defs:
7285         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7287 2006-04-11  James Livingston  <doclivingston@gmail.com>
7289         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7290         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7291         interaction. Fixes bug 337999.
7293 2006-04-11  James Livingston  <doclivingston@gmail.com>
7295         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7296         track transfer. Fixes bug 338056.
7298         * shell/Makefile.am:
7300 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7302         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7304 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7306         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7307         (_rb_profile_log):
7308         * lib/rb-debug.h:
7309         * shell/rb-shell.c: (construct_db), (construct_widgets),
7310         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7311         Add profiling.  Fixes #337387
7313 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7315         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7316         * widgets/rb-header.c:
7317         Use italics for artist and album. Fixes #336748
7319 2006-04-10  James Livingston  <doclivingston@gmail.com>
7321         * Makefile.am:
7322         * backends/gstreamer/Makefile.am:
7323         * configure.ac:
7324         * data/glade/library-prefs.glade:
7325         * shell/Makefile.am:
7326         * shell/rb-removable-media-manager.c:
7327         * shell/rb-removable-media-manager.h:
7328         * sources/Makefile.am:
7329         * sources/rb-audiocd-source.c:
7330         * sources/rb-library-source.c: (rb_library_source_class_init),
7331         (rb_library_source_finalize), (impl_get_config_widget),
7332         (rb_library_source_preferences_sync), (impl_can_paste): add a
7333         --enable-track-transfer configure option, abd make cd ripping disabled
7334         by default.
7336         * shell/rb-source-header.c:
7337         * sources/rb-source.c: (rb_source_class_init),
7338         (rb_source_delete_thyself), (default_get_entry_view):
7339         * lib/rb-glade-helpers.c:
7340         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7341         some compiler warnings, and also bug 337427.
7343 2006-04-10  James Livingston  <doclivingston@gmail.com>
7345         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7346         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7347         if the gconf key is missing. Fixes bug 337742.
7349 2006-04-10  James Livingston  <doclivingston@gmail.com>
7351         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7352         to fix build problems I caused with a commit yesterday. Fixed bug
7353         337806.
7355         * daapsharing/rb-daap-mdns-browser-howl.c:
7356         (rb_daap_mdns_browser_class_init):
7357         * podcast/Makefile.am:
7358         * rhythmdb/Makefile.am:
7359         * widgets/eggtrayicon.h:
7361 2006-04-09  Steve Frécinaux  <steve@istique.net>
7363         * configure.ac:
7364         * po/LINGUAS:
7365         
7366         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7367         translators' life easier.
7369 2006-04-09  James Livingston  <doclivingston@gmail.com>
7371         * bindings/python/rb.defs:
7372         * bindings/python/rb.override: add bindings for most RBSource virtual
7373         functions.
7375         * sources/rb-source.h:
7376         * sources/rb-source.c: (rb_source_class_init): make
7377         impl_get_browser_key return a non-consht string, since Python can't
7378         really give us constant strings.
7380         * shell/rb-source-header.c: (rb_source_header_finalize),
7381         (rb_source_header_set_source_internal):
7382         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7383         * sources/rb-iradio-source.c: (impl_get_browser_key):
7384         * sources/rb-library-source.c: (impl_get_browser_key):
7385         * sources/rb-playlist-source.c:
7386         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7387         (rb_browser_source_state_prefs_sync):
7388         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7389         above change.
7391         * plugins/sample-python/sample-python.py: show how to add a new
7392         source.
7394 2006-04-09  James Livingston  <doclivingston@gmail.com>
7396         * daapsharing/Makefile.am:
7397         * daapsharing/rb-daap-connection.c:
7398         (rb_daap_connection_class_init):
7399         * daapsharing/rb-daap-marshal.list:
7400         * daapsharing/rb-daap-mdns-browser-avahi.c:
7401         (rb_daap_mdns_browser_class_init):
7402         * lib/rb-marshal.list:
7403         * player/Makefile.am:
7404         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7405         * player/rb-recorder-marshal.list:
7406         * podcast/Makefile.am:
7407         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7408         * podcast/rb-podcast-marshal.list:
7409         * rhythmdb/Makefile.am:
7410         * rhythmdb/rhythmdb-marshal.list:
7411         * rhythmdb/rhythmdb-query-model.c:
7412         (rhythmdb_query_model_class_init):
7413         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7414         into one file, as there is no point having several of them.
7416 2006-04-09  James Livingston  <doclivingston@gmail.com>
7418         * lib/Makefile.am:
7419         * lib/rb-enums.h:
7420         * widgets/Makefile.am:
7421         * widgets/eggnotificationbubble.c:
7422         * widgets/eggnotificationbubble.h:
7423         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7424         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7426         * rhythmdb/rhythmdb-property-model.h:
7427         * rhythmdb/rhythmdb-query-model.h:
7428         * rhythmdb/rhythmdb.h:
7429         * shell/rb-playlist-manager.h:
7430         * widgets/rb-cell-renderer-pixbuf.h:
7431         * widgets/rb-cell-renderer-rating.h:
7432         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7434 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7436         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7437         so we can build without a system-wide installed copy.
7439 2006-04-09  James Livingston  <doclivingston@gmail.com>
7441         * data/glade/general-prefs.glade:
7442         * data/rhythmbox.schemas:
7443         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7444         (rb_combo_box_hyphen_separator_func):
7445         * lib/rb-glade-helpers.h:
7446         * lib/rb-preferences.h:
7447         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7448         (rb_shell_preferences_sync),
7449         (rb_shell_preferences_toolbar_style_cb),
7450         (rb_shell_preferences_browser_views_activated_cb):
7451         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7452         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7453         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7455 2006-04-09  James Livingston  <doclivingston@gmail.com>
7457         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7458         data that MusicBrainz returns to us. Last part of bug 334167.
7460 2006-04-09  James Livingston  <doclivingston@gmail.com>
7462         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7463         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7465 2006-04-09  James Livingston  <doclivingston@gmail.com>
7467         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7468         the entry view properly when the rows are reordered. Fixes bug 337019.
7470 2006-04-09  James Livingston  <doclivingston@gmail.com>
7472         * configure.ac:
7473         * widgets/Makefile.am:
7474         * widgets/libsexy/Makefile.am:
7475         * widgets/libsexy/sexy-icon-entry.c:
7476         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7477         libsexy, and allow building against it or a system-wide installed
7478         copy.
7481         * widgets/rb-search-entry.c: (rb_search_entry_init),
7482         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7483         search box. Fixes bug 128109.
7485 2006-04-09  James Livingston  <doclivingston@gmail.com>
7487         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7489         * widgets/rb-entry-view.c: (rb_entry_view_init),
7490         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7491         and Pause icons rather than the volume ones in the Now Playing column.
7492         Closes bug 336482.
7494 2006-04-08  James Livingston  <doclivingston@gmail.com>
7496         * bindings/python/override_common.h:
7497         * bindings/python/rb.override:
7498         * bindings/python/rhythmdb.override: bind some more functions 
7500 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7502         * metadata/rb-metadata-dbus-service.c: (_send_error):
7503         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7504         are sent properly and we don't get 'method doesn't exist' messages
7505         from dbus instead.
7507 2006-04-08  James Livingston  <doclivingston@gmail.com>
7509         * bindings/python/override_common.h:
7510         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7511         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7512         more utility functions for C<->Python conversions
7514         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7515         (rb_entry_view_state_get_type):
7516         * widgets/rb-entry-view.h: make the colume type and entry view state
7517         GTypes
7519         * bindings/python/Makefile.am:
7520         * bindings/python/rb.defs:
7521         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7522         RBSource.
7524 2006-04-08  James Livingston  <doclivingston@gmail.com>
7526         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7527         initialiser for a GError
7529         * sources/rb-source.c: (rb_source_eof_type_get_type):
7530         * sources/rb-source.h: add a GType for RBSourceEOFType
7532         * bindings/python/Makefile.am:
7533         * bindings/python/rb.defs:
7534         * bindings/python/rb.override: bind RBSource and RBSourceList
7536 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7538         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7539         (rb_shell_player_get_property),
7540         (rb_shell_player_get_active_source),
7541         (rb_shell_player_set_playing_source_internal):
7542         * shell/rb-shell-player.h:
7543         Change 'playing-from-queue' from being a signal to being a property.
7545         * shell/rb-shell.c: (rb_shell_constructor),
7546         (rb_shell_playing_from_queue_cb),
7547         (rb_shell_view_queue_as_sidebar_changed_cb),
7548         (rb_shell_jump_to_entry_with_source):
7549         When the queue side pane is used, make 'jump to current' jump to the
7550         entry in the registered source for its type, rather than in the queue,
7551         and show it as playing in that source.
7552         
7553         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7554         * sources/rb-sourcelist.h:
7555         Remove the 'preempted source' stuff, since it wasn't doing anything
7556         anyway.
7558 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7560         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7561         (download_progress_cb): Canonicalise downloaded file location before
7562         setting the mountpoint property of the corresponding entry.
7563         Fixes #337287 and a couple of memory leaks.
7565 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7567         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7568         (test_load), (main): Call g_set_prgname, report errors more
7569         usefully in test mode.
7570         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7571         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7572         files.  Run the event loop when the state change fails so we get the
7573         error messages from the bus.  Fixes #336921.
7575 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7577         * data/art/Makefile.am: Install media-eject.
7579         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7580         return value of rb_file.
7582         Fixes #337209
7584 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7586         Patch by: William Jon McCann  <mccann@jhu.edu>
7588         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7589         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7590         Fix GError leak.
7592 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7594         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7595         Don't try to add a date when we don't have one.  Fixes #336741.
7597         Also fix variable declaration in middle of block.
7599 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7601         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7602         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7604 2006-04-02  James Livingston  <doclivingston@gmail.com>
7606         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7607         inverted logic causing imports to fail.
7609 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7611         * shell/main.c: (main): Fix dbusless build.
7613 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7615         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7616         wav header for non-gcc compilers (not tested much, was only written
7617         according to docs)
7619 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7621         * shell/main.c: (main): Check if we got a dbus connection before
7622         trying to create a proxy for the shell object.  Fixes #336634.
7624 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7626         * doc/reference/Makefile.am:
7627         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7628         * shell/rb-source-header.c:
7629         * sources/rb-generic-player-source.c:
7630         (default_transform_playlist_uri):
7631         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7632         <alexl@users.sourceforge.net>
7634 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7636         * configure.ac: Detect LIRC.
7637         
7638         * plugins/Makefile.am:
7639         * plugins/lirc/Makefile.am:
7640         * plugins/lirc/lirc.rb-plugin.desktop.in:
7641         * plugins/lirc/rb-lirc-plugin.c:
7642         LIRC plugin.
7644         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7645         Remove obsolete files.
7647 2006-04-02  James Livingston  <doclivingston@gmail.com>
7649         * sources/rb-generic-player-source.c:
7650         (default_transform_playlist_uri): consider playlist paths as relative
7651         to the volume root by default, since that is what most players use.
7653 2006-04-02  James Livingston  <doclivingston@gmail.com>
7655         * lib/rb-util.c: (rb_mime_get_friendly_name):
7656         * lib/rb-util.h: add helper function to get the "friendly" name for a
7657         mime-type
7659         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7660         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7661         the user better error messages about undecodable streams, using the
7662         "friendly" name if possible. Fixes bug 128109.
7664 2006-04-02  James Livingston  <doclivingston@gmail.com>
7666         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7667         (start_pipeline): fix building with gstreamer 0.8
7669 2006-04-02  James Livingston  <doclivingston@gmail.com>
7671         * sources/rb-podcast-source.c: (impl_delete),
7672         (rb_podcast_source_cmd_delete_feed),
7673         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7674         it, since it may change during traversal. Fixes bug 336204.
7676 2006-04-01  James Livingston  <doclivingston@gmail.com>
7678         * data/art/media-eject.png: add the media-eject icon from Banshee
7679         (BSD-licensed), for use when the user's icon theme doesn't have one.
7681         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7682         bug 334897.
7684 2006-04-01  James Livingston  <doclivingston@gmail.com>
7686         * shell/rb-shell-player.h:
7687         * shell/rb-shell-player.c: (rb_shell_player_play),
7688         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7689         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7690         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7692         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7693         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7694         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7696         * bindings/python/rb.defs: bind the above to Python, and remove some
7697         useless stuff from the bindings.
7699 2006-04-01  James Livingston  <doclivingston@gmail.com>
7701         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7702         number tag.
7704         * shell/rb-shell.c:
7705         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7707         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7708         to true.
7710         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7711         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7712         method assigning, so it's understandable
7714         * sources/rb-library-source.c: (rb_library_source_class_init),
7715         (impl_paste): rather than hard-coding the types to ignore, use
7716         rb_source_can_copy.
7718 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7720         * sources/rb-library-source.c:
7721         (rb_library_source_preferences_sync):
7722         Don't crash if no audio profile is selected and the gconf schemas are 
7723         not installed.
7725 2006-03-31  James Livingston  <doclivingston@gmail.com>
7727         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7728         "*" which caused compilation to fail
7730 2006-03-31  James Livingston  <doclivingston@gmail.com>
7732         * configure.ac:
7733         * Makefile.am:
7734         * backends/Makefile.am:
7735         * backends/gstreamer/Makefile.am:
7736         * backends/gstreamer/rb-encoder-gst.c:
7737         * backends/gstreamer/rb-encoder-gst.h:
7738         * backends/rb-encoder.c:
7739         * backends/rb-encoder.h: add a interface for transcoding, and a
7740         GStreamer implementation of it (based on Sound-Juicer's code).
7742         * shell/Makefile.am:
7743         * shell/rb-removable-media-manager.c:
7744         (rb_removable_media_manager_class_init),
7745         (rb_removable_media_manager_init),
7746         (rb_removable_media_manager_dispose),
7747         (rb_removable_media_manager_finalize),
7748         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7749         (progress_cb), (completed_cb), (do_transfer),
7750         (rb_removable_media_manager_queue_transfer), (copy_entry),
7751         (rb_removable_media_manager_cmd_copy_tracks):
7752         * shell/rb-removable-media-manager.h: use the encoder interface to
7753         perform transfers of entries to other locations
7755         * shell/rb-shell-player.c: (open_location_thread):
7756         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7757         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7758         (rb_shell_quit):
7759         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7760         progress in the status bar.
7762         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7763         (rb_shell_preferences_sync),
7764         (rb_shell_preferences_browser_views_activated_cb):
7765         * data/glade/general-prefs.glade: move the browser views setting from
7766         the library tab to the general one.
7768         * data/glade/library-prefs.glade: add settings for the layout of the
7769         user's library, and their preferred encoding format (e.g. for CD
7770         ripping).
7772         * lib/rb-preferences.h:
7773         * data/rhythmbox.schemas: add keys for the above options (and a few
7774         other minor ones)
7776         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7777         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7778         entry, that isn't inserted into the database.
7780         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7781         (rb_audiocd_create_track_entry):
7782         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7783         cds, and set the mime-type of audio cd tracks correctly.
7785         * sources/rb-library-source.c: (rb_library_source_class_init),
7786         (rb_library_source_finalize),
7787         (rb_library_source_edit_profile_clicked_cb),
7788         (impl_get_config_widget), (rb_library_source_preferences_sync),
7789         (impl_receive_drag), (rb_library_source_path_changed_cb),
7790         (rb_library_source_filename_changed_cb),
7791         (rb_library_source_format_changed_cb), (sanitize_path),
7792         (filepath_parse_pattern), (layout_example_label_update),
7793         (rb_library_source_layout_path_changed),
7794         (rb_library_source_layout_filename_changed), (build_filename),
7795         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7796         entries to the library. Large chunks of code for determining the
7797         destination file name stolen from Sound-Juicer.
7799         * sources/rb-sourcelist-model.c: (path_is_droppable):
7800         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7801         * sources/rb-static-playlist-source.c:
7802         (rb_static_playlist_source_class_init):
7803         * sources/rb-removable-media-source.c:
7804         (rb_removable_media_source_class_init):
7805         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7806         (rb_source_can_paste):
7807         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7808         than _can_copy) to determine whether we can paste into the source.
7811 2006-03-31  Steve Frécinaux  <steve@istique.net>
7813         * plugins/rb-python-module.c: allow import of python modules with a '.'
7814         (gedit's bug 336403). Patch by Johan Dahlin.
7816 2006-03-31  James Livingston  <doclivingston@gmail.com>
7818         * sources/rb-library-source.c: 
7819         * sources/rb-library-source.h:
7820         * sources/rb-browser-source.c:
7821         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7822         RBBrowserSource now contains all the stuff for having a source which
7823         views a particular entry type (including browsers and searching).
7824         RBLibrarySource derives from this, and includes the library-specific
7825         stuff, like importing and library watching. Fixes some issues where
7826         library-derived sources were doing things that should be
7827         library-specific. Fixes bug 335185.
7829         * data/ui/rhythmbox-ui.xml:
7830         * sources/Makefile.am: modifications for the above
7832         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7833         (rb_daap_source_get_paned_key):
7834         * sources/rb-daap-source.h:
7835         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7836         * sources/rb-removable-media-source.c:
7837         (rb_removable_media_source_class_init):
7838         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7839         instead of RBLibrarySource.
7841 2006-03-31  James Livingston  <doclivingston@gmail.com>
7843         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7844         I buggered up when changing from GnomeVFSFileSize.
7846 2006-03-30  James Livingston  <doclivingston@gmail.com>
7848         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7849         for "-Wno-error".
7851         * bindings/python/rb.override:
7852         * bindings/python/Makefile.am: make the RB python bindings depend on
7853         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7854         code sometimes emits warnings.
7856         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7857         (rb_shell_player_error_get_type):
7858         * shell/rb-shell-player.h:
7859         * bindings/python/rb.defs: add bindings for RBShellPlayer
7861         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7862         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7863         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7864         * rhythmdb/rhythmdb.h:
7865         * shell/rb-shell.c: (rb_shell_get_song_properties):
7866         * widgets/rb-entry-view.c: (propid_from_name):
7867         * widgets/rb-property-view.c: (rb_property_view_class_init):
7868         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7869         than just plain GPtrArray, and add bindings for it.
7871         * bindings/python/rhythmdb.override: wrap some functions that use
7872         GValues
7874 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7876         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7877         Only watch directories from which entries of type SONG have been
7878         added.
7880 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7882         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7883         No need to restore the selection after rebuilding the child model,
7884         since that can't have changed the selection.
7886 2006-03-29  James Livingston  <doclivingston@gmail.com>
7888         * bindings/python/override_common.c:
7889         * bindings/python/override_common.h: add some for missing files to
7890         cvs.
7892 2006-03-29  James Livingston  <doclivingston@gmail.com>
7894         * configure.ac:
7895         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7896         copied from gedit's autofoo and we don't need it
7898         * bindings/python/rhythmdb.defs:
7899         * bindings/python/rhythmdb.override: add missing files to cvs
7901 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7903         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7904         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7905         before running any of the debug/test modes.
7906         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7907         Make plugin loading work when running uninstalled from the shell/
7908         directory.
7910 2006-03-29  James Livingston  <doclivingston@gmail.com>
7912         * rhythmdb/rhythmdb-property-model.c:
7913         (rhythmdb_property_model_sync),
7914         (rhythmdb_property_model_column_get_type):
7915         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7917         * rhythmdb/rhythmdb-private.h:
7918         * rhythmdb/rhythmdb-query-model.c:
7919         (rhythmdb_query_model_class_init):
7920         * rhythmdb/rhythmdb-query-model.h:
7921         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7922         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7923         (rhythmdb_entry_get_type):
7924         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7926         * widgets/rb-query-creator-properties.c:
7927         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7928         was missing.
7930         * bindings/python/Makefile.am:
7931         * bindings/python/rb.defs:
7932         * bindings/python/rb.override:
7933         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7934         Python bindings for RhythmDB.
7936 2006-03-29  James Livingston  <doclivingston@gmail.com>
7938         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7939         sharing when using --no-registration
7941 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7943         * rhythmdb/rhythmdb-query-model.c:
7944         (rhythmdb_query_model_reapply_query):
7945         Don't remove entries while iterating, as it breaks the sequence
7946         nodes.  Instead, collect a list of removed entries and process it
7947         after iterating the sequence.  Fixes #334642.
7949 2006-03-29  James Livingston  <doclivingston@gmail.com>
7951         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7952         (row_activated_cb), (plugin_manager_toggle_all):
7953         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7954         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7955         (button_press_cb), (source_name_edited_cb):
7956         * widgets/rb-property-view.c: (rb_property_view_set_property),
7957         (rb_property_view_post_row_deleted_cb),
7958         (rb_property_view_row_activated_cb),
7959         (rb_property_view_selection_changed_cb),
7960         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7961         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7963 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7965         * rhythmdb/rhythmdb-query-model.c:
7966         (rhythmdb_query_model_drag_data_received):
7967         Increment the reference count for entries added by drag and drop.
7968         Fixes #336045.
7970 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7972         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7973         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7974         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7976 2006-03-27  James Livingston  <doclivingston@gmail.com>
7978         * shell/rb-shell.c: (rb_shell_constructor),
7979         (rb_shell_sync_window_state): fix a maximise-realise race that would
7980         cause some widgets to be resized after we had explicity set theri
7981         size. Hopefully fixes bug 331927.
7983 2006-03-27  James Livingston  <doclivingston@gmail.com>
7985         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7986         (row_activated_cb), (plugin_manager_set_active),
7987         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7988         configure button sensitivity when a plugin is enabled/disabled.
7990 2006-03-27  James Livingston  <doclivingston@gmail.com>
7992         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7993         stop warnings, only the vbos is used anyway
7995         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7996         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7997         collection every now an then.
7999         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
8000         if we are finalising because the python object couldn't be created.
8002         * plugins/rb-python-module.c: (rb_python_module_new_object): return
8003         NULL if the python-side object couldn't be created. Stops crashes when
8004         the object is later used when it doesn't exist in Python.
8006         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
8007         (rb_python_shutdown): do better garbage collection when shutting down.
8008         Fixes the problem where Python was holding a reference to the shell,
8009         causing RB not to exit.
8011 2006-03-27  James Livingston  <doclivingston@gmail.com>
8013         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
8014         336131.
8016 2006-03-27  James Livingston  <doclivingston@gmail.com>
8018         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
8019         From bug 334829.
8021 2006-03-26  James Livingston  <doclivingston@gmail.com>
8023         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
8024         library location list to NULL after we free it. Fixes bug 336047.
8026 2006-03-26  James Livingston  <doclivingston@gmail.com>
8028         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8030         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
8031         supplies. Fixes bug 335947.
8033 2006-03-25  James Livingston  <doclivingston@gmail.com>
8035         * data/glade/audioscrobbler-prefs.glade:
8036         * shell/rb-audioscrobbler.c:
8037         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
8038         "submit songs" checkbox, and make it not disable username/password
8039         entry. This will be needed when we support other last.fm stuff
8040         (profile access, radio, etc).
8042 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
8044         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
8045         Volume should not display stock_volume-0 for volume > 0. Fixes bug
8046         335777.
8048 2006-03-24  James Livingston  <doclivingston@gmail.com>
8050         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8051         (rb_shell_player_sync_play_order),
8052         (rb_shell_player_play_order_update_cb),
8053         (actually_set_playing_source): update the next/previous availablility
8054         in places where it was missing. Fixes bug 335490.
8056 2006-03-24  James Livingston  <doclivingston@gmail.com>
8058         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
8059         can't find the widget
8061         * lib/rb-util.c: (rb_uri_list_parse):
8062         * lib/rb-util.h: add function for parsing a URI list into strings.
8064         * metadata/Makefile.am: make the metdata helper build when linking
8065         with --as-needed
8067         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
8068         g_mkdir_with_parents instead of coding our own.
8070         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
8071         <itunes:author> over <generator>, instead of using whichever comes
8072         last.
8074         * rhythmdb/rhythmdb-private.h:
8075         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
8076         field, as we don't ever check it (to detect corruption). Saves a bit
8077         of memory.
8079 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8081         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
8082         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
8083         Escape '&' and '=' in the paths we get back from
8084         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
8086 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8088         * shell/rb-shell.c: (rb_shell_constructor):
8089         Issue startup notification after creating the main window, so
8090         notification is issued whether the window is visible or not.
8091         Fixes #335086.
8093 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8095         * sources/rb-auto-playlist-source.c: (impl_search),
8096         (rb_auto_playlist_source_query_complete_cb),
8097         (rb_auto_playlist_source_do_query):
8098         * sources/rb-library-source.c: (impl_search),
8099         (rb_library_source_query_complete_cb),
8100         (rb_library_source_do_query):
8101         Defer subset searches (where text is appended to an existing search)
8102         until the original query is complete.
8104 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
8106         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
8108         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8109         (rb_refstring_get_sort_key): fixes for strict-aliasing
8111 2006-03-21  James Livingston  <jrl@ids.org.au>
8113         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
8114         importing a single file. Fixes bug 335307.
8116 2006-03-21  James Livingston  <jrl@ids.org.au>
8118         * shell/Makefile.am: remove the reference to backends/ that I
8119         accidently included.
8121 2006-03-21  James Livingston  <jrl@ids.org.au>
8123         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
8124         with Forte (on Solaris). Closes bug 335318.
8126         * configure.ac:
8127         * lib/Makefile.am:
8128         * player/rb-recorder-gst.c:
8129         * podcast/rb-podcast-parse.c:
8130         * remote/bonobo/Makefile.am:
8131         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
8132         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
8133         (rhythmdb_query_model_add_entry),
8134         (rhythmdb_query_model_add_results):
8135         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
8136         * rhythmdb/rhythmdb.h:
8137         * shell/Makefile.am:
8138         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
8139         (update_speed_combobox):
8140         * sources/rb-sourcelist-model.c:
8142 2006-03-21  James Livingston  <jrl@ids.org.au>
8144         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8146         * player/Makefile.am:
8147         * shell/Makefile.am: work correctly with a separate build root.
8149 2006-03-21  James Livingston  <jrl@ids.org.au>
8151         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
8152         get handed NULL.
8154 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8156         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
8157         Only create ignore entries when importing into the library.  
8158         Ignore entries for files in removable media sources don't help.
8160 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8162         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
8163         * shell/rb-source-header.h:
8164         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
8165         * widgets/rb-search-entry.h:
8166         Add functions to make the search box grab focus.
8168         * shell/rb-shell.c: (rb_shell_cmd_view_all):
8169         Focus the search box after handling the 'view all' action.
8171 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8173         * rhythmdb/rhythmdb.h:
8174         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8175         (rhythmdb_execute_multi_stat_info_cb),
8176         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
8177         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
8178         (action_thread_main):
8179         Collect all the get_file_info requests on startup into one gnome-vfs
8180         job to reduce overhead and avoid contention for the rhythmdb lock.
8181         Add a new method to call when all initial query models are set up.
8182         
8183         * shell/rb-shell.c: (idle_handle_load_complete):
8184         Call rhythmdb startup complete function when we've loaded all the
8185         playlists.  Fixes #334106.
8187 2006-03-20  James Livingston  <jrl@ids.org.au>
8189         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
8190         (rb_entry_view_selection_changed_cb),
8191         (rb_entry_view_have_complete_selection): make has_complete_selection
8192         not slow. Fixes a performance issue I added a week or so ago.
8194 2006-03-20  James Livingston  <jrl@ids.org.au>
8196         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
8197         before passing to strcmp. From bug 334559.
8199 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8201         * configure.ac:
8202         * lib/Makefile.am:
8203         * lib/rb-proxy-config.c:
8204         * lib/rb-proxy-config.h:
8205         Add a new object to watch the HTTP proxy configuration and emit
8206         signals when it changes.
8208         * shell/rb-audioscrobbler.c:
8209         * shell/rb-audioscrobbler.h:
8210         Use rb-proxy-config to watch HTTP proxy configuration.
8212         * shell/rb-shell.c:
8213         Construct rb-proxy-config object on startup, and remove all
8214         audioscrobbler references.
8216         * shell/Makefile.am:
8217         * plugins/audioscrobbler/Makefile.am:
8218         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
8219         Move all audioscrobbler code into the plugin.  We should move
8220         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
8221         point.  Don't use a private data structure in the plugin, since the
8222         class definition isn't in a header file.  Fixes #335091.
8224 2006-03-20  James Livingston  <jrl@ids.org.au>
8226         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
8227         don't enable Next if the source has an EOS type other than
8228         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
8230 2006-03-20  James Livingston  <jrl@ids.org.au>
8232         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
8233         (rb_song_info_forward_clicked_cb): deal with there being no
8234         next/previous entry.
8236         (rb_song_info_query_model_inserted_cb),
8237         (rb_song_info_query_model_deleted_cb),
8238         (rb_song_info_query_model_reordered_cb),
8239         (rb_song_info_query_model_changed_cb): monitor the query for changes,
8240         to update the button status. Fixes bug 333293.
8242 2006-03-20  James Livingston  <jrl@ids.org.au>
8244         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
8245         caused by my last commit
8247 2006-03-20  James Livingston  <jrl@ids.org.au>
8249         * bindings/python/Makefile.am:
8250         * bindings/python/rb.defs:
8251         * bindings/python/rb.override: add python bindings of RBRemoteProxy
8253         * shell/rb-shell.c: (rb_shell_constructor),
8254         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
8255         tray-icon detection slightly
8257 2006-03-19  Steve Frécinaux  <steve@istique.net>
8259         * data/ui/rhythmbox-ui.xml:
8260         * shell/rb-shell.c:
8262         Add an empty Tool Menu (hidden by default) containing placeholders for
8263         plugins.
8265         * configure.ac:
8266         * plugins/Makefile.am:
8267         * plugins/pythonconsole/Makefile.am:
8268         * plugins/pythonconsole/pythonconsole.py:
8269         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
8270         
8271         Python Console plugin
8273 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8275         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
8276         Extra step to encode '&' and '=' to match what gnome-vfs does
8277         internally.
8278         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8279         (rhythmdb_tree_save):
8280         Increment rhythmdb xml version to 1.2, and force another uri
8281         re-canonicalisation when loading v1.1 databases.
8282         Fixes bug #333998.
8284 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8286         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8287         (avahi_client_init), (browse_cb):
8288         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8289         (avahi_client_init):
8290         Fix compilation with Avahi 0.5.x (bug #334551).
8292 2006-03-19  James Livingston  <jrl@ids.org.au>
8294         Add Increase/Decrease Volume menu items and keybindings. From bug
8295         123383.
8297         * data/ui/rhythmbox-ui.xml:
8298         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8299         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8300         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8302 2006-03-19  James Livingston  <jrl@ids.org.au>
8304         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8306         * shell/Makefile.am: fix the link order, so that we compile with
8307         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8309 2006-03-19  James Livingston  <jrl@ids.org.au>
8311         patch by: Adam Petaccia  <adam@tpetaccia.com>
8313         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8314         plugins". Fixes bug 335037.
8316 2006-03-18  James Livingston  <jrl@ids.org.au>
8318         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8319         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8320         332992.
8322         * widgets/rb-header.c: don't make artist/album info in the header the
8323         small size, since it's hard to read.
8325 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8327         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8328         (rhythmdb_finalize): Don't leak the hash tables.
8329         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8330         (rhythmdb_commit_internal): Make sure to process the deletions.
8331         (rhythmdb_entry_delete): Use a hash.
8333         * podcast/rb-podcast-manager.c: Random analness about char*
8334         (rb_podcast_manager_remove_feed): Add debugging.
8335         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8336         the result of gnome_vfs_unlink.  Don't leak a uri.
8338         Fixes #334786
8340 2006-03-18  James Livingston  <jrl@ids.org.au>
8342         * NEWS: update NEWS file
8344 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8346         * rhythmdb/rhythmdb-property-model.c:
8347         (rhythmdb_property_model_prop_changed_cb):
8348         Remove entries from the hash table after processing visible->hidden
8349         changes.
8351 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8353         * sources/rb-daap-source.c (connection_connected_cb) 
8354         (connection_disconnected_cb): Add debug.
8355         (rb_daap_source_get_headers): Check for NULL connection.
8357         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8358         Check return value of rb_daap_source_get_headers.
8360         Fixes #332089
8362 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8364         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8365         Restore the selection after rebuilding the child model, so the
8366         selection is shown correctly after using the 'browse this
8367         album/artist/genre' menu items.
8369 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8371         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8372         Clear the selection before changing the active model.
8373         Fixes crash reported in bug 334549.
8375 2006-03-15  James Livingston  <jrl@ids.org.au>
8377         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8378         (rb_tray_icon_sync_action):
8379         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8380         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8381         for non-libnotify notification bubbles. Fixes bug 331721.
8383 2006-03-15  James Livingston  <jrl@ids.org.au>
8385         Add search-bar options to playlists. Fixes bug 334407.
8387         * sources/rb-auto-playlist-source.c:
8388         (rb_auto_playlist_source_class_init),
8389         (rb_auto_playlist_source_constructor),
8390         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8391         (search_action_to_prop), (search_action_changed):
8392         * sources/rb-static-playlist-source.c:
8393         (rb_static_playlist_source_class_init),
8394         (rb_static_playlist_source_constructor),
8395         (construct_query_from_selection), (impl_get_search_actions),
8396         (search_action_to_prop), (search_action_changed):
8398 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8400         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8401         Remove broken attempt at making the search bar buttons not
8402         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8404 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8406         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8407         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8409 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8411         * widgets/rb-header.c (rb_header_sync): Escape album and
8412         artist before adding to markup.
8414 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8416         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8417         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8418         (rb_header_set_property), (rb_header_get_property),
8419         (rb_header_sync):
8420         Remove the GnomeUrl song links until we can do it properly.
8421         Fixes #334453.
8423 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8425         * shell/rb-source-header.c: (rb_source_header_clear_search):
8426         Remove the stored search text from the hash table, so it doesn't
8427         reappear after switching to another source and back.
8429         * sources/rb-auto-playlist-source.c: (impl_search):
8430         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8431         * sources/rb-static-playlist-source.c: (impl_search):
8432         Make sure all sources treat impl_search(NULL) and impl_search("") the
8433         same.  Fixes #334525.
8435 2006-03-14  James Livingston  <jrl@ids.org.au>
8437         Store which thread created new entries, and make rhythmdb_commit only
8438         insert the entries for the thread that calls it. This stops one thread
8439         calling rhythmdb_commit inserting entries that are half-way through
8440         construction by another thread (as happens with audio cds). From bug
8441         330226.
8443         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8444         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8445         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8446         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8447         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8448         (rhythmdb_process_metadata_load),
8449         (rhythmdb_process_queued_entry_set_event),
8450         (rhythmdb_prop_get_type):
8452 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8454         * rhythmdb/rhythmdb-query-model.c:
8455         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8456         (rhythmdb_query_model_finalize):
8457         Move object unrefs from _finalize into _dispose.
8458         
8459         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8460         Remove extra g_object_ref that was causing query model leaks.
8461         
8462         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8463         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8464         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8465         Remove the cached 'all' query, since it doesn't really help and it
8466         makes the code more complicated.  Attach the genre property view to
8467         the query model build from the search text, so only genres for
8468         stations matching the search terms are displayed.  Preserve the genre
8469         selection across searches.
8471         * widgets/rb-library-browser.c: 
8472         (rb_library_browser_class_init), (rb_library_browser_get_property):
8473         Add properties for the input and output models for the browser, and
8474         remove the 'changed' signal as we can just use notify::output-model.
8475         (ignore_selection_changes),
8476         (selection_restore_data_destroy), (query_complete_cb),
8477         (restore_selection): Helper functions for preserving selections across
8478         query model rebuilds.
8479         (rebuild_output_model):  New function for creating a query model to
8480         use as the display model for a source using the browser.
8481         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8482         g_object_unrefs, reuse the parent's query model when there's no
8483         selection, and use ignore_selection_changes and restore_selection.
8484         (rb_library_browser_set_selection): rebuild_child_model emits the
8485         changed signal, so no need to do it here.
8486         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8487         ignore_selection_changes and restore_selection. 
8488         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8489         flag to rb_library_browser_set_model indicating whether the query is
8490         asynchronous.
8492         * sources/rb-static-playlist-source.c:
8493         (rb_static_playlist_source_class_init),
8494         (rb_static_playlist_source_dispose):
8495         (rb_static_playlist_source_constructor):  Add an extra reference on
8496         the base model, so it doesn't vanish when we set a new display model
8497         based on a search or browser selection.
8498         (impl_search): Ensure the search_text field in the source is NULL if
8499         the search box is empty.
8500         (construct_query_from_selection),
8501         (rb_static_playlist_source_do_query): Use the query model constructed
8502         from the search as the input model for the browser.
8503         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8504         output model as the query model for the source.
8506         * sources/rb-auto-playlist-source.c:
8507         (rb_auto_playlist_source_finalize): Free more stuff.
8508         (rb_auto_playlist_source_constructor),
8509         (rb_auto_playlist_source_browser_changed_cb):
8510         Update for rb-library-browser changes, use the browser's output query
8511         model as the query model for the source.
8512         (impl_reset_filters), (impl_search), 
8513         (rb_auto_playlist_source_do_query),
8514         (rb_auto_playlist_source_set_query):
8515         Use the query model constructed from the search text as the input to
8516         the library browser, and when adding text to an existing search, apply
8517         the new query to the existing query model.
8518         
8519         * sources/rb-library-source.c: (rb_library_source_dispose):
8520         (rb_library_source_finalize): Chain dispose up to the parent class.
8521         (rb_library_source_constructor): Update for rb-library-browser
8522         changes. 
8523         (impl_search): Ensure search_text is NULL if the search box is empty,
8524         and use the subset flag to _do_query if text has been appended to an
8525         existing search.
8526         (search_action_changed), (impl_reset_filters):
8527         (rb_library_source_browser_changed_cb),
8528         (rb_library_source_do_query): Use the browser's output model as the
8529         query model for the source.
8531         Rework library and playlist sources to use a single query chain,
8532         and to limit the entries shown in property views based on the search
8533         terms.  Fixes bug #322787.
8535 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8537         * configure.ac:  Enable metadata helper by default, and fix a typo.
8539 2006-03-13  James Livingston  <jrl@ids.org.au>
8541         Make RBRefStrings lazily create the folded and sort-key strings when
8542         they are first used. This will same some memory by not creating ones
8543         that are never used, and delaying some of the others to when the user
8544         resorts or performs a similar action. Fixes bug 332992.
8546         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8547         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8548         (rb_refstring_get), (rb_refstring_get_folded),
8549         (rb_refstring_get_sort_key), (rb_refstring_hash),
8550         (rb_refstring_equal):
8551         * rhythmdb/rb-refstring.h:
8552         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8554 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8556         * data/ui/rhythmbox-ui.xml:
8557         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8558         * lib/rb-stock-icons.h:
8559         * shell/rb-shell-player.c:
8560         * shell/rb-shell.c: (rb_shell_constructor):
8561         * shell/rb-source-header.c: (force_no_shadow),
8562         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8563         (rb_source_header_class_init), (rb_source_header_init),
8564         (merge_source_ui_cb), (toolbar_set_homogeneous),
8565         (rb_source_header_set_source_internal),
8566         (rb_source_header_set_property), (rb_source_header_get_property),
8567         (rb_source_header_set_source), (rb_source_header_new),
8568         (rb_source_header_filter_changed_cb):
8569         * shell/rb-source-header.h:
8570         * sources/rb-library-source.c: (rb_library_source_class_init),
8571         (rb_library_source_init), (search_action_to_prop),
8572         (search_action_changed), (rb_library_source_constructor),
8573         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8574         (construct_query_from_selection):
8575         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8576         (rb_podcast_source_init), (search_action_to_prop),
8577         (search_action_changed), (rb_podcast_source_constructor),
8578         (construct_query_from_selection), (impl_get_ui_actions),
8579         (impl_get_search_actions):
8580         * sources/rb-source.c: (rb_source_class_init),
8581         (rb_source_get_ui_actions), (default_get_search_actions),
8582         (rb_source_get_search_actions):
8583         * sources/rb-source.h:
8585         Add a search bar.  Fixes #328618
8587 2006-03-12  James Livingston  <jrl@ids.org.au>
8589         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8590         * shell/main.c: (main): make --no-update not stat files checking for
8591         changes, instead of doing nothing. Fixes bug 125177.
8593 2006-03-12  James Livingston  <jrl@ids.org.au>
8595         * podcast/rb-podcast-manager.c:
8596         (rb_podcast_manager_thread_parse_feed):
8597         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8598         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8599         having an invalid mime-type. Fixed bug 329813.
8601 2006-03-12  James Livingston  <jrl@ids.org.au>
8603         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8604         Finally lets us close bug 309609.
8606         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8607         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8608         0.10
8610         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8611         inverted logic of the editable check.
8613 2006-03-12  James Livingston  <jrl@ids.org.au>
8615         Make API doc generation work again. Fixes bug 334276.
8617         * doc/reference/Makefile.am:
8618         * doc/reference/tmpl/rb-debug.sgml:
8619         * doc/reference/tmpl/rb-druid.sgml:
8620         * doc/reference/tmpl/rb-entry-view.sgml:
8621         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8622         * doc/reference/tmpl/rb-metadata.sgml:
8623         * doc/reference/tmpl/rb-shell.sgml:
8624         * doc/reference/tmpl/rhythmbox-unused.sgml:
8625         * doc/reference/tmpl/rhythmdb.sgml:
8627 2006-03-12  James Livingston  <jrl@ids.org.au>
8629         * shell/rb-shell-clipboard.c:
8630         (rb_shell_clipboard_set_source_internal),
8631         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8632         it doesn't have one. Fixes bug 331673.
8634         * sources/rb-source.c: (rb_source_class_init): provide a default
8635         have_url implementation that returns FALSE.
8637 2006-03-12  James Livingston  <jrl@ids.org.au>
8639         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8640         doing a distclean. Fixes bug 334221.
8643         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8645         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8647 2006-03-11  James Livingston  <jrl@ids.org.au>
8649         * shell/rb-shell.c: (rb_shell_window_state_cb),
8650         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8651         update the window width/height when iconified. Stops the window
8652         changing size when it is restored from the tray, fixing bug 333824. 
8654 2006-03-11  James Livingston  <jrl@ids.org.au>
8656         Try to get cvs to actually add the necessary files for plugin support
8658 2006-03-11  James Livingston  <jrl@ids.org.au>
8660         Add a plugin framework, with basic support for Python plugins (based
8661         on gedit's). Closes bug 330523.
8663         * Makefile.am:
8664         * shell/Makefile.am:
8665         * configure.ac: necessary autofoo.
8667         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8669         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8670         * lib/rb-file-helpers.h:
8672         * data/glade/plugins/glade:
8673         * lib/rb-preferences.h:
8674         * plugins/*:
8675         * bindings/*: plugin framework
8677         * plugins/sample/*:
8678         * plugins/sample-python/*: sample plugins
8680         * plugins/audioscrobbler/*:
8681         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8682         (rb_audioscrobbler_set_property),
8683         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8684         submission into a plugin. shell/audioscrobbler.* should really be
8685         moved, but that sucks with cvs.
8687         * shell/rb-shell.h:
8688         * shell/rb-shell.c: (rb_shell_constructor),
8689         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8690         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8691         (rb_shell_quit): start and stop plugin framework.
8693 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8695         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8696         (rhythmdb_entry_delete):
8697         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8698         immediately, so we can't get change notifications afterwards.  
8699         Fixes #331732.
8700         (rhythmdb_process_metadata_load): Add a commit after removing an
8701         entry so we can recreate it with a different type without getting
8702         confused.
8704 2006-03-11  James Livingston  <jrl@ids.org.au>
8706         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8707         use the drive name for audio CDs, use "Unknown CD".
8709 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8711         patch by:  James Henstridge  <james@jamesh.id.au>
8713         * sources/rb-removable-media-source.c:
8714         (rb_removable_media_source_constructor):
8715         Get the device name from the GnomeVFSDrive if possible,
8716         since this is usually a more descriptive name.  Fixes #333080.
8718 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8720         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8722         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8723         Don't automatically download episodes when configured for manual
8724         updating.  Fixes #331564.
8726 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8728         * rhythmdb/rhythmdb-property-model.c:
8729         (rhythmdb_property_model_iter_from_string):
8730         Return an iterator for the 'all' property when name == NULL,
8731         and don't write to *iter if iter == NULL.
8733 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8735         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8736         When switching to the play queue, still call _go_next on the normal
8737         play order, so self-emptying auto playlists ("play count = 0" etc.)
8738         don't restart once the queue is empty.
8740         * shell/rb-tray-icon.c:
8741         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8742         with 'next'.
8744 2006-03-05  James Livingston  <jrl@ids.org.au>
8746         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8747         don't submit tracks which could not be played. Fixed bug 333013.
8749         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8750         tracks which could not be played.
8752 2006-03-05  James Livingston  <jrl@ids.org.au>
8754         Sync musicbrainz lookup code from Sound-Juicer cvs.
8756         * metadata/sj-metadata-musicbrainz.c:
8757         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8758         (get_offline_track_listing), (artist_and_title_from_title),
8759         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8760         (mb_list_albums), (mb_get_submit_url):
8761         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8762         * metadata/sj-metadata.h:
8763         * metadata/sj-structures.c: (track_details_free),
8764         (album_details_free):
8765         * metadata/sj-structures.h:
8767 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8769         * lib/rb-debug.h:
8770         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8771         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8772         (rb_profiler_reset), (rb_profiler_free):
8773         Filter debug output by matching the file and function names against a
8774         match string.
8776         * shell/main.c: (main):
8777         Add -D command line option to specify the debug match string.
8779         * shell/rb-removable-media-manager.c:
8780         (rb_removable_media_manager_mount_volume):
8781         Fix some typos in debug output.
8783 2006-03-03  James Livingston  <jrl@ids.org.au>
8785         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8786         * shell/rb-shell.c: (rb_shell_load_uri):
8787         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8788         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8789         use the new "recurse" property from totem-plparser, if present. Stop
8790         RB hanging for new users who don't have a 'net connection. From bug
8791         331508.
8793 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8795         * shell/rb-removable-media-manager.c:
8796         (rb_removable_media_manager_mount_volume):
8797         * sources/Makefile.am:
8798         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8799         Fix missing files on make dist (conditional files), only build the
8800         N770 support if there's HAL support, as we have no other ways of
8801         detecting it
8803 2006-03-03  James Livingston  <jrl@ids.org.au>
8805         * shell/rb-shell-clipboard.c:
8806         (rb_shell_clipboard_set_source_internal): really fix it this time.
8807         hopefully.
8809 2006-03-03  James Livingston  <jrl@ids.org.au>
8811         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8812         with the idle function not being removed.
8814 2006-03-02  James Livingston  <jrl@ids.org.au>
8816         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8817         * widgets/rb-entry-view.h: add function for determining whether all
8818         entries are selected.
8820         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8821         (rb_shell_clipboard_set_source_internal),
8822         (rb_shell_clipboard_finalize),
8823         (rb_shell_clipboard_idle_poll_deletions),
8824         (rb_shell_clipboard_entryview_changed_cb),
8825         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8826         removals, to update things.
8828         (rb_shell_clipboard_sync): update the Select All and Select None
8829         sensitivity, based on what is selected. Fixed bug 172220.
8831 2006-03-02  James Livingston  <jrl@ids.org.au>
8833         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8834         restore the selections of later models. This means that selecting the
8835         artist for the selected album does not reset the album selection.
8837 2006-03-02  James Livingston  <jrl@ids.org.au>
8839         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8840         Stops it emitting critical warnings.
8842 2006-03-02  James Livingston  <jrl@ids.org.au>
8844         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8845         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8846         second fragment is already escaped.
8848         * sources/rb-generic-player-source.c:
8849         (rb_generic_player_source_class_init),
8850         (rb_generic_player_source_constructor), (impl_show_popup),
8851         (rb_generic_player_source_load_playlists),
8852         (rb_generic_player_source_transform_playlist_uri),
8853         (handle_playlist_entry_cb), (visit_playlist_dirs),
8854         (default_load_playlists), (default_transform_playlist_uri):
8855         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8856         the device. Allow subclasses to override the playlist loading, and
8857         (playlist uri)->(actual uri) mapping. A lot of devices which have
8858         playlists won't work right now, but people will see them and hopefully
8859         file bugs.
8861         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8862         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8863         
8864         * sources/Makefile.am:
8865         + sources/rb-nokia770-source.{c,h}:
8866         * shell/rb-removable-media-manager.c:
8867         (rb_removable_media_manager_mount_volume): Add support for reading
8868         playlists of Nokia 770s.
8870 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8872         * data/glade/podcast-properties.glade:
8873         * podcast/rb-podcast-properties-dialog.c:
8874         (rb_podcast_properties_dialog_init),
8875         (rb_podcast_properties_dialog_update),
8876         (rb_podcast_properties_dialog_update_location),
8877         (rb_podcast_properties_dialog_update_download_location):
8878         Add 'download location' field showing the path to the downloaded copy.
8879         Fixes #330696.
8881 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8883         * configure.ac: simplify HAVE_HAL define
8885 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8887         * configure.ac:
8888         * lib/rb-file-helpers.c: (rb_uri_append_path):
8889         * lib/rb-file-helpers.h:
8890         * shell/rb-removable-media-manager.c:
8891         (rb_removable_media_manager_mount_volume):
8892         * sources/Makefile.am:
8893         * sources/rb-ipod-source.c:
8894         * sources/rb-psp-source.*:
8895         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8896         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8898 2006-03-02  James Livingston  <jrl@ids.org.au>
8900         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8901         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8902         (swap_playing_source), (rb_shell_player_playpause),
8903         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8904         (rb_shell_player_set_playing_source_internal): check for the entry
8905         view being NULL before trying to use it. Lets us support sources which
8906         don't have an entry view. From bug 331673.
8908 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8910         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8911         use gnome_vfs_read_entire_file with a URI, not a local filename
8913 2006-03-01  James Livingston  <jrl@ids.org.au>
8915         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8916         first-seen and last-seen when merging duplicate entries.
8918 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8920         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8921         * widgets/rb-property-view.h:  New function, allowing custom 
8922         interactive search functions for property views.
8923         
8924         * sources/rb-podcast-source.c: 
8925         (feed_select_change_cb): Only do a new query when the selection
8926         actually changes.
8927         (rb_podcast_source_constructor),
8928         (rb_podcast_source_feed_title_search_func):
8929         Interactive search function for podcast feed titles.  Fixes #327451.
8931 2006-03-01  James Livingston  <jrl@ids.org.au>
8933         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8934         the uri in the callback, since it causes symbols to not be escaped.
8935         Fixes bug 332976.
8937         * data/ui/rhythmbox-ui.xml:
8938         * sources/rb-import-errors-source.c:
8939         (rb_import_errors_source_class_init),
8940         (rb_import_errors_source_constructor), (impl_get_status),
8941         (impl_move_to_trash),
8942         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8943         import errors source
8944         
8945         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8946         (rb_entry_view_append_column): unescape the URI for display.
8948 2006-03-01  James Livingston  <jrl@ids.org.au>
8950         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8951         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8952         function fails.
8954 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8956         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8957         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8958         * sources/rb-play-queue-source.c:
8959         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8960         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8961         of "Queued Songs".
8963         Fixes #331637.
8965 2006-03-01  James Livingston  <jrl@ids.org.au>
8967         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8968         Fixes bug 332913.
8970 2006-03-01  James Livingston  <jrl@ids.org.au>
8972         * daapsharing/rb-daap-mdns-browser-howl.c:
8973         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8974         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8975         (rb_daap_mdns_publisher_class_init),
8976         (rb_daap_mdns_publisher_finalize):
8977         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8978         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8979         (rb_recorder_finalize):
8980         * rhythmdb/rhythmdb-query-model.c:
8981         (rhythmdb_query_model_constructor):
8982         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8983         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8984         * sources/rb-playlist-source-recorder.c:
8985         (rb_playlist_source_recorder_style_set),
8986         (rb_playlist_source_recorder_class_init),
8987         (rb_playlist_source_recorder_finalize):
8988         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8989         other classes in the same way, so they don't break when derived from.
8991 2006-03-01  James Livingston  <jrl@ids.org.au>
8993         * sources/rb-generic-player-source.c:
8994         (rb_generic_player_source_constructor): don't get the parent class in
8995         a dumb way, and it breaks when the class is derived from.
8997 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8999         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
9001 2006-03-01  James Livingston  <jrl@ids.org.au>
9003         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
9004         not work in glib 2.8 systems.
9006 2006-03-01  James Livingston  <jrl@ids.org.au>
9008         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
9009         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
9010         say it is crap.
9012         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
9013         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
9014         podcasts on ion-local places
9016         * rhythmdb/gsequence.c: (g_sequence_node_new),
9017         (g_sequence_node_free): use gslice if we are building against glib
9018         2.10.
9020         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
9021         local files too, so it doesn't block.
9023 2006-02-28  James Livingston  <jrl@ids.org.au>
9025         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
9026         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
9027         stats the file. Stops the UI blocking while stats are done.
9029 2006-02-28  James Livingston  <jrl@ids.org.au>
9031         * sources/rb-static-playlist-source.c:
9032         (rb_static_playlist_source_class_init),
9033         (rb_static_playlist_source_constructor), (impl_reset_filters),
9034         (impl_get_property_views), (impl_browser_toggled),
9035         (rb_static_playlist_source_do_query),
9036         (rb_static_playlist_source_browser_changed_cb): add browsers to static
9037         playlists. From bug 118862.
9039         * sources/rb-play-queue-source.c:
9040         (rb_play_queue_source_class_init): disable them for the play queue.
9042 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
9044         * data/glade/library-prefs.glade:  Add a mnemonic.
9045         * sources/rb-library-source.c:
9046         (rb_library_source_location_button_clicked_cb):  Use title
9047         capitalization for window title.
9049 2006-02-28  James Livingston  <jrl@ids.org.au>
9051         * sources/rb-auto-playlist-source.c:
9052         (construct_query_from_selection): don't create a subquery for only one
9053         criteria, as it's a silly effifiency degredation.
9055 2006-02-28  James Livingston  <jrl@ids.org.au>
9057         * rhythmdb/rhythmdb.h:
9058         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9059         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
9060         saved to disk
9062         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
9063         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
9064         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
9065         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
9066         IGNORE (e.g. known video stream) create an entry of the Ignore type.
9067         This will make importing files quicker as we don't need to try files
9068         that we know are not going to be interesting - especially useful when
9069         using the library watching facility.
9071         Fixes bug 323179.
9073 2006-02-28  James Livingston  <jrl@ids.org.au>
9075         * shell/rb-shell.c: (rb_shell_constructor),
9076         (rb_shell_set_visibility): fix browser and source-list pane
9077         positioning, that I broke with the "remember visibility" patch.
9079 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9081         * metadata/rb-metadata-dbus-service.c: (main):
9082         Change argument handling so you can use --debug with the --load and
9083         --can-save test modes.
9084         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
9085         Use a separate GMainContext, not the default one.  Probably fixes
9086         #332344.
9088 2006-02-27  James Livingston  <jrl@ids.org.au>
9090         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
9091         first starting up. Fixes bug 330342.
9093 2006-02-27  James Livingston  <jrl@ids.org.au>
9095         * sources/rb-sourcelist-model.c:
9096         (rb_sourcelist_model_set_dnd_targets):
9097         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
9098         COPY action for draging sources and tracks, not MOVE as well. Stops
9099         Nautilus moving file away, and fixes bug 332488.
9101 2006-02-27  James Livingston  <jrl@ids.org.au>
9103         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
9105         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
9106         and Last Played metadata off iPods. Closes bug 324648.
9108 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9110         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
9111         Disable audioscrobbler when run with the --no-registration flag, since
9112         last.fm doesn't allow multiple concurrent clients per user.
9114 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9116         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
9117         Rename renamable sources when F2 is pressed when the sourcelist has
9118         focus.  Fixes #330700.
9120 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9122         * shell/rb-playlist-manager.c: (cleanup_edit_data),
9123         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
9124         (rb_playlist_manager_cmd_edit_automatic_playlist):
9125         Fix various crashes when deleting auto playlists previously edited
9126         by disconnecting signal handlers when the query editor is closed or
9127         the playlist is deleted.
9129 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9131         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
9132         removed load failure dialog, and actually use the friendly file type
9133         name in error messages.
9135 2006-02-24  James Livingston  <jrl@ids.org.au>
9137         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9139         * sources/rb-library-source.c:
9140         (rb_library_source_location_button_clicked_cb),
9141         (rb_library_source_preferences_sync),
9142         (rb_library_source_library_location_cb): convert the library URI to
9143         for display, and back again. Fixes bug 332356.
9145 2006-02-23  James Livingston  <jrl@ids.org.au>
9147         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9148         (rhythmdb_process_metadata_load), (monitor_subdirectory),
9149         (rhythmdb_sync_library_location): don't monitor files at all if
9150         watching is turned off. From bug 323096.
9152 2006-02-23  James Livingston  <jrl@ids.org.au>
9154         * data/rhythmbox.schemas:
9155         * lib/rb-preferences.h:
9156         * shell/rb-shell.c: (rb_shell_constructor),
9157         (rb_shell_set_visibility): remember main window visibility between
9158         sessions. Fixes bug 127320.
9160 2006-02-23  James Livingston  <jrl@ids.org.au>
9162         * data/glade/library-prefs.glade:
9163         * sources/rb-library-source.c: (impl_get_config_widget),
9164         (rb_library_source_location_button_clicked_cb),
9165         (rb_library_source_preferences_sync),
9166         (rb_library_source_library_location_cb),
9167         (rb_library_source_watch_toggled_cb): change the library-location
9168         widgets from the file-chooser drop menu to a text entry and Browse
9169         button. This is needed to prevent the location from chaning if the
9170         directory cannot be found. Fixes bug 328414.
9172 2006-02-23  James Livingston  <jrl@ids.org.au>
9174         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
9175         item. Fixes bug 329042.
9177 2006-02-23  James Livingston  <jrl@ids.org.au>
9179         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
9181         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
9182         comma in some podcast feeds. Fixes bug 332194.
9184 2006-02-23  James Livingston  <jrl@ids.org.au>
9186         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
9187         lower priority.
9189         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
9190         the internal audio cd URIs from "cdda://device:track" to
9191         "cdda://track#device" as it makes processing much easier.
9193         * shell/rb-shell-player.c: (rb_shell_player_open_location):
9194         * player/rb-player-gst.c: don't have the shell close the player
9195         between songs, as doing that should be backend-specific. Make the
9196         gstreamer backend close before starting a new track, unless the old
9197         and new ones are both tracks on the same audio cd. Just seek in that
9198         case.
9200 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9202         * doc/reference/rhythmbox.types: Fix doc build a bit more.
9204 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9206         * configure.ac: Enable more warnings in my stupid setup too.
9207         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
9208         #332210.
9210 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9212         * sources/rb-missing-files-source.h,
9213         * sources/rb-missing-files-source.c,
9214         * sources/rb-import-errors-source.h,
9215         * sources/rb-import-errors-source.c:
9216         Add library meta-sources, showing missing files and import errors.
9217         Fixes #167763, #142322.
9219         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
9220         * sources/rb-sourcelist-model.h:
9221         * sources/rb-sourcelist.c: (rb_sourcelist_append),
9222         (match_source_to_iter), (rb_sourcelist_source_to_iter),
9223         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
9224         (visibility_notify_cb):
9225         Store source visibility in the sourcelist model, so we can determine
9226         child source counts correctly and get the sourcelist expander column
9227         right.
9228         
9229         * widgets/rb-entry-view.h:
9230         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9231         (rb_entry_view_append_column), (set_column_visibility):
9232         Allow the creator of the entry view to specify which columns are
9233         always visible.
9235         * sources/rb-source.h:
9236         * sources/rb-source.c: (_autohide_update_visibility),
9237         (_rb_autohide_source_row_deleted_cb),
9238         (_rb_autohide_source_row_inserted_cb),
9239         (_rb_source_hide_when_empty):
9240         Allow sources to automatically hide themselves when empty.
9241         
9242         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
9243         * sources/rb-library-source.c: (rb_library_source_constructor):
9244         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9245         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9246         Explicitly specify which columns are always visible.
9247         
9248         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9249         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
9250         Remove load error signal handling and load failure dialog.
9251         Create missing files and import errors sources for the library.
9253         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9254         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
9255         Create DB entries for import errors rather than emitting the 'load
9256         error' signal; mark loaded entries visible.
9257         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
9258         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
9259         (rhythmdb_prop_get_type): Store string form of last seen time for
9260         hidden entries, since it's used in the missing files source.
9261         (rhythmdb_entry_import_error_get_type): 
9262         Add entry type for import errors.
9263         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
9264         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
9265         (rhythmdb_entry_move_to_trash_set_error),
9266         (rhythmdb_entry_move_to_trash):  
9267         Correct spelling, add missing rhythmdb_commit.
9268         * rhythmdb/rhythmdb.h:  
9269         Add import error entry type and last seen string property.
9270         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
9271         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9272         (save_entry):  Ignore string form of 'last seen' property.
9274         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9275         Don't try to play hidden entries or import error entries.
9277         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
9278         * sources/Makefile.am: Add meta-source files
9279         * widgets/Makefile.am: Remove load failure dialog files
9281 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9283         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9284         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
9285         few bits and pieces.
9287 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9289         * metadata/test-metadata.c: (load_metadata_cb):
9290         Fix compile warning for ignoring return value from getcwd, #332064.
9292 2006-02-21  James Livingston  <jrl@ids.org.au>
9294         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9295         (edit_auto_playlist_deleted_cb),
9296         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9297         playlist editor non-modal. Fixes bug 320030.
9299 2006-02-21  James Livingston  <jrl@ids.org.au>
9301         * shell/rb-shell.c: (rb_shell_constructor):
9302         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9303         (rb_header_set_show_artist_album):
9304         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9305         (rb_song_display_box_sync): make the queue sidebar and song display
9306         not get affected by gtk_widget_show_all. Fixes bug 332001.
9308 2006-02-21  James Livingston  <jrl@ids.org.au>
9310         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9312         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9313         feeds which use timezone names instead of offsets. Doesn't actually
9314         parse the timezone name since they are not standardised. Fixes bug
9315         331691.
9317 2006-02-21  James Livingston  <jrl@ids.org.au>
9319         * help/C/figures/rb-notification-area.png:
9320         * help/C/figures/rb-sidebar.png:
9321         * help/C/quick-reference.xml: remove obsolete files from CVS.
9323         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9324         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9325         (rhythmdb_query_free), (rhythmdb_query_serialize),
9326         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9327         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9329         * widgets/rb-query-creator-properties.c: add prefix and suffix
9330         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9331         doesn't escape the ':' separator in uris.
9333 2006-02-21  James Livingston  <jrl@ids.org.au>
9335         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9336         on startup.
9338 2006-02-21  James Livingston  <jrl@ids.org.au>
9340         * NEWS: update with recent changes
9342 2006-02-21  James Livingston  <jrl@ids.org.au>
9344         * shell/rb-shell.c: (rb_shell_constructor),
9345         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9346         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9347         (rb_druid_browse_clicked_cb), (do_response):
9348         * widgets/rb-druid.h: Make running the druid not block RBShell
9349         starting up. This is required so that bonobo registration doesn't time
9350         out. Fixed bug 318766.
9352 2006-02-21  James Livingston  <jrl@ids.org.au>
9354         * rhythmdb/rhythmdb-property-model.c:
9355         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9356         hash table after using it, not before. Fixed bug 331922.
9358 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9360         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9361         (rb_shell_view_queue_as_sidebar_changed_cb):
9362         When playing from the queue, only attempt to highlight the queue
9363         source in the source list if it's actually visible there.  Otherwise,
9364         leave the preempted source highlighted.  Mostly fixes #330819.
9366 2006-02-20  James Livingston  <jrl@ids.org.au>
9368         * rhythmdb/rhythmdb-property-model.c:
9369         (rhythmdb_property_model_row_inserted_cb),
9370         (rhythmdb_property_model_prop_changed_cb),
9371         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9372         store the roperty value in the entry-mapping table, so that receiving
9373         the remove signal from a query model before we get notified of a
9374         change doesn't cause a crash. Fixes bug 331770.
9376 2006-02-20  James Livingston  <jrl@ids.org.au>
9378         * data/ui/rhythmbox-ui.xml:
9379         * sources/rb-play-queue-source.c:
9380         (rb_play_queue_source_class_init),
9381         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9382         playlist things in the queue popup source. From 330490.
9384         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9385         previous commit
9387 2006-02-20  James Livingston  <jrl@ids.org.au>
9389         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9390         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9391         attempt to sync data for non-editable entries when using
9392         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9393         331762.
9395 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9397         * .cvsignore:
9398         * Makefile.am:
9399         * autogen.sh:
9400         * configure.ac:
9401         * help/.cvsignore:
9402         * help/Makefile.am: ported to gnome-doc-utils
9403         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9404         * help/ChangeLog: added, for translators
9405         * help/C/rhytmbox-C.omf: removed, no longer used
9406         Know issue: figures are installed, but some are not showed; manual
9407         description added, but not showed in Yelp while browsing. I'll
9408         investigate, maybe are needed some little changes to
9409         help/C/rhythmbox.xml.
9411 2006-02-20  James Livingston  <jrl@ids.org.au>
9413         * data/ui/rhythmbox-ui.xml:
9414         * help/C/figures/rb-adv.png:
9415         * help/C/figures/rb-asst-finish.png:
9416         * help/C/figures/rb-asst-library.png:
9417         * help/C/figures/rb-asst-start.png:
9418         * help/C/figures/rb-basic.png:
9419         * help/C/figures/rb-browser.png:
9420         * help/C/figures/rb-context-menu.png:
9421         * help/C/figures/rb-empty.png:
9422         * help/C/figures/rb-full-play.png:
9423         * help/C/figures/rb-group-auto.png:
9424         * help/C/figures/rb-group-create.png:
9425         * help/C/figures/rb-group.png:
9426         * help/C/figures/rb-imported.png:
9427         * help/C/figures/rb-iradio-add.png:
9428         * help/C/figures/rb-iradio.png:
9429         * help/C/figures/rb-nextprev.png:
9430         * help/C/figures/rb-nobrowse-play.png:
9431         * help/C/figures/rb-notification-area-menu.png:
9432         * help/C/figures/rb-player.png:
9433         * help/C/figures/rb-prefs-general.png:
9434         * help/C/figures/rb-prefs-ipod.png:
9435         * help/C/figures/rb-prefs-library.png:
9436         * help/C/figures/rb-prefs.png:
9437         * help/C/figures/rb-repeat.png:
9438         * help/C/figures/rb-search.png:
9439         * help/C/figures/rb-shuffle.png:
9440         * help/C/figures/rb-stats.png:
9441         * help/C/figures/rb-toolbar-editor.png:
9442         * help/C/figures/rb-volume-mute.png:
9443         * help/C/figures/rhythmbox-group.png:
9444         * help/C/figures/rhythmbox-tray-icon.png:
9445         * help/C/user-guide.xml: remove old stuff from cvs
9447 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9449         * metadata/rb-metadata-dbus-client.c: 
9450         * metadata/rb-metadata-dbus-service.c:
9451         * metadata/rb-metadata-dbus.c:
9452         * metadata/rb-metadata-dbus.h:
9453         New files, adding an external service for reading and writing
9454         metadata, and an implementation of the RBMetaData interface that uses
9455         dbus to communicate with it.
9456         
9457         * metadata/rb-metadata.h,
9458         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9459         (rb_metadata_get_field_name): Put metadata details in a static array
9460         instead of using a hash table, and add a field for language code (not
9461         used for anything)
9462         * metadata/rb-metadata-gst.c: Updates for changes in
9463         rb-metadata-common.c, fix signal handler closure leak for the typefind
9464         element's have-type signal, and add XML to the list of types we ignore.
9465         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9466         Update for changes to rb_metadata_get_field_type
9467         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9468         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9469         here and there.
9470         
9471         * configure.ac: Add --enable-metadata-helper option (not enabled by
9472         default) to use the external metadata service
9473         * metadata/Makefile.am: Add new files
9474         * metadata/test-metadata.c:  Test program for the metadata service
9476         Fixes #329597. 
9478 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9480         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9481         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9482         (rb_podcast_source_cmd_new_podcast):
9483         Move 'new podcast' action to the podcast source, and add it to the
9484         toolbar.  Fixes #331562.
9486 2006-02-19  James Livingston  <jrl@ids.org.au>
9488         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9489         menus, and away from move-to-trash. Fixes bug 331013.
9491 2006-02-19  James Livingston  <jrl@ids.org.au>
9493         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9494         when deleting last entry. Fixes bug 331712.
9496 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9498         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9499         (rb_entry_view_button_press_cb):
9500         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9501         anywhere, and include a flag indicating whether the click was over an
9502         entry or not.
9503         
9504         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9505         (rb_playlist_source_songs_show_popup_cb):
9506         * sources/rb-playlist-source.h:
9507         Add the 'over entry' flag to the class show popup method, and in the
9508         default handler, ignore right clicks when not over an entry.
9509         
9510         * sources/rb-iradio-source.c:
9511         (rb_iradio_source_songs_show_popup_cb):
9512         * sources/rb-library-source.c:
9513         (rb_library_source_songs_show_popup_cb):
9514         * sources/rb-podcast-source.c:
9515         (rb_podcast_source_songs_show_popup_cb):
9516         Show the source list popup menu when right clicked while not over an
9517         entry.
9519         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9520         For the queue sidebar, always display the popup so the 'clear queue'
9521         action is available regardless of where you click.  For the queue
9522         source, only display the popup when right clicked over an entry.
9523         Fixes #331392.
9525 2006-02-19  James Livingston  <jrl@ids.org.au>
9527         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9528         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9529         entry view, when we're not even using it
9531         * rhythmdb/rhythmdb-property-model.c:
9532         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9533         function, rather than a copy of the code.
9535         * shell/rb-playlist-manager.c:
9536         (rb_playlist_manager_playlist_row_inserted_cb),
9537         (rb_playlist_manager_set_source_internal),
9538         (rb_playlist_manager_playlist_entries_changed): use the query-model
9539         directly, rather than the source's entry view.
9541         * shell/rb-source-header.c: don't use the entry view, just select the
9542         source widget.
9544 2006-02-18  James Livingston  <jrl@ids.org.au>
9546         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9548         * help/C/figures/rb-iradio-main.png:
9549         * help/C/figures/rb-notification-area-menu.png:
9550         * help/C/figures/rb-notification-window.png:
9551         * help/C/figures/rb-notification-zone.png:
9552         * help/C/figures/rb-podcast-main.png:
9553         * help/C/figures/rb-statusbar.png:
9554         * help/C/figures/rb-toolbar-prevplaynext.png:
9555         * help/C/figures/rb-toolbar-repeat.png:
9556         * help/C/figures/rb-toolbar-shuffle.png:
9557         * help/C/figures/rb-toolbar.png:
9558         * help/C/figures/rb-volume-changer.png:
9559         * help/C/figures/rb-window-small.png:
9560         * help/C/figures/rb-window.png:
9561         * help/C/rhythmbox.xml: Update user guide with some of the changes
9562         that have occurred after 0.8.8. From bug 314001.
9564 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9566         * rhythmdb/rhythmdb-query-results.h,
9567           rhythmdb/rhythmdb-query-results.c:
9568         New interface for objects that accept query results from RhythmDB.
9570         * rhythmdb/rhythmdb-query-model.c:
9571         (rhythmdb_query_model_query_results_init),
9572         (rhythmdb_query_model_set_query),
9573         (rhythmdb_query_model_add_results),
9574         (rhythmdb_query_model_query_complete):
9575         * rhythmdb/rhythmdb-query-model.h:
9576         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9578         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9579         (rhythmdb_tree_do_full_query):
9580         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9581         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9582         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9583         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9584         * rhythmdb/rhythmdb.h:
9585         Pass query results through the RhythmDBQueryResults interface, rather
9586         than directly to a RhythmDBQueryModel.
9588         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9589         (rb_podcast_manager_db_entry_deleted_cb):
9590         * sources/rb-auto-playlist-source.c:
9591         (rb_auto_playlist_source_do_query),
9592         (rb_auto_playlist_source_set_query):
9593         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9594         * sources/rb-library-source.c: (rb_library_source_constructor),
9595         (rb_library_source_do_query):
9596         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9597         (rb_podcast_source_do_query):
9598         * rhythmdb/rhythmdb-property-model.c:
9599         (rhythmdb_property_model_drag_data_get):
9600         Cast the query model to RhythmDBQueryResults when passing to one of
9601         the RhythmDB query methods.
9603         * rhythmdb/Makefile.am: Add new files.
9605 2006-02-18  James Livingston  <jrl@ids.org.au>
9607         * data/ui/rhythmbox-ui.xml:
9608         * shell/rb-playlist-manager.c:
9609         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9610         "queue playlist" item to source context menu. Fixes bug 330490.
9612 2006-02-18  James Livingston  <jrl@ids.org.au>
9614         * data/glade/general-prefs.glade:
9615         * shell/rb-shell-preferences.c:
9616         (rb_shell_preferences_column_check_changed_cb),
9617         (rb_shell_preferences_sync):
9618         * sources/rb-library-source.c: (rb_library_source_constructor):
9619         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9620         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9621         (rb_entry_view_append_column): Add a "quality" colume which indicates
9622         the bitrate of media. Part of bug 167659.
9624 2006-02-18  James Livingston  <jrl@ids.org.au>
9626         * shell/rb-play-order.c: (do_next_idle_cb),
9627         (default_playing_entry_removed): move to next track when playing entry
9628         is deleted. Fixes bug 131150.
9630         * shell/rb-shell-player.h: remove ancient stuff
9632 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9634         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9635         (rb_shell_clipboard_set_property): 
9636         * shell/rb-shell.c (rb_shell_sync_party_mode):
9637         Trigger a resync of the clipboard properties when changing party mode.
9639 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9641         * sources/rb-static-playlist-source.c: Fix includes.
9643         * sources/rb-source.c (rb_source_can_rename) 
9644         (rb_source_can_delete, rb_source_can_move_to_trash):
9645         Return FALSE if in party mode.
9647         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9648         Replace fullscreen with party mode.
9649         (rb_shell_window_delete_cb): Don't quit if in party mode.
9650         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9651         (window_state_event_cb): Try to deiconify shell when iconified
9652         in party mode.
9653         (rb_shell_sync_party_mode): Sync party mode properties.
9654         Currently, that means [de]sensitizing close, quit, and small-display,
9655         going into fullscreen mode with window stuck and kept above, and
9656         toggling queue-only for the shell player.
9657         (rb_shell_sync_smalldisplay): Sensitive party mode.
9658         (rb_shell_get_party_mode): Get party mode setting.
9660         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9661         (rb_shell_player_set_property, rb_shell_player_get_property):
9662         Add queue-only property.
9663         (rb_shell_player_entry_activated_cb): If in party mode
9664         only queue the entry on activation.
9666         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9667         Break out from set_properties.  Desensitize some actions when
9668         in party mode.
9669         (rb_playlist_manager_set_property): Break out set_source_internal.
9671         * data/rhythmbox.schemas: Remove fullscreen mode.
9673         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9674         action with party mode.
9676         Partial fix for #323933
9678 2006-02-17  James Livingston  <jrl@ids.org.au>
9680         * configure.ac:
9681         * shell/rb-removable-media-manager.c:
9682         (get_nautilus_burn_drive_for_path),
9683         (rb_removable_media_manager_playing_uri_changed_cb): only use
9684         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9685         over the list when it doesn't.
9687 2006-02-17  James Livingston  <jrl@ids.org.au>
9689         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9690         (rb_iradio_source_first_time_changed): Only do the import on the
9691         first change from FALSE to TRUE.
9693         * sources/rb-library-source.c:
9694         (rb_library_source_preferences_sync),
9695         (rb_library_source_library_location_cb): set the first-run done flag
9696         if the user presses close and then sets their watches library
9697         location. Fixes bug 325997.
9699 2006-02-17  James Livingston  <jrl@ids.org.au>
9701         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9702         removable media manager gobject properties
9704         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9705         (split_drive_from_cdda_uri),
9706         (rb_removable_media_manager_playing_uri_changed_cb),
9707         (rb_removable_media_manager_load_media): stop polling a cd drive
9708         when we are playing from it. Part of bug 330716.
9710 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9712         * rhythmdb/rhythmdb-query-model.c:
9713         (rhythmdb_query_model_set_property),
9714         (rhythmdb_query_model_finalize),
9715         (rhythmdb_query_model_base_entry_removed):
9716         Propagate entry removal from base models out to attached property
9717         models.  Fixes the rest of #331165.
9719 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9721         * rhythmdb/rhythmdb-property-model.c:
9722         (rhythmdb_property_model_row_inserted_cb),
9723         (rhythmdb_property_model_prop_changed_cb),
9724         (rhythmdb_property_model_insert):
9725         Don't store NULL as a hash table value if we want to use
9726         g_hash_table_lookup to check if a key exists, and get the checks for
9727         how and whether to handle entry changes the right way around.
9728         Fixes #331211 and half of #331165.
9730 2006-02-16  James Livingston  <jrl@ids.org.au>
9732         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9733         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9734         Fixes bug 329942.
9736 2006-02-16  James Livingston  <jrl@ids.org.au>
9738         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9739         actually reset the browsers.
9741 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9743         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9744         Escape the strings we pass into libnotify so we don't get blank
9745         notifications when the song name contains '&' etc.  Fixes #330784.
9747 2006-02-16  James Livingston  <jrl@ids.org.au>
9749         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9750         enable "View All" when there is only a search box and no browser.
9751         Fixes bug 331395.
9753 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9755         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9756         popup menu, which I forgot to commit with the patch for bug #330014.
9758 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9760         * shell/rb-shell-player.c: (open_location_thread):
9761         Sync button and entry view state once we've started the player, so the
9762         entry view gets into the playing state for iradio.
9764 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9766         * shell/rb-shell-player.c: (open_location_thread):
9767         Take GDK lock before doing anything UI-related.
9769 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9771         * shell/rb-shell.c: Move 'new iradio station' action to
9772         iradio source.
9774         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9775         (rb_iradio_source_init), (rb_iradio_source_finalize),
9776         (rb_iradio_source_constructor):
9777         Remove some unused stuff.
9779         (guess_uri_scheme), (rb_iradio_source_add_station),
9780         (rb_iradio_source_add_from_playlist),
9781         (impl_get_ui_actions), (new_station_location_added),
9782         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9783         action, include it in the toolbar, and make sure the URI we add has a
9784         scheme.  Fixes #327059, more or less.
9786 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9788         * sources/rb-play-queue-source.c:
9789         (rb_play_queue_source_class_init),
9790         (rb_play_queue_source_constructor),
9791         (rb_play_queue_source_update_count),
9792         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9793         Add a toolbar button to clear the play queue, and make it sensitive
9794         only when there are entries in the queue.  Fixes #330014.
9796         * sources/rb-source.c: (_rb_source_register_action_group):
9797         * sources/rb-source.h:  Add helper function to register an
9798         action group for a source.
9800         * sources/rb-library-source.c: (rb_library_source_constructor):
9801         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9802         (register_action_group):  Use _rb_source_register_action_group.
9804 2006-02-15  James Livingston  <jrl@ids.org.au>
9806         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9807         (rb_song_info_constructor), (rb_song_info_set_property): make
9808         tag-editing completion work for albums too.
9810 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9812         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9813         Check the 'limit' checkbox for time-limited playlists.
9815 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9817         * widgets/rb-song-info.c: Prove text-completion when editing title,
9818         artist or album
9820 2006-02-14  James Livingston  <jrl@ids.org.au>
9822         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9823         tray icon popup menu. Fixes bug 331026.
9825 2006-02-14  James Livingston  <jrl@ids.org.au>
9827         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9828         Ogg Vorbis streams, instead of the MP3 ones.
9830 2006-02-14  James Livingston  <jrl@ids.org.au>
9832         * rhythmdb/rhythmdb-property-model.c:
9833         (rhythmdb_property_model_class_init),
9834         (rhythmdb_property_model_drag_data_get):
9835         * rhythmdb/rhythmdb-query-model.c:
9836         (rhythmdb_query_model_title_sort_func):
9837         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9838         LOCATION as the key. Fixes bug 330601.
9840 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9842         * sources/rb-playlist-source.c: (playlist_iter_func):
9843         Make it compile with older versions of totem-plparser too.      
9845 2006-02-13  James Livingston  <jrl@ids.org.au>
9847         * rhythmdb/rhythmdb.h:
9848         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9849         structure private, since things should use the accessor functions
9850         rather than manipulating it directly - Only RhythmDB and the
9851         implementation classes should access it directly. Part of the RhythmDB
9852         cleanup of bug 330226.
9854         * iradio/rb-station-properties-dialog.c:
9855         (rb_station_properties_dialog_update_title),
9856         (rb_station_properties_dialog_update_title_entry),
9857         (rb_station_properties_dialog_update_genre),
9858         (rb_station_properties_dialog_update_location),
9859         (rb_station_properties_dialog_update_play_count),
9860         (rb_station_properties_dialog_update_bitrate),
9861         (rb_station_properties_dialog_update_last_played),
9862         (rb_station_properties_dialog_update_rating),
9863         (rb_station_properties_dialog_update_playback_error),
9864         (rb_station_properties_dialog_sync_entries):
9865         * podcast/rb-feed-podcast-properties-dialog.c:
9866         (rb_feed_podcast_properties_dialog_update_title),
9867         (rb_feed_podcast_properties_dialog_update_title_label),
9868         (rb_feed_podcast_properties_dialog_update_author),
9869         (rb_feed_podcast_properties_dialog_update_location),
9870         (rb_feed_podcast_properties_dialog_update_copyright),
9871         (rb_feed_podcast_properties_dialog_update_language),
9872         (rb_feed_podcast_properties_dialog_update_summary):
9873         * podcast/rb-podcast-manager.c:
9874         (rb_podcast_manager_entry_downloaded),
9875         (rb_podcast_manager_db_entry_added_cb),
9876         (download_progress_update_cb),
9877         (rb_podcast_manager_db_entry_deleted_cb):
9878         * podcast/rb-podcast-properties-dialog.c:
9879         (rb_podcast_properties_dialog_update_title),
9880         (rb_podcast_properties_dialog_update_title_label),
9881         (rb_podcast_properties_dialog_update_feed),
9882         (rb_podcast_properties_dialog_update_location),
9883         (rb_podcast_properties_dialog_update_play_count),
9884         (rb_podcast_properties_dialog_update_bitrate),
9885         (rb_podcast_properties_dialog_update_last_played),
9886         (rb_podcast_properties_dialog_update_rating),
9887         (rb_podcast_properties_dialog_update_date),
9888         (rb_podcast_properties_dialog_update_description):
9889         * rhythmdb/rhythmdb-query-model.c:
9890         (rhythmdb_query_model_entry_changed_cb),
9891         (rhythmdb_query_model_remove_from_main_list),
9892         (rhythmdb_query_model_update_limited_entries),
9893         (rhythmdb_query_model_drag_data_get),
9894         (rhythmdb_query_model_album_sort_func):
9895         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9896         (save_entry):
9897         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9898         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9899         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9900         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9901         (rhythmdb_entry_get_double):
9902         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9903         * shell/rb-play-order-random-by-age-and-rating.c:
9904         (rb_random_by_age_and_rating_get_entry_weight):
9905         * shell/rb-play-order-random-by-age.c:
9906         (rb_random_by_age_get_entry_weight):
9907         * shell/rb-play-order-random-by-rating.c:
9908         (rb_random_by_rating_get_entry_weight):
9909         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9910         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9911         (rb_shell_player_set_playing_entry),
9912         (rb_shell_player_sync_replaygain),
9913         (rb_shell_player_sync_with_source),
9914         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9915         * sources/rb-playlist-source.c: (playlist_iter_func),
9916         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9917         (rb_playlist_source_entry_added_cb):
9918         * sources/rb-podcast-source.c:
9919         (rb_podcast_source_post_status_cell_data_func):
9920         * sources/rb-source.c: (rb_source_update_play_statistics):
9921         * sources/rb-sourcelist-model.c:
9922         (rb_sourcelist_model_drag_data_get):
9923         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9924         (rb_static_playlist_source_add_entry),
9925         (rb_static_playlist_source_remove_entry):
9926         * widgets/rb-entry-view.c: (type_ahead_search_func),
9927         (rb_entry_view_playing_cell_data_func),
9928         (rb_entry_view_rating_cell_data_func),
9929         (rb_entry_view_pixbuf_clicked_cb):
9930         * widgets/rb-header.c: (rb_header_get_duration):
9931         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9932         (rb_song_info_populate_dialog),
9933         (rb_song_info_update_playback_error),
9934         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9935         (rb_song_info_update_location), (rb_song_info_update_play_count),
9936         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9937         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9938         (rb_song_info_sync_entry_single): fix the huge number of times that
9939         the internals got accessed directly.
9941 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9943         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9944         trash' are grouped together.
9945         * shell/main.c: (main): Pass no-registration flag in to RBShell
9946         constructor, rather than mysteriously always passing TRUE.
9947         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9948         Set dirty flag when entries are removed from the model, so the play
9949         queue is marked dirty appropriately.
9950         * AUTHORS: update my email address
9952 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9954         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9956         * widgets/rb-druid.c: (path_dialog_response_cb):
9957         If the URI is local, don't display the 'file://' prefix.  
9958         Fixes #330919.
9960 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9962         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9963         Attach the notification to the tray icon widget, so libnotify
9964         positions it less badly.  Fixes #330876.
9966 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9968         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9969         Reverse the selection list before returning it, so we get it in the
9970         right order.  Fixes #330283 and some other weirdness.
9972 2006-02-11  James Livingston  <jrl@ids.org.au>
9974         * shell/rb-shell.c: (rb_shell_constructor),
9975         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9976         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9977         make small-mode and fullscreen mutually exclusive, since they don't
9978         work together
9980         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9981         Mode.
9983 2006-02-10  James Livingston  <jrl@ids.org.au>
9985         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9986         since it can cause it to be slower than real-time. Should fix bug
9987         322270.
9989 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9991         * rhythmdb/rhythmdb-query-model.c:
9992         (rhythmdb_query_model_set_property):
9993         Think just a little bit harder about that last commit.
9995 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9997         * rhythmdb/rhythmdb-query-model.c:
9998         (rhythmdb_query_model_set_property):
9999         Get the check for hidden entries the right way around.
10000         Fixes #330527, #330514.
10002         (rhythmdb_query_model_set_sort_order):
10003         Ignore no-op sort order changes, so we don't get critical
10004         messages when selecting 'all' in auto playlist browsers.
10006 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10008         Patch by: Christophe Fergeau  <teuf@gnome.org>
10010         * sources/rb-removable-media-source.c:
10011         (rb_removable_media_source_init),
10012         (rb_removable_media_source_constructor):
10013         Move icon setup code to the constructor, as the volume property
10014         haven't been set yet when _init is called.
10016 2006-02-09  William Jon McCann  <mccann@jhu.edu>
10018         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
10019         Make the source pixbuf a dynamic property.
10021         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
10022         (rb_source_set_pixbuf, rb_source_set_property) 
10023         (rb_source_get_property): Add icon property.
10025         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
10026         (rb_auto_playlist_source_init):
10027         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
10028         (rb_static_playlist_source_init):
10029         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
10030         (rb_removable_media_source_init): 
10031         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
10032         (rb_podcast_source_init): 
10033         * sources/rb-library-source.c (rb_library_source_class_init) 
10034         (rb_library_source_set_property, rb_library_source_get_property): 
10035         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
10036         (rb_iradio_source_init): Remove impl_get_pixbuf and
10037         set icon property on source base class.
10039         * sources/rb-daap-source.c (rb_daap_get_icon): Get
10040         a different icon for when the share is password protected
10041         and locked.
10042         (rb_daap_source_new): Set icon property.
10043         (composite_icons): Composite an emblem on a pixbuf.
10044         (create_pixbufs): Load global pixbufs.
10045         (destroy_pixbufs): unref global pixbufs.
10046         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
10047         (connection_auth_cb, connection_connected_cb) 
10048         (connection_disconnected_cb): Update icon when connection
10049         status changes.
10050         (rb_daap_source_activate): Connect signals.
10052         * daapsharing/rb-daap-share.c (name_collision_cb): Run
10053         dialog with parent.
10055         * daapsharing/rb-daap-marshal.list: Add new signal.
10057         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
10058         (rb_daap_collision_dialog_new_run): Set parent of dialog.
10060         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
10061         Add authenticate, connected, and disconnected signals.
10062         (connection_get_password): emit authenticate signal instead
10063         of running dialog directly.
10064         (connection_connected, connection_disconnected): Emit signals.
10065         (handle_login): Emit connected signal.
10066         (handle_logout): Emit disconnected signal.
10067         (rb_daap_connection_do_something): Fix leak.
10069         Fixes #330291
10071 2006-02-09  James Livingston  <jrl@ids.org.au>
10073         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
10074         entries from the base model if we don't have show-hidden set. Fixes
10075         bug 330514.
10077 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10079         * daapsharing/rb-daap-share.c (message_get_session_id):
10080         Ugh. Use strtoul instead of atoi.
10081         (session_id_validate): Add debug statements.
10083 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10085         * daapsharing/rb-daap-connection.c (http_response_handler):
10086         Report the actual uri from the message in debug statements.
10088 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10090         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
10091         Add context argument.
10092         (message_get_session_id): New function to parse session id from
10093         the message.
10094         (message_get_revision_number): Break out function to parse
10095         revision number from the message.
10096         (session_id_validate): New function to validate given session id
10097         is valid for given context (ie. client address).
10098         (session_id_generate): Generate a random session id.
10099         (session_id_create): Create a unique session id and store it.
10100         (session_id_remove): Remove a session id from the store.
10101         (login_cb): Create a session id instead of using a constant one.
10102         (logout_cb): Validate session id.
10103         (update_cb): Use new message_get_revision_number function.
10104         (databases_cb): Validate session id.
10105         (server_cb): Add server context to argument list for callbacks.  It
10106         is needed to look up the remote host.
10107         (db_entry_changed_cb): Use braces.
10108         (soup_auth_callback): Remove FIXME.
10109         (rb_daap_share_server_start): Create session id store.
10110         (rb_daap_share_server_stop): Destroy session id store.
10112         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
10113         Don't base64-encode password here since it needs to be
10114         combined with the username first.
10116         * daapsharing/rb-daap-connection.c (build_message):
10117         Add username to Authorization token.
10118         (handle_login, handle_song_listing) 
10119         (rb_daap_connection_do_something): Session id
10120         must be an unsigned int.
10122         Fixes #329814
10124 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10126         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10127         Don't check if we've got a playing entry, ask the player object (duh).
10128         Might actually fix #329993.     
10130 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10132         * sources/rb-static-playlist-source.c:
10133         (rb_static_playlist_source_add_list_uri):
10134         Canonicalise URIs before trying to add them to the playlist, and 
10135         don't try to add files to the database for which there is 
10136         already an entry.
10138 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10140         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10141         Don't ask the entry view if we're playing, just check if we've got a
10142         playing entry.  Fixes #329993.
10144 2006-02-08  James Livingston  <jrl@ids.org.au>
10146         * rhythmdb/rhythmdb-query-model.c:
10147         (rhythmdb_query_model_set_property),
10148         (rhythmdb_query_model_finalize),
10149         (rhythmdb_query_model_base_complete): remove
10150         rhythmdb_query_model_base_entry_prop_changed, so that two signals
10151         don't get emitted for entry changes. Fixes bug 330301.
10153         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
10154         (rb_library_browser_init), (rb_library_browser_constructor),
10155         (rb_library_browser_new): do stuff in the constructor, not the init
10156         function, so that the db property gets set on RBPropertyViews
10157         correctly. Fixes a crash when dragging properties to a playlist.
10159 2006-02-07  William Jon McCann  <mccann@jhu.edu>
10161         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
10162         Actually stop soup server.  Fixes #329816.
10164 2006-02-07  James Livingston  <jrl@ids.org.au>
10166         * lib/rb-util.h:
10167         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
10168         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
10169         (collate_values_cb), (rb_collate_hash_table_keys),
10170         (rb_collate_hash_table_values): add functions to compare, copy and
10171         free string-lists. add functions to collate the keys or values of a
10172         hash table into a list.
10174         * rhythmdb/rhythmdb-property-model.c:
10175         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
10176         (_remove_entry_cb), (_add_entry_cb),
10177         (rhythmdb_property_model_set_property),
10178         (rhythmdb_property_model_get_property),
10179         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10180         (rhythmdb_property_model_row_inserted_cb),
10181         (rhythmdb_property_model_prop_changed_cb),
10182         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
10183         that are hidden, storing those that we have counted in a hash-table.
10185         * shell/Makefile.am: fix build order issue
10187         * shell/rb-shell-player.c: (rb_shell_player_set_property):
10188         * sources/rb-source.h:
10189         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10190         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10191         * sources/rb-podcast-source.c: (feed_select_change_cb): add
10192         browser-toggled method, rename _get_exta_views to _get_property_views,
10193         since several things depend on returning only that.
10195         * sources/rb-source.c: (rb_source_class_init),
10196         (rb_source_browser_toggled), (default_get_property_views),
10197         (rb_source_get_property_views), (rb_source_row_deleted_cb),
10198         (rb_source_gather_hash_keys),
10199         (rb_source_gather_selected_properties): above changes, and move some
10200         utility functions up from RBLibraryView
10202         * widgets/rb-property-view.c:
10203         (rb_property_view_selection_changed_cb): fix leak.
10205         * rhythmdb/rhythmdb-query-model.c:
10206         (rhythmdb_query_model_set_property),
10207         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
10208         (rhythmdb_query_model_set_sort_order),
10209         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
10210         query model being resorted.
10212         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
10213         NULL query.
10215         * rhythmdb/rhythmdb.h:
10216         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
10217         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
10218         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
10219         two queries. Add a function to append "property={X,Y,Z,...}" to a
10220         query.
10222         * sources/rb-library-source.c: (rb_library_source_class_init),
10223         (rb_library_source_finalize), (rb_library_source_constructor),
10224         (rb_library_source_cmd_choose_genre),
10225         (rb_library_source_cmd_choose_artist),
10226         (rb_library_source_cmd_choose_album), (impl_search),
10227         (impl_get_property_views), (impl_reset_filters),
10228         (rb_library_source_preferences_sync),
10229         (rb_library_source_browser_views_activated_cb),
10230         (rb_library_source_state_prefs_sync),
10231         (construct_query_from_selection), (rb_library_source_do_query),
10232         (rb_library_source_browser_changed_cb):
10233         * widgets/Makefile.am:
10234         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
10235         browser" widgets, which contains several property views, based on the
10236         code from RBLibrarySource. Make RBLibrarySource use it.
10238         * sources/rb-auto-playlist-source.c:
10239         (rb_auto_playlist_source_class_init),
10240         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
10241         (rb_auto_playlist_source_constructor), (impl_reset_filters),
10242         (impl_get_property_views), (impl_browser_toggled),
10243         (construct_query_from_selection),
10244         (rb_auto_playlist_source_do_query),
10245         (rb_auto_playlist_source_set_query),
10246         (rb_auto_playlist_source_browser_changed_cb): Use the new
10247         library-browser widget to add browsers to automatic playlists.
10249 2006-02-07  James Livingston  <jrl@ids.org.au>
10251         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
10252         properly.
10253         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
10254         type of the source is taken into account. Fixes bug 329621.
10256 2006-02-07  James Livingston  <jrl@ids.org.au>
10258         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10259         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
10260         1.1, and perform URI canonicalistion when first upgrading. This should
10261         fix our remaining canonicalisation issues, such as bug 329988.
10263 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10265         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
10266         Track the playing entry when the entry view isn't in the playing
10267         state, so we don't have to get the state changes exactly right.
10268         Fixes #330135.
10270 2006-02-06  James Livingston  <jrl@ids.org.au>
10272         * shell/rb-shell-player.c: (open_location_thread),
10273         (rb_shell_player_open_location): fix several iradio issues: having to
10274         press play after double-clicking on a station, not working correctly
10275         without a http:// prefix, and ignoring totem-plparser results other
10276         than success or error (e.g. IGNORE).
10278 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10280         Addition of dbus methods for dealing with static playlists and the
10281         play queue.  Fixes #329958.
10283         * shell/Makefile.am:
10284         * shell/rb-playlist-manager.h:
10285         * shell/rb-playlist-manager.xml:
10286         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10287         (rb_playlist_manager_get_playlists),
10288         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10289         (rb_playlist_manager_create_static_playlist),
10290         (rb_playlist_manager_delete_playlist),
10291         (rb_playlist_manager_add_to_playlist),
10292         (rb_playlist_manager_remove_from_playlist),
10293         (rb_playlist_manager_export_playlist):
10294         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10295         to create, delete, list, modify, export, and import  static playlists.
10296         
10297         * shell/main.c: (main): Register playlist manager object with dbus.
10299         * shell/rb-shell.h:
10300         * shell/rb-shell.xml:
10301         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10302         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10303         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10304         object, and implement the addToQueue and removeFromQueue methods.
10305         
10306         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10307         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10308         formats.
10310 2006-02-05  James Livingston  <jrl@ids.org.au>
10312         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10313         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10314         (save_entry): allow storage of booleans in the on-disk db, and
10315         save/load the HIDDEN property.
10317         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10318         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10319         to the state it was when RB shutdown. This makes RB appear to start
10320         faster, as tracks can appear before the stat is done. Remote files
10321         still start hidden. From bug 325215.
10323 2006-02-05  James Livingston  <jrl@ids.org.au>
10325         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10326         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10327         really cares about the difference from "entry-added", and it isn't
10328         emitted by the tree backend anyway.
10330         * rhythmdb/rhythmdb-query-model.c:
10331         (rhythmdb_query_model_constructor):
10332         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10333         remove the references to the entry-restored signal.
10335 2006-02-05  James Livingston  <jrl@ids.org.au>
10337         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10338         issue.
10340 2006-02-05  James Livingston  <jrl@ids.org.au>
10342         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10343         things are NULL before using g_object_unref. Fixes bug 327452.
10345         * player/rb-recorder-gst.c: (rb_recorder_construct):
10346         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10347         rather than assertion.
10349         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10350         emit a warning, rather than asserting if an unknown playlist type is
10351         encountered.
10353 2006-02-05  James Livingston  <jrl@ids.org.au>
10355         * widgets/Makefile.am:
10356         * widgets/rb-simple-view.c:
10357         * widgets/rb-simple-view.h: Move the two features that this class
10358         provides into RBPropertyView, and remove this class. Closes bug
10359         327500.
10361         * podcast/rb-feed-podcast-properties-dialog.c:
10362         * podcast/rb-feed-podcast-properties-dialog.h:
10363         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10364         (rb_podcast_source_feeds_show_popup_cb):
10365         * sources/rb-podcast-source.h:
10366         * widgets/rb-property-view.c: (rb_property_view_class_init),
10367         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10368         (rb_property_view_append_column_custom),
10369         (rb_property_view_button_press_cb):
10370         * widgets/rb-property-view.h: Updated for the above change.
10372 2006-02-04  James Livingston  <jrl@ids.org.au>
10374         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10375         too close to Move to Trash and people aren't likely to use it often.
10377 2006-02-04  James Livingston  <jrl@ids.org.au>
10379         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10381 2006-02-04  James Livingston  <jrl@ids.org.au>
10383         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10384         passed a path instead of a URI.
10386         * sources/rb-generic-player-source.c: (default_get_mount_path):
10387         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10388         the path. This fixes bug 329723.
10390 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10392         * daapsharing/rb-daap-structure.c:
10393         (rb_daap_content_code_string_as_int32):
10394         Use network byte order.
10396 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10398         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10399         Use a hash for source lookup.
10400         (mdns_service_added, mdns_service_removed): Handle
10401         service-added and service-removed signals from RBDaapMdnsBrowser.
10402         (remove_source): GDestroyNotify function for when sources
10403         are removed from the hash.
10404         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10405         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10406         (rb_daap_sources_shutdown): Update.
10407         (source_host_find): GHRFunc for finding a source by ip.
10408         (rb_daap_source_find_for_uri): Use the hash source lookup.
10410         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10411         Namespace keys.
10412         (password_check_button_toggled_cb): Handle password enabled.
10413         (share_name_entry_focus_out_event_cb): Namespace keys.
10414         Handle changes more robustly.
10415         (share_password_entry_focus_out_event_cb): Handle password entry.
10416         (add_daap_preferences): Connect to password signals.
10418         * lib/rb-preferences.h: Add DAAP keys.
10420         * data/glade/daap-prefs.glade: Add password UI.
10422         * data/rhythmbox.schemas: Add password keys.
10424         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10425         assert with warning.
10427         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10428         gconf keys to lib/rb-preferences.h.  Namespace
10429         the gconf keys.
10430         (create_share): Add password support.
10431         (enable_sharing_changed_cb): Namespaced keys.
10432         (require_password_changed_cb): Handle key change.
10433         (share_name_changed_cb): Namespaced keys.
10434         (share_password_changed_cb): Handle key change.
10435         (rb_daap_sharing_init): Namespaced keys.
10436         (rb_daap_sharing_shutdown): Ditto.
10438         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10439         Add password property.
10440         (rb_daap_share_set_name): Break out prop set function.
10441         (published_cb): New RBDaapMdnsPublisher signal handler.
10442         (name_collision_cb): Ditto.
10443         (rb_daap_share_init): Create publisher object and
10444         connect to signals.
10445         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10446         (rb_daap_share_set_property): Break out prop set functions.
10447         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10448         Unref publisher.
10449         (rb_daap_share_new): Add password argument.  Start
10450         publishing and DAAP server.
10451         (message_set_from_rb_daap_structure): Change print to debug.
10452         (server_info_cb): Set auth method to publish.
10453         (logout_cb): Handle DAAP client logout.
10454         (update_cb): Remove C++ comments.
10455         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10456         (server_cb): Add debug.
10457         (soup_auth_callback): Handle auth requests.
10458         (rb_daap_share_server_start): Split up functions for starting
10459         server and publishing.  Add auth handling to server.
10460         (rb_daap_share_server_stop): Split stop server and publish.
10461         No C++ comments.
10462         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10463         Start and stop publishing.
10464         (rb_daap_share_restart): Restart server and publishing.
10465         (rb_daap_share_maybe_restart): Conditionally restart.
10467         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10468         (rb_daap_collision_dialog_new_run): Don't use
10469         separators in dialogs.
10471         * daapsharing/rb-daap-connection.h: Add private
10472         data to class structure.
10474         * daapsharing/rb-daap-connection.c: Move
10475         some includes to top of file.  Make private
10476         data struct name consistent with others.
10477         (rb_daap_connection_class_init): Rename
10478         private.
10479         (rb_daap_connection_init): Get and store the pointer
10480         to the private data once instead of in every
10481         function.  Create a username value "Rhythmbox_VERSION".
10482         (connection_get_password): Don't get private.
10483         (build_message): Ditto.
10484         (http_response_handler): Don't init variables in
10485         declaration.  Add debug.  Spacing.
10486         (http_get, entry_set_string_prop, handle_server_info) 
10487         (handle_login, handle_update, handle_database_info) 
10488         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10489         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10490         (rb_daap_connection_state_done): Don't get private.
10491         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10492         spacing.  Correctly base64 encode the Authentication token.
10493         Add username to auth token.
10494         (rb_daap_connection_get_playlists): Don't get private.
10495         (rb_daap_connection_dispose): Ditto.  Free username.
10496         (rb_daap_connection_set_property) 
10497         (rb_daap_connection_get_property): Don't get private.
10499         * daapsharing/Makefile.am: Conditionally
10500         compile MDNS backends.  Add marshall stuff.
10502         * daapsharing/.cvsignore: Update.
10504         * configure.ac: Add conditional to see which
10505         MDNS backend we should use.
10507         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10509         * daapsharing/rb-daap-marshal.list:
10510         * daapsharing/rb-daap-mdns-browser-avahi.c:
10511         * daapsharing/rb-daap-mdns-browser-howl.c:
10512         * daapsharing/rb-daap-mdns-browser.h:
10513         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10514         * daapsharing/rb-daap-mdns-publisher-howl.c:
10515         * daapsharing/rb-daap-mdns-publisher.h:
10516         Split rb-daap-mdns.c into two classes.  One for
10517         publishing and one for browsing.  Split out
10518         the avahi and howl backends into different files.
10520         Fixes #322966
10521         
10522 2006-02-04  James Livingston  <jrl@ids.org.au>
10524         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10526         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10527         crash if metadata reader gives us NULL for strings.
10529 2006-02-03  James Livingston  <jrl@ids.org.au>
10531         * shell/rb-shell-player.c: (open_location_thread),
10532         (rb_shell_player_open_location):
10533         retrieve iradio playlists files in a thread, so that with GStreamer
10534         0.10 the UI doesn't block while connecting to stations. The streamer
10535         connection is synchronous with 0.8, so that will still block (a bit).
10536         Fixed bug 128106.
10538         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10539         because _open_entry does that automatically when it is ready to.
10541 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10543         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10544         (rb_podcast_source_post_status_cell_data_func):
10545         Leave the podcast status column blank for episodes that have not been
10546         downloaded.
10548 2006-02-03  James Livingston  <jrl@ids.org.au>
10550         Add support for source-specific toolbar items, and make the Burn
10551         Playlist item only available for playlists. Also add Update All
10552         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10554         * data/ui/rhythmbox-ui.xml:
10555         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10556         (impl_get_ui_actions): make the Burn CD toolbar item only for
10557         playlists
10559         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10560         * lib/rb-stock-icons.h: load the Eject icon as stock.
10562         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10563         action
10565         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10566         (rb_shell_select_source):
10567         * sources/rb-source.c: (rb_source_class_init),
10568         (rb_source_disconnect), (default_get_ui_actions),
10569         (rb_source_get_ui_actions):
10570         * sources/rb-source.h: add support for source-specific toolbar items
10572         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10573         Eject and Rip toolbar items
10575         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10576         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10577         item.
10579 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10581         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10582         * shell/main.c: (main):
10583         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10584         Replace all g_critical calls with g_warning, since none of them are
10585         the sort of thing the process should die over.  Fixes #329398.
10587 2006-02-03  James Livingston  <jrl@ids.org.au>
10589         * configure.ac: mention gst-plugins-base in the error message for not
10590         finding GStreamer 0.10, since not having that will cause it to fail.
10592 2006-02-03  James Livingston  <jrl@ids.org.au>
10594         * configure.ac: fix typo that means you get the wrong error message if
10595         you explicity request a particular playback engine, and it can't be
10596         found.
10598 2006-02-03  James Livingston  <jrl@ids.org.au>
10600         * data/glade/library-prefs.glade: allow the watched library location
10601         to be a non-local place.
10603 ============ Version 0.9.3
10606 2006-02-02  James Livingston  <jrl@ids.org.au>
10608         * NEWS: update NEWS
10609         * configure.ac: bump version to 0.9.3
10611         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10612         <caillon@redhat.com>, fixed bug 329517. 
10614 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10616         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10618         * widgets/rb-song-info.c: (rb_song_info_constructor):
10619         Make year and disc number fields non-editable if tag editing
10620         is disabled.  Fixes #329463.
10622 2006-02-01  James Livingston  <jrl@ids.org.au>
10624         * rhythmdb/rhythmdb-property-model.c:
10625         (rhythmdb_property_model_row_inserted_cb),
10626         (rhythmdb_property_model_prop_changed_cb),
10627         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10628         correctly. Fixes bug 327061.
10630         * rhythmdb/rhythmdb-query-model.c:
10631         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10632         the HIDDEN property when an entry is removed for being hidden.
10634         * rhythmdb/rhythmdb-query-model.h:
10635         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10636         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10637         models's "connected" property. Whatever it was needed for seems to
10638         have gone.
10640 2006-02-01  James Livingston  <jrl@ids.org.au>
10642         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10644         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10645         (rb_shell_player_playing_changed_cb): block the signal to prevent
10646         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10647         button pausing.
10649 2006-02-01  James Livingston  <jrl@ids.org.au>
10651         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10652         /should/ now work, if the neccessary plugins get ported.
10654 2006-01-30  James Livingston  <jrl@ids.org.au>
10656         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10657         string properties to "Unknown" is the string is empty. Kind of fixes
10658         bug 327495.
10660         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10661         gettext calls once, rather than once per time the function is used.
10662         This stops us making tens of thousands of gettext calls on startup,
10663         which reduces the cpu-time of startup by 10-20%
10665 2006-01-29  James Livingston  <jrl@ids.org.au>
10667         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10668         (rhythmdb_add_uri):
10669         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10670         for files containing known video streams.
10673 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10675         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10676         required.
10678 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10680         * INSTALL.quick: More random updates
10682         * rhythmdb/rhythmdb-query-model.c:
10683         (rhythmdb_query_model_class_init),
10684         (rhythmdb_query_model_set_property),
10685         (rhythmdb_query_model_get_property),
10686         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10687         Remove user sort data handling, take a property ID and a reverse
10688         flag instead.
10689         (rhythmdb_query_model_insert_into_main_list),
10690         (rhythmdb_query_model_insert_into_limited_list),
10691         (rhythmdb_query_model_do_reorder),
10692         (_reverse_sorting_func):
10693         Handle reverse sorting by calling _reverse_sorting_func, which
10694         calls the real sort function and reverses the result.
10695         (rhythmdb_query_model_set_sort_order):
10696         Allow this to be called to set the initial sort order for limited
10697         queries, and handle reverse sorting when reordering.
10698         (rhythmdb_query_model_location_sort_func),
10699         (rhythmdb_query_model_album_sort_func),
10700         (rhythmdb_query_model_artist_sort_func),
10701         (rhythmdb_query_model_genre_sort_func),
10702         (rhythmdb_query_model_track_sort_func),
10703         (rhythmdb_query_model_double_ceiling_sort_func),
10704         (rhythmdb_query_model_ulong_sort_func),
10705         (rhythmdb_query_model_date_sort_func),
10706         (rhythmdb_query_model_string_sort_func):
10707         Sort functions moved from rb-entry-view.c.
10708         * rhythmdb/rhythmdb-query-model.h:
10709         Add the sort functions, and update the changed functions.
10710         
10711         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10712         Just call _resort_model when the query model is set, since it
10713         does all the same things.
10714         (rb_entry_view_append_column):
10715         Rework bits so the rating column doesn't have to be so much of a
10716         special case.
10717         (rb_entry_view_append_column_custom):
10718         Take a property ID to sort on, rather than arbitrary custom data.
10719         (rb_entry_view_resort_model):
10720         Query model does all the reverse sort handling now.
10721         * widgets/rb-entry-view.h: Update _append_column_custom.
10723         * sources/rb-play-queue-source.c:
10724         (rb_play_queue_source_constructor):
10725         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10726         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10727         (rb_podcast_source_post_date_cell_sort_func),
10728         (rb_podcast_source_post_status_cell_sort_func),
10729         (rb_podcast_source_post_feed_cell_sort_func):
10730         Updates required by all the other changes.
10732         * rhythmdb/rhythmdb-property-model.c:
10733         (rhythmdb_property_model_drag_data_get):
10734         Sort the query results on the selected property,
10735         so they arrive in the expected order.  All the other changes were made
10736         to make this possible.  Fixes bug #327494.
10738 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10739         
10740         * shell/rb-shell-clipboard.c:
10741         Use GTK_STOCK_REMOVE icon for the remove action in
10742         the play queue too.
10744 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10746         * sources/rb-play-queue-source.c:
10747         (rb_play_queue_source_constructor),
10748         (rb_play_queue_source_update_count):
10749         Don't make the 'queued songs' column clickable,
10750         and add the queued song count to the column title.
10752 2006-01-29  James Livingston  <jrl@ids.org.au>
10754         * configure.ac: remove "experimental" marking from DAAP, and enable by
10755         default if the dependencies are found.
10757 2006-01-29  James Livingston  <jrl@ids.org.au>
10759         * NEWS: update NEWS
10761 2006-01-29  James Livingston  <jrl@ids.org.au>
10763         patch by: William Jon McCann  <mccann@jhu.edu>
10765         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10766         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10767         property used for the feed list. Fixes problem with feeds with no
10768         episodes not showing up.
10770 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10771         
10772         * shell/rb-play-order-random-by-age-and-rating.c:
10773         (rb_random_by_age_and_rating_get_entry_weight):
10774         Fix compile errors, bug #328978.
10776 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10778         * INSTALL.quick, README: Random updates
10779         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10781 2006-01-28  James Livingston  <jrl@ids.org.au>
10783         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10784         default rating back to 0 (from 2.5, which was needed for autorating).
10786         * shell/rb-play-order-random-by-age-and-rating.c:
10787         (rb_random_by_age_and_rating_get_entry_weight):
10788         * shell/rb-play-order-random-by-rating.c:
10789         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10790         2.5 for the purposes of weighting entries.
10792 2006-01-28  James Livingston  <jrl@ids.org.au>
10794         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10795         translator comments, to make it clearer what the "friendly time"
10796         formatting strings mean.
10798 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10800         * daapsharing/rb-daap-connection.c: (http_response_handler):
10801         Fix the sense of the overflow check so it'll accept valid input.
10803 2006-01-27  James Livingston  <jrl@ids.org.au>
10805         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10807         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10808         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10810 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10812         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10813         
10814         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10815         Don't include the artist field in the window title if it's blank.
10816         Fixes #325973.
10818 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10820         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10821         Use stock delete icon for move to trash and stock remove
10822         for remove menu item.
10824 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10826         * shell/rb-shell.c: (rb_shell_constructor),
10827         (idle_handle_load_complete):  Don't start the playlist save
10828         timeout until we've loaded the playlists, otherwise we'll
10829         write an empty playlist file if startup takes too long.
10831 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10833         * shell/rb-shell.c: Make view toolbar toggle use
10834         shift+ctrl+t.  Fixes #327585.
10836 2006-01-25  James Livingston  <jrl@ids.org.au>
10838         patch by: Christope Fergeau  <teuf@gnome.org>
10840         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10841         (http_response_handler): fix a potential buffer overflow issue.
10843 2006-01-25  James Livingston  <jrl@ids.org.au>
10845         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10846         Year column wide enough to display "Unknown"
10848 2006-01-25  James Livingston  <jrl@ids.org.au>
10850         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10851         (rb_podcast_source_post_status_cell_data_func): make the episode
10852         status wording better. Part of bug 321607.
10854 2006-01-25  James Livingston  <jrl@ids.org.au>
10856         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10857         others with a separator.
10859         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10860         stock Delete icon.
10862 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10864         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10866 2006-01-23  James Livingston  <jrl@ids.org.au>
10868         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10869         0.3.2. Fixed bug 328158.
10871 2006-01-23  James Livingston  <jrl@ids.org.au>
10873         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10874         (gulong_gst_date_transform), (rb_metadata_class_init):
10875         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10877 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10879         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10880         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10881         (record_entry_change): Protect added_entries and changed_entries with
10882         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10884 2006-01-23  James Livingston  <jrl@ids.org.au>
10886         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10887         the browser for audio CDs.
10889 2006-01-22  James Livingston  <jrl@ids.org.au>
10891         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10892         NEVER_FAIL as it causes the daemon-not-running error to never be
10893         reported, resulting in bug 319438 re-occurring.
10895 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10897         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10898         Just call the podcast manager's update method.  Unbreaks the 'update
10899         all feeds' command.
10901 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10903         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10905 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10907         * configure.ac: Don't disable DAAP with gstreamer 0.10
10909         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10910         (rb_daap_src_class_init), (rb_daap_src_init),
10911         (rb_daap_src_finalize), (rb_daap_src_set_property),
10912         (rb_daap_src_get_property), (rb_daap_src_write),
10913         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10914         (_split_uri), (rb_daap_src_open):
10915         * daapsharing/rb-daap-src.h:
10916         Mostly fix seeking, handle chunked transfer encoding, and port to
10917         gstreamer 0.10.
10918         
10919         * player/rb-player-gst.c:
10920         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10921         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10923         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10924         being fixed.
10926 2006-01-21  James Livingston  <jrl@ids.org.au>
10928         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10929         for Year metadata in DAAP sources. Fixes bug 327700.
10931         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10933 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10935         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10936         enum values instead of magic numbers.
10938         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10939         Add number of songs that match each property title into
10940         the cell.  Also show the number of properties that match
10941         in the All entry.
10942         (rb_property_view_constructor): Use enum values instead of
10943         magic numbers.
10945         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10946         Query podcast posts instead of feeds for browser.  Use
10947         post SUBTITLE which is the location for the property view.
10948         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10949         (construct_query_from_selection) 
10950         (rb_podcast_source_cmd_delete_feed) 
10951         (rb_podcast_source_cmd_properties_feed) 
10952         (rb_podcast_source_cmd_update_feed): Use variable to make
10953         it clear what the selection data represents.
10954         (rb_podcast_source_feed_title_cell_data_func): Add number
10955         of posts that belong to each feed in the browser.
10957         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10958         (rhythmdb_property_model_delete_prop): Decrement the refcount
10959         for the All entry.
10960         (rhythmdb_property_model_get_column_type): Use column enum
10961         values instead of magic numbers.  Add NUMBER column.
10962         (rhythmdb_property_model_get_value): Use enum.
10963         Add NUMBER column that represents the refcount for
10964         the title of that property.
10965         (rhythmdb_property_model_perform_sync): Don't fake up
10966         a title for All here.
10968         Fixes #327372.
10969         
10970 2006-01-21  James Livingston  <jrl@ids.org.au>
10972         Make Rhythmbox start faster by not blocking the UI while database
10973         initialisation and loading occurs. Closes bug 323348.
10975         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10976         start 10 seconds later instead of immediately.
10977         
10978         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10979         safe to call from any thread.
10981         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10982         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10983         so the UI doesn't block.
10985 2006-01-18  James Livingston  <jrl@ids.org.au>
10987         * sources/rb-static-playlist-source.c:
10988         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10989         cause crashes. Oops. fixes bug 327477.
10991 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10993         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10994         Set GST element state to NULL before unreffing.
10995         Fixes #327422.
10997 2006-01-18  James Livingston  <jrl@ids.org.au>
10999         * sources/rb-static-playlist-source.c:
11000         (rb_static_playlist_source_do_query): don't filter on the SONG entry
11001         type, since the playlists can contain non-song entries. Fixes bug
11002         327448.
11004         * sources/rb-play-queue-source.c:
11005         (rb_play_queue_source_class_init): disable the search box for the
11006         queue.
11008 2006-01-18  James Livingston  <jrl@ids.org.au>
11010         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
11011         dragging of podcast episodes. Fixed bug 327450.
11013 2006-01-18  James Livingston  <jrl@ids.org.au>
11015         * rhythmdb/rhythmdb-query-model.c:
11016         (rhythmdb_query_model_drag_data_received): fix possible assertion when
11017         dragging to an emoty playlist.
11019 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
11021         * sources/rb-playlist-source-recorder.c:
11022         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
11024 2006-01-17  James Livingston  <jrl@ids.org.au>
11026         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
11028         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
11029         different number of tracks than exist on the cd, since that happens
11030         with audio+data hybrid CDs. Part of bug 325046.
11032 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
11034         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11035         Remove useless call to gtk_tree_view_column_set_clickable().
11037         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
11038         Don't store sort data for columns if the sort function is NULL,
11039         so only sortable columns will be in the column sort data map.
11040         (rb_entry_view_set_columns_clickable): Only make columns we can sort
11041         on clickable.
11042         (rb_entry_view_constructor):  The 'playing icon' column is never
11043         clickable, so don't connect a signal handler for it.
11045         Fixes bug 326811.
11047 2006-01-17  James Livingston  <jrl@ids.org.au>
11049         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
11050         are 0.8 only. Fix element detection.
11052         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
11053         saving the new metadata failed
11055 2006-01-17  James Livingston  <jrl@ids.org.au>
11057         * shell/rb-shell-player.c: (do_next_idle),
11058         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
11059         (eos_cb): release audio device when a playlist finishes. Fixes bug
11060         323679.
11062 2006-01-17  James Livingston  <jrl@ids.org.au>
11064         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
11065         canonicalise the URIs when things are added via library watching.
11067 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11069         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11070         Off by one error in default speed index.
11072 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11074         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
11075         (update_speed_combobox, update_speed_combobox):
11076         Get a list of the actually supported write speeds from
11077         n-c-b >= 2.13.90.  Otherwise use fallback list.
11079 2006-01-17  James Livingston  <jrl@ids.org.au>
11081         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
11082         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
11083         don't get stuck on recursive symlinks. Fixed bug 125452.
11085 2006-01-17  James Livingston  <jrl@ids.org.au>
11087         Add support for mass-storage audio players. Players are detected via
11088         either the HAL "audio_player" capability, or a ".is_audio_player" file
11089         in the root of the volume. Closes bug 325602.
11091         * configure.ac: separate using HAL from ipod support.
11093         * lib/rb-file-helpers.c: (rb_uri_is_local):
11094         * lib/rb-file-helpers.h: add function to determine whether a URI is
11095         local.
11097         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
11098         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
11099         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
11100         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
11101         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
11102         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
11103         directories can be scanned for files to add as  non-SONG entries.
11105         * shell/rb-removable-media-manager.c:
11106         (rb_removable_media_manager_mount_volume): add checking for
11107         mass-storage players.
11109         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
11110         * sources/rb-ipod-source.c: (rb_ipod_source_new),
11111         (hal_udi_is_ipod):
11112         * sources/rb-removable-media-source.c:
11113         (rb_removable_media_source_class_init),
11114         (rb_removable_media_source_constructor): move some things up to the
11115         RBRemovableMediaSource, rather than making subclasses do it.
11117         * sources/Makefile.am:
11118         * sources/rb-generic-player-source.c:
11119         * sources/rb-generic-player-source.h: add mass-storage player source.
11121 2006-01-16  James Livingston  <jrl@ids.org.au>
11123         patch by: William Jon McCann  <mccann@jhu.edu>
11125         * rhythmdb/rhythmdb-query-model.c:
11126         (rhythmdb_query_model_base_row_deleted): fix build issue from last
11127         commit.
11129 2006-01-16  James Livingston  <jrl@ids.org.au>
11131         Patch to add support for "chained queries" and putting hidden tracks
11132         in query models. Use chained queries to add search box support to
11133         normal playlists, and to make hidden entries not get lost. Fixes bug
11134         319278.
11136         * rhythmdb/rhythmdb-query-model.h:
11137         * rhythmdb/rhythmdb-query-model.c:
11138         (rhythmdb_query_model_class_init),
11139         (rhythmdb_query_model_set_property),
11140         (rhythmdb_query_model_get_property):
11141         (rhythmdb_query_model_finalize): add "show-hidden" and
11142         "base-model" properties.
11144         (rhythmdb_query_model_set_connected),
11145         (rhythmdb_query_model_has_pending_changes),     
11146         (rhythmdb_query_model_entry_added_cb),
11147         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
11148         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
11149         (rhythmdb_query_model_remove_entry),
11150         (rhythmdb_query_model_drag_data_received),
11151         (rhythmdb_query_model_base_row_inserted),
11152         (rhythmdb_query_model_base_row_deleted),
11153         (rhythmdb_query_model_base_non_entry_dropped),
11154         (rhythmdb_query_model_base_complete),
11155         (rhythmdb_query_model_base_entry_prop_changed),
11156         (rhythmdb_query_model_base_rows_reordered),
11157         (rhythmdb_query_model_row_drop_possible): handle base-model by
11158         chaining events and operations where necessary. Make hidden entries
11159         not get added only if "show-hidden" is false.
11161         (rhythmdb_query_model_child_index_to_base_index),
11162         (rhythmdb_query_model_base_index_to_child_index),
11163         (rhythmdb_query_model_get_entry_index): utility functions for handling
11164         base-model entries.
11166         (rhythmdb_query_model_reapply_query): apply the current query, and
11167         remove entries that don't match it.
11169         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
11170         empty queries.
11172         * sources/rb-source.c: (rb_source_set_property): move the unref later
11173         to fix problem if it is the last reference.
11175         * sources/rb-static-playlist-source.c:
11176         (rb_static_playlist_source_class_init),
11177         (rb_static_playlist_source_init),
11178         (rb_static_playlist_source_finalize),
11179         (rb_static_playlist_source_constructor), (impl_reset_filters),
11180         (impl_search), (rb_static_playlist_source_do_query),
11181         (impl_save_contents_to_xml),
11182         (rb_static_playlist_source_add_location_internal): use a chained query
11183         model to filter out hidden entries and implement the search box.
11185 2006-01-15  James Livingston  <jrl@ids.org.au>
11187         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
11188         the default playlist loading, which I broke earlier.
11190 2006-01-15  James Livingston  <jrl@ids.org.au>
11192         patch by: William Jon McCann  <mccann@jhu.edu>
11194         * sources/rb-playlist-source.c: (playlist_iter_func): use
11195         totem-plparser's new API version macros to check for API changes.
11196         Handle the recent API change.
11198 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11200         * sources/rb-library-source.c: (impl_get_config_widget):
11201         Ref the preferences object to match the unref in the
11202         finalizer.  Fixes some portion of #323505.
11204 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11206         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
11207         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
11208         Fix valgrind warnings about accessing uninitialised values.
11210 2006-01-14  William Jon McCann  <mccann@jhu.edu>
11212         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
11214 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11216         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
11217         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
11218         Stops the 'now playing' icon from being displayed after the play
11219         order finishes.
11221 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11223         * podcast/rb-podcast-manager.c:
11224         (rb_podcast_manager_db_entry_deleted_cb):
11225         Don't try to delete files we never downloaded, and cancel downloads
11226         for deleted episodes.  Fixes bug #326862.
11227         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
11228         Don't complain about NULL data items in the selection list.
11230 2006-01-14  James Livingston  <jrl@ids.org.au>
11232         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11233         Make the name ofthe queue non editable. Fixes bug 326918.
11235 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11237         * sources/rb-playlist-source-recorder.c (burn_cd) 
11238         (ask_rewrite_disc): Don't use our locally copied functions
11239         if we have at least 2.13.
11241 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11243         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
11244         Correct the argument type for the process_error signal.
11245         May fix bug #323154.
11247 2006-01-13  James Livingston  <jrl@ids.org.au>
11249         save the queue to disk when exiting, and reload on startup. Fixed bug
11250         326677 .
11252         * shell/rb-playlist-manager.c:
11253         (rb_playlist_manager_load_playlists),
11254         (rb_playlist_manager_save_playlists_async): don't disable saving of
11255         the queue
11257         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11258         add the queue source as a gobject property.
11260         * sources/rb-play-queue-source.c:
11261         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
11262         code to save the queue to xml
11264         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
11265         load the queue from xml.
11266         * sources/rb-playlist-xml.h:
11268         * sources/rb-static-playlist-source.c:
11269         (rb_static_playlist_source_load_from_xml),
11270         (rb_static_playlist_source_new_from_xml):
11271         * sources/rb-static-playlist-source.h: split the playlist xml loading
11272         from the static playlist creation function, so the queue can use it.
11274 2006-01-13  James Livingston  <jrl@ids.org.au>
11276         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
11277         assertion that should be there. Fixes bug 325923.
11278         
11279         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
11280         return NULL if the entry already exists (e.g. as another type).
11281         * daapsharing/rb-daap-connection.c: (handle_song_listing):
11282         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11283         (rb_podcast_manager_insert_feed):
11284         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
11285         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
11286         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11287         for the above function returning NULL.
11289 2006-01-12  James Livingston  <jrl@ids.org.au>
11291         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11292         is enabled. Fixes bug 326673.
11293         
11294         * doc/reference/tmpl/eggtrayicon.sgml:
11295         * doc/reference/tmpl/rb-daap-src.sgml:
11296         * doc/reference/tmpl/rb-source.sgml:
11297         * doc/reference/tmpl/rb-statusbar.sgml:
11298         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11299         * doc/reference/tmpl/rhythmbox-unused.sgml:
11300         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11302 2006-01-11  James Livingston  <jrl@ids.org.au>
11304         * widgets/rb-song-info.c: (rb_song_info_constructor),
11305         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11306         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11307         the same value for properties. From bug 326054.
11309 2006-01-11  James Livingston  <jrl@ids.org.au>
11311         * sources/rb-source.h:
11312         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11313         (rb_shell_player_set_playing_source_internal), (eos_cb):
11314         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11315         every entry.
11317         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11318         source use this. Closes bug 322077.
11320 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11322         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11323         In order for set_icon_data_from_pixbuf() to be
11324         effective, one must not set an icon in _new().
11326 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11328         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11329         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11330         (egg_tray_icon_notify): Add support for libnotify 0.3.
11331         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11332         * configure.ac: Determine the version of libnotify.
11333         Fixes #326333.
11335 2006-01-08  James Livingston  <jrl@ids.org.au>
11337         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11338         trying to share a track with unknown length.
11340 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11342         * shell/rb-shell-player.c: (rb_shell_player_init):
11343         Sync volume on startup so it doesn't default to 0.
11345 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11347         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11348         (rb_shell_player_get_property), (rb_shell_player_open_location),
11349         (info_available_cb):  Add the iradio streamed song title as a
11350         property, and emit a signal when it changes.
11352         * shell/rb-shell.c: (rb_shell_constructor),
11353         (rb_shell_player_elapsed_changed_cb),
11354         (rb_shell_player_stream_song_changed_cb):
11355         Issue a notification when the iradio song title changes.
11356         Fixes #326166.
11358 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11360         * shell/rb-shell-player.c: (rb_shell_player_init),
11361         (rb_shell_player_finalize), (rb_shell_player_set_property),
11362         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11363         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11364         (rb_shell_player_set_volume_relative),
11365         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11366         (rb_shell_player_get_mute):
11367         * shell/rb-shell-player.h:
11368         * shell/rb-shell-player.xml:
11369         Store volume as a property on RBShellPlayer, rather than in gconf.
11370         Add some methods to control volume via dbus.
11372         * shell/rb-shell.c: (rb_shell_constructor),
11373         (rb_shell_volume_widget_changed_cb),
11374         (rb_shell_player_volume_changed_cb):
11375         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11376         Update volume using player properties rather than gconf, and sync the
11377         volume with the volume control button when something else changes it.
11378         Fixes #323840.
11380 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11382         * shell/rb-tray-icon.c (tray_popup_position_menu):
11383         Make tray menu align with edge of panel.
11385         patch from Jaap A. Haitsma <jaap@haitsma.org>
11386         Fixes #319913
11388 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11389         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11390         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11391         (rb_playlist_manager_new_playlist_from_selection_data):
11392         Make a reasonable default name for playlists created from
11393         dropped data.  Fixes #326116.
11395 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11397         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11398         Use new gconf key.
11399         (burn_cd): Always eject CD after burning.  Too many drives
11400         get confused if we don't.  Save the speed used if the burn
11401         was completed successfully.
11403         * data/rhythmbox.schemas: Use our own speed instead of from
11404         n-c-b. The situation is that the default_speed for n-c-b is most
11405         likely the maximum write speed.  This is fine for n-c-b because it
11406         has burn-proof turned on.  We can't turn it on for audio CDs
11407         because the results are poor in quality.  So we'll just pick a
11408         default that should work for everyone (4).
11410 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11411         
11412         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11413         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11415 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11417         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11418         in my previous commit.  Fixes #326037.
11420 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11422         patch by: Jonathan Matthew
11424         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11425         error on Fedora Rawhide.
11427 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11429         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11430         Assume HTTP URLs ending with .xml or .rss are podcasts.
11431         (rb_shell_add_uri): Handle adding podcast feeds.
11433         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11434         Register as the source for podcast feeds.
11436 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11438         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11439         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11440         (rb_shell_preferences_append_view_page):
11441         * shell/rb-shell-preferences.h:
11442         Fix typo in function name.  Fixes #325992.
11444 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11446         * shell/rb-audioscrobbler.c:
11447         Add '+' to the list of characters to URI-encode, so it doesn't get
11448         interpreted as a space.
11450 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11452         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11453         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11454         goes away while we're still trying to log in.
11456 2006-01-06  James Livingston  <jrl@ids.org.au>
11458         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11460 2006-01-06  James Livingston  <jrl@ids.org.au>
11462         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11463         support for Year to automatic playlists. Closes bug 321341.
11465         * rhythmdb/rhythmdb-query-model.c:
11466         (rhythmdb_query_model_set_property):
11467         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11468         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11469         (rhythmdb_query_free), (rhythmdb_query_serialize),
11470         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11471         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11472         * rhythmdb/rhythmdb.h: Support special
11473         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11474         year in date.
11476         * widgets/rb-query-creator-properties.c:
11477         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11478         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11480 2006-01-06  James Livingston  <jrl@ids.org.au>
11482         * configure.ac: make the playback backend selection work correctly
11484         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11485         (rb_daap_src_class_init), (rb_daap_src_dispose),
11486         (rb_daap_src_change_state), (rb_daap_src_initialize):
11487         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11488         doesn't work for this class. Fixes bug 325934
11490 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11492         * configure.ac: Fix check for libnotify.
11494 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11496         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11497         Get name element for current lang and remove all name nodes
11498         from the XML tree.
11499         (get_playlist_name_from_xml): Try to get name element or
11500         fall back to name attribute.
11501         (rb_playlist_source_new_from_xml): Get name before turning over
11502         to sub-types for parsing so that we can remove name elements
11503         from the tree if necessary.
11505         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11506         Load default playlists file if per user playlists are not found.
11508         * data/playlists.xml.in: 
11509         * data/Makefile.am: 
11510         * data/.cvsignore: Add default set of playlists.
11511         Fixes #323004
11513 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11515         * shell/main.c: (main): Don't use the dbus interface to show the
11516         window if we're also going to use the bonobo interface.
11518 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11520         * shell/rb-history.c: (rb_history_set_playing):
11521         Allow setting the playing song to NULL.
11522         (rb_history_append), (rb_history_delete_link):
11523         Don't randomly change position when entries are added and removed,
11524         it confuses play orders.
11525         
11526         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11527         Random orders always have a next entry if the model is not empty.
11528         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11529         Go back to the start of the history if we're past its end.
11531         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11532         (rb_shuffle_play_order_go_next): Go back to the start of the history
11533         if we're past its end.
11534         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11535         the history if the current entry is removed.
11537         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11538         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11539         the play order when the query has finished. This wasted about 10% CPU
11540         while the query was running.
11542         Fixes #324641: assertion failures when the query model was changed
11543         such that the playing song was no longer present.
11545 2006-01-05  James Livingston  <jrl@ids.org.au>
11547         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11548         (rb_daap_src_dispose), (rb_daap_src_change_state):
11549         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11550         (rhythmdb_gda_finalize):
11551         * widgets/rb-cell-renderer-pixbuf.c:
11552         * widgets/rb-cell-renderer-rating.c:
11553         (rb_cell_renderer_rating_class_init),
11554         (rb_cell_renderer_rating_finalize):
11555         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11556         * widgets/rb-load-failure-dialog.c:
11557         (rb_load_failure_dialog_class_init),
11558         (rb_load_failure_dialog_finalize):
11559         * widgets/rb-rating.c: (rb_rating_class_init),
11560         (rb_rating_finalize):
11561         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11562         (rb_search_entry_finalize): use G_DEFINE_TYPE
11564         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11566 2006-01-05  James Livingston  <jrl@ids.org.au>
11568         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11570         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11571         the tarball.
11573         * shell/rb-history.c: (rb_history_class_init),
11574         (rb_history_finalize):
11575         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11576         (rb_playlist_manager_finalize):
11577         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11578         (rb_remote_init): use G_DEFINE_TYPE.
11580 2006-01-05  James Livingston  <jrl@ids.org.au>
11582         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11583         changes
11585 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11587         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11588         Disable burn action when source is not a playlist.
11589         Fixes #323578.
11591 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11593         Optionally use libnotify to display song change and other
11594         notifications, and provide an option to disable notifications.
11595         Fixes #320355 and innumerable informal complaints.
11597         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11598         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11599         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11600         (egg_tray_icon_notify):
11601         * widgets/eggtrayicon.h:
11602         * configure.ac:
11603         * shell/Makefile.am:
11604         Optionally use libnotify instead of eggnotificationbubble.
11606         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11607         (rb_tray_icon_constructor), 
11608         (rb_tray_icon_show_notifications_changed_cb),
11609         (rb_tray_icon_hide_notify_cb)
11610         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11611         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11612         EggNotificationBubble pointer to eggtrayicon.
11614         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11615         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11616         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11618 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11620         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11621         Request a minimum size for the progress bar so that
11622         the window doesn't shrink too small.
11624 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11626         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11627         (add_db_entry), (db_entry_deleted_cb):
11628         Don't track the number of songs currently present, track the next ID
11629         to assign.  Fixes potential ID conflict problems.
11630         
11631         (db_entry_changed_cb), (rb_daap_share_start_publish),
11632         (rb_daap_share_stop_publish):
11633         Watch for db entry changes, and when songs become non-hidden after
11634         a successful stat, add them to the mapping tables.   Fixes #325178,
11635         making the DAAP server usable again.
11637 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11638         
11639         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11640         (rb_statusbar_construct), (rb_statusbar_init),
11641         (rb_statusbar_finalize), (rb_statusbar_set_property),
11642         (rb_statusbar_get_property), (rb_statusbar_new),
11643         (rb_statusbar_sync_with_source):
11644         * shell/rb-statusbar.h:
11645         Remove visibility management code, stop watching for play order
11646         changes (status bar doesn't show play order any more), remove unused
11647         'player' property, and some other minor cleanup.
11648         
11649         * shell/rb-shell.c: (rb_shell_constructor),
11650         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11651         (rb_shell_sync_statusbar_visibility):
11652         Manage status bar visibility here rather than in the status bar
11653         itself, so we can take small mode into account.  Fixes #323589.
11655 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11657         * widgets/eggnotificationbubble.c: (draw_bubble):
11658         Move the bubble off the visible screen while setting up bevels.  
11659         Fixes #316810.
11661 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11663         * shell/rb-shell-player.c: (rb_shell_player_init),
11664         (rb_shell_player_finalize): 
11665         Remove unused structure members.
11666         
11667         (do_next_idle), (rb_shell_player_error):
11668         Only queue one call to do_next_idle, so we don't skip tracks if we get
11669         two errors for the same song.  Fixes #325216.
11671 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11673         * data/glade/podcast-feed-properties.glade,
11674          podcast/rb-feed-podcast-properties-dialog.c:
11675         (rb_feed_podcast_properties_dialog_init),
11676         (rb_feed_podcast_properties_dialog_update):
11677         Add 'last episode' field to the podcast feed properties dialog.
11679         * podcast/rb-feed-podcast-properties-dialog.c:
11680         (rb_feed_podcast_properties_dialog_update_last_update),
11681         (rb_feed_podcast_properties_dialog_update_last_episode),
11682          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11683         Use last-seen property for the time at which we last updated the feed,
11684         and post-time for the time the last episode was published.
11686         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11687         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11688         feed, use last-seen (which in 0.9.2 was the last post time).
11690         Fixes #323894.
11692 2006-01-01  James Livingston  <jrl@ids.org.au>
11694         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11696         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11697         year from the ipod database.
11699 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11701         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11702         Only set the pipeline back to NULL state for really uninteresting
11703         files.  This was causing deadlocks with various video files.
11704         Fixes #324912.
11706 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11708         * data/glade/song-info-multiple.glade:
11709         Add disc number label and field.
11710         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11711         (rb_song_info_constructor): 
11712         Handle widgets for disc number.
11713         (rb_song_info_sync_entries_multiple):
11714         Set disc number property on selected entries.
11715         Fixes #324777.
11717 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11719         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11720         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11721         Activate the default widget when enter is pressed in these dialogs.
11722         Fixes #322887.
11724 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11726         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11727         Use rb_shell_player_get_playing_entry, so we get the right entry
11728         when playing from the queue.  Fixes #325379.
11730 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11732         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11733         Include podcast posts with no publication date.  Typically
11734         seen in static collections rather than feeds.
11736 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11738         * shell/main.c: (main): Don't attempt to handle
11739         bonobo-only arguments if we couldn't get a bonobo
11740         client proxy.
11742 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11744         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11745         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11746         abort if daap sharing is disabled and then re-enabled.
11748 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11750         * podcast/rb-podcast-parse.c (rb_insert_item):
11751         Add debugging.
11752         (rb_podcast_parser_start_element): Support itunes:image.
11753         Add debugging.  Don't abuse the break statement.  Warn
11754         if state is unknown.
11755         (rb_podcast_parser_end_element): Add debugging.  Warn
11756         if state is unknown.
11757         (rb_podcast_parser_characters): Warn if state is unknown.
11759         Fixes parsing of feeds that use the itunes:image element.
11760         Fixes #324632
11762 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11764         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11765         (stations_view_drag_data_received_cb):
11766         Remove calls to rhythmdb_entry_lookup_by_location, as
11767         rb_iradio_source_add_station does that anyway.
11768         
11769         (rb_iradio_source_add_from_playlist):
11770         If the URL doesn't point to a playlist, add it as the stream
11771         URL instead.
11773 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11775         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11776         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11777         so we don't get an assertion failure.
11778         Fixes #325025.
11780 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11782         * shell/main.c: (load_uri_args): don't compile this in if
11783         neither bonobo nor dbus are enabled.  Fixes #324890.
11785 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11787         * sources/rb-audiocd-source.c:
11788         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11789         so it closes the device.
11791 2005-12-20  James Livingston  <jrl@ids.org.au>
11793         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11794         so that it doesn't spend forever getting stuck on the one file. Don't
11795         report errors for failing to change state on known non-audio files.
11797         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11798         audio sink creation if we can't create the gconfaudiosink. This lets
11799         it work with only gst-plugins-base on 0.10.
11801 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11803         * rhythmdb/rhythmdb-query-model.c:
11804         (rhythmdb_query_model_set_sort_order):
11805         Fix a tiny memory leak in the previous commit.
11807 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11809         * rhythmdb/rhythmdb-query-model.c:
11810         (rhythmdb_query_model_set_sort_order):
11811         Don't try to emit reorders for empty query models, since it doesn't
11812         achieve anything and it results in a few warnings.
11814 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11816         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11817         Make burn dialog non-resizable so that the expander can shrink.
11818         Fixes #308951.
11820 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11822         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11823         add entries without a location, rather than those with one.
11825 2005-12-19  James Livingston  <jrl@ids.org.au>
11827         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11828         the error isn't set.
11830 2005-12-19  James Livingston  <jrl@ids.org.au>
11831         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11832         add entries without a location. Fixes bug 324290.
11834         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11835         without a location.
11837         * shell/main.c: (main): don't crash if dbus initialisation fails
11838         without setting an error
11840 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11842         * sources/rb-library-source.c: Remove unused structure members
11843         (rb_library_source_do_query): Actually use the cached 'all' query.
11844         Fixes #324025.
11845         
11846 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11848         * sources/rb-audiocd-source.c 
11849         (rb_audiocd_get_cd_info): tab
11850         (rb_audiocd_scan_songs): Return boolean success/failure,
11851         fix error messages a bit.
11852         (metadata_cb): Don't crash if we have no tracks
11853         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11854         the CD.
11855         Fixes #324222.
11857 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11859         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11860         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11861         key.
11863         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11864         Fixes #324157
11866 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11868         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11869         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11870         (fullscreen_changed_cb): 
11871         * lib/rb-preferences.h: 
11872         * data/ui/rhythmbox-ui.xml: 
11873         * data/rhythmbox.schemas:
11874         Add fullscreen mode.
11876         Fixes #324075.
11878 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11880         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11881         configure.  It was not working with RPM.
11882         * data/Makefile.am: Switched dbus directory location to use
11883         datadir instead of variable that was not working.
11885 2005-12-13  James Livingston  <jrl@ids.org.au>
11887         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11889         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11890         the podcast browser work again. Closes bug 323856.
11892 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11894         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11895         Remove C99ism.
11897         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11898         (rb_utf_friendly_time):
11899         * lib/rb-cut-and-paste-code.h:
11901         * podcast/rb-feed-podcast-properties-dialog.c:
11902         (rb_feed_podcast_properties_dialog_parse_time):
11903         * podcast/rb-podcast-properties-dialog.c:
11904         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11905         to display the date in a more user friendly way.
11906         For example, if the feed was updated yesterday it will say:
11907         Last updated: Yesterday 10:00 AM
11908         instead of printing the date.
11910 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11912         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11913         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11914         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11915         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11916         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11917         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11918         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11919         (rb_podcast_parse_date): Add support for some real world
11920         date formats.
11921         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11922         (rb_podcast_parse_item_free): Style and no need to check
11923         for NULL before g_free.
11925         May fix #323742
11927 2005-12-12  James Livingston  <jrl@ids.org.au>
11929         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11930         with gstreamer 0.10, which replaced audioscale.
11932         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11933         function to free the SoupSession
11935         * shell/rb-source-header.c: (rb_source_header_set_property),
11936         (rb_source_header_disclosure_toggled_cb),
11937         (rb_source_header_view_browser_changed_cb),
11938         (rb_source_header_sync_control_state):
11939         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11940         * sources/rb-library-source.c: (rb_library_source_class_init):
11941         * sources/rb-source.c: (rb_source_class_init),
11942         (rb_source_get_status), (default_get_browser_key),
11943         (rb_source_get_browser_key), (rb_source_can_browse),
11944         (rb_source_notify_status_changed),
11945         (rb_source_notify_filter_changed):
11946         * sources/rb-source.h: seperate the enabling of browsers from the use
11947         of a gconf key.
11949 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11951         * data/glade/podcast-feed-properties.glade: 
11952         * data/glade/podcast-properties.glade: Use scrolled viewports
11953         for description text.  Fix regression of #320509.
11955 2005-12-11  James Livingston  <jrl@ids.org.au>
11957         * sources/rb-auto-playlist-source.c:
11958         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11959         (impl_search), (rb_auto_playlist_source_do_query),
11960         (rb_auto_playlist_source_set_query),
11961         (rb_auto_playlist_source_get_query): add support for the search box
11962         to automatic playlists.
11964         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11965         memory leak.
11967 2005-12-11  James Livingston  <jrl@ids.org.au>
11969         * NEWS: update NEWS
11971 2005-12-11  James Livingston  <jrl@ids.org.au>
11973         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11974         (rhythmdb_load), (monitor_subdirectory),
11975         (rhythmdb_sync_library_location):  start the library sync and
11976         monitoring in an idle callback.
11978 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11980         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11981         (rb_podcast_source_constructor): Remove unused pixbuf column.
11982         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11983         Use consistent style.
11985         Fixes #322961.
11987 2005-12-11  James Livingston  <jrl@ids.org.au>
11989         * rhythmdb/rhythmdb-property-model.c:
11990         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11991         (rhythmdb_property_model_insert),
11992         (rhythmdb_property_model_delete_prop):
11993         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11994         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11995         (destroy_tree_property):
11996         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11997         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11998         GMemChunks, they are crap and deprecated. Improves startup-time and
11999         memory usage slightly.
12001 2005-12-10  William Jon McCann  <mccann@jhu.edu>
12003         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
12004         Added license and website info.
12006         * MAINTAINERS.old: Add Colin.
12007         * MAINTAINERS: Add James.
12008         * AUTHORS: Put back in order.  Add extra space between name and email
12009         to make it easier to read.  Add James and jonathan.
12011         * widgets/rb-song-info.c (rb_song_info_init) 
12012         (rb_song_info_constructor): Make sure close button is primary/rightmost.
12014 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12016         Play queue implementation. Closes bug 107787.
12018         * data/rhythmbox.schemas: add items for whether the queue should be
12019         displayed as a sidebar, and the height of the sourcelist if it is.
12021         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
12022         playlist, and podcast popups; add 'view queue as sidebar' menu item,
12023         add popups for queue as source and as sidebar.  We need a separate
12024         popup for the sidebar view because otherwise it's hard to tell which
12025         of the visible entry views the action came from.
12027         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
12029         * po/POTFILES.in: Add new file
12031         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
12032         Add helper function for deciding if a podcast episode is available for
12033         playback.
12035         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
12036         reorder entries in the query model.
12037         (idle_process_update): Handle new update type used to insert entries
12038         at a particular position in the query model.
12039         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
12040         parameter to specify the position (-1 meaning 'at the end').
12041         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
12042         parameter.
12043         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
12044         bad entry removal updates for entries that aren't in the model.
12045         (rhythmdb_query_model_emit_reorder): Add helper function for
12046         reordering rows.
12047         (rhythmdb_query_model_move_entry): New method for moving entries
12048         around in the model
12049         (rhythmdb_query_model_entry_added_cb),
12050         (rhythmdb_query_model_update_limited_entries),
12051         (rhythmdb_query_model_do_reorder),
12052         (rhythmdb_query_model_do_insert): Pass through the index parameter,
12053         use rhythmdb_query_model_emit_reorder where appropriate.
12055         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12056         Don't allow the queue to be deleted.
12057         (handle_playlist_entry_cb): Update for method signature change
12058         (rb_playlist_manager_save_playlists_async),
12059         (rb_playlist_manager_get_playlists): Don't save the play queue,
12060         don't report it as a playlist.
12062         * shell/rb-play-order.c: Include queue play order in the list of
12063         available orders.
12065         * shell/rb-shell.c
12066         (rb_shell_class_init), (rb_shell_get_property): Add new property 
12067         for access to the clipboard object.
12068         (rb_shell_constructor): Handle playing-from-queue signal to update the
12069         sourcelist display; add queue sidebar in to UI, listen for queue
12070         sidebar pane changes, and read initial settings from gconf.
12071         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
12072         Only tell the sourcelist the source has changed if the new source is 
12073         not the queue, as we update the sourcelist differently in that case.
12074         (rb_shell_set_window_title): Only use the cached window title if the
12075         playing state was the same when it was created.
12076         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
12077         (rb_shell_sync_pane_visibility): Only hide the side pane if the
12078         sourcelist is hidden and the queue is shown as a source.
12079         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
12080         mode, since it doesn't make any sense.
12081         (sourcelist_visibility_changed_cb): Update the visibility of the pane
12082         too.
12083         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
12084         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
12085         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
12086         playing from queue shown as sidebar.
12088         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
12089         MusicProperties action here from rb-shell-player.c, since it acts like
12090         cut/copy/paste etc.
12091         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
12092         (rb_shell_clipboard_get_property): new property for queue source.
12093         Watch for selection changes in the sidebar entry view as well as the
12094         normal one.
12095         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
12096         actions and MusicProperties.
12097         (rb_shell_clipboard_cmd_queue_delete),
12098         (rb_shell_clipboard_cmd_add_song_to_queue),
12099         (rb_shell_clipboard_cmd_song_info),
12100         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
12102         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
12103         actually came from (could be the playing source, or the queue), add a 
12104         new play order object for the queue, add a property for the queue
12105         source, add a signal for when we switch between playing from the
12106         source and from the queue.
12107         (rb_shell_player_set_property): Handle playing directly from the
12108         queue so we stop once the queue is empty.  Create queue play order
12109         when we get the queue source.
12110         (rb_shell_player_get_playing_source): Return the source we're actually
12111         playing from.
12112         (rb_shell_player_get_playing_entry): Get playing entry from queue if
12113         that's where it is.
12114         (rb_shell_player_set_playing_entry): Update the queue play order if 
12115         that's where we're playing from.
12116         (rb_shell_player_play_order_update_cb): Take has next/previous for the
12117         queue into consideration too.
12118         (swap_playing_source): Helper function for switching the playing
12119         source.
12120         (rb_shell_player_do_previous): Check the queue, even though there's
12121         never a previous entry in it (yet), swap playing source if it changed.
12122         (rb_shell_player_do_next): Check the queue for entries to play before
12123         the normal play order, and swap playing source if it changed.
12124         (rb_shell_player_do_previous_or_seek): Check the queue for previous
12125         entries to go to as well.
12126         (rb_shell_player_playpause): Check the queue before the selection and
12127         the play order, and swap playing source if it changed.
12128         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
12129         (rb_shell_player_entry_activated_cb): Use
12130         rb_podcast_manager_entry_downloaded, do some tapdancing to make
12131         activating queue entries work properly (move the activated entry to
12132         the start of the queue and then play it); if we were playing from the
12133         queue, clear its playing entry so it'll start again from the start
12134         after the activated entry.
12135         (rb_shell_player_sync_buttons): MusicProperties action handler moved
12136         to rb-shell-clipboard.c
12137         (actually_set_playing_source): Add helper for updating the playing
12138         source.
12139         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
12140         signal if we stop or start doing so; use actually_set_playing_source; 
12141         emit playing-source-changed if we actually did change source.
12143         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
12144         rb_static_playlist_source_add_location.
12146         * sources/rb-library-source.c (rb_library_source_class_init): Allow
12147         enqueueing of songs from the library.
12149         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
12150         enqueueing of sonsg from playlists.
12151         (rb_playlist_source_entry_added_cb): Add extra parameter for
12152         rhythmdb_query_model_add_entry.
12153         
12154         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
12155         Implement (can_)add_to_queue for this class.
12156         (rb_podcast_source_entry_activated): Use
12157         rb_podcast_manager_entry_downloaded.
12158         (impl_can_add_to_queue): Return TRUE if at least one entry that has
12159         been downloaded is selected.
12160         (impl_add_to_queue): Only add downloaded entries to the queue.
12162         * sources/rb-source.{c,h}:
12163         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
12164         methods.
12165         (rb_source_class_init): Don't allow enqueueing by default; implement 
12166         add_to_queue though.
12167         (default_add_to_queue): Add all selected entries to the queue.
12168         
12169         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
12170         would be playing if there wasn't anything in the queue).
12171         (set_source_playing): Helper function for manipulating tree store.
12172         (rb_sourcelist_set_playing_source): Use set_source_playing
12173         (rb_sourcelist_preempt_playing_source): Update preempted source
12174         pointer, manipulate source states.
12176         * sources/rb-static-playlist-source.{c,h}:
12177         (rb_static_playlist_source_add_location_internal),
12178         (rb_static_playlist_source_add_location),
12179         (rb_static_playlist_source_add_entry): Add index parameter for
12180         specifying where in the playlist the new entry goes.
12181         (rb_static_playlist_source_new_from_xml), (impl_paste),
12182         (rb_static_playlist_source_add_list_uri),
12183         (rb_static_playlist_source_add_location_swapped),
12184         (rb_static_playlist_source_add_locations),
12185         (rb_static_playlist_source_non_entry_dropped),
12186         (rb_static_playlist_source_row_inserted):
12187         Handle new index parameter everywhere it appears
12188         (rb_static_playlist_source_move_entry): New method for moving entries
12189         around in the playlist.
12191         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
12192         warnings when trying to scroll entry views that have never been
12193         displayed.
12195         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
12196         play order that removes the old entry when switching to a new one.
12198         * sources/rb-play-queue-source.{c,h}: New files, implementing a
12199         static playlist subclass that has a second entry view for the sidebar
12200         view using alternate formatting, and that displays the number of
12201         entries it contains in its source list entry.
12203 2005-12-10  James Livingston  <jrl@ids.org.au>
12205         * rhythmdb/rhythmdb-query-model.c:
12206         (rhythmdb_query_model_add_entry),
12207         (rhythmdb_query_model_drag_data_received):
12208         * sources/rb-static-playlist-source.c:
12209         (rb_static_playlist_source_non_entry_dropped): when things are
12210         dropped, ignore any blank lines in the list of uris. Make the source
12211         responsible for adding new items to the db.
12213         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
12214         empty string.
12216 2005-12-10  James Livingston  <jrl@ids.org.au>
12218         * shell/rb-shell-player.c: (rb_shell_player_set_property),
12219         (rb_shell_player_sync_buttons),
12220         (rb_shell_player_selection_changed_cb): watch for the
12221         "selection-changed" signal, so that the Song Properties get enabled.
12222         Closes bug 323694.
12224 2005-12-10  James Livingston  <jrl@ids.org.au>
12226         * data/rhythmbox.schemas: fix the gconf schema
12228 2005-12-10  James Livingston  <jrl@ids.org.au>
12230         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
12231         the decoded-pad callback with gstreamer 0.8, it causes problems.
12233 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12235         Remove more junk from RBEntryView. Closes bug 323640.
12237         * widgets/rb-entry-view.{c,h}:
12238         Remove unused private structure members, replace 'playing' boolean
12239         with an enum (so we know if we're paused too), and store a pointer to
12240         the RBShellPlayer too.  
12241         (rb_entry_view_class_init), (rb_entry_view_set_property),
12242         (rb_entry_view_get_property):
12243         Remove 'entry-selected' and 'changed' signals and
12244         'playing-entry' property, add 'selection-changed' signal and
12245         'shell-player' and 'playing-state' properties.
12246         (rb_entry_view_new): Take the shell player object reference
12247         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
12248         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
12249         No longer needed, shell player is the place to get this information.
12250         (rb_entry_view_busy), (rb_entry_view_get_duration),
12251         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
12252         (rb_entry_view_get_next_from_entry),
12253         (rb_entry_view_get_previous_from_entry),
12254         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
12255         (rb_entry_view_get_num_entries):
12256         Removed, callers should go to the query model directly.
12257         (rb_entry_view_playing_song_changed): Update active query model, emit
12258         row changed signals to update pixbufs, and scroll to the playing song
12259         when the playing song changes, based on a signal from the shell
12260         player.
12261         (queue_changed_sig), (rb_entry_view_row_changed_cb),
12262         (emit_entry_changed): Evil, removed.
12263         (rb_entry_view_selection_changed_cb): Remove old signals, add new
12264         selection-changed signal.
12265         (rb_entry_view_select_none), (rb_entry_view_select_entry):
12266         Remove selection lock.  It didn't work anyway.
12267         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
12268         (rb_entry_view_emit_row_changed): Simple helper function to emit
12269         row-changed signals.
12271         * widgets/Makefile.am: Entry view needs headers from the shell/
12272         directory.
12273         * widgets/rb-song-info.{c,h}: Use the query model for everything except
12275         scrolling the entry view to show the entry being displayed.
12276         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
12277         'source' property so we can watch for query model changes.
12278         (rb_song_info_finalize): Unref objects, disconnect signal handlers
12279         (rb_song_info_set_property): Watch for query model changes, don't
12280         watch for entry view changes.
12281         (rb_song_info_new): Take source as a parameter, use the source's entry
12282         view unless one was specifically supplied.
12283         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
12284         Use query model rather than entry view to move between songs.
12285         (rb_song_info_update_buttons): Use query model.
12286         (rb_song_info_query_model_changed_cb): Handle query model changes.
12288         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12289         Only one copy of the code to enable/disable the CD burning action
12290         (rb_playlist_manager_playlist_entries_changed):
12291         Use the query model to get the number of entries, not the entry view.
12293         * shell/rb-play-order-random-by-age-and-rating.c,
12294         shell/rb-play-order-random-by-age.c,
12295         shell/rb-play-order-random-by-rating.c,
12296         shell/rb-play-order-random-equal-weights.c:
12297         Use G_DEFINE_TYPE
12299         * shell/rb-shell-player.{c,h}:
12300         Remove a few unused entries from the structure.
12301         (rb_shell_player_set_property):
12302         Don't use the 'changed' signal on the entry view (it's evil)
12303         (rb_shell_player_have_first): No longer needed
12304         (rb_shell_player_play): Just tell the entry view it's playing
12305         (rb_shell_player_playpause): Tell the entry view it's paused
12306         when pausing.
12307         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12308         (rb_shell_player_property_row_activated_cb):
12309         Get the entry to play using the query model, not the entry view.
12310         (rb_shell_player_sync_buttons): Update entry view state while we're
12311         here.
12312         (rb_shell_player_set_playing_source_internal): Update entry view state
12313         (rb_shell_player_get_playing): Ask the entry view, not the player.
12314         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12315         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12316         the window title and tray icon tooltip.
12317         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12319         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12320         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12321         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12322         view constructor, pass the source in to the song info widget
12323         constructor.
12325         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12326         Use 'selection-changed' instead of 'changed', since that's what the
12327         clipboard cares about.
12328         (rb_shell_clipboard_set_source): Don't die if source == NULL
12330 2005-12-10  James Livingston  <jrl@ids.org.au>
12332         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12333         * sources/rb-playlist-source-recorder.c:
12334         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12335         stuff not use the deprecated API when compiled against 2.13
12337 2005-12-10  James Livingston  <jrl@ids.org.au>
12339         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12341         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12342         problem where the genre tag was getting set to the artist. Closes bug
12343         323642.
12345 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12347         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12348         Return NULL if can't get first iter.
12350         Fixes #323663
12352 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12354         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12355         updated rb_station_properties_dialog_new API.
12356         (rb_iradio_source_add_from_playlist): New public function.
12357         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12359         * shell/rb-shell.c (new_station_location_added): Handle
12360         iradio location added signal.
12361         (rb_shell_cmd_new_station): Use new iradio station dialog.
12363         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12364         (rb_station_properties_dialog_new): Don't squeeze new
12365         station functionality into this class.
12366         (rb_station_properties_dialog_response_cb): ditto.
12367         (rb_station_properties_dialog_update_title): Make
12368         consistent with other properties dialogs.
12369         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12371         * iradio/rb-new-station-dialog.[ch]: 
12372         * iradio/Makefile.am: Add new station dialog.
12374         * data/glade/station-new.glade: New file based on
12375         new podcast feed dialog.
12376         * data/glade/station-properties.glade: Updated to
12377         be consistent with song properties dialog.
12379         Fixes #323306.
12381 2005-12-10  James Livingston  <jrl@ids.org.au>
12383         patch by: Ståle Lyngaas <staale@lyngaas.com>
12385         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12386         submit songs longer than 30 minutes. Fixes bug 323639.
12388 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12390         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12391         async save function.
12392         (rb_shell_finalize): Remove save timeout sources.  Reorder
12393         steps a bit to make saving db and playlists a bit more
12394         failsafe in case something goes wrong later.
12395         (rb_shell_constructor): Keep track of save timeout source.
12396         (add_to_library_response_cb): Keep track of db save timeout source.
12398         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12399         g_atomic.
12400         (rb_playlist_manager_shutdown): New function to shutdown
12401         threads etc. before exit.
12402         (rb_playlist_manager_finalize): Moved handling outstanding
12403         threads stuff to shutdown since if there are outstanding threads
12404         they hold a ref and finalize is never called.
12405         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12406         of signal which may be required for sync save.
12407         (rb_playlist_manager_save_playlists_async): Renamed old
12408         save_playlists to save_playlists_async.  Use g_atomic.
12409         (rb_playlist_manager_save_playlists): New function to
12410         perform sync saves (symmetric with RhythmDB API).
12411         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12413         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12414         Style consistency anality.
12415         (rhythmdb_finalize): Remove save timeout source.
12416         (rhythmdb_set_property, rhythmdb_get_property) 
12417         (rhythmdb_process_events): More anality and keep track of
12418         save timeout source.
12419         (action_thread_main): No need to call g_thread_exit.
12420         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12421         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12422         (write_encoded_gvalue, read_encoded_property): La la la.
12424         Fixes #322940.
12426 2005-12-10  James Livingston  <jrl@ids.org.au>
12428         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12429         non-audio files.
12431 2005-12-10  James Livingston  <jrl@ids.org.au>
12433         * Makefile.am:
12434         * configure.ac: remove the rpm spec files, so that automake works.
12435         oops
12437         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12438         locking issue
12440 2005-12-09  James Livingston  <jrl@ids.org.au>
12442         * debian/: try to get cvs to actually remove the files
12444 2005-12-09  James Livingston  <jrl@ids.org.au>
12446         * rhythmbox.spec.in:
12447         * debian/: remove the distro package stuff, they are *really* old, and
12448         downstream manage it anyway.
12450 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12452         Rework play orders to work off query models rather than 
12453         entry views, and track the playing entry themselves rather
12454         than relying on the entry view to do it.  This makes the entry
12455         view mostly just a widget. Closes bug 323612.
12457         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12458         Use query model rather than entry view to get the number
12459         of entries in playlists.
12461         * rhythmdb/rhythmdb-query-model.{c.h}
12462         (rhythmdb_query_model_tree_path_to_entry),
12463         (rhythmdb_query_model_iter_to_entry),
12464         (rhythmdb_query_model_get_next_from_entry),
12465         (rhythmdb_query_model_get_previous_from_entry):
12466         New utility functions for iterating through query models.
12467         (rhythmdb_query_model_compute_status_normal):
12468         Have one copy of this code, not four.
12470         * shell/rb-play-order.{c,h}:
12471         Add signals for when next/previous availability changes, and
12472         when the playing entry is removed, and add a property for
12473         the current playing entry.  Add gtkdoc comments too.
12474         (rb_play_order_class_init): Add new property and signals.
12475         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12476         (rb_play_orer_query_model_changed_cb),
12477         (rb_play_order_query_model_changed): 
12478         Use query model rather than entry view.
12479         (rb_play_order_set_property), (rb_play_order_get_property):
12480         Handle new playing-entry property.  Call playing_entry_changed virtual
12481         method so subclasses can do any processing required.
12482         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12483         (rb_play_order_set_playing_entry):
12484         Just use the playing-entry property.
12485         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12486         Utility methods for subclasses.
12487         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12488         Update next/previous availability, check if the playing entry
12489         was removed.
12490         (default_playing_entry_removed):
12491         Keep the current behaviour of just stopping playback when the 
12492         playing entry is deleted.
12493         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12494         these for subclasses that don't have go_next/go_previous, but do
12495         have get_next/get_previous.
12496         (rb_play_order_update_have_next_previous): Emit signal if the
12497         availability of next/previous entries has changed.
12499         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12500         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12501         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12502         methods.
12503         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12504         on the last song in the shuffled order, go back to the start. This
12505         means if you press 'play' again you'll get the whole order again, not
12506         just one song.
12508         * shell/rb-shell-player.c:
12509         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12510         play order rather than the entry view.
12511         (rb_shell_player_set_property): Update the play order when the
12512         selected source changes and we aren't playing anything.
12513         (rb_shell_player_sync_play_order): Copy the playing entry across to
12514         the new play order so playback continues from the same song, and watch
12515         for updates to have_next/have_previous.
12516         (rb_shell_player_play_order_update_cb): Enable/disable the
12517         next/previous actions when next/previous entry availability changes.
12518         (rb_shell_player_jump_to_current): Just use the play order's idea of
12519         what's playing, not the entry view's; if not playing anything, clear
12520         the selection, so when a playlist ends and you hit play again, it'll
12521         start at the start rather than the end.
12522         (rb_shell_player_do_previous): restructure a bit.
12523         (rb_shell_player_do_next): restructure, jump to new playing entry in
12524         an idle handler instead of directly.
12525         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12526         song if there is one.
12527         (rb_shell_player_playpause): Jump to playing song, don't update the
12528         play order if we got the song from the selection.
12529         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12530         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12531         looks after next/previous actions now.  Don't break if called while
12532         there is no selected source.
12533         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12534         (rb_shell_player_set_playing_source_internal),
12535         (rb_shell_player_error): No need to track the attempted playing entry
12536         any more, since the play order does that.
12538         * shell/rb-shell.c:
12539         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12540         rb_shell_player_get_playing_entry rather than going through the entry
12541         view.
12543         * shell/rb-statusbar.c (rb_statusbar_set_property),
12544         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12545         than the entry view for status bar text changes.
12546         (rb_statusbar_sync_status): Ask the query model directly
12548         * sources/rb-source.{c}: Add query model property.
12549         (default_get_status): Get status text from query model, should be
12550         suitable for most sources.
12551         (rb_source_set_property): Listen for changes to the query model 
12552         to update the status text.
12553         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12554         (idle_emit_status_changed): Emit status-changed signals when query
12555         model changes. 
12557         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12558         (impl_get_status): Not needed, RBSource does this now
12559         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12560         Update RBSource's query model reference.
12562         * sources/rb-playlist-source.c:
12563         Remove query-model property, since RBSource has one now
12564         (impl_get_status): Not needed, RBSource does this now
12565         (rb_playlist_source_row_deleted): Use query model iterator helper
12566         function.
12567         (rb_playlist_source_set_query_model): Update RBSource's query model
12568         reference too.
12570         * sources/rb-iradio-source.c:
12571         (impl_get_status): Ask the query model directly.
12572         (rb_iradio_source_do_query): Update RBSource's query model reference
12573         when we create a new query.
12575         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12576         Use query model rather than entry view.
12578         * widgets/rb-entry-view.{c,h}: 
12579         Remove playing_entry_deleted signal (now in play order).
12580         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12581          as RhythmDBQueryModel has equivalent helper functions.
12582         (rb_entry_view_*): Use query model helpers instead of the above two
12583         functions.
12585 2005-12-09  James Livingston  <jrl@ids.org.au>
12587         * configure.ac:
12588         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12589         (rb_recorder_enabled):
12590         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12591         * sources/rb-playlist-source-recorder.c:
12592         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12593         whether libnautilusburn has the _drive_unref function, and if so use
12594         it. Stops it complaining about deprecated API.
12596 2005-12-09  James Livingston  <jrl@ids.org.au>
12598         * configure.ac: drop the minimum gstreamer version back down, it
12599         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12601 2005-12-09  James Livingston  <jrl@ids.org.au>
12603         * widgets/rb-song-info.c: (rb_song_info_class_init),
12604         (rb_song_info_show), (rb_song_info_constructor),
12605         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12606         (rb_song_info_forward_clicked_cb): save metadata changes when the
12607         Next/Previous buttons are pressed (closes bug 320952). use
12608         G_DEFINE_TYPE.
12610 2005-12-09  James Livingston  <jrl@ids.org.au>
12612         Patch by: <jonathan@kaolin.hn.org>
12614         * sources/rb-iradio-source.c:
12615         (stations_view_drag_data_received_cb):
12616         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12617         of urls. Fixes bug 323610.
12619 2005-12-09  James Livingston  <jrl@ids.org.au>
12621          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12622          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12624         * configure.ac:
12625         * metadata/rb-metadata-gst.c:
12626         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12627         (rb_player_construct), (rb_player_new):
12628         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12629         (rb_recorder_gst_signal_error), (pipe_message),
12630         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12631         (rb_recorder_new):
12632         * shell/main.c: (main):
12633         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12634         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12636 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12638         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12640         * shell/rb-playlist-manager.c:
12641           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12642           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12643           (rb_playlist_manager_set_automatic_playlist),
12644           (rb_playlist_manager_cmd_new_automatic_playlist),
12645           (rb_playlist_manager_cmd_edit_automatic_playlist):
12646            Use new playlist subclasses.
12647           (rb_playlist_manager_save_playlists): Only read the dirty flag
12648            for local playlists, minor pointless reformatting
12650         * sources/Makefile.am: add new files
12652         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12653           split lots of stuff out into two
12654           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12655           make RBPlaylistSource abstract, add virtual methods for showing a
12656           popup for the entry view and saving the playlist to XML.
12657           Other stuff is subclass-specific, or already virtual in RBSource.
12659         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12660           in one place, since they're used across three source files now
12662         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12663           Use new static playlist class
12665         * sources/rb-ipod-source.c: (add_rb_playlist):
12666           Use new static playlist class
12668         * sources/rb-static-playlist-source.{c,h},
12669         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12670         files.
12672         * po/POTFILES.in: add new files
12674 2005-12-07  James Livingston  <jrl@ids.org.au>
12676         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12677         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12678         metadata loads not attempt to write changes to disk.
12680 2005-12-07  James Livingston  <jrl@ids.org.au>
12682         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12684         * data/glade/song-info-multiple.glade:
12685         * widgets/rb-song-info.c: (rb_song_info_constructor),
12686         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12687         multiple songs at once.
12689 2005-12-06  James Livingston  <jrl@ids.org.au>
12691         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12692         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12694 2005-12-06  James Livingston  <jrl@ids.org.au>
12696         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12697         names rather than adding a horizontal scroll bar.
12699 2005-12-06  James Livingston  <jrl@ids.org.au>
12701         * rhythmdb/rhythmdb-query-model.c:
12702         (rhythmdb_query_model_update_limited_entries),
12703         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12704         messages
12706         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12707         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12708         always hide rather than remove DB entries, which will make RB not lose
12709         information when tag editing happens or people move files to trash and
12710         then change their mind. Also fix some races where the monitoring code
12711         would notice the temporary files generated by saving metadata.
12713 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12715         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12716         Hide internals and add tooltips.
12717         (rb_song_display_box_size_allocate): Hide internals.
12718         (sanitize_string, info_url): Copied from rb-header.
12719         (rb_song_display_box_sync): New public function.
12721         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12722         (rb_header_init): Use a separate row for the seek bar.
12723         (rb_header_finalize): Don't unref widgets.
12724         (rb_header_sync): Use rb_song_display_box_sync.
12725         (rb_header_set_urldata)
12726         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12727         (rb_header_set_show_position_slider): Set visibility of seek bar.
12728         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12729         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12731         * shell/rb-statusbar.c (rb_statusbar_init)
12732         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12734         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12735         (rb_shell_constructor): Remove hseparator.  Monitor
12736         toolbar visibility settings.  Add toolbar.  Add
12737         volume button to toolbar.  Add tooltips for volume button.
12738         (rb_shell_view_toolbar_changed_cb) 
12739         (rb_shell_sync_toolbar_visibility)
12740         (toolbar_visibility_changed_cb): Set visibility of
12741         toolbar.
12742         (rb_shell_sync_smalldisplay): Set the toolbar style to
12743         icons only when in small display mode.
12744         (rb_shell_volume_widget_changed_cb): Save volume setting.
12746         * shell/rb-shell-player.c (rb_shell_player_constructor):
12747         Remove pause and stop actions.  Make play action "important"
12748         so that text is visible in horizontal toolbar position.
12749         Remove control buttons.
12750         (rb_shell_player_init) 
12751         (rb_shell_player_sync_song_position_slider_visibility):
12752         Set visbibility of seek bar.
12753         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12754         Make play action a toggle.
12755         (rb_shell_player_sync_volume): Volume control moved
12756         to player.
12757         (gconf_song_position_slider_visibility_changed):
12758         Set visbibility of seek bar.
12759         (rb_shell_player_sync_buttons):
12760         Set sensitivity of actions instead of buttons.
12761         (rb_shell_player_playing_changed_cb): Add callback
12762         for player notify::playing changes.
12764         * lib/rb-preferences.h: Add hide toolbar and seek
12765         bar key names.
12767         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12768         seek bar menu items.  Remove pause and stop actions
12769         from the control menu.  Add a toolbar.
12771         * data/rhythmbox.schemas: Add toolbar_hidden
12772         song_position_slider_hidden keys.
12774         Patch by: James Livingston  <jrl@ids.org.au>
12775                   William Jon McCann  <mccann@jhu.edu>
12776         Fixes #316238.
12778 2005-12-05  James Livingston  <jrl@ids.org.au>
12780         * data/glade/library-prefs.glade:
12781         * data/rhythmbox.schemas:
12782         * lib/rb-preferences.h:
12783         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12784         (rhythmdb_sync_library_location):
12785         * sources/rb-library-source.c: (rb_library_source_class_init),
12786         (rb_library_source_finalize), (rb_library_source_constructor),
12787         (impl_get_config_widget), (rb_library_source_preferences_sync),
12788         (rb_library_source_watch_toggled_cb): allow people to disable library
12789         monitoring, because with nothing set the file chooser button selects
12790         the Home folder (and hence that will get monitored).
12792 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12794         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12795         attempt to fix problem with RSS parsing showing invalid feed types.
12796         Fixes bug 323153
12798 2005-12-04  James Livingston  <jrl@ids.org.au>
12800         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12801         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12802         importing a remote directory not block the UI.
12804 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12806         * data/glade/podcast-feed-properties.glade:
12807         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12809 2005-12-04  James Livingston  <jrl@ids.org.au>
12811         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12813         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12814         to && to fix a mistake in the earlier podcast patch.
12816 2005-12-03  James Livingston  <jrl@ids.org.au>
12818         * data/glade/podcast-new.glade:
12819         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12820         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12822         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12823         GValue, which stops occasional errors.
12825         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12826         compile issue.
12828 2005-12-03  James Livingston  <jrl@ids.org.au>
12830         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12832         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12833         crasher with some podcasts feeds.
12835 2005-12-03  James Livingston  <jrl@ids.org.au>
12837         * data/rhythmbox.schemas: fix the gconf schema
12839 2005-12-03  James Livingston  <jrl@ids.org.au>
12841         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12842         add a selection timeout to the sourcelist. This lets you hold a track
12843         over the playlist source, and then have the view switch so you can
12844         insert the track in the middle of the playlist. Closes bug 323044.
12846         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12847         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12848         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12849         (rb_tree_dnd_add_drag_dest_support):
12850         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12851         timeout.
12853         * sources/rb-sourcelist-model.c:
12854         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12855         the source list.
12857 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12859         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12860         links, so that the text doesn't touch the button
12862 2005-12-02  James Livingston  <jrl@ids.org.au>
12864         Add full support for gnome-vfs remote files. Closes bug 140355.
12866         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12867         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12868         for authentication information from the user doesn't block the UI.
12870         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12872         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12873         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12874         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12875         (rhythmdb_process_stat_event), (emit_load_error_idle),
12876         (rhythmdb_process_metadata_load),
12877         (rhythmdb_process_queued_entry_set_event),
12878         (rhythmdb_process_file_created_or_modified),
12879         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12880         (queue_stat_uri), (add_thread_main),
12881         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12882         (rhythmdb_load), (rhythmdb_save_thread_main),
12883         (threadsafe_entry_set), (rhythmdb_query_internal),
12884         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12885         (rhythmdb_do_full_query_internal),
12886         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12887         (rhythmdb_volume_unmounted_cb),
12888         (rhythmdb_check_changed_file): trivial changes to support the
12889         asynchronous stats.
12891         * shell/main.c: (main): activate the authentication manager.
12893         * shell/rb-playlist-manager.c:
12894         (rb_playlist_manager_cmd_load_playlist),
12895         (rb_playlist_manager_cmd_save_playlist):
12896         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12897         (rb_shell_cmd_add_file_to_library):
12898         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12899         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12900         remote files.
12902 2005-12-02  James Livingston  <jrl@ids.org.au>
12904         * shell/rb-playlist-manager.c: makes playlist menu items use the
12905         elipses correctly. Fixes bug 322283.
12907 2005-12-02  James Livingston  <jrl@ids.org.au>
12909         * shell/rb-playlist-manager.c:
12910         (rb_playlist_manager_load_playlists): fix silly mistake
12912 2005-12-02  James Livingston  <jrl@ids.org.au>
12914         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12915         print out metadata-write unless --debug was passed.
12917         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12918         * shell/rb-playlist-manager.c:
12919         (rb_playlist_manager_load_playlists): block writes to disk if they are
12920         still being loaded.
12922 2005-12-02  James Livingston  <jrl@ids.org.au>
12924         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12925         ctrl-T, because Ctrl-D is used by "small mode"
12927 2005-12-02  James Livingston  <jrl@ids.org.au>
12929         * shell/rb-shell-preferences.c:
12930         (rb_shell_preferences_append_view_page):
12931         * sources/rb-library-source.c: (impl_get_config_widget):
12932         * sources/rb-podcast-source.c: (impl_get_config_widget):
12933         * sources/rb-source.c: (rb_source_get_config_widget):
12934         * sources/rb-source.h: Make the preference actually work.
12936         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12937         if Rhythmbox is being run for the first time.
12939 2005-12-02  James Livingston  <jrl@ids.org.au>
12941         Add support for Rhythmbox to watch your library, and automatically add
12942         new tracks. Fixes bug 160159.
12944         * data/glade/library-prefs.glade: add "library location" preference
12945         * data/rhythmbox.schemas: add gconf key for the library location
12947         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12948         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12949         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12950         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12951         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12952         (rhythmdb_load_thread_main), (rhythmdb_load),
12953         (monitor_subdirectory), (monitor_library_directory),
12954         (monitor_entry_file), (rhythmdb_sync_library_location),
12955         (library_location_changed_cb), (rhythmdb_check_changed_file),
12956         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12957         specifiec in the gconf key for new additions. Also fix monitoring code
12958         so that it works properly, and notices deletions.
12960         * lib/rb-preferences.h:
12961         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12962         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12963         * shell/rb-audioscrobbler.h:
12964         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12965         (rb_shell_preferences_append_view_page),
12966         (rb_shell_preferences_new):
12967         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12968         it's preferences pane, so that we don't need #ifdef's through
12969         rb-shell-preferences.
12971         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12972         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12973         "preferences" property, so that sources can acccess it. This is needed
12974         because the library location pref needs to take effect when the window
12975         is closed.
12977         * sources/rb-library-source.c:
12978         (rb_library_source_library_location_changed),
12979         (rb_library_source_dispose), (rb_library_source_finalize),
12980         (rb_library_source_constructor), (impl_get_config_widget),
12981         (rb_library_source_preferences_sync),
12982         (rb_library_source_process_library_location_change),
12983         (rb_library_source_prefs_update),
12984         (rb_library_source_process_library_handle_selection),
12985         (rb_library_source_library_location_cb): set up and control the
12986         "library location" preference.
12988         * sources/rb-audiocd-source.c:(rb_source_class_init):
12989         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12990         code.
12992 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12994         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12995         (rb_feed_podcast_properties_dialog_update_title): 
12996         * data/glade/podcast-feed-properties.glade:
12997         Make the feed properties dialog consistent with the podcast
12998         properties dialog.
13000 2005-12-01  William Jon McCann  <mccann@jhu.edu>
13002         * metadata/.cvsignore: 
13003         * po/.cvsignore: 
13004         * podcast/.cvsignore: Updated.
13006         * shell/main.c (main): Support DBus 0.6 flags.
13008 2005-11-30  Bastien Nocera  <hadess@hadess.net>
13010         * data/ui/rhythmbox-ui.xml:
13011         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
13012         (rhythmbd_entry_move_to_trash_set_error),
13013         (rhythmdb_entry_move_to_trash):
13014         * rhythmdb/rhythmdb.h:
13015         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
13016         (rb_shell_clipboard_cmd_delete),
13017         (rb_shell_clipboard_cmd_move_to_trash):
13018         * sources/rb-library-source.c: (rb_library_source_class_init),
13019         (impl_delete), (impl_move_to_trash):
13020         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13021         (impl_delete), (impl_move_to_trash):
13022         * sources/rb-removable-media-source.c:
13023         (rb_removable_media_source_class_init):
13024         * sources/rb-source.c: (rb_source_class_init),
13025         (rb_source_can_move_to_trash), (rb_source_delete),
13026         (rb_source_move_to_trash):
13027         * sources/rb-source.h:
13028         Add move_to_trash member for the sources, implement move to trash for
13029         the library and playlists
13030         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
13031         local files to the trash, and deleting them from the database
13032         (Closes: #315389)
13034 2005-11-30  William Jon McCann  <mccann@jhu.edu>
13036         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
13037         (rb_tray_icon_init, rb_tray_icon_finalize): 
13038         * shell/rb-statusbar.c (rb_statusbar_class_init) 
13039         (rb_statusbar_init, rb_statusbar_finalize): 
13040         * shell/rb-source-header.c (rb_source_header_class_init) 
13041         (rb_source_header_init, rb_source_header_finalize): 
13042         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
13043         (rb_shell_finalize): 
13044         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
13045         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
13046         * shell/rb-shell-player.c (rb_shell_player_class_init) 
13047         (rb_shell_player_init, rb_shell_player_finalize): 
13048         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
13049         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
13050         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
13051         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
13052         * shell/rb-play-order.c (rb_play_order_class_init) 
13053         (rb_play_order_init, rb_play_order_finalize): 
13054         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
13055         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
13056         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
13057         (rb_random_play_order_init, rb_random_play_order_finalize): 
13058         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
13059         (rb_history_finalize): 
13060         * shell/rb-commander.c (rb_commander_class_init) 
13061         (rb_commander_init, rb_commander_finalize): 
13062         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
13063         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
13064         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
13065         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
13066         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
13067         (rb_podcast_properties_dialog_init) 
13068         (rb_podcast_properties_dialog_finalize): 
13069         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
13070         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
13071         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
13072         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
13073         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
13074         (rb_feed_podcast_properties_dialog_init) 
13075         (rb_feed_podcast_properties_dialog_finalize): 
13076         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
13077         (rb_metadata_init, rb_metadata_finalize): 
13078         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
13079         (rb_station_properties_dialog_init) 
13080         (rb_station_properties_dialog_finalize): 
13081         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
13082         (rb_daap_share_init, rb_daap_share_dispose): 
13084         Use g_type_class_add_private in all classes. Closes bug 313688.
13085         
13086 2005-11-30  James Livingston  <jrl@ids.org.au>
13088         patch by: William Jon McCann <mccann@jhu.edu> to use
13089         g_type_class_add_private in all classes. Closes bug 313688.
13091         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
13092         (rb_thread_finalize):
13093         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
13094         (rb_player_finalize):
13095         * rhythmdb/rhythmdb-property-model.c:
13096         (rhythmdb_property_model_class_init),
13097         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
13098         * rhythmdb/rhythmdb-query-model.c:
13099         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
13100         (rhythmdb_query_model_finalize):
13101         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
13102         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
13103         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
13104         (rhythmdb_finalize):
13105         * sources/rb-daap-source.c: (rb_daap_source_class_init),
13106         (rb_daap_source_init), (rb_daap_source_dispose):
13107         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13108         (rb_iradio_source_init), (rb_iradio_source_finalize):
13109         * sources/rb-library-source.c: (rb_library_source_class_init),
13110         (rb_library_source_init), (rb_library_source_finalize):
13111         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13112         (rb_playlist_source_init), (rb_playlist_source_dispose):
13113         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13114         (rb_podcast_source_init), (rb_podcast_source_finalize):
13115         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13116         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
13117         * sources/rb-sourcelist-model.h:
13118         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13119         (rb_sourcelist_init), (rb_sourcelist_finalize):
13120         * sources/rb-sourcelist.h:
13121         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
13122         * widgets/rb-cell-renderer-rating.c:
13123         (rb_cell_renderer_rating_init),
13124         (rb_cell_renderer_rating_class_init),
13125         (rb_cell_renderer_rating_finalize):
13126         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
13127         (rb_druid_finalize):
13128         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13129         (rb_entry_view_init), (rb_entry_view_finalize):
13130         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
13131         (rb_header_finalize):
13132         * widgets/rb-load-failure-dialog.c:
13133         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
13134         (rb_load_failure_dialog_finalize):
13135         * widgets/rb-property-view.c: (rb_property_view_class_init),
13136         (rb_property_view_init), (rb_property_view_finalize):
13137         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
13138         (rb_rating_finalize):
13139         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13140         (rb_search_entry_init), (rb_search_entry_finalize):
13141         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13142         (rb_simple_view_init), (rb_simple_view_finalize):
13143         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
13144         (rb_song_display_box_init), (rb_song_display_box_finalize):
13145         * widgets/rb-song-info.c: (rb_song_info_class_init),
13146         (rb_song_info_init), (rb_song_info_finalize):
13147         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
13148         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
13150 2005-11-30  James Livingston  <jrl@ids.org.au>
13152         * iradio/rb-station-properties-dialog.c:
13153         (rb_station_properties_dialog_init),
13154         (rb_station_properties_dialog_new):
13155         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
13156         * lib/rb-glade-helpers.h:
13157         * podcast/rb-feed-podcast-properties-dialog.c:
13158         (rb_feed_podcast_properties_dialog_init),
13159         (rb_feed_podcast_properties_dialog_new):
13160         * podcast/rb-podcast-properties-dialog.c:
13161         (rb_podcast_properties_dialog_init),
13162         (rb_podcast_properties_dialog_new):
13163         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
13164         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13165         * sources/rb-library-source.c: (impl_get_config_widget):
13166         * sources/rb-playlist-source-recorder.c:
13167         (rb_playlist_source_recorder_init):
13168         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13169         (rb_song_info_constructor): create a single rb_glade_boldify_label()
13170         in rb-glade-helpers, rather than having eight implementation
13171         throughout the code.
13173 2005-11-30  James Livingston  <jrl@ids.org.au>
13175         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
13176         * lib/rb-util.h:
13177         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13178         move the duration->string function into rb-utils, as it gets used in a
13179         few places.
13181         patch by: William Jon McCann <mccann@jhu.edu>
13183         * data/glade/podcast-properties.glade:
13184         * podcast/rb-podcast-properties-dialog.c:
13185         (rb_podcast_properties_dialog_init),
13186         (rb_podcast_properties_dialog_update),
13187         (rb_podcast_properties_dialog_update_title),
13188         (rb_podcast_properties_dialog_update_feed),
13189         (rb_podcast_properties_dialog_update_duration),
13190         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
13191         info dialog look more like the song info dialog. Use the same "Feed"
13192         value that is displayed in the treeview (ie. the album field), displays
13193         the duration, uses units in the bitrate field, and sort the fields in
13194         the same order.
13196 2005-11-29  James Livingston  <jrl@ids.org.au>
13198         * rhythmdb/rhythmdb-marshal.list:
13199         * rhythmdb/rhythmdb.h:
13200         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
13201         (emit_load_error_idle), (rhythmdb_process_metadata_load),
13202         (entry_to_rb_metadata), (emit_save_error_idle),
13203         (action_thread_main): emit error signal when metadata write fails.
13205         * shell/rb-shell.c: (rb_shell_constructor),
13206         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
13207         "metadata save" error and display it to the user.
13209 2005-11-29  James Livingston  <jrl@ids.org.au>
13211         * data/ui/rhythmbox-ui.xml:
13212         * sources/rb-podcast-source.c:
13213         (rb_podcast_source_songs_show_popup_cb),
13214         (rb_podcast_source_cmd_download_post),
13215         (rb_podcast_source_cmd_cancel_download): split download and cancel
13216         download commands. Replace usage of "Post" with "Esisode". Fixes bug
13217         321653.
13219 2005-11-18  William Jon McCann  <mccann@jhu.edu>
13221         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
13222         title on alert dialogs per the HIG.
13224         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
13225         the term Burn.
13226         (free_song_list): Routine to free song list.
13227         (rb_playlist_source_recorder_finalize): Use free_song_list.
13228         (rb_playlist_source_recorder_add_from_model): Return FALSE
13229         if unable to add all songs.  Check that duration of all
13230         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
13231         Fixes #321753.
13233         * sources/rb-playlist-source-recorder.c (check_media_length)
13234         (rb_playlist_source_recorder_start): Only check the duration
13235         and current media if the playlist length is longer than a
13236         standard CD (74 min).  Otherwise, just let the Recorder do the
13237         check.
13238         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
13239         drive at init.
13240         (rb_recorder_set_device): Don't leak drives.
13241         (rb_recorder_get_media_length): Use drive that was already set.
13242         (rb_recorder_burn): Let the recorder handle checking media type/size.
13243         Fixes bug 321754.
13245 2005-11-29  James Livingston  <jrl@ids.org.au>
13247         * rhythmdb/rhythmdb-query-model.c:
13248         (rhythmdb_query_model_set_sort_order):
13249         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
13250         emitting the tree-model "resorted" signal.
13252         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13253         (rb_entry_view_finalize), (rb_entry_view_set_property),
13254         (rb_entry_view_constructor), (rb_entry_view_resort_model):
13255         * widgets/rb-entry-view.h: add a function to resort the entry view,
13256         using the above function.
13258         * sources/rb-iradio-source.c:
13259         (rb_iradio_source_songs_view_sort_order_changed_cb):
13260         * sources/rb-library-source.c: (rb_library_source_finalize),
13261         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
13262         * sources/rb-playlist-source.c:
13263         (rb_playlist_source_songs_sort_order_changed_cb):
13264         * sources/rb-podcast-source.c:
13265         (rb_podcast_source_posts_view_sort_order_changed_cb),
13266         (rb_podcast_source_do_query): use the above function instead of
13267         re-creating the query model. This makes changing the sorting an order
13268         of magnitude faster, as it uses a single resorted signal rather than
13269         deleting and re-adding everything (which emits 2N signals). Closes bug
13270         315389.
13272 2005-11-29  James Livingston  <jrl@ids.org.au>
13274         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
13275         autosizing, which results in large speedups. Closes bug 312122.
13277         * po/ja.po: change the date format, so that it is a constant width
13279         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13280         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13281         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
13282         (rb_entry_view_constructor): make columns use fixed widths,
13283         disable column autosizing, and enable fixed-height mode.
13285         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
13286         (rb_entry_view_get_time_date_column_sample):
13287         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13288         and get the canonical date format for the locale.
13290 ============ Version 0.9.2
13292 2005-11-28  James Livingston  <jrl@ids.org.au>
13294         * configure.ac: bump version to 0.9.2
13295         * NEWS: update with changes for 0.9.2
13297 2005-11-28  James Livingston  <jrl@ids.org.au>
13299         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13301         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13302         Disable saving, renaming and delting for DAAP playlists.
13303         Fixes bug 322627.
13305 2005-11-28  James Livingston  <jrl@ids.org.au>
13307         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13308         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13309         prevent bug 322619.
13311         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13312         * sources/rb-removable-media-source.c:
13313         (rb_removable_media_source_class_init): fix ipod browser visibility
13314         problem.
13316 2005-11-28  James Livingston  <jrl@ids.org.au>
13318         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13319         Avahi 0.6 support actually work. Fixes bug 322519.
13321 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13323         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13324         avahi is specified in --with-mdns
13326 2005-11-27  James Livingston  <jrl@ids.org.au>
13328         patch by: Bastien Nocera <hadess@hadess.net>
13330         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13331         not the private one. Fixes bug 322485.
13333 2005-11-26  James Livingston  <jrl@ids.org.au>
13335         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13336         Avahi 0.6, as well as 0.5.
13338         * configure.ac:
13339         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13340         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13341         (add_service):
13343 2005-11-25  James Livingston  <jrl@ids.org.au>
13345         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13346         321926.
13348 2005-11-25  James Livingston  <jrl@ids.org.au>
13350         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13351         correct type for checking the date against 0. Stops a warning when
13352         saving metadata.
13354 2005-11-25  James Livingston  <jrl@ids.org.au>
13356         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13357         adjustment to be inside the element's limits. Without this songs that
13358         have large ReplayGain values will recieve no increase because they are
13359         outside the acceptable range, causing them to remain quiet.
13361 2005-11-25  James Livingston  <jrl@ids.org.au>
13363         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13364         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13365         * sources/rb-ipod-source.c:
13366         * sources/rb-source.h:
13367         * sources/rb-library-source.h:
13368         * sources/rb-library-source.c: (rb_library_source_class_init),
13369         (rb_library_source_constructor),
13370         (rb_library_source_has_first_added_column),
13371         (rb_library_source_has_drop_support):
13372         * sources/rb-removable-media-source.c:
13373         (rb_removable_media_source_class_init): Make library-derived sources
13374         not show the Date Added column, as it doesn't make sense. Fixes bug
13375         322269.
13376         Move some of the feature funcs from the ipod and audio cd sources up to
13377         the removable media source.
13379 2005-11-24  James Livingston  <jrl@ids.org.au>
13381         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13382         errors. oops.
13384 2005-11-24  James Livingston  <jrl@ids.org.au>
13386         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13387         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13388         (rb_iradio_source_constructor): Chain up dispose method and use
13389         G_DEFINE_TYPE
13391 2005-11-24  James Livingston  <jrl@ids.org.au>
13393         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13394         mistake in the last commit that can cause crashes.
13396 2005-11-24  James Livingston  <jrl@ids.org.au>
13398         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13399         instead of g_printerr.
13401         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13402         rb_debug instead of g_warning. The message happens every time for
13403         removable media/daap shares, so it's not unusual.
13405 2005-11-24  James Livingston  <jrl@ids.org.au>
13407         patch by: Tom Parker <palfrey@tevp.net>
13409         * configure.ac: fix libsoup test for enabling daap
13411 2005-11-23  James Livingston  <jrl@ids.org.au>
13413         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13414         (rb_query_creator_init), (rb_query_creator_constructor),
13415         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13416         empty row to queries with no criteria. Fixes bug 322078. use
13417         G_DEFINE_TYPE.
13419 2005-11-23  James Livingston  <jrl@ids.org.au>
13421         patch by:  <baptiste.millemathias@gmail.com>
13423         * help/C/quick-reference.xml: update the quick reference to have the
13424         correct key bindings.
13426 2005-11-22  James Livingston  <jrl@ids.org.au>
13428         * sources/rb-library-source.c: (genres_selection_reset_cb),
13429         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13430         reset the query when all browser selections are removed.
13432 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13434         * podcast/rb-podcast-manager.c:
13435         (rb_podcast_manager_db_entry_deleted_cb):
13436         Use a custom loop to remove podcast posts, rather than
13437         gtk_tree_model_foreach(), as deleting the entries within
13438         that loop causes the iterator to return the first entry
13439         twice.  Instead, we need to find the next entry before
13440         removing the current one. Fixes bug 321956.
13441         (rb_podcast_manager_entry_remove_cb): No longer needed.
13443 2005-11-22  James Livingston  <jrl@ids.org.au>
13445         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13446         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13447         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13449 2005-11-22  James Livingston  <jrl@ids.org.au>
13451         * sources/rb-podcast-source.c:
13452         (rb_podcast_source_post_date_cell_sort_func),
13453         (rb_podcast_source_post_status_cell_sort_func),
13454         (rb_podcast_source_post_feed_cell_sort_func):
13455         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13456         (rb_entry_view_album_sort_func),
13457         (rb_entry_view_double_ceiling_sort_func),
13458         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13459         the entry's location as a last resort when sorting, so the sort order
13460         is stable. This will stop entries moving around when two entries have
13461         the same sorting, and one of them gets played.
13463 2005-11-22  James Livingston  <jrl@ids.org.au>
13465         * daapsharing/rb-daap-connection.c:
13466         (rb_daap_connection_class_init), (rb_daap_connection_init),
13467         (connection_get_password), (build_message),
13468         (http_response_handler), (http_get), (handle_server_info),
13469         (handle_login), (handle_update), (handle_database_info),
13470         (handle_song_listing), (handle_playlists),
13471         (handle_playlist_entries), (rb_daap_connection_new),
13472         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13473         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13474         (rb_daap_connection_get_headers),
13475         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13476         (rb_daap_connection_set_property),
13477         (rb_daap_connection_get_property):
13478         * daapsharing/rb-daap-connection.h:
13479         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13480         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13481         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13482         of destroying the object when it is going to be used by a callback and
13483         fixes a double-free. Fixes bugs 321930 and 322007.
13485 2005-11-22  James Livingston  <jrl@ids.org.au>
13487         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13488         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13489         notification if there aren't any. Fixes bug 321968.
13491 2005-11-22  James Livingston  <jrl@ids.org.au>
13493         * rhythmdb/rhythmdb-property-model.c:
13494         (rhythmdb_property_model_set_property),
13495         (rhythmdb_property_model_finalize),
13496         (rhythmdb_property_model_compare),
13497         (rhythmdb_property_model_insert),
13498         (rhythmdb_property_model_delete_prop): Fix property model sorting
13499         where the display and sort keys are different. Fixes bug 321980.
13501 2005-11-22  James Livingston  <jrl@ids.org.au>
13503         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13504         when import as a file or passed on the command line, and load them as
13505         playlists.
13507 2005-11-22  James Livingston  <jrl@ids.org.au>
13509         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13511         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13512         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13513         a broken daap server. Fixes bug 321919.
13515 2005-11-22  James Livingston  <jrl@ids.org.au>
13517         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13518         drag-and-drop for both the episodes and feeds list.
13519         
13520         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13521         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13522         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13524         * widgets/rb-property-view.c: (rb_property_view_class_init),
13525         (rb_property_view_set_property), (rb_property_view_get_property),
13526         (rb_property_view_new), (rb_property_view_constructor):
13527         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13528         (rb_simple_view_new), (rb_simple_view_constructor):
13529         * widgets/rb-simple-view.h: add a "draggable" property to property
13530         views and set it to false for the feed list. Fixes bug 321284.
13532 2005-11-22  James Livingston  <jrl@ids.org.au>
13534         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13536         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13537         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13538         * sources/rb-ipod-source.c: (add_rb_playlist):
13539         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13540         (rb_playlist_source_set_property),
13541         (rb_playlist_source_get_property), (rb_playlist_source_new),
13542         (impl_receive_drag), (rb_playlist_source_add_location),
13543         (rb_playlist_source_new_from_xml):
13544         * sources/rb-playlist-source.h: give playlists and (optional)
13545         entry-type, and reject entries that don't match. Fixes bug 322006.
13547 2005-11-21  James Livingston  <jrl@ids.org.au>
13549         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13550         (rb_source_header_finalize): remove the weak references when the
13551         source header is finalised. Stops the callbacks being called after the
13552         object is destroyed.
13554 2005-11-21  James Livingston  <jrl@ids.org.au>
13556         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13557         --no-registration was passed. It causes warnings that make it
13558         impossible to run with --no-registration --g-fatal-warnings
13560 2005-11-21  James Livingston  <jrl@ids.org.au>
13562         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13563         of strings when they are still in use. Fixes bug 321547.
13565         (rb_daap_connection_destroy): fix memory leak
13567 2005-11-21  James Livingston  <jrl@ids.org.au>
13569         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13570         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13571         (rb_daap_mdns_resolve_cancel), (publish_cb),
13572         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13573         support.
13575 2005-11-21  James Livingston  <jrl@ids.org.au>
13577         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13578         sorting by genre
13580 2005-11-20  James Livingston  <jrl@ids.org.au>
13582         * podcast/rb-podcast-manager.c:
13583         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13584         that we don't leak thread structures. Fixes bug 321636, and probably
13585         321775.
13587 2005-11-20  James Livingston  <jrl@ids.org.au>
13589         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13590         (lookup_cd):
13591         * podcast/rb-podcast-manager.c: (start_job),
13592         (rb_podcast_manager_db_entry_deleted_cb),
13593         (rb_podcast_manager_entry_remove_cb):
13594         * podcast/rb-podcast-parse.c: (rb_insert_item),
13595         (rb_podcast_parse_load_feed):
13596         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13597         * shell/rb-removable-media-manager.c:
13598         (rb_removable_media_manager_append_media_source):
13599         * shell/rb-shell.c: (add_to_library_response_cb):
13600         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13601         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13602         * sources/rb-iradio-source.c:
13603         (stations_view_drag_data_received_cb):
13604         * sources/rb-library-source.c: (string_list_equal),
13605         (impl_get_extra_views), (impl_receive_drag):
13606         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13607         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13608         (impl_receive_drag):
13609         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13610         (rb_entry_view_append_column_custom), (harvest_entries):
13611         * widgets/rb-property-view.c:
13612         (rb_property_view_selection_changed_cb):
13613         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13614         switch from using g_list_append to g_list_prepend. This changes
13615         operations from O(n^2) to O(n), which in cases like deleting a lot of
13616         tracks can give huge improvements in speed. Closes bug 321696.
13618 2005-11-20  James Livingston  <jrl@ids.org.au>
13620         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13621         (rb_sourcelist_update_expander_visibility): fix indenting of child
13622         sources.
13624 2005-11-20  James Livingston  <jrl@ids.org.au>
13626         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13627         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13628         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13629         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13630         (add_service), (entry_group_cb): dynamically allocate memory, rather
13631         than using static variables.
13633         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13634         re-enable the daap share if the name hasn't changed.
13635         * shell/rb-shell-preferences.c:
13636         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13637         change it's name when the checkbox is disabled. Fixed bug 321748.
13639 2005-11-18  James Livingston  <jrl@ids.org.au>
13641         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13642         as hidden if it is on the current workspace.
13644 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13646         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13647         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13648         (rb_podcast_properties_dialog_parse_time): 
13649         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13650         (rb_feed_podcast_properties_dialog_parse_time):
13651         Rework the way the last mod time strings are created.  It was using
13652         thread unsafe functions, not creating value UTF, and not not checking
13653         the value of the result before modifying it.  This new method fixes
13654         these problems.
13656 2005-11-18  James Livingston  <jrl@ids.org.au>
13658         Don't reset the search box when viewing a different source, because it
13659         will change what is being played. Closes 321593.
13661         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13662         the search box
13664         * shell/rb-source-header.c: (rb_source_header_class_init),
13665         (rb_source_header_init), (rb_source_header_finalize): use
13666         G_DEFINE_TYPE.
13668         (rb_source_header_set_property),
13669         (rb_source_header_source_weak_destroy_cb),
13670         (rb_source_header_search_cb): store the search text when leaving a
13671         source and put it in the search box when viewing it again.
13673 2005-11-18  James Livingston  <jrl@ids.org.au>
13675         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13676         (save_entry):
13677         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13678         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13679         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13680         time stamp.
13682         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13683         last-seen as the timestamp of the last update of the feed. Don't
13684         re-add episodes that have been deleted. Closes 319759.
13686 2005-11-18  James Livingston  <jrl@ids.org.au>
13688         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13689         that don't have the day name at the start. Closes 321645.
13691 2005-11-18  James Livingston  <jrl@ids.org.au>
13693         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13694         (rb_podcast_manager_copy_post),
13695         (rb_podcast_manager_get_podcast_dir):
13696         * podcast/rb-podcast-manager.h:
13697         * sources/rb-podcast-source.c: (impl_get_config_widget),
13698         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13699         download location switching to / if the prefs were opened before
13700         downloading an episode. Closes 321611.
13702 2005-11-18  James Livingston  <jrl@ids.org.au>
13704         * data/glade/podcast-new.glade:
13705         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13706         (rb_new_podcast_dialog_set_property),
13707         (rb_new_podcast_dialog_get_property),
13708         (rb_new_podcast_dialog_response_cb),
13709         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13710         for entering new podcast urls in. Closes bug 321610.
13712 2005-11-18  James Livingston  <jrl@ids.org.au>
13714         * sources/rb-podcast-source.c: (construct_query_from_selection),
13715         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13716         without restarting RB. Closes bug 321612.
13718 2005-11-18  James Livingston  <jrl@ids.org.au>
13720         * widgets/rb-entry-view.c: (set_column_visibility),
13721         (rb_entry_view_sync_columns_visible): when changing visibility of one
13722         column, don't hide and re-show all the others. Makes a show/hide
13723         column operation a lot faster.
13725 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13727         Closes bug 321702.
13729         * iradio/rb-station-properties-dialog.c
13730          (rb_station_properties_dialog_update_bitrate):
13731         Mark the bitrate value as being kbps, using the same
13732         translatable format string as rb-song-info.c
13734         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13735          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13737         * shell/rb-shell-player.c (info_available_cb):
13738          Use RB_METADATA_FIELD_BITRATE to update the iradio
13739          station's bitrate value.
13741 2005-11-17  James Livingston  <jrl@ids.org.au>
13743         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13745         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13746         free a NULL date.
13748 2005-11-17  James Livingston  <jrl@ids.org.au>
13750         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13752         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13753         assertions. Lookup the icon size correctly.
13755 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13757         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13758         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13759         Fix build errors.
13761 2005-11-16  James Livingston  <jrl@ids.org.au>
13763         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13764         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13765         (rb_shell_preferences_sync_column_button): block the toggle signal of
13766         the column checkboxes while setting their initial state. This stops
13767         the visibility being re-set, which causes a lot of time being spent
13768         measuring the columns aagin when opening the prefs window.
13770         Use G_DEFINE_TYPE.
13772 2005-11-16  James Livingston  <jrl@ids.org.au>
13774         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13775         (rb_sourcelist_edit_source_name): don't assume that the editable
13776         source name is in the first column, because it isn't. Fixes bug
13777         320137.
13779 2005-11-16  James Livingston  <jrl@ids.org.au>
13781         * daapsharing/rb-daap-mdns.h:
13782         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13783         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13784         parts can know why operations failed. Avahi can report that the daemon
13785         was not running. Howl doesn't do this (yet).
13786         
13787         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13788         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13789         (browse_cb): don't display mdns errors to the user, if it wa because
13790         the daemon was not running.
13792 2005-11-16  James Livingston  <jrl@ids.org.au>
13794         * rhythmdb/rhythmdb-property-model.c:
13795         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13796         (rhythmdb_property_model_compare),
13797         (rhythmdb_property_model_insert),
13798         (rhythmdb_property_model_insert_prop),
13799         (rhythmdb_property_model_delete),
13800         (rhythmdb_property_model_delete_prop),
13801         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13802         copying the string and re-creating the sort key. Saves a little bit of
13803         memory and time.
13805         (rhythmdb_property_model_perform_sync),
13806         (rhythmdb_property_model_sync): perform the count sync in an idle
13807         callback, so that it doesn't have to be re-run once per value when
13808         loading.
13810 2005-11-16  James Livingston  <jrl@ids.org.au>
13812         * rhythmdb/rhythmdb-query-model.c:
13813         (rhythmdb_query_model_entry_deleted_cb),
13814         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13815         limited list. Stops problems if they are deleted, and then things on
13816         the main list are
13818 2005-11-16  James Livingston  <jrl@ids.org.au>
13820         * NEWS: update NEWS
13822         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13823         button's minimise-to-tray action
13825 2005-11-16  James Livingston  <jrl@ids.org.au>
13827         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13828         leak. Disable adding newly created files for now, because it doesn't
13829         work properly.
13831         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13832         (rb_sourcelist_model_finalize):
13833         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13834         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13836 2005-11-16  James Livingston  <jrl@ids.org.au>
13838         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13839         problem where a GError* wasn't being set to NULL. Actually check the
13840         result.
13842 2005-11-16  James Livingston  <jrl@ids.org.au>
13844         * doc/reference/tmpl/rb-entry-view.sgml:
13845         * doc/reference/tmpl/rhythmbox-unused.sgml:
13846         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13847         * doc/reference/tmpl/rhythmdb.sgml:
13848         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13849         docs, including the patch that was on bug 
13851         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13852         API, because it should only be used by RhythmDB itself.
13854 2005-11-16  James Livingston  <jrl@ids.org.au>
13856         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13857         pausing by middle clicking on the tray icon.
13859 2005-11-15  James Livingston  <jrl@ids.org.au>
13861         * configure.ac: enable audioscrobbler support by default, if libsoup
13862         is present.
13864 2005-11-15  James Livingston  <jrl@ids.org.au>
13866         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13867         Closes bug 321157.
13869         * configure.ac:
13870         * daapsharing/rb-daap-connection.c: (build_message),
13871         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13872         support gzip encoded daap connections.
13874         (handle_song_listing): fix leak
13876 2005-11-15  James Livingston  <jrl@ids.org.au>
13878         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13879         * sources/rb-podcast-source.c:
13880         (rb_podcast_source_post_date_cell_data_func): make the date format
13881         translatable again, so that translators can choose the best format for
13882         their locale (%x is huge in some locales)
13884 2005-11-15  James Livingston  <jrl@ids.org.au>
13886         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13887         (end_job): mark podcast episodes as failed, if the metadata load
13888         fails. This will prevent people playing non-audio enclosures, helping
13889         stop bug 320366.
13891 2005-11-14  James Livingston  <jrl@ids.org.au>
13893         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13894         video sink to fakesink. This will stop problems (potentially crashers)
13895         that will occur if the file contains a video stream.
13897         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13898         rather than using magic numbers everywhere.
13900         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13901         * sources/rb-podcast-source.c:
13902         (rb_podcast_source_songs_show_popup_cb),
13903         (rb_podcast_source_cmd_download_post),
13904         (rb_podcast_source_post_status_cell_data_func),
13905         (rb_podcast_source_entry_activated_cb): use the above constants.
13907         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13908         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13909         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13910         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13911         (cancel_job), (download_progress_cb),
13912         (rb_podcast_manager_cancel_download),
13913         (rb_podcast_manager_insert_feed): use the constants, and fix a
13914         trhead-safety issue.
13916 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13918         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13919         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13920         entry-changed events after stats on startup, fixes entry deleted from
13921         filtered views not disappearing
13923 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13925         Fix rhythmdb query model refcount and polling problems. Closes bug
13926         321410.
13928         * rhythmdb/rhythmdb-property-model.c:
13929         (rhythmdb_property_model_finalize):
13930          Unref the query model if we have one.
13932         * rhythmdb/rhythmdb-query-model.h:
13933          Remove poll and cancel methods.  Query cancellation
13934          never did anything anyway.
13936         * rhythmdb/rhythmdb-query-model.c:
13937         (rhythmdb_query_model_init): Remove GAsyncQueues.
13938          Replace the GAsyncQueue-based update processing
13939          with a simpler g_idle_add approach; still has the
13940          same queueing properties, but now we don't poll the
13941          model forever and updates are processed immediately.
13943         (_unref_entry), (rhythmdb_query_model_finalize):
13944          Unref DB entries when finalized
13946         (rhythmdb_query_model_has_pending_changes):
13947          Use our own counter to decide if there are updates pending
13949         (rhythmdb_query_model_process_update), (idle_process_update):
13950          Process updates using g_idle_add, or directly if possible
13952         (rhythmdb_query_model_signal_complete),
13953         (rhythmdb_query_model_add_entries):
13954          Change to new update processing method
13956         (idle_poll_model), (rhythmdb_query_model_poll):
13957          Remove GAsyncQueue-based update processing.
13959         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13960          No need to poll the model any more - updates are processed
13961          directly for synchronous queries.
13963         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13964          Property model needs to be unref'd here
13966         * sources/rb-library-source.c: (rb_library_source_do_query):
13967          Don't try to cancel the active query (it never worked anyway),
13968          remove obsolete poll call, unref property models as required,
13969          and don't unref the cached 'all' query, since hold on to it.
13970          We unref it when the sort order changes, which forces the query
13971          to be rerun.
13973         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13974          Unref the property model as required
13976         (rb_podcast_source_do_query):
13977          Treat any query with no selected feeds and no search text as
13978          an 'all' query.  Unref query models except for the cached
13979          'all' query, since we hold on to that.
13981         (rb_podcast_source_cmd_update_all):
13982          Unref the property model as required.
13984         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13985          Don't try to cancel the query (it never worked anyway)
13987         (rb_entry_view_poll_model):
13988          No need for this any more.
13990         * widgets/rb-entry-view.h:
13991          Remove obsolete function rb_entry_view_poll_model
13993         * widgets/rb-property-view.c: (rb_property_view_set_property):
13994          Ref and unref the property model as required.
13996 2005-11-14  James Livingston  <jrl@ids.org.au>
13998         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14000         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
14001         for error. Closes bug 321416.
14003 2005-11-14  James Livingston  <jrl@ids.org.au>
14005         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14007         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
14008         a crasher if a feed's last-post value isn't set. Closes bug 321353.
14010 2005-11-14  James Livingston  <jrl@ids.org.au>
14012         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
14013         * shell/rb-removable-media-manager.c:
14014         (rb_removable_media_manager_set_uimanager):
14015         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
14016         translation domain for GTK action groups.
14018 2005-11-12  James Livingston  <jrl@ids.org.au>
14020         * po/POTFILES.in: remove the old station-new files
14022 2005-11-12  James Livingston  <jrl@ids.org.au>
14024         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14025         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
14026         (save_entry): cause Rhythmbox to re-read the metadata from a file,
14027         when upgrading from a pre-Date-supporting version to a version that
14028         supports Date metadata. Closes bug 320760.
14030 2005-11-12  James Livingston  <jrl@ids.org.au>
14032         Add "update all podcast feeds" command. Closes bug 319954.
14034         * data/ui/rhythmbox-ui.xml: add to source context menu.
14036         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14037         (register_action_group), (rb_podcast_source_cmd_download_post),
14038         (rb_podcast_source_cmd_delete_feed),
14039         (rb_podcast_source_cmd_properties_feed),
14040         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
14041         rather than the shell.
14043         (rb_podcast_source_update_feed_func),
14044         (rb_podcast_source_cmd_update_all): update every feed.
14046 2005-11-11  James Livingston  <jrl@ids.org.au>
14048         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14049         (rb_shell_player_constructor), (rb_shell_player_finalize):
14050         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
14051         others follow the HIG recommentations.
14053 2005-11-11  James Livingston  <jrl@ids.org.au>
14055         * podcast/rb-podcast-manager.c:
14056         (rb_podcast_manager_subscribe_feed): check that the url is valid,
14057         before trying to use it.
14059 2005-11-11  James Livingston  <jrl@ids.org.au>
14061         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
14062         (rb_entry_view_append_column): When sorting by year, sort by album
14063         within a particular year.
14065 2005-11-11  James Livingston  <jrl@ids.org.au>
14067         * NEWS: updates
14069 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
14070         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
14071         spelling of "Language."
14073 2005-11-11  James Livingston  <jrl@ids.org.au>
14075         * rhythmdb/rhythmdb-property-model.c:
14076         (rhythmdb_property_model_row_inserted_cb),
14077         (rhythmdb_property_model_prop_changed_cb),
14078         (rhythmdb_property_model_entry_removed_cb),
14079         (rhythmdb_property_model_insert_prop),
14080         (rhythmdb_property_model_sync): display the count after the "All"
14081         entry of a property model.
14083         * widgets/rb-property-view.c: (rb_property_view_class_init),
14084         (rb_property_view_finalize), (rb_property_view_constructor): use
14085         G_DEFINE_TYPE
14087 2005-11-10  James Livingston  <jrl@ids.org.au>
14089         * rhythmdb/rhythmdb-query-model.c:
14090         (rhythmdb_query_model_remove_entry):
14091         * rhythmdb/rhythmdb-query-model.h: make
14092         rhythmdb_query_model_remove_entry return whether the entry was in the
14093         model.
14095         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
14096         don't add non-SONG entries, as it doesn't really work and can cause
14097         crashes.
14099         (rb_playlist_source_remove_location): assert if the playlist and model
14100         differ on whether the entry is in the playlist
14102 2005-11-10  James Livingston  <jrl@ids.org.au>
14104         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
14105         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
14106         (rb_podcast_manager_thread_parse_feed),
14107         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
14108         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
14109         emulating one with a list and mutex. Fixes a couple of threading
14110         issues.
14111         
14112         (rb_podcast_manager_insert_feed): fix some problems with ignoring
14113         updated feeds.
14114         
14115         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
14116         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
14117         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
14118         * podcast/rb-podcast-parse.c: (rb_insert_item),
14119         (rb_podcast_parse_channel_free):
14120         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
14121         fix some typos, and make a bit of code clearer.
14123 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
14125         Make the "delete podcast" dialog better. Closes bug 320899.
14127         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
14128         Add PROP_WINDOW for rb_shell_get_property so we can access the
14129         GtkWindow widget of the main window. 
14130         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
14131         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
14132         podcast feed delete dialog less confusing as well.
14134 2005-11-09  James Livingston  <jrl@ids.org.au>
14136         * shell/rb-removable-media-manager.c:
14137         (rb_removable_media_manager_mount_volume),
14138         (rb_removable_media_manager_scan): Fix a crasher where we were getting
14139         NULL for a cd volume.
14141 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14143         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
14144         method return a gboolean indicating whether the changes
14145         to the entry have already been applied.
14147         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
14148         only modify the entry if impl_entry_set returns FALSE.
14150         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
14151         When setting the location of an entry, update the
14152         hash table mapping locations to entries.
14154 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14156         * data/glade/Makefile.am:
14157         * iradio/Makefile.am:
14158           Remove 'new station' dialog.
14160         * iradio/rb-station-properties-dialog.h:
14161         * sources/rb-iradio-source.c: (impl_song_properties):
14162         * shell/rb-shell.c: (rb_shell_cmd_new_station):
14163          Add 'new station' mode parameter to
14164          rb_station_properties_dialog_new.
14166         * (rb_station_properties_dialog_response_cb),
14167         (rb_station_properties_dialog_create_station):
14168          When in 'new station' mode, create the station
14169          when OK button is pressed.
14171         * iradio/rb-station-properties-dialog.c:
14172         (rb_station_properties_dialog_location_changed_cb):
14173          Only enable OK button if a location is specified
14174         (rb_station_properties_dialog_init),
14175         (rb_station_properties_dialog_new),
14176         (rb_station_properties_dialog_update),
14177         (rb_station_properties_dialog_update_title),
14178         (rb_station_properties_dialog_rated_cb),
14179         (rb_station_properties_dialog_update_play_count),
14180         (rb_station_properties_dialog_update_bitrate),
14181         (rb_station_properties_dialog_update_last_played),
14182         (rb_station_properties_dialog_update_rating),
14183         (rb_station_properties_dialog_update_playback_error),
14184         (rb_station_properties_dialog_show):
14185          Handle 'new station' mode, where there's no current
14186          station to edit.
14188 2005-11-08  James Livingston  <jrl@ids.org.au>
14190         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
14191         keybinding for track columns consistent between library and playlist
14192         sources.
14194 2005-11-07  James Livingston  <jrl@ids.org.au>
14196         * data/ui/rhythmbox-ui.xml:
14197         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
14198         "Edit" item to playlist menu. Closes bug 311470.
14200 2005-11-07  James Livingston  <jrl@ids.org.au>
14202         patch by: Jaap A. Haitsma <jaap@haitsma.org>
14204         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
14205         confirmation to save dialogs, with gtk 2.8 or higher.
14207 2005-11-07 James Livingston  <jrl@ids.org.au>
14208         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
14209         requirement to a general on, because people are going to have it for
14210         the other dependencies.
14212 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
14214         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
14215         delete dialog less confusing.  Use HIG recommended button order.
14216         Closes bug 320840.
14218 2005-11-06  James Livingston  <jrl@ids.org.au>
14220         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
14221         drag-and-drop error.
14222         
14223         * sources/rb-library-source.c: (rb_library_source_constructor): only
14224         add drag-and-drop for the Library itself, subclasses can add support
14225         themselves if they want it.
14227         * sources/rb-removable-media-source.c:
14228         (rb_removable_media_source_class_init): by default removable media
14229         sources do not support dnd
14231 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
14233         * data/glade/station-properties.glade:
14234          Add box containing error icon and error message label
14235         * iradio/rb-station-properties-dialog.c:
14236         (rb_station_properties_dialog_class_init),
14237         (rb_station_properties_dialog_finalize):
14238          Change this class to use G_DEFINE_TYPE
14239         (rb_station_properties_dialog_init),
14240         (rb_station_properties_dialog_update),
14241         (rb_station_properties_dialog_update_playback_error):
14242          Display error icon and message when there is one, and hide the error
14243          box otherwise.
14244         (rb_station_properties_dialog_show): Hack widget show
14245          method to update the visibility of the error info box when showing
14246          the widget.  Otherwise the icon is displayed all the time (same thing
14247          is done in rb-song-info). Closes bug 320749.
14249 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
14251         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
14252         parsing of the duration of podcast episodes from the feed. Closes bug
14253         320748.
14255 2005-11-05  James Livingston  <jrl@ids.org.au>
14257         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
14258         release date metadata ("Year"). Closes bug 166093.
14260         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
14261         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
14262         (rb_metadata_gst_add_tag_data):
14263         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14264         (save_entry):
14265         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
14266         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
14267         (set_props_from_metadata), (rhythmdb_entry_set_internal),
14268         (rhythmdb_prop_get_type):
14269         * rhythmdb/rhythmdb.h: add support for "date" property
14270         
14271         * data/glade/general-prefs.glade:
14272         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
14273         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
14274         (rb_entry_view_append_column):
14275         * widgets/rb-entry-view.h:
14276         * sources/rb-library-source.c: (rb_library_source_constructor):
14277         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
14278         "Year" colums
14280         * data/glade/song-info.glade:
14281         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
14282         (rb_song_info_construct_single), (rb_song_info_constructor),
14283         (rb_song_info_populate_dialog), (rb_song_info_update_year),
14284         (rb_song_info_sync_entry_single): Add "Year" to song info window
14286         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14287         sorted by year.
14289 2005-11-05  James Livingston  <jrl@ids.org.au>
14291         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14292         description if it's very long.
14294 2005-11-05  James Livingston  <jrl@ids.org.au>
14296         pathc by: Artem Baguinski <femistofel@gmail.com>
14298         * help/C/Makefile.am:
14299         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14300         Closes bug 320613.
14302 2005-11-05  James Livingston  <jrl@ids.org.au>
14304         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14306         * daapsharing/rb-daap-share.c: (write_next_chunk),
14307         (message_finished), (databases_cb): Use chunked file loading and
14308         sending in the DAAP server. This should reduce the amount of memory
14309         required to send files to the client.
14311 2005-11-05  James Livingston  <jrl@ids.org.au>
14313         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14314         work better on some systems. Closes 320622.
14316 2005-11-05  James Livingston  <jrl@ids.org.au>
14318         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14319         homepage, so that users can find out what AudioScrobbler is. Add
14320         access keys.
14322         * data/glade/daap-prefs.glade:
14323         * data/glade/general-prefs.glade:
14324         * data/glade/library-prefs.glade: make the indent be more consistent
14326         * data/glade/podcast-prefs.glade: 
14327         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14328         (impl_get_config_widget): move thing out of code into glade, where
14329         they belong
14331 2005-11-05  James Livingston  <jrl@ids.org.au>
14333         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14334         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14336 2005-11-04  James Livingston  <jrl@ids.org.au>
14338         * configure.ac: don't print DAAP configure info twice
14340 2005-11-04  James Livingston  <jrl@ids.org.au>
14342         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14343         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14344         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14345         #ifdefs, since we removed the symbol. Oops
14347 2005-11-04  James Livingston  <jrl@ids.org.au>
14349         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14350         after the connect line, not before. Oops.
14352 2005-11-04  James Livingston  <jrl@ids.org.au>
14354         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14355         fix some warnings
14357 2005-11-03  James Livingston  <jrl@ids.org.au>
14359         * NEWS: update the news file
14361         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14362         "duration" column.
14364         * data/ui/rhythmbox-ui.xml:
14365         * shell/rb-playlist-manager.c:
14366         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14367         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14368         and "delete" for feeds.
14370 2005-11-03  James Livingston  <jrl@ids.org.au>
14372         * sources/rb-podcast-source.c: (impl_delete),
14373         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14374         feed. Closes 319760.
14376 2005-11-03  James Livingston  <jrl@ids.org.au>
14378         Don't start playing from the remote site when a un-downloaded podcast
14379         is activated. Closes 319983.
14380         
14382         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14383         (write_job_data), (download_progress_cb): write the local location as
14384         soon as any data is recieved
14386         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14387         the mountpoint to NULL for podcast episodes that haven't yet been
14388         downloaded.
14389         
14390         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14391         start playing a podcast if it hasn't been downloaded.
14392         
14393         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14394         (rb_podcast_source_entry_activated_cb): begin downloading when the
14395         podcast is activated.
14397 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14399         * data/glade/general-prefs.glade:  Fix capitalization.
14400         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14401         * sources/rb-podcast-source.c:
14402         (rb_podcast_source_songs_show_popup_cb),
14403         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14405 2005-11-03  James Livingston  <jrl@ids.org.au>
14407         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14409         * shell/rb-removable-media-manager.c:
14410         (rb_removable_media_manager_mount_volume): don't check network or
14411         autofs mounts, as they're not going to be removable media. Stops
14412         sending lots of warnings to syslog. Closes 320571.
14414         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14415         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14416         320570.
14418 2005-11-03  James Livingston  <jrl@ids.org.au>
14420         Add support for playing audio CDs. Metadata lookup is done using
14421         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14422         the library when it gets broken out of S-J.
14423         
14424         Add a "rescan media" menu item, and commands for ejecting removable
14425         media.
14427         Move nautilus-cd-burner from optional to required depenency.
14429         * configure.ac:
14430         * data/ui/rhythmbox-ui.xml:
14431         * metadata/Makefile.am:
14432         + metadata/sj-error.c:
14433         + metadata/sj-error.h:
14434         + metadata/sj-metadata-marshal.list:
14435         + metadata/sj-metadata-musicbrainz.c:
14436         + metadata/sj-metadata-musicbrainz.h:
14437         + metadata/sj-metadata.c:
14438         + metadata/sj-metadata.h:
14439         + metadata/sj-structures.c:
14440         + metadata/sj-structures.h:
14441         * player/Makefile.am:
14442         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14443         * po/POTFILES.in:
14444         * shell/Makefile.am:
14445         * shell/rb-removable-media-manager.c:
14446         (rb_removable_media_manager_dispose), (poll_tray_opened),
14447         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14448         (rb_removable_media_manager_load_media),
14449         (rb_removable_media_manager_mount_volume),
14450         (rb_removable_media_manager_cmd_eject_medium),
14451         (rb_removable_media_manager_cmd_scan_media),
14452         (rb_removable_media_manager_check_volume),
14453         (rb_removable_media_manager_unmount_volume_swap),
14454         (rb_removable_media_manager_scan):
14455         * sources/Makefile.am:
14456         + sources/rb-audiocd-source.c:
14457         + sources/rb-audiocd-source.h:
14458         * tests/Makefile.am:
14460 2005-11-02  James Livingston  <jrl@ids.org.au>
14462         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14464         * sources/rb-iradio-source.c:
14465         (stations_view_drag_data_received_cb):
14466         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14467         don't crash when the second uri is missing frm the drop, which
14468         browsers sometimes do.
14470 2005-11-01  James Livingston  <jrl@ids.org.au>
14472         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14473         (rb_podcast_manager_insert_feed):
14474         * podcast/rb-podcast-manager.h:
14475         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14476         (rb_set_item_value), (rb_validate_item_propert),
14477         (rb_podcast_parse_date), (rb_podcast_parse_time):
14478         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14479         from the feed.
14481 2005-10-31  James Livingston  <jrl@ids.org.au>
14483         * ChangeLog:
14484         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14485         huge
14487 2005-10-31  James Livingston  <jrl@ids.org.au>
14489         * sources/rb-podcast-source.c:
14490         (rb_podcast_source_post_date_cell_data_func): generate the date string
14491         in a way that is correct in all locales.
14492         
14493         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14494         (rhythmdb_entry_sync_mirrored): make the last played/date added
14495         columns use the same format.
14497 2005-10-30  James Livingston  <jrl@ids.org.au>
14500         * podcast/rb-podcast-manager.c:
14501         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14502         
14503         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14504         iradio errors better.
14506 2005-10-30  James Livingston  <jrl@ids.org.au>
14508         patch by: Artem Baguinski <femistofel@gmail.com>
14510         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14512 2005-10-30  James Livingston  <jrl@ids.org.au>
14514         * podcast/rb-podcast-manager.c:
14515         (rb_podcast_manager_subscribe_feed),
14516         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14517         already been added, usually as a radio station. Closes 319434.
14519 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14521         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14522         mnemonics & resize issues)
14523         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14524         & mnemonics)
14525         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14526         widget for the "download location" label.
14528         Closes bug 320184.
14530 2005-10-29  James Livingston  <jrl@ids.org.au>
14532         Allow the search box to match words from multiple properties. Closes
14533         bug 139196. Thanks to the person from IRC who did a lot of the initial
14534         work.
14537         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14538         * lib/rb-util.h: Add functions to split a string into words, and one
14539         to perform "search folding" which is currently like casefolding but
14540         also strips punctuation
14541         
14542         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14543         (rhythmdb_query_preprocess):
14544         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14545         against title, artist, album and genre (for the search box)
14546         
14547         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14548         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14549         (save_entry), (search_match_properties),
14550         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14551         splitting into words and matching across multiple properties.
14552         
14553         * sources/rb-library-source.c: (construct_query_from_selection): use
14554         the new SEARCH_MATCH property for the search box
14555         
14556         * widgets/rb-entry-view.c: (type_ahead_search_func):
14558 2005-10-29  James Livingston  <jrl@ids.org.au>
14560         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14561         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14562         
14563         * shell/rb-playlist-manager.c:
14564         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14565         correctly.
14566         
14567         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14568         initial state of the shuffle/repeat menu items correctly. Patch from
14569         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14571 2005-10-29  James Livingston  <jrl@ids.org.au>
14573         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14574         double-free.
14575         
14576         * widgets/rb-cell-renderer-pixbuf.c:
14577         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14578         icon go black when row is not selected
14579         
14580         * doc/reference/tmpl/rb-daap-connection.sgml:
14581         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14583 2005-10-29  James Livingston  <jrl@ids.org.au>
14585         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14586         silly mistake, where it could think partial downloads has been
14587         completed.
14589 2005-10-29  James Livingston  <jrl@ids.org.au>
14591         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14593         * data/glade/song-info.glade:
14594         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14595         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14596         (rb_song_info_sync_entry_single): show the disc number in the song
14597         info window. From bug 311199.
14599 2005-10-29  James Livingston  <jrl@ids.org.au>
14601         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14602         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14603         regularly. Closes 155306.
14605 2005-10-29  James Livingston  <jrl@ids.org.au>
14607         * podcast/rb-podcast-manager.c:
14608         (rb_podcast_manager_download_entry),
14609         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14610         (rb_podcast_manager_insert_feed):
14611         * podcast/rb-podcast-manager.h:
14612         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14613         (rb_podcast_parser_start_element):
14614         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14615         don't download them again. However, it can't resume
14616         partially-downloaded ones.
14618 2005-10-28  James Livingston  <jrl@ids.org.au>
14620         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14621         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14622         work. Don't attempt to write duration as a tag.
14624         Thanks to Artem Baguinski <femistofel@gmail.com>
14626 2005-10-28  James Livingston  <jrl@ids.org.au>
14628         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14629         don't disable the status-bar menu item when the current source doesn't
14630         use the search box.
14632 2005-10-28  James Livingston  <jrl@ids.org.au>
14634         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14635         crash if the file has unknown length
14637 2005-10-27  James Livingston  <jrl@ids.org.au>
14639         * daapsharing/rb-daap-connection.c:
14640         (rb_daap_connection_state_done): don't assert when a daap server
14641         doesn't have any playlists
14643 2005-10-27  James Livingston  <jrl@ids.org.au>
14645         * sources/rb-sourcelist-model.c:
14646         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14647         source for the sourcelist. Closes bug 319817.
14649 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14651         Patch by: Renato Araujo <renatox@gmail.com>
14653         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14654           Fix for a crasher caused by previous patch.
14656 2005-10-26  James Livingston  <jrl@ids.org.au>
14658         * data/glade/podcast-prefs.glade:
14659         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14660         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14661         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14662         * podcast/rb-podcast-manager.c:
14663         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14664         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14665         * shell/rb-shell.c: Change some strings to make them more consistent.
14666         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14667         makes it clearer which is which. "Episode" may not be the best term,
14668         but it seems to be widely used.
14669         
14670         Also fix some strings that weren't marked as translatable.
14671         
14672         * podcast/rb-feed-podcast-properties-dialog.c:
14673         (rb_feed_podcast_properties_dialog_class_init),
14674         (rb_feed_podcast_properties_dialog_finalize):
14675         * podcast/rb-new-podcast-dialog.c:
14676         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14677         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14678         (rb_simple_view_finalize), (rb_simple_view_constructor):
14679         * podcast/rb-podcast-properties-dialog.c:
14680         (rb_podcast_properties_dialog_class_init),
14681         (rb_podcast_properties_dialog_finalize):
14682         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14683         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14684         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14685         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14686         use G_DEFINE_TYPE, instead of doing it manually.
14688 2005-10-26  James Livingston  <jrl@ids.org.au>
14690         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14691         <jrl@ids.org.au>
14693         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14694         (rb_metadata_init): Check that the necessary plugins are present to do
14695         id3 editing.
14696         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14697         corrupted before replacing the original.
14699 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14701         reviewed by: James Livingston <jrl@ids.org.au>
14703         Assign sequential IDs to playlists for DAAP rather than using the
14704         address of the playlist object.  Less flaky, and should work on 64bit
14705         platforms. Closes bug 319304.
14707         * daapsharing/rb-daap-share.c: 
14708         (rb_daap_share_set_property): watch for playlist creation
14709         (_find_by_id), (_find_by_source): playlist list search functions
14710         (rb_daap_share_playlist_created),
14711         (rb_daap_share_process_playlist),
14712         (rb_daap_share_playlist_destroyed):
14713          update playlist list as it changes, use weak refs on 
14714          playlists to get notified on destroy.
14715         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14716          destroy playlist list on shutdown
14717         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14718          DAAP response
14719         (databases_cb): search for playlist ID in list rather than just
14720          converting it to a pointer; return HTTP 404 if playlist not 
14721          found.
14722         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14723          is already used for the main library
14725 2005-10-26  James Livingston  <jrl@ids.org.au>
14727         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14729         * daapsharing/rb-daap-connection.c: (build_message),
14730         (http_response_handler), (http_get), (handle_server_info),
14731         (handle_login), (handle_update), (handle_database_info),
14732         (handle_song_listing), (handle_playlists),
14733         (handle_playlist_entries), (handle_logout),
14734         (rb_daap_connection_new), (rb_daap_connection_logout),
14735         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14736         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14737         * daapsharing/rb-daap-connection.h:
14738         * sources/rb-daap-source.c: (rb_daap_source_activate),
14739         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14740         (rb_daap_source_disconnect): Make connecting to DAAP sources
14741         asynchronous, so that non-responsive servers don't hang the UI. Closes
14742         316225.
14744 2005-10-26  James Livingston  <jrl@ids.org.au>
14746         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14748         * rhythmdb/rhythmdb-query-model.c:
14749         (rhythmdb_query_model_do_reorder): generate the row re-order map
14750         correctly.
14751         
14752         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14753         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14754         Update selection when rows get re-ordered. Closes 319718.
14756 2005-10-26  James Livingston  <jrl@ids.org.au>
14758         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14760         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14761         actually set the db pointer in play orders. Closes 319818.
14763 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14765         Patch by: Renato Araujo <renatox@gmail.com>
14767         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14768         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14769         (rb_podcast_manager_update_synctime),
14770         (rb_podcast_manager_config_changed),
14771         (rb_podcast_manager_insert_feed):
14772         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14773         (save_entry):
14774         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14775         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14776         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14778 2005-10-25  James Livingston  <jrl@ids.org.au>
14780         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14781         (db_entry_deleted_cb): don't share tracks that are hidden because the
14782         file is missing.
14784 2005-10-22  James Livingston  <jrl@ids.org.au>
14786         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14787         crash if an entry couldn't be playerd, without streamer setting an
14788         error.
14790         
14791         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14793         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14794         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14795         is pasted into the dialog.
14796         
14797         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14798         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14799         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14800         (rb_podcast_parse_channel_free):
14801         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14802         feeds
14804 2005-10-22  James Livingston  <jrl@ids.org.au>
14806         * sources/rb-iradio-source.c:
14807         (rb_iradio_source_first_time_changed): Make merging the default
14808         stations actually work.
14809         
14810         * sources/rb-podcast-source.c:
14811         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14812         people weren't seing the percentages in the stats column.
14814 2005-10-21  James Livingston  <jrl@ids.org.au>
14816         Patch from Caio Marcelo <cmarcelo@gmail.com>
14818         * shell/rb-shell.c: (rb_shell_window_state_cb),
14819         (rb_shell_get_visibility), (idle_hide_mainwindow),
14820         (rb_shell_set_visibility): Make the "show window" item in the tray
14821         icon menu show the toggle state correctly. Use a better policy on
14822         deciding whether the window is "visible" or not. Closes bug 308053.
14824 2005-10-21  James Livingston  <jrl@ids.org.au>
14826         * doc/reference/tmpl/rb-shell-preferences.sgml:
14827         * shell/Makefile.am: fix building with gtk-doc
14829         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14830         don't submit podcasts to audioscrobbler
14831         
14832         
14833         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14834         
14835         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14836         (rb_set_item_value): strip spaces surrounding podcast urls
14837         
14839         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14840         
14841         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14843 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14845         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14846          Audioscrobbler/Last.fm support
14848         * configure.ac:
14849         * data/glade/Makefile.am:
14850         * data/glade/audioscrobbler-prefs.glade:
14851         * data/rhythmbox.schemas:
14852         * lib/Makefile.am:
14853         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14854         * lib/md5.h:
14855         * lib/rb-preferences.h:
14856         * po/POTFILES.in:
14857         * shell/Makefile.am:
14858         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14859         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14860         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14861         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14862         (rb_audioscrobbler_timeout_cb), (mkmd5),
14863         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14864         (rb_audioscrobbler_do_handshake),
14865         (rb_audioscrobbler_do_handshake_cb),
14866         (rb_audioscrobbler_submit_queue),
14867         (rb_audioscrobbler_submit_queue_cb),
14868         (rb_audioscrobbler_import_settings),
14869         (rb_audioscrobbler_preferences_sync),
14870         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14871         (rb_audioscrobbler_gconf_changed_cb),
14872         (rb_audioscrobbler_song_changed_cb),
14873         (rb_audioscrobbler_username_entry_changed_cb),
14874         (rb_audioscrobbler_username_entry_activate_cb),
14875         (rb_audioscrobbler_password_entry_changed_cb),
14876         (rb_audioscrobbler_password_entry_activate_cb),
14877         (rb_audioscrobbler_enabled_check_changed_cb),
14878         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14879         (rb_audioscrobbler_load_entry_from_string),
14880         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14881         (rb_audioscrobbler_print_queue),
14882         (rb_audioscrobbler_free_queue_entries):
14883         * shell/rb-audioscrobbler.h:
14884         * shell/rb-shell-preferences.c:
14885         (rb_shell_preferences_append_audioscrobbler_config):
14886         * shell/rb-shell-preferences.h:
14887         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14888         (rb_shell_select_source), (rb_shell_cmd_preferences):
14889         * sources/Makefile.am:
14891 2005-10-21  James Livingston  <jrl@ids.org.au>
14893         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14895         * Makefile.am:
14896         * NEWS:
14897         * configure.ac:
14898         * data/art/Makefile.am:
14899         * data/glade/Makefile.am:
14900         * data/rhythmbox.schemas:
14901         * data/ui/rhythmbox-ui.xml:
14902         * doc/reference/Makefile.am:
14903         * doc/reference/tmpl/rhythmdb.sgml:
14904         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14905         * lib/rb-stock-icons.h:
14906         * po/POTFILES.in:
14907         * podcast/Makefile.am:
14908         + podcast/rb-feed-podcast-properties-dialog.c:
14909         + podcast/rb-feed-podcast-properties-dialog.h:
14910         + podcast/rb-new-podcast-dialog.c:
14911         + podcast/rb-new-podcast-dialog.h:
14912         + podcast/rb-podcast-manager.c:
14913         + podcast/rb-podcast-manager.h:
14914         + podcast/rb-podcast-marshal.list:
14915         + podcast/rb-podcast-parse.c:
14916         + podcast/rb-podcast-parse.h:
14917         + podcast/rb-podcast-properties-dialog.c:
14918         + podcast/rb-podcast-properties-dialog.h:
14919         * rhythmdb/rhythmdb-property-model.c:
14920         (rhythmdb_property_model_set_property),
14921         (rhythmdb_property_model_enable_drag):
14922         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14923         (rhythmdb_tree_parser_end_element), (save_entry),
14924         (rhythmdb_tree_save):
14925         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14926         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14927         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14928         (rhythmdb_entry_podcast_feed_get_type):
14929         * rhythmdb/rhythmdb.h:
14930         * shell/Makefile.am:
14931         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14932         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14933         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14934         (rb_shell_quit):
14935         * sources/Makefile.am:
14936         + sources/rb-podcast-source.c:
14937         + sources/rb-podcast-source.h:
14938         * widgets/Makefile.am:
14939         * widgets/rb-property-view.c: (rb_property_view_class_init),
14940         (rb_property_view_constructor),
14941         (rb_property_view_selection_changed_cb),
14942         (rb_property_view_get_treeview):
14943         * widgets/rb-property-view.h:
14944         + widgets/rb-simple-view.c:
14945         + widgets/rb-simple-view.h:
14947 2005-10-20  James Livingston  <jrl@ids.org.au>
14949         * NEWS: update with changes since 0.9.1
14951         * configure.ac: check whether collate_key_for_filename is available
14952         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14953         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14954         it if it isn't available in glib (i.e. building against 2.6)
14955         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14956         collation to get "natural sorting". Closes bug 158599.
14958 2005-10-20  James Livingston  <jrl@ids.org.au>
14960         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14962         * doc/reference/tmpl/rb-shell-player.sgml:
14963         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14964         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14965         (rb_shell_player_get_playing),
14966         (rb_shell_player_get_playing_time_string),
14967         (rb_shell_player_get_playing_time),
14968         (rb_shell_player_set_playing_time), (tick_cb),
14969         (rb_shell_player_get_playing_path), (filter_mmkeys):
14970         * shell/rb-shell-player.h:
14971         * shell/rb-shell-player.xml:
14972         * shell/rb-shell.c: (rb_shell_constructor),
14973         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14974         (rb_shell_set_window_title), (rb_shell_playing_impl),
14975         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14976         Merge the duration_changed and elapsed_changed DBUS signals into one
14977         elapsed_changed signal. Check that the output argument isn't NULL
14978         before trying to put things in it.
14980 2005-10-20  James Livingston  <jrl@ids.org.au>
14982         * rhythmdb/rhythmdb-query-model.c:
14983         (rhythmdb_query_model_entry_added_cb),
14984         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14985         problem where hidden entries could be shown in playlists.
14986         
14987         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14988         issues when switching in and out of small mode.
14990 2005-10-19  James Livingston  <jrl@ids.org.au>
14992         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14993         (rb_shell_constructor), (rb_shell_window_state_cb),
14994         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14995         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14996         (rb_shell_view_smalldisplay_changed_cb),
14997         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14998         (rb_shell_sync_paned): remove gconf window-state races, prevent
14999         changing small mode too often, fix window event races. Closes 122806.
15001         
15002         Patch from Caio Marcelo <cmarcelo@gmail.com>
15004         * data/rhythmbox.schemas:
15005         * shell/rb-shell.c: (rb_shell_window_state_cb),
15006         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
15007         Remember the position of the window. Closes 315289.
15009 2005-10-19  James Livingston  <jrl@ids.org.au>
15011         Patch from Christophe Fergeau  <teuf@gnome.org>
15013         * configure.ac: determine whether libgpod is present when neither
15014         --with-ipod nor --without-ipod is passed
15016 2005-10-19  James Livingston  <jrl@ids.org.au>
15018         Patch from Caio Marcelo <cmarcelo@gmail.com>
15020         * shell/rb-shell-player.c: (do_next_idle),
15021         (rb_shell_player_do_previous), (rb_shell_player_do_next),
15022         (rb_shell_player_do_previous_or_seek),
15023         (rb_shell_player_previous_button_cb),
15024         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15025         (rb_shell_player_cmd_next), (eos_cb):
15026         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
15027         end of the playlist is reached.
15029 2005-10-19  Christopher Aillon  <caillon@redhat.com>
15031         * lib/rb-thread.c: fix a few GSource leaks
15033 2005-10-19  James Livingston  <jrl@ids.org.au>
15035         * doc/reference/tmpl/bacon-volume.sgml:
15036         * doc/reference/tmpl/disclosure-widget.sgml:
15037         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15038         * doc/reference/tmpl/eggnotificationbubble.sgml:
15039         * doc/reference/tmpl/eggtrayicon.sgml:
15040         * doc/reference/tmpl/gsequence.sgml:
15041         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15042         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15043         * doc/reference/tmpl/rb-daap-connection.sgml:
15044         * doc/reference/tmpl/rb-daap-dialog.sgml:
15045         * doc/reference/tmpl/rb-daap-mdns.sgml:
15046         * doc/reference/tmpl/rb-daap-share.sgml:
15047         * doc/reference/tmpl/rb-daap-sharing.sgml:
15048         * doc/reference/tmpl/rb-daap-source.sgml:
15049         * doc/reference/tmpl/rb-daap-src.sgml:
15050         * doc/reference/tmpl/rb-daap-structure.sgml:
15051         * doc/reference/tmpl/rb-debug.sgml:
15052         * doc/reference/tmpl/rb-dialog.sgml:
15053         * doc/reference/tmpl/rb-druid.sgml:
15054         * doc/reference/tmpl/rb-entry-view.sgml:
15055         * doc/reference/tmpl/rb-enums.sgml:
15056         * doc/reference/tmpl/rb-file-helpers.sgml:
15057         * doc/reference/tmpl/rb-glade-helpers.sgml:
15058         * doc/reference/tmpl/rb-header.sgml:
15059         * doc/reference/tmpl/rb-history.sgml:
15060         * doc/reference/tmpl/rb-ipod-source.sgml:
15061         * doc/reference/tmpl/rb-iradio-source.sgml:
15062         * doc/reference/tmpl/rb-library-source.sgml:
15063         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15064         * doc/reference/tmpl/rb-metadata.sgml:
15065         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15066         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15067         * doc/reference/tmpl/rb-play-order-linear.sgml:
15068         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15069         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15070         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15071         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15072         * doc/reference/tmpl/rb-play-order-random.sgml:
15073         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15074         * doc/reference/tmpl/rb-play-order.sgml:
15075         * doc/reference/tmpl/rb-player.sgml:
15076         * doc/reference/tmpl/rb-playlist-manager.sgml:
15077         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15078         * doc/reference/tmpl/rb-playlist-source.sgml:
15079         * doc/reference/tmpl/rb-preferences.sgml:
15080         * doc/reference/tmpl/rb-property-view.sgml:
15081         * doc/reference/tmpl/rb-query-creator-private.sgml:
15082         * doc/reference/tmpl/rb-query-creator.sgml:
15083         * doc/reference/tmpl/rb-rating-helper.sgml:
15084         * doc/reference/tmpl/rb-rating.sgml:
15085         * doc/reference/tmpl/rb-recorder.sgml:
15086         * doc/reference/tmpl/rb-refstring.sgml:
15087         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15088         * doc/reference/tmpl/rb-removable-media-source.sgml:
15089         * doc/reference/tmpl/rb-search-entry.sgml:
15090         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15091         * doc/reference/tmpl/rb-shell-glue.sgml:
15092         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15093         * doc/reference/tmpl/rb-shell-player.sgml:
15094         * doc/reference/tmpl/rb-shell-preferences.sgml:
15095         * doc/reference/tmpl/rb-shell.sgml:
15096         * doc/reference/tmpl/rb-song-display-box.sgml:
15097         * doc/reference/tmpl/rb-song-info.sgml:
15098         * doc/reference/tmpl/rb-source-header.sgml:
15099         * doc/reference/tmpl/rb-source.sgml:
15100         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15101         * doc/reference/tmpl/rb-sourcelist.sgml:
15102         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15103         * doc/reference/tmpl/rb-statusbar.sgml:
15104         * doc/reference/tmpl/rb-stock-icons.sgml:
15105         * doc/reference/tmpl/rb-string-helpers.sgml:
15106         * doc/reference/tmpl/rb-thread.sgml:
15107         * doc/reference/tmpl/rb-tray-icon.sgml:
15108         * doc/reference/tmpl/rb-tree-dnd.sgml:
15109         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15110         * doc/reference/tmpl/rb-util.sgml:
15111         * doc/reference/tmpl/rhythmbox-unused.sgml:
15112         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15113         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15114         * doc/reference/tmpl/rhythmdb-tree.sgml:
15115         * doc/reference/tmpl/rhythmdb.sgml: update for changes
15116         
15117         * doc/reference/Makefile.am: make docs build with changed ipod support
15118         
15119         * po/POTFILES.in: remove sources/itunesdb
15121 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
15123         * sources/itunesdb.c:
15124         * sources/itunesdb.h: removed now useless files
15126 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
15128         * configure.ac:
15129         * shell/Makefile.am:
15130         * sources/Makefile.am:
15131         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
15132         code
15133         [1]: http://www.gtkpod.org/libgpod.html
15136 2005-10-18  James Livingston  <jrl@ids.org.au>
15138         patch from Funda Wang <fundawang@linux.net.cn>
15140         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
15141         the notification bubble string translatable.
15143 ============ Version 0.9.1
15145 2005-10-16  James Livingston  <jrl@ids.org.au>
15147         * configure.ac: bump version to 0.9.1
15148         * NEWS: update translation credits
15150 2005-10-16  James Livingston  <jrl@ids.org.au>
15152         * rhythmdb/rhythmdb-query-model.c:
15153         (rhythmdb_query_model_class_init),
15154         (rhythmdb_query_model_drag_data_received): 
15155         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
15156         notified when things are dropped into the entry view.
15157         
15158         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15159         (rb_playlist_source_add_location_swapped),
15160         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
15161         (rb_playlist_source_non_entry_dropped),
15162         (rb_playlist_source_row_inserted): Use the new signal so that dropping
15163         things onto a playlist's entry view work correctly, and doesn't cause
15164         crashes. Allow folders to be dropped as well. (Closes 318308)
15166 2005-10-16  James Livingston  <jrl@ids.org.au>
15168         * NEWS: Update some more
15170         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15171         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
15172         with the paned size, so that it doesn't move when the window is
15173         maximised/restored. Closes bug 315852.
15175         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
15176         display the playcount column, as it's useless (it never get changed).
15178 2005-10-14  James Livingston  <jrl@ids.org.au>
15180         * Makefile.am:
15181         * data/Makefile.am:
15182         * doc/reference/Makefile.am: get "make distcheck" to pass again
15184 2005-10-11  James Livingston  <jrl@ids.org.au>
15186         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
15187         destroy the connection when retrieving the playlists fails, because
15188         tracks have already been added. Closes 318380.
15190 2005-10-11  James Livingston  <jrl@ids.org.au>
15192         * sources/rb-sourcelist.c: (rb_sourcelist_append),
15193         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
15194         (source_name_edited_cb): Ask for the columns to be resized when a
15195         source is added, deleted or changes name.
15197 2005-10-11  James Livingston  <jrl@ids.org.au>
15199         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
15200         create a thread when processing a directory. This stops up created one
15201         thread for each file in a playlist we're trying to load. Closes
15202         317850.
15204         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
15205         typo that made sort-by-artist not work correctly.
15207 2005-10-11  James Livingston  <jrl@ids.org.au>
15209         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
15210         support is enabled
15212 2005-10-11  James Livingston  <jrl@ids.org.au>
15214         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
15215         * lib/rb-file-helpers.h: add a function to turn uris into our
15216         canonical path-escaped form
15217         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
15218         above function when import playlists. This will fix the problem of
15219         duplicate entries due to different representations of the uri (bug
15220         158211).
15222 2005-10-11  James Livingston  <jrl@ids.org.au>
15224         * shell/rb-shell.c: (rb_shell_get_visibility),
15225         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
15226         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
15227         window hiding so that Alt-F4 works again.
15229         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
15230         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
15231         (rb_entry_view_string_sort_func): Stop some crashes where a string
15232         property was set to NULL.
15234 2005-10-10  James Livingston  <jrl@ids.org.au>
15236         * doc/reference/rhythmbox.types: fix gtk-doc generation
15238 2005-10-09  James Livingston  <jrl@ids.org.au>
15240         * sources/rb-sourcelist.c: (rb_sourcelist_init):
15241         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
15242         accelerators, so that we don't have as many conflicting keys.
15244 2005-10-08  James Livingston  <jrl@ids.org.au>
15246         * data/iradio-initial.pls: Update the list of radio stations. Thanks
15247         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
15248         bug 129285.
15250 2005-10-07  James Livingston  <jrl@ids.org.au>
15252         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
15253         local path names in the same way as every other URI. This should stop
15254         duplicates occurring due to different escapings. Closes bug 158211.
15256 2005-10-06  James Livingston  <jrl@ids.org.au>
15258         * NEWS: more updates
15259         
15260         patch from Jaap Haitsma <jaap@haitsma.org>:
15262         * configure.ac:
15263         * data/Makefile.am:
15264         * data/art/Makefile.am:
15265         - data/art/rhythmbox-paused.png:
15266         - data/art/rhythmbox-playback-error.png:
15267         - data/art/rhythmbox-playing.png:
15268         - data/art-clearlooks/:
15269         * lib/rb-file-helpers.c: (rb_file):
15270         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15271         * lib/rb-stock-icons.h:
15272         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
15273         * widgets/rb-cell-renderer-pixbuf.c:
15274         (rb_cell_renderer_pixbuf_render):
15275         * widgets/rb-entry-view.c: (rb_entry_view_init),
15276         (rb_entry_view_set_playing):
15277         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
15278         stock icons instead of custom art. Drop remanents of art-clearlooks.
15280 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
15282         * configure.ac: Added ne in ALL_LINGUAS
15284 2005-10-02  James Livingston  <jrl@ids.org.au>
15286         * data/glade/Makefile.am: actually install the daap prefs glade file
15288 2005-09-30  James Livingston  <jrl@ids.org.au>
15290         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15291         translatable files, so that make check works and we don't annoy the
15292         translators.
15293         
15294         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15295         sanity checking, in case a db entry is missing some properties.
15297 2005-09-29  James Livingston  <jrl@ids.org.au>
15299         - lib/rb-string-helpers.c:
15300         - lib/rb-string-helpers.h:
15301         * lib/Makefile.am:
15302         * rhythmdb/rhythmdb-tree.c:
15303         * rhythmdb/rhythmdb.c:
15304         * shell/main.c: (main):
15305         * shell/rb-shell.c:
15306         * widgets/rb-entry-view.c:
15307         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15308         utility functions haven't been used in a while.
15310 2005-09-27  James Livingston  <jrl@ids.org.au>
15312         * data/art-clearlooks/Makefile.am:
15313         - data/art-clearlooks/rhythmbox-album.png:
15314         - data/art-clearlooks/rhythmbox-audiocd.png:
15315         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15316         - data/art-clearlooks/rhythmbox-dnd.png:
15317         - data/art-clearlooks/rhythmbox-ipod.png:
15318         - data/art-clearlooks/rhythmbox-iradio.png:
15319         - data/art-clearlooks/rhythmbox-library.png:
15320         - data/art-clearlooks/rhythmbox-next.png:
15321         - data/art-clearlooks/rhythmbox-pause.png:
15322         - data/art-clearlooks/rhythmbox-play.png:
15323         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15324         - data/art-clearlooks/rhythmbox-playlist.png:
15325         - data/art-clearlooks/rhythmbox-previous.png:
15326         - data/art-clearlooks/rhythmbox-repeat.png:
15327         - data/art-clearlooks/rhythmbox-rewind.png:
15328         - data/art-clearlooks/rhythmbox-shuffle.png:
15329         - data/art-clearlooks/rhythmbox-stop.png:
15330         - data/art-clearlooks/rhythmbox-visuals.png:
15331         - data/art-clearlooks/rhythmbox-volume-max.png:
15332         - data/art-clearlooks/rhythmbox-volume-medium.png:
15333         - data/art-clearlooks/rhythmbox-volume-min.png:
15334         - data/art-clearlooks/rhythmbox-volume-mute.png:
15335         - data/art-clearlooks/rhythmbox-volume-zero.png:
15336         * data/art/Makefile.am:
15337         - data/art/rhythmbox-album.png:
15338         - data/art/rhythmbox-audiocd.png:
15339         - data/art/rhythmbox-automatic-playlist.png:
15340         - data/art/rhythmbox-dnd.png:
15341         - data/art/rhythmbox-ipod.png:
15342         - data/art/rhythmbox-iradio.png:
15343         - data/art/rhythmbox-library.png:
15344         - data/art/rhythmbox-next.png:
15345         - data/art/rhythmbox-pause.png:
15346         - data/art/rhythmbox-play.png:
15347         - data/art/rhythmbox-playlist-menu.png:
15348         - data/art/rhythmbox-playlist.png:
15349         - data/art/rhythmbox-previous.png:
15350         - data/art/rhythmbox-repeat.png:
15351         - data/art/rhythmbox-rewind.png:
15352         - data/art/rhythmbox-shuffle.png:
15353         - data/art/rhythmbox-stop.png:
15354         - data/art/rhythmbox-visuals.png:
15355         - data/art/rhythmbox-volume-max.png:
15356         - data/art/rhythmbox-volume-medium.png:
15357         - data/art/rhythmbox-volume-min.png:
15358         - data/art/rhythmbox-volume-mute.png:
15359         - data/art/rhythmbox-volume-zero.png:
15360         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15361         * lib/rb-stock-icons.h:
15362         * shell/rb-playlist-manager.c:
15363         * shell/rb-shell-player.c:
15364         * sources/rb-daap-source.c: (rb_daap_get_icon):
15365         * sources/rb-ipod-source.c:
15366         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15367         * sources/rb-library-source.c: (rb_library_source_new):
15368         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15369         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15370         that hasn't been used in a LONG time, and also remove art that are
15371         now stock icons.
15373 2005-09-27  James Livingston  <jrl@ids.org.au>
15375         * README: point to the gnome.org web sites, and update the example
15376         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15377         
15378         * rhythmdb/rhythmdb-query-model.c:
15379         (rhythmdb_query_model_set_property),
15380         (rhythmdb_query_model_get_property),
15381         (rhythmdb_query_model_finalize):
15382         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15383         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15384         * rhythmdb/rhythmdb.h:
15385         * sources/rb-iradio-source.c: (impl_search):
15386         * sources/rb-library-source.c: (impl_search): Add query
15387         "preprocessing", which performs operations such as casefolding any
15388         strings that will be compared to any of the *_FOLDED properties.
15389         Closes bug 316039
15391 2005-09-27  James Livingston  <jrl@ids.org.au>
15393         * data/glade/daap-prefs.glade:
15394         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15395         file for the daap preferences pane
15396         
15397         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15398         (rb_sourcelist_append), (rb_sourcelist_remove),
15399         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15400         don't display the column for source expanders unless there is an
15401         expandable source.
15403 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15405         * .cvsignore:
15406         * Makefile.am:
15407         * configure.ac:
15408         * doc/.cvsignore:
15409         * doc/Makefile.am:
15410         * doc/reference/.cvsignore:
15411         * doc/reference/Makefile.am:
15412         * doc/reference/rhythmbox-docs.sgml:
15413         * doc/reference/rhythmbox-sections.txt:
15414         * doc/reference/rhythmbox.types:
15415         * doc/reference/tmpl/bacon-volume.sgml:
15416         * doc/reference/tmpl/disclosure-widget.sgml:
15417         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15418         * doc/reference/tmpl/eggnotificationbubble.sgml:
15419         * doc/reference/tmpl/eggtrayicon.sgml:
15420         * doc/reference/tmpl/gsequence.sgml:
15421         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15422         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15423         * doc/reference/tmpl/rb-daap-connection.sgml:
15424         * doc/reference/tmpl/rb-daap-dialog.sgml:
15425         * doc/reference/tmpl/rb-daap-mdns.sgml:
15426         * doc/reference/tmpl/rb-daap-share.sgml:
15427         * doc/reference/tmpl/rb-daap-sharing.sgml:
15428         * doc/reference/tmpl/rb-daap-source.sgml:
15429         * doc/reference/tmpl/rb-daap-src.sgml:
15430         * doc/reference/tmpl/rb-daap-structure.sgml:
15431         * doc/reference/tmpl/rb-debug.sgml:
15432         * doc/reference/tmpl/rb-dialog.sgml:
15433         * doc/reference/tmpl/rb-druid.sgml:
15434         * doc/reference/tmpl/rb-entry-view.sgml:
15435         * doc/reference/tmpl/rb-enums.sgml:
15436         * doc/reference/tmpl/rb-file-helpers.sgml:
15437         * doc/reference/tmpl/rb-glade-helpers.sgml:
15438         * doc/reference/tmpl/rb-header.sgml:
15439         * doc/reference/tmpl/rb-history.sgml:
15440         * doc/reference/tmpl/rb-ipod-source.sgml:
15441         * doc/reference/tmpl/rb-iradio-source.sgml:
15442         * doc/reference/tmpl/rb-library-source.sgml:
15443         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15444         * doc/reference/tmpl/rb-metadata.sgml:
15445         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15446         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15447         * doc/reference/tmpl/rb-play-order-linear.sgml:
15448         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15449         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15450         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15451         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15452         * doc/reference/tmpl/rb-play-order-random.sgml:
15453         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15454         * doc/reference/tmpl/rb-play-order.sgml:
15455         * doc/reference/tmpl/rb-player.sgml:
15456         * doc/reference/tmpl/rb-playlist-manager.sgml:
15457         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15458         * doc/reference/tmpl/rb-playlist-source.sgml:
15459         * doc/reference/tmpl/rb-preferences.sgml:
15460         * doc/reference/tmpl/rb-property-view.sgml:
15461         * doc/reference/tmpl/rb-query-creator-private.sgml:
15462         * doc/reference/tmpl/rb-query-creator.sgml:
15463         * doc/reference/tmpl/rb-rating-helper.sgml:
15464         * doc/reference/tmpl/rb-rating.sgml:
15465         * doc/reference/tmpl/rb-recorder.sgml:
15466         * doc/reference/tmpl/rb-refstring.sgml:
15467         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15468         * doc/reference/tmpl/rb-removable-media-source.sgml:
15469         * doc/reference/tmpl/rb-search-entry.sgml:
15470         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15471         * doc/reference/tmpl/rb-shell-glue.sgml:
15472         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15473         * doc/reference/tmpl/rb-shell-player.sgml:
15474         * doc/reference/tmpl/rb-shell-preferences.sgml:
15475         * doc/reference/tmpl/rb-shell.sgml:
15476         * doc/reference/tmpl/rb-song-display-box.sgml:
15477         * doc/reference/tmpl/rb-song-info.sgml:
15478         * doc/reference/tmpl/rb-source-header.sgml:
15479         * doc/reference/tmpl/rb-source.sgml:
15480         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15481         * doc/reference/tmpl/rb-sourcelist.sgml:
15482         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15483         * doc/reference/tmpl/rb-statusbar.sgml:
15484         * doc/reference/tmpl/rb-stock-icons.sgml:
15485         * doc/reference/tmpl/rb-string-helpers.sgml:
15486         * doc/reference/tmpl/rb-thread.sgml:
15487         * doc/reference/tmpl/rb-tray-icon.sgml:
15488         * doc/reference/tmpl/rb-tree-dnd.sgml:
15489         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15490         * doc/reference/tmpl/rb-util.sgml:
15491         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15492         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15493         * doc/reference/tmpl/rhythmdb-tree.sgml:
15494         * doc/reference/tmpl/rhythmdb.sgml:
15495         * macros/.cvsignore:
15496         * shell/Makefile.am:
15497         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15498         (rb_source_finalize), (rb_source_set_property),
15499         (rb_source_get_property), (default_get_pixbuf),
15500         (_rb_source_show_popup):
15501         * sources/rb-source.h:
15502         Add support for gtk-doc in rhythmbox.
15503         Convert RBSource to use newer glib functions, such as add_private.
15504         Gives RBSource a default get_pixbuf implementation.
15506 2005-09-25  James Livingston  <jrl@ids.org.au>
15508         * NEWS: Update with about a months worth of changes
15510         * data/glade/song-info-multiple.glade:
15511         * data/glade/song-info.glade:
15512         * data/rhythmbox.schemas:
15513         * lib/rb-preferences.h:
15514         * rhythmdb/rhythmdb.h:
15515         * shell/rb-shell-player.c:
15516         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15517         few remaining parts of autorating.
15519 2005-09-24  James Livingston  <jrl@ids.org.au>
15521         * shell/rb-shell.c: (rb_shell_constructor),
15522         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15523         (rb_shell_window_configure_cb): store window state in the gconf keys,
15524         so that it gets used. Closes bugs 313893 and 137068.
15526 2005-09-20  James Livingston  <jrl@ids.org.au>
15528         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15529         crash if the entry has a NULL string in a property
15530         
15531         * shell/rb-removable-media-manager.c:
15532         (rb_removable_media_manager_load_media): fix some memory leaks
15533         
15534         (rb_removable_media_manager_mount_volume),
15535         (rb_removable_media_manager_eject_medium_cb),
15536         (rb_removable_media_manager_cmd_eject_medium): use
15537         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15538         
15539         * sources/rb-removable-media-source.c:
15540         (rb_removable_media_source_set_property),
15541         (rb_removable_media_source_get_property): use
15542         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15544 2005-09-18  James Livingston  <jrl@ids.org.au>
15546         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15547         column
15549         * data/glade/general-prefs.glade:
15550         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15551         (rb_shell_preferences_column_check_changed_cb),
15552         (rb_shell_preferences_sync): add checkbox to control visibility
15553         of the column
15554         
15555         
15556         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15557         (save_entry):
15558         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15559         (rhythmdb_prop_get_type):
15560         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15561         was as "last played" is handled
15562         
15563         * sources/rb-library-source.c: (rb_library_source_constructor):
15564         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15565         Make the column show in the library and playlists
15566         
15567         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15568         * widgets/rb-entry-view.h: add the column
15569         
15570         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15571         be sorted by the column
15573 2005-09-16  James Livingston  <jrl@ids.org.au>
15575         * shell/rb-shell-player.c: (rb_shell_player_init),
15576         (rb_shell_player_do_previous_or_seek),
15577         (rb_shell_player_previous_button_cb),
15578         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15579         (rb_shell_player_playpause_button_cb): Make the previous button act
15580         the same as the menu item. Fix an inversion of the "previous track or
15581         seek" logic.
15582         
15583         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15584         
15585         (rb_shell_player_playpause): make --play-pause stop source that can't
15586         be paused
15588 2005-09-15  James Livingston  <jrl@ids.org.au>
15590         * configure.ac: increase totem-plparser requirements to 1.1.5
15592         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15593         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15594         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15595         use the newer playlist APIs to save the name of the playlist, and use
15596         the name of a loaded playlist.
15598         Closes bug 309817.
15600 2005-09-15  James Livingston  <jrl@ids.org.au>
15602         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15604         * shell/Makefile.am: stop some linker warnings
15606         * shell/main.c: (main): make --no-registration work with dbus
15608 2005-09-15  James Livingston  <jrl@ids.org.au>
15610         * daapsharing/rb-daap-sharing.c: (create_share):
15611         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15612         reference sinking and counting issues that I caused.
15614 2005-09-15  James Livingston  <jrl@ids.org.au>
15616         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15617         playing" icon in the "now playing" column header.
15619 2005-09-14  James Livingston  <jrl@ids.org.au>
15621         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15622         daap shares, when sharing is turned off.
15624 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15626         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15627         the GConf value's default, especially for badly installed schema
15628         files
15630 2005-09-12  James Livingston  <jrl@ids.org.au>
15632         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15634         Patch from Paolo Borelli <pborelli@katamail.com>
15636         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15637         grip when maximised. Closes bug 316055.
15639 2005-09-11  James Livingston  <jrl@ids.org.au>
15641         Patch from William Jon McCann <mccann@jhu.edu>
15643         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15644         subclass of GtkStatusbar instead of GtkHBox.
15645         (rb_statusbar_construct): Don't set border width.
15646         (rb_statusbar_init): Use resize grip.  Don't use
15647         markup.
15648         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15649         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15650         Connect tooltips for actions.
15651         (rb_statusbar_sync_status): Push new message to statusbar.
15652         (rb_statusbar_set_progress): Don't use markup.
15653         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15654         flag here since it prevents actually showing or hiding.
15655         (rb_statusbar_sync_with_source): Push new message to statusbar.
15657 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15659         * daapsharing/rb-daap-structure.c:
15660         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15661         around debugging definition.
15663 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15664         
15665         * daapsharing/rb-daap-structure.c:
15666         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15667         type = version.
15669         * daapsharing/rb-daap-mdns.c/h:
15670         (resolve_cb): Updated mDNS resolve callback to send service-name &
15671         name (read from Machine Name in the TXT data or equal to service-name
15672         if not in TXT).
15674         * daapsharing/rb-daap-source.c:
15675         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15676         (rb_daap_source_get_property), (rb_daap_source_new),
15677         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15678         (stop_resolver), (start_browsing), (stop_browsing), 
15679         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15680         and added 'host' and 'port' gobject properties.  Updated to use new
15681         mDNS resolve callback sending service-name & name arguments.
15683 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15685         * daapsharing/rb-daap-mdns.c:
15686         (howl_strerror): New function to report errors from Howl
15687         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15688         (get_sw_discovery), (get_avahi_client): Better error reporting from
15689         Howl & Avahi.
15691         * sources/rb-daap-source.:
15692         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15693         not get started or stopped in some situations.
15694         
15695 2005-09-12  James Livingston  <jrl@ids.org.au>
15697         * shell/rb-removable-media-manager.c: add a missing include, that
15698         would stop compilation if ipod support wasn't turned on
15700 2005-09-11  James Livingston  <jrl@ids.org.au>
15702         * daapsharing/rb-daap-dialog.c: (encode_base64),
15703         (rb_daap_password_dialog_new_run),
15704         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15705         it is no broken in to two pieces, and remove a use of a goto
15706         
15707         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15708         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15709         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15710         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15711         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15712         memory leaks, and some code style things.
15713         
15714         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15715         (rb_daap_share_init), (rb_daap_share_set_property),
15716         (rb_daap_share_dispose), (rb_daap_share_new),
15717         (rb_daap_share_get_property): make the DB and the playlist manager
15718         gobject properties.
15719         
15720         (message_add_standard_headers),
15721         (message_set_from_rb_daap_structure), (server_info_cb),
15722         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15723         (server_cb), (add_db_entry), (db_entry_added_cb),
15724         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15725         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15726         style and use CONF_PREFIX in the gconf keys
15727         
15728         * daapsharing/rb-daap-sharing.c: (create_share),
15729         (enable_sharing_changed_cb), (share_name_changed_cb),
15730         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15731         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15732         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15733         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15734         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15735         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15736         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15737         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15738         hasn't actually changed, fix some memory leaks, code style and release
15739         gconf notifications when the object is destroyed.
15740         
15741         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15742         (rb_daap_source_class_init), (rb_daap_source_init),
15743         (rb_daap_source_dispose), (rb_daap_source_set_property),
15744         (rb_daap_source_get_property), (rb_daap_source_new),
15745         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15746         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15747         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15748         (rb_daap_source_activate), (rb_daap_source_disconnect),
15749         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15750         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15751         release gconf notifications, handle gconf callbacks where the key
15752         hasn't changed, make "real name" and "password protected" gobject
15753         properties, fix some code style and fix a memory leak.
15755 2005-09-11  James Livingston  <jrl@ids.org.au>
15757         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15759         * shell/rb-playlist-manager.c:
15760         (rb_playlist_manager_save_playlists),
15761         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15762         when we aren't supposed to. (Closes bug 315886)
15764 2005-09-11  James Livingston  <jrl@ids.org.au>
15766         * shell/rb-removable-media-manager.c:
15767         (rb_removable_media_manager_class_init),
15768         (rb_removable_media_manager_init),
15769         (rb_removable_media_manager_dispose),
15770         (rb_removable_media_manager_set_property),
15771         (rb_removable_media_manager_get_property),
15772         (rb_removable_media_manager_new),
15773         (rb_removable_media_manager_load_media),
15774         (rb_removable_media_manager_volume_mounted_cb),
15775         (rb_removable_media_manager_volume_unmounted_cb),
15776         (rb_removable_media_manager_mount_volume),
15777         (rb_removable_media_manager_unmount_volume),
15778         (rb_removable_media_manager_source_deleted_cb),
15779         (rb_removable_media_manager_append_media_source),
15780         (rb_removable_media_manager_set_uimanager),
15781         (rb_removable_media_manager_eject_medium_cb),
15782         (rb_removable_media_manager_cmd_eject_medium):
15783         * shell/rb-removable-media-manager.h:
15784         * sources/rb-removable-media-source.c:
15785         (rb_removable_media_source_class_init),
15786         (rb_removable_media_source_init),
15787         (rb_removable_media_source_dispose),
15788         (rb_removable_media_source_set_property),
15789         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15790         (impl_delete_thyself):
15791         * sources/rb-removable-media-source.h: Add the four files that I
15792         somehow managed not to add to cvs in the last commit. Oops.
15794 2005-09-11  James Livingston  <jrl@ids.org.au>
15796         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15797         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15798         
15799         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15800         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15801         removable-media-manager on startup, and handle creation of sources.
15802         
15803         * sources/rb-ipod-source.h:
15804         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15805         (rb_ipod_source_init), (rb_ipod_source_constructor),
15806         (rb_ipod_source_dispose), (rb_ipod_source_new),
15807         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15808         the iPod source over to the removable media framework.
15809         
15810         * sources/rb-library-source.c: (paned_size_allocate_cb),
15811         (rb_library_source_get_paned_key): fix a potential bug is a
15812         library-derived source doesn't have a paned-key
15814 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15816         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15817         mp3 when we can't get the suffix of a file (Closes: #315941)
15819 2005-09-10  James Livingston  <jrl@ids.org.au>
15821         * configure.ac: fix the mdns tests, so that it doesn't complain about
15822         not finding one, if daap support isn't being compiled in
15824 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15826         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15828         * daapsharing/rb-daap-dialog.c:
15829         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15830         HIG compliancy & images.
15832         * daapsharing/rb-daap-mdns.c:
15833         (browse_cb), (resolve_cb): Better detection of local services.  
15834         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15835         Howl's limitations.  Fix the way collision handling is done under
15836         Avahi.
15838         * daapsharing/rb-daap-share.c:
15839         (publish_cb): Better name collision handling (at least for Avahi).
15841 2005-09-10  James Livingston  <jrl@ids.org.au>
15843         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15844         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15845         preferences more HIG compliant (Closes #315889)
15846         
15847         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15848         list of files to be translated
15850 2005-09-10  James Livingston  <jrl@ids.org.au>
15852         * configure.ac: fix it so that --enable-daap=no works
15853         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15854         uninstalled
15856 2005-09-10  James Livingston  <jrl@ids.org.au>
15858         Patch from Christophe Fergeau <teuf@gnome.org>
15860         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15861         the ipod code.
15863 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15864         * README.daap: Updating documentation
15866 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15867         * AUTHORS: Added myself.
15869         * daapsharing/rb-daap-connection.c:
15870         (connection_login), (rb_connection_new): Reorganized password
15871         handling.
15873         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15875         * shell/rb-shell.c:
15876         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15878         * sources/rb-daap-source.c:
15879         (rb_daap_source_activate): Better error handling when we are unable to
15880         connect.
15881         
15882 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15883         * README.daap: Fixed some terminology.
15885         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15886         New --with-mdns=auto|howl|avahi flag to specify.
15888         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15889         name collision dialogs.
15891         * daapsharing/rb-daap-connection.c:
15892         (connection_get_password), (build_message), (http_get)
15893         (connection_login): Ask for & use a password if the share demands it.
15895         * daapsharing/rb-daap-connection.h: Changed prototype of
15896         rb_daap_connection_new.
15897         
15898         * daapsharing/rb-daap-mdns.c: 
15899         (resolve_cb): Better detection of your own music share so it doesn't 
15900         appear in the sourcelist.
15902         * daapsharing/rb-daap-share.c:
15903         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15904         that start on any available port.
15906         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15908         * sources/rb-daap-source.c:
15909         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15910         (browse_cb): Handle passworded shares. Resolve the host immediately
15911         instead of when activated.
15912         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15913         (rb_daap_source_new): New GConf keys for UI state.
15914         (rb_daap_source_activate): Use RBPlaylistSource instead of
15915         RBDAAPPlaylistSource
15916         
15917         * sources/rb-daap-playlist-source.c/h: Removed
15919         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15920         if the playlist is local (i.e. not DAAP or iPod).
15921         
15922         * shell/rb-playlist-manager.c:
15923         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15924         wouldn't get saved if the last playlist hadn't changed.  Only save
15925         local playlists.
15926         
15927 2005-09-09  James Livingston  <jrl@ids.org.au>
15929         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15930         iPod preferences pane, as it already uses the browser views as the
15931         library.
15933 2005-09-09  James Livingston  <jrl@ids.org.au>
15935         * sources/rb-library-source.c: (rb_library_source_finalize),
15936         (rb_library_source_constructor): fix gconf monitoring of library
15937         preference keys.
15938         * sources/rb-library-source.h: remove declaration of function that
15939         does not exist
15941 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15943         * player/rb-player-gst.c:
15944         (rb_player_set_time): Fix seeking in daap streams.
15946 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15948         * data/rhythmbox.schemas: Turn music share browsing on by default.
15950 2005-09-07  James Livingston  <jrl@ids.org.au>
15952         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15954 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15955         * player/rb-player-gst.c: 
15956         (rb_player_get_time): Fix for extra << & == that accidentally made
15957         it in.
15959         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15960         
15961 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15962         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15963         it in last time.  Sorry.
15965 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15966         
15967         * player/rb-player-gst.c:
15968         (rb_player_get_time): Fix a small crash appearing when
15969         the uri isn't set in the player, but rb_player_get_time() is
15970         still called.
15972         * configure.ac: Also check for libsoup 2.4, which is what ships with
15973         Gnome 2.12.
15975         * po/POTFILES.in: Added music sharing files that have translatable 
15976         strings.
15978         * README.daap: New file explaining "How Music Sharing Works"  
15980 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15982         * daapsharing/.cvsignore: added
15984 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15986         * daapsharing/*: Music sharing library.
15987         
15988         * sources/rb-daap-source.c/h: Music share RBSource.
15989         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15991         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15992         libsoup and a mutlicast DNS implementation (howl or avahi).
15994         * data/rhythmbox.schemas: New GConf keys for music sharing.
15996         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15997         source right click menu.
15999         * player/rb-player-gst.c: Changes to properly play & seek in remote
16000         music share files.
16002         * shell/rb-playlist-manager.c/h:
16003         (rb_playlist_manager_get_playlists): New function to get a GList * of
16004         the playlists.
16005         (rb_playlist_manager_save_playlists): Don't save music share playlists
16006         and fixed a GObject reference leak.
16008         * shell/rb-shell.c/h:
16009         (rb_shell_append_source): No longer a local function.  Now takes a
16010         parent RBSource * argument, NULL to append a toplevel source.
16011         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
16012         source (useful for disconnecting from remote music share,
16013         specifically).
16014         (rb_shell_quit): Stop music sharing/browsing.
16015         (rb_shell_playlist_added_cb): Work with tree source structure.
16016         (rb_shell_get_property): "playlist-manager" property accessor.
16017         (rb_shell_class_init): New "playlist-manager" property.
16018         (rb_shell_construor): Append sources as toplevel sources.  Initialize
16019         daap sharing/browsing.
16020         (rb_shell_select_source): Notify source of activation/deactivation.
16022         * shell/rb-shell-prefernces.c: Music sharing preferences.
16024         * sources/rb-source.c/h: New activate, deactivate and disconnect
16025         class functions.  Activate & deactivate are notification style 
16026         functions that will tell a source when it is selected/unselected.
16027         Disconnect can be hooked up to a UI object to disconnect the source.
16029         * sources/rb-sourcelist-model.c:
16030         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
16031         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
16032         append a toplevel source.
16034 2005-09-05  James Livingston  <jrl@ids.org.au>
16036         * rhythmdb/rhythmdb-query-model.c:
16037         (rhythmdb_query_model_entry_changed_cb),
16038         (rhythmdb_query_model_do_reorder): Update the query model's totals if
16039         the duration of filesize of an entry changes.  Emit the row-changed
16040         signals that I forgot to put back in, when I was doing query sorting.
16042         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
16043         out "0 minutes" or "0 bytes".
16045 2005-09-04  James Livingston  <jrl@ids.org.au>
16047         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
16048         remove a leftover bit of the "internal-name" property of sources.
16050 2005-09-03  James Livingston  <jrl@ids.org.au>
16052         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
16053         extraneous debug message
16054         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
16055         crasher would affect any library-derived sources (which was also a
16056         memory leak).
16058 2005-09-02  Colin Walters  <walters@verbum.org>
16060         * configure.ac: Fix sytnax error.
16062         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
16063         code to disable minimization icons - need to figure out
16064         why it doesn't work...
16066 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
16068         * data/glade/song-info-multiple.glade:
16069         * data/glade/song-info.glade:
16070         * widgets/rb-song-info.c: (rb_song_info_constructor):
16071         Add a mnemonic to the newly added "Automatically rate" label
16072         in the properties dialog and use a bold typeface like all the 
16073         other labels in the dialog. (Closes bug 315089)
16075 2005-09-03  James Livingston  <jrl@ids.org.au>
16077         * sources/rb-library-source.c: (rb_library_source_class_init),
16078         (rb_library_source_finalize), (rb_library_source_constructor),
16079         (rb_library_source_set_property), (rb_library_source_get_property),
16080         (impl_get_paned_key), (paned_size_allocate_cb),
16081         (rb_library_source_state_prefs_sync), (impl_show_popup),
16082         (rb_library_source_get_paned_key):
16083         * sources/rb-library-source.h: Allow sources derived from
16084         RBLibrarySource to use different gconf keys for sort order, browser
16085         visibility and browser pane position. Fix a crasher if a derived
16086         source overrides _get_pixbuf.
16088 2005-09-02  Colin Walters  <walters@verbum.org>
16090         * shell/rb-shell.c (rb_shell_set_visibility): Move
16091         hint setting which seems to avoid races more.
16092         
16093 2005-09-03  James Livingston  <jrl@ids.org.au>
16095         * shell/rb-shell.c: fix compilation with iPod support enabled
16096         
16097 2005-09-02  Colin Walters  <walters@verbum.org>
16099         * shell/rb-shell.c (struct RBShellPrivate): Add
16100         idle_hide_mainwindow_id.
16101         (rb_shell_constructor): Move taskbar skipping hint into
16102         rb_shell_set_visibility.
16103         (idle_hide_mainwindow): New function.
16104         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
16105         racy hack to avoid rb appearing in taskbar when minimized.
16107 2005-09-01  Colin Walters  <walters@verbum.org>
16109         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
16111         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
16112         from gtkstatusicion.c.
16114         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
16116         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
16117         TrayShowWindow entry.
16118         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
16119         (rb_tray_icon_constructor): Create action group here.
16120         (rb_tray_icon_finalize): Destroy action group.
16121         (rb_tray_icon_set_property): Don't take an action group.
16122         (rb_tray_icon_new): Ditto.
16123         (tray_popup_position_menu): Some mostly boilerplate code
16124         to position menu.
16125         (rb_tray_icon_button_press_event_cb): Position menu.
16126         (rb_tray_icon_get_geom): New function used for the shell
16127         to set minimization hints.
16129         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
16131         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
16132         (struct RBShellPrivate): Change visible to iconified.
16133         (set_icon_geometry): New function from Søren Sandmann to
16134         tell Metacity where to draw the minimization animiation.
16135         (rb_shell_window_state_cb): Update iconified.
16136         (rb_shell_get_visibility): New function to say whether
16137         or not we're currently visible.
16138         (rb_shell_set_visibility): Update to minimize to
16139         tray or present as appropriate.
16140         (rb_shell_window_delete_cb): On window close, just
16141         minimize to tray if we're deleted.
16142         (rb_shell_set_window_title): Kill old notification code.
16143         (rb_shell_toggle_visibility): Nwe function.
16144         (rb_shell_cmd_toggle_visibility): Call it.
16145         (rb_shell_constructor): Skip the taskbar.
16146         (tray_destroy_cb): Better debugging.
16147         
16148 2005-09-01  Colin Walters  <walters@verbum.org>
16150         * data/ui/rhythmbox-ui.xml: Add MusicClose.
16152         * configure.ac: Enable bonobo by default.
16153         
16154 2005-09-01  Colin Walters  <walters@verbum.org>
16156         * configure.ac: Default to old art.  Add macros subdir.
16158         * Makefile.am (SUBDIRS): Add macros.
16160         * macros/Makefile.am: New.
16161         
16162 2005-09-01  Colin Walters  <walters@verbum.org>
16164         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
16165         rb-shell-player.xml.
16167         * remote/dbus/rb-remote-dbus.h: Deleted.
16168         
16169         * remote/dbus/Makefile.am: Delete all the junk, just dist
16170         rb-print-playing.py and rb-set-rating.py.
16172         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
16174         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
16176 2005-09-02  James Livingston  <jrl@ids.org.au>
16178         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
16179         file from cvs
16181         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
16182         (rb_shell_constructor): Patches from Jonathan Matthew
16183         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
16184         a crash when using "browse this artist".
16186 2005-08-31  Colin Walters  <walters@verbum.org>
16188         * configure.ac: Add --with-old-art configure switch.  Also
16189         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
16190         but it doesn't work.
16192         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
16193         Don't use eel_create_colorized_pixbuf for new art.
16194         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
16196         * data/art-clearlooks: New artwork.
16197         
16198 2005-08-31  Colin Walters  <walters@verbum.org>
16200         * shell/main.c (main): Fix Bastien's commit to continue to focus
16201         the window with GTK+ 2.8 at least.
16202         
16203 2005-08-31  Colin Walters  <walters@verbum.org>
16205         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
16206         is already loaded.
16208         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
16210 2005-08-31  Bastien Nocera  <hadess@hadess.net>
16212         * README: remove mentions of the xine-lib backend
16213         * shell/main.c: (main): make it compilable with gtk+ < 2.8
16215 2005-08-30  Colin Walters  <walters@verbum.org>
16217         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
16218         Make non-visible sources insensitive.
16219         
16220 2005-08-30  Colin Walters  <walters@verbum.org>
16222         * shell/rb-shell.c: Don't use GConf for selected source; it's
16223         confusing to have the selected source change after startup,
16224         and since we don't save other things it's not worth saving this.
16226         * sources/rb-playlist-source.c:
16227         * sources/rb-library-source.c:
16228         * sources/rb-iradio-source.c:
16229         * sources/rb-ipod-source.c: Delete internal-name property usage.
16230         * sources/rb-source.c: Delete internal-name property.
16232         * data/rhythmbox.schemas: Delete selected_source.
16233         
16234 2005-08-30  Colin Walters  <walters@verbum.org>
16236         * sources/rb-sourcelist.c: Make playing source bold instead of
16237         displaying a pixbuf; it's much less ugly.
16238         
16239 2005-08-30  Colin Walters  <walters@verbum.org>
16241         * sources/rb-source.c:
16242         * sources/rb-source.h: New virtual method try_playlist.
16244         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
16245         impl_try_playlist.
16246         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
16247         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
16248         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
16249         need to.
16250         (stations_view_drag_data_received_cb): Don't check for iradio uris;
16251         in theory we should though...
16253         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
16254         list in rb_shell_construct now.
16255         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
16256         RBiPodSource.
16257         (rb_shell_constructor): Create library, iradio, ipod here.
16258         (rb_shell_source_deleted_cb): Use source directly instead of
16259         indirecting through type.
16260         (rb_shell_sync_selected_source): Ditto.
16261         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
16262         from the type instead of special-casing.
16263         (rb_shell_guess_type_for_uri) 
16264         (rb_shell_add_uri)
16265         (handle_one_uri_with_possible_metadata): New functions.
16266         (rb_shell_load_uri): Refactor to allow loading playlists again,
16267         also use other URI infrastructure.
16269         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
16270         (rb_shell_player_error): Always set entry error on error, instead
16271         of depending on EOF behavior.
16273         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
16274         to just invoke rb_shell_add_uri.
16275         (rb_playlist_manager_parse_file): Return error instead of tossing
16276         up dialog box directly.
16277         (load_playlist_response_cb): Display error here.
16278         (add_uri_to_playlist): Delete.
16279         (handle_playlist_entry_into_playlist_cb): Renamed to
16280         handle_playlist_entry_cb.
16282         * shell/rb-playlist-manager.h: Add error, update prototype.
16284         * lib/rb-file-helpers.c:
16285         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16287 2005-08-29  Colin Walters  <walters@verbum.org>
16289         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16290         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16292         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16293         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16294         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16296         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16297         Prototype rb_shell_set_song_property.
16299         * shell/rb-shell.xml: Export setSongProperty.
16301         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16302         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16303         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16305         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16306         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16307         want to notify of the change.
16308         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16310         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16311         logic error; idle functions would be enqueued for each set.
16312         (rhythmdb_entry_set): Fix assertion logic error.
16314         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16315         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16316         Return if the entry already exists.
16317         
16318 2005-08-29  Colin Walters  <walters@verbum.org>
16320         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16321         "inserted" member which we use to keep track of
16322         whether or not an entry is in the DB.  Prototype
16323         rhythmdb_entry_set_uninserted.
16325         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16326         flag.
16327         (rhythmdb_entry_insert): Assert entry is not already inserted.
16328         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16329         just after creating entry.
16330         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16331         (rhythmdb_entry_set_nonotify): Ditto.
16332         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16333         entries.
16334         (rhythmdb_entry_set_internal): Change notify flag to
16335         notify_if_inserted.  Also move notification after assertions.
16337         Update all existing callers of rhythmdb_entry_set_internal
16338         to give TRUE for notify_if_inserted; this should be what
16339         we want but may be an efficiency hit.
16340         
16341 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16343         * shell/rb-shell-player.c: (rb_shell_player_init),
16344         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16345         (rb_shell_player_set_playing_source_internal),
16346         (rb_shell_player_sync_with_selected_source): Notify the player when an
16347         entry has updated the title, album or artist field, and resync the big
16348         display.
16349         
16350         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16351         * sources/rb-library-source.c: (rb_library_source_class_init),
16352         (impl_get_config_widget):
16353         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16354         * sources/rb-source.c:
16355         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16356         get_album functions in rb-source and adapted other sources accordingly.
16357         
16358 2005-08-29  Colin Walters  <walters@verbum.org>
16360         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16361         signal_change member.
16362         (threadsafe_entry_set): New function.
16363         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16364         (rhythmdb_entry_set_nonotify): New function; just call
16365         threadsafe_entry_set with FALSE.
16366         (rhythmdb_entry_set_internal): Take a notify flag; if true
16367         add the change to our pending set.
16369         Also update all internal callers of rhythmdb_entry_set_internal
16370         to pass FALSE.  Some of these may be bugs however and need to
16371         pass TRUE...
16373         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16374         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16375         rhythmdb_entry_set_nonotify.
16377         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16378         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16380         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16382         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16383         * sources/rb-source.c (rb_source_update_play_statistics): 
16384         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16385         * sources/rb-ipod-source.c (entry_set_string_prop) 
16386         (load_ipod_db_idle_cb): 
16387         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16388         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16389         (info_available_cb): 
16390         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16391         (rb_station_properties_dialog_sync_entries): 
16392         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16394         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16395         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16396         
16397 2005-08-29  Colin Walters  <walters@verbum.org>
16399         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16401         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16402         linking insanity.
16404         * widgets/rb-header.c (sanitize_string): New function, extracted
16405         from old info_url.  Be sure to always strip the string.
16406         (info_url): Rewrite to take artist/album, and generate a sane
16407         URL for them from last.fm, which is better than allmusic.com in
16408         that they support Rhythmbox, and have a *SANE* URL scheme.
16409         (artist_info_url, album_info_url): Delete.
16410         (rb_header_sync): Use info_url.
16412 2005-08-29  James Livingston  <jrl@ids.org.au>
16414         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16415         is implemented before calling it. Many sources don't implement the
16416         method.
16418 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16420         * data/glade/create-playlist.glade:  Cleanup the layout,
16421         and add a few more mnemonics.
16422         * shell/rb-playlist-manager.c:
16423         (rb_playlist_manager_cmd_load_playlist),
16424         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16425         capitalization for window titles.
16426         * widgets/rb-query-creator-properties.c: Add mnemonics
16427         to checkbutton labels.
16428         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16429         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16431 2005-08-28  Colin Walters  <walters@verbum.org>
16433         * data/rhythmbox.schemas: Delete search_text for library
16434         and iradio; this isn't a persistent value anymore.
16435         Closes #313757.
16436         
16437         * sources/rb-source.h:
16438         * sources/rb-source.c: Delete impl_can_search.
16440         * sources/rb-iradio-source.c: Delete search_text usage.
16441         * sources/rb-library-source.c: Ditto.
16443         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16444         search when source is set, and just do rb_source_search in
16445         rb_source_header_search_cb.
16447         * shell/rb-shell.c (rb_shell_append_source): Don't
16448         initiate search.
16450         * shell/Makefile.am: Don't dist dashboard.c.
16452 2005-08-28  Colin Walters  <walters@verbum.org>
16454         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16455         
16456 2005-08-28  Colin Walters  <walters@verbum.org>
16458         * data/org.gnome.Rhythmbox.service.in: New.
16460         * data/Makefile.am: Install service file.
16462         * configure.ac: Define DBUS_SERVICES_DIR.
16464         * autogen.sh: Set ACLOCAL_FLAGS.
16466         * macros/acinclude.m4: New.
16467         
16468 2005-08-28  Colin Walters  <walters@verbum.org>
16470         Initial patch from Jonathan Matthew; closes 313684.
16472         * rhythmdb/rhythmdb-tree.c:
16473         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16474         (save_entry): Return on error.
16475         (rhythmdb_tree_save): Handle error when saving the
16476         db; additionally, handle errors from fclose and unlink,
16477         and print error too.
16479 2005-08-28  Colin Walters  <walters@verbum.org>
16481         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16482         extra _.
16483         
16484 2005-08-28  Colin Walters  <walters@verbum.org>
16486         * configure.ac: Change iPod support to --with-ipod;
16487           automatically enable it if we have HAL.  Try to
16488           support both HAL 0.5 and HAL 0.2.  Break out
16489           totem-plparser into its own check so later we
16490           can do version tests there too.
16491           Kill dashboard support.
16492         
16493         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16494         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16495         Closes #310017.
16496         
16497         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16498         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16500         * sources/Makefile.am: Also handle
16501         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16503         * shell/dashboard.c: Delete; someone should just write a little
16504         python shim which lists on the D-BUS interface and writes the
16505         stuff to Dashboard.  Even better Dashboard should be ported
16506         to D-BUS and do the listening itself, perhaps on an abstract
16507         "org.gnome.MusicPlayer" interface or something.
16509         * shell/rb-shell.c: Kill dashboard support.
16511 2005-08-28  Colin Walters  <walters@verbum.org>
16513         * remote/dbus/rb-print-playing.py: New file.
16515 2005-08-28  Colin Walters  <walters@verbum.org>
16517         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16518         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16520         * shell/rb-shell-player.h:
16521         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16522         * shell/rb-shell-player.xml: Export it.
16524         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16525         (rb_shell_error_quark): New.
16527         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16528         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16529         
16530 2005-08-28  Colin Walters  <walters@verbum.org>
16532         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16533         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16534         bonobo_unlock.
16535         (rb_remote_bonobo_preinit): Lock setting moved here.
16536         (rb_remote_bonobo_init): From here.
16538         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16539         Also invoke handle_cmdline in the right place.
16540         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16541         GFunc.
16543 2005-08-28  James Livingston  <jrl@ids.org.au>
16545         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16546         when 0.9.1 comes around.
16548 2005-08-28  James Livingston  <jrl@ids.org.au>
16550         * iradio/rb-new-station-dialog.c:
16551         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16552         bug 314477.
16554 2005-08-28  James Livingston  <jrl@ids.org.au>
16556         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16558         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16559         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16560         is a song is longer than 60 minutes. Closes bug 313311.
16562 2005-08-27  James Livingston  <jrl@ids.org.au>
16564         * data/glade/create-playlist.glade:
16565         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16566         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16567         "minutes" as an option in the playlist limit menu.
16569         * rhythmdb/rhythmdb-query-model.c:
16570         (rhythmdb_query_model_class_init),
16571         (rhythmdb_query_model_set_property),
16572         (rhythmdb_query_model_get_property),
16573         (rhythmdb_query_model_update_limited_entries): Allow query models to
16574         have a time limit
16575         
16576         * shell/rb-playlist-manager.c:
16577         (rb_playlist_manager_set_automatic_playlist),
16578         (rb_playlist_manager_cmd_edit_automatic_playlist):
16579         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16580         (rb_playlist_source_get_query), (impl_receive_drag),
16581         (rb_playlist_source_new_from_xml),
16582         (rb_playlist_source_save_to_xml),
16583         (rb_playlist_source_songs_sort_order_changed_cb),
16584         (rb_playlist_source_do_query):
16585         * sources/rb-playlist-source.h:
16586         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16588 2005-08-27  James Livingston  <jrl@ids.org.au>
16590         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16592         * configure.ac:
16593         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16594         non-standard location. Closes bug 314640.
16596 2005-08-26  Colin Walters  <walters@verbum.org>
16597         
16598         Patch from Olivier Blin <oblin@mandriva.com>
16600         * widgets/eggnotificationbubble.c (draw_bubble): 
16601         Handle extreme-left case as well.
16602         
16603 2005-08-26  Colin Walters  <walters@verbum.org>
16605         * shell/rb-shell.c (idle_save_state): Don't do this.
16606         (rb_shell_construct): Remove idle calls to idle_save_state.
16607         We should save the playlists automatically when they're
16608         modified.
16609         (rb_shell_load_uri): Don't try to re-stat entry if it already
16610         exists.
16612         * shell/rb-shell-player.c: Keep track of entry we are attempting
16613         to play.
16614         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16615         Don't double-free error.
16616         (rb_shell_player_play_entry): Signal errors.
16617         (rb_shell_player_entry_activated_cb): Ditto.
16618         (rb_shell_player_property_row_activated_cb): Ditto.
16619         (rb_shell_player_set_playing_source_internal): Unset attempted
16620         playing entry.
16621         (rb_shell_player_error): Refactor to be usable both sync and
16622         async.  Handle case where displayed entry differs from entry.
16623         (error_cb): Move GDK locking here.
16625         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16626         people can just use dbus-send or python.  We only support focusing
16627         and loading files.
16628         (load_uri_args): New function, extracted from handle_cmdline.
16629         (dbus_load_uri, bonobo_load_uri): New functions.
16631         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16632         appropriate.
16634         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16635         * remote/dbus/rb-remote-dbus.c: Deleted.
16637         * player/rb-player-gst.c: Clear any pending idle handlers when we
16638         close the player.  Signal errors generated during open/play etc
16639         as synchronous errors.
16641         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16642         
16643 2005-08-26  Colin Walters  <walters@verbum.org>
16645         * shell/rb-shell.c (rb_shell_present): Try harder.
16647 2005-08-26  Colin Walters  <walters@verbum.org>
16649         * shell/rb-shell.c (rb_shell_present): Try to handle
16650         GTK_MINOR_VERSION < 8.
16652 2005-08-26  James Livingston  <jrl@ids.org.au>
16654         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16655         <pbrobinson@gmail.com>
16657 2005-08-26  Colin Walters  <walters@verbum.org>
16659         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16661 2005-08-25  Colin Walters  <walters@verbum.org>
16663         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16664         Delete.
16665         (rb_shell_player_do_next_with_rating): Move back into
16666         rb_shell_player_do_next.
16667         (rb_shell_player_entry_activated_cb): Remove call to
16668         rb_shell_player_auto_adjust_rating.
16669         (do_next_idle): Just call rb_shell_player_do_next.
16671         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16673 2005-08-25  Colin Walters  <walters@verbum.org>
16675         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16676         before gtk_window_present_with_time.
16677         
16678 2005-08-25  Colin Walters  <walters@verbum.org>
16680         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16681         default.
16683         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16684         rb_shell_construct.  This is so we only have to do g_object_new.
16685         (rb_shell_get_player): New function.
16686         (rb_shell_get_player_path): Ditto.
16687         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16688         
16689         * shell/rb-shell.h: Prototype them.
16691         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16692         export over D-BUS.
16693         (reemit_playing_signal): New function.
16694         (rb_shell_player_open_playlist_location): Use return values from
16695         rb_player_open, rb_player_close, etc. instead of checking "error".
16696         Return a gboolean on failure.
16697         (rb_shell_player_open_entry): Just open entry location, don't
16698         print to stderr.
16699         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16700         a gboolean.
16701         (do_next_idle): Move logic for handling of end of playlist here.
16702         (rb_shell_player_set_playing_entry): Take a GError, return a
16703         gboolean.  Update to use gboolean return values.
16704         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16705         logic.  Signal an error on end of playlist.  Also signal error if
16706         we're not playing.  Move heuristic for replaying the song into
16707         rb_shell_player_cmd_previous.
16708         (rb_shell_player_do_next_with_rating): Signal error on end of
16709         playlist.
16710         (rb_shell_player_do_next): Return errors.
16711         (rb_shell_player_cmd_previous): Heuristic for restarting song
16712         moved here; the idea is you generally only want that from the GUI.
16713         (rb_shell_player_cmd_play): Handle error.
16714         (rb_shell_player_playpause): Signal errors.
16715         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16716         rb_shell_player_cmd_next in favor of the internal _do functions.
16717         
16718         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16719         errors.  Update prototypes for above changes.
16721         * shell/main.c: More tightly integrate D-BUS; register various
16722         major singleton objects here.  Fix handle_cmdline so we only
16723         process extra arguments, not every argument.
16725         * shell/Makefile.am: Generate D-BUS glue headers.
16727         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16728         into shell/main.c.  Now this file just acts as a client library.
16729         Not heavily tested.
16731         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16732         Moved here.
16733         (rb_remote_bonobo_init): Move long CORBA rant here along with
16734         setting of lock functions.
16736         * player/rb-player-gst.c (rb_player_construct)
16737         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16738         on error.
16740         * player/rb-player.h: Update prototypes.
16742         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16743         rb-remote-bonobo.c.
16744         (rb_threads_init): Don't set gdk lock functions here.
16746 2005-08-25  James Livingston  <jrl@ids.org.au>
16748         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16750         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16751         * lib/rb-tree-dnd.h:
16752         * rhythmdb/rhythmdb-property-model.c:
16753         (rhythmdb_property_model_class_init),
16754         (rhythmdb_property_model_drag_source_init),
16755         (rhythmdb_property_model_iter_parent),
16756         (rhythmdb_property_model_row_draggable),
16757         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16758         (rhythmdb_property_model_drag_data_get),
16759         (rhythmdb_property_model_enable_drag):
16760         * rhythmdb/rhythmdb-property-model.h:
16761         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16762         (rb_playlist_manager_set_property), (append_new_playlist_source),
16763         (rb_playlist_manager_save_playlists):
16764         * shell/rb-shell.c: (rb_shell_construct),
16765         (sourcelist_drag_received_cb):
16766         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16767         * sources/rb-playlist-source.c: (impl_receive_drag):
16768         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16769         (rb_sourcelist_model_drag_dest_init),
16770         (rb_sourcelist_model_set_dnd_targets),
16771         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16772         (rb_sourcelist_model_row_drop_position),
16773         (rb_sourcelist_model_get_drag_target),
16774         (rb_sourcelist_model_drag_data_get):
16775         * sources/rb-sourcelist-model.h:
16776         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16777         (rb_sourcelist_init), (rb_sourcelist_get_property),
16778         (rb_sourcelist_selection_changed_cb):
16779         * sources/rb-sourcelist.h:
16780         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16781         improve drag-n-drop support. Allow dragging of item from property
16782         views to the source list, to create new automatic playlists. Allow
16783         playlist re-ordering. Fix dragging from Rhythmbox to other
16784         applications. (Closes bug 147337)
16786 2005-08-24  Colin Walters  <walters@verbum.org>
16788         Patch from Olivier Blin <oblin@mandriva.com>
16790         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16791         correctly in the case where the window is next to monitor edge.
16793 2005-08-24  James Livingston  <jrl@ids.org.au>
16795         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16796         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16797         a gobject property to get the query model that backs the playlist.
16799 2005-08-24  James Livingston  <jrl@ids.org.au>
16801         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16802         (handle_playlist_entry_into_playlist_cb),
16803         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16804         audio cd" menu item when a non-playlist source is selected, or the
16805         playlist is empty. (Closes Bug 313253)
16807 2005-08-24  James Livingston  <jrl@ids.org.au>
16809         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16810         Fix the playlist length checkso it doesn't report 0 for automatic
16811         playlists. This was stopping automati playlists being burnt to cd.
16813 2005-08-24  James Livingston  <jrl@ids.org.au>
16815         * configure.ac:
16816         * sources/rb-playlist-source-recorder.c: (burn_cd):
16817         * sources/rb-playlist-source.c:
16818         (rb_playlist_source_songs_sort_order_changed_cb):
16819         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16820         more warnings that occur when compiling RPMs on Fedora.
16822 2005-08-24  James Livingston  <jrl@ids.org.au>
16824         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16825         was stopping some distros gcc version compiling.
16827 2005-08-24  James Livingston  <jrl@ids.org.au>
16829         * NEWS:
16830         * data/glade/create-playlist.glade:
16831         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16832         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16833         (rhythmdb_query_free), (rhythmdb_query_serialize),
16834         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16835         * rhythmdb/rhythmdb.h:
16836         * shell/rb-playlist-manager.c:
16837         (rb_playlist_manager_set_automatic_playlist),
16838         (rb_playlist_manager_cmd_edit_automatic_playlist):
16839         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16840         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16841         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16842         (rb_playlist_source_save_to_xml),
16843         (rb_playlist_source_songs_sort_order_changed_cb),
16844         (rb_playlist_source_do_query):
16845         * sources/rb-playlist-source.h:
16846         * widgets/Makefile.am:
16847         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16848         (rb_entry_view_set_sorting_order):
16849         * widgets/rb-query-creator-private.h:
16850         * widgets/rb-query-creator-properties.c:
16851         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16852         (stringCriteriaGetWidgetData),
16853         (escapedStringCriteriaSetWidgetData),
16854         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16855         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16856         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16857         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16858         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16859         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16860         (relativeTimeCriteriaCreateWidget),
16861         (relativeTimeCriteriaSetWidgetData),
16862         (relativeTimeCriteriaGetWidgetData):
16863         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16864         (rb_query_creator_class_init), (rb_query_creator_constructor),
16865         (rb_query_creator_dispose), (rb_query_creator_set_property),
16866         (rb_query_creator_get_property), (rb_query_creator_load_query),
16867         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16868         (get_entry_for_property), (rb_query_creator_get_query),
16869         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16870         (limit_toggled_cb), (lookup_row_by_widget),
16871         (remove_button_click_cb), (append_row),
16872         (get_property_index_from_proptype), (select_criteria_from_value),
16873         (property_option_menu_changed), (create_property_option_menu),
16874         (create_criteria_option_menu), (sort_option_menu_changed),
16875         (setup_sort_option_menu):
16876         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16877         playlists. The two most notable improvements are 1) adding more
16878         properties to the query creator, making it much easier to add more in
16879         the future, and 2) allow playlists to be sorted, from the query editor
16880         if they gave limits, and by clicking on column headers if they don't.
16882         Files added: widgets/rb-query-creator-private.h,
16883         sources/rb-query-creator-properties.c
16885 2005-08-21  James Livingston  <jrl@ids.org.au>
16887         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16888         error=NULL. This stops some crashes.
16890 2005-08-19  Colin Walters  <walters@verbum.org>
16892         Patch from Olivier Blin <oblin@mandriva.com>
16894         * widgets/eggnotificationbubble.c (force_window): Support top
16895         orientation.
16896         * widgets/eggnotificationbubble.h: Remove
16897         egg_notification_bubble_force_window from header.
16898         
16899 2005-08-18  James Livingston  <jrl@ids.org.au>
16901         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16902         with the changes since then.
16904 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16906         * shell/rb-shell-player.c: (rb_shell_player_init),
16907         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16908         (rb_shell_player_volume_widget_changed_cb):
16909         * sources/rb-iradio-source.c:
16910         * sources/rb-library-source.c:
16911         * sources/rb-playlist-source.c:
16912         * widgets/Makefile.am:
16913         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16914         (bacon_volume_button_class_init), (bacon_volume_button_init),
16915         (bacon_volume_button_dispose), (bacon_volume_button_new),
16916         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16917         (bacon_volume_button_scroll), (bacon_volume_button_press),
16918         (cb_button_timeout), (cb_button_press), (cb_button_release),
16919         (bacon_volume_release_grab), (cb_dock_press),
16920         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16921         (bacon_volume_scale_new), (bacon_volume_scale_press),
16922         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16923         * widgets/bacon-volume.h:
16924         * widgets/rb-volume.c:
16925         * widgets/rb-volume.h:
16926           Use BaconVolumeButton (#300867).
16928 2005-08-17  James Livingston  <jrl@ids.org.au>
16930         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16931         (rhythmdb_process_metadata_load): don't reset the First Seen time
16932         whenever we recheck the metadata.
16934 2005-08-17  James Livingston  <jrl@ids.org.au>
16936         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16937         temporary workaround to stop crashes when trying to burn an empty
16938         playlist. Doesn't disable the menu item which is the better solution
16939         (Bug 313253).
16941 2005-08-15  James Livingston  <jrl@ids.org.au>
16943         * shell/rb-source-header.c: (rb_source_header_init),
16944         (rb_source_header_sync_control_state),
16945         (rb_source_header_search_activate_cb):
16946         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16947         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16948         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16949         (rb_search_entry_init), (rb_search_entry_searching),
16950         (rb_search_entry_activate_cb):
16951         * widgets/rb-search-entry.h: Move focus to the entry view when user
16952         presses enter in the search box. Patch from Paolo Borelli
16953         <pborelli@katamail.com> (Closes bug 128110)
16955 2005-08-15  James Livingston  <jrl@ids.org.au>
16957         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16958         (rb_playlist_manager_new_playlist):
16959         * shell/rb-playlist-manager.h:
16960         * shell/rb-shell.c: (rb_shell_construct),
16961         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16962         the source list to be shown when a new playlist is created. (Closes
16963         bug 161935)
16965 2005-08-15  James Livingston  <jrl@ids.org.au>
16967         * widgets/rb-header.c: (rb_header_init),
16968         (rb_header_set_show_timeline): disable the seek slider, rather than
16969         hiding it, which more closely follows the HIG. (Closes bug 139102)
16971 2005-08-13  Colin Walters  <walters@verbum.org>
16973         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16974         rb_shell_hidden_notify.
16975         (rb_shell_hidden_notify): Notify if the shell is hidden.
16976         (rb_shell_set_visibility_impl): Debug goo.
16978         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16980         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16981         when the user clicks on notification.
16983         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16984         CD burn is complete.
16985         (rb_playlist_source_recorder_finalize): Unref shell.
16986         (rb_playlist_source_recorder_new): Take shell.
16988         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16989         Pass shell to RBPlaylistSourceRecorder.
16990         
16991 2005-08-13  Colin Walters  <walters@verbum.org>
16993         * lib/rb-thread.c:
16994         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16995           time to convert.
16997 2005-08-13  Colin Walters  <walters@verbum.org>
16999         * widgets/eggnotificationbubble.h:
17000         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
17001         * widgets/eggtrayicon.c:
17002         * widgets/eggtrayicon.h: Add notification API.
17003         * shell/rb-tray-icon.c:
17004         * shell/rb-tray-icon.h: Add notification API.
17005         * shell/rb-shell.c: Notify on song change.
17007 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
17009         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
17010         Correct an inversion of two lines causing NULL to be unreffed
17012 ============ Version 0.9.0
17014 2005-08-10  Bastien Nocera  <hadess@hadess.net>
17016         * configure.ac: 0.9.0, whee!
17017         * NEWS: badly updated
17018         * remote/bonobo/Makefile.am:
17019         * remote/bonobo/rb-remote-bonobo.h:
17020         * shell/Makefile.am:
17021         * shell/main.c: make distcheck fixes