2006-12-12 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobe708badd1b0b85dc1aa20f799f8a7a83d3c571cc
1 2006-12-12  James Livingston  <doclivingston@gmail.com>
3         * sources/rb-ipod-source.c: (rb_ipod_load_songs): hopefully fix
4         some corrupt-ipod-db issues. from #358855
6 2006-12-12  James Livingston  <doclivingston@gmail.com>
8         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal): don't
9         try to re-sort the model if it's NULL. Fixes #367646
11 2006-12-12  James Livingston  <doclivingston@gmail.com>
13         * data/rhythmbox.schemas:
14         * lib/rb-util.c: (_threads_enter), (_threads_leave),
15         (rb_threads_init):
16         * plugins/magnatune/magnatune-prefs.glade:
17         * plugins/magnatune/magnatune-purchase.glade:
18         * plugins/magnatune/magnatune/MagnatuneSource.py:
19         * plugins/magnatune/magnatune/__init__.py: add code to use
20         Gnome-Keyring to store the user's credit card details, but force it to
21         be disabled (due to bugs). From #377354
23 2006-12-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
25         * rhythmdb/rhythmdb-query-model.c:
26         (rhythmdb_query_model_remove_from_main_list):
27         Re-find the sequence node pointer after emitting the row-deleted
28         signal, as signal handlers may cause it to change.  Fixes #370443.
30 2006-12-11  James Livingston  <doclivingston@gmail.com>
32         * sources/rb-daap-source.c: (connection_auth_cb): fix a code path
33         trying to free an unset pointer. Fixes #384208
35 2006-12-11  James Livingston  <doclivingston@gmail.com>
37         * sources/rb-library-source.c: (build_filename): deal with URIs that
38         don't have a period in them. Fixes #384016
40 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
42         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
43         Use G_GINT64_FORMAT instead of %lld.
45 2006-12-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
47         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
48         (rb_encoder_gst_encode):
49         When copying rather than transcoding, do position queries in byte
50         format rather than time.
52         * sources/rb-ipod-source.c: (impl_receive_drag):
53         * sources/rb-library-source.c: (impl_receive_drag):
54         Handle application/x-rhythmbox-entry drops.  Fixes drag and drop from
55         daap shares to library.
57 2006-12-10  James Livingston  <doclivingston@gmail.com>
59         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post): add
60         posts that are missing their date tag.
62 2006-12-09  James Livingston  <doclivingston@gmail.com>
64         * shell/rb-statusbar.c: (rb_statusbar_init): revert the patch from bug
65         #368757
67 2006-12-09  James Livingston  <doclivingston@gmail.com>
69         * configure.ac:
70         * data/rhythmbox.schemas:
71         * plugins/Makefile.am:
72         * plugins/magnatune/magnatune-prefs.glade:
73         * plugins/magnatune/magnatune-purchase.glade:
74         * plugins/magnatune/magnatune/MagnatuneSource.py:
75         * plugins/magnatune/magnatune/__init__.py: revert some stuff I
76         accidently comitted.
78 2006-12-09  James Livingston  <doclivingston@gmail.com>
80         * rhythmdb/rhythmdb-property-model.c:
81         (rhythmdb_property_model_finalize): fix a memory leak.
83 2006-12-09  James Livingston  <doclivingston@gmail.com>
85         * sources/rb-ipod-source.c: (rb_ipod_source_set_ipod_name): don't
86         crash if the iPod's name set to is NULL #358855
88 2006-12-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
90         * widgets/rb-property-view.c: (rb_property_view_class_init),
91         (rb_property_view_dispose), (rb_property_view_finalize):
92         Disconnect signal handlers in dispose, not finalize.  Fixes #374892.
94 2006-12-04  James Livingston  <doclivingston@gmail.com>
96         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
98         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_preprocess):
99         * widgets/rb-query-creator-properties.c:
100         (yearCriteriaSetWidgetData), (yearCriteriaGetWidgetData): stop some
101         critical warnings emitted if a YEAR=0 query was done. Fixes #381839
103 2006-12-03  James Livingston  <doclivingston@gmail.com>
105         * lib/rb-file-helpers.c: (_rb_uri_recurse_data_free),
106         (rb_uri_handle_recursively_cb), (rb_uri_handle_recursively),
107         (_recurse_async_idle_cb), (_recurse_async_data_free),
108         (_recurse_async_cb), (_recurse_async_func),
109         (rb_uri_handle_recursively_async):
110         * lib/rb-file-helpers.h:
111         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
112         (rb_plugins_engine_load_dir):
113         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
114         (rhythmdb_stop_monitoring), (monitor_entry_file),
115         (monitor_subdirectory), (monitor_library_directory),
116         (_monitor_entry_thread), (rhythmdb_start_monitoring),
117         (rhythmdb_monitor_uri_path):
118         * rhythmdb/rhythmdb.c:
119         * sources/rb-static-playlist-source.c:
120         (rb_static_playlist_source_add_location_cb),
121         (rb_static_playlist_source_add_location): add a utility function for
122         doing directory recusion asynchronously, and use it everywhere instead
123         of the old one. Removes one of our biggest do-IO-synchronously issues.
124         From #325215
126 2006-12-03  James Livingston  <doclivingston@gmail.com>
128         * plugins/audioscrobbler/Makefile.am:
129         * plugins/audioscrobbler/audioscrobbler-ui.xml:
130         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
131         (impl_activate), (impl_deactivate):
132         * plugins/audioscrobbler/rb-lastfm-source.c:
133         (rb_lastfm_source_class_init), (rb_lastfm_source_constructor),
134         (impl_activate), (impl_show_popup), (show_entry_popup): add a context
135         menu to the last.fm source, and allow deletion of stations.
137 2006-12-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
139         * plugins/rb-plugin-manager.c: (plugin_manager_populate_lists):
140         gtk_tree_view_get_model doesn't ref the model, so don't unref it
141         when we're done with it.
143 2006-12-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
145         * rhythmdb/rhythmdb.c:
146         (rhythmdb_execute_load), (rhythmdb_add_uri_with_type):
147         Handle rb_uri_resolve_symlink returning NULL, as it does when it
148         encounters a symlink loop.  Create import errors for such URIs.
149         Fixes #380826.
151 2006-11-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
153         patch started by:  James Livingston  <doclivingston@gmail.com>
155         * podcast/rb-podcast-manager.c: (*)
156         * podcast/rb-podcast-manager.h:
157         * sources/rb-podcast-source.c: (rb_podcast_source_set_property),
158         (rb_podcast_source_cmd_cancel_download),
159         (rb_podcast_source_load_finish_cb),
160         (rb_podcast_source_feed_updates_available_cb),
161         (rb_podcast_source_shutdown), (rb_podcast_source_cmd_new_podcast):
162         Remove mutexes and async queues from the podcast manager; just do
163         everything on the main thread and use idle handlers to marshal things
164         across to it.  Should fix crashes on FreeBSD, various other weird
165         stuff, and bug 337332.
167 2006-11-29  James Livingston  <doclivingston@gmail.com>
169         patch from: Glynn Foster <glynn.foster@sun.com>
171         * metadata/sj-metadata-musicbrainz.c:
172         (sj_metadata_musicbrainz_instance_init): fix a typo in the proxy
173         settings.
175 2006-11-29  James Livingston  <doclivingston@gmail.com>
177         patch by: Thomas Thurman  <thomas@thurman.org.uk>
179         * data/glade/song-info-multiple.glade:
180         * data/glade/song-info.glade:
181         * data/glade/station-properties.glade: Make the return key close these
182         dialogs. Fixes #379148
184 2006-11-29  James Livingston  <doclivingston@gmail.com>
186         patch by: Ingo Planz  <planz@mi-fu-berlin.de>
188         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Make the
189         podcast plugin set unknown dates to the current time, not the start of
190         the epoch. Fixes #367572.
192 2006-11-29  James Livingston  <doclivingston@gmail.com>
194         * lib/rb-tree-dnd.c: (rb_tree_drag_source_row_draggable),
195         (rb_tree_drag_source_drag_data_delete),
196         (rb_tree_drag_source_drag_data_get),
197         (rb_tree_drag_dest_drag_data_received),
198         (rb_tree_drag_dest_row_drop_possible),
199         (rb_tree_drag_dest_row_drop_position), (rb_tree_dnd_drag_drop_cb):
200         * lib/rb-tree-dnd.h:
201         * rhythmdb/rhythmdb-property-model.c:
202         (rhythmdb_property_model_drag_source_init):
203         * rhythmdb/rhythmdb-query-model.c:
204         (rhythmdb_query_model_drag_source_init),
205         (rhythmdb_query_model_drag_dest_init):
206         * sources/rb-sourcelist-model.c:
207         (rb_sourcelist_model_drag_dest_init),
208         (rb_sourcelist_model_drag_source_init): don't use the same method
209         names as the GtkTreeDnd ones, since it break bindings to other
210         languages.
212         * shell/rb-shell.c: (_scan_idle), (rb_shell_constructor): run the
213         removable media scan in an idle callback.
215 2006-11-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
217         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct):
218         Use the right variable name when setting the "profile" property on the
219         sink.  Fixes #379532 and closes #379314 again.
221 2006-11-27  James Livingston  <doclivingston@gmail.com>
223         patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
225         * plugins/magnatune/magnatune/MagnatuneSource.py: fix a race condition
226         in the Magnatune plugin, from #373684.
228 2006-11-26  James Livingston  <doclivingston@gmail.com>
230         patch from Alex Jones  <alex@weej.com>
232         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct): set
233         the "profile" on the audio sink, if it's present. Fixes #379314.
235 2006-11-23  James Livingston  <doclivingston@gmail.com>
237         * bindings/python/rhythmdb.defs:
238         * bindings/python/rhythmdb.override: fix some binding stuff.
240 2006-11-23  James Livingston  <doclivingston@gmail.com>
242         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
244         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
245         details from debug output. Fixes #378355.
247 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
249         * shell/rb-shell-player.c: (rb_shell_player_play):
250         Don't crash if current_playing_source is NULL.  Fixes #378195.
251         
252         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
253         rb_shell_player_play isn't very useful, use _playpause if not
254         already playing instead.
256 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
258         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
259         (rhythmdb_property_model_drag_data_get):
260         * rhythmdb/rhythmdb-query-model.c:
261         (rhythmdb_query_model_drag_data_get),
262         (rhythmdb_query_model_drag_data_received):
263         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
264         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
265         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
266         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
267         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
268         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
269         (rhythmdb_tree_entry_count_by_type):
270         * rhythmdb/rhythmdb.c:
271         * rhythmdb/rhythmdb.h:
272         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
273         (rb_daap_share_set_property), (rb_daap_share_get_property),
274         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
275         (send_mapped_file), (databases_cb), (db_entry_added_cb),
276         (db_entry_deleted_cb), (rb_daap_share_server_start),
277         (rb_daap_share_server_stop):
278         * daapsharing/rb-daap-share.h:
279         * daapsharing/rb-daap-sharing.c: (create_share):
280         Move id-to-entry map from daap share into rhythmdb.
282         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
283         (rb_playlist_manager_new_playlist_from_selection_data):
284         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
285         * sources/rb-browser-source.c: (rb_browser_source_constructor):
286         * sources/rb-sourcelist-model.c:
287         (rb_sourcelist_model_drag_data_received),
288         (rb_sourcelist_model_row_drop_position),
289         (rb_sourcelist_model_get_drag_target),
290         (rb_sourcelist_model_drag_data_get):
291         * sources/rb-static-playlist-source.c: (impl_receive_drag),
292         (rb_static_playlist_source_add_id_list),
293         (rb_static_playlist_source_add_uri_list):
294         * widgets/rb-entry-view.c:
295         * widgets/rb-property-view.c:
296         Add a new drag-and-drop type: application/x-rhythmbox-entry
297         containing a list of entry IDs, and use it for DnD within the
298         application.  Avoids having to pick a URI to use for an entry, so we
299         can make DnD of podcast entries (and anything else where playback URI
300         is not the same as the entry location) work as expected.
301         Fixes #343537.
303 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
305         * shell/rb-shell.c: (rb_shell_present):
306         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
308 2006-11-20  James Livingston  <doclivingston@gmail.com>
310         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
311         find the responsible source. Fixes #377029
313 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
315         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
316         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
317         * lib/rb-file-helpers.h:
318         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
319         Implement rb_uri_get_short_path_name to replace
320         gnome_vfs_uri_extract_short_path name with something that doesn't
321         reject unknown URI schemes such as daap://.  Fixes #361077.
323         * tests/Makefile.am:
324         * tests/test-file-helpers.c: (test_get_short_path_name),
325         (START_TEST), (rb_file_helpers_suite), (main):
326         Add tests for the above.
328 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
330         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
331         (bacon_volume_button_new), (bacon_volume_button_style_set),
332         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
333         (bacon_volume_scale_value_changed),
334         (bacon_volume_button_load_icons):
335         * widgets/bacon-volume.h:
336         Update bacon-volume from libbacon CVS again.
338 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
340         * widgets/bacon-volume.c: (bacon_volume_load_icons):
341         Fall back to old icon names if the icon naming spec compliant
342         names don't work.  From #369491.
344 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
346         * plugins/audiocd/Makefile.am:
347         Stop automake complaining about duplicate definitions.
349 2006-11-17  James Livingston  <doclivingston@gmail.com>
351         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
352         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
353         when disposing of the source. Fixes #376155
355         * plugins/daap/Makefile.am: fix some distcheck brokenness.
357 2006-11-17  James Livingston  <doclivingston@gmail.com>
359         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
361 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
363         * shell/rb-playlist-manager.c: (*):
364         General cleanup, add appropriate object references and implement
365         dispose method.  Should fix #357099.
367 2006-11-15  James Livingston  <doclivingston@gmail.com>
369         patch by: William Lachance  <wrlach@gmail.com>
371         * rhythmdb/rhythmdb-query-model.c:
372         (rhythmdb_query_model_album_sort_func): improve sorting when some
373         tracks are missing track/disc number info. Fixes #371322
375 2006-11-14  James Livingston  <doclivingston@gmail.com>
377         patch by: Alex Lancaster
379         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
380         episode dates which are missing the seconds. Fixes #373845
382 2006-11-13  James Livingston  <doclivingston@gmail.com>
384         * bindings/python/rhythmdb.override: bidn a few other pieces of
385         rhythmdb.
387 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
389         * shell/rb-statusbar.c: (rb_statusbar_class_init),
390         (rb_statusbar_dispose), (rb_statusbar_finalize),
391         (rb_statusbar_set_property):
392         Remove idle handler in dispose, rather than finalize.
393         Keep references on all referenced objects (duh?).
394         Fixes #374443.
396 2006-11-12  James Livingston  <doclivingston@gmail.com>
398         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
400         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
401         the status bar smaller, so it isn't too big. Fixes #368757.
403 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
405         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
406         (mdns_service_removed):
407         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
408         disappear.
410 2006-11-12  James Livingston  <doclivingston@gmail.com>
412         * plugins/audioscrobbler/rb-lastfm-source.c:
413         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
414         more supported last.fm radio things. From #373622
416 2006-11-12  James Livingston  <doclivingston@gmail.com>
418         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
419         through the earlier checks. Fixes #373605
421 2006-11-12  James Livingston  <doclivingston@gmail.com>
423         * sources/rb-library-source.c:
424         (rb_library_source_add_child_source): sort the child-library sources
425         the same as the library by default.
427 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
429         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
430         Don't try to report the size if we didn't get one.
431         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
432         work), from #350276.
434 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
436         * daapsharing/rb-daap-sharing.c:
437         (rb_daap_sharing_default_share_name), (create_share),
438         (share_name_changed_cb):
439         * daapsharing/rb-daap-sharing.h:
440         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
441         (make_config_widget), (impl_create_configure_dialog):
442         Update DAAP preferences widget when displaying it, and
443         populate the share name entry with the default if there's nothing
444         there already.  Fixes #340279.
446 2006-11-11  James Livingston  <doclivingston@gmail.com>
448         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
450         * plugins/magnatune/magnatune/MagnatuneSource.py:
451         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
452         Magnatune stuff. From #345783
454 2006-11-10  James Livingston  <doclivingston@gmail.com>
456         * plugins/generic-player/rb-nokia770-source.c:
457         (hal_udi_is_nokia770):
458         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
459         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
460         context if it wasn't inited. Fixes #372824
462 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
464         * plugins/daap/rb-daap-plugin.h:
465         Add the file I missed last time.
467 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
469         * CVS-SURGERY:
470         * backends/gstreamer/Makefile.am:
471         * backends/gstreamer/rb-player-gst.c:
472         * configure.ac:
473         * daapsharing/Makefile.am:
474         * daapsharing/rb-daap-connection.c:
475         (rb_daap_connection_disconnect):
476         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
477         (rb_daap_src_open):
478         * daapsharing/rb-daap-src.h:
479         * data/glade/Makefile.am:
480         * data/rhythmbox.schemas:
481         * data/ui/Makefile.am:
482         * plugins/Makefile.am:
483         * plugins/daap/.cvsignore:
484         * plugins/daap/Makefile.am:
485         * plugins/daap/daap.rb-plugin.desktop.in:
486         * plugins/daap/rb-daap-plugin.c:
487         * shell/Makefile.am:
488         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
489         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
490         * sources/Makefile.am:
491         * sources/rb-daap-source.c: (rb_daap_source_class_init),
492         (rb_daap_source_new), (connection_auth_cb),
493         (connection_connecting_cb), (connection_disconnected_cb),
494         (release_connection), (rb_daap_source_disconnect),
495         (rb_daap_source_show_popup):
496         * sources/rb-daap-source.h:
497         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
498         Fixes #336150.
500 2006-11-09  James Livingston  <doclivingston@gmail.com>
502         * rhythmdb/rhythmdb.c: take the ref before calling the delete
503         implementation, not after. From #372851.
505 2006-11-09  James Livingston  <doclivingston@gmail.com>
507         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
509         * plugins/Makefile.am:
510         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
511         fixes #371178.
513 2006-11-09  James Livingston  <doclivingston@gmail.com>
515         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
516         g_signal_connect_object not g_signal_object, which stops it beign
517         called after the plugin is disposed.
519 2006-11-09  James Livingston  <doclivingston@gmail.com>
521         * plugins/audioscrobbler/rb-audioscrobbler.c:
522         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
523         after we're finalised. Should fix #370513
525 2006-11-08  James Livingston  <doclivingston@gmail.com>
527         patch by: Jerry Tan  <jerry.tan@sun.com>
529         * data/glade/song-info.glade: set more a11y properties on the
530         label-for/labelled-by info. Fixes #368179.
532 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
534         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
535         (rb_entry_view_dispose), (rb_entry_view_finalize):
536         Unref objects and remove idle handlers in dispose rather than
537         finalize.  Should fix #364783.
539 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
541         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
542         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
543         xmlCreateMemoryParserCtxt returning NULL that was previously checking
544         the wrong variable.  Really fixes #336842.
546 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
548         * plugins/iradio/Makefile.am:
549         Actually install the UI file.
551 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
553         * plugins/generic-player/rb-generic-player-source.c:
554         (rb_generic_player_source_constructor),
555         (rb_generic_player_source_dispose),
556         (rb_generic_player_source_load_playlists):
557         Don't crash if the source is destroyed before it gets a chance
558         to load playlists.
560 2006-11-06  James Livingston  <doclivingston@gmail.com>
562         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
563         * rhythmdb/rhythmdb.c: some leak fixes
565 2006-11-06  James Livingston  <doclivingston@gmail.com>
567         * bindings/python/rb.override: change the right function in the last
568         commit.
570 2006-11-06  James Livingston  <doclivingston@gmail.com>
572         * bindings/python/rb.override: unwrap the python string instead of
573         wrapping it. Oops.
575 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
577         * tests/test-utils.c: (test_rhythmdb_setup):
578         Fix build break, #371106.
580 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
582         * tests/Makefile.am:
583         * tests/test-rhythmdb-property-model.c: (_get_property_count),
584         (START_TEST), (rhythmdb_property_model_suite), (main):
585         * tests/test-rhythmdb-query-model.c: (START_TEST),
586         (rhythmdb_query_model_suite), (main):
587         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
588         * tests/test-utils.c: (start_test_case), (end_step),
589         (end_test_case), (mark_signal), (set_waiting_signal),
590         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
591         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
592         * tests/test-utils.h:
593         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
595 2006-11-04  James Livingston  <doclivingston@gmail.com>
597         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
598         we were passed a absolute path, e.g. from the plugin file find
599         function.
601 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
603         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
605         * remote/dbus/rb-client.c: (main):
606         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
607         * shell/rb-shell.h:
608         * shell/rb-shell.xml:
609         Add dbus method to request a notification for the playing song, and
610         an argument to rhythmbox-client to use it.  Fixes #359593.
612 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
614         * remote/dbus/rb-print-playing.py:
615         Revert changes I accidentally committed a while ago.
617 2006-11-03  James Livingston  <doclivingston@gmail.com>
619         * data/glade/song-info.glade: make more labels selectable, from #368641
621 2006-11-03  James Livingston  <doclivingston@gmail.com>
623         * shell/rb-shell-clipboard.c: (get_focussed_widget),
624         (rb_shell_clipboard_cmd_select_all),
625         (rb_shell_clipboard_cmd_select_none): make Select All select text in
626         the focussed widget if it's a text entry. Fixes #364590
628 2006-11-03  James Livingston  <doclivingston@gmail.com>
630         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
631         (bacon_volume_button_init), (bacon_volume_button_dispose),
632         (bacon_volume_button_new), (bacon_volume_button_realize),
633         (bacon_volume_button_press), (bacon_volume_key_release),
634         (bacon_volume_release_grab), (cb_dock_key_release),
635         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
636         (bacon_volume_theme_changed), (bacon_volume_load_icons):
637         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
638         Fixes #369491
640 2006-10-31  James Livingston  <doclivingston@gmail.com>
642         * configure.ac: remove spaces around '=' where they shouldn't be,
643         fixes building when you have libgpod 0.3.x
645 2006-10-31  James Livingston  <doclivingston@gmail.com>
647         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
649         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
650         period is 0. Fixes #351425
652 2006-10-31  James Livingston  <doclivingston@gmail.com>
654         patch by: Luca Ferretti  <elle.uca@libero.it>
656         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
657         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
658         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
659         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
660         * plugins/ipod/ipod.rb-plugin.desktop.in:
661         * plugins/iradio/iradio.rb-plugin.desktop.in:
662         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
663         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
664         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
665         of the plugins. Fixes #365326
667 2006-10-31  James Livingston  <doclivingston@gmail.com>
669         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
671 2006-10-31  James Livingston  <doclivingston@gmail.com>
673         * data/glade/song-info.glade: set the mnemonic target for the labels
674         in the details tab. Fixes #368179.
676 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
678         * configure.ac:
679         When complaining about GStreamer being too old, use the right variable
680         name for the version we want.
682 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
684         * shell/rb-shell.h:
685         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
686         * shell/rb-tray-icon.h:
687         * bindings/python/rb.defs:
688         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
689         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
690         * sources/rb-playlist-source-recorder.c: (burn_cd):
691         * sources/rb-podcast-source.c:
692         (rb_podcast_source_start_download_cb),
693         (rb_podcast_source_finish_download_cb),
694         (rb_podcast_source_feed_updates_avaliable_cb):
695         Change the various notification functions to take a parameter
696         specifying whether the notification was explicitly requested by the
697         user.  Add a function to display a notification for an entry,
698         including streaming song metadata.
700         * shell/rb-shell-player.c: (rb_shell_player_stop):
701         Emit playing-song-changed and playing-uri-changed when stopping
702         playback.
704         * sources/Makefile.am:
705         * sources/rb-streaming-source.c:
706         * sources/rb-streaming-source.h:
707         Add a base class for streaming sources, handling streaming song
708         metadata and buffering messages, emitting notifications on song
709         changes, and updating play count statistics when playback stops.
711         * plugins/audioscrobbler/Makefile.am:
712         * plugins/audioscrobbler/rb-lastfm-source.c:
713         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
714         (rb_lastfm_source_constructor), (impl_get_status),
715         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
716         (rb_lastfm_source_title_from_uri),
717         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
718         (rb_lastfm_song_changed_cb), (impl_activate):
719         * plugins/audioscrobbler/rb-lastfm-source.h:
720         * plugins/iradio/Makefile.am:
721         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
722         (rb_iradio_source_constructor), (impl_get_status),
723         (info_available_cb), (playing_source_changed_cb):
724         * sources/rb-iradio-source.h:
725         Use the new streaming source base class for iradio and last.fm
726         sources.  Fixes #364094.
728 2006-10-30  James Livingston  <doclivingston@gmail.com>
730         * podcast/rb-podcast-manager.c:
731         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
732         any downloads from it before deleting the post entry. Fixes #366567.
734 2006-10-30  James Livingston  <doclivingston@gmail.com>
736         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
737         move-to-trash, since there have been reports of people accidently
738         deleting tracks and it probably isn't a common enough operation to be
739         worth a shortcut.
741 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
743         * backends/gstreamer/rb-player-gst.c:
744         * configure.ac:
745         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
746         Fix GStreamer 0.8 build (and some typos in configure.ac).
748 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
750         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
752         * sources/rb-source.c: (rb_source_class_init),
753         (rb_source_set_property), (rb_source_get_property):
754         Add a property to RBSource for plugin-created sources to have a
755         pointer to the RBPlugin object that created them.
757         * plugins/audiocd/Makefile.am:
758         * plugins/audiocd/multiple-album.glade:
759         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
760         * sources/Makefile.am:
761         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
762         * sources/rb-audiocd-source.h:
763         If musicbrainz returns multiple albums, present the user with a
764         choice between them.  Fixes #333215.
766         * configure.ac:
767         * plugins/Makefile.am:
768         Remove unused old audio CD stuff, only build audiocd plugin if we have
769         libnautilus-burn.  Fixes #367440.
771 2006-10-30  James Livingston  <doclivingston@gmail.com>
773         patch by: Brian McKenna  <puffnfresh@gmail.com>
775         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
776         handle blocks. Fixes #366696.
778 2006-10-30  James Livingston  <doclivingston@gmail.com>
780         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
782 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
784         * shell/rb-shell-player.c: (rb_shell_player_class_init),
785         (rb_shell_player_sync_with_source),
786         (rb_shell_player_get_playing_time_string), (tick_cb):
787         * widgets/rb-header.c: (rb_header_sync_time),
788         (slider_moved_callback), (rb_header_update_elapsed),
789         (rb_header_elapsed_changed_cb):
790         Revert dbus interface breakage introduced in the fix for #365908.
792 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
794         patch by: Luca Ferretti  <elle.uca@libero.it>
796         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
797         Remove the access keys from the podcast-specific column headers.
798         Fixes #360640 again.
800 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
802         patch by: James Livingston <doclivingston@gmail.com>
804         * sources/rb-browser-source.c: (rb_browser_source_constructor):
805         Only register the search actions once.  From #346801.
807 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
809         * shell/rb-shell-player.c: (rb_shell_player_error):
810         When handling an error, try playing the next stream URL if we have
811         one, rather than stopping playback.  From #358140.
813 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
815         * shell/rb-shell.c: (handle_playlist_entry_cb):
816         Don't crash if we can't guess a source for a URI in the playlist.
817         Fixes #366261.
819 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
821         * shell/rb-shell-player.c: (rb_shell_player_class_init),
822         (rb_shell_player_sync_with_source),
823         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
824         (tick_cb):
825         * widgets/rb-header.c: (rb_header_sync_time),
826         (rb_header_elapsed_changed_cb):
827         Treat elapsed time as signed, since rb_player_get_time returns a
828         signed value.  When actually using the value, mostly treat negative
829         values as 0.  Fixes #365908.
831 2006-10-27  James Livingston  <doclivingston@gmail.com>
833         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
835         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
836         returning 0 for the year/month/day. Fixes #364837.
838 2006-10-27  James Livingston  <doclivingston@gmail.com>
840         patch by: Luca Ferretti  <elle.uca@libero.it>
842         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
843         access keys from the entry view columns headers - they cause
844         keybindings conflicts, headaches for translators and the HIG says
845         they are bad. Fixes #360640.
847 2006-10-27  James Livingston  <doclivingston@gmail.com>
849         patch by: Luca Ferretti  <elle.uca@libero.it>
851         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
852         access keys from the entry view columns headers - they cause
853         keybindings conflicts, headaches for translators and the HIG says
854         they are bad. Fixes #360640.
856 2006-10-27  James Livingston  <doclivingston@gmail.com>
858         * rhythmdb/rhythmdb-private.h:
859         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
860         issues
862 2006-10-27  James Livingston  <doclivingston@gmail.com>
864         * plugins/artdisplay/Makefile.am:
865         * plugins/audioscrobbler/Makefile.am:
866         * plugins/iradio/Makefile.am: fix make clean
868 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
870         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
871         Fall back to strtod() if g_ascii_strtod() doesn't work.
873         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
874         Write floating point values using g_ascii_dtostr() to avoid
875         problems with locale-specific representations.  From #353205.
877 2006-10-25  James Livingston  <doclivingston@gmail.com>
879         * plugins/artdisplay/Makefile.am:
880         * plugins/audioscrobbler/Makefile.am:
881         * plugins/iradio/Makefile.am: fix "make distcheck"
883 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
885         patch by: Brian Cameron <brian.cameron@sun.com>
887         * plugins/audiocd/Makefile.am:
888         Link audiocd plugin with libnautilus-burn as required to get it to work
889         on Solaris.  Fixes #363288.
891 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
893         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
895         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
896         Clarify that we don't submit actual songs to last.fm, just information
897         on what you're listening to.  Fixes #364014.
899 2006-10-24  Bastien Nocera  <hadess@hadess.net>
901         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
902         (bacon_volume_button_class_init), (bacon_volume_button_new),
903         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
904         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
905         (bacon_volume_scale_value_changed): update from libbacon, to get
906         better accessibility support (Closes: #364637)
908 2006-10-24  James Livingston  <doclivingston@gmail.com>
910         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
912         * configure.ac: fix some typos and leftovers from disabled->enabled
913         changes. Fixes #364217
915 2006-10-23  William Jon McCann  <mccann@jhu.edu>
917         * shell/rb-source-header.c (rb_source_header_init):
918         Don't require source header cells to be homogeneous.
919         Patch from #359188
921 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
923         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
924         Pause the pipeline while buffering.  Fixes #358290.
926 2006-10-23  Bastien Nocera  <hadess@hadess.net>
928         * configure.ac: update required libgpod version to avoid crashes
929         when starting up with an iPod connect (Closes: #352972)
930         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
931         (hal_udi_is_ipod): remove outdated ifdefs
933 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
935         * plugins/Makefile.am:
936         * plugins/power-manager/rb-power-manager-plugin.c:
937         Don't try to build the power-manager plugin with dbus < 0.35.
939 2006-10-22  James Livingston  <doclivingston@gmail.com>
941         patch by: Ed Catmur  <ed@catmur.co.uk>
943         * plugins/artdisplay/Makefile.am:
944         * plugins/artdisplay/artdisplay/__init__.py:
945         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
946         placeholder art when none is available, to avoid having the widget pop
947         in and out of existance.
949 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
951         * plugins/lyrics/lyrics.py:
952         Set the lyrics window transient for the main window so it can
953         actually be seen in party mode.  Fixes #362981.
955 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
957         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
958         * sources/rb-source.c: (rb_source_class_init),
959         (rb_source_can_show_properties), (rb_source_song_properties):
960         * sources/rb-source.h:
961         Only enable the 'properties' item in the 'music' menu if the selected
962         source implements the show_properties method.  Fixes #356485.
964 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
966         * shell/rb-shell-player.c:
967         (rb_shell_player_property_row_activated_cb):
968         Take the entry to play from the play order, rather than grabbing the
969         first entry in the query model.  Fixes #362042.
971 2006-10-16  James Livingston  <doclivingston@gmail.com>
973         * shell/main.c: (main): save custom menu accelerators before exiting.
974         Fixed #362300
976 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
978         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
979         I HATE adding this patch, but I'm sick of hitting Yes once
980         and hour.  Working around brain-dead podcasts.
982 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
984         * plugins/lyrics/lyrics.py:
985         Disconnect the create-song-info handler when deactivated.
986         Fixes #361882.
988 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
990         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
991         Reset the style when clearing the search text.  Fixes #361295.
993 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
995         * rhythmdb/rhythmdb-query-model.c:
996         (rhythmdb_query_model_entry_changed_cb):
997         Don't emit entry-prop-changed for hidden signals from chained query
998         models, as the model will also propagate the parent model's
999         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
1001 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1003         * sources/rb-ipod-source.c: (generate_ipod_filename):
1004         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
1005         * lib/rb-cut-and-paste-code.h:
1006         Move eel_make_valid_utf8 to lib/, make the replacement
1007         character a parameter.
1009         * rhythmdb/rhythmdb.c: (make_access_failed_error),
1010         (rhythmdb_execute_multi_stat_info_cb),
1011         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
1012         When constructing an error message that includes a URI, make sure the
1013         URI is valid utf-8.  Fixes #353588.
1015 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1017         * player/rb-recorder-gst.c: (rb_recorder_construct),
1018         (acb_wave_time):
1019         Add an extra audioconvert element to allow endianness conversion on
1020         big-endian machines, and fix a few endianness issues in the .wav
1021         reading code.  Fixes #355611.
1023 2006-10-09  James Livingston  <doclivingston@gmail.com>
1025         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1027         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
1028         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
1029         Fixes #357553.
1031 2006-10-09  James Livingston  <doclivingston@gmail.com>
1033         patch by: Luca Ferretti  <elle.uca@libero.it>
1035         * data/glade/song-info-multiple.glade:
1036         * data/glade/song-info.glade: Fix a few HIG issues.
1038 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1040         * plugins/audioscrobbler/rb-lastfm-source.c:
1041         (rb_lastfm_source_class_init):
1042         Return TRUE from impl_try_playlist so playback starts in a separate
1043         thread.
1045 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1047         * shell/main.c: (main):
1048         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
1049         UTF-8 GStreamer messages.  Fixes #357973.
1051 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1053         * shell/rb-shell.c: (rb_shell_constructor):
1054         Remove a line that accidentally slipped in from some other universe.
1056 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1058         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
1059         Don't remove sources from the hash table while iterating it on
1060         shutdown.  Fixes #359583.
1062 2006-10-07  James Livingston  <doclivingston@gmail.com>
1064         patch from Alex Lancaster  <alexl@users.sourceforge.net>
1066         * shell/rb-shell.c: change the keybinding for "Plugins" to not
1067         conflict with others. Fixes #355904
1069 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1071         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
1072         (rhythmdb_query_model_chain),
1073         (rhythmdb_query_model_entry_changed_cb),
1074         (rhythmdb_query_model_base_entry_prop_changed),
1075         (rhythmdb_query_model_base_entry_removed):
1076         For chained models, propagate the parent model's entry-prop-changed
1077         signal rather than emitting one from the db entry-changed handler.
1078         This ensures that when the change filters the entry out of the parent
1079         model, property models attached to the child model get the entry
1080         change signal before the post-entry-delete signal, so they can
1081         decrement the refcount for the right property value.  Fixes #359083.
1083 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1085         * plugins/audioscrobbler/Makefile.am:
1086         define NULL
1088 2006-10-07  James Livingston  <doclivingston@gmail.com>
1090         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1091         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
1092         * plugins/audioscrobbler/rb-lastfm-source.c:
1093         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
1094         hypens in URI schemes.
1096 2006-10-06  William Jon McCann  <mccann@jhu.edu>
1098         * plugins/iradio/Makefile.am:
1099         * plugins/audioscrobbler/Makefile.am:
1100         * plugins/cd-recorder/Makefile.am:
1101         Don't clean all plugin_DATA.
1102         Fixes #360210
1104 2006-10-06  James Livingston  <doclivingston@gmail.com>
1106         patch from Matt N  <fisxoj@gmail.com>
1108         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
1109         (rb_player_gst_bus_cb):
1110         * backends/rb-player.c: (rb_player_interface_init),
1111         (_rb_player_emit_tick), (_rb_player_emit_event):
1112         * backends/rb-player.h: let the backend emit named "events", for
1113         things that the core shouldn't know about.
1115         * rhythmdb/rhythmdb.h:
1116         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
1117         support for streams containing album metadata.
1119         * plugins/audioscrobbler/Makefile.am:
1120         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1121         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1122         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
1123         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
1124         * plugins/audioscrobbler/rb-lastfm-source.c:
1125         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
1126         of last.fm streams. From #313049.
1128 2006-10-06  James Livingston  <doclivingston@gmail.com>
1130         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
1131         committing. Oops.
1133 2006-10-06  James Livingston  <doclivingston@gmail.com>
1135         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
1137         * configure.ac:
1138         * data/rhythmbox.schemas:
1139         * plugins/Makefile.am:
1140         * plugins/magnatune/Makefile.am:
1141         * plugins/magnatune/magnatune-loading.glade:
1142         * plugins/magnatune/magnatune-prefs.glade:
1143         * plugins/magnatune/magnatune-purchase.glade:
1144         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
1145         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
1146         * plugins/magnatune/magnatune/MagnatuneSource.py:
1147         * plugins/magnatune/magnatune/TrackListHandler.py:
1148         * plugins/magnatune/magnatune/__init__.py:
1149         * plugins/magnatune/magnatune_circle_small.png:
1150         * plugins/magnatune/magnatune_logo_color_small.png:
1151         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
1152         play and download tracks from the MagnaTune online music store. From
1153         #345783.
1155 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1157         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1158         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
1159         (check_auto_proxy_config), (get_proxy_config):
1160         Don't crash when eel_gconf_get_string returns NULL.
1161         Fixes #359974.
1163 2006-10-04  James Livingston  <doclivingston@gmail.com>
1165         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
1167         * plugins/audiocd/Makefile.am: fix the plugin when linking with
1168         --as-needed. Fixes #358730
1170 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1172         patch by:  William Jon McCann  <mccann@jhu.edu>
1174         * sources/rb-iradio-source.c: (playing_source_changed_cb):
1175         Fix some stupidity I introduced that caused crashes on shutdown.
1176         Fixes #359181.
1178 2006-10-02  William Jon McCann  <mccann@jhu.edu>
1180         * plugins/audiocd/Makefile.am:
1181         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
1182         * plugins/iradio/.cvsignore:
1183         * plugins/iradio/Makefile.am:
1184         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
1185         (impl_deactivate):
1186         * plugins/power-manager/.cvsignore:
1187         Install missing iradio ui file.  Don't leak ui filename.
1188         Fix iradio install dir. Fix audiocd install dir.
1189         Remove unused code from audio cd plugin.
1191         Fixes #359170
1193 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1195         * sources/rb-ipod-source.c: (impl_move_to_trash):
1196         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
1197         commented out while fixing bug 355235.  Oops.
1199 2006-10-03  James Livingston  <doclivingston@gmail.com>
1201         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
1202         non-unicode warnings to debug statements, since they can occur with
1203         slightly broken files.
1205         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
1206         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
1207         iradio plugin is disabled and re-enabled.
1209 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1211         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
1212         (rhythmdb_entry_podcast_post_get_type):
1213         * rhythmdb/rhythmdb.h:
1214         * tests/bench-rhythmdb-load.c: (main):
1215         Add definitions for some common extra-metadata fields,
1216         remove iradio entry type definition, add the concept of entry type
1217         categories, define categories for the core entry types.
1218         Categories are used to decide if an entry can be copied to a removable
1219         device, if it should be reported to audioscrobbler, etc.
1221         * shell/Makefile.am:
1222         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1223         (rb_shell_player_constructor), (rb_shell_player_init),
1224         (rb_shell_player_get_property), (open_location_thread),
1225         (rb_shell_player_open_location),
1226         (rb_shell_player_sync_with_source),
1227         (rb_shell_player_set_playing_source_internal), (tick_cb):
1228         * shell/rb-shell.c: (construct_widgets), (construct_sources),
1229         (rb_shell_player_elapsed_changed_cb):
1230         Remove iradio-specific code, use extra metadata fields for streaming
1231         title and artist name.
1233         * data/ui/rhythmbox-ui.xml:
1234         Add a placeholder for 'new ...' menu items.
1236         * Makefile.am:
1237         * sources/Makefile.am:
1238         * configure.ac:
1239         * data/rhythmbox.schemas:
1240         * plugins/Makefile.am:
1241         * plugins/iradio/Makefile.am:
1242         * plugins/iradio/iradio-ui.xml:
1243         * plugins/iradio/iradio.rb-plugin.desktop.in:
1244         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1245         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1246         (rb_iradio_plugin_class_init):
1247         iradio plugin, enabled and hidden by default.
1249         * plugins/audioscrobbler/rb-audioscrobbler.c:
1250         (rb_audioscrobbler_song_changed_cb):
1251         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1252         * sources/rb-daap-source.c: (rb_daap_source_new):
1253         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1254         Define entry type categories, and use them where appropriate.
1256         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1257         (rb_iradio_source_constructor), (rb_iradio_source_new),
1258         (impl_get_status), (impl_want_uri), (buffering_cb),
1259         (check_entry_type), (streaming_title_request_cb),
1260         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1261         (info_available_cb), (playing_entry_changed_cb),
1262         (playing_source_changed_cb):
1263         Move streaming metadata and buffering handling here from
1264         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1265         title or artist changes, and handle request and gather signals for
1266         those.
1268         * widgets/rb-header.c: (rb_header_class_init),
1269         (rb_header_set_property), (rb_header_get_property),
1270         (rb_header_new), (append_and_free), (rb_header_sync):
1271         * widgets/rb-header.h:
1272         Rework to use streaming artist and title extra-metadata.
1273         streaming-artist overrides entry artist, and streaming-title means
1274         entry title is a stream name, displayed in brackets.
1276         * doc/reference/Makefile.am:
1277         * doc/reference/rhythmbox.types:
1278         Remove iradio stuff from gtk-doc build.
1280         Fixed #347097.
1282 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1284         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1286         * bindings/python/rhythmdb.defs:
1287         * lib/rb-marshal.list:
1288         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1289         (rhythmdb_emit_entry_deleted),
1290         (rhythmdb_entry_extra_metadata_accumulator),
1291         (rhythmdb_entry_request_extra_metadata),
1292         (rhythmdb_emit_entry_extra_metadata_notify),
1293         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1294         * rhythmdb/rhythmdb.h:
1295         Add signals for dealing with transient metadata outside the set stored
1296         in RhythmDBEntry:
1297         - entry_extra_metadata_request returns a value for the requested
1298           metadata field
1299         - entry_extra_metadata_notify notifies observers of a change to an
1300           extra metadata field
1301         - entry_extra_metadata_gather returns the values of all extra metadata
1302           fields
1304         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1305         (rb_shell_player_extra_metadata_cb):
1306         Sync the display on extra metadata changes and emit dbus signals when
1307         we can marshal the value.
1309         * shell/rb-shell.c: (rb_shell_get_song_properties):
1310         Implement rb_shell_song_get_properties using
1311         rhythmdb_entry_gather_metadata.
1313         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1314         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1315         * configure.ac:
1316         Add GValue marshaller for python (until bug 351072 is fixed)
1318         From #345592.
1320 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1322         * configure.ac:
1323         * data/rhythmbox.schemas:
1324         * plugins/Makefile.am:
1325         * plugins/power-manager/Makefile.am:
1326         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1327         * plugins/power-manager/rb-power-manager-plugin.c:
1328         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1329         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1330         (playing_changed_cb), (impl_activate), (impl_deactivate):
1331         gnome-power-manager integration: inhibit suspend while playing.
1332         Fixes #344979.
1334 2006-10-02  James Livingston  <doclivingston@gmail.com>
1336         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1337         and Alex Lancaster  <alexl@users.sourceforge.net>
1339         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1340         Fixes #353143, #353146 and #353147.
1342 ============ Version 0.9.6
1344 2006-10-01  James Livingston  <doclivingston@gmail.com>
1346         * configure.ac: bump version to 0.9.6. enable tag-writing and
1347         ipod-writing by default
1349         * NEWS: update NEWS
1351 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1353         patch by:  William Jon McCann  <mccann@jhu.edu>
1355         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1356         Use a local GError in case no error pointer pointer is passed in.
1357         From bug #358396.
1359 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1361         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1362         Don't reference members of freed structures.
1364 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1366         patch by:  William Jon McCann  <mccann@jhu.edu>
1368         * player/rb-recorder-gst.c: (rb_recorder_burn):
1369         Drop GDK lock before entering n-c-b.  Fixes #353894?
1371 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1373         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1374         (impl_activate):
1375         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1377 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1379         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1380         Call lirc_init before lirc_readconfig so we don't crash if the user's
1381         .lircrc file has any mode sections. Fixes #357419.
1383 2006-09-24  James Livingston  <doclivingston@gmail.com>
1385         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1386         if we get called twice, as that can happen. Fixes #357214.
1388 2006-09-24  James Livingston  <doclivingston@gmail.com>
1390         * backends/rb-encoder.h: add "file access" error
1392         * lib/rb-file-helpers.c: (rb_dot_dir):
1393         * podcast/rb-podcast-manager.c:
1394         (rb_podcast_manager_download_file_info_cb): remove directory creation
1395         race condition.
1397         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1398         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1399         directory creation. Fixes #347743
1401 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1403         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1404         Strip trailing whitespace
1406 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1408         * rhythmdb/Makefile.am:
1409         * rhythmdb/rhythmdb-private.h:
1410         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1411         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1412         * rhythmdb/rhythmdb-tree.h:
1413         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1414         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1415         * rhythmdb/rhythmdb.h:
1416         Rather than aborting, show an error and refuse to load the database when
1417         it appears to come from the future.  From bug #350304.
1419 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1421         * bindings/python/rhythmdb.override:
1422         Make entry_foreach usable.
1424 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1426         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1427         Scale the icon so it matches the rest of the sources.
1428         Fixes #351410.
1430 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1432         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1433         (rhythmdb_property_model_set_query_model_internal),
1434         (rhythmdb_property_model_row_inserted_cb),
1435         (rhythmdb_property_model_prop_changed_cb),
1436         (rhythmdb_property_model_entry_removed_cb),
1437         (rhythmdb_property_model_delete),
1438         (rhythmdb_property_model_perform_sync):
1439         Use the hash table to track hidden entries, rather than visible
1440         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1442 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1444         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1445         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1447 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1449         * sources/rb-ipod-source.c: (add_rb_playlist),
1450         (impl_move_to_trash), (impl_delete_thyself):
1451         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1453         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1454         Make sure we don't leave the sourcelist thinking a deleted source is
1455         still playing.  Fixes nothing.
1457 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1459         * shell/rb-shell.c:
1460         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1461         'Music->Import Folder' menu item for better icon theme coverage.
1462         Fixes #354575.
1464 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1466         * rhythmdb/rhythmdb-private.h:
1467         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1468         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1469         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1470         (rhythmdb_load), (rhythmdb_save_async):
1471         Use a limited thread pool for adding URIs to the database.
1472         Fixes #352494.
1474 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1476         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1477         Do something like the previous change, but for gstreamer 0.10
1478         this time.  Oops.  Really fixes #349569.
1480 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1482         * backends/gstreamer/rb-player-gst.c: (error_cb):
1483         Ignore 'internal data flow error' messages if we've already got an
1484         error for the file.  Fixes #349569.
1486 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1488         * shell/rb-shell-clipboard.c:
1489         (rb_shell_clipboard_playlist_deleted_cb):
1490         Rebuild 'add to playlist' menu before removing actions for deleted
1491         playlists, and don't unref the action, as we never had a reference on
1492         it to begin with.  Fixes #354599.
1494 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1496         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1497         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1498         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1500 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1502         * daapsharing/rb-daap-connection.c: (handle_playlists):
1503         Reverse the list of playlists on the DAAP server so it ends up in the
1504         right order.  Fixes #353926.
1506 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1508         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1509         Fully process each code so the LIRC client returns to its normal state
1510         when we're done.  Makes LIRC actually work properly for me.
1512 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1514         patch by: Ed Catmur  <ed@catmur.co.uk>
1516         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1517         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1518         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1520 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1522         patch by: James Livingston <doclivingston@gmail.com>
1524         * configure.ac:
1525         * data/rhythmbox.schemas:
1526         * metadata/Makefile.am:
1527         * plugins/Makefile.am:
1528         * plugins/audiocd/.cvsignore:
1529         * plugins/audiocd/Makefile.am:
1530         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1531         * plugins/audiocd/rb-audiocd-plugin.c:
1532         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1533         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1534         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1535         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1536         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1537         (rb_audiocd_plugin_playing_uri_changed_cb),
1538         (nautilus_burn_drive_get_device),
1539         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1540         (impl_activate), (_delete_cb), (impl_deactivate):
1541         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1542         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1543         * shell/main.c: (main):
1544         * shell/rb-removable-media-manager.c:
1545         (rb_removable_media_manager_finalize),
1546         (rb_removable_media_manager_load_media),
1547         (rb_removable_media_manager_mount_volume),
1548         (rb_removable_media_manager_scan):
1549         * sources/Makefile.am:
1550         * sources/rb-audiocd-source.c:
1551         * sources/rb-audiocd-source.h:
1552         Make auto CD support a plugin.
1554         Fixes #349415.
1556 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1558         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1559         Add a final rhythmdb_commit to make sure all songs from the share show
1560         up in the daap source.  Fixes #353913.
1562 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1564         * sources/rb-sourcelist-model.c:
1565         (rb_sourcelist_model_drag_data_received),
1566         (rb_sourcelist_model_row_drop_possible):
1567         Re-enable dragging of a set of tracks to the source list to create a
1568         new static playlist.  Fixes #353893.
1570 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1572         * widgets/bacon-volume.c: (cb_button_timeout):
1573         Actually drop the GDK lock, rather than returning while holding it.
1574         Fixes #353895.
1576 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1578         * plugins/generic-player/rb-generic-player-source.c:
1579         (rb_generic_player_source_constructor),
1580         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1581         (rb_generic_player_source_load_songs), (load_playlist_file),
1582         (default_load_playlists), (get_hal_context):
1583         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1584         Fixes #353483.
1586 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1588         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1589         Canonicalise URIs received from gnome-vfs file monitor.
1590         Fixes #353447.
1592 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1594         * help/C/rhythmbox.xml: unbreak help build
1595         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1596         Unbuffer the IO channel.  Fixes some weirdness for me.
1598 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1600         * help/C/rhythmbox.xml:
1601         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1602         (impl_activate), (impl_deactivate):
1603         Add 'playpause' LIRC command.
1605 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1607         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1608         (rb_source_finalize):
1609         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1610         when disconnecting generic audio players.
1612 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1614         patch by: Paolo Borelli  <pborelli@katamail.com>
1616         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1617         Fix a small leak.
1619 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1621         * backends/gstreamer/rb-player-gst.c:
1622         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1623         Don't actually disable the seek bar for non-seekable songs,
1624         because we can't reliably tell yet.
1626 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1628         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1629         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1630         (db_entry_deleted_cb), (rb_daap_share_server_start),
1631         (rb_daap_share_server_stop):
1632         * rhythmdb/rhythmdb-private.h:
1633         * rhythmdb/rhythmdb-tree.c: (save_entry):
1634         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1635         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1636         (rhythmdb_entry_get_ulong):
1637         * rhythmdb/rhythmdb.h:
1638         Give db entries a numeric ID property, replacing the daap server's
1639         entry->id map.  From #347665.
1641 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1643         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1644         * widgets/rb-header.c: (rb_header_class_init),
1645         (rb_header_set_property), (rb_header_get_property),
1646         (rb_header_set_playing_entry), (rb_header_sync),
1647         (rb_header_sync_time):
1648         * widgets/rb-header.h:
1649         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1650         insensitive when the player backend tells us we can't seek in the
1651         current song.  From #330410.
1653 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1655         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1656         Don't try to unref previous/next entries if they aren't there.
1657         Fixes #351806.
1659 2006-08-15  James Livingston  <doclivingston@gmail.com>
1661         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1662         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1663         mountpoint into a RBRefString and compare equality of those, rather
1664         than doign lots of strcmp()s.
1666         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1667         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1668         status notification as well as the visibility update in an idle
1669         callback. Makes it take much less time to update after a volume
1670         mount/unmount event.
1672 2006-08-15  James Livingston  <doclivingston@gmail.com>
1674         patch by: Christian Becke  <christianbecke@web.de>
1676         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1677         multiple selections in the Import Folder dialog. Fixes #351414.
1679 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1681         * shell/rb-shell.c: (construct_widgets):
1682         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1683         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1684         (rb_statusbar_get_property), (rb_statusbar_new):
1685         * shell/rb-statusbar.h:
1686         Use the connect-proxy signal from the UI manager, which covers all
1687         action groups, rather than just one.  Fixes #351280.
1689 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1691         * widgets/rb-library-browser.c: (rebuild_child_model):
1692         Fix query model reference counts (bug #349601).
1694 2006-08-15  James Livingston  <doclivingston@gmail.com>
1696         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1697         Error signals be non-recursive. Fixes a highly-unlikely issue that
1698         could have caused #322972.
1700 2006-08-14  James Livingston  <doclivingston@gmail.com>
1702         * sources/rb-auto-playlist-source.c:
1703         (rb_auto_playlist_source_init):
1704         * sources/rb-static-playlist-source.c:
1705         (rb_static_playlist_source_init):
1707 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1709         * sources/rb-browser-source.c:
1710         * sources/rb-import-errors-source.c:
1711         * sources/rb-iradio-source.c:
1712         * sources/rb-library-source.c:
1713         * sources/rb-missing-files-source.c:
1714         * sources/rb-play-queue-source.c:
1715         * sources/rb-playlist-source.c:
1716         * sources/rb-podcast-source.c:
1717         * sources/rb-source.c:
1718         Make entry-type a property on RBSource, rather than on most of its
1719         subclasses.  Fixes #347288.
1721 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1723         * remote/dbus/rb-client.c: (parse_pattern),
1724         (create_rb_shell_proxies), (main):
1725         Actually implement %ag and %aG (genre) for --print-playing-format
1727 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1729         * lib/rb-debug.c: (rb_debug_real):
1730         No point allocating a buffer for the timestamp when we can just put it
1731         on the stack.
1733 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1735         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1736         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1738 2006-08-11  James Livingston  <doclivingston@gmail.com>
1740         * podcast/rb-podcast-manager.c:
1741         (rb_podcast_manager_update_synctime): fix accidental commit in the
1742         last, which caused a warning.
1744 2006-08-11  James Livingston  <doclivingston@gmail.com>
1746         * data/rhythmbox.schemas:
1747         * podcast/rb-podcast-manager.c:
1748         (rb_podcast_manager_update_synctime): change the schema's
1749         update-inteval value from 0 to 1, which causes it to update on
1750         startup, rather than never. Should fixs #343818.
1752 2006-08-11  James Livingston  <doclivingston@gmail.com>
1754         * configure.ac:
1755         * data/Makefile.am:
1756         - data/rhythmbox.desktop.in:
1757         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1758         the @VERSION@ can be substituted in. Fix some issues with newer
1759         bug-buddy versions. Fixes #348853.
1761 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1763         * data/rhythmbox.schemas:
1764         * plugins/Makefile.am:
1765         * plugins/artdisplay/Makefile.am:
1766         * plugins/audioscrobbler/Makefile.am:
1767         * plugins/cd-recorder/Makefile.am:
1768         * plugins/generic-player/Makefile.am:
1769         * plugins/ipod/Makefile.am:
1770         * plugins/lirc/Makefile.am:
1771         * plugins/lyrics/Makefile.am:
1772         * plugins/pythonconsole/Makefile.am:
1773         * plugins/rb-module.c:
1774         * plugins/rb-module.h:
1775         * plugins/rb-plugin-manager.c: (configure_button_cb),
1776         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1777         (plugin_manager_populate_lists), (plugin_manager_set_active),
1778         (plugin_manager_toggle_active),
1779         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1780         (rb_plugin_manager_finalize):
1781         * plugins/rb-plugin-manager.h:
1782         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1783         (rb_plugin_find_file):
1784         * plugins/rb-plugin.h:
1785         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1786         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1787         (rb_plugins_engine_init), (rb_plugin_info_free),
1788         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1789         (rb_plugins_engine_deactivate_plugin),
1790         (rb_plugins_engine_plugin_is_active),
1791         (rb_plugins_engine_plugin_is_visible),
1792         (rb_plugins_engine_plugin_is_configurable),
1793         (rb_plugins_engine_configure_plugin),
1794         (rb_plugins_engine_get_plugin_name),
1795         (rb_plugins_engine_get_plugin_description),
1796         (rb_plugins_engine_get_plugin_authors),
1797         (rb_plugins_engine_get_plugin_website),
1798         (rb_plugins_engine_get_plugin_copyright),
1799         (rb_plugins_engine_get_plugin_icon):
1800         * plugins/rb-plugins-engine.h:
1801         * plugins/rb-python-module.c: (rb_python_module_init_python),
1802         (rb_python_module_load), (rb_python_module_unload),
1803         (rb_python_module_class_init), (rb_python_module_new),
1804         (finalise_collect_cb), (rb_python_shutdown):
1805         * plugins/rb-python-module.h:
1806         * plugins/rb-python-plugin.c: (call_python_method),
1807         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1808         (impl_is_configurable), (rb_python_object_get_type):
1809         * plugins/rb-python-plugin.h:
1810         * plugins/rb/Makefile.am:
1812         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1813         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1814         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1815         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1816         special case loading of dirs.  Install plugins to subdirectors of
1817         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1818         not DATADIR.  Fixes #350352
1820 2006-08-10  James Livingston  <doclivingston@gmail.com>
1822         * daapsharing/rb-daap-connection.c: (connection_connected),
1823         (connection_disconnected), (connection_operation_done):
1824         * daapsharing/rb-daap-share.c: (name_collision_cb):
1825         * plugins/generic-player/rb-generic-player-source.c:
1826         (rb_generic_player_source_load_playlists):
1827         * podcast/rb-podcast-manager.c:
1828         (rb_podcast_manager_download_entry),
1829         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1830         (end_job), (rb_podcast_manager_event_loop):
1831         * rhythmdb/rhythmdb-property-model.c:
1832         (rhythmdb_property_model_perform_sync):
1833         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1834         (rhythmdb_query_model_process_update), (idle_process_update),
1835         (rhythmdb_query_model_reapply_query_cb):
1836         * shell/rb-play-order.c: (sync_playing_entry_cb):
1837         * shell/rb-removable-media-manager.c:
1838         (rb_removable_media_manager_load_media):
1839         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1840         (rb_shell_clipboard_sync),
1841         (rb_shell_clipboard_entryview_changed_cb),
1842         (rb_shell_clipboard_entries_changed_cb),
1843         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1844         (rebuild_playlist_menu_idle),
1845         (rb_shell_clipboard_playlist_added_cb):
1846         * shell/rb-shell-player.c: (notify_playing_idle),
1847         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1848         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1849         (rb_shell_quit):
1850         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1851         * sources/rb-library-source.c: (add_child_sources_idle):
1852         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1853         (burn_cd_idle):
1854         * sources/rb-source.c: (update_visibility_idle):
1855         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1856         (cb_button_press):
1857         * widgets/rb-druid.c: (idle_set_sensitive):
1858         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1859         take the GDK lock when we should be, from #348588
1861 2006-08-09  James Livingston  <doclivingston@gmail.com>
1863         * rhythmdb/rhythmdb-property-model.c:
1864         (rhythmdb_property_model_get_path),
1865         (rhythmdb_property_model_get_value),
1866         (rhythmdb_property_model_iter_next): don't attempt to verify the
1867         iterator if it's the All value, since it isn't valid. Fixes a
1868         potential crasher.
1870 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1872         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1873         (rb_podcast_manager_download_file_info_cb),
1874         (rb_podcast_manager_abort_download), (download_info_free),
1875         (download_info_new):
1876         Use gnome_vfs_async_get_file_info to figure out the local filename for
1877         a podcast episode, so we get the filename from the target of any
1878         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1879         the query string, then append it later, to stop gnome-vfs from
1880         converting 'http://' to 'http:/'.  If the local filename ends with the
1881         query string, remove it.  Fixes #330766 and #321991.
1883 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1885         * sources/rb-library-source.c: (impl_want_uri):
1886         * sources/rb-static-playlist-source.c: (impl_want_uri):
1887         Treat sftp:// URIs as likely indicators of songness.
1889 2006-08-07  James Livingston  <doclivingston@gmail.com>
1891         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1892         remote tracks with GStreamer 0.10, and remember their visibility like
1893         local ones.
1895 2006-08-07  James Livingston  <doclivingston@gmail.com>
1897         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1898         apparently it's a borrowed reference. Should fix #347072.
1900 2006-08-06  James Livingston  <doclivingston@gmail.com>
1902         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1903         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1904         (rb_shuffle_play_order_get_previous),
1905         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1906         (remove_from_history), (add_randomly_to_history),
1907         (rb_shuffle_sync_history_with_query_model),
1908         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1909         (query_model_and_history_contents_match): remove the tentatative
1910         history stuff, which is from older code, like we did for -random a few
1911         weeks ago.
1913 2006-08-06  James Livingston  <doclivingston@gmail.com>
1915         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1916         (rb_queue_play_order_get_previous):
1917         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1918         (rb_random_play_order_go_next),
1919         (rb_random_play_order_get_previous), (rb_random_db_changed):
1920         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1921         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1922         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1923         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1924         (rb_shuffle_entry_removed),
1925         (query_model_and_history_contents_match):
1926         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1927         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1928         (default_has_next), (default_has_previous),
1929         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1930         various play orders, after reviewing the code. Should fix #349601.
1932 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1934         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1935         Pass the items_per_notification parameter to
1936         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1937         with some versions of python.
1939 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1941         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1942         Don't try to draw the icon if the drawable area is too small.
1943         Fixes #349838.
1945 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1947         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1949         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1951 2006-08-05  James Livingston  <doclivingston@gmail.com>
1953         * configure.ac: tell libtool not to check for C++/fortran/ etc
1954         compilers
1956         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1957         watch, to fix some gconf warnings.
1959 2006-08-04  James Livingston  <doclivingston@gmail.com>
1961         patch by: William Jon McCann  <mccann@jhu.edu>
1963         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1965 2006-08-04  James Livingston  <doclivingston@gmail.com>
1967         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1968         actually fix #349722 this time
1970 2006-08-04  James Livingston  <doclivingston@gmail.com>
1972         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1973         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1974         know about. Fixes #348571.
1976 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1978         various fixes for valgrind complaints:
1979         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1980         (init_rb_tree_dnd_data):
1981           free the associated target list, too
1982         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1983           initialize allocation.{x,y,width,height} correctly
1984         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1985         (rb_entry_view_constructor):
1986           free strings when no longer needed
1988 2006-08-03  James Livingston  <doclivingston@gmail.com>
1990         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1991         real GtkTreeModel not the filter. Fixes #349722
1993 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1995         * backends/gstreamer/rb-player-gst.c:
1996         Only use DAAP seek hacks for GStreamer 0.8 builds.
1998         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1999         (rb_daap_src_open):
2000         * daapsharing/rb-daap-src.h:
2001         Implement normal GStreamer seeking for GStreamer 0.10 builds.
2003         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2004         (rb_daap_source_get_headers):
2005         * sources/rb-daap-source.h:
2006         Reimplement rb_daap_source_get_headers for the case where we've
2007         already got the byte offset.  Add a small hack to
2008         rb_daap_source_class_init to prevent the linker from dropping
2009         rb-daap-src.o entirely.
2011         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
2013 2006-08-02  James Livingston  <doclivingston@gmail.com>
2015         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
2016         (handle_song_listing), (handle_playlist_entries),
2017         (rb_daap_connection_dispose):
2018         * sources/rb-daap-source.c: (_add_location_to_playlist),
2019         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
2020         for playlist URIs, not pointless duplicate strings. From #347425.
2022 2006-08-02  James Livingston  <doclivingston@gmail.com>
2024         * data/rhythmbox.schemas:
2025         * lib/rb-preferences.h:
2026         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
2027         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
2028         (plugin_manager_set_active), (plugin_manager_toggle_active),
2029         (plugin_manager_get_selected_plugin), (name_search_cb),
2030         (plugin_manager_construct_tree), (rb_plugin_manager_new),
2031         (rb_plugin_manager_finalize):
2032         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
2033         (rb_plugins_engine_load_all), (rb_plugin_info_free),
2034         (rb_plugins_engine_plugin_is_visible),
2035         (rb_plugins_engine_plugin_visible_cb):
2036         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
2037         per-user plugins, and 2) hide plugins from the manager UI. From #349395
2039 2006-08-02  James Livingston  <doclivingston@gmail.com>
2041         * sources/rb-sourcelist-model.c:
2042         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
2043         drop on a source. Fixes #349580.
2045 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2047         * configure.ac:
2048         * daapsharing/rb-daap-dialog.c:
2049         * daapsharing/rb-daap-dialog.h:
2050         * shell/Makefile.am:
2051         * sources/Makefile.am:
2052         * sources/rb-daap-source.c: (connection_auth_cb),
2053         (rb_daap_source_connection_cb), (rb_daap_source_activate):
2054         Add gnome-keyring support for DAAP passwords and use
2055         gnome-password-dialog instead of our own.  
2056         Patch mostly by James Livingston.  Fixes bug #330346.
2058 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2060         * shell/rb-shell-player.c:
2061         (rb_shell_player_set_playing_source_internal),
2062         (rb_shell_player_sync_with_selected_source):
2063         Remove call to rb_source_have_url, as we never did anything with the
2064         result.
2066         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2067         * sources/rb-import-errors-source.c:
2068         (rb_import_errors_source_class_init):
2069         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2070         (impl_song_properties), (impl_want_uri), (impl_add_uri):
2071         * sources/rb-library-source.c: (rb_library_source_class_init),
2072         (impl_want_uri), (impl_add_uri):
2073         * sources/rb-missing-files-source.c:
2074         (rb_missing_files_source_class_init):
2075         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2076         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2077         (impl_want_uri), (impl_add_uri):
2078         * sources/rb-source.c: (rb_source_class_init),
2079         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
2080         * sources/rb-source.h:
2081         * sources/rb-static-playlist-source.c:
2082         (rb_static_playlist_source_class_init), (search_action_changed),
2083         (impl_want_uri):
2084         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
2085         When adding a URI, want_uri gets called for each source; the one that
2086         wants it most gets the URI passed to its add_uri method.
2087         
2088         * shell/rb-shell.h:
2089         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
2090         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
2091         (handle_playlist_entry_cb), (rb_shell_load_uri):
2092         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2093         Use want_uri and add_uri to simplify and make generic
2094         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
2096         If a source that returns TRUE from try_playlist wants all the URIs in
2097         the playlist, give it the playlist URI instead.  This retains the
2098         existing behaviour for adding iradio playlists.
2100         * bindings/python/rb.defs: Update for above changes.
2102         From bug #347097.
2104 2006-07-31  James Livingston  <doclivingston@gmail.com>
2106         * data/Makefile.am:
2107         * data/generate-keys.sh: fix the build I broke with the last commit.
2108         Oops.
2110 2006-07-31  James Livingston  <doclivingston@gmail.com>
2112         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
2113         in a long time. Fixes #349179.
2115 2006-07-30  James Livingston  <doclivingston@gmail.com>
2117         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
2118         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2119         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
2121 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2123         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2124         Don't tell the browser the query is still pending when doing a subset
2125         search.  Fixes #348617 again.
2127 2006-07-30  James Livingston  <doclivingston@gmail.com>
2129         * bindings/python/rb.override: remove an extraneous _wrap_ from the
2130         override definition. Fixes #348893.
2132 2006-07-30  James Livingston  <doclivingston@gmail.com>
2134         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
2135         rb_error_dialog, as it's above this in the stack.
2137         * lib/rb-util.c: (rb_gvalue_compare):
2138         * lib/rb-util.h: change the return type to int, as we're returning
2139         -1/0/1
2141         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
2142         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2143         (rb_query_creator_set_sorting): minor leak fixes
2145 2006-07-28  James Livingston  <doclivingston@gmail.com>
2147         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2148         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
2149         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
2150         (get_or_create_genre), (remove_entry_from_album),
2151         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2152         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
2153         (rhythmdb_tree_entry_lookup_by_location),
2154         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2155         (rhythmdb_hash_tree_foreach),
2156         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
2157         threadsafe. Fix a nasty problem if the _foreach callback function
2158         caused the addition/removal of entries.
2160 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2162         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
2163         Clear selection before changing our idea of the model.  Fixes crashes
2164         on model changes while playing.
2166 2006-07-27  James Livingston  <doclivingston@gmail.com>
2168         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
2169         a missing rb_refstring_unref.
2171         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2172         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
2173         oops. should hopefully fix the crash reported on #347425.
2175 2006-07-27  James Livingston  <doclivingston@gmail.com>
2177         * backends/gstreamer/rb-encoder-gst.c:
2178         (get_profile_from_mime_type): fix encoding error issue, from #310774.
2180         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
2181         thread-safety issue.
2183 2006-07-27  James Livingston  <doclivingston@gmail.com>
2185         * rhythmdb/rb-refstring.c: (rb_refstring_find):
2186         * rhythmdb/rb-refstring.h: add a new function which returns the
2187         RBRefString that matches a string, but never creates a new one.
2189         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2190         (monitor_entry_file), (rhythmdb_check_changed_file),
2191         (rhythmdb_directory_change_cb):
2192         * rhythmdb/rhythmdb-private.h:
2193         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2194         (unparent_entries), (free_unknown_entries),
2195         (rhythmdb_tree_parser_start_element),
2196         (rhythmdb_tree_parser_end_element), (save_entry),
2197         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
2198         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2199         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
2200         (rhythmdb_tree_entry_type_registered):
2201         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
2202         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
2203         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
2204         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2205         (rhythmdb_process_metadata_load),
2206         (rhythmdb_process_file_created_or_modified),
2207         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
2208         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2209         (action_thread_main), (rhythmdb_entry_set_internal),
2210         (rhythmdb_entry_move_to_trash_set_error),
2211         (rhythmdb_entry_move_to_trash),
2212         (rhythmdb_entry_lookup_by_location),
2213         (rhythmdb_entry_lookup_by_location_refstring),
2214         (default_sync_metadata), (rhythmdb_entry_get_string),
2215         (rhythmdb_entry_get_refstring):
2216         * rhythmdb/rhythmdb.h:
2217         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
2218         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2219         (rb_playlist_source_row_deleted),
2220         (rb_playlist_source_entry_added_cb),
2221         (rb_playlist_source_location_in_map),
2222         (rb_playlist_source_add_to_map): Make the LOCATION field of
2223         RhythmDBEntry be a RBRefString instead, which reduces some of the
2224         memory-fragmentation on startup and saves RBStaticPlaylistSource
2225         duplicating all the strings.
2227 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2229         * rhythmdb/rhythmdb-query-model.c:
2230         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
2231         * rhythmdb/rhythmdb-query-model.h:
2232         Add function to copy contents from one query model to another,
2233         filtered by the destination model's query.
2235         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2236         Use the above to create a new query model for subset searches, rather
2237         than filtering the existing model. Fixes #348617.
2239 2006-07-25  James Livingston  <doclivingston@gmail.com>
2241         * rhythmdb/rhythmdb-query-model.c:
2242         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2243         lost from static playlists. Yet again. Fixes #323095.
2245         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2246         case for the above, so that we should know if a change will break it
2247         again.
2249 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2251         * data/rhythmbox.schemas: Fix for last commit.
2253         * podcast/rb-podcast-manager.c:
2254         (rb_podcast_manager_download_entry),
2255         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2256         (rb_podcast_manager_db_entry_deleted_cb):
2257         * rhythmdb/rhythmdb-property-model.c:
2258         (rhythmdb_property_model_set_query_model_internal),
2259         (rhythmdb_property_model_set_property),
2260         (rhythmdb_property_model_finalize),
2261         (rhythmdb_property_model_drag_data_get):
2262         * rhythmdb/rhythmdb-query-model.c:
2263         (rhythmdb_query_model_set_query_internal),
2264         (rhythmdb_query_model_set_property),
2265         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2266         * rhythmdb/rhythmdb-query-model.h:
2267         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2268         (rb_browser_source_do_query):
2269         * sources/rb-import-errors-source.c:
2270         (rb_import_errors_source_constructor):
2271         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2272         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2273         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2274         (impl_search), (impl_get_status),
2275         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2276         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2277         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2278         * sources/rb-missing-files-source.c:
2279         (rb_missing_files_source_constructor),
2280         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2281         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2282         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2283         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2284         (rb_playlist_source_save_playlist),
2285         (rb_playlist_source_new_from_xml),
2286         (rb_playlist_source_save_to_xml),
2287         (rb_playlist_source_setup_entry_view),
2288         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2289         (rb_playlist_source_get_query_model),
2290         (rb_playlist_source_mark_dirty),
2291         (rb_playlist_source_location_in_map),
2292         (rb_playlist_source_add_to_map):
2293         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2294         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2295         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2296         (impl_delete), (rb_podcast_source_state_prefs_sync),
2297         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2298         (impl_get_config_widget), (rb_podcast_source_add_feed),
2299         (rb_podcast_source_cmd_download_post),
2300         (rb_podcast_source_cmd_cancel_download),
2301         (rb_podcast_source_cmd_delete_feed),
2302         (rb_podcast_source_cmd_update_feed),
2303         (rb_podcast_source_cmd_update_all),
2304         (rb_podcast_source_cb_interval_changed_cb),
2305         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2306         (rb_podcast_source_entry_activated_cb):
2307         * sources/rb-source.c: (rb_source_finalize),
2308         (rb_source_set_query_model_internal), (rb_source_set_property),
2309         (default_get_status):
2310         * sources/rb-static-playlist-source.c:
2311         (rb_static_playlist_source_dispose),
2312         (rb_static_playlist_source_finalize),
2313         (rb_static_playlist_source_constructor),
2314         (rb_static_playlist_source_do_query):
2315         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2316         (rb_entry_view_set_shell_player_internal),
2317         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2318         (rb_entry_view_set_model), (rb_entry_view_append_column),
2319         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2320         (rb_entry_view_set_state):
2321         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2322         (rb_library_browser_finalize), (rb_library_browser_new),
2323         (update_browser_property_visibilty), (view_selection_reset_cb),
2324         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2325         (restore_selection), (rebuild_child_model),
2326         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2327         * widgets/rb-property-view.c:
2328         (rb_property_view_set_model_internal),
2329         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2330         (rb_property_view_get_model), (rb_property_view_set_model),
2331         (rb_property_view_get_num_properties),
2332         (rb_property_view_set_selection),
2333         (rb_property_view_append_column_custom),
2334         (rb_property_view_set_search_func):
2335         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2336         From #347446
2338 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2340         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2341         Work around a small n-c-b API change.
2343 2006-07-25  James Livingston  <doclivingston@gmail.com>
2345         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2347         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2348         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2349         aborting entry-emission on finalise
2351 2006-07-25  James Livingston  <doclivingston@gmail.com>
2353         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2354         warning when entry is NULL.
2356 2006-07-25  James Livingston  <doclivingston@gmail.com>
2358         * help/sv/.cvsignore:
2359         * lib/.cvsignore:
2360         * plugins/generic-player/.cvsignore:
2361         * remote/.cvsignore:
2362         * remote/dbus/.cvsignore:
2363         * shell/.cvsignore:
2364         * tests/.cvsignore: more .cvsignore updates
2366 2006-07-24  James Livingston  <doclivingston@gmail.com>
2368         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2369         (transparent_expose_event), (make_transparent_again),
2370         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2371         apply a patch for EggTrayIcon so that it handled transparent panels
2372         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2373         Fixes #348208.
2375 2006-07-24  James Livingston  <doclivingston@gmail.com>
2377         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2378         queries rather than taking ownership when parsing a subquery. Fixed a
2379         crash exposed by the recent leak fixes.
2381         * doc/reference/tmpl/disclosure-widget.sgml:
2382         * doc/reference/tmpl/rb-debug.sgml:
2383         * doc/reference/tmpl/rb-metadata.sgml:
2384         * doc/reference/tmpl/rb-play-order.sgml:
2385         * doc/reference/tmpl/rb-playlist-manager.sgml:
2386         * doc/reference/tmpl/rb-playlist-source.sgml:
2387         * doc/reference/tmpl/rb-shell-player.sgml:
2388         * doc/reference/tmpl/rb-shell.sgml:
2389         * doc/reference/tmpl/rb-song-display-box.sgml:
2390         * doc/reference/tmpl/rhythmbox-unused.sgml:
2391         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2393 2006-07-24  James Livingston  <doclivingston@gmail.com>
2395         * lib/.cvsignore:
2396         * plugins/artdisplay/.cvsignore:
2397         * plugins/artdisplay/artdisplay/.cvsignore:
2398         * plugins/lyrics/.cvsignore:
2399         * plugins/pythonconsole/.cvsignore:
2400         * plugins/rb/.cvsignore: add/update various .cvsignore files
2402 2006-07-24  James Livingston  <doclivingston@gmail.com>
2404         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2405         (rb_refstring_ref): don't emit critical warnings when the refstring
2406         is NULL, as that happens often for podcast metadata.
2408         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2409         missing rhythmdb_entry_ref call
2411 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2413         * bindings/python/rb.override:
2414         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2415         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2416         (playlist_row_inserted_cb):
2417         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2418         * plugins/rb-plugin-manager.c:
2419         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2420         (rb_podcast_manager_copy_post),
2421         (rb_podcast_manager_db_entry_deleted_cb),
2422         (rb_podcast_manager_insert_feed):
2423         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2424         (rb_refstring_ref), (rb_refstring_get_sort_key):
2425         * rhythmdb/rhythmdb-private.h:
2426         * rhythmdb/rhythmdb-property-model.c:
2427         (rhythmdb_property_model_set_property),
2428         (rhythmdb_property_model_get_property),
2429         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2430         (rhythmdb_property_model_row_inserted_cb),
2431         (rhythmdb_property_model_prop_changed_cb),
2432         (rhythmdb_property_model_compare),
2433         (rhythmdb_property_model_insert),
2434         (rhythmdb_property_model_iter_from_string),
2435         (rhythmdb_property_model_get_column_type),
2436         (rhythmdb_property_model_get_iter),
2437         (rhythmdb_property_model_get_value),
2438         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2439         (rhythmdb_property_model_enable_drag):
2440         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2441         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2442         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2443         (rhythmdb_query_model_chain),
2444         (rhythmdb_query_model_entry_added_cb),
2445         (rhythmdb_query_model_entry_changed_cb),
2446         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2447         (rhythmdb_query_model_add_entry),
2448         (rhythmdb_query_model_insert_into_main_list),
2449         (rhythmdb_query_model_insert_into_limited_list),
2450         (rhythmdb_query_model_remove_from_main_list),
2451         (rhythmdb_query_model_remove_from_limited_list),
2452         (rhythmdb_query_model_update_limited_entries),
2453         (rhythmdb_query_model_emit_reorder),
2454         (rhythmdb_query_model_do_reorder),
2455         (rhythmdb_query_model_do_insert),
2456         (rhythmdb_query_model_move_entry),
2457         (rhythmdb_query_model_remove_entry),
2458         (rhythmdb_query_model_entry_to_iter),
2459         (rhythmdb_query_model_iter_to_entry),
2460         (rhythmdb_query_model_get_previous_from_entry),
2461         (rhythmdb_query_model_row_draggable),
2462         (rhythmdb_query_model_drag_data_delete),
2463         (rhythmdb_query_model_drag_data_get),
2464         (rhythmdb_query_model_drag_data_received),
2465         (rhythmdb_query_model_row_drop_possible),
2466         (rhythmdb_query_model_row_drop_position),
2467         (rhythmdb_query_model_add_results),
2468         (rhythmdb_query_model_query_complete),
2469         (rhythmdb_query_model_get_column_type),
2470         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2471         (rhythmdb_query_model_iter_nth_child),
2472         (apply_updated_entry_sequence),
2473         (rhythmdb_query_model_child_index_to_base_index),
2474         (rhythmdb_query_model_get_entry_index),
2475         (rhythmdb_query_model_base_row_inserted),
2476         (rhythmdb_query_model_base_row_deleted),
2477         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2478         (rhythmdb_query_model_location_sort_func),
2479         (rhythmdb_query_model_title_sort_func),
2480         (rhythmdb_query_model_album_sort_func),
2481         (rhythmdb_query_model_artist_sort_func),
2482         (rhythmdb_query_model_track_sort_func),
2483         (rhythmdb_query_model_double_ceiling_sort_func),
2484         (rhythmdb_query_model_ulong_sort_func),
2485         (rhythmdb_query_model_date_sort_func),
2486         (rhythmdb_query_model_string_sort_func),
2487         (rhythmdb_query_model_within_limit):
2488         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2489         (rhythmdb_tree_parser_start_element),
2490         (rhythmdb_tree_parser_end_element),
2491         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2492         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2493         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2494         (save_entry_uint64), (save_entry_double), (save_entry),
2495         (set_entry_album), (rhythmdb_tree_entry_new),
2496         (get_genres_hash_for_type), (get_or_create_genre),
2497         (get_or_create_artist), (get_or_create_album), (remove_child),
2498         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2499         (rhythmdb_tree_entry_delete), (remove_one_song),
2500         (rhythmdb_tree_entry_delete_by_type),
2501         (rhythmdb_tree_evaluate_query), (search_match_properties),
2502         (evaluate_conjunctive_subquery), (do_conjunction),
2503         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2504         (conjunctive_query_albums), (conjunctive_query_artists),
2505         (conjunctive_query_genre), (conjunctive_query),
2506         (split_query_by_disjunctions), (do_query_recurse),
2507         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2508         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2509         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2510         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2511         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2512         (extract_gtype_from_enum_entry),
2513         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2514         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2515         (rhythmdb_event_free), (rhythmdb_finalize),
2516         (rhythmdb_set_property), (rhythmdb_get_property),
2517         (rhythmdb_thread_create), (free_entry_changes),
2518         (emit_entry_changed), (sync_entry_changed),
2519         (process_added_entries_cb), (process_deleted_entries_cb),
2520         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2521         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2522         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2523         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2524         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2525         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2526         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2527         (rhythmdb_process_metadata_load),
2528         (rhythmdb_process_file_created_or_modified),
2529         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2530         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2531         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2532         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2533         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2534         (record_entry_change), (rhythmdb_entry_set_internal),
2535         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2536         (rhythmdb_entry_move_to_trash_cb),
2537         (rhythmdb_entry_move_to_trash_set_error),
2538         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2539         (rhythmdb_nice_elt_name_from_propid),
2540         (rhythmdb_propid_from_nice_elt_name),
2541         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2542         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2543         (rhythmdb_compute_status_normal), (default_sync_metadata),
2544         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2545         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2546         (podcast_get_playback_uri), (podcast_data_destroy),
2547         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2548         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2549         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2550         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2551         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2552         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2553         * rhythmdb/rhythmdb.h:
2554         * shell/rb-play-order-linear-loop.c:
2555         (rb_linear_play_order_loop_get_next),
2556         (rb_linear_play_order_loop_get_previous):
2557         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2558         (rb_linear_play_order_get_previous):
2559         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2560         * shell/rb-play-order-random.c: (get_query_model_contents):
2561         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2562         (get_query_model_contents):
2563         * shell/rb-play-order.c: (rb_play_order_constructor),
2564         (rb_play_order_finalize),
2565         (rb_play_order_set_playing_entry_internal),
2566         (rb_play_order_set_property), (rb_play_order_new),
2567         (rb_play_order_get_player), (rb_play_order_get_source),
2568         (rb_play_order_get_db), (rb_play_order_get_query_model),
2569         (rb_play_order_player_is_playing),
2570         (rb_play_order_set_playing_entry),
2571         (rb_play_order_get_playing_entry),
2572         (rb_play_order_playing_source_changed),
2573         (rb_play_order_query_model_changed),
2574         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2575         (default_has_next), (default_has_previous),
2576         (sync_playing_entry_cb), (default_playing_entry_removed),
2577         (rb_play_order_has_next), (rb_play_order_get_next),
2578         (rb_play_order_go_next), (rb_play_order_has_previous),
2579         (rb_play_order_get_previous), (rb_play_order_go_previous),
2580         (rb_play_order_model_not_empty),
2581         (rb_play_order_update_have_next_previous):
2582         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2583         (rb_playlist_manager_save_playlists),
2584         (rb_playlist_manager_set_automatic_playlist),
2585         (rb_playlist_manager_cmd_edit_automatic_playlist),
2586         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2587         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2588         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2589         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2590         (volume_pre_unmount_cb), (reemit_playing_signal),
2591         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2592         (rb_shell_player_handle_eos_unlocked),
2593         (rb_shell_player_handle_eos), (rb_shell_player_init),
2594         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2595         (playlist_entry_cb), (rb_shell_player_open_entry),
2596         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2597         (rb_shell_player_set_play_order),
2598         (rb_shell_player_set_playback_state),
2599         (rb_shell_player_sync_play_order),
2600         (rb_shell_player_play_order_update_cb),
2601         (rb_shell_player_jump_to_current), (swap_playing_source),
2602         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2603         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2604         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2605         (rb_shell_player_entry_activated_cb),
2606         (rb_shell_player_property_row_activated_cb),
2607         (rb_shell_player_entry_changed_cb),
2608         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2609         (rb_shell_player_pause),
2610         (rb_shell_player_get_playing_song_duration),
2611         (rb_shell_player_error), (error_cb), (tick_cb),
2612         (info_available_cb), (buffering_cb),
2613         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2614         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2615         (rb_shell_jump_to_current):
2616         * sources/rb-auto-playlist-source.c:
2617         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2618         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2619         (rb_auto_playlist_source_get_query):
2620         * sources/rb-auto-playlist-source.h:
2621         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2622         * sources/rb-import-errors-source.c:
2623         (rb_import_errors_source_constructor):
2624         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2625         * sources/rb-library-source.c: (filepath_parse_pattern):
2626         * sources/rb-missing-files-source.c:
2627         (rb_missing_files_source_constructor):
2628         * sources/rb-play-queue-source.c:
2629         (rb_play_queue_source_clear_queue),
2630         (rb_play_queue_source_track_info_cell_data_func):
2631         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2632         (rb_playlist_source_get_property), (playlist_iter_func),
2633         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2634         (rb_playlist_source_track_cell_data_func):
2635         * sources/rb-podcast-source.c: (construct_query_from_selection),
2636         (rb_podcast_source_post_status_cell_data_func),
2637         (rb_podcast_source_post_feed_cell_data_func),
2638         (rb_podcast_source_feed_title_search_func),
2639         (rb_podcast_source_post_date_cell_data_func):
2640         * sources/rb-source.c: (default_get_status),
2641         (rb_source_get_status), (rb_source_browser_toggled),
2642         (rb_source_update_play_statistics), (rb_source_search),
2643         (rb_source_get_config_widget), (default_add_to_queue),
2644         (rb_source_add_to_queue), (rb_source_receive_drag),
2645         (rb_source_gather_hash_keys):
2646         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2647         (rb_sourcelist_model_is_row_visible),
2648         (rb_sourcelist_model_row_is_separator),
2649         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2650         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2651         (rb_sourcelist_model_drag_data_get):
2652         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2653         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2654         (rb_sourcelist_visible_source_to_iter),
2655         (rb_sourcelist_edit_source_name), (set_source_playing),
2656         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2657         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2658         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2659         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2660         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2661         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2662         (rb_static_playlist_source_add_location_internal),
2663         (rb_static_playlist_source_row_inserted):
2664         * widgets/rb-entry-view.c: (type_ahead_search_func),
2665         (rb_entry_view_finalize), (rb_entry_view_set_model),
2666         (rb_entry_view_playing_cell_data_func),
2667         (rb_entry_view_rating_cell_data_func),
2668         (rb_entry_view_long_cell_data_func),
2669         (rb_entry_view_play_count_cell_data_func),
2670         (rb_entry_view_duration_cell_data_func),
2671         (rb_entry_view_year_cell_data_func),
2672         (rb_entry_view_quality_cell_data_func),
2673         (rb_entry_view_location_cell_data_func),
2674         (rb_entry_view_string_cell_data_func),
2675         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2676         (rb_entry_view_get_sorting_order),
2677         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2678         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2679         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2680         (rb_entry_view_playing_song_changed), (harvest_entries),
2681         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2682         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2683         (set_column_visibility):
2684         * widgets/rb-entry-view.h:
2685         * widgets/rb-header.c: (rb_header_new),
2686         (rb_header_set_playing_entry), (rb_header_set_title):
2687         * widgets/rb-library-browser.c: (rebuild_child_model),
2688         (rb_library_browser_set_model):
2689         * widgets/rb-property-view.c:
2690         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2691         (rb_property_view_set_property), (rb_property_view_get_property),
2692         (rb_property_view_reset), (rb_property_view_get_model),
2693         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2694         (rb_property_view_button_press_cb):
2695         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2696         (rb_query_creator_get_property), (rb_query_creator_load_query),
2697         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2698         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2699         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2700         (lookup_row_by_widget), (remove_button_click_cb),
2701         (add_button_click_cb), (create_property_option_menu):
2702         * widgets/rb-song-info.c: (rb_song_info_constructor),
2703         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2704         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2705         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2706         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2708 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2710         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2711         (rb_shell_player_get_property):
2712         Add a property providing access to the player backend object.
2714 2006-07-23  James Livingston  <doclivingston@gmail.com>
2716         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2717         (get_history), (rb_random_filter_history),
2718         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2719         remove the tentative history, since it appears to be a remanent from
2720         older play order code. The only thing it was doing was using up
2721         CPU-time and memory. From #345857
2723 2006-07-23  James Livingston  <doclivingston@gmail.com>
2725         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2727         * shell/main.c: (main):
2728         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2729         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2730         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2731         (rb_playlist_manager_load_playlists),
2732         (rb_playlist_manager_save_data):
2733         * shell/rb-playlist-manager.h:
2734         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2735         (rb_shell_get_property), (rb_shell_sync_state),
2736         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2737         (construct_sources), (idle_handle_load_complete):
2738         * shell/rb-shell.h: Add a command-line option for changing the
2739         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2741 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2743         * daapsharing/rb-daap-share.c: (databases_cb):
2744         Make sure we set status codes on HTTP responses.
2746 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2748         * configure.ac:
2749         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2750         (chunked_message_finished), (send_chunked_file),
2751         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2752         Use GMappedFile to send local files to DAAP clients where possible.  
2753         iTunes can't seek properly in files sent using chunked transfer 
2754         encoding.  Also remove the useless bitrate calculation code, as we
2755         never even used the result anyway.  From #330410.
2757 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2759         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2761         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2762         Enable multiple selection for 'import file'.  Fixes #347478.
2764 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2766         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2767         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2768         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2769         Fixes #348098.
2771 2006-07-20  James Livingston  <doclivingston@gmail.com>
2773         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2774         aren't NULL before calling strstr. Fixes #347998.
2776 2006-07-19  James Livingston  <doclivingston@gmail.com>
2778         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2780         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2781         MB that only have years. Fixes #347906.
2783 2006-07-19  James Livingston  <doclivingston@gmail.com>
2785         * rhythmdb/rhythmdb-private.h:
2786         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2787         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2788         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2789         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2790         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2791         (rhythmdb_execute_stat), (queue_stat_uri),
2792         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2793         (rhythmdb_load), (rhythmdb_entry_register_type),
2794         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2795         asynchronous vfs operations, and cancel them when shutting down the
2796         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2798         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2799         (test_rhythmdb_shutdown): wait until the db has been finalised before
2800         continuing on to the next test.
2802 2006-07-19  James Livingston  <doclivingston@gmail.com>
2804         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2805         right thing in the #ifdef. From #347832.
2807 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2809         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2810         Fix compile warning.
2812 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2814         * rhythmdb/rhythmdb-query-model.c:
2815         (rhythmdb_query_model_set_property),
2816         (rhythmdb_query_model_reapply_query_cb):
2817         Ignore old query == new query case.
2818         Fixes auto playlists with time-relative queries.
2820         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2821         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2822         (rhythmdb_query_to_string):
2823         * rhythmdb/rhythmdb.h:
2824         Add debug helper for printing queries in case someone needs it again.
2826 2006-07-18  James Livingston  <doclivingston@gmail.com>
2828         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2829         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2830         Fixes #347832
2832         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2833         write then into files.
2835 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2837         * daapsharing/rb-daap-connection.c:
2838         (rb_daap_connection_set_property):
2839         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2840         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2841         (add_playlist_to_mlcl), (databases_cb):
2842         * daapsharing/rb-daap-sharing.c: (create_share):
2843         * iradio/rb-new-station-dialog.c:
2844         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2845         * iradio/rb-station-properties-dialog.c:
2846         (rb_station_properties_dialog_finalize),
2847         (rb_station_properties_dialog_set_property),
2848         (rb_station_properties_dialog_get_current_entry):
2849         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2850         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2851         * plugins/generic-player/rb-generic-player-source.c:
2852         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2853         (handle_playlist_entry_cb):
2854         * plugins/generic-player/rb-nokia770-source.c:
2855         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2856         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2857         (visit_playlist_dirs), (hal_udi_is_psp):
2858         * podcast/rb-podcast-manager.c:
2859         * podcast/rb-podcast-properties-dialog.c:
2860         (rb_podcast_properties_dialog_finalize),
2861         (rb_podcast_properties_dialog_set_entry_view),
2862         (rb_podcast_properties_dialog_set_property):
2863         * rhythmdb/rhythmdb-property-model.c:
2864         * rhythmdb/rhythmdb-query-model.c:
2865         (rhythmdb_query_model_set_property),
2866         (rhythmdb_query_model_reapply_query_cb):
2867         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2868         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2869         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2870         (rhythmdb_event_free), (rhythmdb_shutdown),
2871         (rhythmdb_thread_create), (action_thread_main),
2872         (rhythmdb_do_full_query_async_parsed),
2873         (rhythmdb_do_full_query_internal):
2874         * shell/main.c: (main):
2875         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2876         * shell/rb-play-order.c: (rb_play_order_finalize),
2877         (rb_play_order_set_player),
2878         (rb_play_order_set_playing_entry_internal),
2879         (rb_play_order_set_property),
2880         (rb_play_order_playing_source_changed),
2881         (rb_play_order_query_model_changed):
2882         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2883         (rb_playlist_manager_set_source),
2884         (rb_playlist_manager_set_shell_internal),
2885         (rb_playlist_manager_set_property):
2886         * shell/rb-removable-media-manager.c:
2887         (rb_removable_media_manager_set_property),
2888         (rb_removable_media_manager_set_uimanager),
2889         (rb_removable_media_manager_cmd_eject_medium),
2890         (rb_removable_media_manager_cmd_copy_tracks):
2891         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2892         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2893         (rb_shell_clipboard_set),
2894         (rb_shell_clipboard_cmd_add_to_playlist_new),
2895         (rb_shell_clipboard_playlist_add_cb),
2896         (rb_shell_clipboard_playlist_renamed_cb),
2897         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2898         (rebuild_playlist_menu):
2899         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2900         (rb_shell_player_set_queue_source_internal),
2901         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2902         (rb_shell_player_entry_activated_cb),
2903         (rb_shell_player_property_row_activated_cb),
2904         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2905         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2906         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2907         (rb_shell_finalize), (construct_widgets),
2908         (rb_shell_playing_from_queue_cb),
2909         (rb_shell_player_stream_song_changed_cb),
2910         (rb_shell_player_volume_changed_cb):
2911         * shell/rb-statusbar.c: (rb_statusbar_new):
2912         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2913         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2914         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2915         * sources/rb-auto-playlist-source.c:
2916         (rb_auto_playlist_source_class_init),
2917         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2918         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2919         (rb_auto_playlist_source_do_query),
2920         (rb_auto_playlist_source_set_query),
2921         (rb_auto_playlist_source_browser_changed_cb),
2922         (search_action_changed):
2923         * sources/rb-auto-playlist-source.h:
2924         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2925         (search_action_changed), (rb_browser_source_constructor),
2926         (rb_browser_source_cmd_choose_artist), (impl_delete),
2927         (rb_browser_source_browser_changed_cb),
2928         (rb_browser_source_do_query):
2929         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2930         (rb_daap_source_finalize), (rb_daap_source_class_init),
2931         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2932         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2933         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2934         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2935         (rb_daap_source_get_headers):
2936         * sources/rb-import-errors-source.c:
2937         (rb_import_errors_source_constructor),
2938         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2939         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2940         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2941         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2942         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2943         (impl_paste), (impl_receive_drag):
2944         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2945         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2946         (impl_song_properties):
2947         * sources/rb-library-source.c: (rb_library_source_constructor),
2948         (rb_library_source_new), (impl_paste),
2949         (rb_library_source_add_child_source):
2950         * sources/rb-missing-files-source.c: (impl_delete),
2951         (impl_get_status):
2952         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2953         (rb_play_queue_source_class_init),
2954         (rb_play_queue_source_constructor):
2955         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2956         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2957         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2958         (rb_playlist_source_new_from_xml),
2959         (rb_playlist_source_save_to_xml):
2960         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2961         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2962         (search_action_changed), (rb_podcast_source_constructor),
2963         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2964         (construct_query_from_selection),
2965         (rb_podcast_source_cmd_download_post),
2966         (rb_podcast_source_cmd_cancel_download),
2967         (rb_podcast_source_cmd_delete_feed),
2968         (rb_podcast_source_start_download_cb),
2969         (rb_podcast_source_finish_download_cb),
2970         (rb_podcast_source_feed_updates_avaliable_cb),
2971         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2972         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2973         (impl_get_status):
2974         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2975         * sources/rb-source.c: (rb_source_get_property),
2976         (default_add_to_queue), (default_move_to_trash),
2977         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2978         (_rb_source_register_action_group):
2979         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2980         (rb_sourcelist_model_is_row_visible),
2981         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2982         (rb_sourcelist_model_row_draggable),
2983         (rb_sourcelist_model_drag_data_get):
2984         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2985         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2986         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2987         (visibility_notify_cb):
2988         * sources/rb-static-playlist-source.c:
2989         (rb_static_playlist_source_class_init),
2990         (rb_static_playlist_source_init),
2991         (rb_static_playlist_source_finalize),
2992         (rb_static_playlist_source_constructor), (impl_delete),
2993         (rb_static_playlist_source_browser_changed_cb),
2994         (rb_static_playlist_source_add_location_internal),
2995         (search_action_changed):
2996         * sources/rb-static-playlist-source.h:
2997         * widgets/rb-druid.c:
2998         * widgets/rb-entry-view.c:
2999         (rb_entry_view_set_shell_player_internal),
3000         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
3001         (rb_entry_view_get_property), (rb_entry_view_new),
3002         (rb_entry_view_button_press_cb):
3003         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
3004         (rb_library_browser_set_property),
3005         (rb_library_browser_get_property):
3006         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
3007         (get_entry_for_property), (get_property_index_from_proptype):
3008         * widgets/rb-song-info.c: (rb_song_info_constructor),
3009         (rb_song_info_finalize), (rb_song_info_set_source_internal),
3010         (rb_song_info_set_property), (rb_song_info_get_property):
3012         More leak and reference counting fixes.  From bug #347446.
3014 2006-07-17  James Livingston  <doclivingston@gmail.com>
3016         * sources/rb-auto-playlist-source.c:
3017         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
3018         rather than setting the base model, as that lets us not import all the
3019         entries from the base model. This fixes some issues whether the search
3020         box wasn't filting automatic playlists.
3022 2006-07-17  James Livingston  <doclivingston@gmail.com>
3024         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
3025         error, which caused blacklist creation to fail.
3027 2006-07-17  James Livingston  <doclivingston@gmail.com>
3029         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
3030         running with -n, because we don't start it then. Fixes a crash on
3031         exit.
3033 2006-07-17  James Livingston  <doclivingston@gmail.com>
3035         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3037         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
3038         Save not Open for the button. Fixes #345816
3040 2006-07-17  James Livingston  <doclivingston@gmail.com>
3042         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3044         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
3045         when track transfer is disabled. Fixes #347705
3047 2006-07-17  James Livingston  <doclivingston@gmail.com>
3049         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
3051         * sources/rb-library-source.c: (impl_get_config_widget): fix build
3052         with track transfer disabled. Fixes #347705
3054 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3056         * rhythmdb/rhythmdb-query-model.c:
3057         (rhythmdb_query_model_set_property):
3058         * shell/main.c: (main):
3059         * shell/rb-shell-clipboard.c: (unset_source_internal),
3060         (rb_shell_clipboard_finalize),
3061         (rb_shell_clipboard_set_source_internal),
3062         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
3063         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
3064         (rb_shell_player_set_db_internal),
3065         (rb_shell_player_set_queue_source_internal),
3066         (rb_shell_player_finalize), (rb_shell_player_set_property):
3067         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
3068         * sources/rb-auto-playlist-source.c:
3069         (rb_auto_playlist_source_constructor),
3070         (rb_auto_playlist_source_new_from_xml):
3071         * sources/rb-daap-source.c: (create_pixbufs):
3072         * sources/rb-ipod-source.c:
3073         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
3074         * sources/rb-library-source.c:
3075         (rb_library_source_add_child_source):
3076         * sources/rb-play-queue-source.c:
3077         (rb_play_queue_sync_playing_state),
3078         (rb_play_queue_source_track_info_cell_data_func):
3079         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3080         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
3081         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
3082         (impl_can_add_to_queue), (impl_add_to_queue):
3083         * sources/rb-source.c: (rb_source_set_property):
3084         * sources/rb-sourcelist.c: (rb_sourcelist_append):
3085         * sources/rb-static-playlist-source.c:
3086         (rb_static_playlist_source_constructor),
3087         (rb_static_playlist_source_load_from_xml):
3088         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3089         * widgets/rb-entry-view.c: (rb_entry_view_init),
3090         (rb_entry_view_finalize), (rb_entry_view_append_column),
3091         (rb_entry_view_constructor):
3092         * widgets/rb-song-info.c: (rb_song_info_set_property):
3093         Fix leaks.  From bug #347446.
3095 2006-07-14  William Jon McCann  <mccann@jhu.edu>
3097         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
3098         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
3099         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
3100         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
3101         (add_decoding_pipeline), (profile_bin_find_encoder),
3102         (get_profile_from_mime_type), (extract_track), (transcode_track),
3103         (rb_encoder_gst_encode):
3104         * backends/gstreamer/rb-encoder-gst.h:
3105         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
3106         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3107         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
3108         (rb_player_gst_construct):
3109         * backends/gstreamer/rb-player-gst.h:
3110         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
3111         * backends/rb-encoder.h:
3112         * backends/rb-player.c: (_rb_player_emit_tick):
3113         * backends/rb-player.h:
3114         * daapsharing/rb-daap-connection.c: (build_message),
3115         (actual_http_response_handler), (http_response_handler),
3116         (http_get), (entry_set_string_prop), (emit_progress_idle),
3117         (handle_server_info), (handle_database_info),
3118         (handle_song_listing), (handle_playlists),
3119         (handle_playlist_entries), (rb_daap_connection_new),
3120         (connected_cb), (rb_daap_connection_do_something),
3121         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
3122         (rb_daap_connection_get_property):
3123         * daapsharing/rb-daap-connection.h:
3124         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
3125         (rb_daap_collision_dialog_new_run):
3126         * daapsharing/rb-daap-dialog.h:
3127         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
3128         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
3129         (DigestToString), (rb_daap_hash_generate):
3130         * daapsharing/rb-daap-hash.h:
3131         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3132         (resolve_cb), (browse_cb):
3133         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
3134         (resolve_cb), (rb_daap_mdns_browser_resolve),
3135         (rb_daap_mdns_browser_start), (resolver_free):
3136         * daapsharing/rb-daap-mdns-browser.h:
3137         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
3138         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
3139         (publish_cb):
3140         * daapsharing/rb-daap-mdns-publisher.h:
3141         * daapsharing/rb-daap-share.c: (name_collision_cb),
3142         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
3143         (message_set_from_rb_daap_structure), (content_codes_cb),
3144         (session_id_validate), (logout_cb), (update_cb),
3145         (add_entry_to_mlcl), (add_playlist_to_mlcl),
3146         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
3147         (rb_daap_share_server_start), (rb_daap_share_server_stop),
3148         (rb_daap_share_publish_start):
3149         * daapsharing/rb-daap-share.h:
3150         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
3151         (share_password_changed_cb), (rb_daap_sharing_shutdown):
3152         * daapsharing/rb-daap-sharing.h:
3153         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
3154         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
3155         (rb_daap_src_open):
3156         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
3157         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
3158         (rb_daap_structure_parse_container_buffer),
3159         (rb_daap_structure_parse), (gnode_find_node),
3160         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
3161         (print_rb_daap_item):
3162         * daapsharing/rb-daap-structure.h:
3163         * iradio/rb-new-station-dialog.c:
3164         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
3165         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
3166         (rb_new_station_dialog_text_changed):
3167         * iradio/rb-station-properties-dialog.c:
3168         (rb_station_properties_dialog_init),
3169         (rb_station_properties_dialog_new),
3170         (rb_station_properties_dialog_response_cb),
3171         (rb_station_properties_dialog_get_current_entry),
3172         (rb_station_properties_dialog_rated_cb),
3173         (rb_station_properties_dialog_update_rating),
3174         (rb_station_properties_dialog_update_playback_error),
3175         (rb_station_properties_dialog_sync_entries):
3176         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
3177         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
3178         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
3179         (rb_metadata_can_save), (rb_metadata_save):
3180         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
3181         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
3182         (_handle_message), (_new_connection), (main):
3183         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
3184         (rb_metadata_dbus_read_from_message):
3185         * metadata/rb-metadata-dbus.h:
3186         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
3187         (rb_add_id3_tagger), (rb_metadata_init),
3188         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
3189         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
3190         (rb_metadata_gst_new_decoded_pad_cb),
3191         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3192         * metadata/sj-error.c: (sj_error_quark):
3193         * metadata/sj-error.h:
3194         * metadata/sj-metadata-musicbrainz.c:
3195         (sj_metadata_musicbrainz_instance_init),
3196         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
3197         (get_rdf), (lookup_cd):
3198         * metadata/sj-metadata.c: (sj_metadata_get_type):
3199         * metadata/sj-structures.c:
3200         * metadata/sj-structures.h:
3201         * metadata/test-metadata.c: (load_metadata_cb), (main):
3202         * podcast/rb-feed-podcast-properties-dialog.c:
3203         (rb_feed_podcast_properties_dialog_init),
3204         (rb_feed_podcast_properties_dialog_update_title):
3205         * podcast/rb-feed-podcast-properties-dialog.h:
3206         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3207         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
3208         (rb_new_podcast_dialog_text_changed):
3209         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3210         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3211         (rb_podcast_manager_set_property),
3212         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
3213         (rb_podcast_manager_download_entry),
3214         (rb_podcast_manager_update_feeds),
3215         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
3216         (rb_podcast_manager_copy_post),
3217         (rb_podcast_manager_thread_parse_feed),
3218         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
3219         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
3220         (download_info_free), (download_info_new), (start_job),
3221         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
3222         (download_progress_cb), (download_progress_update_cb),
3223         (rb_podcast_manager_remove_feed),
3224         (rb_podcast_manager_db_entry_deleted_cb),
3225         (rb_podcast_manager_cancel_download),
3226         (rb_podcast_manager_update_synctime),
3227         (rb_podcast_manager_set_remove_files),
3228         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3229         (rb_podcast_manager_abort_subscribe),
3230         (rb_podcast_manager_get_podcast_dir):
3231         * podcast/rb-podcast-manager.h:
3232         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
3233         (rb_validate_channel_propert), (rb_validate_item_propert),
3234         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3235         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3236         (rb_podcast_parse_date), (rb_podcast_parse_time),
3237         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3238         * podcast/rb-podcast-parse.h:
3239         * podcast/rb-podcast-properties-dialog.c:
3240         (rb_podcast_properties_dialog_init),
3241         (rb_podcast_properties_dialog_get_current_entry),
3242         (rb_podcast_properties_dialog_update_title),
3243         (rb_podcast_properties_dialog_update_duration),
3244         (rb_podcast_properties_dialog_update_date):
3245         * podcast/rb-podcast-properties-dialog.h:
3246         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3247         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3248         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3249         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3250         (g_sequence_search), (g_sequence_set_aggregate_data),
3251         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3252         (find_min), (g_sequence_node_find_by_pos),
3253         (g_sequence_node_find_closest), (g_sequence_node_free),
3254         (g_sequence_node_split), (g_sequence_node_insert_before),
3255         (g_sequence_node_get_length), (g_sequence_node_remove),
3256         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3257         (g_sequence_calc_tree_height):
3258         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3259         (rb_refstring_get):
3260         * rhythmdb/rb-refstring.h:
3261         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3262         (rhythmdb_gda_init), (dump_model), (execute_query),
3263         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3264         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3265         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3266         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3267         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3268         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3269         * rhythmdb/rhythmdb-gda.h:
3270         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3271         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3272         (monitor_library_directory), (rhythmdb_check_changed_file),
3273         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3274         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3275         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3276         * rhythmdb/rhythmdb-private.h:
3277         * rhythmdb/rhythmdb-property-model.c:
3278         (rhythmdb_property_model_set_property),
3279         (rhythmdb_property_model_row_inserted_cb),
3280         (rhythmdb_property_model_prop_changed_cb),
3281         (rhythmdb_property_model_compare),
3282         (rhythmdb_property_model_get_value),
3283         (rhythmdb_property_model_iter_nth_child),
3284         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3285         (rhythmdb_property_model_drag_data_get),
3286         (rhythmdb_property_model_enable_drag),
3287         (rhythmdb_property_model_column_get_type):
3288         * rhythmdb/rhythmdb-property-model.h:
3289         * rhythmdb/rhythmdb-query-model.c:
3290         (rhythmdb_query_model_class_init),
3291         (rhythmdb_query_model_set_property),
3292         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3293         (rhythmdb_query_model_has_pending_changes),
3294         (rhythmdb_query_model_entry_changed_cb),
3295         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3296         (rhythmdb_query_model_add_entry),
3297         (rhythmdb_query_model_remove_from_main_list),
3298         (rhythmdb_query_model_remove_entry),
3299         (rhythmdb_query_model_drag_data_received),
3300         (rhythmdb_query_model_row_drop_possible),
3301         (rhythmdb_query_model_compute_status_normal),
3302         (rhythmdb_query_model_set_sort_order),
3303         (rhythmdb_query_model_get_entry_index),
3304         (rhythmdb_query_model_base_row_inserted),
3305         (rhythmdb_query_model_base_row_deleted),
3306         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3307         (rhythmdb_query_model_date_sort_func),
3308         (rhythmdb_query_model_within_limit):
3309         * rhythmdb/rhythmdb-query-model.h:
3310         * rhythmdb/rhythmdb-query-results.c:
3311         (rhythmdb_query_results_query_complete):
3312         * rhythmdb/rhythmdb-query-results.h:
3313         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3314         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3315         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3316         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3317         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3318         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3319         (rhythmdb_tree_parser_start_element),
3320         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3321         (save_entry), (save_entry_type), (save_unknown_entry_type),
3322         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3323         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3324         (get_or_create_genre), (remove_entry_from_album),
3325         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3326         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3327         (search_match_properties), (evaluate_conjunctive_subquery),
3328         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3329         (conjunctive_query_artists), (conjunctive_query_genre),
3330         (conjunctive_query), (split_query_by_disjunctions),
3331         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3332         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3333         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3334         (rhythmdb_hash_tree_foreach),
3335         (rhythmdb_tree_entry_type_registered):
3336         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3337         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3338         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3339         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3340         (rhythmdb_shutdown), (rhythmdb_finalize),
3341         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3342         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3343         (rhythmdb_entry_example_new),
3344         (set_metadata_string_default_unknown), (is_ghost_entry),
3345         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3346         (rhythmdb_process_metadata_load),
3347         (rhythmdb_process_queued_entry_set_event),
3348         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3349         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3350         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3351         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3352         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3353         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3354         (rhythmdb_entry_delete_by_type),
3355         (rhythmdb_propid_from_nice_elt_name),
3356         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3357         (rhythmdb_compute_status_normal),
3358         (rhythmdb_entry_register_type_alias),
3359         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3360         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3361         (rhythmdb_entry_import_error_get_type),
3362         (rhythmdb_entry_podcast_post_get_type),
3363         (rhythmdb_entry_podcast_feed_get_type),
3364         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3365         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3366         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3367         * rhythmdb/rhythmdb.h:
3368         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3369         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3370         (rb_history_limit_size):
3371         * shell/rb-history.h:
3372         * shell/rb-play-order-linear-loop.c:
3373         (rb_linear_play_order_loop_get_next):
3374         * shell/rb-play-order-linear-loop.h:
3375         * shell/rb-play-order-linear.c:
3376         * shell/rb-play-order-linear.h:
3377         * shell/rb-play-order-queue.c:
3378         (rb_queue_play_order_playing_entry_removed):
3379         * shell/rb-play-order-queue.h:
3380         * shell/rb-play-order-random-by-age-and-rating.c:
3381         * shell/rb-play-order-random-by-age-and-rating.h:
3382         * shell/rb-play-order-random-by-age.c:
3383         (rb_random_by_age_get_entry_weight):
3384         * shell/rb-play-order-random-by-age.h:
3385         * shell/rb-play-order-random-by-rating.c:
3386         * shell/rb-play-order-random-by-rating.h:
3387         * shell/rb-play-order-random-equal-weights.c:
3388         * shell/rb-play-order-random-equal-weights.h:
3389         * shell/rb-play-order-random.c: (rb_random_filter_history),
3390         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3391         (rb_random_db_changed), (rb_random_playing_entry_changed),
3392         (rb_random_db_entry_deleted):
3393         * shell/rb-play-order-shuffle.c: (remove_from_history),
3394         (add_randomly_to_history), (get_query_model_contents),
3395         (rb_shuffle_playing_entry_changed):
3396         * shell/rb-play-order-shuffle.h:
3397         * shell/rb-play-order.c: (rb_play_order_class_init),
3398         (rb_play_order_set_property),
3399         (rb_play_order_playing_source_changed),
3400         (rb_play_order_query_model_changed_cb),
3401         (rb_play_order_query_model_changed),
3402         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3403         * shell/rb-play-order.h:
3404         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3405         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3406         (rb_playlist_manager_set_property),
3407         (rb_playlist_manager_parse_file),
3408         (rb_playlist_manager_load_playlists),
3409         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3410         (rb_playlist_manager_save_playlists),
3411         (rb_playlist_manager_new_playlist),
3412         (rb_playlist_manager_new_playlist_from_selection_data),
3413         (rb_playlist_manager_cmd_new_automatic_playlist),
3414         (rb_playlist_manager_cmd_edit_automatic_playlist),
3415         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3416         (save_playlist_response_cb), (export_set_extension_cb),
3417         (filter_get_export_filter_label), (setup_format_menu),
3418         (rb_playlist_manager_cmd_save_playlist),
3419         (rb_playlist_manager_get_playlists),
3420         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3421         (rb_playlist_manager_delete_playlist),
3422         (rb_playlist_manager_export_playlist):
3423         * shell/rb-playlist-manager.h:
3424         * shell/rb-removable-media-manager.c:
3425         (rb_removable_media_manager_class_init),
3426         (rb_removable_media_manager_dispose),
3427         (rb_removable_media_manager_finalize),
3428         (rb_removable_media_manager_set_property),
3429         (split_drive_from_cdda_uri),
3430         (rb_removable_media_manager_playing_uri_changed_cb),
3431         (rb_removable_media_manager_load_media),
3432         (rb_removable_media_manager_volume_mounted_cb),
3433         (remove_volume_by_source),
3434         (rb_removable_media_manager_source_deleted_cb),
3435         (rb_removable_media_manager_volume_unmounted_cb),
3436         (rb_removable_media_manager_mount_volume),
3437         (rb_removable_media_manager_set_uimanager),
3438         (rb_removable_media_manager_scan), (do_transfer),
3439         (rb_removable_media_manager_cmd_copy_tracks):
3440         * shell/rb-removable-media-manager.h:
3441         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3442         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3443         (rb_shell_clipboard_sync),
3444         (rb_shell_clipboard_idle_poll_deletions),
3445         (rb_shell_clipboard_cmd_add_to_playlist_new),
3446         (rb_shell_clipboard_playlist_add_cb),
3447         (rb_shell_clipboard_playlist_deleted_cb),
3448         (rb_shell_clipboard_playlist_renamed_cb),
3449         (rb_shell_clipboard_playlist_visible_cb),
3450         (rb_shell_clipboard_playlist_added_cb):
3451         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3452         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3453         (rb_shell_player_init), (rb_shell_player_set_property),
3454         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3455         (rb_shell_player_open_location),
3456         (rb_shell_player_set_playing_entry),
3457         (rb_shell_player_play_order_update_cb),
3458         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3459         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3460         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3461         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3462         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3463         (gconf_song_position_slider_visibility_changed),
3464         (rb_shell_player_entry_activated_cb),
3465         (rb_shell_player_property_row_activated_cb),
3466         (rb_shell_player_entry_changed_cb),
3467         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3468         (actually_set_playing_source),
3469         (rb_shell_player_set_playing_source_internal),
3470         (rb_shell_player_get_playing_song_duration), (eos_cb),
3471         (rb_shell_player_error), (error_cb), (info_available_cb),
3472         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3473         (rb_shell_player_error_get_type):
3474         * shell/rb-shell-player.h:
3475         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3476         (rb_shell_preferences_append_page),
3477         (share_check_button_toggled_cb),
3478         (password_check_button_toggled_cb), (add_daap_preferences),
3479         (rb_shell_preferences_column_check_changed_cb),
3480         (rb_shell_preferences_sync_column_button),
3481         (rb_shell_preferences_sync),
3482         (rb_shell_preferences_browser_views_activated_cb):
3483         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3484         (rb_shell_set_property), (rb_shell_get_property),
3485         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3486         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3487         (rb_shell_get_visibility), (rb_shell_set_visibility),
3488         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3489         (rb_shell_register_entry_type_for_source),
3490         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3491         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3492         (rb_shell_player_stream_song_changed_cb),
3493         (rb_shell_set_window_title),
3494         (rb_shell_view_smalldisplay_changed_cb),
3495         (rb_shell_view_queue_as_sidebar_changed_cb),
3496         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3497         (rb_shell_cmd_add_folder_to_library),
3498         (rb_shell_cmd_add_file_to_library),
3499         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3500         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3501         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3502         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3503         (handle_playlist_entry_cb), (rb_shell_load_uri),
3504         (rb_shell_add_to_queue), (rb_shell_present),
3505         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3506         (rb_shell_volume_widget_changed_cb),
3507         (rb_shell_player_volume_changed_cb),
3508         (rb_shell_ui_location_get_type):
3509         * shell/rb-shell.h:
3510         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3511         (rb_source_header_init), (rb_source_header_set_source_internal),
3512         (rb_source_state_sync), (rb_source_header_clear_search),
3513         (rb_source_header_view_browser_changed_cb):
3514         * shell/rb-source-header.h:
3515         * shell/rb-statusbar.c: (rb_statusbar_construct),
3516         (rb_statusbar_init), (rb_statusbar_finalize),
3517         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3518         (rb_statusbar_source_status_changed_cb):
3519         * shell/rb-statusbar.h:
3520         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3521         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3522         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3523         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3524         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3525         (rb_audiocd_create_track_entry):
3526         * sources/rb-auto-playlist-source.c:
3527         (rb_auto_playlist_source_class_init),
3528         (rb_auto_playlist_source_constructor),
3529         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3530         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3531         (rb_auto_playlist_source_query_complete_cb),
3532         (rb_auto_playlist_source_do_query),
3533         (rb_auto_playlist_source_set_query),
3534         (rb_auto_playlist_source_browser_changed_cb),
3535         (search_action_to_prop):
3536         * sources/rb-auto-playlist-source.h:
3537         * sources/rb-browser-source.c: (rb_browser_source_init),
3538         (rb_browser_source_dispose), (search_action_to_prop),
3539         (rb_browser_source_constructor),
3540         (rb_browser_source_cmd_choose_genre),
3541         (rb_browser_source_cmd_choose_artist),
3542         (rb_browser_source_cmd_choose_album), (impl_search),
3543         (rb_browser_source_browser_changed_cb),
3544         (rb_browser_source_do_query):
3545         * sources/rb-browser-source.h:
3546         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3547         (rb_daap_source_init), (rb_daap_source_dispose),
3548         (rb_daap_source_set_property), (start_browsing),
3549         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3550         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3551         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3552         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3553         * sources/rb-daap-source.h:
3554         * sources/rb-import-errors-source.h:
3555         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3556         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3557         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3558         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3559         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3560         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3561         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3562         (generate_ipod_filename), (ipod_path_from_unix_path),
3563         (impl_delete_thyself):
3564         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3565         (rb_iradio_source_init), (rb_iradio_source_constructor),
3566         (rb_iradio_source_new), (guess_uri_scheme),
3567         (rb_iradio_source_add_station),
3568         (rb_iradio_source_async_update_play_statistics),
3569         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3570         (stations_view_drag_data_received_cb),
3571         (rb_iradio_source_cmd_new_station):
3572         * sources/rb-iradio-source.h:
3573         * sources/rb-library-source.c: (rb_library_source_dispose),
3574         (rb_library_source_constructor),
3575         (rb_library_source_location_button_clicked_cb),
3576         (impl_get_config_widget), (rb_library_source_library_location_cb),
3577         (sanitize_path), (filepath_parse_pattern),
3578         (layout_example_label_update),
3579         (rb_library_source_layout_filename_changed), (build_filename),
3580         (impl_can_paste), (impl_paste),
3581         (rb_library_source_add_child_source),
3582         (rb_library_source_sync_child_sources):
3583         * sources/rb-library-source.h:
3584         * sources/rb-missing-files-source.h:
3585         * sources/rb-play-queue-source.c:
3586         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3587         * sources/rb-play-queue-source.h:
3588         * sources/rb-playlist-source-recorder.c:
3589         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3590         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3591         (rb_playlist_source_recorder_init),
3592         (rb_playlist_source_recorder_new):
3593         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3594         (rb_playlist_source_save_playlist),
3595         (rb_playlist_source_entry_added_cb),
3596         (rb_playlist_source_set_query_model),
3597         (rb_playlist_source_add_to_map):
3598         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3599         (rb_podcast_source_init), (rb_podcast_source_dispose),
3600         (rb_podcast_source_finalize), (search_action_to_prop),
3601         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3602         (rb_podcast_source_get_property), (rb_podcast_source_new),
3603         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3604         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3605         (rb_podcast_source_show_browser), (construct_query_from_selection),
3606         (rb_podcast_source_do_query), (impl_get_config_widget),
3607         (rb_podcast_source_btn_file_change_cb),
3608         (posts_view_drag_data_received_cb),
3609         (rb_podcast_source_cmd_download_post),
3610         (rb_podcast_source_cmd_cancel_download),
3611         (rb_podcast_source_cmd_delete_feed),
3612         (rb_podcast_source_cmd_properties_feed),
3613         (rb_podcast_source_cmd_update_feed),
3614         (rb_podcast_source_post_status_cell_data_func),
3615         (rb_podcast_source_post_feed_cell_data_func),
3616         (rb_podcast_source_post_date_cell_data_func),
3617         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3618         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3619         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3620         (impl_get_status):
3621         * sources/rb-podcast-source.h:
3622         * sources/rb-removable-media-source.c:
3623         (rb_removable_media_source_constructor):
3624         * sources/rb-removable-media-source.h:
3625         * sources/rb-source.h:
3626         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3627         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3628         (rb_sourcelist_model_row_is_separator),
3629         (rb_sourcelist_model_drag_data_received),
3630         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3631         (rb_sourcelist_model_row_drop_position),
3632         (rb_sourcelist_model_get_drag_target),
3633         (rb_sourcelist_model_row_draggable),
3634         (rb_sourcelist_model_drag_data_get),
3635         (rb_sourcelist_model_row_inserted_cb),
3636         (rb_sourcelist_model_get_group_path):
3637         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3638         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3639         (rb_sourcelist_visible_source_to_iter),
3640         (rb_sourcelist_edit_source_name),
3641         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3642         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3643         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3644         * sources/rb-static-playlist-source.c:
3645         (rb_static_playlist_source_class_init),
3646         (rb_static_playlist_source_constructor),
3647         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3648         (impl_search), (rb_static_playlist_source_do_query),
3649         (rb_static_playlist_source_browser_changed_cb),
3650         (impl_receive_drag), (impl_save_contents_to_xml),
3651         (rb_static_playlist_source_add_location_swapped),
3652         (search_action_to_prop):
3653         * sources/rb-static-playlist-source.h:
3654         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3655         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3656         (egg_tray_icon_get_orientation_property),
3657         (egg_tray_icon_send_manager_message),
3658         (egg_tray_icon_update_manager_window),
3659         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3660         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3661         * widgets/eggtrayicon.h:
3662         * widgets/rb-cell-renderer-pixbuf.c:
3663         (rb_cell_renderer_pixbuf_get_property),
3664         (rb_cell_renderer_pixbuf_set_property),
3665         (rb_cell_renderer_pixbuf_get_size),
3666         (rb_cell_renderer_pixbuf_render),
3667         (rb_cell_renderer_pixbuf_activate):
3668         * widgets/rb-cell-renderer-rating.c:
3669         (rb_cell_renderer_rating_class_init),
3670         (rb_cell_renderer_rating_get_property),
3671         (rb_cell_renderer_rating_set_property),
3672         (rb_cell_renderer_rating_get_size),
3673         (rb_cell_renderer_rating_render),
3674         (rb_cell_renderer_rating_activate):
3675         * widgets/rb-dialog.c:
3676         * widgets/rb-dialog.h:
3677         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3678         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3679         (rb_druid_page3_finish_cb):
3680         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3681         (rb_entry_view_init), (rb_entry_view_set_property),
3682         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3683         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3684         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3685         (rb_entry_view_set_sorting_order),
3686         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3687         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3688         (rb_entry_view_playing_song_changed),
3689         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3690         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3691         (rb_entry_view_set_fixed_column_width),
3692         (rb_entry_view_get_time_date_column_sample),
3693         (rb_entry_view_state_get_type):
3694         * widgets/rb-entry-view.h:
3695         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3696         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3697         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3698         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3699         (update_browser_property_visibilty),
3700         (rb_library_browser_construct_query), (restore_selection),
3701         (rebuild_child_model), (rb_library_browser_set_selection),
3702         (rb_library_browser_set_model):
3703         * widgets/rb-library-browser.h:
3704         * widgets/rb-property-view.c: (rb_property_view_class_init),
3705         (rb_property_view_set_property), (rb_property_view_reset),
3706         (rb_property_view_get_model), (rb_property_view_constructor),
3707         (rb_property_view_set_selection),
3708         (rb_property_view_selection_changed_cb),
3709         (rb_property_view_button_press_cb),
3710         (rb_property_view_set_search_func):
3711         * widgets/rb-query-creator-private.h:
3712         * widgets/rb-query-creator-properties.c:
3713         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3714         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3715         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3716         (relativeTimeCriteriaCreateWidget),
3717         (relativeTimeCriteriaSetWidgetData):
3718         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3719         (rb_query_creator_dispose), (rb_query_creator_load_query),
3720         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3721         (get_property_index_from_proptype), (select_criteria_from_value),
3722         (create_property_option_menu), (create_criteria_option_menu),
3723         (sort_option_menu_changed), (setup_sort_option_menu):
3724         * widgets/rb-query-creator.h:
3725         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3726         (rb_rating_render_stars):
3727         * widgets/rb-rating-helper.h:
3728         * widgets/rb-rating.c: (rb_rating_expose):
3729         * widgets/rb-rating.h:
3730         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3731         (rb_search_entry_timeout_cb):
3732         * widgets/rb-search-entry.h:
3733         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3734         (rb_song_info_constructor), (rb_song_info_new),
3735         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3736         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3737         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3738         (rb_song_info_query_model_changed_cb),
3739         (rb_song_info_sync_entries_multiple),
3740         (rb_song_info_sync_entry_single):
3741         Strip all trailing whitespace.  Fixes #344293.
3743 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3745         * doc/reference/Makefile.am: Fix GTK Doc Build
3747 2006-07-13  James Livingston  <doclivingston@gmail.com>
3749         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3751         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3752         instead of the LOCATION, and don't try to get the directory listing
3753         for http URI schemes
3755         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3756         invalid utf8 in the error message, since apparently it can happen.
3758 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3760         * sources/rb-import-errors-source.c:
3761         (rb_import_errors_source_class_init),
3762         (rb_import_errors_source_init),
3763         (rb_import_errors_source_constructor),
3764         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3765         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3766         * sources/rb-missing-files-source.c:
3767         (rb_missing_files_source_class_init),
3768         (rb_missing_files_source_init),
3769         (rb_missing_files_source_constructor),
3770         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3771         (rb_missing_files_source_songs_sort_order_changed_cb),
3772         (impl_get_status):
3773         * sources/rb-source.c: (rb_source_class_init),
3774         (rb_source_finalize), (update_visibility_idle),
3775         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3776         (rb_source_set_property), (rb_source_get_property),
3777         (default_get_status), (rb_source_update_play_statistics),
3778         (default_add_to_queue), (_rb_source_show_popup),
3779         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3780         (rb_source_gather_selected_properties),
3781         (_rb_source_register_action_group):
3782         * sources/rb-source.h:
3783         * sources/rb-sourcelist.c: (visibility_notify_cb):
3784         Don't use a fake model for import-errors and missing-files
3785         sources.  Add a new source property "hidden-when-empty".
3786         Update source visibility in an idle.  Clean up some whitespace.
3787         From bug #346800
3789 2006-07-12  James Livingston  <doclivingston@gmail.com>
3791         * bindings/python/rb.defs:
3792         * bindings/python/rb.override: bind rb_error_dialog
3794         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3795         the current working directory for uninstalled plugins, and add the
3796         class name to the method name.
3798 2006-07-12  James Livingston  <doclivingston@gmail.com>
3800         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3801         the sources EOF type if it's NULL. Fixes #346284.
3803 2006-07-12  James Livingston  <doclivingston@gmail.com>
3805         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3806         I accidently committed. Nothing to see here, move along...
3808 2006-07-11  James Livingston  <doclivingston@gmail.com>
3810         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3811         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3812         Unknown.
3814 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3816         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3818 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3820         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3821         Don't try to set mtime if we've deleted the entry.
3823 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3825         * bindings/python/rhythmdb.defs:
3826         * rhythmdb/rhythmdb.c:
3827         * rhythmdb/rhythmdb.h:
3828         * rhythmdb/rhythmdb-private.h:
3829         * rhythmdb/rhythmdb-query.c:
3830         Move data structures holding registered entry types inside the
3831         RhythmDB object, and add a vfunc called when new types are registered.
3832         Add a flag to RhythmDBEntryType specifying whether entries of the type
3833         should be saved to the on-disk database.
3835         * sources/rb-audiocd-source.c:
3836         * sources/rb-daap-source.c:
3837         * sources/rb-ipod-source.c:
3838         * plugins/generic-player/rb-generic-player-source.c:
3839         * plugins/generic-player/rb-nokia770-source.c:
3840         * plugins/generic-player/rb-psp-source.c:
3841         Adjust to the above changes.
3843         * rhythmdb/rhythmdb-tree.c:
3844         If the type for an entry hasn't been registered yet, store the entry's
3845         properties as-is, and convert them to a real entry when the type is
3846         registered.  If the type doesn't get registered, save the entry back
3847         to the database unmodified.  From #330226.
3849 2006-07-10  James Livingston  <doclivingston@gmail.com>
3851         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3852         os.path.unlink to os.unlink, so removing stuff works.
3854 2006-07-10  James Livingston  <doclivingston@gmail.com>
3856         patch by: Ed Catmur  <ed@catmur.co.uk>
3857               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3859         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3860         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3861         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3862         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3863         internals of the cover database and Amazon lookup engine, and add
3864         support for loading art from the local file system. Fixes #345688.
3866         * plugins/rb/Coroutine.py:
3867         * plugins/rb/Makefile.am:
3868         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3869         plugin classes.
3871 2006-07-10  James Livingston  <doclivingston@gmail.com>
3873         * tests/Makefile.am: don't run the benchmark when doing "make check"
3875         * po/POTFILES.in: more build fixes, from Matti Lindell
3876         <feenixx@hotmail.com>. Fixes #347049.
3879 2006-07-10  James Livingston  <doclivingston@gmail.com>
3881         * plugins/cd-recorder/Makefile.am: build fixes
3883         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3884         attempt to change properties if we couldn't create an entry.
3886         * shell/rb-source-header.c: (rb_source_header_init),
3887         (rb_source_header_view_browser_changed_cb),
3888         (rb_source_header_sync_control_state):
3889         * shell/rb-tray-icon.c:
3890         * widgets/Makefile.am:
3891         * widgets/disclosure-widget.c:
3892         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3893         widget, as it hasn't been used for a while.
3895 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3897         * Makefile.am:
3898         * configure.ac:
3899         * data/ui/rhythmbox-ui.xml:
3900         * plugins/Makefile.am:
3901         * plugins/cd-recorder/.cvsignore:
3902         * plugins/cd-recorder/Makefile.am:
3903         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3904         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3905         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3906         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3907         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3908         (playlist_row_inserted_cb), (update_source),
3909         (shell_selected_source_notify_cb), (impl_activate),
3910         (impl_deactivate):
3911         * shell/Makefile.am:
3912         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3913         (rb_playlist_manager_cmd_save_playlist):
3914         * shell/rb-shell.c: (rb_shell_select_source):
3915         * sources/Makefile.am:
3916         * sources/rb-playlist-source-recorder.c:
3917         (rb_playlist_source_recorder_new):
3918         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3919         (rb_playlist_source_add_to_map):
3920         * sources/rb-playlist-source.h:
3921         Move cd burning into a plugin.  Fixes #344300.
3923 2006-07-10  James Livingston  <doclivingston@gmail.com>
3925         * lib/eel-gconf-extensions.c:
3926         * shell/rb-shell.c: remove some ununsed gnomeui includes
3928         * widgets/Makefile.am:
3929         * widgets/rb-song-display-box.c:
3930         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3931         since it isn't acutally used anywhere. Fixes #346926
3933 2006-07-09  James Livingston  <doclivingston@gmail.com>
3935         * bindings/python/rb.defs:
3936         * bindings/python/rb.override:
3937         * lib/rb-debug.c: (rb_debug_real):
3938         * lib/rb-debug.h:
3939         * plugins/rb/__init__.py: don't print out an extra newline when
3940         diverting python print statements to RB's debug log.
3942 2006-07-09  James Livingston  <doclivingston@gmail.com>
3944         * rhythmdb/rhythmdb-property-model.c:
3945         (rhythmdb_property_model_drag_data_get):
3946         * sources/rb-sourcelist-model.c:
3947         (rb_sourcelist_model_row_draggable),
3948         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3949         from the row reference is still valid. Fixes #346709.
3951 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3953         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3955         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3956         If all selected entries have the same rating, use that as the initial
3957         rating for the multiple song info dialog.  Fixes #345970.
3959 2006-07-09  James Livingston  <doclivingston@gmail.com>
3961         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3962         to prevent #343345:
3963                 - don't ever scale to 1x1, just hide the image in that case
3964                 - don't fade when the window is minimised
3965                 - use the last-good allocation width, not the current one - as
3966                   it sometimes get weird values.
3968 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3970         * data/ui/rhythmbox-ui.xml:
3971         * shell/rb-shell.c:
3972         Remove Import audio CD from menu.  Fixes #339732
3974 2006-07-08  James Livingston  <doclivingston@gmail.com>
3976         * metadata/test-metadata.c: (print_metadata_string),
3977         (load_metadata_cb): print out all the metadata we have read, not just
3978         a few.
3980         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3981         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3983 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3985         * plugins/lyrics/lyrics.py:
3986         Change the lyrics cache location to match Quod Libet's,
3987         and fix the '&' -> 'and' substitution to require spaces.
3989 2006-07-08  James Livingston  <doclivingston@gmail.com>
3991         * bindings/python/rb.defs:
3992         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3994         * configure.ac:
3995         * plugins/Makefile.am:
3996         * plugins/rb-python-module.c: (rb_python_module_init_python):
3997         * plugins/rb/Makefile.am: add a place to put common python classes.
3998         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3999         rb module/
4001         * plugins/lyrics/Makefile.am:
4002         * plugins/lyrics/Loader.py:
4003         * plugins/artdisplay/artdisplay/Makefile.am:
4004         * plugins/artdisplay/artdisplay/Loader.py:
4005         * plugins/rb/Loader.py: move the loader class to rb.Loader
4007         * plugins/rb/__init__.py: redirect stdout from python (e.g.
4008         "print ...") to rb_debug. error output (e.g. exceptions) are still
4009         printed on stderr.
4011         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4012         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4013         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
4014         instead of Loader.
4016         Fixes #346895.
4018 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4020         * shell/rb-shell-player.xml:
4021         * shell/rb-shell-player.h:
4022         Correct the details of the playing-song-property-changed signal.
4024 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4026         * lib/rb-marshal.list:
4027         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4028         (rb_shell_player_entry_changed_cb):
4029         * shell/rb-shell-player.h:
4030         * shell/rb-shell-player.xml:
4031         Emit a dbus signal when a property is changed on the playing entry.
4032         Fixes #332461.
4034 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4036         * rhythmdb/rhythmdb-private.h:
4037         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4038         Fix build break with gcc 4.1 by changing RBRefString pointers into
4039         gpointers.
4041 2006-07-07  James Livingston  <doclivingston@gmail.com>
4043         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
4044         remove an extraneous !, which caused it not to monitor folders in the
4045         library with no tracks in them. Fixes #346759.
4047 2006-07-07  James Livingston  <doclivingston@gmail.com>
4049         * rhythmdb/rhythmdb-private.h:
4050         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4051         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
4052         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
4053         (rhythmdb_entry_get_string):
4054         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
4055         flags for the affected properties. _sync_mirrored will get run
4056         automatically when a dirty property is accessed, which improves
4057         performance a bit (especially during startup) as we don't need to sync
4058         every time they change. From #325215.
4060         * tests/bench-rhythmdb-load.c
4061         * tests/Makefile.am: add a RhythmDB loading benchmark.
4063 2006-07-06  James Livingston  <doclivingston@gmail.com>
4065         * bindings/python/rb.defs:
4066         * bindings/python/rb.override: some more fixes, so that
4067         python classes derived from RBSource work correctly.
4069 2006-07-06  James Livingston  <doclivingston@gmail.com>
4071         * configure.ac: bump pygtk requirements to 2.8, since we're already
4072         using some features of it, and weird things will happen if people are
4073         actually trying to use pygtk 2.6.
4075         * bindings/python/rb.override:
4076         * bindings/python/rhythmdb.defs:
4077         * bindings/python/rhythmdb.override: allow python to set
4078         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
4080         * sources/rb-browser-source.c: remove some left over member variables
4082 2006-07-06  James Livingston  <doclivingston@gmail.com>
4084         * rhythmdb/rhythmdb.c:
4085         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4086         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
4087         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
4088         former is pointless (as rhythmdb already knows which it should use)
4089         and the latter doesn't seem useful at all, and possibly bad. From
4090         #330226.
4092         * bindings/python/rhythmdb.defs:
4093         * bindings/python/rhythmdb.override:
4094         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
4095         (handle_song_listing):
4096         * podcast/rb-podcast-manager.c:
4097         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
4098         (rb_podcast_manager_insert_feed):
4099         * sources/rb-audiocd-source.c: (entry_set_string_prop),
4100         (rb_audiocd_create_track_entry):
4101         * sources/rb-ipod-source.c: (entry_set_string_prop),
4102         (add_ipod_song_to_db):
4103         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
4104         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
4106 2006-07-05  James Livingston  <doclivingston@gmail.com>
4108         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4109         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
4110         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
4111         totem-plparser gives us, or the file name if it doesn't give us
4112         anything. Set the default file name when saving too. Fixes #345261
4114 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4116         patch by: Ed Catmur  <ed@catmur.co.uk>
4118         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
4119         Skip all hidden directories, not just trash, and skip unreadable
4120         files.  Fixes #346322.
4122 2006-07-04  James Livingston  <doclivingston@gmail.com>
4124         * plugins/rb-module.h:
4125         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
4126         (rb_module_new):
4127         * plugins/rb-plugin.h:
4128         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
4129         (rb_plugin_finalise), (rb_plugin_set_property),
4130         (rb_plugin_get_property), (rb_plugin_activate),
4131         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
4132         (rb_plugin_find_file):
4133         * plugins/rb-plugins-engine.c: (load_plugin_module):
4134         * plugins/rb-python-module.c: (rb_python_module_new_object),
4135         (rb_python_module_new):
4136         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
4137         rb_plugin_find_file method for locating plugin-specific data. Fixes
4138         346473.
4140         * bindings/python/rb.defs:
4141         * plugins/Makefile.am:
4142         * plugins/generic-player/rb-generic-player-plugin.c:
4143         (create_source_cb):
4144         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
4146 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4148         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
4149         (rb_metadata_can_save), (rb_metadata_save):
4150         Protect the dbus connection with a mutex.
4152 2006-07-03  James Livingston  <doclivingston@gmail.com>
4154         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
4155         case of the parser/tagger not being able to be created.
4157 2006-07-03  James Livingston  <doclivingston@gmail.com>
4159         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4161         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
4162         window resizable, as it used to be. Fixes #345940.
4164 2006-07-01  James Livingston  <doclivingston@gmail.com>
4166         Patch from Ståle Lyngaas  <staale@lyngaas.com>
4168         * rhythmdb/rhythmdb.h:
4169         * rhythmdb/rhythmdb-private.h:
4170         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4171         (rhythmdb_tree_parser_end_element), (save_entry):
4172         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
4173         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
4174         (set_props_from_metadata), (rhythmdb_entry_set_internal),
4175         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
4176         MusicBrainz track IDs in the database, and bump the on-disk version
4177         number to trigger a metadata reload.
4179         * backends/gstreamer/rb-player-gst.c: (process_tag):
4180         * metadata/rb-metadata-common.c:
4181         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
4182         (rb_metadata_gst_field_to_gst_tag):
4183         * metadata/rb-metadata.h: grab MB track IDs and use them.
4185         * plugins/audioscrobbler/rb-audioscrobbler.c:
4186         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4187         (rb_audioscrobbler_timeout_cb),
4188         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
4189         the other metadata. Fixes #343491.
4191 2006-06-30  James Livingston  <doclivingston@gmail.com>
4193         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
4194         method.
4196 2006-06-30  James Livingston  <doclivingston@gmail.com>
4198         * bindings/python/rb.defs:
4199         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4200         (rb_browser_source_songs_show_popup_cb),
4201         (default_show_entry_popup):
4202         * sources/rb-browser-source.h:
4203         * sources/rb-library-source.c: (rb_library_source_class_init),
4204         (rb_library_source_constructor), (impl_show_popup): allow
4205         RBBrowserSource-derived sources to override the entry context menu
4206         properly - by making it a virtual function, rather than relying on
4207         signal handler order (which doesn't really work).
4209 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4211         * rhythmdb/rhythmdb-query-model.c:
4212         (rhythmdb_query_model_reapply_query_cb):
4213         Use the original query, not the preprocessed query, when redoing
4214         the query to pick up entries that previously didn't match.
4215         Preprocessing the query twice is bad.  Fixes #346186.
4217 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4219         * plugins/audioscrobbler/rb-audioscrobbler.c:
4220         (rb_audioscrobbler_song_changed_cb):
4221         Just check if the elapsed time has been reset, rather
4222         than checking if it's a different track.  Fixes #344827.
4224 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4226         * backends/gstreamer/rb-player-gst.c:
4227         Set cdda source read-speed to 1.  Fixes gaps in playback while the
4228         drive spins up, #344576.
4230 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4232         * plugins/audioscrobbler/rb-audioscrobbler.c:
4233         (rb_audioscrobbler_perform):
4234         Use HTTP/1.1.  Fixes #345895.
4236 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4238         * lib/rb-preferences.h:
4239         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4240         (check_auto_proxy_config), (get_proxy_config):
4241         Don't try to use a HTTP proxy if no proxy host is specified.
4242         Alert the user to the fact that we don't support automatic proxy
4243         configuration as infrequently as possible.  From #345712.
4245 2006-06-25  James Livingston  <doclivingston@gmail.com>
4247         * rhythmdb/rhythmdb-property-model.c:
4248         (rhythmdb_property_model_set_property): connect to the
4249         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4250         things get removed correctly, fixes #338183.
4252 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4254         * rhythmdb/rhythmdb-query-model.c:
4255         (rhythmdb_query_model_drag_data_received):
4256         Fix build break.
4258 2006-06-25  James Livingston  <doclivingston@gmail.com>
4260         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4262         * widgets/rb-search-entry.c: (rb_search_entry_init),
4263         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4264         search box have a pale yellow background when it's in use, except for
4265         when the user has an "accessability" theme. Code based heavily on
4266         Epiphany's. Fixes #344416.
4268 2006-06-25  James Livingston  <doclivingston@gmail.com>
4270         * plugins/lyrics/lyrics.py:
4271         * plugins/pythonconsole/pythonconsole.py:
4272         * plugins/sample-python/sample-python.py: don't import gettext stuff
4273         as _, as the C code does this for us. Fixes i18n for python plugins,
4274         #343081
4276 2006-06-25  James Livingston  <doclivingston@gmail.com>
4278         * rhythmdb/rhythmdb-query-model.c:
4279         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4280         a model use a reorder rather then deleting and re-adding the entry.
4281         This means it does do weird things like stop playback of a track that
4282         is dragged, fixing #337657.
4284 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4286         * metadata/rb-metadata-dbus-service.c:
4287         Add missing #include <glib/gi18n.h> from previous commit.
4289 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4291         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4293         * metadata/rb-metadata-dbus-service.c: (main):
4294         Initialize gettext in the metadata helper.
4295         * metadata/rb-metadata-gst.c:
4296         Make some strings translatable.  Fixes #345286.
4298 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4300         * configure.ac:
4301         * lib/Makefile.am:
4302         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4303         Inline the custom icons so they can always be loaded, but are still
4304         themable.  Fixes #345796.
4306 2006-06-23  James Livingston  <doclivingston@gmail.com>
4308         * sources/rb-auto-playlist-source.c:
4309         (rb_auto_playlist_source_do_query): stop the search box being applied
4310         for limits in auto playlists. Fixes #345307.
4312 2006-06-23  James Livingston  <doclivingston@gmail.com>
4314         * shell/rb-shell-clipboard.c:
4315         (rb_shell_clipboard_set_source_internal),
4316         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4317         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4318         non-library tracks, as we don't supprot it yet. From #345248.
4320 2006-06-23  James Livingston  <doclivingston@gmail.com>
4322         patch by: Brian Cameron  <brian.cameron@sun.com>
4324         * plugins/generic-player/rb-generic-player-plugin.c:
4325         * plugins/generic-player/rb-generic-player-source.c:
4326         * plugins/generic-player/rb-nokia770-source.c:
4327         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4328         Fixes 345673.
4330 2006-06-22  James Livingston  <doclivingston@gmail.com>
4332         * backends/rb-player.c: (rb_player_interface_init):
4333         * lib/rb-marshal.list:
4334         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4335         * rhythmdb/rhythmdb-query-model.c:
4336         (rhythmdb_query_model_class_init):
4337         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4338         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4339         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4340         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4341         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4342         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4343         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4344         possible not.
4346 2006-06-20  James Livingston  <doclivingston@gmail.com>
4348         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4350         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4351         metadata to clients. Fixes #345276.
4353 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4355         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4356         (rb_add_id3_tagger):
4357         Fix plugin/element version detection for id3v2mux.
4359 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4361         * sources/rb-source.c: (rb_source_finalize),
4362         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4363         (_autohide_update_visibility),
4364         (_rb_autohide_source_post_entry_deleted_cb),
4365         (_rb_autohide_source_row_inserted_cb),
4366         (_rb_source_hide_when_empty):
4367         Use post-entry-delete signal to update status and autohide sources.
4369 2006-06-20  James Livingston  <doclivingston@gmail.com>
4371         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4372         "selection changed" idle callback, if present.
4374 2006-06-19  James Livingston  <doclivingston@gmail.com>
4376         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4378         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4379         don't try to translate the empty string. Fixes #345285.
4381 2006-06-19  James Livingston  <doclivingston@gmail.com>
4383         * bindings/python/rhythmdb.override: more python binding fixes
4385 2006-06-19  James Livingston  <doclivingston@gmail.com>
4387         * lib/rb-util.c: (rb_copy_function):
4388         * lib/rb-util.h: add a function that returns the same pointer it was
4389         passed.
4391         * rhythmdb/rhythmdb.h:
4392         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4393         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4394         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4395         and RhythmDBEntryType into boxed types. This allows them to be used
4396         from python. Note that entry-types aren't actually reference counted
4397         (yet).
4399         * bindings/python/rb.defs:
4400         * bindings/python/rhythmdb.defs:
4401         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4402         return types of some bindings.
4404         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4405         (process_added_entries_cb), (rhythmdb_entry_finalize),
4406         (rhythmdb_entry_delete):
4407         * daapsharing/rb-daap-connection.c:
4408         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4409         (rb_daap_connection_get_property):
4410         * plugins/generic-player/rb-generic-player-source.c:
4411         (rb_generic_player_source_load_songs), (load_playlist_file):
4412         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4413         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4414         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4415         (idle_process_update), (rhythmdb_query_model_add_entry),
4416         (rhythmdb_query_model_insert_into_main_list),
4417         (rhythmdb_query_model_insert_into_limited_list),
4418         (rhythmdb_query_model_remove_from_main_list),
4419         (rhythmdb_query_model_remove_from_limited_list),
4420         (rhythmdb_query_model_drag_data_received),
4421         (rhythmdb_query_model_add_results),
4422         (rhythmdb_query_model_get_column_type),
4423         (rhythmdb_query_model_get_value):
4424         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4425         (rhythmdb_tree_entry_delete), (remove_one_song):
4426         * shell/rb-play-order-linear-loop.c:
4427         (rb_linear_play_order_loop_get_next),
4428         (rb_linear_play_order_loop_get_previous):
4429         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4430         (rb_linear_play_order_get_previous):
4431         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4432         (rb_queue_play_order_get_previous):
4433         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4434         (rb_random_filter_history), (rb_random_play_order_get_next),
4435         (rb_random_play_order_go_next), (rb_random_db_changed),
4436         (rb_random_playing_entry_changed):
4437         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4438         (remove_from_history), (add_randomly_to_history),
4439         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4440         * shell/rb-play-order.c: (rb_play_order_class_init),
4441         (rb_play_order_set_property), (rb_play_order_get_property),
4442         (rb_play_order_update_have_next_previous):
4443         * shell/rb-play-order.h:
4444         * shell/rb-shell-clipboard.c:
4445         (rb_shell_clipboard_process_deletions),
4446         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4447         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4448         * sources/rb-auto-playlist-source.c:
4449         (rb_auto_playlist_source_constructor):
4450         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4451         (rb_browser_source_set_property), (rb_browser_source_get_property),
4452         (rb_browser_source_do_query):
4453         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4454         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4455         * sources/rb-ipod-source.c: (add_rb_playlist),
4456         (add_ipod_song_to_db), (impl_paste):
4457         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4458         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4459         * sources/rb-library-source.c: (layout_example_label_update):
4460         * sources/rb-missing-files-source.c:
4461         (rb_missing_files_source_class_init),
4462         (rb_missing_files_source_set_property),
4463         (rb_missing_files_source_get_property),
4464         (rb_missing_files_source_new):
4465         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4466         (rb_playlist_source_set_property),
4467         (rb_playlist_source_get_property):
4468         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4469         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4470         (construct_query_from_selection):
4471         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4472         * sources/rb-static-playlist-source.c:
4473         (rb_static_playlist_source_constructor),
4474         (rb_static_playlist_source_add_location_internal):
4475         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4476         * widgets/rb-header.c: (rb_header_class_init),
4477         (rb_header_set_property), (rb_header_get_property):
4478         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4479         (rb_library_browser_set_property),
4480         (rb_library_browser_get_property):
4481         * widgets/rb-song-info.c: (rb_song_info_class_init),
4482         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4483         change, do s/pointer/boxed/ in many places and free entry-types
4484         properly.
4486 2006-06-18  James Livingston  <doclivingston@gmail.com>
4488         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4489         unushed GThreadPool non-exclusive threads every now and then.
4491         * rhythmdb/rhythmdb-private.h:
4492         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4493         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4494         threads. Fixes #341593
4496 2006-06-19  James Livingston  <doclivingston@gmail.com>
4498         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4499         the "Track number" checkbox actually work for playlists. From #329986.
4501 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4503         * plugins/generic-player/rb-generic-player-source.c:
4504         Get playlist and audio folder information from HAL.  Fixes #333845.
4506 2006-06-18  James Livingston  <doclivingston@gmail.com>
4508         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4510         * widgets/rb-entry-view.h:
4511         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4512         (rb_entry_view_append_column_custom),
4513         (rb_entry_view_insert_column_custom): add support for inserting custom
4514         columns at arbitrary locations, rather than just appending to the end.
4516         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4517         the playlists "track number" column go at the start, and add a normal
4518         track number column. Fixes #329986.
4520 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4522         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4523         a mnemonic conflict.  Add ellipses to the edit button.
4524         * sources/rb-library-source.c:
4525         (rb_library_source_edit_profile_clicked_cb),
4526         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4527         mnemonic widget to the labels. Fixes #344114.
4529 2006-06-18  James Livingston  <doclivingston@gmail.com>
4531         * configure.ac: bump version
4532         * NEWS: add NEWS for 0.9.5
4534 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4536         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4537         (rb_uri_handle_recursively):
4538         Don't attempt to recurse into directories we can't open.  
4539         Fixes #341485.
4541 2006-06-18  James Livingston  <doclivingston@gmail.com>
4543         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4545         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4546         #344610.
4548 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4550         * bindings/python/rb.defs:
4551         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4552         * shell/rb-shell-player.h:
4553         * shell/rb-shell.c: (rb_shell_play_entry):
4554         Add source parameter to rb_shell_player_play_entry, using the selected
4555         source if not specified.
4557         * shell/rb-play-order.c: (rb_play_order_class_init),
4558         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4559         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4560         (default_playing_entry_removed):
4561         * shell/rb-play-order.h:
4562         Move entry removal handling back to the row-deleted signal, as we need
4563         the entry to be present in the model.  When changing to the next entry
4564         after the playing entry is deleted, set the new entry as the playing
4565         entry and then sync it to the player in an idle handler, so we don't
4566         end up playing it if it was removed too.
4567         * shell/rb-play-order-queue.c:
4568         (rb_queue_play_order_playing_entry_changed),
4569         (rb_queue_play_order_playing_entry_removed):
4570         Use the playing-entry-removed handler from the play order class,
4571         setting a flag so we don't try to remove the already-removed entry
4572         from the model.
4574         This makes removal of the playing entry from playlists etc. work more
4575         or less correctly for all play orders.  Fixes #344627.
4577 2006-06-17  James Livingston  <doclivingston@gmail.com>
4579         patch by: Elijah Newren  <newren@gmail.com>
4581         * tests/test-rhythmdb.c: fix the build with older versions of check
4582         (again). Fixes #343718.
4584 2006-06-17  James Livingston  <doclivingston@gmail.com>
4586         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4587         name for capsfilter's "caps" property. Fixes #344968.
4589 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4591         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4592         Don't leak the selected entry list when finding an entry to play.
4594 2006-06-17  James Livingston  <doclivingston@gmail.com>
4596         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4597         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4598         as a O(1) one works fine, and it will get called often when the user
4599         deleted multiple tracks. Part of #344922.
4601 2006-06-17  James Livingston  <doclivingston@gmail.com>
4603         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4604         rb_shell_player_stop and rb_shell_player_playpause not mutually
4605         recursive. Fixed #336912.
4607 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4609         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4610         Treat nested elements inside properties as unknown.  Fixes parsing of
4611         podcast feeds with unescaped HTML in description tags, bug #344532.
4613 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4615         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4616         when quitting.  Fixes #344875.
4618 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4620         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4621         Move the playing-entry-removed handling to after the normal entry
4622         delete handling, since we're called after the entry has been removed
4623         from the query model now.  Fixes crashes described in #344627.
4625 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4627         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4628         (rb_rating_get_rating_from_widget):
4629         * widgets/rb-rating.c: (rb_rating_class_init),
4630         (rb_rating_finalize), (rb_rating_get_property),
4631         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4632         (rb_rating_button_press_cb):
4633         Don't crash when ratings icons can't be found.  Fixes #344533.
4635 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4637         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4639 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4641         * Makefile.am:
4642         * configure.ac:
4643         * remote/Makefile.am:
4644         * remote/dbus/Makefile.am:
4645         * remote/dbus/rb-client.c:
4646         * shell/Makefile.am:
4647         New dbus client program providing --play/--next etc. arguments.
4648         Fixes #340863, #155763.
4650 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4652         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4653         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4655 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4657         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4659         * rhythmdb/rhythmdb-query-model.c:
4660         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4661         to Library incorrectly
4663 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4665         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4666         Return input string untouched if gnome_vfs_uri_new returns NULL.
4667         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4668         (rb_static_playlist_source_add_list_uri):
4669         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4670         URIs don't break it.  Fixes #339033.
4672 2006-06-08  James Livingston  <doclivingston@gmail.com>
4674         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4675         for sources on the edge (i.e. the queue). Fixes #328409.
4677         * sources/rb-ipod-source.c: fix typo
4679 2006-06-08  James Livingston  <doclivingston@gmail.com>
4681         * configure.ac:
4682         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4683         --enable-ipod-writing to enable the ipod syncing code.
4685 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4687         * sources/rb-library-source.c: (layout_example_label_update):
4688         add missing comma so we don't generate broken markup.
4690 2006-06-08  James Livingston  <doclivingston@gmail.com>
4692         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4693         tag-merging with id3v2mux as well as id3mux. From #342330.
4695 2006-06-07  James Livingston  <doclivingston@gmail.com>
4697         * tests/test-rhythmdb.c: #define fail_if for old version of check
4698         which don't have it. Hopefully fixes #343718.
4700 2006-06-07  James Livingston  <doclivingston@gmail.com>
4702         * shell/rb-playlist-manager.c:
4703         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4704         g_value_array_free with NULL. Fixes #341053.
4706 2006-06-07  James Livingston  <doclivingston@gmail.com>
4708         * shell/rb-playlist-manager.c:
4709         (rb_playlist_manager_playlist_entries_changed),
4710         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4711         instead of "row-removed", which fixes updating "burn playlist"
4712         sensitivity. Fixes #331119.
4714 2006-06-07  James Livingston  <doclivingston@gmail.com>
4716         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4717         rather than restarting if the source uses _RETRY and there is an
4718         actual error (like an undecodable stream) rather than it just dropping
4719         out and causing EOS.
4721 2006-06-07  James Livingston  <doclivingston@gmail.com>
4723         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4724         free the pixbufs if they couldn't be loaded. Fixed #343852.
4726 2006-06-07  James Livingston  <doclivingston@gmail.com>
4728         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4729         the close button on the dialog work. Fixes #335346.
4731 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4733         * sources/rb-sourcelist-model.c: (path_is_droppable),
4734         (path_is_reorderable):
4735         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4736         (row_activated_cb), (emit_show_popup), (key_release_cb),
4737         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4738         Ignore group marker rows in the source list.  Fixes #344089, a couple
4739         of other crashers, and some weird UI glitches too.
4741 2006-06-07  James Livingston  <doclivingston@gmail.com>
4743         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4744         the seeking query fails. This is needed because many gst elements
4745         don't implement the seeking query yet. Should fix 329977.
4747 2006-06-06  James Livingston  <doclivingston@gmail.com>
4749         * configure.ac: bump version for a prerelease, turn on track transfer
4750         by default.
4752         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4753         ipod transfer stuff, since it has big issues and we'll hopefully land
4754         real support (bug 310774) after 0.9.5
4756 2006-06-06  James Livingston  <doclivingston@gmail.com>
4758         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4759         id3v2mux once we've detected it.
4761 2006-06-06  James Livingston  <doclivingston@gmail.com>
4763         * lib/Makefile.am:
4764         * tests/test-rhythmdb.c: undo accidental commit which caused
4765         rb-thread.c to be built (which it isn't normally)
4767 2006-06-06  James Livingston  <doclivingston@gmail.com>
4769         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4770         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4771         fail_{if/unless} calls, as some versions of check need them (they are
4772         optional in others). Should fix bug 343718.
4774 2006-06-06  James Livingston  <doclivingston@gmail.com>
4776         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4777         343836.
4778         
4779         * lib/Makefile.am:
4780         * lib/rb-thread.c: (process_actions):
4781         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4782         tests that don't pass.
4784 2006-06-05  James Livingston  <doclivingston@gmail.com>
4786         * data/glade/Makefile.am:
4787         * data/glade/load-failure.glade:
4788         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4789         dialog.
4791 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4793         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4794         checked in.
4796 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4798         * bindings/python/rb.defs:
4799         * sources/rb-source.h:
4800         * sources/rb-source.c: (rb_source_class_init),
4801         (rb_source_set_property), (rb_source_get_property),
4802         (rb_sourcelist_group_get_type):
4803         Add 'sourcelist-group' property on the RBSource class, describing how
4804         sources should be grouped in the source list.
4806         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4807         (rb_sourcelist_model_new), (real_row_is_separator),
4808         (rb_sourcelist_model_is_row_visible),
4809         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4810         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4811         (rb_sourcelist_model_row_draggable),
4812         (rb_sourcelist_model_row_inserted_cb),
4813         (rb_sourcelist_model_row_deleted_cb),
4814         (rb_sourcelist_model_get_group_path):
4815         * sources/rb-sourcelist-model.h:
4816         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4817         (rb_sourcelist_append):
4818         Add group marker rows for each sourcelist group, and use these to
4819         insert sources in the right place.  Sort transient sources (DAAP
4820         shares) by name.  Show the group marker rows as separators when the
4821         next visible row is a source.  Make persistant sources (playlists) and
4822         removable sources reorderable using drag and drop, restricting them
4823         within the source groups.
4824         
4825         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4826         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4827         * sources/rb-daap-source.c: (rb_daap_source_new):
4828         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4829         * sources/rb-static-playlist-source.c:
4830         (rb_static_playlist_source_new):
4831         * plugins/generic-player/rb-generic-player-source.c:
4832         (rb_generic_player_source_new):
4833         * plugins/generic-player/rb-nokia770-source.c:
4834         (rb_nokia770_source_new):
4835         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4836         Add source list group information to existing source classes.
4838         Fixes #318754 and #336492.
4840 2006-06-04  James Livingston  <doclivingston@gmail.com>
4842         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4843         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4844         win32 build fixes.
4846 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4848         * rhythmdb/rhythmdb-query-model.c:
4849         (rhythmdb_query_model_class_init),
4850         (rhythmdb_query_model_remove_from_main_list):
4851         * rhythmdb/rhythmdb-query-model.h:
4852         Add a new 'post-entry-delete' signal, emitted when the entry has been
4853         removed from the model's data structures.
4855         * shell/rb-play-order.c: (rb_play_order_finalize),
4856         (rb_play_order_query_model_changed),
4857         (rb_play_order_post_entry_delete_cb):
4858         Use the new signal to update the play order, so the queue play order
4859         doesn't try to scroll to entries that don't exist in a way that causes
4860         the tree view to crash.  Fixes #340216.
4862 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4864         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4865         Fix rb_debug call I missed previously.
4867 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4869         * metadata/rb-metadata-gst.c:
4870         Don't use NULL as the error message for ignored files, as it crashes
4871         with some C libraries.  Fixes #343713.
4873 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4875         * widgets/rb-dialog.c: (rb_error_dialog):
4876         * widgets/rb-dialog.h:
4877         Mark rb_error_dialog as taking printf-like arguments, and use a format
4878         string for the primary message rather than passing in the message
4879         directly.
4881         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4882         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4883         (info_available_cb):
4884         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4885         * shell/rb-removable-media-manager.c:
4886         (rb_removable_media_manager_eject_medium_cb):
4887         Make sure all calls to rb_error_dialog use string constants for the
4888         format string rather than passing the error message directly.  Remove
4889         an extra %s from the message used when playback fails.  Fixes #343562.
4891         * lib/rb-debug.h:
4892         * sources/rb-audiocd-source.c:
4893         * plugins/audioscrobbler/rb-audioscrobbler.c:
4894         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4895         Mark rb_debug as taking printf-like arguments and fix a few resulting
4896         warnings.
4898 2006-06-02  James Livingston  <doclivingston@gmail.com>
4900         * configure.ac:
4901         + macros/check.m4: add support for using check for unit tests, the .m4
4902         files is so autogen can run without check being installed
4904         * tests/Makefile.am:
4905         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4906         some of the old tests, and add some new ones. Currently
4907         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4908         yet (the query doesn't return any entries).
4910         - tests/deserialization-test1.xml:
4911         - tests/deserialization-test2.xml:
4912         - tests/deserialization-test3.xml:
4913         - tests/test-rhythmdb-indexing.c:
4914         - tests/test-rhythmdb-simple.c:
4915         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4916         have been ported
4918         - tests/test-cd.c:
4919         - tests/test-cmdline.c: remove obsolete tests
4921 2006-06-02  James Livingston  <doclivingston@gmail.com>
4923         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4924         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4925         id3v2mux, and check whether we are using a version of id3mux that has
4926         the correct merge-mode behaviour.
4928         * plugins/sample-python/Makefile.am: fix distcheck.
4930         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4931         the changed-files source was added before trying to remove it.
4933         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4934         *old* bug which would crash if a query with top-level disjunctions
4935         tried to check later disjunctive parts. Hooray for unit-testing.
4937 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4939         * player/rb-recorder-gst.c (rb_recorder_set_device):
4940         Check for a null drive.
4942 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4944         * lib/Makefile.am:
4945         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4946         Register the app icon as a builtin if the icon theme can't find it.
4948 2006-05-31  James Livingston  <doclivingston@gmail.com>
4950         * player/rb-recorder-gst.c: add missing include.
4952 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4954         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4955         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4956         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4957         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4958         (rb_recorder_set_device), (rb_recorder_get_default_device):
4959         * shell/main.c: (main):
4960         * shell/rb-removable-media-manager.c:
4961         (rb_removable_media_manager_finalize),
4962         (get_nautilus_burn_drive_for_path),
4963         (rb_removable_media_manager_playing_uri_changed_cb),
4964         (rb_removable_media_manager_load_media),
4965         (nautilus_burn_drive_get_device),
4966         (rb_removable_media_manager_scan):
4967         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4969         Update for libnautilus-burn 2.15.3 API changes.
4970         Fixes #342604
4972 2006-05-30  James Livingston  <doclivingston@gmail.com>
4974         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4975         "return" to that it asks for the password again if it was wrong.
4977 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4979         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4980         typefind element.
4982 2006-05-30  James Livingston  <doclivingston@gmail.com>
4984         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4985         (download_progress_cb): don't do wonky things if the transfer
4986         "suceeds" without transferring any data.
4988 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4990         * sources/rb-library-source.c: (layout_example_label_update),
4991         (build_filename):  Fix crash when no audio profile is selected.
4992         Fixes #341447.
4994 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4996         * shell/rb-shell.c: (rb_shell_clear_queue):
4997         * shell/rb-shell.h:
4998         * shell/rb-shell.xml:
4999         * sources/rb-play-queue-source.c:
5000         (rb_play_queue_source_clear_queue),
5001         (rb_play_queue_source_cmd_clear):
5002         * sources/rb-play-queue-source.h:
5003         Add clearQueue dbus method.
5005 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5007         * shell/main.c: (main):  Implement --quit option.
5009 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5011         * rhythmdb/rhythmdb-private.h:
5012         * rhythmdb/rhythmdb-tree.h:
5013         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
5014         (rhythmdb_entry_insert), (rhythmdb_entry_set),
5015         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
5016         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
5017         (rhythmdb_entry_get_boolean):
5018         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
5019         bitmask, giving the db backend anything past the first 16 bits for 
5020         its own private use.
5022         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5023         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
5024         Add a 'loading' flag to indicate that an entry is being loaded from
5025         disk, and use that to ignore entry_set operations on such entries
5026         rather than the 'inserted' flag, which doesn't quite mean the same
5027         thing.  Fixes #342694.
5029 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5031         * shell/rb-shell.xml: Remove visibility property, since it causes
5032         crashes (dbus bug 7057) and doesn't do much else.
5034 2006-05-28  James Livingston  <doclivingston@gmail.com>
5036         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
5038         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5039         * po/POTFILES.in: fix some more i18n issues.
5041 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5043         * bindings/python/rb.defs:
5044         * shell/rb-shell-player.c: (rb_shell_player_playpause),
5045         (filter_mmkeys):
5046         * shell/rb-shell-player.h:
5047         Deprecate the useless 'ignore_stop' parameter to
5048         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
5049         API.  From bug #334829.
5051 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5053         * plugins/generic-player/rb-generic-player-source.c:
5054         (visit_playlist_dirs), (default_transform_playlist_uri):
5055         When playlist parsing fails, unref the playlist, not the parent
5056         source.  Fix memory leak in playlist uri transform.
5057         * plugins/generic-player/rb-nokia770-source.c:
5058         (impl_transform_playlist_uri):
5059         Fix memory leak in playlist uri transform.
5061 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
5063         * doc/reference/Makefile.am: fix grk-doc build
5065 2006-05-27  James Livingston  <doclivingston@gmail.com>
5067         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
5069         * plugins/lyrics/lyrics.py:
5070         * po/POTFILES.in: Make strings in plugins translatable. From bug
5071         343081.
5073 2006-05-27  James Livingston  <doclivingston@gmail.com>
5075         * backends/Makefile.am:
5076         * backends/gstreamer/Makefile.am:
5077         * lib/Makefile.am:
5078         * plugins/audioscrobbler/Makefile.am:
5079         * plugins/generic-player/Makefile.am:
5080         * po/POTFILES.in:
5081         * rhythmdb/rhythmdb-monitor.c:
5082         * rhythmdb/rhythmdb.c:
5083         * sources/Makefile.am:
5084         * widgets/Makefile.am: fix compilation after some CVS surgery was
5085         done.
5087 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5089         * bindings/python/rhythmdb.defs:
5090         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
5091         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
5092         (rhythmdb_query_deserialize):
5093         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
5094         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
5095         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
5096         (rhythmdb_entry_register_type_alias),
5097         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
5098         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
5099         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
5100         (rhythmdb_entry_podcast_feed_get_type),
5101         (rhythmdb_entry_import_error_get_type),
5102         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
5103         * rhythmdb/rhythmdb.h:
5104         Allocate a specified amount of extra memory for each db entry, to be
5105         used to store fields specific to the entry type.  Optionally associate
5106         a name with each entry type, to be used when saving entries and
5107         auto playlists to disk.  Allow entry types to have multiple names
5108         to handle older playlist files that used '0' to represent 'song'.
5109         Use private data to store podcast fields.
5111         * rhythmdb/rhythmdb-private.h:
5112         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5113         (rhythmdb_tree_parser_end_element), (save_entry),
5114         (rhythmdb_tree_entry_set):
5115         Simplify property handling by using existing code to convert
5116         properties from strings to GValues and to set properties on entries.
5117         Other assorted changes due to the above.
5119         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5120         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
5121         * sources/rb-generic-player-source.c:
5122         (rb_generic_player_source_new):
5123         * sources/rb-ipod-source.c: (rb_ipod_source_new):
5124         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
5125         * sources/rb-psp-source.c: (rb_psp_source_new):
5126         Update for changes to rhythmdb_entry_register_type.  None of these
5127         entry types need names or use private data.
5129         Fixes #337429.
5131 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5133         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5134         Fix creation of ignored-file db entries - need to check for
5135         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
5137 2006-05-25  James Livingston  <doclivingston@gmail.com>
5139         * AUTHORS:
5140         * MAINTAINERS: update my email address
5142 2006-05-25  James Livingston  <doclivingston@gmail.com>
5144         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
5145         "(... mix)" when searching for lyrics. Cache the lyrics under
5146         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
5148 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5150         * sources/rb-import-errors-source.c:
5151         (rb_import_errors_source_class_init):
5152         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5153         * sources/rb-browser-source.c: (rb_browser_source_class_init):
5154         * sources/rb-source.c: (rb_source_class_init),
5155         (default_move_to_trash):
5156         Implement the basic move-to-trash operation once in rb-source.c, 
5157         rather than in each source type that supports it.
5159         * plugins/ipod/rb-ipod-plugin.c:
5160         * shell/rb-removable-media-manager.c:
5161         * shell/rb-shell.c: (rb_shell_constructor):
5162         Only scan removable media once after loading plugins.  Add a flag
5163         plugins can use to check if the initial scan has been done.
5165         * data/rhythmbox.schemas:
5166         Enable ipod and generic-player plugins by default.
5167         
5168         * configure.ac:
5169         * data/ui/Makefile.am:
5170         * data/ui/generic-player-ui.xml:
5171         * data/ui/rhythmbox-ui.xml:
5172         * plugins/Makefile.am:
5173         * plugins/generic-player/Makefile.am:
5174         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
5175         * plugins/generic-player/rb-generic-player-plugin.c:
5176         * sources/Makefile.am:
5177         * sources/rb-generic-player-source.c:
5178         * sources/rb-generic-player-source.h:
5179         * sources/rb-nokia770-source.c:
5180         * sources/rb-nokia770-source.h:
5181         * sources/rb-psp-source.c: (visit_playlist_dirs):
5182         * sources/rb-psp-source.h:
5183         Pluginise generic player (and nokia770 and PSP) support and add
5184         move-to-trash for players not mounted read-only.
5185         Fixes #342868.
5187 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5189         * daapsharing/rb-daap-connection.c (handle_song_listing):
5190         Lower bound check for batch commit.  Fixes #342848
5192         * sources/rb-daap-source.c (rb_daap_source_get_status):
5193         Always set output variables if provided.
5195 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5197         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
5198         (rhythmdb_tree_entry_delete), (remove_one_song):
5199         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
5200         Fix two db entry reference counting problems.
5201         The initial reference on the entry is held by the db backend, but it
5202         was never being dropped.  The reference count was incremented when
5203         adding an entry to the deleted_entries map and to the
5204         deleted_entries_to_emit list, but only decremented for one of those.
5206 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5208         * daapsharing/rb-daap-connection.c (http_response_handler) 
5209         (rb_daap_connection_dispose):
5210         Call soup_session_abort to make sure there are no outstanding
5211         requests when we dispose of the connection.  Ignore cancelled
5212         messages in the callback.
5214 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5216         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
5217         (rb_daap_source_disconnect): Set a flag when disconnecting
5218         the source.  Check this flag in connection callback
5219         to see if we should release the connection.
5221 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5223         * daapsharing/Makefile.am:
5224         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
5225         (rb_daap_connection_class_init), (connection_connected),
5226         (connection_disconnected), (connection_operation_done),
5227         (build_message), (connection_set_error_message),
5228         (actual_http_response_handler), (http_get),
5229         (entry_set_string_prop), (emit_progress_idle),
5230         (handle_server_info), (handle_login), (handle_update),
5231         (handle_database_info), (handle_song_listing), (handle_playlists),
5232         (handle_playlist_entries), (handle_logout),
5233         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5234         (connection_response_data_free), (connected_cb),
5235         (rb_daap_connection_connect), (disconnected_cb),
5236         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5237         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5238         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5239         (rb_daap_connection_get_property):
5240         * daapsharing/rb-daap-connection.h:
5241         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5242         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5243         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5244         (rb_daap_hash_generate):
5245         * daapsharing/rb-daap-hash.h:
5246         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5247         (rb_daap_get_icon), (remove_source), (stop_browsing),
5248         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5249         (connection_connecting_cb), (connection_disconnected_cb),
5250         (release_connection), (rb_daap_source_connection_cb),
5251         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5252         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5254         Adds a better async API for connect and disconnect.  Doesn't share
5255         callback data for every async call.  Adds a connect signal.  Uses
5256         an operation-done signal to trigger the callbacks.  Displays an
5257         error when connections fail.  A few refcounting fixes to fix
5258         crashes.  Uses a weak pointer to set the connection to NULL so we
5259         don't clobber references.  Wait for each disconnect when shutting
5260         down sources.  Split out DAAP hash stuff into its own file.  Fix
5261         typo in header.
5263         Fixes #342643
5264         
5265 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5267         * sources/rb-auto-playlist-source.c:
5268         (rb_auto_playlist_source_new_from_xml):
5269         Initialize the gvalue used to hold the size limit correctly.
5270         Fixes #342744.
5272 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5274         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5275         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5276         * shell/rb-shell.h:
5277         * shell/rb-shell.xml:
5278         Convert rb_shell_quit into a dbus method, and add visibility dbus
5279         property.
5281 2006-05-22  James Livingston  <doclivingston@gmail.com>
5283         * rhythmdb/rhythmdb.h:
5284         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5285         (rhythmdb_entry_is_editable), (action_thread_main),
5286         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5287         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5288         false, and syncing into the file.
5290         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5291         (rhythmdb_entry_iradio_get_type),
5292         (rhythmdb_entry_import_error_get_type):
5293         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5294         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5295         change the DB.
5297 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5299         * rhythmdb/Makefile.am:
5300         * rhythmdb/rhythmdb-monitor.c:
5301         * rhythmdb/rhythmdb-private.h:
5302         * rhythmdb/rhythmdb-query.c:
5303         * rhythmdb/rhythmdb.c:
5304         Split up rhythmdb.c a bit.
5306 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5308         * data/glade/audioscrobbler-prefs.glade:
5309         Add a link to the last.fm server status page.
5311 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5313         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5314         Capitalization fix.
5315         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5316         (impl_create_configure_dialog):  UI layout fixes, remove
5317         dialog separator, and capitalization fix for window title.
5318         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5319         and remove dialog separator.
5320         * data/glade/plugins.glade:  UI layout fixes.
5321         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5322         and capitalization fix.  Fixes #342438.
5324 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5326         * data/glade/podcast-properties.glade:  Fix layout of the download 
5327         location.  Fixes #342431.
5329 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5331         * data/ui/rhythmbox-ui.xml:
5332         We only need one copy of the 'add to queue' action in the edit menu.
5334 2006-05-20  James Livingston  <doclivingston@gmail.com>
5336         * data/ui/rhythmbox-ui.xml:
5337         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5338         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5339         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5340         (rb_shell_clipboard_sync),
5341         (rb_shell_clipboard_cmd_add_to_playlist_new),
5342         (rb_shell_clipboard_cmd_queue_song_info),
5343         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5344         (rb_shell_clipboard_playlist_deleted_cb),
5345         (rb_shell_clipboard_playlist_renamed_cb),
5346         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5347         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5348         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5349         dynamically generated with all the static playlists. Fixes bug 323364.
5351         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5352         right child, so it doesn't go weird when art appears and disappears.
5354 2006-05-20  James Livingston  <doclivingston@gmail.com>
5356         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5358         * rhythmdb/rhythmdb-query-model.c:
5359         (rhythmdb_query_model_set_property),
5360         (rhythmdb_query_model_finalize),
5361         (rhythmdb_query_model_reapply_query_cb):
5362         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5363         (rhythmdb_query_append_prop_multiple),
5364         (rhythmdb_query_is_time_relative):
5365         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5366         time-based criteria, fixes bug 341131.
5368 2006-05-20  James Livingston  <doclivingston@gmail.com>
5370         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5371         we have already changed playing entries. Interpolate the art size so
5372         it doesn't jump when the old and new images have different aspect
5373         ratios.
5375 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5377         * rhythmdb/rhythmdb-private.h:
5378         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5379         (save_entry):
5380         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5381         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5382         (rhythmdb_entry_get_ulong):
5383         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5384         and elsewhere, use them on the stack rather than allocating on 
5385         the heap.  From bug #342333.
5387 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5389         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5390         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5391         (add_track), (eos_cb), (error_signal_idle),
5392         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5393         (rb_recorder_construct), (recorder_track_free),
5394         (rb_recorder_finalize):
5395         * sources/rb-playlist-source-recorder.c:
5396         Support libnautilus-burn size -> capacity API change.  Add
5397         some braces to blocks.
5399 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5401         * metadata/sj-metadata-musicbrainz.c:
5402         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5403         Sync with sound-juicer in CVS.  Fixes #342177
5404         * sources/rb-audiocd-source.c: Don't declare variables
5405         in the middle of a block (c99ism).  Fix order of #includes.
5406         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5407         one variable per line.  Update copyright date.
5409 2006-05-19  James Livingston  <doclivingston@gmail.com>
5411         patch by: Hendrik Richter  <hendi@gnome-de.org>
5413         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5414         "translator_credits" to a hyphen, so it doesn't cause problems for
5415         tools that check access keys. Fixes bug 341832.
5417 2006-05-19  James Livingston  <doclivingston@gmail.com>
5419         * po/POTFILES.in: remove references to files that don't exist any more
5420         (fixes make distcheck).
5422 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5424         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5425         Song Lyrics dialog. Fixes bug 342322.
5427 2006-05-19  James Livingston  <doclivingston@gmail.com>
5429         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5431         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5432         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5433         version checks not break when libnotify goes to 1.0.0. Fixes bug
5434         342244.
5436 2006-05-18  James Livingston  <doclivingston@gmail.com>
5438         * shell/rb-shell-clipboard.c:
5439         * shell/rb-shell.c:
5440         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5442 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5444         * sources/rb-playlist-source-recorder.c (get_song_description):
5445         Reverse artist and title in song description.  This
5446         is useful because at least the title will be visible
5447         when there is limited space.
5449 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5451         * daapsharing/rb-daap-connection.c: (connection_get_password):
5452         Take gdk lock before emitting authenticate signal.
5453         * sources/rb-daap-source.c: (connection_connecting_cb):
5454         Get rid of the unnecessary idle handler (it's already called from one)
5455         Fixes #342047 once more.
5457 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5459         * shell/rb-shell.c: (rb_shell_class_init):
5460         * shell/rb-shell.h:
5461         * widgets/rb-song-info.c: (rb_song_info_class_init),
5462         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5463         (rb_song_info_constructor), (rb_song_info_get_property),
5464         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5465         (rb_song_info_forward_clicked_cb):
5466         * widgets/rb-song-info.h:
5467         * data/glade/song-info-multiple.glade:
5468         * lib/rb-marshal.list:
5469         * bindings/python/Makefile.am:
5470         * bindings/python/rb.defs:
5471         * bindings/python/rb.override:
5472         Allow plugins to add pages to the notebooks used in song info windows,
5473         and to track the current song displayed in single-entry windows.
5474         
5475         * configure.ac:
5476         * plugins/Makefile.am:
5477         * plugins/lyrics/Loader.py:
5478         * plugins/lyrics/Makefile.am:
5479         * plugins/lyrics/lyrics.py:
5480         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5481         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5482         as a separate window (for the playing song) or as a page in the song
5483         info window.  A few TODO items left, but this fixes #319320.
5485 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5487         Patch by:  Roozbeh Pournader
5489         * configure.ac:
5490         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5491         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5493 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5494         
5495         * sources/rb-daap-source.c: (update_connection_status):
5496         Correct return value.  Fixes #342047 again.
5498 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5500         * sources/rb-daap-source.c: (update_connection_status),
5501         (connection_connecting_cb):
5502         Update status in an idle handler so we don't rely on the gdk lock
5503         being recursive (because it isn't any more).  Fixes #342047.
5505 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5507         * lib/rb-util.c: (rb_make_duration_string),
5508         (rb_make_elapsed_time_string):
5509         * lib/rb-util.h:
5510         Add a function for formatting an elapsed time string.
5512         * shell/rb-shell-player.c: (rb_shell_player_init),
5513         (rb_shell_player_sync_with_source),
5514         (rb_shell_player_get_playing_time_string), (tick_cb):
5515         Store elapsed time in the private data structure, and use the above
5516         function.
5517         
5518         * widgets/rb-header.c:
5519         * widgets/rb-header.h:
5520         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5521         object, so everything has the same idea of the elapsed time.
5522         Fixes #339693.
5524 2006-05-16  James Livingston  <doclivingston@gmail.com>
5526         * bindings/python/rhythmdb.defs:
5527         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5528         some parametre defaults, so you don't have to pass None, False for the
5529         sorting order.
5531 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5533         * bindings/python/rhythmdb.defs:
5534         * rhythmdb/rhythmdb-query-model.c:
5535         (rhythmdb_query_model_compute_status_normal):
5536         * rhythmdb/rhythmdb-query-model.h:
5537         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5538         * rhythmdb/rhythmdb.h:
5539         Change the various compute_status methods to accept a singular/plural
5540         pair to use in the status string.
5541         
5542         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5543         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5544         * sources/rb-source.c: (default_get_status):
5545         Call entries 'songs' by default, and 'episodes' in the podcast source.
5546         Fixes #340227.
5548 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5550         patch by:  Paul Drain
5552         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5553         Fixes #341817.
5555 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5557         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5558         Generate reorder maps correctly.
5559         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5560         Scroll to the first entry from the old selection.
5561         Fixes #322992.
5563 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5565         * data/ui/rhythmbox-ui.xml:
5566         * lib/rb-preferences.h:
5567         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5568         (rb_shell_playlist_created_cb),
5569         (rb_shell_view_sidepane_changed_cb),
5570         (rb_shell_sync_sidepane_visibility),
5571         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5572         (sidepane_visibility_changed_cb):
5573         * sources/rb-podcast-source.c:
5574         Convert sourcelist visibility to side-pane visbility.
5575         Fixes #339733
5577 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5579         * widgets/rb-header.c:
5580         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5581         'player', and make it use the private data structure allocated for it.
5583 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5585         * configure.ac: enable metadata helper with dbus < 0.35.
5587 2006-05-15  James Livingston  <doclivingston@gmail.com>
5589         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5591         * data/glade/song-info.glade:
5592         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5593         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5594         (rb_song_info_update_filesize): Add the file size into the song info
5595         window. Fixes bug 340861.
5597 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5599         * bindings/python/rhythmdb.defs:
5600         * rhythmdb/rhythmdb-query-model.c:
5601         (rhythmdb_query_model_set_property),
5602         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5603         * rhythmdb/rhythmdb-query-model.h:
5604         Add a new method to chain query models without importing entries from
5605         the parent into the child.  This is useful when the subset of entries
5606         in the child can be more easily determined by running a query than by
5607         filtering entries from the parent.
5609         * bindings/python/rb.defs:
5610         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5611         (rb_library_browser_set_property),
5612         (rb_library_browser_get_property), (rb_library_browser_new),
5613         (rebuild_child_model):
5614         * widgets/rb-library-browser.h:
5615         * sources/rb-auto-playlist-source.c:
5616         (rb_auto_playlist_source_constructor):
5617         * sources/rb-static-playlist-source.c:
5618         (rb_static_playlist_source_constructor):
5619         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5620         Use more efficient queries for constructing the browser query model
5621         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5622         backend to optimise the query) and run new queries rather than
5623         filtering entries from the parent.  Fixes #341402.
5625         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5627 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5629         * configure.ac:
5630         * shell/Makefile.am:
5631         * shell/main.c: (main), (load_uri_args), (send_present_message),
5632         (unregister_dbus_handler), (handle_dbus_message),
5633         (register_dbus_handler):
5634         Add minimal support for dbus 0.31 - 0.35.
5636         * doc/reference/Makefile.am:
5637         * doc/reference/rhythmbox.types:
5638         * data/Makefile.am:
5639         * data/GNOME_Rhythmbox.server.in:
5640         * data/rhythmbox.pc.in:
5641         * remote/*:
5642         * remote/bonobo/*:
5643         Remove remaining bonobo and generic remote interface files.
5645 2006-05-14  James Livingston  <doclivingston@gmail.com>
5647         * shell/rb-shell.c: (construct_widgets):
5648         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5649         resize the browser and queue-sidebar section of their panes, unless
5650         the other section is below the minimum size. Fixes bug 331927.
5652 2006-05-13  James Livingston  <doclivingston@gmail.com>
5654         * rhythmdb/rhythmdb-query-model.c:
5655         (rhythmdb_query_model_class_init),
5656         (rhythmdb_query_model_set_property),
5657         (rhythmdb_query_model_get_property),
5658         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5659         (rhythmdb_query_model_insert_into_main_list),
5660         (rhythmdb_query_model_insert_into_limited_list),
5661         (rhythmdb_query_model_do_reorder),
5662         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5663         (rhythmdb_query_model_location_sort_func),
5664         (rhythmdb_query_model_title_sort_func),
5665         (rhythmdb_query_model_album_sort_func),
5666         (rhythmdb_query_model_artist_sort_func),
5667         (rhythmdb_query_model_genre_sort_func),
5668         (rhythmdb_query_model_track_sort_func),
5669         (rhythmdb_query_model_double_ceiling_sort_func),
5670         (rhythmdb_query_model_ulong_sort_func),
5671         (rhythmdb_query_model_date_sort_func),
5672         (rhythmdb_query_model_string_sort_func):
5673         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5674         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5675         "data destroy" property. Fixed bug 341543.
5677         * bindings/python/rhythmdb.defs:
5678         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5679         rhythmdb_query_model_set_sorting_order
5681         * rhythmdb/rhythmdb-property-model.c:
5682         (rhythmdb_property_model_drag_data_get):
5683         * sources/rb-import-errors-source.c:
5684         (rb_import_errors_source_constructor):
5685         * sources/rb-missing-files-source.c:
5686         (rb_missing_files_source_constructor):
5687         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5688         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5689         * widgets/rb-entry-view.h: adapt to the above change.
5691 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5693         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5694         (rhythmdb_tree_load):
5695         Commit loaded entries in batches, rather than individually.  
5696         More startup time reduction.
5698 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5700         * doc/reference/Makefile.am: fix gtk-doc compilation
5702 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5704         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5705         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5706         * plugins/artdisplay/artdisplay/Loader.py:
5707         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5708         Only call the first artist the best match when album==Unknown.
5709         Don't perform each query twice if album doesn't include "Vol N".
5710         Fix searching for compilations.  Fix blacklisting.
5711         Part of bug #307848
5713 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5715         * Makefile.am:
5716         * bindings/python/Makefile.am:
5717         * bindings/python/rb.defs:
5718         * bindings/python/rb.override:
5719         * configure.ac:
5720         * doc/reference/Makefile.am:
5721         * plugins/Makefile.am:
5722         * plugins/audioscrobbler/Makefile.am:
5723         * plugins/ipod/Makefile.am:
5724         * plugins/lirc/Makefile.am:
5725         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5726         (impl_activate), (impl_deactivate):
5727         * plugins/sample/Makefile.am:
5728         * remote/Makefile.am:
5729         * shell/Makefile.am:
5730         * shell/main.c: (main), (main_shell_weak_ref_cb):
5731         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5732         (rb_shell_get_property), (rb_shell_window_state_cb),
5733         (idle_hide_mainwindow), (rb_shell_set_visibility),
5734         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5735         (rb_shell_set_song_property):
5736         * shell/rb-shell.h:
5737         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5738         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5739         (rb_tray_icon_get_property), (rb_tray_icon_new),
5740         (rb_tray_icon_button_press_event_cb),
5741         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5742         (rb_tray_icon_show_window_changed_cb):
5743         * shell/rb-tray-icon.h:
5745         Remove bonobo, require DBUS.
5746         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5747         Fixes #339720
5749 2006-05-13  James Livingston  <doclivingston@gmail.com>
5751         * bindings/python/rb.override: fix some pointer-type warnings
5753 2006-05-12  James Livingston  <doclivingston@gmail.com>
5755         * lib/rb-util.c: (rb_value_free):
5756         * lib/rb-util.h: Add function to unset and free a GValue* that was
5757         allocated in the heap.
5759         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5760         the metadata hastable values
5761         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5762         leak the metadata hashtable structure
5763         * metadata/rb-metadata-dbus.c:
5764         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5765         using g_strdup and then _take_string
5767         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5768         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5769         stat something.
5771         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5772         leak the encoded string
5774         * widgets/rb-property-view.c:
5775         (rb_property_view_selection_changed_cb): set some variables to have
5776         inital values, because some code paths may not set them before we use
5777         them.
5779         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5780         don't have python warning into a debug message".
5782 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5784         * data/rhythmbox.schemas: Use zero instead of null for
5785         default burn speed.  Fixes #341283.
5787 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5789         * bindings/python/rb.defs:
5790         * widgets/rb-library-browser.c:
5791         (rb_library_browser_get_property_view):
5792         * widgets/rb-library-browser.h:
5793         Add a method to get the property view for a given property.
5795         * sources/rb-browser-source.c:
5796         (rb_browser_source_cmd_choose_genre),
5797         (rb_browser_source_cmd_choose_artist),
5798         (rb_browser_source_cmd_choose_album):
5799         Change the browser selection by changing the property view selection. 
5800         Makes the selection change visible, fixing #331740.
5802 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5804         * bindings/python/rb.defs:
5805         * bindings/python/rb.override:
5806         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5807         * shell/rb-statusbar.c: (*),
5808         * sources/rb-import-errors-source.c: (impl_get_status):
5809         * sources/rb-iradio-source.c: (impl_get_status):
5810         * sources/rb-missing-files-source.c: (impl_get_status):
5811         * sources/rb-source.c: (default_get_status),
5812         (rb_source_get_status):
5813         * sources/rb-source.h:
5814         Allow sources to provide a progress value for the status bar.
5815         Simplify status bar processing (much less polling).
5816         Consider rhythmdb busy while it's still loading the database.
5818         * daapsharing/rb-daap-connection.c: (*)
5819         * daapsharing/rb-daap-connection.h:
5820         * lib/rb-marshal.list:
5821         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5822         (rb_daap_source_init), (connection_connecting_cb),
5823         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5824         (rb_daap_source_get_status):
5825         Provide status information for DAAP connections, and move processing
5826         of large responses into a separate thread.
5827         Fixes bugs #322020 and #338978.
5829 2006-05-09  James Livingston  <doclivingston@gmail.com>
5831         Split the artdisplay plugin into several files.
5832         Fix loader and amazon-search re-use issues.
5833         Add some better search heuristics.
5835         * configure.ac:
5836         * plugins/artdisplay/Makefile.am:
5837         * plugins/artdisplay/artdisplay.py:
5838         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5839         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5840         * plugins/artdisplay/artdisplay/Loader.py:
5841         * plugins/artdisplay/artdisplay/Makefile.am:
5842         * plugins/artdisplay/artdisplay/__init__.py:
5844 2006-05-09  James Livingston  <doclivingston@gmail.com>
5846         * sources/rb-browser-source.h: remove the _has_first_added_column
5847         stuff since it isn't actually used anywhere. Sources that want it
5848         should just add it themselves, as the library already does
5850         * bindings/python/rb.defs:
5851         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5852         * sources/rb-library-source.c: (rb_library_source_class_init):
5853         * sources/rb-removable-media-source.c:
5854         (rb_removable_media_source_class_init): Remove the remanants of the
5855         above.
5857 2006-05-09  James Livingston  <doclivingston@gmail.com>
5859         * bindings/python/rb.defs:
5860         * sources/rb-browser-source.h: remove a function that was declared in
5861         the header, but not defined anywhere.
5863 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5865         * plugins/artdisplay/.cvsignore:
5866         * plugins/ipod/.cvsignore: Added.
5868 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5870         * sources/rb-auto-playlist-source.c:
5871         (rb_auto_playlist_source_new_from_xml):
5872         Fix reading of older playlist files where all three limits were
5873         specified so we take the first nonzero limit.  From #341053.
5875 2006-05-09  James Livingston  <doclivingston@gmail.com>
5877         * bindings/python/Makefile.am:
5878         * bindings/python/rb.defs:
5879         * bindings/python/rb.override: bind RBBrowserSource,
5880         RBRemovableMediaSource and RBRemovableMediamanager.
5882 2006-05-09  James Livingston  <doclivingston@gmail.com>
5884         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5886         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5887         Fixes bug 339221.
5889 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5891         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5892         Don't explode when trying to edit a query with no limit set.
5894 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5896         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5897         Clear the should_queue flag when switching to a non-submittable entry,
5898         so we don't submit songs that played for three seconds before
5899         switching to a podcast episode.
5901         * rhythmdb/rhythmdb-query-model.c
5902         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5903         in the drag data list.
5905 2006-05-08  James Livingston  <doclivingston@gmail.com>
5907         * lib/rb-util.c: (rb_value_array_append_data):
5908         * lib/rb-util.h: add function which is basically a combination of
5909         G_VALUE_COLLECT and g_value_array_append.
5911         * rhythmdb/rhythmdb-query-model.h:
5912         * rhythmdb/rhythmdb-query-model.c:
5913         (rhythmdb_query_model_class_init),
5914         (rhythmdb_query_model_set_property),
5915         (rhythmdb_query_model_get_property),
5916         (rhythmdb_query_model_finalize),
5917         (rhythmdb_query_model_update_limited_entries),
5918         (rhythmdb_query_model_set_sort_order),
5919         (rhythmdb_query_model_within_limit),
5920         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5921         saner. Rather than having <count=N, time=N, size=N> we now have a
5922         <type, value> pair. This will also make it much easier to add new
5923         limit types in the future.
5925         * shell/rb-playlist-manager.c:
5926         (rb_playlist_manager_set_automatic_playlist),
5927         (rb_playlist_manager_cmd_edit_automatic_playlist):
5928         * sources/rb-auto-playlist-source.c:
5929         (rb_auto_playlist_source_finalize),
5930         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5931         (_save_write_ulong), (_save_write_uint64),
5932         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5933         (rb_auto_playlist_source_set_query),
5934         (rb_auto_playlist_source_get_query):
5935         * sources/rb-auto-playlist-source.h:
5936         * sources/rb-library-source.c:
5937         (rb_library_source_add_child_source):
5938         * sources/rb-psp-source.c: (visit_playlist_dirs):
5939         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5940         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5941         * widgets/rb-query-creator.h: Adapt to the above change.
5943 2006-05-08  James Livingston  <doclivingston@gmail.com>
5945         * shell/rb-playlist-manager.c:
5946         (rb_playlist_manager_cmd_edit_automatic_playlist):
5947         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5948         (rb_auto_playlist_source_set_query),
5949         (rb_auto_playlist_source_get_query): copy the query in the _get method
5950         and free it in things calling that. Fixes a crasher.
5952 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5954         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5955         Make entries on newly mounted volumes visible immediately, hiding them
5956         later if they turn out to be missing.  Fixes #340068.
5958 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5960         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5961         Ignore zip files and ignore errors for files we've decided to ignore.
5963 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5965         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5966         Add missing }, should fix #340844.
5968 2006-05-06  James Livingston  <doclivingston@gmail.com>
5970         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5971         typo.
5973 2006-05-06  James Livingston  <doclivingston@gmail.com>
5975         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5976         that we work with libnotify >= 0.4
5978 2006-05-06  James Livingston  <doclivingston@gmail.com>
5980         patch by: Joe Barnett  <thejoe@gmail.com>
5982         * configure.ac: check if we're using a version of libgpod that
5983         supports the Motorola ROKR
5985         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5986         for the db path, if we using the newer version.
5988         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5990 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5992         * rhythmdb/rhythmdb-query-model.c:
5993         (rhythmdb_query_model_drag_data_get):
5994         Use playback URI, not location, for drag data.  Fixes #322597.
5996 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5998         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
6000 2006-05-03  James Livingston  <doclivingston@gmail.com>
6002         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
6003         (rb_add_id3_tagger), (rb_metadata_save):
6004         Set the tags on the tagging element when it is
6005         created, not during pipeline creation - which is required for
6006         dynamically created elements.
6008         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
6009         support for using the "vorbistag" element to re-tag ogg vorbis files.
6010         Fixes bug 339878.
6012 2006-05-03  James Livingston  <doclivingston@gmail.com>
6014         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
6016         * plugins/artdisplay/artdisplay.py:
6017         - Fix small bug callback of data loader getting overwritten on fast
6018         connections.
6019         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
6020         Jonathan Matthew)
6021         - Fix Rhythmbox UI blocking while loading/searching cover art
6022         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
6023         - Initial approach to allow additional "art search engines"
6024         - Further modularization in a couple of places
6025         - Minor fixes for empty entries (iradio, album, artist etc.)
6027 2006-05-03  James Livingston  <doclivingston@gmail.com>
6029         * shell/rb-playlist-manager.c:
6030         (rb_playlist_manager_playlist_entries_changed),
6031         (rb_playlist_manager_set_source): don't show the edit/delete/rename
6032         options for non-local sources, rather than showing disabled ones.
6034         * sources/rb-library-source.c: (add_child_sources_idle),
6035         (rb_library_source_constructor), (rb_library_source_new),
6036         (rb_library_source_library_location_changed),
6037         (rb_library_source_add_child_source),
6038         (rb_library_source_sync_child_sources): Create "child library" sources
6039         when the user has multiple library locations set. Fixes bug 100552.
6041 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6043         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
6044         * plugins/sample/sample.rb-plugin.desktop.in:
6045         Finish changing 'Author' to 'Authors'
6046         
6047         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
6048         (rhythmdb_entry_import_error_get_type):
6049         Implement get_playback_uri for import errors (returns NULL)
6051         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6052         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
6053         entry, rather than doing entry type checks.
6055 2006-05-02  James Livingston  <doclivingston@gmail.com>
6057         patch from Alessandro Decina  <alessandro@nnva.org>
6059         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
6060         the signal emission in the case of fatal-on-init errors. From bug
6061         322268.
6063 2006-05-02  James Livingston  <doclivingston@gmail.com>
6065         * rhythmdb/rhythmdb.h:
6066         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
6067         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
6068         (rhythmdb_entry_podcast_post_get_type),
6069         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
6070         virtual function to entry-types for getting the playback URI. From bug
6071         330226.
6073         * backends/gstreamer/rb-encoder-gst.c:
6074         (create_pipeline_and_source), (extract_track):
6075         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
6076         to get the URI.
6078 2006-05-02  James Livingston  <doclivingston@gmail.com>
6080         patch by: Brian Cameron  <brian.cameron@sun.com>
6082         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
6083         340337.
6085 2006-05-01  William Jon McCann  <mccann@jhu.edu>
6087         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
6088         instead of clear.  Use regex matching to strip "disc N"
6089         from album.  Match titles in ProductName.  Perform
6090         fallback queries including various artist compilations.
6091         Include "us" locale.  Improve queries when artist or album
6092         is unknown.  Use medium size image if large is unavailable.
6094         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
6095         William Jon McCann  <mccann@jhu.edu>
6096         
6097 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6099         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
6100         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
6101         (conjunctive_query): Sanity check.
6102         (evaluate_conjunctive_subquery): 
6103         Don't return TRUE immediately when a relative-time query criterion
6104         matches.  Fixes #339972.
6106 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6108         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6109         Don't crash if primary or secondary are NULL.
6111 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6113         * doc/reference/Makefile.am: fix gtk-doc build yet again
6115 2006-04-28  James Livingston  <doclivingston@gmail.com>
6117         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
6118         python console. Fixes bug 339934.
6120 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6122         * rhythmdb/rhythmdb-property-model.c:
6123         (rhythmdb_property_model_drag_data_get):
6124         When creating uri list drag data, create a new query model based on
6125         the query model the property model is attached to.  Makes the
6126         resulting query use the right entry type and include the upstream
6127         query criteria.  Fixes half of #327540.
6129 2006-04-27  James Livingston  <doclivingston@gmail.com>
6131         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
6132         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
6133         build fixes.
6135 2006-04-27  James Livingston  <doclivingston@gmail.com>
6137         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
6139 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6141         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
6142         (rb_playlist_manager_save_data),
6143         (rb_playlist_manager_save_playlists):
6144         * shell/rb-playlist-manager.h:
6145         * shell/rb-shell.c: (rb_shell_sync_state),
6146         (idle_save_playlist_manager):
6147         Remove a bit more threading insanity from the playlist manager.
6149 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6151         * shell/rb-playlist-manager.c: 
6152         * shell/rb-playlist-manager.h:
6153         Remove dead code, add gtk-doc, remove threading insanity (mostly).
6154         
6155         * shell/rb-shell.c: (rb_shell_sync_state),
6156         (idle_save_playlist_manager), (construct_sources),
6157         (rb_shell_select_source), (rb_shell_sync_party_mode):
6158         Adjustments for above changes.
6160 2006-04-26  William Jon McCann  <mccann@jhu.edu>
6162         * sources/rb-browser-source.c (impl_browser_toggled):
6163         Reset browser when hidden.  Fixes #339617.
6165 2006-04-26  James Livingston  <doclivingston@gmail.com>
6167         * backends/Makefile.am:
6168         * backends/gstreamer/Makefile.am: work again with separated
6169         built-roots
6171 2006-04-26  James Livingston  <doclivingston@gmail.com>
6173         * shell/rb-removable-media-manager.c:
6174         (rb_removable_media_manager_set_uimanager): fix compilation with
6175         -Werror and --enable-track-transfer.
6177 2006-04-26  James Livingston  <doclivingston@gmail.com>
6179         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
6180         implementing class. In theory allows alternate player implementations
6181         to be selected at run-time rather than compile-time. Fixes bug 338667.
6183         * Makefile.am:
6184         * backends/Makefile.am:
6185         * backends/gstreamer/Makefile.am:
6186         * backends/gstreamer/rb-player-gst.h:
6187         * backends/rb-player.c: (rb_player_interface_init),
6188         (rb_player_get_type), (rb_player_open), (rb_player_opened),
6189         (rb_player_close), (rb_player_play), (rb_player_pause),
6190         (rb_player_playing), (rb_player_set_volume),
6191         (rb_player_get_volume), (rb_player_set_replaygain),
6192         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
6193         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
6194         (_rb_player_emit_buffering), (_rb_player_emit_error),
6195         (_rb_player_emit_tick), (rb_player_error_quark):
6196         * player/Makefile.am:
6197         * player/rb-player-gst.c: (rb_player_gst_class_init),
6198         (rb_player_init), (tick_timeout), (rb_player_gst_init),
6199         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
6200         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
6201         (process_tag), (found_tag_cb), (buffering_cb),
6202         (rb_player_gst_bus_cb), (rb_player_gst_construct),
6203         (rb_player_gst_new):
6204         * player/rb-player.h:
6205         * shell/Makefile.am:
6206         * sources/rb-audiocd-source.c:
6207         * widgets/Makefile.am:
6208         * widgets/rb-header.c: (rb_header_class_init):
6210 2006-04-26  James Livingston  <doclivingston@gmail.com>
6212         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6213         don't try to download an episode if it couldn't be parsed. Fixes bug
6214         339712.
6216         * shell/rb-removable-media-manager.c:
6217         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
6218         Library" option when track transfer is disabled. Fixes bug 339728.
6220 2006-04-26  James Livingston  <doclivingston@gmail.com>
6222         * data/ui/Makefile.am:
6223         * data/ui/daap-ui.xml:
6224         * data/ui/rhythmbox-ui.xml:
6225         * sources/rb-daap-source.c: (rb_daap_sources_init),
6226         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
6227         way that the ipod ui is. Fixes bug 339743.
6229 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6231         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
6232         (process_added_entries_cb), (process_deleted_entries_cb),
6233         (rhythmdb_commit_internal): 
6234         Combine the idle functions to emit entry-added and entry-deleted,
6235         and combine as many invocations of same as possible.  Another
6236         significant reduction in startup time.
6237         
6238         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6239         Delay the next call to rhythmdb_process_events if the queue is
6240         empty or if we can't process any of the events in the queue because
6241         the database is read only.
6243         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6245 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6247         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6249         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6250         Don't special case errors quite so much.
6252 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6254         * data/rhythmbox.schemas: Remove default speed.
6256         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6257         Add n-c-b 2.15 support.  Make the default speed to slowest since
6258         that is all that works reliably.
6260 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6262         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6263         Fix compiler error from last commit.
6265 2006-04-25  James Livingston  <doclivingston@gmail.com>
6267         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6268         transcoding-related issues. From bug 322268.
6270         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6271         don't emit the signal, since the object is being finalised, which os a
6272         Bad Thing To Do.
6274         (profile_bin_find_encoder), (get_profile_from_mime_type),
6275         (transcode_track): find the encoding element by iterating looking for
6276         element in the class Codec/Encoder/Audio rather than the one named
6277         "enc".
6279 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6281         * shell/rb-shell-player.xml:
6282         * shell/rb-shell.xml:
6283         Add signal argument information.  
6284         Patch by Tim Moloney  <t.moloney@verizon.net>
6286         * shell/rb-shell.c: (rb_shell_window_state_cb):
6287         Use the right value for the visibility_changed signal.  Most of the
6288         time, anyway.
6290 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6292         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6293         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6294         (impl_create_configure_dialog):
6295         * data/glade/audioscrobbler-prefs.glade:
6296         * shell/rb-audioscrobbler.c (*):
6297         * lib/rb-preferences.h:
6298         * data/rhythmbox.schemas:
6299         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6300         Add status information (# tracks submitted, # queued, last submit
6301         time, result of last submission) to the plugin config window.
6302         Remove 'enabled' setting, since it's easier to just disable the
6303         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6304         nonexistant (so far) 'last.fm streaming' plugin.
6305         
6306         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6307         plugin
6309         Fixes some of #325848.  We still don't provide a way to view the
6310         submission queue.
6312 2006-04-25  James Livingston  <doclivingston@gmail.com>
6314         patch by: Anders Petersson  <demitar@worldforge.org>
6316         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6317         the YY-MM-DD format.
6319 2006-04-23  James Livingston  <doclivingston@gmail.com>
6321         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6322         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6323         * bindings/python/override_common.h:
6324         * bindings/python/rb.override: python binding fixes
6326 2006-04-23  James Livingston  <doclivingston@gmail.com>
6328         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6329         (rb_statusbar_sync_with_source),
6330         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6331         callback, rather than immediately every time. Takes ~5% off my warm-cache
6332         startup time.
6334         * bindings/python/rhythmdb.defs: fix the types using for
6335         RhythmDBEntryTypes.
6337 2006-04-22  James Livingston  <doclivingston@gmail.com>
6339         * data/ui/rhythmbox-ui.xml:
6340         * shell/rb-shell.c:
6341         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6342         (remove_source), (rb_daap_sources_init),
6343         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6344         (rb_daap_source_disconnect):
6345         * sources/rb-source.c: (rb_source_class_init),
6346         (rb_source_deactivate):
6347         * sources/rb-source.h: move the "disconnect" functionality from into
6348         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6350 2006-04-22  James Livingston  <doclivingston@gmail.com>
6352         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6353         actually get the translated strings for browser headers (they were
6354         already marked as translatable). Fixes bug 339380.
6356 2006-04-22  James Livingston  <doclivingston@gmail.com>
6358         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6359         submission timeout when the object is finalised.
6361         * bindings/python/Makefile.am:
6362         * bindings/python/rb.defs:
6363         * bindings/python/rb.override:
6364         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6366         * widgets/rb-library-browser.c:
6367         (rb_library_browser_construct_query), (rebuild_output_model),
6368         (rebuild_child_model):
6369         * widgets/rb-library-browser.h: change from GPtrArray to
6370         RhythmDBQuery (which in C is the same thing).
6372 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6374         * shell/rb-shell.c: (rb_shell_get_song_properties):
6375         Don't try to include entry-type (or anything else not easily
6376         marshallable) in the song properties hash table.
6378         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6380         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6381         (rb_playlist_source_constructor): Fix entry-type initialization as
6382         with previous commit.
6384 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6386         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6387         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6388         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6389         (rb_podcast_source_constructor):
6390         Set default values for entry-type after base class construction,
6391         rather than in _init, because gobject will set the entry-type property
6392         to NULL after _init if no value is provided.  Fixes #339206.
6394 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6396         patch by: Gunnar Steinn Magnusson
6398         * COPYING:
6399         * backends/gstreamer/rb-encoder-gst.c:
6400         * backends/gstreamer/rb-encoder-gst.h:
6401         * backends/rb-encoder.c:
6402         * backends/rb-encoder.h:
6403         * bindings/python/override_common.c:
6404         * bindings/python/override_common.h:
6405         * daapsharing/rb-daap-connection.c:
6406         * daapsharing/rb-daap-connection.h:
6407         * daapsharing/rb-daap-dialog.c:
6408         * daapsharing/rb-daap-dialog.h:
6409         * daapsharing/rb-daap-mdns-browser-avahi.c:
6410         * daapsharing/rb-daap-mdns-browser-howl.c:
6411         * daapsharing/rb-daap-mdns-browser.h:
6412         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6413         * daapsharing/rb-daap-mdns-publisher-howl.c:
6414         * daapsharing/rb-daap-mdns-publisher.h:
6415         * daapsharing/rb-daap-share.c:
6416         * daapsharing/rb-daap-share.h:
6417         * daapsharing/rb-daap-sharing.c:
6418         * daapsharing/rb-daap-sharing.h:
6419         * daapsharing/rb-daap-src.c:
6420         * daapsharing/rb-daap-src.h:
6421         * daapsharing/rb-daap-structure.c:
6422         * daapsharing/rb-daap-structure.h:
6423         * help/C/fdl-appendix.xml:
6424         * help/es/es.po:
6425         * help/ja/fdl-appendix.xml:
6426         * iradio/rb-new-station-dialog.c:
6427         * iradio/rb-new-station-dialog.h:
6428         * iradio/rb-station-properties-dialog.c:
6429         * iradio/rb-station-properties-dialog.h:
6430         * lib/mkdtemp.c:
6431         * lib/mkdtemp.h:
6432         * lib/rb-cut-and-paste-code.c:
6433         * lib/rb-cut-and-paste-code.h:
6434         * lib/rb-debug.c:
6435         * lib/rb-debug.h:
6436         * lib/rb-file-helpers.c:
6437         * lib/rb-file-helpers.h:
6438         * lib/rb-glade-helpers.c:
6439         * lib/rb-glade-helpers.h:
6440         * lib/rb-preferences.h:
6441         * lib/rb-proxy-config.c:
6442         * lib/rb-stock-icons.c:
6443         * lib/rb-stock-icons.h:
6444         * lib/rb-thread.c:
6445         * lib/rb-thread.h:
6446         * lib/rb-tree-dnd.c:
6447         * lib/rb-tree-dnd.h:
6448         * lib/rb-util.c:
6449         * lib/rb-util.h:
6450         * metadata/rb-metadata-common.c:
6451         * metadata/rb-metadata-dbus-client.c:
6452         * metadata/rb-metadata-dbus-service.c:
6453         * metadata/rb-metadata-dbus.c:
6454         * metadata/rb-metadata-dbus.h:
6455         * metadata/rb-metadata-gst.c:
6456         * metadata/rb-metadata.h:
6457         * metadata/sj-error.c:
6458         * metadata/sj-error.h:
6459         * metadata/sj-metadata-musicbrainz.c:
6460         * metadata/sj-metadata-musicbrainz.h:
6461         * metadata/sj-metadata.c:
6462         * metadata/sj-metadata.h:
6463         * metadata/sj-structures.c:
6464         * metadata/sj-structures.h:
6465         * metadata/test-metadata.c:
6466         * player/rb-player-gst.c:
6467         * player/rb-player.h:
6468         * player/rb-recorder-gst.c:
6469         * player/rb-recorder.h:
6470         * plugins/artdisplay/artdisplay.py:
6471         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6472         * plugins/ipod/rb-ipod-plugin.c:
6473         * plugins/lirc/rb-lirc-plugin.c:
6474         * plugins/pythonconsole/pythonconsole.py:
6475         * plugins/rb-module.c:
6476         * plugins/rb-module.h:
6477         * plugins/rb-plugin-manager.c:
6478         * plugins/rb-plugin-manager.h:
6479         * plugins/rb-plugin.c:
6480         * plugins/rb-plugin.h:
6481         * plugins/rb-plugins-engine.c:
6482         * plugins/rb-plugins-engine.h:
6483         * plugins/rb-python-module.c:
6484         * plugins/rb-python-module.h:
6485         * plugins/rb-python-plugin.c:
6486         * plugins/rb-python-plugin.h:
6487         * plugins/sample/rb-sample-plugin.c:
6488         * po/de.po:
6489         * po/el.po:
6490         * po/en_CA.po:
6491         * po/eu.po:
6492         * po/fi.po:
6493         * po/fr.po:
6494         * po/it.po:
6495         * po/ja.po:
6496         * po/mk.po:
6497         * po/pt_BR.po:
6498         * po/ru.po:
6499         * podcast/rb-feed-podcast-properties-dialog.c:
6500         * podcast/rb-feed-podcast-properties-dialog.h:
6501         * podcast/rb-new-podcast-dialog.c:
6502         * podcast/rb-new-podcast-dialog.h:
6503         * podcast/rb-podcast-manager.c:
6504         * podcast/rb-podcast-manager.h:
6505         * podcast/rb-podcast-parse.c:
6506         * podcast/rb-podcast-parse.h:
6507         * podcast/rb-podcast-properties-dialog.c:
6508         * podcast/rb-podcast-properties-dialog.h:
6509         * remote/bonobo/libmain.c:
6510         * remote/bonobo/rb-nautilus-context-menu.c:
6511         * remote/bonobo/rb-nautilus-context-menu.h:
6512         * remote/bonobo/rb-remote-bonobo.c:
6513         * remote/bonobo/rb-remote-bonobo.h:
6514         * remote/rb-remote-client-proxy.c:
6515         * remote/rb-remote-client-proxy.h:
6516         * remote/rb-remote-common.c:
6517         * remote/rb-remote-common.h:
6518         * remote/rb-remote-proxy.c:
6519         * remote/rb-remote-proxy.h:
6520         * rhythmdb/gsequence.c:
6521         * rhythmdb/gsequence.h:
6522         * rhythmdb/rb-refstring.c:
6523         * rhythmdb/rb-refstring.h:
6524         * rhythmdb/rhythmdb-gda.c:
6525         * rhythmdb/rhythmdb-gda.h:
6526         * rhythmdb/rhythmdb-private.h:
6527         * rhythmdb/rhythmdb-property-model.c:
6528         * rhythmdb/rhythmdb-property-model.h:
6529         * rhythmdb/rhythmdb-query-model.c:
6530         * rhythmdb/rhythmdb-query-model.h:
6531         * rhythmdb/rhythmdb-query-results.c:
6532         * rhythmdb/rhythmdb-query-results.h:
6533         * rhythmdb/rhythmdb-tree.c:
6534         * rhythmdb/rhythmdb-tree.h:
6535         * rhythmdb/rhythmdb.c:
6536         * rhythmdb/rhythmdb.h:
6537         * shell/main.c:
6538         * shell/rb-audioscrobbler.c:
6539         * shell/rb-audioscrobbler.h:
6540         * shell/rb-history.c:
6541         * shell/rb-history.h:
6542         * shell/rb-play-order-linear-loop.c:
6543         * shell/rb-play-order-linear-loop.h:
6544         * shell/rb-play-order-linear.c:
6545         * shell/rb-play-order-linear.h:
6546         * shell/rb-play-order-queue.c:
6547         * shell/rb-play-order-queue.h:
6548         * shell/rb-play-order-random-by-age-and-rating.c:
6549         * shell/rb-play-order-random-by-age-and-rating.h:
6550         * shell/rb-play-order-random-by-age.c:
6551         * shell/rb-play-order-random-by-age.h:
6552         * shell/rb-play-order-random-by-rating.c:
6553         * shell/rb-play-order-random-by-rating.h:
6554         * shell/rb-play-order-random-equal-weights.c:
6555         * shell/rb-play-order-random-equal-weights.h:
6556         * shell/rb-play-order-random.c:
6557         * shell/rb-play-order-random.h:
6558         * shell/rb-play-order-shuffle.c:
6559         * shell/rb-play-order-shuffle.h:
6560         * shell/rb-play-order.c:
6561         * shell/rb-play-order.h:
6562         * shell/rb-playlist-manager.c:
6563         * shell/rb-playlist-manager.h:
6564         * shell/rb-removable-media-manager.c:
6565         * shell/rb-removable-media-manager.h:
6566         * shell/rb-shell-clipboard.c:
6567         * shell/rb-shell-clipboard.h:
6568         * shell/rb-shell-player.c:
6569         * shell/rb-shell-player.h:
6570         * shell/rb-shell-preferences.c:
6571         * shell/rb-shell-preferences.h:
6572         * shell/rb-shell.c:
6573         * shell/rb-shell.h:
6574         * shell/rb-source-header.c:
6575         * shell/rb-source-header.h:
6576         * shell/rb-statusbar.c:
6577         * shell/rb-statusbar.h:
6578         * shell/rb-tray-icon.c:
6579         * shell/rb-tray-icon.h:
6580         * sources/rb-audiocd-source.c:
6581         * sources/rb-audiocd-source.h:
6582         * sources/rb-auto-playlist-source.c:
6583         * sources/rb-auto-playlist-source.h:
6584         * sources/rb-browser-source.c:
6585         * sources/rb-browser-source.h:
6586         * sources/rb-daap-source.c:
6587         * sources/rb-daap-source.h:
6588         * sources/rb-generic-player-source.c:
6589         * sources/rb-generic-player-source.h:
6590         * sources/rb-import-errors-source.c:
6591         * sources/rb-import-errors-source.h:
6592         * sources/rb-ipod-source.c:
6593         * sources/rb-ipod-source.h:
6594         * sources/rb-iradio-source.c:
6595         * sources/rb-iradio-source.h:
6596         * sources/rb-library-source.c:
6597         * sources/rb-library-source.h:
6598         * sources/rb-missing-files-source.c:
6599         * sources/rb-missing-files-source.h:
6600         * sources/rb-nokia770-source.c:
6601         * sources/rb-nokia770-source.h:
6602         * sources/rb-play-queue-source.c:
6603         * sources/rb-play-queue-source.h:
6604         * sources/rb-playlist-source-recorder.c:
6605         * sources/rb-playlist-source-recorder.h:
6606         * sources/rb-playlist-source.c:
6607         * sources/rb-playlist-source.h:
6608         * sources/rb-playlist-xml.h:
6609         * sources/rb-podcast-source.c:
6610         * sources/rb-podcast-source.h:
6611         * sources/rb-psp-source.c:
6612         * sources/rb-psp-source.h:
6613         * sources/rb-removable-media-source.c:
6614         * sources/rb-removable-media-source.h:
6615         * sources/rb-source.c:
6616         * sources/rb-source.h:
6617         * sources/rb-sourcelist-model.c:
6618         * sources/rb-sourcelist-model.h:
6619         * sources/rb-sourcelist.c:
6620         * sources/rb-sourcelist.h:
6621         * sources/rb-static-playlist-source.c:
6622         * sources/rb-static-playlist-source.h:
6623         * tests/test-cd.c:
6624         * tests/test-cmdline.c:
6625         * tests/test-rhythmdb-indexing.c:
6626         * tests/test-rhythmdb-query.c:
6627         * tests/test-rhythmdb-simple.c:
6628         * tests/test-rhythmdb-tree-deserialization.c:
6629         * tests/test-rhythmdb-tree-serialization.c:
6630         * tests/test-rhythmdb-view.c:
6631         * widgets/bacon-volume.c:
6632         * widgets/bacon-volume.h:
6633         * widgets/disclosure-widget.c:
6634         * widgets/disclosure-widget.h:
6635         * widgets/eel-gconf-extensions.c:
6636         * widgets/eel-gconf-extensions.h:
6637         * widgets/eggtrayicon.c:
6638         * widgets/eggtrayicon.h:
6639         * widgets/libsexy/sexy-icon-entry.c:
6640         * widgets/libsexy/sexy-icon-entry.h:
6641         * widgets/rb-cell-renderer-pixbuf.c:
6642         * widgets/rb-cell-renderer-pixbuf.h:
6643         * widgets/rb-cell-renderer-rating.c:
6644         * widgets/rb-cell-renderer-rating.h:
6645         * widgets/rb-dialog.c:
6646         * widgets/rb-dialog.h:
6647         * widgets/rb-druid.c:
6648         * widgets/rb-druid.h:
6649         * widgets/rb-entry-view.c:
6650         * widgets/rb-entry-view.h:
6651         * widgets/rb-header.c:
6652         * widgets/rb-header.h:
6653         * widgets/rb-library-browser.c:
6654         * widgets/rb-library-browser.h:
6655         * widgets/rb-property-view.c:
6656         * widgets/rb-property-view.h:
6657         * widgets/rb-query-creator-private.h:
6658         * widgets/rb-query-creator-properties.c:
6659         * widgets/rb-query-creator.c:
6660         * widgets/rb-query-creator.h:
6661         * widgets/rb-rating-helper.c:
6662         * widgets/rb-rating-helper.h:
6663         * widgets/rb-rating.c:
6664         * widgets/rb-rating.h:
6665         * widgets/rb-search-entry.c:
6666         * widgets/rb-search-entry.h:
6667         * widgets/rb-song-display-box.c:
6668         * widgets/rb-song-display-box.h:
6669         * widgets/rb-song-info.c:
6670         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6672 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6674         patch by: Gareth Murphy, James Livingston
6676         * bindings/python/rb.defs:
6677         * configure.ac:
6678         * plugins/Makefile.am:
6679         * plugins/artdisplay/Makefile.am:
6680         * plugins/artdisplay/artdisplay.py:
6681         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6682         * plugins/rb-python-module.c: (rb_python_module_init_python):
6683         * shell/rb-shell.c: (construct_widgets),
6684         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6685         (rb_shell_add_widget), (rb_shell_remove_widget),
6686         (rb_shell_ui_location_get_type):
6687         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6689 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6691         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6692         Fix build failure caused by the combination of the previous two
6693         commits.
6695 2006-04-20  James Livingston  <doclivingston@gmail.com>
6697         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6698         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6699         table to the entry types, which will allow us to get rid of some of
6700         the "if entry type == WHATEVER" code everywhere. From bug 
6702         * bindings/python/rb.defs:
6703         * bindings/python/rb.override:
6704         * bindings/python/rhythmdb.defs:
6705         * bindings/python/rhythmdb.override:
6706         * daapsharing/rb-daap-connection.c:
6707         (rb_daap_connection_class_init), (rb_daap_connection_init),
6708         (rb_daap_connection_set_property),
6709         (rb_daap_connection_get_property):
6710         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6711         * podcast/rb-podcast-manager.c:
6712         (rb_podcast_manager_entry_downloaded),
6713         (rb_podcast_manager_subscribe_feed),
6714         (rb_podcast_manager_db_entry_added_cb),
6715         (rb_podcast_manager_db_entry_deleted_cb),
6716         (rb_podcast_manager_insert_feed):
6717         * rhythmdb/rhythmdb-private.h:
6718         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6719         (conjunctive_query):
6720         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6721         (process_added_entries_cb), (rhythmdb_entry_allocate),
6722         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6723         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6724         (rhythmdb_process_metadata_load),
6725         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6726         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6727         (write_encoded_gvalue), (read_encoded_property),
6728         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6729         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6730         (rhythmdb_entry_iradio_get_type),
6731         (rhythmdb_entry_podcast_post_get_type),
6732         (rhythmdb_entry_podcast_feed_get_type),
6733         (rhythmdb_entry_import_error_get_type),
6734         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6735         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6736         (rhythmdb_entry_type_get_type):
6737         * rhythmdb/rhythmdb.h:
6738         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6739         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6740         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6741         (rb_shell_player_entry_activated_cb), (info_available_cb):
6742         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6743         (rb_shell_register_entry_type_for_source),
6744         (rb_shell_playing_from_queue_cb),
6745         (rb_shell_playing_entry_changed_cb),
6746         (rb_shell_player_stream_song_changed_cb),
6747         (rb_shell_jump_to_entry_with_source),
6748         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6749         (handle_playlist_entry_cb), (rb_shell_load_uri):
6750         * shell/rb-shell.h:
6751         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6752         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6753         (rb_browser_source_init), (rb_browser_source_set_property),
6754         (rb_browser_source_get_property):
6755         * sources/rb-ipod-source.c: (impl_paste):
6756         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6757         (rb_iradio_source_init), (rb_iradio_source_set_property),
6758         (rb_iradio_source_get_property):
6759         * sources/rb-library-source.c: (impl_paste):
6760         * sources/rb-missing-files-source.c:
6761         (rb_missing_files_source_class_init),
6762         (rb_missing_files_source_init),
6763         (rb_missing_files_source_set_property),
6764         (rb_missing_files_source_get_property):
6765         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6766         (rb_playlist_source_init), (rb_playlist_source_set_property),
6767         (rb_playlist_source_get_property):
6768         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6769         (rb_podcast_source_init), (rb_podcast_source_set_property),
6770         (rb_podcast_source_get_property):
6771         * sources/rb-static-playlist-source.c:
6772         (rb_static_playlist_source_add_location_internal):
6774 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6776         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6777         (rhythmdb_add_import_error_entry),
6778         (entry_volume_mounted_or_unmounted),
6779         (rhythmdb_volume_unmounted_cb):
6780         When a volume is unmounted, delete import errors for files stored on
6781         it.  When a volume is mounted, stat all tracks stored on it, rather
6782         than assuming they're present.  Fixes #339023.
6784 2006-04-20  James Livingston  <doclivingston@gmail.com>
6786         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6787         browser visibility for non-gconf-using sources (like playlists). Part
6788         of bug 118862.
6790         * shell/rb-source-header.c: (sourcestate_free),
6791         (rb_source_header_init), (rb_source_header_finalize),
6792         (rb_source_header_source_weak_destroy_cb): switch from storing the
6793         search string to storing a "source state" structure
6795         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6796         (rb_source_header_search_cb), (rb_source_header_clear_search),
6797         (rb_source_header_disclosure_toggled_cb): as well as storing the
6798         string, stop the visibility of the source's browser.
6800 2006-04-20  James Livingston  <doclivingston@gmail.com>
6802         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6803         library entries back into the library. Fixes bug 339065.
6805 2006-04-20  James Livingston  <doclivingston@gmail.com>
6807         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6808         only exists in glib 2.10.
6810 2006-04-20  James Livingston  <doclivingston@gmail.com>
6812         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6813         Solaris. From bug 335318.
6815         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6816         * shell/rb-audioscrobbler.c:
6817         * sources/rb-psp-source.c:
6819 2006-04-20  James Livingston  <doclivingston@gmail.com>
6821         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6822         issues for some people.
6824         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6825         accidental s/suffix/prefix/
6827         * sources/rb-auto-playlist-source.c:
6828         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6829         you from sorting playlists which aren't limited by time.
6831 2006-04-19  James Livingston  <doclivingston@gmail.com>
6833         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6834         duration or bitrate back to the file, since they are properties of the
6835         audio data, not tags we can set.
6837 2006-04-19  James Livingston  <doclivingston@gmail.com>
6839         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6840         of libtool, to fix builds which are using a different version. Fixes
6841         bug 338996.
6843         * shell/Makefile.am:
6845 2006-04-19  James Livingston  <doclivingston@gmail.com>
6847         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6848         to sync data to a file which is uneditable.
6850 2006-04-19  James Livingston  <doclivingston@gmail.com>
6852         patch by: Gavin Stewart  <gavin@brokentrain.net>
6854         * data/glade/playlist-save.glade:
6855         * data/glade/Makefile.am:
6856         * po/POTFILES.in: add the playlist saving dialog.
6858         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6859         (export_set_extension_cb), (filter_get_export_filter_label),
6860         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6861         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6862         formats (PLS and M3U at the moment). Fixes bug 316295.
6864 2006-04-19  James Livingston  <doclivingston@gmail.com>
6866         * shell/rb-playlist-manager.c:
6867         (rb_playlist_manager_set_source_internal): don't let you edit remove
6868         auto playlists.
6870         * sources/rb-auto-playlist-source.c:
6871         (rb_auto_playlist_source_set_query): correctly handle time-limited
6872         playlists.
6874 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6876         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6878         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6879         Don't crash if the queue file contains no newlines.
6880         Fixes #338924.
6882 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6884         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6885         condition
6887 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6889         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6890         case. Moreover, they may not exist yet, so take that into account when
6891         generating the iPod filename.
6893 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6895         * sources/rb-ipod-source.c: added support for drag and drop from the
6896         library to the iPod (only enabled if --enable-track-transfer was
6897         passed to configure)
6899 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6901         * configure.ac:
6902         * lib/rb-marshal.list:
6903         * lib/rb-util.c: 
6904         * lib/rb-util.h:
6905         * plugins/Makefile.am:
6906         * plugins/ipod/Makefile.am:
6907         * plugins/ipod/ipod.rb-plugin.desktop.in:
6908         * plugins/ipod/rb-ipod-plugin.c: 
6909         * plugins/rb-plugin.h:
6910         * shell/Makefile.am:
6911         * shell/rb-removable-media-manager.c:
6912         * shell/rb-removable-media-manager.h:
6913         * shell/rb-shell.c: 
6914         * sources/Makefile.am:
6915         * sources/rb-ipod-source.c: 
6916         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6917         various iPod related files should be moved to plugins/ipod/ now...
6919 2006-04-17  James Livingston  <doclivingston@gmail.com>
6921         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6922         and "vic".
6924         * help/C/figures/rb-iradio-main.png:
6925         * help/C/figures/rb-notification-area-menu.png:
6926         * help/C/figures/rb-notification-window.png:
6927         * help/C/figures/rb-notification-zone.png:
6928         * help/C/figures/rb-podcast-main.png:
6929         * help/C/figures/rb-statusbar.png:
6930         * help/C/figures/rb-volume-changer.png:
6931         * help/C/figures/rb-window-small.png:
6932         * help/C/figures/rb-window.png:
6933         * help/C/rhythmbox.xml:
6935 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6937         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6938         more obviously.
6940         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6941         (make_undecodable_error), (rb_metadata_gst_error_cb),
6942         (rb_metadata_gst_new_decoded_pad_cb),
6943         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6944         Ignore really small files (<4kB) for which typefinding fails.
6945         Always link decoded pads from decodebin to fakesink.
6946         Shut the pipeline down by posting an error on the bus when decodebin
6947         emits unknown-type signals.  Fixes bug #338062.
6949 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6951         * shell/rb-shell.c: (rb_shell_load_uri):
6952         Fix glaring mistakes in previous commit: actually pass arguments to
6953         rb_debug, and specify the right entry type when adding a new iradio
6954         station so we don't try to add local playlist files to the library.
6956 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6958         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6959         before trying to add them, as iradio streams often fail rb_uri_exists().
6961         * shell/rb-shell-player.c: (notify_playing_idle),
6962         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6963         (open_location_thread), (rb_shell_player_open_location),
6964         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6965         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6966         of all the stream URLs, and try them in turn.  If we get through the
6967         whole playlist too quickly, error out.  Various other fixes that make
6968         iradio work a lot better.
6970         * shell/rb-shell.c: (add_to_library_response_cb),
6971         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6972         (handle_playlist_entry_cb), (rb_shell_load_uri):
6973         Add playlists containing streams as iradio stations.  If the playlist
6974         is local, add each stream URL, but if the playlist is remote, just add
6975         the playlist URL.
6976         
6977         * sources/rb-iradio-source.c: (new_station_location_added):
6978         Add new station URLs as-is, rather than parsing the playlist and
6979         adding the streams.
6980         
6981         * rhythmdb/rhythmdb-query-model.c:
6982         (rhythmdb_query_model_entry_changed_cb),
6983         (rhythmdb_query_model_emit_reorder),
6984         (rhythmdb_query_model_do_reorder):
6985         Emit row-changed notifications when an entry changes but is not
6986         reordered.
6988         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6989         Display the playback error icon when the entry has an error and
6990         there's nothing else to display.
6991         
6992         Fixes bug #320336 and some of #324402.
6993         
6994 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6996         * sources/rb-ipod-source.c: use a GHashTable for the
6997         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6998         time, this fixes compilation breakage for people not having libgpod
6999         CVS HEAD
7001 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
7003         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7005         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
7006         (rb_podcast_manager_insert_feed):
7007         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
7008         fixes bug 321945
7010 2006-04-16  James Livingston  <doclivingston@gmail.com>
7012         * sources/rb-library-source.c:
7013         (rb_library_source_library_location_cb): return FALSE like we are
7014         supposed to, not void.
7016         patch by: FreeBSD GNOME Project
7017         * configure.ac: fix some bash-isms.
7019         patch by: Pawel Worach  <pawel.worach@gmail.com>
7020         * metadata/rb-metadata-dbus-client.c:
7021         * rhythmdb/rhythmdb-query-model.c:
7022         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
7025 2006-04-16  James Livingston  <doclivingston@gmail.com>
7027         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
7028         for transcoding to RBEncoderGst.
7030         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
7031         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
7032         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
7033         (add_decoding_pipeline), (encoder_match_mime),
7034         (get_profile_from_mime_type), (extract_track), (transcode_track),
7035         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
7037 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7039         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
7040         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
7041         load_ipod_db_idle_cb to a new separate function
7043 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7045         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
7046         source
7048 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7050         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
7051         variables
7053 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7055         * data/ui/Makefile.am:
7056         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
7057         menu
7058         * lib/rb-util.c: check if the widget we got from the UI manager isn't
7059         NULL before using it as a popup menu
7060         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
7061         'eject' an iPod
7063 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
7065         * sources/rb-ipod-source.c: when hal tells us a partition is on an
7066         iPod, check if it contains an iPod database before using it (in case
7067         the iPod was repartitionned somehow). Should fix bug #325034
7069 2006-04-16  Steve Frécinaux  <steve@istique.net>
7071         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
7073         * data/Makefile.am: install application icon into the default theme.
7075         * data/rhythmbox.desktop.in: don't specify icon file extension.
7076         
7077         * shell/main.c: (main): set default window icon from theme.
7078         
7079         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
7080         code concerning window icon, and fix leak by unreferencing the about
7081         logo pixbuf once it's not used anymore.
7083 2006-04-16  James Livingston  <doclivingston@gmail.com>
7085         * configure.ac: bump version to 0.9.4
7086         * NEWS: update NEWS and 0.9.4 insert translations
7088 2006-04-16  James Livingston  <doclivingston@gmail.com>
7090         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
7091         namespace automatically.
7093 2006-04-16  James Livingston  <doclivingston@gmail.com>
7095         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
7097         * doc/reference/Makefile.am:
7098         * doc/reference/rhythmbox.types: make distcheck work again
7100         * doc/reference/tmpl/eggnotificationbubble.sgml:
7101         * doc/reference/tmpl/eggtrayicon.sgml:
7102         * doc/reference/tmpl/rb-debug.sgml:
7103         * doc/reference/tmpl/rb-entry-view.sgml:
7104         * doc/reference/tmpl/rb-enums.sgml:
7105         * doc/reference/tmpl/rb-metadata.sgml:
7106         * doc/reference/tmpl/rb-new-station-dialog.sgml:
7107         * doc/reference/tmpl/rb-playlist-manager.sgml:
7108         * doc/reference/tmpl/rb-refstring.sgml:
7109         * doc/reference/tmpl/rb-shell-player.sgml:
7110         * doc/reference/tmpl/rb-shell-preferences.sgml:
7111         * doc/reference/tmpl/rb-shell.sgml:
7112         * doc/reference/tmpl/rb-song-info.sgml:
7113         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
7114         * doc/reference/tmpl/rb-statusbar.sgml:
7115         * doc/reference/tmpl/rhythmbox-unused.sgml:
7116         * doc/reference/tmpl/rhythmdb-query-model.sgml:
7117         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
7119 2006-04-16  James Livingston  <doclivingston@gmail.com>
7121         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
7123         * po/LINGUAS: don't split the variable across two lines, as it breaks
7124         the build. Fixes bug 338625.
7126 2006-04-15  James Livingston  <doclivingston@gmail.com>
7128         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
7129         add a "sourcelist-model" gobject property.
7131 2006-04-14  William Jon McCann  <mccann@jhu.edu>
7133         * .cvsignore:
7134         * backends/.cvsignore:
7135         * backends/gstreamer/.cvsignore:
7136         * bindings/.cvsignore:
7137         * bindings/python/.cvsignore:
7138         * help/es/.cvsignore:
7139         * metadata/.cvsignore:
7140         * plugins/.cvsignore:
7141         * plugins/audioscrobbler/.cvsignore:
7142         * plugins/lirc/.cvsignore:
7143         * plugins/pythonconsole/.cvsignore:
7144         * plugins/sample-python/.cvsignore:
7145         * plugins/sample/.cvsignore:
7146         * shell/.cvsignore:
7147         * widgets/libsexy/.cvsignore:
7148         Make CVS ignore files.
7150 2006-04-14  James Livingston  <doclivingston@gmail.com>
7152         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
7153         the track-loading thread hold a reference on the source, so it doesn't
7154         explode if the cd is removed before it is done. Fixes bug 337237.
7156 2006-04-14  James Livingston  <doclivingston@gmail.com>
7158         * bindings/python/override_common.c:
7159         (_helper_unwrap_pointer_pylist):
7160         * bindings/python/override_common.h:
7161         * bindings/python/rb.override:
7162         * bindings/python/rhythmdb.override: Bind some more functions and
7163         virtual functions.
7165         * shell/rb-shell.c: (rb_shell_select_source):
7166         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
7167         * sources/rb-audiocd-source.c:
7168         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
7169         * sources/rb-browser-source.c: (impl_get_search_actions):
7170         * sources/rb-iradio-source.c: (impl_get_ui_actions):
7171         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
7172         * sources/rb-playlist-source.c: (impl_get_ui_actions):
7173         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7174         (impl_get_search_actions):
7175         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
7176         the impl_get_ui_actions and impl_get_search_actions functions return
7177         lists that contain copies of the strings, instead of constant ones.
7178         Needed to bindings
7180 2006-04-14  James Livingston  <doclivingston@gmail.com>
7182         * bindings/python/rhythmdb.defs:
7183         * bindings/python/rhythmdb.override: fix the method argument format
7184         specifiers.
7186 2006-04-14  James Livingston  <doclivingston@gmail.com>
7188         * bindings/python/rhythmdb.defs:
7189         * bindings/python/rhythmdb.override:
7190         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
7191         (entry_to_rb_metadata), (record_entry_change),
7192         (rhythmdb_entry_set_visibility):
7193         * rhythmdb/rhythmdb.h:
7194         * shell/rb-shell.c: (rb_shell_get_song_properties): change
7195         rhythmdb_entry_get to take the db as the first parameter. Fixes the
7196         python bindings of it. The rhythmdb_entry_get_* ones are left the same
7197         since they are used in too many places, and not in the Python
7198         bindings.
7200 2006-04-13  William Jon McCann  <mccann@jhu.edu>
7202         * lib/rb-debug.c: (_rb_profile_log):
7203         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
7204         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7205         * shell/main.c: (main):
7206         * shell/rb-shell.c: (rb_shell_constructor),
7207         (rb_shell_set_visibility), (rb_shell_sync_window_state),
7208         (rb_shell_present):
7209         Fix profile output indentation.  Add more profiling points.
7210         Fixes part of #338114
7212 2006-04-13  James Livingston  <doclivingston@gmail.com>
7214         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
7215         library source being deleted, by setting the active source to NULL.
7216         From bug 338116.
7218 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7220         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7221         Update the last-seen string when hiddenness changes.
7223 2006-04-12  James Livingston  <doclivingston@gmail.com>
7225         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
7226         which caused the first-seen time to be reset when a metadata load was
7227         done. Fixes bug 336874.
7229         * shell/rb-shell.h: remove old function declaration.
7231         * bindings/python/rhythmdb.defs:
7232         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7234 2006-04-11  James Livingston  <doclivingston@gmail.com>
7236         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7237         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7238         interaction. Fixes bug 337999.
7240 2006-04-11  James Livingston  <doclivingston@gmail.com>
7242         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7243         track transfer. Fixes bug 338056.
7245         * shell/Makefile.am:
7247 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7249         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7251 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7253         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7254         (_rb_profile_log):
7255         * lib/rb-debug.h:
7256         * shell/rb-shell.c: (construct_db), (construct_widgets),
7257         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7258         Add profiling.  Fixes #337387
7260 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7262         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7263         * widgets/rb-header.c:
7264         Use italics for artist and album. Fixes #336748
7266 2006-04-10  James Livingston  <doclivingston@gmail.com>
7268         * Makefile.am:
7269         * backends/gstreamer/Makefile.am:
7270         * configure.ac:
7271         * data/glade/library-prefs.glade:
7272         * shell/Makefile.am:
7273         * shell/rb-removable-media-manager.c:
7274         * shell/rb-removable-media-manager.h:
7275         * sources/Makefile.am:
7276         * sources/rb-audiocd-source.c:
7277         * sources/rb-library-source.c: (rb_library_source_class_init),
7278         (rb_library_source_finalize), (impl_get_config_widget),
7279         (rb_library_source_preferences_sync), (impl_can_paste): add a
7280         --enable-track-transfer configure option, abd make cd ripping disabled
7281         by default.
7283         * shell/rb-source-header.c:
7284         * sources/rb-source.c: (rb_source_class_init),
7285         (rb_source_delete_thyself), (default_get_entry_view):
7286         * lib/rb-glade-helpers.c:
7287         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7288         some compiler warnings, and also bug 337427.
7290 2006-04-10  James Livingston  <doclivingston@gmail.com>
7292         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7293         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7294         if the gconf key is missing. Fixes bug 337742.
7296 2006-04-10  James Livingston  <doclivingston@gmail.com>
7298         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7299         to fix build problems I caused with a commit yesterday. Fixed bug
7300         337806.
7302         * daapsharing/rb-daap-mdns-browser-howl.c:
7303         (rb_daap_mdns_browser_class_init):
7304         * podcast/Makefile.am:
7305         * rhythmdb/Makefile.am:
7306         * widgets/eggtrayicon.h:
7308 2006-04-09  Steve Frécinaux  <steve@istique.net>
7310         * configure.ac:
7311         * po/LINGUAS:
7312         
7313         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7314         translators' life easier.
7316 2006-04-09  James Livingston  <doclivingston@gmail.com>
7318         * bindings/python/rb.defs:
7319         * bindings/python/rb.override: add bindings for most RBSource virtual
7320         functions.
7322         * sources/rb-source.h:
7323         * sources/rb-source.c: (rb_source_class_init): make
7324         impl_get_browser_key return a non-consht string, since Python can't
7325         really give us constant strings.
7327         * shell/rb-source-header.c: (rb_source_header_finalize),
7328         (rb_source_header_set_source_internal):
7329         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7330         * sources/rb-iradio-source.c: (impl_get_browser_key):
7331         * sources/rb-library-source.c: (impl_get_browser_key):
7332         * sources/rb-playlist-source.c:
7333         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7334         (rb_browser_source_state_prefs_sync):
7335         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7336         above change.
7338         * plugins/sample-python/sample-python.py: show how to add a new
7339         source.
7341 2006-04-09  James Livingston  <doclivingston@gmail.com>
7343         * daapsharing/Makefile.am:
7344         * daapsharing/rb-daap-connection.c:
7345         (rb_daap_connection_class_init):
7346         * daapsharing/rb-daap-marshal.list:
7347         * daapsharing/rb-daap-mdns-browser-avahi.c:
7348         (rb_daap_mdns_browser_class_init):
7349         * lib/rb-marshal.list:
7350         * player/Makefile.am:
7351         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7352         * player/rb-recorder-marshal.list:
7353         * podcast/Makefile.am:
7354         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7355         * podcast/rb-podcast-marshal.list:
7356         * rhythmdb/Makefile.am:
7357         * rhythmdb/rhythmdb-marshal.list:
7358         * rhythmdb/rhythmdb-query-model.c:
7359         (rhythmdb_query_model_class_init):
7360         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7361         into one file, as there is no point having several of them.
7363 2006-04-09  James Livingston  <doclivingston@gmail.com>
7365         * lib/Makefile.am:
7366         * lib/rb-enums.h:
7367         * widgets/Makefile.am:
7368         * widgets/eggnotificationbubble.c:
7369         * widgets/eggnotificationbubble.h:
7370         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7371         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7373         * rhythmdb/rhythmdb-property-model.h:
7374         * rhythmdb/rhythmdb-query-model.h:
7375         * rhythmdb/rhythmdb.h:
7376         * shell/rb-playlist-manager.h:
7377         * widgets/rb-cell-renderer-pixbuf.h:
7378         * widgets/rb-cell-renderer-rating.h:
7379         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7381 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7383         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7384         so we can build without a system-wide installed copy.
7386 2006-04-09  James Livingston  <doclivingston@gmail.com>
7388         * data/glade/general-prefs.glade:
7389         * data/rhythmbox.schemas:
7390         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7391         (rb_combo_box_hyphen_separator_func):
7392         * lib/rb-glade-helpers.h:
7393         * lib/rb-preferences.h:
7394         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7395         (rb_shell_preferences_sync),
7396         (rb_shell_preferences_toolbar_style_cb),
7397         (rb_shell_preferences_browser_views_activated_cb):
7398         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7399         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7400         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7402 2006-04-09  James Livingston  <doclivingston@gmail.com>
7404         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7405         data that MusicBrainz returns to us. Last part of bug 334167.
7407 2006-04-09  James Livingston  <doclivingston@gmail.com>
7409         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7410         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7412 2006-04-09  James Livingston  <doclivingston@gmail.com>
7414         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7415         the entry view properly when the rows are reordered. Fixes bug 337019.
7417 2006-04-09  James Livingston  <doclivingston@gmail.com>
7419         * configure.ac:
7420         * widgets/Makefile.am:
7421         * widgets/libsexy/Makefile.am:
7422         * widgets/libsexy/sexy-icon-entry.c:
7423         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7424         libsexy, and allow building against it or a system-wide installed
7425         copy.
7428         * widgets/rb-search-entry.c: (rb_search_entry_init),
7429         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7430         search box. Fixes bug 128109.
7432 2006-04-09  James Livingston  <doclivingston@gmail.com>
7434         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7436         * widgets/rb-entry-view.c: (rb_entry_view_init),
7437         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7438         and Pause icons rather than the volume ones in the Now Playing column.
7439         Closes bug 336482.
7441 2006-04-08  James Livingston  <doclivingston@gmail.com>
7443         * bindings/python/override_common.h:
7444         * bindings/python/rb.override:
7445         * bindings/python/rhythmdb.override: bind some more functions 
7447 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7449         * metadata/rb-metadata-dbus-service.c: (_send_error):
7450         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7451         are sent properly and we don't get 'method doesn't exist' messages
7452         from dbus instead.
7454 2006-04-08  James Livingston  <doclivingston@gmail.com>
7456         * bindings/python/override_common.h:
7457         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7458         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7459         more utility functions for C<->Python conversions
7461         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7462         (rb_entry_view_state_get_type):
7463         * widgets/rb-entry-view.h: make the colume type and entry view state
7464         GTypes
7466         * bindings/python/Makefile.am:
7467         * bindings/python/rb.defs:
7468         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7469         RBSource.
7471 2006-04-08  James Livingston  <doclivingston@gmail.com>
7473         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7474         initialiser for a GError
7476         * sources/rb-source.c: (rb_source_eof_type_get_type):
7477         * sources/rb-source.h: add a GType for RBSourceEOFType
7479         * bindings/python/Makefile.am:
7480         * bindings/python/rb.defs:
7481         * bindings/python/rb.override: bind RBSource and RBSourceList
7483 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7485         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7486         (rb_shell_player_get_property),
7487         (rb_shell_player_get_active_source),
7488         (rb_shell_player_set_playing_source_internal):
7489         * shell/rb-shell-player.h:
7490         Change 'playing-from-queue' from being a signal to being a property.
7492         * shell/rb-shell.c: (rb_shell_constructor),
7493         (rb_shell_playing_from_queue_cb),
7494         (rb_shell_view_queue_as_sidebar_changed_cb),
7495         (rb_shell_jump_to_entry_with_source):
7496         When the queue side pane is used, make 'jump to current' jump to the
7497         entry in the registered source for its type, rather than in the queue,
7498         and show it as playing in that source.
7499         
7500         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7501         * sources/rb-sourcelist.h:
7502         Remove the 'preempted source' stuff, since it wasn't doing anything
7503         anyway.
7505 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7507         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7508         (download_progress_cb): Canonicalise downloaded file location before
7509         setting the mountpoint property of the corresponding entry.
7510         Fixes #337287 and a couple of memory leaks.
7512 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7514         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7515         (test_load), (main): Call g_set_prgname, report errors more
7516         usefully in test mode.
7517         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7518         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7519         files.  Run the event loop when the state change fails so we get the
7520         error messages from the bus.  Fixes #336921.
7522 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7524         * data/art/Makefile.am: Install media-eject.
7526         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7527         return value of rb_file.
7529         Fixes #337209
7531 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7533         Patch by: William Jon McCann  <mccann@jhu.edu>
7535         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7536         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7537         Fix GError leak.
7539 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7541         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7542         Don't try to add a date when we don't have one.  Fixes #336741.
7544         Also fix variable declaration in middle of block.
7546 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7548         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7549         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7551 2006-04-02  James Livingston  <doclivingston@gmail.com>
7553         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7554         inverted logic causing imports to fail.
7556 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7558         * shell/main.c: (main): Fix dbusless build.
7560 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7562         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7563         wav header for non-gcc compilers (not tested much, was only written
7564         according to docs)
7566 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7568         * shell/main.c: (main): Check if we got a dbus connection before
7569         trying to create a proxy for the shell object.  Fixes #336634.
7571 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7573         * doc/reference/Makefile.am:
7574         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7575         * shell/rb-source-header.c:
7576         * sources/rb-generic-player-source.c:
7577         (default_transform_playlist_uri):
7578         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7579         <alexl@users.sourceforge.net>
7581 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7583         * configure.ac: Detect LIRC.
7584         
7585         * plugins/Makefile.am:
7586         * plugins/lirc/Makefile.am:
7587         * plugins/lirc/lirc.rb-plugin.desktop.in:
7588         * plugins/lirc/rb-lirc-plugin.c:
7589         LIRC plugin.
7591         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7592         Remove obsolete files.
7594 2006-04-02  James Livingston  <doclivingston@gmail.com>
7596         * sources/rb-generic-player-source.c:
7597         (default_transform_playlist_uri): consider playlist paths as relative
7598         to the volume root by default, since that is what most players use.
7600 2006-04-02  James Livingston  <doclivingston@gmail.com>
7602         * lib/rb-util.c: (rb_mime_get_friendly_name):
7603         * lib/rb-util.h: add helper function to get the "friendly" name for a
7604         mime-type
7606         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7607         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7608         the user better error messages about undecodable streams, using the
7609         "friendly" name if possible. Fixes bug 128109.
7611 2006-04-02  James Livingston  <doclivingston@gmail.com>
7613         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7614         (start_pipeline): fix building with gstreamer 0.8
7616 2006-04-02  James Livingston  <doclivingston@gmail.com>
7618         * sources/rb-podcast-source.c: (impl_delete),
7619         (rb_podcast_source_cmd_delete_feed),
7620         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7621         it, since it may change during traversal. Fixes bug 336204.
7623 2006-04-01  James Livingston  <doclivingston@gmail.com>
7625         * data/art/media-eject.png: add the media-eject icon from Banshee
7626         (BSD-licensed), for use when the user's icon theme doesn't have one.
7628         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7629         bug 334897.
7631 2006-04-01  James Livingston  <doclivingston@gmail.com>
7633         * shell/rb-shell-player.h:
7634         * shell/rb-shell-player.c: (rb_shell_player_play),
7635         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7636         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7637         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7639         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7640         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7641         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7643         * bindings/python/rb.defs: bind the above to Python, and remove some
7644         useless stuff from the bindings.
7646 2006-04-01  James Livingston  <doclivingston@gmail.com>
7648         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7649         number tag.
7651         * shell/rb-shell.c:
7652         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7654         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7655         to true.
7657         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7658         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7659         method assigning, so it's understandable
7661         * sources/rb-library-source.c: (rb_library_source_class_init),
7662         (impl_paste): rather than hard-coding the types to ignore, use
7663         rb_source_can_copy.
7665 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7667         * sources/rb-library-source.c:
7668         (rb_library_source_preferences_sync):
7669         Don't crash if no audio profile is selected and the gconf schemas are 
7670         not installed.
7672 2006-03-31  James Livingston  <doclivingston@gmail.com>
7674         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7675         "*" which caused compilation to fail
7677 2006-03-31  James Livingston  <doclivingston@gmail.com>
7679         * configure.ac:
7680         * Makefile.am:
7681         * backends/Makefile.am:
7682         * backends/gstreamer/Makefile.am:
7683         * backends/gstreamer/rb-encoder-gst.c:
7684         * backends/gstreamer/rb-encoder-gst.h:
7685         * backends/rb-encoder.c:
7686         * backends/rb-encoder.h: add a interface for transcoding, and a
7687         GStreamer implementation of it (based on Sound-Juicer's code).
7689         * shell/Makefile.am:
7690         * shell/rb-removable-media-manager.c:
7691         (rb_removable_media_manager_class_init),
7692         (rb_removable_media_manager_init),
7693         (rb_removable_media_manager_dispose),
7694         (rb_removable_media_manager_finalize),
7695         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7696         (progress_cb), (completed_cb), (do_transfer),
7697         (rb_removable_media_manager_queue_transfer), (copy_entry),
7698         (rb_removable_media_manager_cmd_copy_tracks):
7699         * shell/rb-removable-media-manager.h: use the encoder interface to
7700         perform transfers of entries to other locations
7702         * shell/rb-shell-player.c: (open_location_thread):
7703         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7704         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7705         (rb_shell_quit):
7706         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7707         progress in the status bar.
7709         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7710         (rb_shell_preferences_sync),
7711         (rb_shell_preferences_browser_views_activated_cb):
7712         * data/glade/general-prefs.glade: move the browser views setting from
7713         the library tab to the general one.
7715         * data/glade/library-prefs.glade: add settings for the layout of the
7716         user's library, and their preferred encoding format (e.g. for CD
7717         ripping).
7719         * lib/rb-preferences.h:
7720         * data/rhythmbox.schemas: add keys for the above options (and a few
7721         other minor ones)
7723         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7724         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7725         entry, that isn't inserted into the database.
7727         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7728         (rb_audiocd_create_track_entry):
7729         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7730         cds, and set the mime-type of audio cd tracks correctly.
7732         * sources/rb-library-source.c: (rb_library_source_class_init),
7733         (rb_library_source_finalize),
7734         (rb_library_source_edit_profile_clicked_cb),
7735         (impl_get_config_widget), (rb_library_source_preferences_sync),
7736         (impl_receive_drag), (rb_library_source_path_changed_cb),
7737         (rb_library_source_filename_changed_cb),
7738         (rb_library_source_format_changed_cb), (sanitize_path),
7739         (filepath_parse_pattern), (layout_example_label_update),
7740         (rb_library_source_layout_path_changed),
7741         (rb_library_source_layout_filename_changed), (build_filename),
7742         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7743         entries to the library. Large chunks of code for determining the
7744         destination file name stolen from Sound-Juicer.
7746         * sources/rb-sourcelist-model.c: (path_is_droppable):
7747         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7748         * sources/rb-static-playlist-source.c:
7749         (rb_static_playlist_source_class_init):
7750         * sources/rb-removable-media-source.c:
7751         (rb_removable_media_source_class_init):
7752         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7753         (rb_source_can_paste):
7754         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7755         than _can_copy) to determine whether we can paste into the source.
7758 2006-03-31  Steve Frécinaux  <steve@istique.net>
7760         * plugins/rb-python-module.c: allow import of python modules with a '.'
7761         (gedit's bug 336403). Patch by Johan Dahlin.
7763 2006-03-31  James Livingston  <doclivingston@gmail.com>
7765         * sources/rb-library-source.c: 
7766         * sources/rb-library-source.h:
7767         * sources/rb-browser-source.c:
7768         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7769         RBBrowserSource now contains all the stuff for having a source which
7770         views a particular entry type (including browsers and searching).
7771         RBLibrarySource derives from this, and includes the library-specific
7772         stuff, like importing and library watching. Fixes some issues where
7773         library-derived sources were doing things that should be
7774         library-specific. Fixes bug 335185.
7776         * data/ui/rhythmbox-ui.xml:
7777         * sources/Makefile.am: modifications for the above
7779         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7780         (rb_daap_source_get_paned_key):
7781         * sources/rb-daap-source.h:
7782         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7783         * sources/rb-removable-media-source.c:
7784         (rb_removable_media_source_class_init):
7785         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7786         instead of RBLibrarySource.
7788 2006-03-31  James Livingston  <doclivingston@gmail.com>
7790         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7791         I buggered up when changing from GnomeVFSFileSize.
7793 2006-03-30  James Livingston  <doclivingston@gmail.com>
7795         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7796         for "-Wno-error".
7798         * bindings/python/rb.override:
7799         * bindings/python/Makefile.am: make the RB python bindings depend on
7800         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7801         code sometimes emits warnings.
7803         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7804         (rb_shell_player_error_get_type):
7805         * shell/rb-shell-player.h:
7806         * bindings/python/rb.defs: add bindings for RBShellPlayer
7808         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7809         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7810         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7811         * rhythmdb/rhythmdb.h:
7812         * shell/rb-shell.c: (rb_shell_get_song_properties):
7813         * widgets/rb-entry-view.c: (propid_from_name):
7814         * widgets/rb-property-view.c: (rb_property_view_class_init):
7815         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7816         than just plain GPtrArray, and add bindings for it.
7818         * bindings/python/rhythmdb.override: wrap some functions that use
7819         GValues
7821 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7823         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7824         Only watch directories from which entries of type SONG have been
7825         added.
7827 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7829         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7830         No need to restore the selection after rebuilding the child model,
7831         since that can't have changed the selection.
7833 2006-03-29  James Livingston  <doclivingston@gmail.com>
7835         * bindings/python/override_common.c:
7836         * bindings/python/override_common.h: add some for missing files to
7837         cvs.
7839 2006-03-29  James Livingston  <doclivingston@gmail.com>
7841         * configure.ac:
7842         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7843         copied from gedit's autofoo and we don't need it
7845         * bindings/python/rhythmdb.defs:
7846         * bindings/python/rhythmdb.override: add missing files to cvs
7848 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7850         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7851         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7852         before running any of the debug/test modes.
7853         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7854         Make plugin loading work when running uninstalled from the shell/
7855         directory.
7857 2006-03-29  James Livingston  <doclivingston@gmail.com>
7859         * rhythmdb/rhythmdb-property-model.c:
7860         (rhythmdb_property_model_sync),
7861         (rhythmdb_property_model_column_get_type):
7862         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7864         * rhythmdb/rhythmdb-private.h:
7865         * rhythmdb/rhythmdb-query-model.c:
7866         (rhythmdb_query_model_class_init):
7867         * rhythmdb/rhythmdb-query-model.h:
7868         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7869         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7870         (rhythmdb_entry_get_type):
7871         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7873         * widgets/rb-query-creator-properties.c:
7874         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7875         was missing.
7877         * bindings/python/Makefile.am:
7878         * bindings/python/rb.defs:
7879         * bindings/python/rb.override:
7880         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7881         Python bindings for RhythmDB.
7883 2006-03-29  James Livingston  <doclivingston@gmail.com>
7885         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7886         sharing when using --no-registration
7888 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7890         * rhythmdb/rhythmdb-query-model.c:
7891         (rhythmdb_query_model_reapply_query):
7892         Don't remove entries while iterating, as it breaks the sequence
7893         nodes.  Instead, collect a list of removed entries and process it
7894         after iterating the sequence.  Fixes #334642.
7896 2006-03-29  James Livingston  <doclivingston@gmail.com>
7898         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7899         (row_activated_cb), (plugin_manager_toggle_all):
7900         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7901         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7902         (button_press_cb), (source_name_edited_cb):
7903         * widgets/rb-property-view.c: (rb_property_view_set_property),
7904         (rb_property_view_post_row_deleted_cb),
7905         (rb_property_view_row_activated_cb),
7906         (rb_property_view_selection_changed_cb),
7907         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7908         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7910 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7912         * rhythmdb/rhythmdb-query-model.c:
7913         (rhythmdb_query_model_drag_data_received):
7914         Increment the reference count for entries added by drag and drop.
7915         Fixes #336045.
7917 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7919         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7920         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7921         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7923 2006-03-27  James Livingston  <doclivingston@gmail.com>
7925         * shell/rb-shell.c: (rb_shell_constructor),
7926         (rb_shell_sync_window_state): fix a maximise-realise race that would
7927         cause some widgets to be resized after we had explicity set theri
7928         size. Hopefully fixes bug 331927.
7930 2006-03-27  James Livingston  <doclivingston@gmail.com>
7932         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7933         (row_activated_cb), (plugin_manager_set_active),
7934         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7935         configure button sensitivity when a plugin is enabled/disabled.
7937 2006-03-27  James Livingston  <doclivingston@gmail.com>
7939         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7940         stop warnings, only the vbos is used anyway
7942         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7943         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7944         collection every now an then.
7946         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7947         if we are finalising because the python object couldn't be created.
7949         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7950         NULL if the python-side object couldn't be created. Stops crashes when
7951         the object is later used when it doesn't exist in Python.
7953         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7954         (rb_python_shutdown): do better garbage collection when shutting down.
7955         Fixes the problem where Python was holding a reference to the shell,
7956         causing RB not to exit.
7958 2006-03-27  James Livingston  <doclivingston@gmail.com>
7960         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7961         336131.
7963 2006-03-27  James Livingston  <doclivingston@gmail.com>
7965         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7966         From bug 334829.
7968 2006-03-26  James Livingston  <doclivingston@gmail.com>
7970         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7971         library location list to NULL after we free it. Fixes bug 336047.
7973 2006-03-26  James Livingston  <doclivingston@gmail.com>
7975         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7977         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7978         supplies. Fixes bug 335947.
7980 2006-03-25  James Livingston  <doclivingston@gmail.com>
7982         * data/glade/audioscrobbler-prefs.glade:
7983         * shell/rb-audioscrobbler.c:
7984         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7985         "submit songs" checkbox, and make it not disable username/password
7986         entry. This will be needed when we support other last.fm stuff
7987         (profile access, radio, etc).
7989 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7991         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7992         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7993         335777.
7995 2006-03-24  James Livingston  <doclivingston@gmail.com>
7997         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7998         (rb_shell_player_sync_play_order),
7999         (rb_shell_player_play_order_update_cb),
8000         (actually_set_playing_source): update the next/previous availablility
8001         in places where it was missing. Fixes bug 335490.
8003 2006-03-24  James Livingston  <doclivingston@gmail.com>
8005         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
8006         can't find the widget
8008         * lib/rb-util.c: (rb_uri_list_parse):
8009         * lib/rb-util.h: add function for parsing a URI list into strings.
8011         * metadata/Makefile.am: make the metdata helper build when linking
8012         with --as-needed
8014         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
8015         g_mkdir_with_parents instead of coding our own.
8017         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
8018         <itunes:author> over <generator>, instead of using whichever comes
8019         last.
8021         * rhythmdb/rhythmdb-private.h:
8022         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
8023         field, as we don't ever check it (to detect corruption). Saves a bit
8024         of memory.
8026 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8028         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
8029         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
8030         Escape '&' and '=' in the paths we get back from
8031         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
8033 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8035         * shell/rb-shell.c: (rb_shell_constructor):
8036         Issue startup notification after creating the main window, so
8037         notification is issued whether the window is visible or not.
8038         Fixes #335086.
8040 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8042         * sources/rb-auto-playlist-source.c: (impl_search),
8043         (rb_auto_playlist_source_query_complete_cb),
8044         (rb_auto_playlist_source_do_query):
8045         * sources/rb-library-source.c: (impl_search),
8046         (rb_library_source_query_complete_cb),
8047         (rb_library_source_do_query):
8048         Defer subset searches (where text is appended to an existing search)
8049         until the original query is complete.
8051 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
8053         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
8055         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8056         (rb_refstring_get_sort_key): fixes for strict-aliasing
8058 2006-03-21  James Livingston  <jrl@ids.org.au>
8060         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
8061         importing a single file. Fixes bug 335307.
8063 2006-03-21  James Livingston  <jrl@ids.org.au>
8065         * shell/Makefile.am: remove the reference to backends/ that I
8066         accidently included.
8068 2006-03-21  James Livingston  <jrl@ids.org.au>
8070         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
8071         with Forte (on Solaris). Closes bug 335318.
8073         * configure.ac:
8074         * lib/Makefile.am:
8075         * player/rb-recorder-gst.c:
8076         * podcast/rb-podcast-parse.c:
8077         * remote/bonobo/Makefile.am:
8078         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
8079         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
8080         (rhythmdb_query_model_add_entry),
8081         (rhythmdb_query_model_add_results):
8082         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
8083         * rhythmdb/rhythmdb.h:
8084         * shell/Makefile.am:
8085         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
8086         (update_speed_combobox):
8087         * sources/rb-sourcelist-model.c:
8089 2006-03-21  James Livingston  <jrl@ids.org.au>
8091         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8093         * player/Makefile.am:
8094         * shell/Makefile.am: work correctly with a separate build root.
8096 2006-03-21  James Livingston  <jrl@ids.org.au>
8098         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
8099         get handed NULL.
8101 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8103         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
8104         Only create ignore entries when importing into the library.  
8105         Ignore entries for files in removable media sources don't help.
8107 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8109         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
8110         * shell/rb-source-header.h:
8111         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
8112         * widgets/rb-search-entry.h:
8113         Add functions to make the search box grab focus.
8115         * shell/rb-shell.c: (rb_shell_cmd_view_all):
8116         Focus the search box after handling the 'view all' action.
8118 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8120         * rhythmdb/rhythmdb.h:
8121         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8122         (rhythmdb_execute_multi_stat_info_cb),
8123         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
8124         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
8125         (action_thread_main):
8126         Collect all the get_file_info requests on startup into one gnome-vfs
8127         job to reduce overhead and avoid contention for the rhythmdb lock.
8128         Add a new method to call when all initial query models are set up.
8129         
8130         * shell/rb-shell.c: (idle_handle_load_complete):
8131         Call rhythmdb startup complete function when we've loaded all the
8132         playlists.  Fixes #334106.
8134 2006-03-20  James Livingston  <jrl@ids.org.au>
8136         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
8137         (rb_entry_view_selection_changed_cb),
8138         (rb_entry_view_have_complete_selection): make has_complete_selection
8139         not slow. Fixes a performance issue I added a week or so ago.
8141 2006-03-20  James Livingston  <jrl@ids.org.au>
8143         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
8144         before passing to strcmp. From bug 334559.
8146 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8148         * configure.ac:
8149         * lib/Makefile.am:
8150         * lib/rb-proxy-config.c:
8151         * lib/rb-proxy-config.h:
8152         Add a new object to watch the HTTP proxy configuration and emit
8153         signals when it changes.
8155         * shell/rb-audioscrobbler.c:
8156         * shell/rb-audioscrobbler.h:
8157         Use rb-proxy-config to watch HTTP proxy configuration.
8159         * shell/rb-shell.c:
8160         Construct rb-proxy-config object on startup, and remove all
8161         audioscrobbler references.
8163         * shell/Makefile.am:
8164         * plugins/audioscrobbler/Makefile.am:
8165         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
8166         Move all audioscrobbler code into the plugin.  We should move
8167         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
8168         point.  Don't use a private data structure in the plugin, since the
8169         class definition isn't in a header file.  Fixes #335091.
8171 2006-03-20  James Livingston  <jrl@ids.org.au>
8173         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
8174         don't enable Next if the source has an EOS type other than
8175         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
8177 2006-03-20  James Livingston  <jrl@ids.org.au>
8179         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
8180         (rb_song_info_forward_clicked_cb): deal with there being no
8181         next/previous entry.
8183         (rb_song_info_query_model_inserted_cb),
8184         (rb_song_info_query_model_deleted_cb),
8185         (rb_song_info_query_model_reordered_cb),
8186         (rb_song_info_query_model_changed_cb): monitor the query for changes,
8187         to update the button status. Fixes bug 333293.
8189 2006-03-20  James Livingston  <jrl@ids.org.au>
8191         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
8192         caused by my last commit
8194 2006-03-20  James Livingston  <jrl@ids.org.au>
8196         * bindings/python/Makefile.am:
8197         * bindings/python/rb.defs:
8198         * bindings/python/rb.override: add python bindings of RBRemoteProxy
8200         * shell/rb-shell.c: (rb_shell_constructor),
8201         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
8202         tray-icon detection slightly
8204 2006-03-19  Steve Frécinaux  <steve@istique.net>
8206         * data/ui/rhythmbox-ui.xml:
8207         * shell/rb-shell.c:
8209         Add an empty Tool Menu (hidden by default) containing placeholders for
8210         plugins.
8212         * configure.ac:
8213         * plugins/Makefile.am:
8214         * plugins/pythonconsole/Makefile.am:
8215         * plugins/pythonconsole/pythonconsole.py:
8216         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
8217         
8218         Python Console plugin
8220 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8222         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
8223         Extra step to encode '&' and '=' to match what gnome-vfs does
8224         internally.
8225         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8226         (rhythmdb_tree_save):
8227         Increment rhythmdb xml version to 1.2, and force another uri
8228         re-canonicalisation when loading v1.1 databases.
8229         Fixes bug #333998.
8231 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8233         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8234         (avahi_client_init), (browse_cb):
8235         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8236         (avahi_client_init):
8237         Fix compilation with Avahi 0.5.x (bug #334551).
8239 2006-03-19  James Livingston  <jrl@ids.org.au>
8241         Add Increase/Decrease Volume menu items and keybindings. From bug
8242         123383.
8244         * data/ui/rhythmbox-ui.xml:
8245         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8246         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8247         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8249 2006-03-19  James Livingston  <jrl@ids.org.au>
8251         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8253         * shell/Makefile.am: fix the link order, so that we compile with
8254         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8256 2006-03-19  James Livingston  <jrl@ids.org.au>
8258         patch by: Adam Petaccia  <adam@tpetaccia.com>
8260         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8261         plugins". Fixes bug 335037.
8263 2006-03-18  James Livingston  <jrl@ids.org.au>
8265         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8266         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8267         332992.
8269         * widgets/rb-header.c: don't make artist/album info in the header the
8270         small size, since it's hard to read.
8272 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8274         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8275         (rhythmdb_finalize): Don't leak the hash tables.
8276         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8277         (rhythmdb_commit_internal): Make sure to process the deletions.
8278         (rhythmdb_entry_delete): Use a hash.
8280         * podcast/rb-podcast-manager.c: Random analness about char*
8281         (rb_podcast_manager_remove_feed): Add debugging.
8282         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8283         the result of gnome_vfs_unlink.  Don't leak a uri.
8285         Fixes #334786
8287 2006-03-18  James Livingston  <jrl@ids.org.au>
8289         * NEWS: update NEWS file
8291 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8293         * rhythmdb/rhythmdb-property-model.c:
8294         (rhythmdb_property_model_prop_changed_cb):
8295         Remove entries from the hash table after processing visible->hidden
8296         changes.
8298 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8300         * sources/rb-daap-source.c (connection_connected_cb) 
8301         (connection_disconnected_cb): Add debug.
8302         (rb_daap_source_get_headers): Check for NULL connection.
8304         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8305         Check return value of rb_daap_source_get_headers.
8307         Fixes #332089
8309 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8311         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8312         Restore the selection after rebuilding the child model, so the
8313         selection is shown correctly after using the 'browse this
8314         album/artist/genre' menu items.
8316 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8318         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8319         Clear the selection before changing the active model.
8320         Fixes crash reported in bug 334549.
8322 2006-03-15  James Livingston  <jrl@ids.org.au>
8324         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8325         (rb_tray_icon_sync_action):
8326         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8327         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8328         for non-libnotify notification bubbles. Fixes bug 331721.
8330 2006-03-15  James Livingston  <jrl@ids.org.au>
8332         Add search-bar options to playlists. Fixes bug 334407.
8334         * sources/rb-auto-playlist-source.c:
8335         (rb_auto_playlist_source_class_init),
8336         (rb_auto_playlist_source_constructor),
8337         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8338         (search_action_to_prop), (search_action_changed):
8339         * sources/rb-static-playlist-source.c:
8340         (rb_static_playlist_source_class_init),
8341         (rb_static_playlist_source_constructor),
8342         (construct_query_from_selection), (impl_get_search_actions),
8343         (search_action_to_prop), (search_action_changed):
8345 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8347         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8348         Remove broken attempt at making the search bar buttons not
8349         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8351 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8353         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8354         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8356 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8358         * widgets/rb-header.c (rb_header_sync): Escape album and
8359         artist before adding to markup.
8361 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8363         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8364         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8365         (rb_header_set_property), (rb_header_get_property),
8366         (rb_header_sync):
8367         Remove the GnomeUrl song links until we can do it properly.
8368         Fixes #334453.
8370 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8372         * shell/rb-source-header.c: (rb_source_header_clear_search):
8373         Remove the stored search text from the hash table, so it doesn't
8374         reappear after switching to another source and back.
8376         * sources/rb-auto-playlist-source.c: (impl_search):
8377         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8378         * sources/rb-static-playlist-source.c: (impl_search):
8379         Make sure all sources treat impl_search(NULL) and impl_search("") the
8380         same.  Fixes #334525.
8382 2006-03-14  James Livingston  <jrl@ids.org.au>
8384         Store which thread created new entries, and make rhythmdb_commit only
8385         insert the entries for the thread that calls it. This stops one thread
8386         calling rhythmdb_commit inserting entries that are half-way through
8387         construction by another thread (as happens with audio cds). From bug
8388         330226.
8390         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8391         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8392         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8393         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8394         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8395         (rhythmdb_process_metadata_load),
8396         (rhythmdb_process_queued_entry_set_event),
8397         (rhythmdb_prop_get_type):
8399 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8401         * rhythmdb/rhythmdb-query-model.c:
8402         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8403         (rhythmdb_query_model_finalize):
8404         Move object unrefs from _finalize into _dispose.
8405         
8406         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8407         Remove extra g_object_ref that was causing query model leaks.
8408         
8409         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8410         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8411         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8412         Remove the cached 'all' query, since it doesn't really help and it
8413         makes the code more complicated.  Attach the genre property view to
8414         the query model build from the search text, so only genres for
8415         stations matching the search terms are displayed.  Preserve the genre
8416         selection across searches.
8418         * widgets/rb-library-browser.c: 
8419         (rb_library_browser_class_init), (rb_library_browser_get_property):
8420         Add properties for the input and output models for the browser, and
8421         remove the 'changed' signal as we can just use notify::output-model.
8422         (ignore_selection_changes),
8423         (selection_restore_data_destroy), (query_complete_cb),
8424         (restore_selection): Helper functions for preserving selections across
8425         query model rebuilds.
8426         (rebuild_output_model):  New function for creating a query model to
8427         use as the display model for a source using the browser.
8428         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8429         g_object_unrefs, reuse the parent's query model when there's no
8430         selection, and use ignore_selection_changes and restore_selection.
8431         (rb_library_browser_set_selection): rebuild_child_model emits the
8432         changed signal, so no need to do it here.
8433         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8434         ignore_selection_changes and restore_selection. 
8435         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8436         flag to rb_library_browser_set_model indicating whether the query is
8437         asynchronous.
8439         * sources/rb-static-playlist-source.c:
8440         (rb_static_playlist_source_class_init),
8441         (rb_static_playlist_source_dispose):
8442         (rb_static_playlist_source_constructor):  Add an extra reference on
8443         the base model, so it doesn't vanish when we set a new display model
8444         based on a search or browser selection.
8445         (impl_search): Ensure the search_text field in the source is NULL if
8446         the search box is empty.
8447         (construct_query_from_selection),
8448         (rb_static_playlist_source_do_query): Use the query model constructed
8449         from the search as the input model for the browser.
8450         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8451         output model as the query model for the source.
8453         * sources/rb-auto-playlist-source.c:
8454         (rb_auto_playlist_source_finalize): Free more stuff.
8455         (rb_auto_playlist_source_constructor),
8456         (rb_auto_playlist_source_browser_changed_cb):
8457         Update for rb-library-browser changes, use the browser's output query
8458         model as the query model for the source.
8459         (impl_reset_filters), (impl_search), 
8460         (rb_auto_playlist_source_do_query),
8461         (rb_auto_playlist_source_set_query):
8462         Use the query model constructed from the search text as the input to
8463         the library browser, and when adding text to an existing search, apply
8464         the new query to the existing query model.
8465         
8466         * sources/rb-library-source.c: (rb_library_source_dispose):
8467         (rb_library_source_finalize): Chain dispose up to the parent class.
8468         (rb_library_source_constructor): Update for rb-library-browser
8469         changes. 
8470         (impl_search): Ensure search_text is NULL if the search box is empty,
8471         and use the subset flag to _do_query if text has been appended to an
8472         existing search.
8473         (search_action_changed), (impl_reset_filters):
8474         (rb_library_source_browser_changed_cb),
8475         (rb_library_source_do_query): Use the browser's output model as the
8476         query model for the source.
8478         Rework library and playlist sources to use a single query chain,
8479         and to limit the entries shown in property views based on the search
8480         terms.  Fixes bug #322787.
8482 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8484         * configure.ac:  Enable metadata helper by default, and fix a typo.
8486 2006-03-13  James Livingston  <jrl@ids.org.au>
8488         Make RBRefStrings lazily create the folded and sort-key strings when
8489         they are first used. This will same some memory by not creating ones
8490         that are never used, and delaying some of the others to when the user
8491         resorts or performs a similar action. Fixes bug 332992.
8493         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8494         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8495         (rb_refstring_get), (rb_refstring_get_folded),
8496         (rb_refstring_get_sort_key), (rb_refstring_hash),
8497         (rb_refstring_equal):
8498         * rhythmdb/rb-refstring.h:
8499         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8501 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8503         * data/ui/rhythmbox-ui.xml:
8504         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8505         * lib/rb-stock-icons.h:
8506         * shell/rb-shell-player.c:
8507         * shell/rb-shell.c: (rb_shell_constructor):
8508         * shell/rb-source-header.c: (force_no_shadow),
8509         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8510         (rb_source_header_class_init), (rb_source_header_init),
8511         (merge_source_ui_cb), (toolbar_set_homogeneous),
8512         (rb_source_header_set_source_internal),
8513         (rb_source_header_set_property), (rb_source_header_get_property),
8514         (rb_source_header_set_source), (rb_source_header_new),
8515         (rb_source_header_filter_changed_cb):
8516         * shell/rb-source-header.h:
8517         * sources/rb-library-source.c: (rb_library_source_class_init),
8518         (rb_library_source_init), (search_action_to_prop),
8519         (search_action_changed), (rb_library_source_constructor),
8520         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8521         (construct_query_from_selection):
8522         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8523         (rb_podcast_source_init), (search_action_to_prop),
8524         (search_action_changed), (rb_podcast_source_constructor),
8525         (construct_query_from_selection), (impl_get_ui_actions),
8526         (impl_get_search_actions):
8527         * sources/rb-source.c: (rb_source_class_init),
8528         (rb_source_get_ui_actions), (default_get_search_actions),
8529         (rb_source_get_search_actions):
8530         * sources/rb-source.h:
8532         Add a search bar.  Fixes #328618
8534 2006-03-12  James Livingston  <jrl@ids.org.au>
8536         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8537         * shell/main.c: (main): make --no-update not stat files checking for
8538         changes, instead of doing nothing. Fixes bug 125177.
8540 2006-03-12  James Livingston  <jrl@ids.org.au>
8542         * podcast/rb-podcast-manager.c:
8543         (rb_podcast_manager_thread_parse_feed):
8544         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8545         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8546         having an invalid mime-type. Fixed bug 329813.
8548 2006-03-12  James Livingston  <jrl@ids.org.au>
8550         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8551         Finally lets us close bug 309609.
8553         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8554         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8555         0.10
8557         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8558         inverted logic of the editable check.
8560 2006-03-12  James Livingston  <jrl@ids.org.au>
8562         Make API doc generation work again. Fixes bug 334276.
8564         * doc/reference/Makefile.am:
8565         * doc/reference/tmpl/rb-debug.sgml:
8566         * doc/reference/tmpl/rb-druid.sgml:
8567         * doc/reference/tmpl/rb-entry-view.sgml:
8568         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8569         * doc/reference/tmpl/rb-metadata.sgml:
8570         * doc/reference/tmpl/rb-shell.sgml:
8571         * doc/reference/tmpl/rhythmbox-unused.sgml:
8572         * doc/reference/tmpl/rhythmdb.sgml:
8574 2006-03-12  James Livingston  <jrl@ids.org.au>
8576         * shell/rb-shell-clipboard.c:
8577         (rb_shell_clipboard_set_source_internal),
8578         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8579         it doesn't have one. Fixes bug 331673.
8581         * sources/rb-source.c: (rb_source_class_init): provide a default
8582         have_url implementation that returns FALSE.
8584 2006-03-12  James Livingston  <jrl@ids.org.au>
8586         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8587         doing a distclean. Fixes bug 334221.
8590         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8592         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8594 2006-03-11  James Livingston  <jrl@ids.org.au>
8596         * shell/rb-shell.c: (rb_shell_window_state_cb),
8597         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8598         update the window width/height when iconified. Stops the window
8599         changing size when it is restored from the tray, fixing bug 333824. 
8601 2006-03-11  James Livingston  <jrl@ids.org.au>
8603         Try to get cvs to actually add the necessary files for plugin support
8605 2006-03-11  James Livingston  <jrl@ids.org.au>
8607         Add a plugin framework, with basic support for Python plugins (based
8608         on gedit's). Closes bug 330523.
8610         * Makefile.am:
8611         * shell/Makefile.am:
8612         * configure.ac: necessary autofoo.
8614         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8616         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8617         * lib/rb-file-helpers.h:
8619         * data/glade/plugins/glade:
8620         * lib/rb-preferences.h:
8621         * plugins/*:
8622         * bindings/*: plugin framework
8624         * plugins/sample/*:
8625         * plugins/sample-python/*: sample plugins
8627         * plugins/audioscrobbler/*:
8628         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8629         (rb_audioscrobbler_set_property),
8630         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8631         submission into a plugin. shell/audioscrobbler.* should really be
8632         moved, but that sucks with cvs.
8634         * shell/rb-shell.h:
8635         * shell/rb-shell.c: (rb_shell_constructor),
8636         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8637         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8638         (rb_shell_quit): start and stop plugin framework.
8640 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8642         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8643         (rhythmdb_entry_delete):
8644         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8645         immediately, so we can't get change notifications afterwards.  
8646         Fixes #331732.
8647         (rhythmdb_process_metadata_load): Add a commit after removing an
8648         entry so we can recreate it with a different type without getting
8649         confused.
8651 2006-03-11  James Livingston  <jrl@ids.org.au>
8653         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8654         use the drive name for audio CDs, use "Unknown CD".
8656 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8658         patch by:  James Henstridge  <james@jamesh.id.au>
8660         * sources/rb-removable-media-source.c:
8661         (rb_removable_media_source_constructor):
8662         Get the device name from the GnomeVFSDrive if possible,
8663         since this is usually a more descriptive name.  Fixes #333080.
8665 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8667         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8669         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8670         Don't automatically download episodes when configured for manual
8671         updating.  Fixes #331564.
8673 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8675         * rhythmdb/rhythmdb-property-model.c:
8676         (rhythmdb_property_model_iter_from_string):
8677         Return an iterator for the 'all' property when name == NULL,
8678         and don't write to *iter if iter == NULL.
8680 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8682         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8683         When switching to the play queue, still call _go_next on the normal
8684         play order, so self-emptying auto playlists ("play count = 0" etc.)
8685         don't restart once the queue is empty.
8687         * shell/rb-tray-icon.c:
8688         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8689         with 'next'.
8691 2006-03-05  James Livingston  <jrl@ids.org.au>
8693         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8694         don't submit tracks which could not be played. Fixed bug 333013.
8696         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8697         tracks which could not be played.
8699 2006-03-05  James Livingston  <jrl@ids.org.au>
8701         Sync musicbrainz lookup code from Sound-Juicer cvs.
8703         * metadata/sj-metadata-musicbrainz.c:
8704         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8705         (get_offline_track_listing), (artist_and_title_from_title),
8706         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8707         (mb_list_albums), (mb_get_submit_url):
8708         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8709         * metadata/sj-metadata.h:
8710         * metadata/sj-structures.c: (track_details_free),
8711         (album_details_free):
8712         * metadata/sj-structures.h:
8714 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8716         * lib/rb-debug.h:
8717         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8718         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8719         (rb_profiler_reset), (rb_profiler_free):
8720         Filter debug output by matching the file and function names against a
8721         match string.
8723         * shell/main.c: (main):
8724         Add -D command line option to specify the debug match string.
8726         * shell/rb-removable-media-manager.c:
8727         (rb_removable_media_manager_mount_volume):
8728         Fix some typos in debug output.
8730 2006-03-03  James Livingston  <jrl@ids.org.au>
8732         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8733         * shell/rb-shell.c: (rb_shell_load_uri):
8734         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8735         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8736         use the new "recurse" property from totem-plparser, if present. Stop
8737         RB hanging for new users who don't have a 'net connection. From bug
8738         331508.
8740 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8742         * shell/rb-removable-media-manager.c:
8743         (rb_removable_media_manager_mount_volume):
8744         * sources/Makefile.am:
8745         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8746         Fix missing files on make dist (conditional files), only build the
8747         N770 support if there's HAL support, as we have no other ways of
8748         detecting it
8750 2006-03-03  James Livingston  <jrl@ids.org.au>
8752         * shell/rb-shell-clipboard.c:
8753         (rb_shell_clipboard_set_source_internal): really fix it this time.
8754         hopefully.
8756 2006-03-03  James Livingston  <jrl@ids.org.au>
8758         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8759         with the idle function not being removed.
8761 2006-03-02  James Livingston  <jrl@ids.org.au>
8763         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8764         * widgets/rb-entry-view.h: add function for determining whether all
8765         entries are selected.
8767         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8768         (rb_shell_clipboard_set_source_internal),
8769         (rb_shell_clipboard_finalize),
8770         (rb_shell_clipboard_idle_poll_deletions),
8771         (rb_shell_clipboard_entryview_changed_cb),
8772         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8773         removals, to update things.
8775         (rb_shell_clipboard_sync): update the Select All and Select None
8776         sensitivity, based on what is selected. Fixed bug 172220.
8778 2006-03-02  James Livingston  <jrl@ids.org.au>
8780         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8781         restore the selections of later models. This means that selecting the
8782         artist for the selected album does not reset the album selection.
8784 2006-03-02  James Livingston  <jrl@ids.org.au>
8786         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8787         Stops it emitting critical warnings.
8789 2006-03-02  James Livingston  <jrl@ids.org.au>
8791         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8792         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8793         second fragment is already escaped.
8795         * sources/rb-generic-player-source.c:
8796         (rb_generic_player_source_class_init),
8797         (rb_generic_player_source_constructor), (impl_show_popup),
8798         (rb_generic_player_source_load_playlists),
8799         (rb_generic_player_source_transform_playlist_uri),
8800         (handle_playlist_entry_cb), (visit_playlist_dirs),
8801         (default_load_playlists), (default_transform_playlist_uri):
8802         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8803         the device. Allow subclasses to override the playlist loading, and
8804         (playlist uri)->(actual uri) mapping. A lot of devices which have
8805         playlists won't work right now, but people will see them and hopefully
8806         file bugs.
8808         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8809         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8810         
8811         * sources/Makefile.am:
8812         + sources/rb-nokia770-source.{c,h}:
8813         * shell/rb-removable-media-manager.c:
8814         (rb_removable_media_manager_mount_volume): Add support for reading
8815         playlists of Nokia 770s.
8817 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8819         * data/glade/podcast-properties.glade:
8820         * podcast/rb-podcast-properties-dialog.c:
8821         (rb_podcast_properties_dialog_init),
8822         (rb_podcast_properties_dialog_update),
8823         (rb_podcast_properties_dialog_update_location),
8824         (rb_podcast_properties_dialog_update_download_location):
8825         Add 'download location' field showing the path to the downloaded copy.
8826         Fixes #330696.
8828 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8830         * configure.ac: simplify HAVE_HAL define
8832 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8834         * configure.ac:
8835         * lib/rb-file-helpers.c: (rb_uri_append_path):
8836         * lib/rb-file-helpers.h:
8837         * shell/rb-removable-media-manager.c:
8838         (rb_removable_media_manager_mount_volume):
8839         * sources/Makefile.am:
8840         * sources/rb-ipod-source.c:
8841         * sources/rb-psp-source.*:
8842         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8843         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8845 2006-03-02  James Livingston  <jrl@ids.org.au>
8847         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8848         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8849         (swap_playing_source), (rb_shell_player_playpause),
8850         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8851         (rb_shell_player_set_playing_source_internal): check for the entry
8852         view being NULL before trying to use it. Lets us support sources which
8853         don't have an entry view. From bug 331673.
8855 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8857         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8858         use gnome_vfs_read_entire_file with a URI, not a local filename
8860 2006-03-01  James Livingston  <jrl@ids.org.au>
8862         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8863         first-seen and last-seen when merging duplicate entries.
8865 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8867         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8868         * widgets/rb-property-view.h:  New function, allowing custom 
8869         interactive search functions for property views.
8870         
8871         * sources/rb-podcast-source.c: 
8872         (feed_select_change_cb): Only do a new query when the selection
8873         actually changes.
8874         (rb_podcast_source_constructor),
8875         (rb_podcast_source_feed_title_search_func):
8876         Interactive search function for podcast feed titles.  Fixes #327451.
8878 2006-03-01  James Livingston  <jrl@ids.org.au>
8880         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8881         the uri in the callback, since it causes symbols to not be escaped.
8882         Fixes bug 332976.
8884         * data/ui/rhythmbox-ui.xml:
8885         * sources/rb-import-errors-source.c:
8886         (rb_import_errors_source_class_init),
8887         (rb_import_errors_source_constructor), (impl_get_status),
8888         (impl_move_to_trash),
8889         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8890         import errors source
8891         
8892         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8893         (rb_entry_view_append_column): unescape the URI for display.
8895 2006-03-01  James Livingston  <jrl@ids.org.au>
8897         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8898         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8899         function fails.
8901 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8903         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8904         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8905         * sources/rb-play-queue-source.c:
8906         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8907         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8908         of "Queued Songs".
8910         Fixes #331637.
8912 2006-03-01  James Livingston  <jrl@ids.org.au>
8914         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8915         Fixes bug 332913.
8917 2006-03-01  James Livingston  <jrl@ids.org.au>
8919         * daapsharing/rb-daap-mdns-browser-howl.c:
8920         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8921         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8922         (rb_daap_mdns_publisher_class_init),
8923         (rb_daap_mdns_publisher_finalize):
8924         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8925         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8926         (rb_recorder_finalize):
8927         * rhythmdb/rhythmdb-query-model.c:
8928         (rhythmdb_query_model_constructor):
8929         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8930         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8931         * sources/rb-playlist-source-recorder.c:
8932         (rb_playlist_source_recorder_style_set),
8933         (rb_playlist_source_recorder_class_init),
8934         (rb_playlist_source_recorder_finalize):
8935         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8936         other classes in the same way, so they don't break when derived from.
8938 2006-03-01  James Livingston  <jrl@ids.org.au>
8940         * sources/rb-generic-player-source.c:
8941         (rb_generic_player_source_constructor): don't get the parent class in
8942         a dumb way, and it breaks when the class is derived from.
8944 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8946         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8948 2006-03-01  James Livingston  <jrl@ids.org.au>
8950         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8951         not work in glib 2.8 systems.
8953 2006-03-01  James Livingston  <jrl@ids.org.au>
8955         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8956         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8957         say it is crap.
8959         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8960         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8961         podcasts on ion-local places
8963         * rhythmdb/gsequence.c: (g_sequence_node_new),
8964         (g_sequence_node_free): use gslice if we are building against glib
8965         2.10.
8967         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8968         local files too, so it doesn't block.
8970 2006-02-28  James Livingston  <jrl@ids.org.au>
8972         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8973         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8974         stats the file. Stops the UI blocking while stats are done.
8976 2006-02-28  James Livingston  <jrl@ids.org.au>
8978         * sources/rb-static-playlist-source.c:
8979         (rb_static_playlist_source_class_init),
8980         (rb_static_playlist_source_constructor), (impl_reset_filters),
8981         (impl_get_property_views), (impl_browser_toggled),
8982         (rb_static_playlist_source_do_query),
8983         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8984         playlists. From bug 118862.
8986         * sources/rb-play-queue-source.c:
8987         (rb_play_queue_source_class_init): disable them for the play queue.
8989 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8991         * data/glade/library-prefs.glade:  Add a mnemonic.
8992         * sources/rb-library-source.c:
8993         (rb_library_source_location_button_clicked_cb):  Use title
8994         capitalization for window title.
8996 2006-02-28  James Livingston  <jrl@ids.org.au>
8998         * sources/rb-auto-playlist-source.c:
8999         (construct_query_from_selection): don't create a subquery for only one
9000         criteria, as it's a silly effifiency degredation.
9002 2006-02-28  James Livingston  <jrl@ids.org.au>
9004         * rhythmdb/rhythmdb.h:
9005         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9006         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
9007         saved to disk
9009         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
9010         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
9011         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
9012         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
9013         IGNORE (e.g. known video stream) create an entry of the Ignore type.
9014         This will make importing files quicker as we don't need to try files
9015         that we know are not going to be interesting - especially useful when
9016         using the library watching facility.
9018         Fixes bug 323179.
9020 2006-02-28  James Livingston  <jrl@ids.org.au>
9022         * shell/rb-shell.c: (rb_shell_constructor),
9023         (rb_shell_set_visibility): fix browser and source-list pane
9024         positioning, that I broke with the "remember visibility" patch.
9026 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9028         * metadata/rb-metadata-dbus-service.c: (main):
9029         Change argument handling so you can use --debug with the --load and
9030         --can-save test modes.
9031         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
9032         Use a separate GMainContext, not the default one.  Probably fixes
9033         #332344.
9035 2006-02-27  James Livingston  <jrl@ids.org.au>
9037         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
9038         first starting up. Fixes bug 330342.
9040 2006-02-27  James Livingston  <jrl@ids.org.au>
9042         * sources/rb-sourcelist-model.c:
9043         (rb_sourcelist_model_set_dnd_targets):
9044         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
9045         COPY action for draging sources and tracks, not MOVE as well. Stops
9046         Nautilus moving file away, and fixes bug 332488.
9048 2006-02-27  James Livingston  <jrl@ids.org.au>
9050         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
9052         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
9053         and Last Played metadata off iPods. Closes bug 324648.
9055 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9057         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
9058         Disable audioscrobbler when run with the --no-registration flag, since
9059         last.fm doesn't allow multiple concurrent clients per user.
9061 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9063         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
9064         Rename renamable sources when F2 is pressed when the sourcelist has
9065         focus.  Fixes #330700.
9067 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9069         * shell/rb-playlist-manager.c: (cleanup_edit_data),
9070         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
9071         (rb_playlist_manager_cmd_edit_automatic_playlist):
9072         Fix various crashes when deleting auto playlists previously edited
9073         by disconnecting signal handlers when the query editor is closed or
9074         the playlist is deleted.
9076 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9078         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
9079         removed load failure dialog, and actually use the friendly file type
9080         name in error messages.
9082 2006-02-24  James Livingston  <jrl@ids.org.au>
9084         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9086         * sources/rb-library-source.c:
9087         (rb_library_source_location_button_clicked_cb),
9088         (rb_library_source_preferences_sync),
9089         (rb_library_source_library_location_cb): convert the library URI to
9090         for display, and back again. Fixes bug 332356.
9092 2006-02-23  James Livingston  <jrl@ids.org.au>
9094         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9095         (rhythmdb_process_metadata_load), (monitor_subdirectory),
9096         (rhythmdb_sync_library_location): don't monitor files at all if
9097         watching is turned off. From bug 323096.
9099 2006-02-23  James Livingston  <jrl@ids.org.au>
9101         * data/rhythmbox.schemas:
9102         * lib/rb-preferences.h:
9103         * shell/rb-shell.c: (rb_shell_constructor),
9104         (rb_shell_set_visibility): remember main window visibility between
9105         sessions. Fixes bug 127320.
9107 2006-02-23  James Livingston  <jrl@ids.org.au>
9109         * data/glade/library-prefs.glade:
9110         * sources/rb-library-source.c: (impl_get_config_widget),
9111         (rb_library_source_location_button_clicked_cb),
9112         (rb_library_source_preferences_sync),
9113         (rb_library_source_library_location_cb),
9114         (rb_library_source_watch_toggled_cb): change the library-location
9115         widgets from the file-chooser drop menu to a text entry and Browse
9116         button. This is needed to prevent the location from chaning if the
9117         directory cannot be found. Fixes bug 328414.
9119 2006-02-23  James Livingston  <jrl@ids.org.au>
9121         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
9122         item. Fixes bug 329042.
9124 2006-02-23  James Livingston  <jrl@ids.org.au>
9126         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
9128         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
9129         comma in some podcast feeds. Fixes bug 332194.
9131 2006-02-23  James Livingston  <jrl@ids.org.au>
9133         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
9134         lower priority.
9136         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
9137         the internal audio cd URIs from "cdda://device:track" to
9138         "cdda://track#device" as it makes processing much easier.
9140         * shell/rb-shell-player.c: (rb_shell_player_open_location):
9141         * player/rb-player-gst.c: don't have the shell close the player
9142         between songs, as doing that should be backend-specific. Make the
9143         gstreamer backend close before starting a new track, unless the old
9144         and new ones are both tracks on the same audio cd. Just seek in that
9145         case.
9147 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9149         * doc/reference/rhythmbox.types: Fix doc build a bit more.
9151 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9153         * configure.ac: Enable more warnings in my stupid setup too.
9154         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
9155         #332210.
9157 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9159         * sources/rb-missing-files-source.h,
9160         * sources/rb-missing-files-source.c,
9161         * sources/rb-import-errors-source.h,
9162         * sources/rb-import-errors-source.c:
9163         Add library meta-sources, showing missing files and import errors.
9164         Fixes #167763, #142322.
9166         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
9167         * sources/rb-sourcelist-model.h:
9168         * sources/rb-sourcelist.c: (rb_sourcelist_append),
9169         (match_source_to_iter), (rb_sourcelist_source_to_iter),
9170         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
9171         (visibility_notify_cb):
9172         Store source visibility in the sourcelist model, so we can determine
9173         child source counts correctly and get the sourcelist expander column
9174         right.
9175         
9176         * widgets/rb-entry-view.h:
9177         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9178         (rb_entry_view_append_column), (set_column_visibility):
9179         Allow the creator of the entry view to specify which columns are
9180         always visible.
9182         * sources/rb-source.h:
9183         * sources/rb-source.c: (_autohide_update_visibility),
9184         (_rb_autohide_source_row_deleted_cb),
9185         (_rb_autohide_source_row_inserted_cb),
9186         (_rb_source_hide_when_empty):
9187         Allow sources to automatically hide themselves when empty.
9188         
9189         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
9190         * sources/rb-library-source.c: (rb_library_source_constructor):
9191         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9192         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9193         Explicitly specify which columns are always visible.
9194         
9195         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9196         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
9197         Remove load error signal handling and load failure dialog.
9198         Create missing files and import errors sources for the library.
9200         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9201         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
9202         Create DB entries for import errors rather than emitting the 'load
9203         error' signal; mark loaded entries visible.
9204         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
9205         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
9206         (rhythmdb_prop_get_type): Store string form of last seen time for
9207         hidden entries, since it's used in the missing files source.
9208         (rhythmdb_entry_import_error_get_type): 
9209         Add entry type for import errors.
9210         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
9211         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
9212         (rhythmdb_entry_move_to_trash_set_error),
9213         (rhythmdb_entry_move_to_trash):  
9214         Correct spelling, add missing rhythmdb_commit.
9215         * rhythmdb/rhythmdb.h:  
9216         Add import error entry type and last seen string property.
9217         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
9218         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9219         (save_entry):  Ignore string form of 'last seen' property.
9221         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9222         Don't try to play hidden entries or import error entries.
9224         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
9225         * sources/Makefile.am: Add meta-source files
9226         * widgets/Makefile.am: Remove load failure dialog files
9228 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9230         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9231         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
9232         few bits and pieces.
9234 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9236         * metadata/test-metadata.c: (load_metadata_cb):
9237         Fix compile warning for ignoring return value from getcwd, #332064.
9239 2006-02-21  James Livingston  <jrl@ids.org.au>
9241         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9242         (edit_auto_playlist_deleted_cb),
9243         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9244         playlist editor non-modal. Fixes bug 320030.
9246 2006-02-21  James Livingston  <jrl@ids.org.au>
9248         * shell/rb-shell.c: (rb_shell_constructor):
9249         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9250         (rb_header_set_show_artist_album):
9251         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9252         (rb_song_display_box_sync): make the queue sidebar and song display
9253         not get affected by gtk_widget_show_all. Fixes bug 332001.
9255 2006-02-21  James Livingston  <jrl@ids.org.au>
9257         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9259         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9260         feeds which use timezone names instead of offsets. Doesn't actually
9261         parse the timezone name since they are not standardised. Fixes bug
9262         331691.
9264 2006-02-21  James Livingston  <jrl@ids.org.au>
9266         * help/C/figures/rb-notification-area.png:
9267         * help/C/figures/rb-sidebar.png:
9268         * help/C/quick-reference.xml: remove obsolete files from CVS.
9270         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9271         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9272         (rhythmdb_query_free), (rhythmdb_query_serialize),
9273         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9274         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9276         * widgets/rb-query-creator-properties.c: add prefix and suffix
9277         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9278         doesn't escape the ':' separator in uris.
9280 2006-02-21  James Livingston  <jrl@ids.org.au>
9282         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9283         on startup.
9285 2006-02-21  James Livingston  <jrl@ids.org.au>
9287         * NEWS: update with recent changes
9289 2006-02-21  James Livingston  <jrl@ids.org.au>
9291         * shell/rb-shell.c: (rb_shell_constructor),
9292         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9293         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9294         (rb_druid_browse_clicked_cb), (do_response):
9295         * widgets/rb-druid.h: Make running the druid not block RBShell
9296         starting up. This is required so that bonobo registration doesn't time
9297         out. Fixed bug 318766.
9299 2006-02-21  James Livingston  <jrl@ids.org.au>
9301         * rhythmdb/rhythmdb-property-model.c:
9302         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9303         hash table after using it, not before. Fixed bug 331922.
9305 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9307         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9308         (rb_shell_view_queue_as_sidebar_changed_cb):
9309         When playing from the queue, only attempt to highlight the queue
9310         source in the source list if it's actually visible there.  Otherwise,
9311         leave the preempted source highlighted.  Mostly fixes #330819.
9313 2006-02-20  James Livingston  <jrl@ids.org.au>
9315         * rhythmdb/rhythmdb-property-model.c:
9316         (rhythmdb_property_model_row_inserted_cb),
9317         (rhythmdb_property_model_prop_changed_cb),
9318         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9319         store the roperty value in the entry-mapping table, so that receiving
9320         the remove signal from a query model before we get notified of a
9321         change doesn't cause a crash. Fixes bug 331770.
9323 2006-02-20  James Livingston  <jrl@ids.org.au>
9325         * data/ui/rhythmbox-ui.xml:
9326         * sources/rb-play-queue-source.c:
9327         (rb_play_queue_source_class_init),
9328         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9329         playlist things in the queue popup source. From 330490.
9331         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9332         previous commit
9334 2006-02-20  James Livingston  <jrl@ids.org.au>
9336         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9337         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9338         attempt to sync data for non-editable entries when using
9339         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9340         331762.
9342 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9344         * .cvsignore:
9345         * Makefile.am:
9346         * autogen.sh:
9347         * configure.ac:
9348         * help/.cvsignore:
9349         * help/Makefile.am: ported to gnome-doc-utils
9350         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9351         * help/ChangeLog: added, for translators
9352         * help/C/rhytmbox-C.omf: removed, no longer used
9353         Know issue: figures are installed, but some are not showed; manual
9354         description added, but not showed in Yelp while browsing. I'll
9355         investigate, maybe are needed some little changes to
9356         help/C/rhythmbox.xml.
9358 2006-02-20  James Livingston  <jrl@ids.org.au>
9360         * data/ui/rhythmbox-ui.xml:
9361         * help/C/figures/rb-adv.png:
9362         * help/C/figures/rb-asst-finish.png:
9363         * help/C/figures/rb-asst-library.png:
9364         * help/C/figures/rb-asst-start.png:
9365         * help/C/figures/rb-basic.png:
9366         * help/C/figures/rb-browser.png:
9367         * help/C/figures/rb-context-menu.png:
9368         * help/C/figures/rb-empty.png:
9369         * help/C/figures/rb-full-play.png:
9370         * help/C/figures/rb-group-auto.png:
9371         * help/C/figures/rb-group-create.png:
9372         * help/C/figures/rb-group.png:
9373         * help/C/figures/rb-imported.png:
9374         * help/C/figures/rb-iradio-add.png:
9375         * help/C/figures/rb-iradio.png:
9376         * help/C/figures/rb-nextprev.png:
9377         * help/C/figures/rb-nobrowse-play.png:
9378         * help/C/figures/rb-notification-area-menu.png:
9379         * help/C/figures/rb-player.png:
9380         * help/C/figures/rb-prefs-general.png:
9381         * help/C/figures/rb-prefs-ipod.png:
9382         * help/C/figures/rb-prefs-library.png:
9383         * help/C/figures/rb-prefs.png:
9384         * help/C/figures/rb-repeat.png:
9385         * help/C/figures/rb-search.png:
9386         * help/C/figures/rb-shuffle.png:
9387         * help/C/figures/rb-stats.png:
9388         * help/C/figures/rb-toolbar-editor.png:
9389         * help/C/figures/rb-volume-mute.png:
9390         * help/C/figures/rhythmbox-group.png:
9391         * help/C/figures/rhythmbox-tray-icon.png:
9392         * help/C/user-guide.xml: remove old stuff from cvs
9394 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9396         * metadata/rb-metadata-dbus-client.c: 
9397         * metadata/rb-metadata-dbus-service.c:
9398         * metadata/rb-metadata-dbus.c:
9399         * metadata/rb-metadata-dbus.h:
9400         New files, adding an external service for reading and writing
9401         metadata, and an implementation of the RBMetaData interface that uses
9402         dbus to communicate with it.
9403         
9404         * metadata/rb-metadata.h,
9405         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9406         (rb_metadata_get_field_name): Put metadata details in a static array
9407         instead of using a hash table, and add a field for language code (not
9408         used for anything)
9409         * metadata/rb-metadata-gst.c: Updates for changes in
9410         rb-metadata-common.c, fix signal handler closure leak for the typefind
9411         element's have-type signal, and add XML to the list of types we ignore.
9412         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9413         Update for changes to rb_metadata_get_field_type
9414         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9415         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9416         here and there.
9417         
9418         * configure.ac: Add --enable-metadata-helper option (not enabled by
9419         default) to use the external metadata service
9420         * metadata/Makefile.am: Add new files
9421         * metadata/test-metadata.c:  Test program for the metadata service
9423         Fixes #329597. 
9425 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9427         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9428         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9429         (rb_podcast_source_cmd_new_podcast):
9430         Move 'new podcast' action to the podcast source, and add it to the
9431         toolbar.  Fixes #331562.
9433 2006-02-19  James Livingston  <jrl@ids.org.au>
9435         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9436         menus, and away from move-to-trash. Fixes bug 331013.
9438 2006-02-19  James Livingston  <jrl@ids.org.au>
9440         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9441         when deleting last entry. Fixes bug 331712.
9443 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9445         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9446         (rb_entry_view_button_press_cb):
9447         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9448         anywhere, and include a flag indicating whether the click was over an
9449         entry or not.
9450         
9451         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9452         (rb_playlist_source_songs_show_popup_cb):
9453         * sources/rb-playlist-source.h:
9454         Add the 'over entry' flag to the class show popup method, and in the
9455         default handler, ignore right clicks when not over an entry.
9456         
9457         * sources/rb-iradio-source.c:
9458         (rb_iradio_source_songs_show_popup_cb):
9459         * sources/rb-library-source.c:
9460         (rb_library_source_songs_show_popup_cb):
9461         * sources/rb-podcast-source.c:
9462         (rb_podcast_source_songs_show_popup_cb):
9463         Show the source list popup menu when right clicked while not over an
9464         entry.
9466         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9467         For the queue sidebar, always display the popup so the 'clear queue'
9468         action is available regardless of where you click.  For the queue
9469         source, only display the popup when right clicked over an entry.
9470         Fixes #331392.
9472 2006-02-19  James Livingston  <jrl@ids.org.au>
9474         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9475         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9476         entry view, when we're not even using it
9478         * rhythmdb/rhythmdb-property-model.c:
9479         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9480         function, rather than a copy of the code.
9482         * shell/rb-playlist-manager.c:
9483         (rb_playlist_manager_playlist_row_inserted_cb),
9484         (rb_playlist_manager_set_source_internal),
9485         (rb_playlist_manager_playlist_entries_changed): use the query-model
9486         directly, rather than the source's entry view.
9488         * shell/rb-source-header.c: don't use the entry view, just select the
9489         source widget.
9491 2006-02-18  James Livingston  <jrl@ids.org.au>
9493         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9495         * help/C/figures/rb-iradio-main.png:
9496         * help/C/figures/rb-notification-area-menu.png:
9497         * help/C/figures/rb-notification-window.png:
9498         * help/C/figures/rb-notification-zone.png:
9499         * help/C/figures/rb-podcast-main.png:
9500         * help/C/figures/rb-statusbar.png:
9501         * help/C/figures/rb-toolbar-prevplaynext.png:
9502         * help/C/figures/rb-toolbar-repeat.png:
9503         * help/C/figures/rb-toolbar-shuffle.png:
9504         * help/C/figures/rb-toolbar.png:
9505         * help/C/figures/rb-volume-changer.png:
9506         * help/C/figures/rb-window-small.png:
9507         * help/C/figures/rb-window.png:
9508         * help/C/rhythmbox.xml: Update user guide with some of the changes
9509         that have occurred after 0.8.8. From bug 314001.
9511 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9513         * rhythmdb/rhythmdb-query-results.h,
9514           rhythmdb/rhythmdb-query-results.c:
9515         New interface for objects that accept query results from RhythmDB.
9517         * rhythmdb/rhythmdb-query-model.c:
9518         (rhythmdb_query_model_query_results_init),
9519         (rhythmdb_query_model_set_query),
9520         (rhythmdb_query_model_add_results),
9521         (rhythmdb_query_model_query_complete):
9522         * rhythmdb/rhythmdb-query-model.h:
9523         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9525         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9526         (rhythmdb_tree_do_full_query):
9527         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9528         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9529         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9530         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9531         * rhythmdb/rhythmdb.h:
9532         Pass query results through the RhythmDBQueryResults interface, rather
9533         than directly to a RhythmDBQueryModel.
9535         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9536         (rb_podcast_manager_db_entry_deleted_cb):
9537         * sources/rb-auto-playlist-source.c:
9538         (rb_auto_playlist_source_do_query),
9539         (rb_auto_playlist_source_set_query):
9540         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9541         * sources/rb-library-source.c: (rb_library_source_constructor),
9542         (rb_library_source_do_query):
9543         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9544         (rb_podcast_source_do_query):
9545         * rhythmdb/rhythmdb-property-model.c:
9546         (rhythmdb_property_model_drag_data_get):
9547         Cast the query model to RhythmDBQueryResults when passing to one of
9548         the RhythmDB query methods.
9550         * rhythmdb/Makefile.am: Add new files.
9552 2006-02-18  James Livingston  <jrl@ids.org.au>
9554         * data/ui/rhythmbox-ui.xml:
9555         * shell/rb-playlist-manager.c:
9556         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9557         "queue playlist" item to source context menu. Fixes bug 330490.
9559 2006-02-18  James Livingston  <jrl@ids.org.au>
9561         * data/glade/general-prefs.glade:
9562         * shell/rb-shell-preferences.c:
9563         (rb_shell_preferences_column_check_changed_cb),
9564         (rb_shell_preferences_sync):
9565         * sources/rb-library-source.c: (rb_library_source_constructor):
9566         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9567         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9568         (rb_entry_view_append_column): Add a "quality" colume which indicates
9569         the bitrate of media. Part of bug 167659.
9571 2006-02-18  James Livingston  <jrl@ids.org.au>
9573         * shell/rb-play-order.c: (do_next_idle_cb),
9574         (default_playing_entry_removed): move to next track when playing entry
9575         is deleted. Fixes bug 131150.
9577         * shell/rb-shell-player.h: remove ancient stuff
9579 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9581         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9582         (rb_shell_clipboard_set_property): 
9583         * shell/rb-shell.c (rb_shell_sync_party_mode):
9584         Trigger a resync of the clipboard properties when changing party mode.
9586 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9588         * sources/rb-static-playlist-source.c: Fix includes.
9590         * sources/rb-source.c (rb_source_can_rename) 
9591         (rb_source_can_delete, rb_source_can_move_to_trash):
9592         Return FALSE if in party mode.
9594         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9595         Replace fullscreen with party mode.
9596         (rb_shell_window_delete_cb): Don't quit if in party mode.
9597         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9598         (window_state_event_cb): Try to deiconify shell when iconified
9599         in party mode.
9600         (rb_shell_sync_party_mode): Sync party mode properties.
9601         Currently, that means [de]sensitizing close, quit, and small-display,
9602         going into fullscreen mode with window stuck and kept above, and
9603         toggling queue-only for the shell player.
9604         (rb_shell_sync_smalldisplay): Sensitive party mode.
9605         (rb_shell_get_party_mode): Get party mode setting.
9607         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9608         (rb_shell_player_set_property, rb_shell_player_get_property):
9609         Add queue-only property.
9610         (rb_shell_player_entry_activated_cb): If in party mode
9611         only queue the entry on activation.
9613         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9614         Break out from set_properties.  Desensitize some actions when
9615         in party mode.
9616         (rb_playlist_manager_set_property): Break out set_source_internal.
9618         * data/rhythmbox.schemas: Remove fullscreen mode.
9620         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9621         action with party mode.
9623         Partial fix for #323933
9625 2006-02-17  James Livingston  <jrl@ids.org.au>
9627         * configure.ac:
9628         * shell/rb-removable-media-manager.c:
9629         (get_nautilus_burn_drive_for_path),
9630         (rb_removable_media_manager_playing_uri_changed_cb): only use
9631         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9632         over the list when it doesn't.
9634 2006-02-17  James Livingston  <jrl@ids.org.au>
9636         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9637         (rb_iradio_source_first_time_changed): Only do the import on the
9638         first change from FALSE to TRUE.
9640         * sources/rb-library-source.c:
9641         (rb_library_source_preferences_sync),
9642         (rb_library_source_library_location_cb): set the first-run done flag
9643         if the user presses close and then sets their watches library
9644         location. Fixes bug 325997.
9646 2006-02-17  James Livingston  <jrl@ids.org.au>
9648         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9649         removable media manager gobject properties
9651         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9652         (split_drive_from_cdda_uri),
9653         (rb_removable_media_manager_playing_uri_changed_cb),
9654         (rb_removable_media_manager_load_media): stop polling a cd drive
9655         when we are playing from it. Part of bug 330716.
9657 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9659         * rhythmdb/rhythmdb-query-model.c:
9660         (rhythmdb_query_model_set_property),
9661         (rhythmdb_query_model_finalize),
9662         (rhythmdb_query_model_base_entry_removed):
9663         Propagate entry removal from base models out to attached property
9664         models.  Fixes the rest of #331165.
9666 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9668         * rhythmdb/rhythmdb-property-model.c:
9669         (rhythmdb_property_model_row_inserted_cb),
9670         (rhythmdb_property_model_prop_changed_cb),
9671         (rhythmdb_property_model_insert):
9672         Don't store NULL as a hash table value if we want to use
9673         g_hash_table_lookup to check if a key exists, and get the checks for
9674         how and whether to handle entry changes the right way around.
9675         Fixes #331211 and half of #331165.
9677 2006-02-16  James Livingston  <jrl@ids.org.au>
9679         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9680         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9681         Fixes bug 329942.
9683 2006-02-16  James Livingston  <jrl@ids.org.au>
9685         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9686         actually reset the browsers.
9688 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9690         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9691         Escape the strings we pass into libnotify so we don't get blank
9692         notifications when the song name contains '&' etc.  Fixes #330784.
9694 2006-02-16  James Livingston  <jrl@ids.org.au>
9696         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9697         enable "View All" when there is only a search box and no browser.
9698         Fixes bug 331395.
9700 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9702         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9703         popup menu, which I forgot to commit with the patch for bug #330014.
9705 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9707         * shell/rb-shell-player.c: (open_location_thread):
9708         Sync button and entry view state once we've started the player, so the
9709         entry view gets into the playing state for iradio.
9711 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9713         * shell/rb-shell-player.c: (open_location_thread):
9714         Take GDK lock before doing anything UI-related.
9716 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9718         * shell/rb-shell.c: Move 'new iradio station' action to
9719         iradio source.
9721         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9722         (rb_iradio_source_init), (rb_iradio_source_finalize),
9723         (rb_iradio_source_constructor):
9724         Remove some unused stuff.
9726         (guess_uri_scheme), (rb_iradio_source_add_station),
9727         (rb_iradio_source_add_from_playlist),
9728         (impl_get_ui_actions), (new_station_location_added),
9729         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9730         action, include it in the toolbar, and make sure the URI we add has a
9731         scheme.  Fixes #327059, more or less.
9733 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9735         * sources/rb-play-queue-source.c:
9736         (rb_play_queue_source_class_init),
9737         (rb_play_queue_source_constructor),
9738         (rb_play_queue_source_update_count),
9739         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9740         Add a toolbar button to clear the play queue, and make it sensitive
9741         only when there are entries in the queue.  Fixes #330014.
9743         * sources/rb-source.c: (_rb_source_register_action_group):
9744         * sources/rb-source.h:  Add helper function to register an
9745         action group for a source.
9747         * sources/rb-library-source.c: (rb_library_source_constructor):
9748         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9749         (register_action_group):  Use _rb_source_register_action_group.
9751 2006-02-15  James Livingston  <jrl@ids.org.au>
9753         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9754         (rb_song_info_constructor), (rb_song_info_set_property): make
9755         tag-editing completion work for albums too.
9757 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9759         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9760         Check the 'limit' checkbox for time-limited playlists.
9762 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9764         * widgets/rb-song-info.c: Prove text-completion when editing title,
9765         artist or album
9767 2006-02-14  James Livingston  <jrl@ids.org.au>
9769         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9770         tray icon popup menu. Fixes bug 331026.
9772 2006-02-14  James Livingston  <jrl@ids.org.au>
9774         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9775         Ogg Vorbis streams, instead of the MP3 ones.
9777 2006-02-14  James Livingston  <jrl@ids.org.au>
9779         * rhythmdb/rhythmdb-property-model.c:
9780         (rhythmdb_property_model_class_init),
9781         (rhythmdb_property_model_drag_data_get):
9782         * rhythmdb/rhythmdb-query-model.c:
9783         (rhythmdb_query_model_title_sort_func):
9784         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9785         LOCATION as the key. Fixes bug 330601.
9787 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9789         * sources/rb-playlist-source.c: (playlist_iter_func):
9790         Make it compile with older versions of totem-plparser too.      
9792 2006-02-13  James Livingston  <jrl@ids.org.au>
9794         * rhythmdb/rhythmdb.h:
9795         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9796         structure private, since things should use the accessor functions
9797         rather than manipulating it directly - Only RhythmDB and the
9798         implementation classes should access it directly. Part of the RhythmDB
9799         cleanup of bug 330226.
9801         * iradio/rb-station-properties-dialog.c:
9802         (rb_station_properties_dialog_update_title),
9803         (rb_station_properties_dialog_update_title_entry),
9804         (rb_station_properties_dialog_update_genre),
9805         (rb_station_properties_dialog_update_location),
9806         (rb_station_properties_dialog_update_play_count),
9807         (rb_station_properties_dialog_update_bitrate),
9808         (rb_station_properties_dialog_update_last_played),
9809         (rb_station_properties_dialog_update_rating),
9810         (rb_station_properties_dialog_update_playback_error),
9811         (rb_station_properties_dialog_sync_entries):
9812         * podcast/rb-feed-podcast-properties-dialog.c:
9813         (rb_feed_podcast_properties_dialog_update_title),
9814         (rb_feed_podcast_properties_dialog_update_title_label),
9815         (rb_feed_podcast_properties_dialog_update_author),
9816         (rb_feed_podcast_properties_dialog_update_location),
9817         (rb_feed_podcast_properties_dialog_update_copyright),
9818         (rb_feed_podcast_properties_dialog_update_language),
9819         (rb_feed_podcast_properties_dialog_update_summary):
9820         * podcast/rb-podcast-manager.c:
9821         (rb_podcast_manager_entry_downloaded),
9822         (rb_podcast_manager_db_entry_added_cb),
9823         (download_progress_update_cb),
9824         (rb_podcast_manager_db_entry_deleted_cb):
9825         * podcast/rb-podcast-properties-dialog.c:
9826         (rb_podcast_properties_dialog_update_title),
9827         (rb_podcast_properties_dialog_update_title_label),
9828         (rb_podcast_properties_dialog_update_feed),
9829         (rb_podcast_properties_dialog_update_location),
9830         (rb_podcast_properties_dialog_update_play_count),
9831         (rb_podcast_properties_dialog_update_bitrate),
9832         (rb_podcast_properties_dialog_update_last_played),
9833         (rb_podcast_properties_dialog_update_rating),
9834         (rb_podcast_properties_dialog_update_date),
9835         (rb_podcast_properties_dialog_update_description):
9836         * rhythmdb/rhythmdb-query-model.c:
9837         (rhythmdb_query_model_entry_changed_cb),
9838         (rhythmdb_query_model_remove_from_main_list),
9839         (rhythmdb_query_model_update_limited_entries),
9840         (rhythmdb_query_model_drag_data_get),
9841         (rhythmdb_query_model_album_sort_func):
9842         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9843         (save_entry):
9844         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9845         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9846         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9847         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9848         (rhythmdb_entry_get_double):
9849         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9850         * shell/rb-play-order-random-by-age-and-rating.c:
9851         (rb_random_by_age_and_rating_get_entry_weight):
9852         * shell/rb-play-order-random-by-age.c:
9853         (rb_random_by_age_get_entry_weight):
9854         * shell/rb-play-order-random-by-rating.c:
9855         (rb_random_by_rating_get_entry_weight):
9856         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9857         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9858         (rb_shell_player_set_playing_entry),
9859         (rb_shell_player_sync_replaygain),
9860         (rb_shell_player_sync_with_source),
9861         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9862         * sources/rb-playlist-source.c: (playlist_iter_func),
9863         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9864         (rb_playlist_source_entry_added_cb):
9865         * sources/rb-podcast-source.c:
9866         (rb_podcast_source_post_status_cell_data_func):
9867         * sources/rb-source.c: (rb_source_update_play_statistics):
9868         * sources/rb-sourcelist-model.c:
9869         (rb_sourcelist_model_drag_data_get):
9870         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9871         (rb_static_playlist_source_add_entry),
9872         (rb_static_playlist_source_remove_entry):
9873         * widgets/rb-entry-view.c: (type_ahead_search_func),
9874         (rb_entry_view_playing_cell_data_func),
9875         (rb_entry_view_rating_cell_data_func),
9876         (rb_entry_view_pixbuf_clicked_cb):
9877         * widgets/rb-header.c: (rb_header_get_duration):
9878         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9879         (rb_song_info_populate_dialog),
9880         (rb_song_info_update_playback_error),
9881         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9882         (rb_song_info_update_location), (rb_song_info_update_play_count),
9883         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9884         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9885         (rb_song_info_sync_entry_single): fix the huge number of times that
9886         the internals got accessed directly.
9888 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9890         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9891         trash' are grouped together.
9892         * shell/main.c: (main): Pass no-registration flag in to RBShell
9893         constructor, rather than mysteriously always passing TRUE.
9894         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9895         Set dirty flag when entries are removed from the model, so the play
9896         queue is marked dirty appropriately.
9897         * AUTHORS: update my email address
9899 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9901         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9903         * widgets/rb-druid.c: (path_dialog_response_cb):
9904         If the URI is local, don't display the 'file://' prefix.  
9905         Fixes #330919.
9907 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9909         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9910         Attach the notification to the tray icon widget, so libnotify
9911         positions it less badly.  Fixes #330876.
9913 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9915         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9916         Reverse the selection list before returning it, so we get it in the
9917         right order.  Fixes #330283 and some other weirdness.
9919 2006-02-11  James Livingston  <jrl@ids.org.au>
9921         * shell/rb-shell.c: (rb_shell_constructor),
9922         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9923         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9924         make small-mode and fullscreen mutually exclusive, since they don't
9925         work together
9927         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9928         Mode.
9930 2006-02-10  James Livingston  <jrl@ids.org.au>
9932         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9933         since it can cause it to be slower than real-time. Should fix bug
9934         322270.
9936 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9938         * rhythmdb/rhythmdb-query-model.c:
9939         (rhythmdb_query_model_set_property):
9940         Think just a little bit harder about that last commit.
9942 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9944         * rhythmdb/rhythmdb-query-model.c:
9945         (rhythmdb_query_model_set_property):
9946         Get the check for hidden entries the right way around.
9947         Fixes #330527, #330514.
9949         (rhythmdb_query_model_set_sort_order):
9950         Ignore no-op sort order changes, so we don't get critical
9951         messages when selecting 'all' in auto playlist browsers.
9953 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9955         Patch by: Christophe Fergeau  <teuf@gnome.org>
9957         * sources/rb-removable-media-source.c:
9958         (rb_removable_media_source_init),
9959         (rb_removable_media_source_constructor):
9960         Move icon setup code to the constructor, as the volume property
9961         haven't been set yet when _init is called.
9963 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9965         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9966         Make the source pixbuf a dynamic property.
9968         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9969         (rb_source_set_pixbuf, rb_source_set_property) 
9970         (rb_source_get_property): Add icon property.
9972         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9973         (rb_auto_playlist_source_init):
9974         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9975         (rb_static_playlist_source_init):
9976         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9977         (rb_removable_media_source_init): 
9978         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9979         (rb_podcast_source_init): 
9980         * sources/rb-library-source.c (rb_library_source_class_init) 
9981         (rb_library_source_set_property, rb_library_source_get_property): 
9982         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9983         (rb_iradio_source_init): Remove impl_get_pixbuf and
9984         set icon property on source base class.
9986         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9987         a different icon for when the share is password protected
9988         and locked.
9989         (rb_daap_source_new): Set icon property.
9990         (composite_icons): Composite an emblem on a pixbuf.
9991         (create_pixbufs): Load global pixbufs.
9992         (destroy_pixbufs): unref global pixbufs.
9993         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9994         (connection_auth_cb, connection_connected_cb) 
9995         (connection_disconnected_cb): Update icon when connection
9996         status changes.
9997         (rb_daap_source_activate): Connect signals.
9999         * daapsharing/rb-daap-share.c (name_collision_cb): Run
10000         dialog with parent.
10002         * daapsharing/rb-daap-marshal.list: Add new signal.
10004         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
10005         (rb_daap_collision_dialog_new_run): Set parent of dialog.
10007         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
10008         Add authenticate, connected, and disconnected signals.
10009         (connection_get_password): emit authenticate signal instead
10010         of running dialog directly.
10011         (connection_connected, connection_disconnected): Emit signals.
10012         (handle_login): Emit connected signal.
10013         (handle_logout): Emit disconnected signal.
10014         (rb_daap_connection_do_something): Fix leak.
10016         Fixes #330291
10018 2006-02-09  James Livingston  <jrl@ids.org.au>
10020         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
10021         entries from the base model if we don't have show-hidden set. Fixes
10022         bug 330514.
10024 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10026         * daapsharing/rb-daap-share.c (message_get_session_id):
10027         Ugh. Use strtoul instead of atoi.
10028         (session_id_validate): Add debug statements.
10030 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10032         * daapsharing/rb-daap-connection.c (http_response_handler):
10033         Report the actual uri from the message in debug statements.
10035 2006-02-08  William Jon McCann  <mccann@jhu.edu>
10037         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
10038         Add context argument.
10039         (message_get_session_id): New function to parse session id from
10040         the message.
10041         (message_get_revision_number): Break out function to parse
10042         revision number from the message.
10043         (session_id_validate): New function to validate given session id
10044         is valid for given context (ie. client address).
10045         (session_id_generate): Generate a random session id.
10046         (session_id_create): Create a unique session id and store it.
10047         (session_id_remove): Remove a session id from the store.
10048         (login_cb): Create a session id instead of using a constant one.
10049         (logout_cb): Validate session id.
10050         (update_cb): Use new message_get_revision_number function.
10051         (databases_cb): Validate session id.
10052         (server_cb): Add server context to argument list for callbacks.  It
10053         is needed to look up the remote host.
10054         (db_entry_changed_cb): Use braces.
10055         (soup_auth_callback): Remove FIXME.
10056         (rb_daap_share_server_start): Create session id store.
10057         (rb_daap_share_server_stop): Destroy session id store.
10059         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
10060         Don't base64-encode password here since it needs to be
10061         combined with the username first.
10063         * daapsharing/rb-daap-connection.c (build_message):
10064         Add username to Authorization token.
10065         (handle_login, handle_song_listing) 
10066         (rb_daap_connection_do_something): Session id
10067         must be an unsigned int.
10069         Fixes #329814
10071 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10073         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10074         Don't check if we've got a playing entry, ask the player object (duh).
10075         Might actually fix #329993.     
10077 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10079         * sources/rb-static-playlist-source.c:
10080         (rb_static_playlist_source_add_list_uri):
10081         Canonicalise URIs before trying to add them to the playlist, and 
10082         don't try to add files to the database for which there is 
10083         already an entry.
10085 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10087         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
10088         Don't ask the entry view if we're playing, just check if we've got a
10089         playing entry.  Fixes #329993.
10091 2006-02-08  James Livingston  <jrl@ids.org.au>
10093         * rhythmdb/rhythmdb-query-model.c:
10094         (rhythmdb_query_model_set_property),
10095         (rhythmdb_query_model_finalize),
10096         (rhythmdb_query_model_base_complete): remove
10097         rhythmdb_query_model_base_entry_prop_changed, so that two signals
10098         don't get emitted for entry changes. Fixes bug 330301.
10100         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
10101         (rb_library_browser_init), (rb_library_browser_constructor),
10102         (rb_library_browser_new): do stuff in the constructor, not the init
10103         function, so that the db property gets set on RBPropertyViews
10104         correctly. Fixes a crash when dragging properties to a playlist.
10106 2006-02-07  William Jon McCann  <mccann@jhu.edu>
10108         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
10109         Actually stop soup server.  Fixes #329816.
10111 2006-02-07  James Livingston  <jrl@ids.org.au>
10113         * lib/rb-util.h:
10114         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
10115         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
10116         (collate_values_cb), (rb_collate_hash_table_keys),
10117         (rb_collate_hash_table_values): add functions to compare, copy and
10118         free string-lists. add functions to collate the keys or values of a
10119         hash table into a list.
10121         * rhythmdb/rhythmdb-property-model.c:
10122         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
10123         (_remove_entry_cb), (_add_entry_cb),
10124         (rhythmdb_property_model_set_property),
10125         (rhythmdb_property_model_get_property),
10126         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10127         (rhythmdb_property_model_row_inserted_cb),
10128         (rhythmdb_property_model_prop_changed_cb),
10129         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
10130         that are hidden, storing those that we have counted in a hash-table.
10132         * shell/Makefile.am: fix build order issue
10134         * shell/rb-shell-player.c: (rb_shell_player_set_property):
10135         * sources/rb-source.h:
10136         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10137         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10138         * sources/rb-podcast-source.c: (feed_select_change_cb): add
10139         browser-toggled method, rename _get_exta_views to _get_property_views,
10140         since several things depend on returning only that.
10142         * sources/rb-source.c: (rb_source_class_init),
10143         (rb_source_browser_toggled), (default_get_property_views),
10144         (rb_source_get_property_views), (rb_source_row_deleted_cb),
10145         (rb_source_gather_hash_keys),
10146         (rb_source_gather_selected_properties): above changes, and move some
10147         utility functions up from RBLibraryView
10149         * widgets/rb-property-view.c:
10150         (rb_property_view_selection_changed_cb): fix leak.
10152         * rhythmdb/rhythmdb-query-model.c:
10153         (rhythmdb_query_model_set_property),
10154         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
10155         (rhythmdb_query_model_set_sort_order),
10156         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
10157         query model being resorted.
10159         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
10160         NULL query.
10162         * rhythmdb/rhythmdb.h:
10163         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
10164         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
10165         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
10166         two queries. Add a function to append "property={X,Y,Z,...}" to a
10167         query.
10169         * sources/rb-library-source.c: (rb_library_source_class_init),
10170         (rb_library_source_finalize), (rb_library_source_constructor),
10171         (rb_library_source_cmd_choose_genre),
10172         (rb_library_source_cmd_choose_artist),
10173         (rb_library_source_cmd_choose_album), (impl_search),
10174         (impl_get_property_views), (impl_reset_filters),
10175         (rb_library_source_preferences_sync),
10176         (rb_library_source_browser_views_activated_cb),
10177         (rb_library_source_state_prefs_sync),
10178         (construct_query_from_selection), (rb_library_source_do_query),
10179         (rb_library_source_browser_changed_cb):
10180         * widgets/Makefile.am:
10181         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
10182         browser" widgets, which contains several property views, based on the
10183         code from RBLibrarySource. Make RBLibrarySource use it.
10185         * sources/rb-auto-playlist-source.c:
10186         (rb_auto_playlist_source_class_init),
10187         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
10188         (rb_auto_playlist_source_constructor), (impl_reset_filters),
10189         (impl_get_property_views), (impl_browser_toggled),
10190         (construct_query_from_selection),
10191         (rb_auto_playlist_source_do_query),
10192         (rb_auto_playlist_source_set_query),
10193         (rb_auto_playlist_source_browser_changed_cb): Use the new
10194         library-browser widget to add browsers to automatic playlists.
10196 2006-02-07  James Livingston  <jrl@ids.org.au>
10198         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
10199         properly.
10200         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
10201         type of the source is taken into account. Fixes bug 329621.
10203 2006-02-07  James Livingston  <jrl@ids.org.au>
10205         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10206         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
10207         1.1, and perform URI canonicalistion when first upgrading. This should
10208         fix our remaining canonicalisation issues, such as bug 329988.
10210 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10212         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
10213         Track the playing entry when the entry view isn't in the playing
10214         state, so we don't have to get the state changes exactly right.
10215         Fixes #330135.
10217 2006-02-06  James Livingston  <jrl@ids.org.au>
10219         * shell/rb-shell-player.c: (open_location_thread),
10220         (rb_shell_player_open_location): fix several iradio issues: having to
10221         press play after double-clicking on a station, not working correctly
10222         without a http:// prefix, and ignoring totem-plparser results other
10223         than success or error (e.g. IGNORE).
10225 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10227         Addition of dbus methods for dealing with static playlists and the
10228         play queue.  Fixes #329958.
10230         * shell/Makefile.am:
10231         * shell/rb-playlist-manager.h:
10232         * shell/rb-playlist-manager.xml:
10233         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10234         (rb_playlist_manager_get_playlists),
10235         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10236         (rb_playlist_manager_create_static_playlist),
10237         (rb_playlist_manager_delete_playlist),
10238         (rb_playlist_manager_add_to_playlist),
10239         (rb_playlist_manager_remove_from_playlist),
10240         (rb_playlist_manager_export_playlist):
10241         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10242         to create, delete, list, modify, export, and import  static playlists.
10243         
10244         * shell/main.c: (main): Register playlist manager object with dbus.
10246         * shell/rb-shell.h:
10247         * shell/rb-shell.xml:
10248         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10249         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10250         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10251         object, and implement the addToQueue and removeFromQueue methods.
10252         
10253         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10254         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10255         formats.
10257 2006-02-05  James Livingston  <jrl@ids.org.au>
10259         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10260         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10261         (save_entry): allow storage of booleans in the on-disk db, and
10262         save/load the HIDDEN property.
10264         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10265         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10266         to the state it was when RB shutdown. This makes RB appear to start
10267         faster, as tracks can appear before the stat is done. Remote files
10268         still start hidden. From bug 325215.
10270 2006-02-05  James Livingston  <jrl@ids.org.au>
10272         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10273         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10274         really cares about the difference from "entry-added", and it isn't
10275         emitted by the tree backend anyway.
10277         * rhythmdb/rhythmdb-query-model.c:
10278         (rhythmdb_query_model_constructor):
10279         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10280         remove the references to the entry-restored signal.
10282 2006-02-05  James Livingston  <jrl@ids.org.au>
10284         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10285         issue.
10287 2006-02-05  James Livingston  <jrl@ids.org.au>
10289         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10290         things are NULL before using g_object_unref. Fixes bug 327452.
10292         * player/rb-recorder-gst.c: (rb_recorder_construct):
10293         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10294         rather than assertion.
10296         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10297         emit a warning, rather than asserting if an unknown playlist type is
10298         encountered.
10300 2006-02-05  James Livingston  <jrl@ids.org.au>
10302         * widgets/Makefile.am:
10303         * widgets/rb-simple-view.c:
10304         * widgets/rb-simple-view.h: Move the two features that this class
10305         provides into RBPropertyView, and remove this class. Closes bug
10306         327500.
10308         * podcast/rb-feed-podcast-properties-dialog.c:
10309         * podcast/rb-feed-podcast-properties-dialog.h:
10310         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10311         (rb_podcast_source_feeds_show_popup_cb):
10312         * sources/rb-podcast-source.h:
10313         * widgets/rb-property-view.c: (rb_property_view_class_init),
10314         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10315         (rb_property_view_append_column_custom),
10316         (rb_property_view_button_press_cb):
10317         * widgets/rb-property-view.h: Updated for the above change.
10319 2006-02-04  James Livingston  <jrl@ids.org.au>
10321         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10322         too close to Move to Trash and people aren't likely to use it often.
10324 2006-02-04  James Livingston  <jrl@ids.org.au>
10326         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10328 2006-02-04  James Livingston  <jrl@ids.org.au>
10330         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10331         passed a path instead of a URI.
10333         * sources/rb-generic-player-source.c: (default_get_mount_path):
10334         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10335         the path. This fixes bug 329723.
10337 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10339         * daapsharing/rb-daap-structure.c:
10340         (rb_daap_content_code_string_as_int32):
10341         Use network byte order.
10343 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10345         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10346         Use a hash for source lookup.
10347         (mdns_service_added, mdns_service_removed): Handle
10348         service-added and service-removed signals from RBDaapMdnsBrowser.
10349         (remove_source): GDestroyNotify function for when sources
10350         are removed from the hash.
10351         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10352         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10353         (rb_daap_sources_shutdown): Update.
10354         (source_host_find): GHRFunc for finding a source by ip.
10355         (rb_daap_source_find_for_uri): Use the hash source lookup.
10357         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10358         Namespace keys.
10359         (password_check_button_toggled_cb): Handle password enabled.
10360         (share_name_entry_focus_out_event_cb): Namespace keys.
10361         Handle changes more robustly.
10362         (share_password_entry_focus_out_event_cb): Handle password entry.
10363         (add_daap_preferences): Connect to password signals.
10365         * lib/rb-preferences.h: Add DAAP keys.
10367         * data/glade/daap-prefs.glade: Add password UI.
10369         * data/rhythmbox.schemas: Add password keys.
10371         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10372         assert with warning.
10374         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10375         gconf keys to lib/rb-preferences.h.  Namespace
10376         the gconf keys.
10377         (create_share): Add password support.
10378         (enable_sharing_changed_cb): Namespaced keys.
10379         (require_password_changed_cb): Handle key change.
10380         (share_name_changed_cb): Namespaced keys.
10381         (share_password_changed_cb): Handle key change.
10382         (rb_daap_sharing_init): Namespaced keys.
10383         (rb_daap_sharing_shutdown): Ditto.
10385         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10386         Add password property.
10387         (rb_daap_share_set_name): Break out prop set function.
10388         (published_cb): New RBDaapMdnsPublisher signal handler.
10389         (name_collision_cb): Ditto.
10390         (rb_daap_share_init): Create publisher object and
10391         connect to signals.
10392         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10393         (rb_daap_share_set_property): Break out prop set functions.
10394         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10395         Unref publisher.
10396         (rb_daap_share_new): Add password argument.  Start
10397         publishing and DAAP server.
10398         (message_set_from_rb_daap_structure): Change print to debug.
10399         (server_info_cb): Set auth method to publish.
10400         (logout_cb): Handle DAAP client logout.
10401         (update_cb): Remove C++ comments.
10402         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10403         (server_cb): Add debug.
10404         (soup_auth_callback): Handle auth requests.
10405         (rb_daap_share_server_start): Split up functions for starting
10406         server and publishing.  Add auth handling to server.
10407         (rb_daap_share_server_stop): Split stop server and publish.
10408         No C++ comments.
10409         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10410         Start and stop publishing.
10411         (rb_daap_share_restart): Restart server and publishing.
10412         (rb_daap_share_maybe_restart): Conditionally restart.
10414         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10415         (rb_daap_collision_dialog_new_run): Don't use
10416         separators in dialogs.
10418         * daapsharing/rb-daap-connection.h: Add private
10419         data to class structure.
10421         * daapsharing/rb-daap-connection.c: Move
10422         some includes to top of file.  Make private
10423         data struct name consistent with others.
10424         (rb_daap_connection_class_init): Rename
10425         private.
10426         (rb_daap_connection_init): Get and store the pointer
10427         to the private data once instead of in every
10428         function.  Create a username value "Rhythmbox_VERSION".
10429         (connection_get_password): Don't get private.
10430         (build_message): Ditto.
10431         (http_response_handler): Don't init variables in
10432         declaration.  Add debug.  Spacing.
10433         (http_get, entry_set_string_prop, handle_server_info) 
10434         (handle_login, handle_update, handle_database_info) 
10435         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10436         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10437         (rb_daap_connection_state_done): Don't get private.
10438         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10439         spacing.  Correctly base64 encode the Authentication token.
10440         Add username to auth token.
10441         (rb_daap_connection_get_playlists): Don't get private.
10442         (rb_daap_connection_dispose): Ditto.  Free username.
10443         (rb_daap_connection_set_property) 
10444         (rb_daap_connection_get_property): Don't get private.
10446         * daapsharing/Makefile.am: Conditionally
10447         compile MDNS backends.  Add marshall stuff.
10449         * daapsharing/.cvsignore: Update.
10451         * configure.ac: Add conditional to see which
10452         MDNS backend we should use.
10454         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10456         * daapsharing/rb-daap-marshal.list:
10457         * daapsharing/rb-daap-mdns-browser-avahi.c:
10458         * daapsharing/rb-daap-mdns-browser-howl.c:
10459         * daapsharing/rb-daap-mdns-browser.h:
10460         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10461         * daapsharing/rb-daap-mdns-publisher-howl.c:
10462         * daapsharing/rb-daap-mdns-publisher.h:
10463         Split rb-daap-mdns.c into two classes.  One for
10464         publishing and one for browsing.  Split out
10465         the avahi and howl backends into different files.
10467         Fixes #322966
10468         
10469 2006-02-04  James Livingston  <jrl@ids.org.au>
10471         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10473         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10474         crash if metadata reader gives us NULL for strings.
10476 2006-02-03  James Livingston  <jrl@ids.org.au>
10478         * shell/rb-shell-player.c: (open_location_thread),
10479         (rb_shell_player_open_location):
10480         retrieve iradio playlists files in a thread, so that with GStreamer
10481         0.10 the UI doesn't block while connecting to stations. The streamer
10482         connection is synchronous with 0.8, so that will still block (a bit).
10483         Fixed bug 128106.
10485         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10486         because _open_entry does that automatically when it is ready to.
10488 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10490         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10491         (rb_podcast_source_post_status_cell_data_func):
10492         Leave the podcast status column blank for episodes that have not been
10493         downloaded.
10495 2006-02-03  James Livingston  <jrl@ids.org.au>
10497         Add support for source-specific toolbar items, and make the Burn
10498         Playlist item only available for playlists. Also add Update All
10499         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10501         * data/ui/rhythmbox-ui.xml:
10502         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10503         (impl_get_ui_actions): make the Burn CD toolbar item only for
10504         playlists
10506         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10507         * lib/rb-stock-icons.h: load the Eject icon as stock.
10509         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10510         action
10512         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10513         (rb_shell_select_source):
10514         * sources/rb-source.c: (rb_source_class_init),
10515         (rb_source_disconnect), (default_get_ui_actions),
10516         (rb_source_get_ui_actions):
10517         * sources/rb-source.h: add support for source-specific toolbar items
10519         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10520         Eject and Rip toolbar items
10522         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10523         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10524         item.
10526 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10528         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10529         * shell/main.c: (main):
10530         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10531         Replace all g_critical calls with g_warning, since none of them are
10532         the sort of thing the process should die over.  Fixes #329398.
10534 2006-02-03  James Livingston  <jrl@ids.org.au>
10536         * configure.ac: mention gst-plugins-base in the error message for not
10537         finding GStreamer 0.10, since not having that will cause it to fail.
10539 2006-02-03  James Livingston  <jrl@ids.org.au>
10541         * configure.ac: fix typo that means you get the wrong error message if
10542         you explicity request a particular playback engine, and it can't be
10543         found.
10545 2006-02-03  James Livingston  <jrl@ids.org.au>
10547         * data/glade/library-prefs.glade: allow the watched library location
10548         to be a non-local place.
10550 ============ Version 0.9.3
10553 2006-02-02  James Livingston  <jrl@ids.org.au>
10555         * NEWS: update NEWS
10556         * configure.ac: bump version to 0.9.3
10558         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10559         <caillon@redhat.com>, fixed bug 329517. 
10561 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10563         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10565         * widgets/rb-song-info.c: (rb_song_info_constructor):
10566         Make year and disc number fields non-editable if tag editing
10567         is disabled.  Fixes #329463.
10569 2006-02-01  James Livingston  <jrl@ids.org.au>
10571         * rhythmdb/rhythmdb-property-model.c:
10572         (rhythmdb_property_model_row_inserted_cb),
10573         (rhythmdb_property_model_prop_changed_cb),
10574         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10575         correctly. Fixes bug 327061.
10577         * rhythmdb/rhythmdb-query-model.c:
10578         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10579         the HIDDEN property when an entry is removed for being hidden.
10581         * rhythmdb/rhythmdb-query-model.h:
10582         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10583         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10584         models's "connected" property. Whatever it was needed for seems to
10585         have gone.
10587 2006-02-01  James Livingston  <jrl@ids.org.au>
10589         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10591         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10592         (rb_shell_player_playing_changed_cb): block the signal to prevent
10593         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10594         button pausing.
10596 2006-02-01  James Livingston  <jrl@ids.org.au>
10598         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10599         /should/ now work, if the neccessary plugins get ported.
10601 2006-01-30  James Livingston  <jrl@ids.org.au>
10603         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10604         string properties to "Unknown" is the string is empty. Kind of fixes
10605         bug 327495.
10607         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10608         gettext calls once, rather than once per time the function is used.
10609         This stops us making tens of thousands of gettext calls on startup,
10610         which reduces the cpu-time of startup by 10-20%
10612 2006-01-29  James Livingston  <jrl@ids.org.au>
10614         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10615         (rhythmdb_add_uri):
10616         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10617         for files containing known video streams.
10620 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10622         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10623         required.
10625 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10627         * INSTALL.quick: More random updates
10629         * rhythmdb/rhythmdb-query-model.c:
10630         (rhythmdb_query_model_class_init),
10631         (rhythmdb_query_model_set_property),
10632         (rhythmdb_query_model_get_property),
10633         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10634         Remove user sort data handling, take a property ID and a reverse
10635         flag instead.
10636         (rhythmdb_query_model_insert_into_main_list),
10637         (rhythmdb_query_model_insert_into_limited_list),
10638         (rhythmdb_query_model_do_reorder),
10639         (_reverse_sorting_func):
10640         Handle reverse sorting by calling _reverse_sorting_func, which
10641         calls the real sort function and reverses the result.
10642         (rhythmdb_query_model_set_sort_order):
10643         Allow this to be called to set the initial sort order for limited
10644         queries, and handle reverse sorting when reordering.
10645         (rhythmdb_query_model_location_sort_func),
10646         (rhythmdb_query_model_album_sort_func),
10647         (rhythmdb_query_model_artist_sort_func),
10648         (rhythmdb_query_model_genre_sort_func),
10649         (rhythmdb_query_model_track_sort_func),
10650         (rhythmdb_query_model_double_ceiling_sort_func),
10651         (rhythmdb_query_model_ulong_sort_func),
10652         (rhythmdb_query_model_date_sort_func),
10653         (rhythmdb_query_model_string_sort_func):
10654         Sort functions moved from rb-entry-view.c.
10655         * rhythmdb/rhythmdb-query-model.h:
10656         Add the sort functions, and update the changed functions.
10657         
10658         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10659         Just call _resort_model when the query model is set, since it
10660         does all the same things.
10661         (rb_entry_view_append_column):
10662         Rework bits so the rating column doesn't have to be so much of a
10663         special case.
10664         (rb_entry_view_append_column_custom):
10665         Take a property ID to sort on, rather than arbitrary custom data.
10666         (rb_entry_view_resort_model):
10667         Query model does all the reverse sort handling now.
10668         * widgets/rb-entry-view.h: Update _append_column_custom.
10670         * sources/rb-play-queue-source.c:
10671         (rb_play_queue_source_constructor):
10672         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10673         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10674         (rb_podcast_source_post_date_cell_sort_func),
10675         (rb_podcast_source_post_status_cell_sort_func),
10676         (rb_podcast_source_post_feed_cell_sort_func):
10677         Updates required by all the other changes.
10679         * rhythmdb/rhythmdb-property-model.c:
10680         (rhythmdb_property_model_drag_data_get):
10681         Sort the query results on the selected property,
10682         so they arrive in the expected order.  All the other changes were made
10683         to make this possible.  Fixes bug #327494.
10685 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10686         
10687         * shell/rb-shell-clipboard.c:
10688         Use GTK_STOCK_REMOVE icon for the remove action in
10689         the play queue too.
10691 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10693         * sources/rb-play-queue-source.c:
10694         (rb_play_queue_source_constructor),
10695         (rb_play_queue_source_update_count):
10696         Don't make the 'queued songs' column clickable,
10697         and add the queued song count to the column title.
10699 2006-01-29  James Livingston  <jrl@ids.org.au>
10701         * configure.ac: remove "experimental" marking from DAAP, and enable by
10702         default if the dependencies are found.
10704 2006-01-29  James Livingston  <jrl@ids.org.au>
10706         * NEWS: update NEWS
10708 2006-01-29  James Livingston  <jrl@ids.org.au>
10710         patch by: William Jon McCann  <mccann@jhu.edu>
10712         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10713         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10714         property used for the feed list. Fixes problem with feeds with no
10715         episodes not showing up.
10717 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10718         
10719         * shell/rb-play-order-random-by-age-and-rating.c:
10720         (rb_random_by_age_and_rating_get_entry_weight):
10721         Fix compile errors, bug #328978.
10723 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10725         * INSTALL.quick, README: Random updates
10726         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10728 2006-01-28  James Livingston  <jrl@ids.org.au>
10730         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10731         default rating back to 0 (from 2.5, which was needed for autorating).
10733         * shell/rb-play-order-random-by-age-and-rating.c:
10734         (rb_random_by_age_and_rating_get_entry_weight):
10735         * shell/rb-play-order-random-by-rating.c:
10736         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10737         2.5 for the purposes of weighting entries.
10739 2006-01-28  James Livingston  <jrl@ids.org.au>
10741         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10742         translator comments, to make it clearer what the "friendly time"
10743         formatting strings mean.
10745 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10747         * daapsharing/rb-daap-connection.c: (http_response_handler):
10748         Fix the sense of the overflow check so it'll accept valid input.
10750 2006-01-27  James Livingston  <jrl@ids.org.au>
10752         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10754         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10755         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10757 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10759         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10760         
10761         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10762         Don't include the artist field in the window title if it's blank.
10763         Fixes #325973.
10765 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10767         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10768         Use stock delete icon for move to trash and stock remove
10769         for remove menu item.
10771 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10773         * shell/rb-shell.c: (rb_shell_constructor),
10774         (idle_handle_load_complete):  Don't start the playlist save
10775         timeout until we've loaded the playlists, otherwise we'll
10776         write an empty playlist file if startup takes too long.
10778 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10780         * shell/rb-shell.c: Make view toolbar toggle use
10781         shift+ctrl+t.  Fixes #327585.
10783 2006-01-25  James Livingston  <jrl@ids.org.au>
10785         patch by: Christope Fergeau  <teuf@gnome.org>
10787         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10788         (http_response_handler): fix a potential buffer overflow issue.
10790 2006-01-25  James Livingston  <jrl@ids.org.au>
10792         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10793         Year column wide enough to display "Unknown"
10795 2006-01-25  James Livingston  <jrl@ids.org.au>
10797         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10798         (rb_podcast_source_post_status_cell_data_func): make the episode
10799         status wording better. Part of bug 321607.
10801 2006-01-25  James Livingston  <jrl@ids.org.au>
10803         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10804         others with a separator.
10806         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10807         stock Delete icon.
10809 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10811         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10813 2006-01-23  James Livingston  <jrl@ids.org.au>
10815         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10816         0.3.2. Fixed bug 328158.
10818 2006-01-23  James Livingston  <jrl@ids.org.au>
10820         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10821         (gulong_gst_date_transform), (rb_metadata_class_init):
10822         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10824 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10826         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10827         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10828         (record_entry_change): Protect added_entries and changed_entries with
10829         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10831 2006-01-23  James Livingston  <jrl@ids.org.au>
10833         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10834         the browser for audio CDs.
10836 2006-01-22  James Livingston  <jrl@ids.org.au>
10838         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10839         NEVER_FAIL as it causes the daemon-not-running error to never be
10840         reported, resulting in bug 319438 re-occurring.
10842 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10844         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10845         Just call the podcast manager's update method.  Unbreaks the 'update
10846         all feeds' command.
10848 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10850         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10852 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10854         * configure.ac: Don't disable DAAP with gstreamer 0.10
10856         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10857         (rb_daap_src_class_init), (rb_daap_src_init),
10858         (rb_daap_src_finalize), (rb_daap_src_set_property),
10859         (rb_daap_src_get_property), (rb_daap_src_write),
10860         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10861         (_split_uri), (rb_daap_src_open):
10862         * daapsharing/rb-daap-src.h:
10863         Mostly fix seeking, handle chunked transfer encoding, and port to
10864         gstreamer 0.10.
10865         
10866         * player/rb-player-gst.c:
10867         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10868         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10870         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10871         being fixed.
10873 2006-01-21  James Livingston  <jrl@ids.org.au>
10875         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10876         for Year metadata in DAAP sources. Fixes bug 327700.
10878         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10880 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10882         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10883         enum values instead of magic numbers.
10885         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10886         Add number of songs that match each property title into
10887         the cell.  Also show the number of properties that match
10888         in the All entry.
10889         (rb_property_view_constructor): Use enum values instead of
10890         magic numbers.
10892         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10893         Query podcast posts instead of feeds for browser.  Use
10894         post SUBTITLE which is the location for the property view.
10895         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10896         (construct_query_from_selection) 
10897         (rb_podcast_source_cmd_delete_feed) 
10898         (rb_podcast_source_cmd_properties_feed) 
10899         (rb_podcast_source_cmd_update_feed): Use variable to make
10900         it clear what the selection data represents.
10901         (rb_podcast_source_feed_title_cell_data_func): Add number
10902         of posts that belong to each feed in the browser.
10904         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10905         (rhythmdb_property_model_delete_prop): Decrement the refcount
10906         for the All entry.
10907         (rhythmdb_property_model_get_column_type): Use column enum
10908         values instead of magic numbers.  Add NUMBER column.
10909         (rhythmdb_property_model_get_value): Use enum.
10910         Add NUMBER column that represents the refcount for
10911         the title of that property.
10912         (rhythmdb_property_model_perform_sync): Don't fake up
10913         a title for All here.
10915         Fixes #327372.
10916         
10917 2006-01-21  James Livingston  <jrl@ids.org.au>
10919         Make Rhythmbox start faster by not blocking the UI while database
10920         initialisation and loading occurs. Closes bug 323348.
10922         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10923         start 10 seconds later instead of immediately.
10924         
10925         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10926         safe to call from any thread.
10928         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10929         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10930         so the UI doesn't block.
10932 2006-01-18  James Livingston  <jrl@ids.org.au>
10934         * sources/rb-static-playlist-source.c:
10935         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10936         cause crashes. Oops. fixes bug 327477.
10938 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10940         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10941         Set GST element state to NULL before unreffing.
10942         Fixes #327422.
10944 2006-01-18  James Livingston  <jrl@ids.org.au>
10946         * sources/rb-static-playlist-source.c:
10947         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10948         type, since the playlists can contain non-song entries. Fixes bug
10949         327448.
10951         * sources/rb-play-queue-source.c:
10952         (rb_play_queue_source_class_init): disable the search box for the
10953         queue.
10955 2006-01-18  James Livingston  <jrl@ids.org.au>
10957         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10958         dragging of podcast episodes. Fixed bug 327450.
10960 2006-01-18  James Livingston  <jrl@ids.org.au>
10962         * rhythmdb/rhythmdb-query-model.c:
10963         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10964         dragging to an emoty playlist.
10966 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10968         * sources/rb-playlist-source-recorder.c:
10969         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10971 2006-01-17  James Livingston  <jrl@ids.org.au>
10973         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10975         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10976         different number of tracks than exist on the cd, since that happens
10977         with audio+data hybrid CDs. Part of bug 325046.
10979 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10981         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10982         Remove useless call to gtk_tree_view_column_set_clickable().
10984         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10985         Don't store sort data for columns if the sort function is NULL,
10986         so only sortable columns will be in the column sort data map.
10987         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10988         on clickable.
10989         (rb_entry_view_constructor):  The 'playing icon' column is never
10990         clickable, so don't connect a signal handler for it.
10992         Fixes bug 326811.
10994 2006-01-17  James Livingston  <jrl@ids.org.au>
10996         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10997         are 0.8 only. Fix element detection.
10999         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
11000         saving the new metadata failed
11002 2006-01-17  James Livingston  <jrl@ids.org.au>
11004         * shell/rb-shell-player.c: (do_next_idle),
11005         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
11006         (eos_cb): release audio device when a playlist finishes. Fixes bug
11007         323679.
11009 2006-01-17  James Livingston  <jrl@ids.org.au>
11011         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
11012         canonicalise the URIs when things are added via library watching.
11014 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11016         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11017         Off by one error in default speed index.
11019 2006-01-16  William Jon McCann  <mccann@jhu.edu>
11021         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
11022         (update_speed_combobox, update_speed_combobox):
11023         Get a list of the actually supported write speeds from
11024         n-c-b >= 2.13.90.  Otherwise use fallback list.
11026 2006-01-17  James Livingston  <jrl@ids.org.au>
11028         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
11029         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
11030         don't get stuck on recursive symlinks. Fixed bug 125452.
11032 2006-01-17  James Livingston  <jrl@ids.org.au>
11034         Add support for mass-storage audio players. Players are detected via
11035         either the HAL "audio_player" capability, or a ".is_audio_player" file
11036         in the root of the volume. Closes bug 325602.
11038         * configure.ac: separate using HAL from ipod support.
11040         * lib/rb-file-helpers.c: (rb_uri_is_local):
11041         * lib/rb-file-helpers.h: add function to determine whether a URI is
11042         local.
11044         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
11045         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
11046         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
11047         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
11048         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
11049         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
11050         directories can be scanned for files to add as  non-SONG entries.
11052         * shell/rb-removable-media-manager.c:
11053         (rb_removable_media_manager_mount_volume): add checking for
11054         mass-storage players.
11056         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
11057         * sources/rb-ipod-source.c: (rb_ipod_source_new),
11058         (hal_udi_is_ipod):
11059         * sources/rb-removable-media-source.c:
11060         (rb_removable_media_source_class_init),
11061         (rb_removable_media_source_constructor): move some things up to the
11062         RBRemovableMediaSource, rather than making subclasses do it.
11064         * sources/Makefile.am:
11065         * sources/rb-generic-player-source.c:
11066         * sources/rb-generic-player-source.h: add mass-storage player source.
11068 2006-01-16  James Livingston  <jrl@ids.org.au>
11070         patch by: William Jon McCann  <mccann@jhu.edu>
11072         * rhythmdb/rhythmdb-query-model.c:
11073         (rhythmdb_query_model_base_row_deleted): fix build issue from last
11074         commit.
11076 2006-01-16  James Livingston  <jrl@ids.org.au>
11078         Patch to add support for "chained queries" and putting hidden tracks
11079         in query models. Use chained queries to add search box support to
11080         normal playlists, and to make hidden entries not get lost. Fixes bug
11081         319278.
11083         * rhythmdb/rhythmdb-query-model.h:
11084         * rhythmdb/rhythmdb-query-model.c:
11085         (rhythmdb_query_model_class_init),
11086         (rhythmdb_query_model_set_property),
11087         (rhythmdb_query_model_get_property):
11088         (rhythmdb_query_model_finalize): add "show-hidden" and
11089         "base-model" properties.
11091         (rhythmdb_query_model_set_connected),
11092         (rhythmdb_query_model_has_pending_changes),     
11093         (rhythmdb_query_model_entry_added_cb),
11094         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
11095         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
11096         (rhythmdb_query_model_remove_entry),
11097         (rhythmdb_query_model_drag_data_received),
11098         (rhythmdb_query_model_base_row_inserted),
11099         (rhythmdb_query_model_base_row_deleted),
11100         (rhythmdb_query_model_base_non_entry_dropped),
11101         (rhythmdb_query_model_base_complete),
11102         (rhythmdb_query_model_base_entry_prop_changed),
11103         (rhythmdb_query_model_base_rows_reordered),
11104         (rhythmdb_query_model_row_drop_possible): handle base-model by
11105         chaining events and operations where necessary. Make hidden entries
11106         not get added only if "show-hidden" is false.
11108         (rhythmdb_query_model_child_index_to_base_index),
11109         (rhythmdb_query_model_base_index_to_child_index),
11110         (rhythmdb_query_model_get_entry_index): utility functions for handling
11111         base-model entries.
11113         (rhythmdb_query_model_reapply_query): apply the current query, and
11114         remove entries that don't match it.
11116         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
11117         empty queries.
11119         * sources/rb-source.c: (rb_source_set_property): move the unref later
11120         to fix problem if it is the last reference.
11122         * sources/rb-static-playlist-source.c:
11123         (rb_static_playlist_source_class_init),
11124         (rb_static_playlist_source_init),
11125         (rb_static_playlist_source_finalize),
11126         (rb_static_playlist_source_constructor), (impl_reset_filters),
11127         (impl_search), (rb_static_playlist_source_do_query),
11128         (impl_save_contents_to_xml),
11129         (rb_static_playlist_source_add_location_internal): use a chained query
11130         model to filter out hidden entries and implement the search box.
11132 2006-01-15  James Livingston  <jrl@ids.org.au>
11134         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
11135         the default playlist loading, which I broke earlier.
11137 2006-01-15  James Livingston  <jrl@ids.org.au>
11139         patch by: William Jon McCann  <mccann@jhu.edu>
11141         * sources/rb-playlist-source.c: (playlist_iter_func): use
11142         totem-plparser's new API version macros to check for API changes.
11143         Handle the recent API change.
11145 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11147         * sources/rb-library-source.c: (impl_get_config_widget):
11148         Ref the preferences object to match the unref in the
11149         finalizer.  Fixes some portion of #323505.
11151 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
11153         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
11154         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
11155         Fix valgrind warnings about accessing uninitialised values.
11157 2006-01-14  William Jon McCann  <mccann@jhu.edu>
11159         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
11161 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11163         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
11164         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
11165         Stops the 'now playing' icon from being displayed after the play
11166         order finishes.
11168 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
11170         * podcast/rb-podcast-manager.c:
11171         (rb_podcast_manager_db_entry_deleted_cb):
11172         Don't try to delete files we never downloaded, and cancel downloads
11173         for deleted episodes.  Fixes bug #326862.
11174         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
11175         Don't complain about NULL data items in the selection list.
11177 2006-01-14  James Livingston  <jrl@ids.org.au>
11179         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11180         Make the name ofthe queue non editable. Fixes bug 326918.
11182 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11184         * sources/rb-playlist-source-recorder.c (burn_cd) 
11185         (ask_rewrite_disc): Don't use our locally copied functions
11186         if we have at least 2.13.
11188 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11190         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
11191         Correct the argument type for the process_error signal.
11192         May fix bug #323154.
11194 2006-01-13  James Livingston  <jrl@ids.org.au>
11196         save the queue to disk when exiting, and reload on startup. Fixed bug
11197         326677 .
11199         * shell/rb-playlist-manager.c:
11200         (rb_playlist_manager_load_playlists),
11201         (rb_playlist_manager_save_playlists_async): don't disable saving of
11202         the queue
11204         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11205         add the queue source as a gobject property.
11207         * sources/rb-play-queue-source.c:
11208         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
11209         code to save the queue to xml
11211         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
11212         load the queue from xml.
11213         * sources/rb-playlist-xml.h:
11215         * sources/rb-static-playlist-source.c:
11216         (rb_static_playlist_source_load_from_xml),
11217         (rb_static_playlist_source_new_from_xml):
11218         * sources/rb-static-playlist-source.h: split the playlist xml loading
11219         from the static playlist creation function, so the queue can use it.
11221 2006-01-13  James Livingston  <jrl@ids.org.au>
11223         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
11224         assertion that should be there. Fixes bug 325923.
11225         
11226         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
11227         return NULL if the entry already exists (e.g. as another type).
11228         * daapsharing/rb-daap-connection.c: (handle_song_listing):
11229         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11230         (rb_podcast_manager_insert_feed):
11231         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
11232         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
11233         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11234         for the above function returning NULL.
11236 2006-01-12  James Livingston  <jrl@ids.org.au>
11238         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11239         is enabled. Fixes bug 326673.
11240         
11241         * doc/reference/tmpl/eggtrayicon.sgml:
11242         * doc/reference/tmpl/rb-daap-src.sgml:
11243         * doc/reference/tmpl/rb-source.sgml:
11244         * doc/reference/tmpl/rb-statusbar.sgml:
11245         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11246         * doc/reference/tmpl/rhythmbox-unused.sgml:
11247         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11249 2006-01-11  James Livingston  <jrl@ids.org.au>
11251         * widgets/rb-song-info.c: (rb_song_info_constructor),
11252         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11253         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11254         the same value for properties. From bug 326054.
11256 2006-01-11  James Livingston  <jrl@ids.org.au>
11258         * sources/rb-source.h:
11259         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11260         (rb_shell_player_set_playing_source_internal), (eos_cb):
11261         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11262         every entry.
11264         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11265         source use this. Closes bug 322077.
11267 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11269         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11270         In order for set_icon_data_from_pixbuf() to be
11271         effective, one must not set an icon in _new().
11273 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11275         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11276         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11277         (egg_tray_icon_notify): Add support for libnotify 0.3.
11278         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11279         * configure.ac: Determine the version of libnotify.
11280         Fixes #326333.
11282 2006-01-08  James Livingston  <jrl@ids.org.au>
11284         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11285         trying to share a track with unknown length.
11287 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11289         * shell/rb-shell-player.c: (rb_shell_player_init):
11290         Sync volume on startup so it doesn't default to 0.
11292 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11294         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11295         (rb_shell_player_get_property), (rb_shell_player_open_location),
11296         (info_available_cb):  Add the iradio streamed song title as a
11297         property, and emit a signal when it changes.
11299         * shell/rb-shell.c: (rb_shell_constructor),
11300         (rb_shell_player_elapsed_changed_cb),
11301         (rb_shell_player_stream_song_changed_cb):
11302         Issue a notification when the iradio song title changes.
11303         Fixes #326166.
11305 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11307         * shell/rb-shell-player.c: (rb_shell_player_init),
11308         (rb_shell_player_finalize), (rb_shell_player_set_property),
11309         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11310         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11311         (rb_shell_player_set_volume_relative),
11312         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11313         (rb_shell_player_get_mute):
11314         * shell/rb-shell-player.h:
11315         * shell/rb-shell-player.xml:
11316         Store volume as a property on RBShellPlayer, rather than in gconf.
11317         Add some methods to control volume via dbus.
11319         * shell/rb-shell.c: (rb_shell_constructor),
11320         (rb_shell_volume_widget_changed_cb),
11321         (rb_shell_player_volume_changed_cb):
11322         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11323         Update volume using player properties rather than gconf, and sync the
11324         volume with the volume control button when something else changes it.
11325         Fixes #323840.
11327 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11329         * shell/rb-tray-icon.c (tray_popup_position_menu):
11330         Make tray menu align with edge of panel.
11332         patch from Jaap A. Haitsma <jaap@haitsma.org>
11333         Fixes #319913
11335 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11336         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11337         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11338         (rb_playlist_manager_new_playlist_from_selection_data):
11339         Make a reasonable default name for playlists created from
11340         dropped data.  Fixes #326116.
11342 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11344         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11345         Use new gconf key.
11346         (burn_cd): Always eject CD after burning.  Too many drives
11347         get confused if we don't.  Save the speed used if the burn
11348         was completed successfully.
11350         * data/rhythmbox.schemas: Use our own speed instead of from
11351         n-c-b. The situation is that the default_speed for n-c-b is most
11352         likely the maximum write speed.  This is fine for n-c-b because it
11353         has burn-proof turned on.  We can't turn it on for audio CDs
11354         because the results are poor in quality.  So we'll just pick a
11355         default that should work for everyone (4).
11357 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11358         
11359         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11360         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11362 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11364         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11365         in my previous commit.  Fixes #326037.
11367 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11369         patch by: Jonathan Matthew
11371         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11372         error on Fedora Rawhide.
11374 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11376         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11377         Assume HTTP URLs ending with .xml or .rss are podcasts.
11378         (rb_shell_add_uri): Handle adding podcast feeds.
11380         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11381         Register as the source for podcast feeds.
11383 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11385         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11386         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11387         (rb_shell_preferences_append_view_page):
11388         * shell/rb-shell-preferences.h:
11389         Fix typo in function name.  Fixes #325992.
11391 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11393         * shell/rb-audioscrobbler.c:
11394         Add '+' to the list of characters to URI-encode, so it doesn't get
11395         interpreted as a space.
11397 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11399         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11400         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11401         goes away while we're still trying to log in.
11403 2006-01-06  James Livingston  <jrl@ids.org.au>
11405         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11407 2006-01-06  James Livingston  <jrl@ids.org.au>
11409         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11410         support for Year to automatic playlists. Closes bug 321341.
11412         * rhythmdb/rhythmdb-query-model.c:
11413         (rhythmdb_query_model_set_property):
11414         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11415         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11416         (rhythmdb_query_free), (rhythmdb_query_serialize),
11417         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11418         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11419         * rhythmdb/rhythmdb.h: Support special
11420         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11421         year in date.
11423         * widgets/rb-query-creator-properties.c:
11424         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11425         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11427 2006-01-06  James Livingston  <jrl@ids.org.au>
11429         * configure.ac: make the playback backend selection work correctly
11431         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11432         (rb_daap_src_class_init), (rb_daap_src_dispose),
11433         (rb_daap_src_change_state), (rb_daap_src_initialize):
11434         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11435         doesn't work for this class. Fixes bug 325934
11437 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11439         * configure.ac: Fix check for libnotify.
11441 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11443         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11444         Get name element for current lang and remove all name nodes
11445         from the XML tree.
11446         (get_playlist_name_from_xml): Try to get name element or
11447         fall back to name attribute.
11448         (rb_playlist_source_new_from_xml): Get name before turning over
11449         to sub-types for parsing so that we can remove name elements
11450         from the tree if necessary.
11452         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11453         Load default playlists file if per user playlists are not found.
11455         * data/playlists.xml.in: 
11456         * data/Makefile.am: 
11457         * data/.cvsignore: Add default set of playlists.
11458         Fixes #323004
11460 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11462         * shell/main.c: (main): Don't use the dbus interface to show the
11463         window if we're also going to use the bonobo interface.
11465 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11467         * shell/rb-history.c: (rb_history_set_playing):
11468         Allow setting the playing song to NULL.
11469         (rb_history_append), (rb_history_delete_link):
11470         Don't randomly change position when entries are added and removed,
11471         it confuses play orders.
11472         
11473         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11474         Random orders always have a next entry if the model is not empty.
11475         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11476         Go back to the start of the history if we're past its end.
11478         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11479         (rb_shuffle_play_order_go_next): Go back to the start of the history
11480         if we're past its end.
11481         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11482         the history if the current entry is removed.
11484         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11485         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11486         the play order when the query has finished. This wasted about 10% CPU
11487         while the query was running.
11489         Fixes #324641: assertion failures when the query model was changed
11490         such that the playing song was no longer present.
11492 2006-01-05  James Livingston  <jrl@ids.org.au>
11494         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11495         (rb_daap_src_dispose), (rb_daap_src_change_state):
11496         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11497         (rhythmdb_gda_finalize):
11498         * widgets/rb-cell-renderer-pixbuf.c:
11499         * widgets/rb-cell-renderer-rating.c:
11500         (rb_cell_renderer_rating_class_init),
11501         (rb_cell_renderer_rating_finalize):
11502         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11503         * widgets/rb-load-failure-dialog.c:
11504         (rb_load_failure_dialog_class_init),
11505         (rb_load_failure_dialog_finalize):
11506         * widgets/rb-rating.c: (rb_rating_class_init),
11507         (rb_rating_finalize):
11508         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11509         (rb_search_entry_finalize): use G_DEFINE_TYPE
11511         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11513 2006-01-05  James Livingston  <jrl@ids.org.au>
11515         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11517         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11518         the tarball.
11520         * shell/rb-history.c: (rb_history_class_init),
11521         (rb_history_finalize):
11522         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11523         (rb_playlist_manager_finalize):
11524         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11525         (rb_remote_init): use G_DEFINE_TYPE.
11527 2006-01-05  James Livingston  <jrl@ids.org.au>
11529         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11530         changes
11532 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11534         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11535         Disable burn action when source is not a playlist.
11536         Fixes #323578.
11538 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11540         Optionally use libnotify to display song change and other
11541         notifications, and provide an option to disable notifications.
11542         Fixes #320355 and innumerable informal complaints.
11544         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11545         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11546         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11547         (egg_tray_icon_notify):
11548         * widgets/eggtrayicon.h:
11549         * configure.ac:
11550         * shell/Makefile.am:
11551         Optionally use libnotify instead of eggnotificationbubble.
11553         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11554         (rb_tray_icon_constructor), 
11555         (rb_tray_icon_show_notifications_changed_cb),
11556         (rb_tray_icon_hide_notify_cb)
11557         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11558         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11559         EggNotificationBubble pointer to eggtrayicon.
11561         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11562         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11563         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11565 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11567         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11568         Request a minimum size for the progress bar so that
11569         the window doesn't shrink too small.
11571 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11573         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11574         (add_db_entry), (db_entry_deleted_cb):
11575         Don't track the number of songs currently present, track the next ID
11576         to assign.  Fixes potential ID conflict problems.
11577         
11578         (db_entry_changed_cb), (rb_daap_share_start_publish),
11579         (rb_daap_share_stop_publish):
11580         Watch for db entry changes, and when songs become non-hidden after
11581         a successful stat, add them to the mapping tables.   Fixes #325178,
11582         making the DAAP server usable again.
11584 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11585         
11586         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11587         (rb_statusbar_construct), (rb_statusbar_init),
11588         (rb_statusbar_finalize), (rb_statusbar_set_property),
11589         (rb_statusbar_get_property), (rb_statusbar_new),
11590         (rb_statusbar_sync_with_source):
11591         * shell/rb-statusbar.h:
11592         Remove visibility management code, stop watching for play order
11593         changes (status bar doesn't show play order any more), remove unused
11594         'player' property, and some other minor cleanup.
11595         
11596         * shell/rb-shell.c: (rb_shell_constructor),
11597         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11598         (rb_shell_sync_statusbar_visibility):
11599         Manage status bar visibility here rather than in the status bar
11600         itself, so we can take small mode into account.  Fixes #323589.
11602 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11604         * widgets/eggnotificationbubble.c: (draw_bubble):
11605         Move the bubble off the visible screen while setting up bevels.  
11606         Fixes #316810.
11608 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11610         * shell/rb-shell-player.c: (rb_shell_player_init),
11611         (rb_shell_player_finalize): 
11612         Remove unused structure members.
11613         
11614         (do_next_idle), (rb_shell_player_error):
11615         Only queue one call to do_next_idle, so we don't skip tracks if we get
11616         two errors for the same song.  Fixes #325216.
11618 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11620         * data/glade/podcast-feed-properties.glade,
11621          podcast/rb-feed-podcast-properties-dialog.c:
11622         (rb_feed_podcast_properties_dialog_init),
11623         (rb_feed_podcast_properties_dialog_update):
11624         Add 'last episode' field to the podcast feed properties dialog.
11626         * podcast/rb-feed-podcast-properties-dialog.c:
11627         (rb_feed_podcast_properties_dialog_update_last_update),
11628         (rb_feed_podcast_properties_dialog_update_last_episode),
11629          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11630         Use last-seen property for the time at which we last updated the feed,
11631         and post-time for the time the last episode was published.
11633         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11634         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11635         feed, use last-seen (which in 0.9.2 was the last post time).
11637         Fixes #323894.
11639 2006-01-01  James Livingston  <jrl@ids.org.au>
11641         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11643         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11644         year from the ipod database.
11646 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11648         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11649         Only set the pipeline back to NULL state for really uninteresting
11650         files.  This was causing deadlocks with various video files.
11651         Fixes #324912.
11653 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11655         * data/glade/song-info-multiple.glade:
11656         Add disc number label and field.
11657         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11658         (rb_song_info_constructor): 
11659         Handle widgets for disc number.
11660         (rb_song_info_sync_entries_multiple):
11661         Set disc number property on selected entries.
11662         Fixes #324777.
11664 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11666         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11667         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11668         Activate the default widget when enter is pressed in these dialogs.
11669         Fixes #322887.
11671 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11673         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11674         Use rb_shell_player_get_playing_entry, so we get the right entry
11675         when playing from the queue.  Fixes #325379.
11677 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11679         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11680         Include podcast posts with no publication date.  Typically
11681         seen in static collections rather than feeds.
11683 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11685         * shell/main.c: (main): Don't attempt to handle
11686         bonobo-only arguments if we couldn't get a bonobo
11687         client proxy.
11689 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11691         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11692         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11693         abort if daap sharing is disabled and then re-enabled.
11695 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11697         * podcast/rb-podcast-parse.c (rb_insert_item):
11698         Add debugging.
11699         (rb_podcast_parser_start_element): Support itunes:image.
11700         Add debugging.  Don't abuse the break statement.  Warn
11701         if state is unknown.
11702         (rb_podcast_parser_end_element): Add debugging.  Warn
11703         if state is unknown.
11704         (rb_podcast_parser_characters): Warn if state is unknown.
11706         Fixes parsing of feeds that use the itunes:image element.
11707         Fixes #324632
11709 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11711         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11712         (stations_view_drag_data_received_cb):
11713         Remove calls to rhythmdb_entry_lookup_by_location, as
11714         rb_iradio_source_add_station does that anyway.
11715         
11716         (rb_iradio_source_add_from_playlist):
11717         If the URL doesn't point to a playlist, add it as the stream
11718         URL instead.
11720 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11722         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11723         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11724         so we don't get an assertion failure.
11725         Fixes #325025.
11727 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11729         * shell/main.c: (load_uri_args): don't compile this in if
11730         neither bonobo nor dbus are enabled.  Fixes #324890.
11732 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11734         * sources/rb-audiocd-source.c:
11735         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11736         so it closes the device.
11738 2005-12-20  James Livingston  <jrl@ids.org.au>
11740         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11741         so that it doesn't spend forever getting stuck on the one file. Don't
11742         report errors for failing to change state on known non-audio files.
11744         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11745         audio sink creation if we can't create the gconfaudiosink. This lets
11746         it work with only gst-plugins-base on 0.10.
11748 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11750         * rhythmdb/rhythmdb-query-model.c:
11751         (rhythmdb_query_model_set_sort_order):
11752         Fix a tiny memory leak in the previous commit.
11754 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11756         * rhythmdb/rhythmdb-query-model.c:
11757         (rhythmdb_query_model_set_sort_order):
11758         Don't try to emit reorders for empty query models, since it doesn't
11759         achieve anything and it results in a few warnings.
11761 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11763         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11764         Make burn dialog non-resizable so that the expander can shrink.
11765         Fixes #308951.
11767 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11769         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11770         add entries without a location, rather than those with one.
11772 2005-12-19  James Livingston  <jrl@ids.org.au>
11774         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11775         the error isn't set.
11777 2005-12-19  James Livingston  <jrl@ids.org.au>
11778         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11779         add entries without a location. Fixes bug 324290.
11781         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11782         without a location.
11784         * shell/main.c: (main): don't crash if dbus initialisation fails
11785         without setting an error
11787 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11789         * sources/rb-library-source.c: Remove unused structure members
11790         (rb_library_source_do_query): Actually use the cached 'all' query.
11791         Fixes #324025.
11792         
11793 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11795         * sources/rb-audiocd-source.c 
11796         (rb_audiocd_get_cd_info): tab
11797         (rb_audiocd_scan_songs): Return boolean success/failure,
11798         fix error messages a bit.
11799         (metadata_cb): Don't crash if we have no tracks
11800         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11801         the CD.
11802         Fixes #324222.
11804 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11806         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11807         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11808         key.
11810         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11811         Fixes #324157
11813 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11815         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11816         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11817         (fullscreen_changed_cb): 
11818         * lib/rb-preferences.h: 
11819         * data/ui/rhythmbox-ui.xml: 
11820         * data/rhythmbox.schemas:
11821         Add fullscreen mode.
11823         Fixes #324075.
11825 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11827         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11828         configure.  It was not working with RPM.
11829         * data/Makefile.am: Switched dbus directory location to use
11830         datadir instead of variable that was not working.
11832 2005-12-13  James Livingston  <jrl@ids.org.au>
11834         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11836         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11837         the podcast browser work again. Closes bug 323856.
11839 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11841         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11842         Remove C99ism.
11844         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11845         (rb_utf_friendly_time):
11846         * lib/rb-cut-and-paste-code.h:
11848         * podcast/rb-feed-podcast-properties-dialog.c:
11849         (rb_feed_podcast_properties_dialog_parse_time):
11850         * podcast/rb-podcast-properties-dialog.c:
11851         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11852         to display the date in a more user friendly way.
11853         For example, if the feed was updated yesterday it will say:
11854         Last updated: Yesterday 10:00 AM
11855         instead of printing the date.
11857 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11859         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11860         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11861         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11862         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11863         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11864         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11865         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11866         (rb_podcast_parse_date): Add support for some real world
11867         date formats.
11868         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11869         (rb_podcast_parse_item_free): Style and no need to check
11870         for NULL before g_free.
11872         May fix #323742
11874 2005-12-12  James Livingston  <jrl@ids.org.au>
11876         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11877         with gstreamer 0.10, which replaced audioscale.
11879         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11880         function to free the SoupSession
11882         * shell/rb-source-header.c: (rb_source_header_set_property),
11883         (rb_source_header_disclosure_toggled_cb),
11884         (rb_source_header_view_browser_changed_cb),
11885         (rb_source_header_sync_control_state):
11886         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11887         * sources/rb-library-source.c: (rb_library_source_class_init):
11888         * sources/rb-source.c: (rb_source_class_init),
11889         (rb_source_get_status), (default_get_browser_key),
11890         (rb_source_get_browser_key), (rb_source_can_browse),
11891         (rb_source_notify_status_changed),
11892         (rb_source_notify_filter_changed):
11893         * sources/rb-source.h: seperate the enabling of browsers from the use
11894         of a gconf key.
11896 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11898         * data/glade/podcast-feed-properties.glade: 
11899         * data/glade/podcast-properties.glade: Use scrolled viewports
11900         for description text.  Fix regression of #320509.
11902 2005-12-11  James Livingston  <jrl@ids.org.au>
11904         * sources/rb-auto-playlist-source.c:
11905         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11906         (impl_search), (rb_auto_playlist_source_do_query),
11907         (rb_auto_playlist_source_set_query),
11908         (rb_auto_playlist_source_get_query): add support for the search box
11909         to automatic playlists.
11911         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11912         memory leak.
11914 2005-12-11  James Livingston  <jrl@ids.org.au>
11916         * NEWS: update NEWS
11918 2005-12-11  James Livingston  <jrl@ids.org.au>
11920         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11921         (rhythmdb_load), (monitor_subdirectory),
11922         (rhythmdb_sync_library_location):  start the library sync and
11923         monitoring in an idle callback.
11925 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11927         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11928         (rb_podcast_source_constructor): Remove unused pixbuf column.
11929         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11930         Use consistent style.
11932         Fixes #322961.
11934 2005-12-11  James Livingston  <jrl@ids.org.au>
11936         * rhythmdb/rhythmdb-property-model.c:
11937         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11938         (rhythmdb_property_model_insert),
11939         (rhythmdb_property_model_delete_prop):
11940         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11941         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11942         (destroy_tree_property):
11943         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11944         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11945         GMemChunks, they are crap and deprecated. Improves startup-time and
11946         memory usage slightly.
11948 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11950         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11951         Added license and website info.
11953         * MAINTAINERS.old: Add Colin.
11954         * MAINTAINERS: Add James.
11955         * AUTHORS: Put back in order.  Add extra space between name and email
11956         to make it easier to read.  Add James and jonathan.
11958         * widgets/rb-song-info.c (rb_song_info_init) 
11959         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11961 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11963         Play queue implementation. Closes bug 107787.
11965         * data/rhythmbox.schemas: add items for whether the queue should be
11966         displayed as a sidebar, and the height of the sourcelist if it is.
11968         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11969         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11970         add popups for queue as source and as sidebar.  We need a separate
11971         popup for the sidebar view because otherwise it's hard to tell which
11972         of the visible entry views the action came from.
11974         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11976         * po/POTFILES.in: Add new file
11978         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11979         Add helper function for deciding if a podcast episode is available for
11980         playback.
11982         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11983         reorder entries in the query model.
11984         (idle_process_update): Handle new update type used to insert entries
11985         at a particular position in the query model.
11986         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11987         parameter to specify the position (-1 meaning 'at the end').
11988         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11989         parameter.
11990         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11991         bad entry removal updates for entries that aren't in the model.
11992         (rhythmdb_query_model_emit_reorder): Add helper function for
11993         reordering rows.
11994         (rhythmdb_query_model_move_entry): New method for moving entries
11995         around in the model
11996         (rhythmdb_query_model_entry_added_cb),
11997         (rhythmdb_query_model_update_limited_entries),
11998         (rhythmdb_query_model_do_reorder),
11999         (rhythmdb_query_model_do_insert): Pass through the index parameter,
12000         use rhythmdb_query_model_emit_reorder where appropriate.
12002         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12003         Don't allow the queue to be deleted.
12004         (handle_playlist_entry_cb): Update for method signature change
12005         (rb_playlist_manager_save_playlists_async),
12006         (rb_playlist_manager_get_playlists): Don't save the play queue,
12007         don't report it as a playlist.
12009         * shell/rb-play-order.c: Include queue play order in the list of
12010         available orders.
12012         * shell/rb-shell.c
12013         (rb_shell_class_init), (rb_shell_get_property): Add new property 
12014         for access to the clipboard object.
12015         (rb_shell_constructor): Handle playing-from-queue signal to update the
12016         sourcelist display; add queue sidebar in to UI, listen for queue
12017         sidebar pane changes, and read initial settings from gconf.
12018         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
12019         Only tell the sourcelist the source has changed if the new source is 
12020         not the queue, as we update the sourcelist differently in that case.
12021         (rb_shell_set_window_title): Only use the cached window title if the
12022         playing state was the same when it was created.
12023         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
12024         (rb_shell_sync_pane_visibility): Only hide the side pane if the
12025         sourcelist is hidden and the queue is shown as a source.
12026         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
12027         mode, since it doesn't make any sense.
12028         (sourcelist_visibility_changed_cb): Update the visibility of the pane
12029         too.
12030         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
12031         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
12032         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
12033         playing from queue shown as sidebar.
12035         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
12036         MusicProperties action here from rb-shell-player.c, since it acts like
12037         cut/copy/paste etc.
12038         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
12039         (rb_shell_clipboard_get_property): new property for queue source.
12040         Watch for selection changes in the sidebar entry view as well as the
12041         normal one.
12042         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
12043         actions and MusicProperties.
12044         (rb_shell_clipboard_cmd_queue_delete),
12045         (rb_shell_clipboard_cmd_add_song_to_queue),
12046         (rb_shell_clipboard_cmd_song_info),
12047         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
12049         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
12050         actually came from (could be the playing source, or the queue), add a 
12051         new play order object for the queue, add a property for the queue
12052         source, add a signal for when we switch between playing from the
12053         source and from the queue.
12054         (rb_shell_player_set_property): Handle playing directly from the
12055         queue so we stop once the queue is empty.  Create queue play order
12056         when we get the queue source.
12057         (rb_shell_player_get_playing_source): Return the source we're actually
12058         playing from.
12059         (rb_shell_player_get_playing_entry): Get playing entry from queue if
12060         that's where it is.
12061         (rb_shell_player_set_playing_entry): Update the queue play order if 
12062         that's where we're playing from.
12063         (rb_shell_player_play_order_update_cb): Take has next/previous for the
12064         queue into consideration too.
12065         (swap_playing_source): Helper function for switching the playing
12066         source.
12067         (rb_shell_player_do_previous): Check the queue, even though there's
12068         never a previous entry in it (yet), swap playing source if it changed.
12069         (rb_shell_player_do_next): Check the queue for entries to play before
12070         the normal play order, and swap playing source if it changed.
12071         (rb_shell_player_do_previous_or_seek): Check the queue for previous
12072         entries to go to as well.
12073         (rb_shell_player_playpause): Check the queue before the selection and
12074         the play order, and swap playing source if it changed.
12075         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
12076         (rb_shell_player_entry_activated_cb): Use
12077         rb_podcast_manager_entry_downloaded, do some tapdancing to make
12078         activating queue entries work properly (move the activated entry to
12079         the start of the queue and then play it); if we were playing from the
12080         queue, clear its playing entry so it'll start again from the start
12081         after the activated entry.
12082         (rb_shell_player_sync_buttons): MusicProperties action handler moved
12083         to rb-shell-clipboard.c
12084         (actually_set_playing_source): Add helper for updating the playing
12085         source.
12086         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
12087         signal if we stop or start doing so; use actually_set_playing_source; 
12088         emit playing-source-changed if we actually did change source.
12090         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
12091         rb_static_playlist_source_add_location.
12093         * sources/rb-library-source.c (rb_library_source_class_init): Allow
12094         enqueueing of songs from the library.
12096         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
12097         enqueueing of sonsg from playlists.
12098         (rb_playlist_source_entry_added_cb): Add extra parameter for
12099         rhythmdb_query_model_add_entry.
12100         
12101         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
12102         Implement (can_)add_to_queue for this class.
12103         (rb_podcast_source_entry_activated): Use
12104         rb_podcast_manager_entry_downloaded.
12105         (impl_can_add_to_queue): Return TRUE if at least one entry that has
12106         been downloaded is selected.
12107         (impl_add_to_queue): Only add downloaded entries to the queue.
12109         * sources/rb-source.{c,h}:
12110         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
12111         methods.
12112         (rb_source_class_init): Don't allow enqueueing by default; implement 
12113         add_to_queue though.
12114         (default_add_to_queue): Add all selected entries to the queue.
12115         
12116         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
12117         would be playing if there wasn't anything in the queue).
12118         (set_source_playing): Helper function for manipulating tree store.
12119         (rb_sourcelist_set_playing_source): Use set_source_playing
12120         (rb_sourcelist_preempt_playing_source): Update preempted source
12121         pointer, manipulate source states.
12123         * sources/rb-static-playlist-source.{c,h}:
12124         (rb_static_playlist_source_add_location_internal),
12125         (rb_static_playlist_source_add_location),
12126         (rb_static_playlist_source_add_entry): Add index parameter for
12127         specifying where in the playlist the new entry goes.
12128         (rb_static_playlist_source_new_from_xml), (impl_paste),
12129         (rb_static_playlist_source_add_list_uri),
12130         (rb_static_playlist_source_add_location_swapped),
12131         (rb_static_playlist_source_add_locations),
12132         (rb_static_playlist_source_non_entry_dropped),
12133         (rb_static_playlist_source_row_inserted):
12134         Handle new index parameter everywhere it appears
12135         (rb_static_playlist_source_move_entry): New method for moving entries
12136         around in the playlist.
12138         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
12139         warnings when trying to scroll entry views that have never been
12140         displayed.
12142         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
12143         play order that removes the old entry when switching to a new one.
12145         * sources/rb-play-queue-source.{c,h}: New files, implementing a
12146         static playlist subclass that has a second entry view for the sidebar
12147         view using alternate formatting, and that displays the number of
12148         entries it contains in its source list entry.
12150 2005-12-10  James Livingston  <jrl@ids.org.au>
12152         * rhythmdb/rhythmdb-query-model.c:
12153         (rhythmdb_query_model_add_entry),
12154         (rhythmdb_query_model_drag_data_received):
12155         * sources/rb-static-playlist-source.c:
12156         (rb_static_playlist_source_non_entry_dropped): when things are
12157         dropped, ignore any blank lines in the list of uris. Make the source
12158         responsible for adding new items to the db.
12160         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
12161         empty string.
12163 2005-12-10  James Livingston  <jrl@ids.org.au>
12165         * shell/rb-shell-player.c: (rb_shell_player_set_property),
12166         (rb_shell_player_sync_buttons),
12167         (rb_shell_player_selection_changed_cb): watch for the
12168         "selection-changed" signal, so that the Song Properties get enabled.
12169         Closes bug 323694.
12171 2005-12-10  James Livingston  <jrl@ids.org.au>
12173         * data/rhythmbox.schemas: fix the gconf schema
12175 2005-12-10  James Livingston  <jrl@ids.org.au>
12177         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
12178         the decoded-pad callback with gstreamer 0.8, it causes problems.
12180 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12182         Remove more junk from RBEntryView. Closes bug 323640.
12184         * widgets/rb-entry-view.{c,h}:
12185         Remove unused private structure members, replace 'playing' boolean
12186         with an enum (so we know if we're paused too), and store a pointer to
12187         the RBShellPlayer too.  
12188         (rb_entry_view_class_init), (rb_entry_view_set_property),
12189         (rb_entry_view_get_property):
12190         Remove 'entry-selected' and 'changed' signals and
12191         'playing-entry' property, add 'selection-changed' signal and
12192         'shell-player' and 'playing-state' properties.
12193         (rb_entry_view_new): Take the shell player object reference
12194         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
12195         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
12196         No longer needed, shell player is the place to get this information.
12197         (rb_entry_view_busy), (rb_entry_view_get_duration),
12198         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
12199         (rb_entry_view_get_next_from_entry),
12200         (rb_entry_view_get_previous_from_entry),
12201         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
12202         (rb_entry_view_get_num_entries):
12203         Removed, callers should go to the query model directly.
12204         (rb_entry_view_playing_song_changed): Update active query model, emit
12205         row changed signals to update pixbufs, and scroll to the playing song
12206         when the playing song changes, based on a signal from the shell
12207         player.
12208         (queue_changed_sig), (rb_entry_view_row_changed_cb),
12209         (emit_entry_changed): Evil, removed.
12210         (rb_entry_view_selection_changed_cb): Remove old signals, add new
12211         selection-changed signal.
12212         (rb_entry_view_select_none), (rb_entry_view_select_entry):
12213         Remove selection lock.  It didn't work anyway.
12214         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
12215         (rb_entry_view_emit_row_changed): Simple helper function to emit
12216         row-changed signals.
12218         * widgets/Makefile.am: Entry view needs headers from the shell/
12219         directory.
12220         * widgets/rb-song-info.{c,h}: Use the query model for everything except
12222         scrolling the entry view to show the entry being displayed.
12223         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
12224         'source' property so we can watch for query model changes.
12225         (rb_song_info_finalize): Unref objects, disconnect signal handlers
12226         (rb_song_info_set_property): Watch for query model changes, don't
12227         watch for entry view changes.
12228         (rb_song_info_new): Take source as a parameter, use the source's entry
12229         view unless one was specifically supplied.
12230         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
12231         Use query model rather than entry view to move between songs.
12232         (rb_song_info_update_buttons): Use query model.
12233         (rb_song_info_query_model_changed_cb): Handle query model changes.
12235         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12236         Only one copy of the code to enable/disable the CD burning action
12237         (rb_playlist_manager_playlist_entries_changed):
12238         Use the query model to get the number of entries, not the entry view.
12240         * shell/rb-play-order-random-by-age-and-rating.c,
12241         shell/rb-play-order-random-by-age.c,
12242         shell/rb-play-order-random-by-rating.c,
12243         shell/rb-play-order-random-equal-weights.c:
12244         Use G_DEFINE_TYPE
12246         * shell/rb-shell-player.{c,h}:
12247         Remove a few unused entries from the structure.
12248         (rb_shell_player_set_property):
12249         Don't use the 'changed' signal on the entry view (it's evil)
12250         (rb_shell_player_have_first): No longer needed
12251         (rb_shell_player_play): Just tell the entry view it's playing
12252         (rb_shell_player_playpause): Tell the entry view it's paused
12253         when pausing.
12254         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12255         (rb_shell_player_property_row_activated_cb):
12256         Get the entry to play using the query model, not the entry view.
12257         (rb_shell_player_sync_buttons): Update entry view state while we're
12258         here.
12259         (rb_shell_player_set_playing_source_internal): Update entry view state
12260         (rb_shell_player_get_playing): Ask the entry view, not the player.
12261         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12262         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12263         the window title and tray icon tooltip.
12264         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12266         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12267         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12268         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12269         view constructor, pass the source in to the song info widget
12270         constructor.
12272         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12273         Use 'selection-changed' instead of 'changed', since that's what the
12274         clipboard cares about.
12275         (rb_shell_clipboard_set_source): Don't die if source == NULL
12277 2005-12-10  James Livingston  <jrl@ids.org.au>
12279         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12280         * sources/rb-playlist-source-recorder.c:
12281         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12282         stuff not use the deprecated API when compiled against 2.13
12284 2005-12-10  James Livingston  <jrl@ids.org.au>
12286         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12288         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12289         problem where the genre tag was getting set to the artist. Closes bug
12290         323642.
12292 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12294         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12295         Return NULL if can't get first iter.
12297         Fixes #323663
12299 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12301         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12302         updated rb_station_properties_dialog_new API.
12303         (rb_iradio_source_add_from_playlist): New public function.
12304         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12306         * shell/rb-shell.c (new_station_location_added): Handle
12307         iradio location added signal.
12308         (rb_shell_cmd_new_station): Use new iradio station dialog.
12310         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12311         (rb_station_properties_dialog_new): Don't squeeze new
12312         station functionality into this class.
12313         (rb_station_properties_dialog_response_cb): ditto.
12314         (rb_station_properties_dialog_update_title): Make
12315         consistent with other properties dialogs.
12316         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12318         * iradio/rb-new-station-dialog.[ch]: 
12319         * iradio/Makefile.am: Add new station dialog.
12321         * data/glade/station-new.glade: New file based on
12322         new podcast feed dialog.
12323         * data/glade/station-properties.glade: Updated to
12324         be consistent with song properties dialog.
12326         Fixes #323306.
12328 2005-12-10  James Livingston  <jrl@ids.org.au>
12330         patch by: Ståle Lyngaas <staale@lyngaas.com>
12332         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12333         submit songs longer than 30 minutes. Fixes bug 323639.
12335 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12337         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12338         async save function.
12339         (rb_shell_finalize): Remove save timeout sources.  Reorder
12340         steps a bit to make saving db and playlists a bit more
12341         failsafe in case something goes wrong later.
12342         (rb_shell_constructor): Keep track of save timeout source.
12343         (add_to_library_response_cb): Keep track of db save timeout source.
12345         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12346         g_atomic.
12347         (rb_playlist_manager_shutdown): New function to shutdown
12348         threads etc. before exit.
12349         (rb_playlist_manager_finalize): Moved handling outstanding
12350         threads stuff to shutdown since if there are outstanding threads
12351         they hold a ref and finalize is never called.
12352         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12353         of signal which may be required for sync save.
12354         (rb_playlist_manager_save_playlists_async): Renamed old
12355         save_playlists to save_playlists_async.  Use g_atomic.
12356         (rb_playlist_manager_save_playlists): New function to
12357         perform sync saves (symmetric with RhythmDB API).
12358         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12360         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12361         Style consistency anality.
12362         (rhythmdb_finalize): Remove save timeout source.
12363         (rhythmdb_set_property, rhythmdb_get_property) 
12364         (rhythmdb_process_events): More anality and keep track of
12365         save timeout source.
12366         (action_thread_main): No need to call g_thread_exit.
12367         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12368         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12369         (write_encoded_gvalue, read_encoded_property): La la la.
12371         Fixes #322940.
12373 2005-12-10  James Livingston  <jrl@ids.org.au>
12375         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12376         non-audio files.
12378 2005-12-10  James Livingston  <jrl@ids.org.au>
12380         * Makefile.am:
12381         * configure.ac: remove the rpm spec files, so that automake works.
12382         oops
12384         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12385         locking issue
12387 2005-12-09  James Livingston  <jrl@ids.org.au>
12389         * debian/: try to get cvs to actually remove the files
12391 2005-12-09  James Livingston  <jrl@ids.org.au>
12393         * rhythmbox.spec.in:
12394         * debian/: remove the distro package stuff, they are *really* old, and
12395         downstream manage it anyway.
12397 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12399         Rework play orders to work off query models rather than 
12400         entry views, and track the playing entry themselves rather
12401         than relying on the entry view to do it.  This makes the entry
12402         view mostly just a widget. Closes bug 323612.
12404         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12405         Use query model rather than entry view to get the number
12406         of entries in playlists.
12408         * rhythmdb/rhythmdb-query-model.{c.h}
12409         (rhythmdb_query_model_tree_path_to_entry),
12410         (rhythmdb_query_model_iter_to_entry),
12411         (rhythmdb_query_model_get_next_from_entry),
12412         (rhythmdb_query_model_get_previous_from_entry):
12413         New utility functions for iterating through query models.
12414         (rhythmdb_query_model_compute_status_normal):
12415         Have one copy of this code, not four.
12417         * shell/rb-play-order.{c,h}:
12418         Add signals for when next/previous availability changes, and
12419         when the playing entry is removed, and add a property for
12420         the current playing entry.  Add gtkdoc comments too.
12421         (rb_play_order_class_init): Add new property and signals.
12422         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12423         (rb_play_orer_query_model_changed_cb),
12424         (rb_play_order_query_model_changed): 
12425         Use query model rather than entry view.
12426         (rb_play_order_set_property), (rb_play_order_get_property):
12427         Handle new playing-entry property.  Call playing_entry_changed virtual
12428         method so subclasses can do any processing required.
12429         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12430         (rb_play_order_set_playing_entry):
12431         Just use the playing-entry property.
12432         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12433         Utility methods for subclasses.
12434         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12435         Update next/previous availability, check if the playing entry
12436         was removed.
12437         (default_playing_entry_removed):
12438         Keep the current behaviour of just stopping playback when the 
12439         playing entry is deleted.
12440         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12441         these for subclasses that don't have go_next/go_previous, but do
12442         have get_next/get_previous.
12443         (rb_play_order_update_have_next_previous): Emit signal if the
12444         availability of next/previous entries has changed.
12446         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12447         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12448         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12449         methods.
12450         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12451         on the last song in the shuffled order, go back to the start. This
12452         means if you press 'play' again you'll get the whole order again, not
12453         just one song.
12455         * shell/rb-shell-player.c:
12456         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12457         play order rather than the entry view.
12458         (rb_shell_player_set_property): Update the play order when the
12459         selected source changes and we aren't playing anything.
12460         (rb_shell_player_sync_play_order): Copy the playing entry across to
12461         the new play order so playback continues from the same song, and watch
12462         for updates to have_next/have_previous.
12463         (rb_shell_player_play_order_update_cb): Enable/disable the
12464         next/previous actions when next/previous entry availability changes.
12465         (rb_shell_player_jump_to_current): Just use the play order's idea of
12466         what's playing, not the entry view's; if not playing anything, clear
12467         the selection, so when a playlist ends and you hit play again, it'll
12468         start at the start rather than the end.
12469         (rb_shell_player_do_previous): restructure a bit.
12470         (rb_shell_player_do_next): restructure, jump to new playing entry in
12471         an idle handler instead of directly.
12472         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12473         song if there is one.
12474         (rb_shell_player_playpause): Jump to playing song, don't update the
12475         play order if we got the song from the selection.
12476         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12477         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12478         looks after next/previous actions now.  Don't break if called while
12479         there is no selected source.
12480         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12481         (rb_shell_player_set_playing_source_internal),
12482         (rb_shell_player_error): No need to track the attempted playing entry
12483         any more, since the play order does that.
12485         * shell/rb-shell.c:
12486         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12487         rb_shell_player_get_playing_entry rather than going through the entry
12488         view.
12490         * shell/rb-statusbar.c (rb_statusbar_set_property),
12491         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12492         than the entry view for status bar text changes.
12493         (rb_statusbar_sync_status): Ask the query model directly
12495         * sources/rb-source.{c}: Add query model property.
12496         (default_get_status): Get status text from query model, should be
12497         suitable for most sources.
12498         (rb_source_set_property): Listen for changes to the query model 
12499         to update the status text.
12500         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12501         (idle_emit_status_changed): Emit status-changed signals when query
12502         model changes. 
12504         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12505         (impl_get_status): Not needed, RBSource does this now
12506         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12507         Update RBSource's query model reference.
12509         * sources/rb-playlist-source.c:
12510         Remove query-model property, since RBSource has one now
12511         (impl_get_status): Not needed, RBSource does this now
12512         (rb_playlist_source_row_deleted): Use query model iterator helper
12513         function.
12514         (rb_playlist_source_set_query_model): Update RBSource's query model
12515         reference too.
12517         * sources/rb-iradio-source.c:
12518         (impl_get_status): Ask the query model directly.
12519         (rb_iradio_source_do_query): Update RBSource's query model reference
12520         when we create a new query.
12522         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12523         Use query model rather than entry view.
12525         * widgets/rb-entry-view.{c,h}: 
12526         Remove playing_entry_deleted signal (now in play order).
12527         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12528          as RhythmDBQueryModel has equivalent helper functions.
12529         (rb_entry_view_*): Use query model helpers instead of the above two
12530         functions.
12532 2005-12-09  James Livingston  <jrl@ids.org.au>
12534         * configure.ac:
12535         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12536         (rb_recorder_enabled):
12537         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12538         * sources/rb-playlist-source-recorder.c:
12539         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12540         whether libnautilusburn has the _drive_unref function, and if so use
12541         it. Stops it complaining about deprecated API.
12543 2005-12-09  James Livingston  <jrl@ids.org.au>
12545         * configure.ac: drop the minimum gstreamer version back down, it
12546         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12548 2005-12-09  James Livingston  <jrl@ids.org.au>
12550         * widgets/rb-song-info.c: (rb_song_info_class_init),
12551         (rb_song_info_show), (rb_song_info_constructor),
12552         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12553         (rb_song_info_forward_clicked_cb): save metadata changes when the
12554         Next/Previous buttons are pressed (closes bug 320952). use
12555         G_DEFINE_TYPE.
12557 2005-12-09  James Livingston  <jrl@ids.org.au>
12559         Patch by: <jonathan@kaolin.hn.org>
12561         * sources/rb-iradio-source.c:
12562         (stations_view_drag_data_received_cb):
12563         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12564         of urls. Fixes bug 323610.
12566 2005-12-09  James Livingston  <jrl@ids.org.au>
12568          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12569          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12571         * configure.ac:
12572         * metadata/rb-metadata-gst.c:
12573         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12574         (rb_player_construct), (rb_player_new):
12575         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12576         (rb_recorder_gst_signal_error), (pipe_message),
12577         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12578         (rb_recorder_new):
12579         * shell/main.c: (main):
12580         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12581         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12583 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12585         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12587         * shell/rb-playlist-manager.c:
12588           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12589           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12590           (rb_playlist_manager_set_automatic_playlist),
12591           (rb_playlist_manager_cmd_new_automatic_playlist),
12592           (rb_playlist_manager_cmd_edit_automatic_playlist):
12593            Use new playlist subclasses.
12594           (rb_playlist_manager_save_playlists): Only read the dirty flag
12595            for local playlists, minor pointless reformatting
12597         * sources/Makefile.am: add new files
12599         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12600           split lots of stuff out into two
12601           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12602           make RBPlaylistSource abstract, add virtual methods for showing a
12603           popup for the entry view and saving the playlist to XML.
12604           Other stuff is subclass-specific, or already virtual in RBSource.
12606         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12607           in one place, since they're used across three source files now
12609         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12610           Use new static playlist class
12612         * sources/rb-ipod-source.c: (add_rb_playlist):
12613           Use new static playlist class
12615         * sources/rb-static-playlist-source.{c,h},
12616         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12617         files.
12619         * po/POTFILES.in: add new files
12621 2005-12-07  James Livingston  <jrl@ids.org.au>
12623         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12624         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12625         metadata loads not attempt to write changes to disk.
12627 2005-12-07  James Livingston  <jrl@ids.org.au>
12629         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12631         * data/glade/song-info-multiple.glade:
12632         * widgets/rb-song-info.c: (rb_song_info_constructor),
12633         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12634         multiple songs at once.
12636 2005-12-06  James Livingston  <jrl@ids.org.au>
12638         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12639         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12641 2005-12-06  James Livingston  <jrl@ids.org.au>
12643         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12644         names rather than adding a horizontal scroll bar.
12646 2005-12-06  James Livingston  <jrl@ids.org.au>
12648         * rhythmdb/rhythmdb-query-model.c:
12649         (rhythmdb_query_model_update_limited_entries),
12650         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12651         messages
12653         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12654         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12655         always hide rather than remove DB entries, which will make RB not lose
12656         information when tag editing happens or people move files to trash and
12657         then change their mind. Also fix some races where the monitoring code
12658         would notice the temporary files generated by saving metadata.
12660 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12662         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12663         Hide internals and add tooltips.
12664         (rb_song_display_box_size_allocate): Hide internals.
12665         (sanitize_string, info_url): Copied from rb-header.
12666         (rb_song_display_box_sync): New public function.
12668         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12669         (rb_header_init): Use a separate row for the seek bar.
12670         (rb_header_finalize): Don't unref widgets.
12671         (rb_header_sync): Use rb_song_display_box_sync.
12672         (rb_header_set_urldata)
12673         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12674         (rb_header_set_show_position_slider): Set visibility of seek bar.
12675         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12676         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12678         * shell/rb-statusbar.c (rb_statusbar_init)
12679         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12681         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12682         (rb_shell_constructor): Remove hseparator.  Monitor
12683         toolbar visibility settings.  Add toolbar.  Add
12684         volume button to toolbar.  Add tooltips for volume button.
12685         (rb_shell_view_toolbar_changed_cb) 
12686         (rb_shell_sync_toolbar_visibility)
12687         (toolbar_visibility_changed_cb): Set visibility of
12688         toolbar.
12689         (rb_shell_sync_smalldisplay): Set the toolbar style to
12690         icons only when in small display mode.
12691         (rb_shell_volume_widget_changed_cb): Save volume setting.
12693         * shell/rb-shell-player.c (rb_shell_player_constructor):
12694         Remove pause and stop actions.  Make play action "important"
12695         so that text is visible in horizontal toolbar position.
12696         Remove control buttons.
12697         (rb_shell_player_init) 
12698         (rb_shell_player_sync_song_position_slider_visibility):
12699         Set visbibility of seek bar.
12700         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12701         Make play action a toggle.
12702         (rb_shell_player_sync_volume): Volume control moved
12703         to player.
12704         (gconf_song_position_slider_visibility_changed):
12705         Set visbibility of seek bar.
12706         (rb_shell_player_sync_buttons):
12707         Set sensitivity of actions instead of buttons.
12708         (rb_shell_player_playing_changed_cb): Add callback
12709         for player notify::playing changes.
12711         * lib/rb-preferences.h: Add hide toolbar and seek
12712         bar key names.
12714         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12715         seek bar menu items.  Remove pause and stop actions
12716         from the control menu.  Add a toolbar.
12718         * data/rhythmbox.schemas: Add toolbar_hidden
12719         song_position_slider_hidden keys.
12721         Patch by: James Livingston  <jrl@ids.org.au>
12722                   William Jon McCann  <mccann@jhu.edu>
12723         Fixes #316238.
12725 2005-12-05  James Livingston  <jrl@ids.org.au>
12727         * data/glade/library-prefs.glade:
12728         * data/rhythmbox.schemas:
12729         * lib/rb-preferences.h:
12730         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12731         (rhythmdb_sync_library_location):
12732         * sources/rb-library-source.c: (rb_library_source_class_init),
12733         (rb_library_source_finalize), (rb_library_source_constructor),
12734         (impl_get_config_widget), (rb_library_source_preferences_sync),
12735         (rb_library_source_watch_toggled_cb): allow people to disable library
12736         monitoring, because with nothing set the file chooser button selects
12737         the Home folder (and hence that will get monitored).
12739 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12741         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12742         attempt to fix problem with RSS parsing showing invalid feed types.
12743         Fixes bug 323153
12745 2005-12-04  James Livingston  <jrl@ids.org.au>
12747         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12748         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12749         importing a remote directory not block the UI.
12751 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12753         * data/glade/podcast-feed-properties.glade:
12754         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12756 2005-12-04  James Livingston  <jrl@ids.org.au>
12758         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12760         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12761         to && to fix a mistake in the earlier podcast patch.
12763 2005-12-03  James Livingston  <jrl@ids.org.au>
12765         * data/glade/podcast-new.glade:
12766         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12767         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12769         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12770         GValue, which stops occasional errors.
12772         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12773         compile issue.
12775 2005-12-03  James Livingston  <jrl@ids.org.au>
12777         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12779         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12780         crasher with some podcasts feeds.
12782 2005-12-03  James Livingston  <jrl@ids.org.au>
12784         * data/rhythmbox.schemas: fix the gconf schema
12786 2005-12-03  James Livingston  <jrl@ids.org.au>
12788         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12789         add a selection timeout to the sourcelist. This lets you hold a track
12790         over the playlist source, and then have the view switch so you can
12791         insert the track in the middle of the playlist. Closes bug 323044.
12793         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12794         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12795         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12796         (rb_tree_dnd_add_drag_dest_support):
12797         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12798         timeout.
12800         * sources/rb-sourcelist-model.c:
12801         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12802         the source list.
12804 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12806         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12807         links, so that the text doesn't touch the button
12809 2005-12-02  James Livingston  <jrl@ids.org.au>
12811         Add full support for gnome-vfs remote files. Closes bug 140355.
12813         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12814         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12815         for authentication information from the user doesn't block the UI.
12817         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12819         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12820         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12821         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12822         (rhythmdb_process_stat_event), (emit_load_error_idle),
12823         (rhythmdb_process_metadata_load),
12824         (rhythmdb_process_queued_entry_set_event),
12825         (rhythmdb_process_file_created_or_modified),
12826         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12827         (queue_stat_uri), (add_thread_main),
12828         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12829         (rhythmdb_load), (rhythmdb_save_thread_main),
12830         (threadsafe_entry_set), (rhythmdb_query_internal),
12831         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12832         (rhythmdb_do_full_query_internal),
12833         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12834         (rhythmdb_volume_unmounted_cb),
12835         (rhythmdb_check_changed_file): trivial changes to support the
12836         asynchronous stats.
12838         * shell/main.c: (main): activate the authentication manager.
12840         * shell/rb-playlist-manager.c:
12841         (rb_playlist_manager_cmd_load_playlist),
12842         (rb_playlist_manager_cmd_save_playlist):
12843         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12844         (rb_shell_cmd_add_file_to_library):
12845         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12846         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12847         remote files.
12849 2005-12-02  James Livingston  <jrl@ids.org.au>
12851         * shell/rb-playlist-manager.c: makes playlist menu items use the
12852         elipses correctly. Fixes bug 322283.
12854 2005-12-02  James Livingston  <jrl@ids.org.au>
12856         * shell/rb-playlist-manager.c:
12857         (rb_playlist_manager_load_playlists): fix silly mistake
12859 2005-12-02  James Livingston  <jrl@ids.org.au>
12861         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12862         print out metadata-write unless --debug was passed.
12864         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12865         * shell/rb-playlist-manager.c:
12866         (rb_playlist_manager_load_playlists): block writes to disk if they are
12867         still being loaded.
12869 2005-12-02  James Livingston  <jrl@ids.org.au>
12871         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12872         ctrl-T, because Ctrl-D is used by "small mode"
12874 2005-12-02  James Livingston  <jrl@ids.org.au>
12876         * shell/rb-shell-preferences.c:
12877         (rb_shell_preferences_append_view_page):
12878         * sources/rb-library-source.c: (impl_get_config_widget):
12879         * sources/rb-podcast-source.c: (impl_get_config_widget):
12880         * sources/rb-source.c: (rb_source_get_config_widget):
12881         * sources/rb-source.h: Make the preference actually work.
12883         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12884         if Rhythmbox is being run for the first time.
12886 2005-12-02  James Livingston  <jrl@ids.org.au>
12888         Add support for Rhythmbox to watch your library, and automatically add
12889         new tracks. Fixes bug 160159.
12891         * data/glade/library-prefs.glade: add "library location" preference
12892         * data/rhythmbox.schemas: add gconf key for the library location
12894         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12895         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12896         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12897         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12898         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12899         (rhythmdb_load_thread_main), (rhythmdb_load),
12900         (monitor_subdirectory), (monitor_library_directory),
12901         (monitor_entry_file), (rhythmdb_sync_library_location),
12902         (library_location_changed_cb), (rhythmdb_check_changed_file),
12903         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12904         specifiec in the gconf key for new additions. Also fix monitoring code
12905         so that it works properly, and notices deletions.
12907         * lib/rb-preferences.h:
12908         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12909         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12910         * shell/rb-audioscrobbler.h:
12911         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12912         (rb_shell_preferences_append_view_page),
12913         (rb_shell_preferences_new):
12914         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12915         it's preferences pane, so that we don't need #ifdef's through
12916         rb-shell-preferences.
12918         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12919         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12920         "preferences" property, so that sources can acccess it. This is needed
12921         because the library location pref needs to take effect when the window
12922         is closed.
12924         * sources/rb-library-source.c:
12925         (rb_library_source_library_location_changed),
12926         (rb_library_source_dispose), (rb_library_source_finalize),
12927         (rb_library_source_constructor), (impl_get_config_widget),
12928         (rb_library_source_preferences_sync),
12929         (rb_library_source_process_library_location_change),
12930         (rb_library_source_prefs_update),
12931         (rb_library_source_process_library_handle_selection),
12932         (rb_library_source_library_location_cb): set up and control the
12933         "library location" preference.
12935         * sources/rb-audiocd-source.c:(rb_source_class_init):
12936         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12937         code.
12939 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12941         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12942         (rb_feed_podcast_properties_dialog_update_title): 
12943         * data/glade/podcast-feed-properties.glade:
12944         Make the feed properties dialog consistent with the podcast
12945         properties dialog.
12947 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12949         * metadata/.cvsignore: 
12950         * po/.cvsignore: 
12951         * podcast/.cvsignore: Updated.
12953         * shell/main.c (main): Support DBus 0.6 flags.
12955 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12957         * data/ui/rhythmbox-ui.xml:
12958         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12959         (rhythmbd_entry_move_to_trash_set_error),
12960         (rhythmdb_entry_move_to_trash):
12961         * rhythmdb/rhythmdb.h:
12962         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12963         (rb_shell_clipboard_cmd_delete),
12964         (rb_shell_clipboard_cmd_move_to_trash):
12965         * sources/rb-library-source.c: (rb_library_source_class_init),
12966         (impl_delete), (impl_move_to_trash):
12967         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12968         (impl_delete), (impl_move_to_trash):
12969         * sources/rb-removable-media-source.c:
12970         (rb_removable_media_source_class_init):
12971         * sources/rb-source.c: (rb_source_class_init),
12972         (rb_source_can_move_to_trash), (rb_source_delete),
12973         (rb_source_move_to_trash):
12974         * sources/rb-source.h:
12975         Add move_to_trash member for the sources, implement move to trash for
12976         the library and playlists
12977         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12978         local files to the trash, and deleting them from the database
12979         (Closes: #315389)
12981 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12983         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12984         (rb_tray_icon_init, rb_tray_icon_finalize): 
12985         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12986         (rb_statusbar_init, rb_statusbar_finalize): 
12987         * shell/rb-source-header.c (rb_source_header_class_init) 
12988         (rb_source_header_init, rb_source_header_finalize): 
12989         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12990         (rb_shell_finalize): 
12991         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12992         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12993         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12994         (rb_shell_player_init, rb_shell_player_finalize): 
12995         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12996         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12997         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12998         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12999         * shell/rb-play-order.c (rb_play_order_class_init) 
13000         (rb_play_order_init, rb_play_order_finalize): 
13001         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
13002         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
13003         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
13004         (rb_random_play_order_init, rb_random_play_order_finalize): 
13005         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
13006         (rb_history_finalize): 
13007         * shell/rb-commander.c (rb_commander_class_init) 
13008         (rb_commander_init, rb_commander_finalize): 
13009         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
13010         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
13011         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
13012         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
13013         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
13014         (rb_podcast_properties_dialog_init) 
13015         (rb_podcast_properties_dialog_finalize): 
13016         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
13017         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
13018         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
13019         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
13020         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
13021         (rb_feed_podcast_properties_dialog_init) 
13022         (rb_feed_podcast_properties_dialog_finalize): 
13023         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
13024         (rb_metadata_init, rb_metadata_finalize): 
13025         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
13026         (rb_station_properties_dialog_init) 
13027         (rb_station_properties_dialog_finalize): 
13028         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
13029         (rb_daap_share_init, rb_daap_share_dispose): 
13031         Use g_type_class_add_private in all classes. Closes bug 313688.
13032         
13033 2005-11-30  James Livingston  <jrl@ids.org.au>
13035         patch by: William Jon McCann <mccann@jhu.edu> to use
13036         g_type_class_add_private in all classes. Closes bug 313688.
13038         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
13039         (rb_thread_finalize):
13040         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
13041         (rb_player_finalize):
13042         * rhythmdb/rhythmdb-property-model.c:
13043         (rhythmdb_property_model_class_init),
13044         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
13045         * rhythmdb/rhythmdb-query-model.c:
13046         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
13047         (rhythmdb_query_model_finalize):
13048         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
13049         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
13050         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
13051         (rhythmdb_finalize):
13052         * sources/rb-daap-source.c: (rb_daap_source_class_init),
13053         (rb_daap_source_init), (rb_daap_source_dispose):
13054         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13055         (rb_iradio_source_init), (rb_iradio_source_finalize):
13056         * sources/rb-library-source.c: (rb_library_source_class_init),
13057         (rb_library_source_init), (rb_library_source_finalize):
13058         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13059         (rb_playlist_source_init), (rb_playlist_source_dispose):
13060         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13061         (rb_podcast_source_init), (rb_podcast_source_finalize):
13062         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13063         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
13064         * sources/rb-sourcelist-model.h:
13065         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13066         (rb_sourcelist_init), (rb_sourcelist_finalize):
13067         * sources/rb-sourcelist.h:
13068         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
13069         * widgets/rb-cell-renderer-rating.c:
13070         (rb_cell_renderer_rating_init),
13071         (rb_cell_renderer_rating_class_init),
13072         (rb_cell_renderer_rating_finalize):
13073         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
13074         (rb_druid_finalize):
13075         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13076         (rb_entry_view_init), (rb_entry_view_finalize):
13077         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
13078         (rb_header_finalize):
13079         * widgets/rb-load-failure-dialog.c:
13080         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
13081         (rb_load_failure_dialog_finalize):
13082         * widgets/rb-property-view.c: (rb_property_view_class_init),
13083         (rb_property_view_init), (rb_property_view_finalize):
13084         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
13085         (rb_rating_finalize):
13086         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13087         (rb_search_entry_init), (rb_search_entry_finalize):
13088         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13089         (rb_simple_view_init), (rb_simple_view_finalize):
13090         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
13091         (rb_song_display_box_init), (rb_song_display_box_finalize):
13092         * widgets/rb-song-info.c: (rb_song_info_class_init),
13093         (rb_song_info_init), (rb_song_info_finalize):
13094         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
13095         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
13097 2005-11-30  James Livingston  <jrl@ids.org.au>
13099         * iradio/rb-station-properties-dialog.c:
13100         (rb_station_properties_dialog_init),
13101         (rb_station_properties_dialog_new):
13102         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
13103         * lib/rb-glade-helpers.h:
13104         * podcast/rb-feed-podcast-properties-dialog.c:
13105         (rb_feed_podcast_properties_dialog_init),
13106         (rb_feed_podcast_properties_dialog_new):
13107         * podcast/rb-podcast-properties-dialog.c:
13108         (rb_podcast_properties_dialog_init),
13109         (rb_podcast_properties_dialog_new):
13110         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
13111         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13112         * sources/rb-library-source.c: (impl_get_config_widget):
13113         * sources/rb-playlist-source-recorder.c:
13114         (rb_playlist_source_recorder_init):
13115         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13116         (rb_song_info_constructor): create a single rb_glade_boldify_label()
13117         in rb-glade-helpers, rather than having eight implementation
13118         throughout the code.
13120 2005-11-30  James Livingston  <jrl@ids.org.au>
13122         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
13123         * lib/rb-util.h:
13124         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13125         move the duration->string function into rb-utils, as it gets used in a
13126         few places.
13128         patch by: William Jon McCann <mccann@jhu.edu>
13130         * data/glade/podcast-properties.glade:
13131         * podcast/rb-podcast-properties-dialog.c:
13132         (rb_podcast_properties_dialog_init),
13133         (rb_podcast_properties_dialog_update),
13134         (rb_podcast_properties_dialog_update_title),
13135         (rb_podcast_properties_dialog_update_feed),
13136         (rb_podcast_properties_dialog_update_duration),
13137         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
13138         info dialog look more like the song info dialog. Use the same "Feed"
13139         value that is displayed in the treeview (ie. the album field), displays
13140         the duration, uses units in the bitrate field, and sort the fields in
13141         the same order.
13143 2005-11-29  James Livingston  <jrl@ids.org.au>
13145         * rhythmdb/rhythmdb-marshal.list:
13146         * rhythmdb/rhythmdb.h:
13147         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
13148         (emit_load_error_idle), (rhythmdb_process_metadata_load),
13149         (entry_to_rb_metadata), (emit_save_error_idle),
13150         (action_thread_main): emit error signal when metadata write fails.
13152         * shell/rb-shell.c: (rb_shell_constructor),
13153         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
13154         "metadata save" error and display it to the user.
13156 2005-11-29  James Livingston  <jrl@ids.org.au>
13158         * data/ui/rhythmbox-ui.xml:
13159         * sources/rb-podcast-source.c:
13160         (rb_podcast_source_songs_show_popup_cb),
13161         (rb_podcast_source_cmd_download_post),
13162         (rb_podcast_source_cmd_cancel_download): split download and cancel
13163         download commands. Replace usage of "Post" with "Esisode". Fixes bug
13164         321653.
13166 2005-11-18  William Jon McCann  <mccann@jhu.edu>
13168         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
13169         title on alert dialogs per the HIG.
13171         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
13172         the term Burn.
13173         (free_song_list): Routine to free song list.
13174         (rb_playlist_source_recorder_finalize): Use free_song_list.
13175         (rb_playlist_source_recorder_add_from_model): Return FALSE
13176         if unable to add all songs.  Check that duration of all
13177         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
13178         Fixes #321753.
13180         * sources/rb-playlist-source-recorder.c (check_media_length)
13181         (rb_playlist_source_recorder_start): Only check the duration
13182         and current media if the playlist length is longer than a
13183         standard CD (74 min).  Otherwise, just let the Recorder do the
13184         check.
13185         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
13186         drive at init.
13187         (rb_recorder_set_device): Don't leak drives.
13188         (rb_recorder_get_media_length): Use drive that was already set.
13189         (rb_recorder_burn): Let the recorder handle checking media type/size.
13190         Fixes bug 321754.
13192 2005-11-29  James Livingston  <jrl@ids.org.au>
13194         * rhythmdb/rhythmdb-query-model.c:
13195         (rhythmdb_query_model_set_sort_order):
13196         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
13197         emitting the tree-model "resorted" signal.
13199         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13200         (rb_entry_view_finalize), (rb_entry_view_set_property),
13201         (rb_entry_view_constructor), (rb_entry_view_resort_model):
13202         * widgets/rb-entry-view.h: add a function to resort the entry view,
13203         using the above function.
13205         * sources/rb-iradio-source.c:
13206         (rb_iradio_source_songs_view_sort_order_changed_cb):
13207         * sources/rb-library-source.c: (rb_library_source_finalize),
13208         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
13209         * sources/rb-playlist-source.c:
13210         (rb_playlist_source_songs_sort_order_changed_cb):
13211         * sources/rb-podcast-source.c:
13212         (rb_podcast_source_posts_view_sort_order_changed_cb),
13213         (rb_podcast_source_do_query): use the above function instead of
13214         re-creating the query model. This makes changing the sorting an order
13215         of magnitude faster, as it uses a single resorted signal rather than
13216         deleting and re-adding everything (which emits 2N signals). Closes bug
13217         315389.
13219 2005-11-29  James Livingston  <jrl@ids.org.au>
13221         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
13222         autosizing, which results in large speedups. Closes bug 312122.
13224         * po/ja.po: change the date format, so that it is a constant width
13226         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13227         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13228         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
13229         (rb_entry_view_constructor): make columns use fixed widths,
13230         disable column autosizing, and enable fixed-height mode.
13232         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
13233         (rb_entry_view_get_time_date_column_sample):
13234         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13235         and get the canonical date format for the locale.
13237 ============ Version 0.9.2
13239 2005-11-28  James Livingston  <jrl@ids.org.au>
13241         * configure.ac: bump version to 0.9.2
13242         * NEWS: update with changes for 0.9.2
13244 2005-11-28  James Livingston  <jrl@ids.org.au>
13246         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13248         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13249         Disable saving, renaming and delting for DAAP playlists.
13250         Fixes bug 322627.
13252 2005-11-28  James Livingston  <jrl@ids.org.au>
13254         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13255         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13256         prevent bug 322619.
13258         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13259         * sources/rb-removable-media-source.c:
13260         (rb_removable_media_source_class_init): fix ipod browser visibility
13261         problem.
13263 2005-11-28  James Livingston  <jrl@ids.org.au>
13265         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13266         Avahi 0.6 support actually work. Fixes bug 322519.
13268 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13270         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13271         avahi is specified in --with-mdns
13273 2005-11-27  James Livingston  <jrl@ids.org.au>
13275         patch by: Bastien Nocera <hadess@hadess.net>
13277         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13278         not the private one. Fixes bug 322485.
13280 2005-11-26  James Livingston  <jrl@ids.org.au>
13282         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13283         Avahi 0.6, as well as 0.5.
13285         * configure.ac:
13286         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13287         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13288         (add_service):
13290 2005-11-25  James Livingston  <jrl@ids.org.au>
13292         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13293         321926.
13295 2005-11-25  James Livingston  <jrl@ids.org.au>
13297         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13298         correct type for checking the date against 0. Stops a warning when
13299         saving metadata.
13301 2005-11-25  James Livingston  <jrl@ids.org.au>
13303         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13304         adjustment to be inside the element's limits. Without this songs that
13305         have large ReplayGain values will recieve no increase because they are
13306         outside the acceptable range, causing them to remain quiet.
13308 2005-11-25  James Livingston  <jrl@ids.org.au>
13310         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13311         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13312         * sources/rb-ipod-source.c:
13313         * sources/rb-source.h:
13314         * sources/rb-library-source.h:
13315         * sources/rb-library-source.c: (rb_library_source_class_init),
13316         (rb_library_source_constructor),
13317         (rb_library_source_has_first_added_column),
13318         (rb_library_source_has_drop_support):
13319         * sources/rb-removable-media-source.c:
13320         (rb_removable_media_source_class_init): Make library-derived sources
13321         not show the Date Added column, as it doesn't make sense. Fixes bug
13322         322269.
13323         Move some of the feature funcs from the ipod and audio cd sources up to
13324         the removable media source.
13326 2005-11-24  James Livingston  <jrl@ids.org.au>
13328         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13329         errors. oops.
13331 2005-11-24  James Livingston  <jrl@ids.org.au>
13333         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13334         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13335         (rb_iradio_source_constructor): Chain up dispose method and use
13336         G_DEFINE_TYPE
13338 2005-11-24  James Livingston  <jrl@ids.org.au>
13340         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13341         mistake in the last commit that can cause crashes.
13343 2005-11-24  James Livingston  <jrl@ids.org.au>
13345         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13346         instead of g_printerr.
13348         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13349         rb_debug instead of g_warning. The message happens every time for
13350         removable media/daap shares, so it's not unusual.
13352 2005-11-24  James Livingston  <jrl@ids.org.au>
13354         patch by: Tom Parker <palfrey@tevp.net>
13356         * configure.ac: fix libsoup test for enabling daap
13358 2005-11-23  James Livingston  <jrl@ids.org.au>
13360         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13361         (rb_query_creator_init), (rb_query_creator_constructor),
13362         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13363         empty row to queries with no criteria. Fixes bug 322078. use
13364         G_DEFINE_TYPE.
13366 2005-11-23  James Livingston  <jrl@ids.org.au>
13368         patch by:  <baptiste.millemathias@gmail.com>
13370         * help/C/quick-reference.xml: update the quick reference to have the
13371         correct key bindings.
13373 2005-11-22  James Livingston  <jrl@ids.org.au>
13375         * sources/rb-library-source.c: (genres_selection_reset_cb),
13376         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13377         reset the query when all browser selections are removed.
13379 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13381         * podcast/rb-podcast-manager.c:
13382         (rb_podcast_manager_db_entry_deleted_cb):
13383         Use a custom loop to remove podcast posts, rather than
13384         gtk_tree_model_foreach(), as deleting the entries within
13385         that loop causes the iterator to return the first entry
13386         twice.  Instead, we need to find the next entry before
13387         removing the current one. Fixes bug 321956.
13388         (rb_podcast_manager_entry_remove_cb): No longer needed.
13390 2005-11-22  James Livingston  <jrl@ids.org.au>
13392         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13393         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13394         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13396 2005-11-22  James Livingston  <jrl@ids.org.au>
13398         * sources/rb-podcast-source.c:
13399         (rb_podcast_source_post_date_cell_sort_func),
13400         (rb_podcast_source_post_status_cell_sort_func),
13401         (rb_podcast_source_post_feed_cell_sort_func):
13402         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13403         (rb_entry_view_album_sort_func),
13404         (rb_entry_view_double_ceiling_sort_func),
13405         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13406         the entry's location as a last resort when sorting, so the sort order
13407         is stable. This will stop entries moving around when two entries have
13408         the same sorting, and one of them gets played.
13410 2005-11-22  James Livingston  <jrl@ids.org.au>
13412         * daapsharing/rb-daap-connection.c:
13413         (rb_daap_connection_class_init), (rb_daap_connection_init),
13414         (connection_get_password), (build_message),
13415         (http_response_handler), (http_get), (handle_server_info),
13416         (handle_login), (handle_update), (handle_database_info),
13417         (handle_song_listing), (handle_playlists),
13418         (handle_playlist_entries), (rb_daap_connection_new),
13419         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13420         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13421         (rb_daap_connection_get_headers),
13422         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13423         (rb_daap_connection_set_property),
13424         (rb_daap_connection_get_property):
13425         * daapsharing/rb-daap-connection.h:
13426         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13427         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13428         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13429         of destroying the object when it is going to be used by a callback and
13430         fixes a double-free. Fixes bugs 321930 and 322007.
13432 2005-11-22  James Livingston  <jrl@ids.org.au>
13434         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13435         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13436         notification if there aren't any. Fixes bug 321968.
13438 2005-11-22  James Livingston  <jrl@ids.org.au>
13440         * rhythmdb/rhythmdb-property-model.c:
13441         (rhythmdb_property_model_set_property),
13442         (rhythmdb_property_model_finalize),
13443         (rhythmdb_property_model_compare),
13444         (rhythmdb_property_model_insert),
13445         (rhythmdb_property_model_delete_prop): Fix property model sorting
13446         where the display and sort keys are different. Fixes bug 321980.
13448 2005-11-22  James Livingston  <jrl@ids.org.au>
13450         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13451         when import as a file or passed on the command line, and load them as
13452         playlists.
13454 2005-11-22  James Livingston  <jrl@ids.org.au>
13456         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13458         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13459         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13460         a broken daap server. Fixes bug 321919.
13462 2005-11-22  James Livingston  <jrl@ids.org.au>
13464         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13465         drag-and-drop for both the episodes and feeds list.
13466         
13467         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13468         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13469         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13471         * widgets/rb-property-view.c: (rb_property_view_class_init),
13472         (rb_property_view_set_property), (rb_property_view_get_property),
13473         (rb_property_view_new), (rb_property_view_constructor):
13474         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13475         (rb_simple_view_new), (rb_simple_view_constructor):
13476         * widgets/rb-simple-view.h: add a "draggable" property to property
13477         views and set it to false for the feed list. Fixes bug 321284.
13479 2005-11-22  James Livingston  <jrl@ids.org.au>
13481         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13483         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13484         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13485         * sources/rb-ipod-source.c: (add_rb_playlist):
13486         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13487         (rb_playlist_source_set_property),
13488         (rb_playlist_source_get_property), (rb_playlist_source_new),
13489         (impl_receive_drag), (rb_playlist_source_add_location),
13490         (rb_playlist_source_new_from_xml):
13491         * sources/rb-playlist-source.h: give playlists and (optional)
13492         entry-type, and reject entries that don't match. Fixes bug 322006.
13494 2005-11-21  James Livingston  <jrl@ids.org.au>
13496         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13497         (rb_source_header_finalize): remove the weak references when the
13498         source header is finalised. Stops the callbacks being called after the
13499         object is destroyed.
13501 2005-11-21  James Livingston  <jrl@ids.org.au>
13503         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13504         --no-registration was passed. It causes warnings that make it
13505         impossible to run with --no-registration --g-fatal-warnings
13507 2005-11-21  James Livingston  <jrl@ids.org.au>
13509         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13510         of strings when they are still in use. Fixes bug 321547.
13512         (rb_daap_connection_destroy): fix memory leak
13514 2005-11-21  James Livingston  <jrl@ids.org.au>
13516         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13517         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13518         (rb_daap_mdns_resolve_cancel), (publish_cb),
13519         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13520         support.
13522 2005-11-21  James Livingston  <jrl@ids.org.au>
13524         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13525         sorting by genre
13527 2005-11-20  James Livingston  <jrl@ids.org.au>
13529         * podcast/rb-podcast-manager.c:
13530         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13531         that we don't leak thread structures. Fixes bug 321636, and probably
13532         321775.
13534 2005-11-20  James Livingston  <jrl@ids.org.au>
13536         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13537         (lookup_cd):
13538         * podcast/rb-podcast-manager.c: (start_job),
13539         (rb_podcast_manager_db_entry_deleted_cb),
13540         (rb_podcast_manager_entry_remove_cb):
13541         * podcast/rb-podcast-parse.c: (rb_insert_item),
13542         (rb_podcast_parse_load_feed):
13543         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13544         * shell/rb-removable-media-manager.c:
13545         (rb_removable_media_manager_append_media_source):
13546         * shell/rb-shell.c: (add_to_library_response_cb):
13547         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13548         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13549         * sources/rb-iradio-source.c:
13550         (stations_view_drag_data_received_cb):
13551         * sources/rb-library-source.c: (string_list_equal),
13552         (impl_get_extra_views), (impl_receive_drag):
13553         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13554         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13555         (impl_receive_drag):
13556         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13557         (rb_entry_view_append_column_custom), (harvest_entries):
13558         * widgets/rb-property-view.c:
13559         (rb_property_view_selection_changed_cb):
13560         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13561         switch from using g_list_append to g_list_prepend. This changes
13562         operations from O(n^2) to O(n), which in cases like deleting a lot of
13563         tracks can give huge improvements in speed. Closes bug 321696.
13565 2005-11-20  James Livingston  <jrl@ids.org.au>
13567         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13568         (rb_sourcelist_update_expander_visibility): fix indenting of child
13569         sources.
13571 2005-11-20  James Livingston  <jrl@ids.org.au>
13573         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13574         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13575         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13576         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13577         (add_service), (entry_group_cb): dynamically allocate memory, rather
13578         than using static variables.
13580         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13581         re-enable the daap share if the name hasn't changed.
13582         * shell/rb-shell-preferences.c:
13583         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13584         change it's name when the checkbox is disabled. Fixed bug 321748.
13586 2005-11-18  James Livingston  <jrl@ids.org.au>
13588         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13589         as hidden if it is on the current workspace.
13591 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13593         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13594         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13595         (rb_podcast_properties_dialog_parse_time): 
13596         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13597         (rb_feed_podcast_properties_dialog_parse_time):
13598         Rework the way the last mod time strings are created.  It was using
13599         thread unsafe functions, not creating value UTF, and not not checking
13600         the value of the result before modifying it.  This new method fixes
13601         these problems.
13603 2005-11-18  James Livingston  <jrl@ids.org.au>
13605         Don't reset the search box when viewing a different source, because it
13606         will change what is being played. Closes 321593.
13608         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13609         the search box
13611         * shell/rb-source-header.c: (rb_source_header_class_init),
13612         (rb_source_header_init), (rb_source_header_finalize): use
13613         G_DEFINE_TYPE.
13615         (rb_source_header_set_property),
13616         (rb_source_header_source_weak_destroy_cb),
13617         (rb_source_header_search_cb): store the search text when leaving a
13618         source and put it in the search box when viewing it again.
13620 2005-11-18  James Livingston  <jrl@ids.org.au>
13622         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13623         (save_entry):
13624         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13625         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13626         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13627         time stamp.
13629         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13630         last-seen as the timestamp of the last update of the feed. Don't
13631         re-add episodes that have been deleted. Closes 319759.
13633 2005-11-18  James Livingston  <jrl@ids.org.au>
13635         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13636         that don't have the day name at the start. Closes 321645.
13638 2005-11-18  James Livingston  <jrl@ids.org.au>
13640         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13641         (rb_podcast_manager_copy_post),
13642         (rb_podcast_manager_get_podcast_dir):
13643         * podcast/rb-podcast-manager.h:
13644         * sources/rb-podcast-source.c: (impl_get_config_widget),
13645         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13646         download location switching to / if the prefs were opened before
13647         downloading an episode. Closes 321611.
13649 2005-11-18  James Livingston  <jrl@ids.org.au>
13651         * data/glade/podcast-new.glade:
13652         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13653         (rb_new_podcast_dialog_set_property),
13654         (rb_new_podcast_dialog_get_property),
13655         (rb_new_podcast_dialog_response_cb),
13656         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13657         for entering new podcast urls in. Closes bug 321610.
13659 2005-11-18  James Livingston  <jrl@ids.org.au>
13661         * sources/rb-podcast-source.c: (construct_query_from_selection),
13662         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13663         without restarting RB. Closes bug 321612.
13665 2005-11-18  James Livingston  <jrl@ids.org.au>
13667         * widgets/rb-entry-view.c: (set_column_visibility),
13668         (rb_entry_view_sync_columns_visible): when changing visibility of one
13669         column, don't hide and re-show all the others. Makes a show/hide
13670         column operation a lot faster.
13672 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13674         Closes bug 321702.
13676         * iradio/rb-station-properties-dialog.c
13677          (rb_station_properties_dialog_update_bitrate):
13678         Mark the bitrate value as being kbps, using the same
13679         translatable format string as rb-song-info.c
13681         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13682          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13684         * shell/rb-shell-player.c (info_available_cb):
13685          Use RB_METADATA_FIELD_BITRATE to update the iradio
13686          station's bitrate value.
13688 2005-11-17  James Livingston  <jrl@ids.org.au>
13690         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13692         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13693         free a NULL date.
13695 2005-11-17  James Livingston  <jrl@ids.org.au>
13697         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13699         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13700         assertions. Lookup the icon size correctly.
13702 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13704         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13705         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13706         Fix build errors.
13708 2005-11-16  James Livingston  <jrl@ids.org.au>
13710         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13711         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13712         (rb_shell_preferences_sync_column_button): block the toggle signal of
13713         the column checkboxes while setting their initial state. This stops
13714         the visibility being re-set, which causes a lot of time being spent
13715         measuring the columns aagin when opening the prefs window.
13717         Use G_DEFINE_TYPE.
13719 2005-11-16  James Livingston  <jrl@ids.org.au>
13721         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13722         (rb_sourcelist_edit_source_name): don't assume that the editable
13723         source name is in the first column, because it isn't. Fixes bug
13724         320137.
13726 2005-11-16  James Livingston  <jrl@ids.org.au>
13728         * daapsharing/rb-daap-mdns.h:
13729         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13730         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13731         parts can know why operations failed. Avahi can report that the daemon
13732         was not running. Howl doesn't do this (yet).
13733         
13734         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13735         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13736         (browse_cb): don't display mdns errors to the user, if it wa because
13737         the daemon was not running.
13739 2005-11-16  James Livingston  <jrl@ids.org.au>
13741         * rhythmdb/rhythmdb-property-model.c:
13742         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13743         (rhythmdb_property_model_compare),
13744         (rhythmdb_property_model_insert),
13745         (rhythmdb_property_model_insert_prop),
13746         (rhythmdb_property_model_delete),
13747         (rhythmdb_property_model_delete_prop),
13748         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13749         copying the string and re-creating the sort key. Saves a little bit of
13750         memory and time.
13752         (rhythmdb_property_model_perform_sync),
13753         (rhythmdb_property_model_sync): perform the count sync in an idle
13754         callback, so that it doesn't have to be re-run once per value when
13755         loading.
13757 2005-11-16  James Livingston  <jrl@ids.org.au>
13759         * rhythmdb/rhythmdb-query-model.c:
13760         (rhythmdb_query_model_entry_deleted_cb),
13761         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13762         limited list. Stops problems if they are deleted, and then things on
13763         the main list are
13765 2005-11-16  James Livingston  <jrl@ids.org.au>
13767         * NEWS: update NEWS
13769         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13770         button's minimise-to-tray action
13772 2005-11-16  James Livingston  <jrl@ids.org.au>
13774         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13775         leak. Disable adding newly created files for now, because it doesn't
13776         work properly.
13778         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13779         (rb_sourcelist_model_finalize):
13780         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13781         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13783 2005-11-16  James Livingston  <jrl@ids.org.au>
13785         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13786         problem where a GError* wasn't being set to NULL. Actually check the
13787         result.
13789 2005-11-16  James Livingston  <jrl@ids.org.au>
13791         * doc/reference/tmpl/rb-entry-view.sgml:
13792         * doc/reference/tmpl/rhythmbox-unused.sgml:
13793         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13794         * doc/reference/tmpl/rhythmdb.sgml:
13795         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13796         docs, including the patch that was on bug 
13798         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13799         API, because it should only be used by RhythmDB itself.
13801 2005-11-16  James Livingston  <jrl@ids.org.au>
13803         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13804         pausing by middle clicking on the tray icon.
13806 2005-11-15  James Livingston  <jrl@ids.org.au>
13808         * configure.ac: enable audioscrobbler support by default, if libsoup
13809         is present.
13811 2005-11-15  James Livingston  <jrl@ids.org.au>
13813         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13814         Closes bug 321157.
13816         * configure.ac:
13817         * daapsharing/rb-daap-connection.c: (build_message),
13818         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13819         support gzip encoded daap connections.
13821         (handle_song_listing): fix leak
13823 2005-11-15  James Livingston  <jrl@ids.org.au>
13825         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13826         * sources/rb-podcast-source.c:
13827         (rb_podcast_source_post_date_cell_data_func): make the date format
13828         translatable again, so that translators can choose the best format for
13829         their locale (%x is huge in some locales)
13831 2005-11-15  James Livingston  <jrl@ids.org.au>
13833         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13834         (end_job): mark podcast episodes as failed, if the metadata load
13835         fails. This will prevent people playing non-audio enclosures, helping
13836         stop bug 320366.
13838 2005-11-14  James Livingston  <jrl@ids.org.au>
13840         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13841         video sink to fakesink. This will stop problems (potentially crashers)
13842         that will occur if the file contains a video stream.
13844         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13845         rather than using magic numbers everywhere.
13847         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13848         * sources/rb-podcast-source.c:
13849         (rb_podcast_source_songs_show_popup_cb),
13850         (rb_podcast_source_cmd_download_post),
13851         (rb_podcast_source_post_status_cell_data_func),
13852         (rb_podcast_source_entry_activated_cb): use the above constants.
13854         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13855         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13856         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13857         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13858         (cancel_job), (download_progress_cb),
13859         (rb_podcast_manager_cancel_download),
13860         (rb_podcast_manager_insert_feed): use the constants, and fix a
13861         trhead-safety issue.
13863 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13865         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13866         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13867         entry-changed events after stats on startup, fixes entry deleted from
13868         filtered views not disappearing
13870 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13872         Fix rhythmdb query model refcount and polling problems. Closes bug
13873         321410.
13875         * rhythmdb/rhythmdb-property-model.c:
13876         (rhythmdb_property_model_finalize):
13877          Unref the query model if we have one.
13879         * rhythmdb/rhythmdb-query-model.h:
13880          Remove poll and cancel methods.  Query cancellation
13881          never did anything anyway.
13883         * rhythmdb/rhythmdb-query-model.c:
13884         (rhythmdb_query_model_init): Remove GAsyncQueues.
13885          Replace the GAsyncQueue-based update processing
13886          with a simpler g_idle_add approach; still has the
13887          same queueing properties, but now we don't poll the
13888          model forever and updates are processed immediately.
13890         (_unref_entry), (rhythmdb_query_model_finalize):
13891          Unref DB entries when finalized
13893         (rhythmdb_query_model_has_pending_changes):
13894          Use our own counter to decide if there are updates pending
13896         (rhythmdb_query_model_process_update), (idle_process_update):
13897          Process updates using g_idle_add, or directly if possible
13899         (rhythmdb_query_model_signal_complete),
13900         (rhythmdb_query_model_add_entries):
13901          Change to new update processing method
13903         (idle_poll_model), (rhythmdb_query_model_poll):
13904          Remove GAsyncQueue-based update processing.
13906         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13907          No need to poll the model any more - updates are processed
13908          directly for synchronous queries.
13910         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13911          Property model needs to be unref'd here
13913         * sources/rb-library-source.c: (rb_library_source_do_query):
13914          Don't try to cancel the active query (it never worked anyway),
13915          remove obsolete poll call, unref property models as required,
13916          and don't unref the cached 'all' query, since hold on to it.
13917          We unref it when the sort order changes, which forces the query
13918          to be rerun.
13920         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13921          Unref the property model as required
13923         (rb_podcast_source_do_query):
13924          Treat any query with no selected feeds and no search text as
13925          an 'all' query.  Unref query models except for the cached
13926          'all' query, since we hold on to that.
13928         (rb_podcast_source_cmd_update_all):
13929          Unref the property model as required.
13931         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13932          Don't try to cancel the query (it never worked anyway)
13934         (rb_entry_view_poll_model):
13935          No need for this any more.
13937         * widgets/rb-entry-view.h:
13938          Remove obsolete function rb_entry_view_poll_model
13940         * widgets/rb-property-view.c: (rb_property_view_set_property):
13941          Ref and unref the property model as required.
13943 2005-11-14  James Livingston  <jrl@ids.org.au>
13945         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13947         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13948         for error. Closes bug 321416.
13950 2005-11-14  James Livingston  <jrl@ids.org.au>
13952         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13954         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13955         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13957 2005-11-14  James Livingston  <jrl@ids.org.au>
13959         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13960         * shell/rb-removable-media-manager.c:
13961         (rb_removable_media_manager_set_uimanager):
13962         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13963         translation domain for GTK action groups.
13965 2005-11-12  James Livingston  <jrl@ids.org.au>
13967         * po/POTFILES.in: remove the old station-new files
13969 2005-11-12  James Livingston  <jrl@ids.org.au>
13971         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13972         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13973         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13974         when upgrading from a pre-Date-supporting version to a version that
13975         supports Date metadata. Closes bug 320760.
13977 2005-11-12  James Livingston  <jrl@ids.org.au>
13979         Add "update all podcast feeds" command. Closes bug 319954.
13981         * data/ui/rhythmbox-ui.xml: add to source context menu.
13983         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13984         (register_action_group), (rb_podcast_source_cmd_download_post),
13985         (rb_podcast_source_cmd_delete_feed),
13986         (rb_podcast_source_cmd_properties_feed),
13987         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13988         rather than the shell.
13990         (rb_podcast_source_update_feed_func),
13991         (rb_podcast_source_cmd_update_all): update every feed.
13993 2005-11-11  James Livingston  <jrl@ids.org.au>
13995         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13996         (rb_shell_player_constructor), (rb_shell_player_finalize):
13997         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13998         others follow the HIG recommentations.
14000 2005-11-11  James Livingston  <jrl@ids.org.au>
14002         * podcast/rb-podcast-manager.c:
14003         (rb_podcast_manager_subscribe_feed): check that the url is valid,
14004         before trying to use it.
14006 2005-11-11  James Livingston  <jrl@ids.org.au>
14008         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
14009         (rb_entry_view_append_column): When sorting by year, sort by album
14010         within a particular year.
14012 2005-11-11  James Livingston  <jrl@ids.org.au>
14014         * NEWS: updates
14016 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
14017         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
14018         spelling of "Language."
14020 2005-11-11  James Livingston  <jrl@ids.org.au>
14022         * rhythmdb/rhythmdb-property-model.c:
14023         (rhythmdb_property_model_row_inserted_cb),
14024         (rhythmdb_property_model_prop_changed_cb),
14025         (rhythmdb_property_model_entry_removed_cb),
14026         (rhythmdb_property_model_insert_prop),
14027         (rhythmdb_property_model_sync): display the count after the "All"
14028         entry of a property model.
14030         * widgets/rb-property-view.c: (rb_property_view_class_init),
14031         (rb_property_view_finalize), (rb_property_view_constructor): use
14032         G_DEFINE_TYPE
14034 2005-11-10  James Livingston  <jrl@ids.org.au>
14036         * rhythmdb/rhythmdb-query-model.c:
14037         (rhythmdb_query_model_remove_entry):
14038         * rhythmdb/rhythmdb-query-model.h: make
14039         rhythmdb_query_model_remove_entry return whether the entry was in the
14040         model.
14042         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
14043         don't add non-SONG entries, as it doesn't really work and can cause
14044         crashes.
14046         (rb_playlist_source_remove_location): assert if the playlist and model
14047         differ on whether the entry is in the playlist
14049 2005-11-10  James Livingston  <jrl@ids.org.au>
14051         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
14052         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
14053         (rb_podcast_manager_thread_parse_feed),
14054         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
14055         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
14056         emulating one with a list and mutex. Fixes a couple of threading
14057         issues.
14058         
14059         (rb_podcast_manager_insert_feed): fix some problems with ignoring
14060         updated feeds.
14061         
14062         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
14063         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
14064         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
14065         * podcast/rb-podcast-parse.c: (rb_insert_item),
14066         (rb_podcast_parse_channel_free):
14067         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
14068         fix some typos, and make a bit of code clearer.
14070 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
14072         Make the "delete podcast" dialog better. Closes bug 320899.
14074         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
14075         Add PROP_WINDOW for rb_shell_get_property so we can access the
14076         GtkWindow widget of the main window. 
14077         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
14078         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
14079         podcast feed delete dialog less confusing as well.
14081 2005-11-09  James Livingston  <jrl@ids.org.au>
14083         * shell/rb-removable-media-manager.c:
14084         (rb_removable_media_manager_mount_volume),
14085         (rb_removable_media_manager_scan): Fix a crasher where we were getting
14086         NULL for a cd volume.
14088 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14090         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
14091         method return a gboolean indicating whether the changes
14092         to the entry have already been applied.
14094         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
14095         only modify the entry if impl_entry_set returns FALSE.
14097         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
14098         When setting the location of an entry, update the
14099         hash table mapping locations to entries.
14101 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
14103         * data/glade/Makefile.am:
14104         * iradio/Makefile.am:
14105           Remove 'new station' dialog.
14107         * iradio/rb-station-properties-dialog.h:
14108         * sources/rb-iradio-source.c: (impl_song_properties):
14109         * shell/rb-shell.c: (rb_shell_cmd_new_station):
14110          Add 'new station' mode parameter to
14111          rb_station_properties_dialog_new.
14113         * (rb_station_properties_dialog_response_cb),
14114         (rb_station_properties_dialog_create_station):
14115          When in 'new station' mode, create the station
14116          when OK button is pressed.
14118         * iradio/rb-station-properties-dialog.c:
14119         (rb_station_properties_dialog_location_changed_cb):
14120          Only enable OK button if a location is specified
14121         (rb_station_properties_dialog_init),
14122         (rb_station_properties_dialog_new),
14123         (rb_station_properties_dialog_update),
14124         (rb_station_properties_dialog_update_title),
14125         (rb_station_properties_dialog_rated_cb),
14126         (rb_station_properties_dialog_update_play_count),
14127         (rb_station_properties_dialog_update_bitrate),
14128         (rb_station_properties_dialog_update_last_played),
14129         (rb_station_properties_dialog_update_rating),
14130         (rb_station_properties_dialog_update_playback_error),
14131         (rb_station_properties_dialog_show):
14132          Handle 'new station' mode, where there's no current
14133          station to edit.
14135 2005-11-08  James Livingston  <jrl@ids.org.au>
14137         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
14138         keybinding for track columns consistent between library and playlist
14139         sources.
14141 2005-11-07  James Livingston  <jrl@ids.org.au>
14143         * data/ui/rhythmbox-ui.xml:
14144         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
14145         "Edit" item to playlist menu. Closes bug 311470.
14147 2005-11-07  James Livingston  <jrl@ids.org.au>
14149         patch by: Jaap A. Haitsma <jaap@haitsma.org>
14151         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
14152         confirmation to save dialogs, with gtk 2.8 or higher.
14154 2005-11-07 James Livingston  <jrl@ids.org.au>
14155         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
14156         requirement to a general on, because people are going to have it for
14157         the other dependencies.
14159 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
14161         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
14162         delete dialog less confusing.  Use HIG recommended button order.
14163         Closes bug 320840.
14165 2005-11-06  James Livingston  <jrl@ids.org.au>
14167         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
14168         drag-and-drop error.
14169         
14170         * sources/rb-library-source.c: (rb_library_source_constructor): only
14171         add drag-and-drop for the Library itself, subclasses can add support
14172         themselves if they want it.
14174         * sources/rb-removable-media-source.c:
14175         (rb_removable_media_source_class_init): by default removable media
14176         sources do not support dnd
14178 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
14180         * data/glade/station-properties.glade:
14181          Add box containing error icon and error message label
14182         * iradio/rb-station-properties-dialog.c:
14183         (rb_station_properties_dialog_class_init),
14184         (rb_station_properties_dialog_finalize):
14185          Change this class to use G_DEFINE_TYPE
14186         (rb_station_properties_dialog_init),
14187         (rb_station_properties_dialog_update),
14188         (rb_station_properties_dialog_update_playback_error):
14189          Display error icon and message when there is one, and hide the error
14190          box otherwise.
14191         (rb_station_properties_dialog_show): Hack widget show
14192          method to update the visibility of the error info box when showing
14193          the widget.  Otherwise the icon is displayed all the time (same thing
14194          is done in rb-song-info). Closes bug 320749.
14196 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
14198         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
14199         parsing of the duration of podcast episodes from the feed. Closes bug
14200         320748.
14202 2005-11-05  James Livingston  <jrl@ids.org.au>
14204         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
14205         release date metadata ("Year"). Closes bug 166093.
14207         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
14208         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
14209         (rb_metadata_gst_add_tag_data):
14210         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14211         (save_entry):
14212         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
14213         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
14214         (set_props_from_metadata), (rhythmdb_entry_set_internal),
14215         (rhythmdb_prop_get_type):
14216         * rhythmdb/rhythmdb.h: add support for "date" property
14217         
14218         * data/glade/general-prefs.glade:
14219         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
14220         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
14221         (rb_entry_view_append_column):
14222         * widgets/rb-entry-view.h:
14223         * sources/rb-library-source.c: (rb_library_source_constructor):
14224         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
14225         "Year" colums
14227         * data/glade/song-info.glade:
14228         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
14229         (rb_song_info_construct_single), (rb_song_info_constructor),
14230         (rb_song_info_populate_dialog), (rb_song_info_update_year),
14231         (rb_song_info_sync_entry_single): Add "Year" to song info window
14233         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14234         sorted by year.
14236 2005-11-05  James Livingston  <jrl@ids.org.au>
14238         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14239         description if it's very long.
14241 2005-11-05  James Livingston  <jrl@ids.org.au>
14243         pathc by: Artem Baguinski <femistofel@gmail.com>
14245         * help/C/Makefile.am:
14246         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14247         Closes bug 320613.
14249 2005-11-05  James Livingston  <jrl@ids.org.au>
14251         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14253         * daapsharing/rb-daap-share.c: (write_next_chunk),
14254         (message_finished), (databases_cb): Use chunked file loading and
14255         sending in the DAAP server. This should reduce the amount of memory
14256         required to send files to the client.
14258 2005-11-05  James Livingston  <jrl@ids.org.au>
14260         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14261         work better on some systems. Closes 320622.
14263 2005-11-05  James Livingston  <jrl@ids.org.au>
14265         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14266         homepage, so that users can find out what AudioScrobbler is. Add
14267         access keys.
14269         * data/glade/daap-prefs.glade:
14270         * data/glade/general-prefs.glade:
14271         * data/glade/library-prefs.glade: make the indent be more consistent
14273         * data/glade/podcast-prefs.glade: 
14274         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14275         (impl_get_config_widget): move thing out of code into glade, where
14276         they belong
14278 2005-11-05  James Livingston  <jrl@ids.org.au>
14280         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14281         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14283 2005-11-04  James Livingston  <jrl@ids.org.au>
14285         * configure.ac: don't print DAAP configure info twice
14287 2005-11-04  James Livingston  <jrl@ids.org.au>
14289         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14290         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14291         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14292         #ifdefs, since we removed the symbol. Oops
14294 2005-11-04  James Livingston  <jrl@ids.org.au>
14296         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14297         after the connect line, not before. Oops.
14299 2005-11-04  James Livingston  <jrl@ids.org.au>
14301         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14302         fix some warnings
14304 2005-11-03  James Livingston  <jrl@ids.org.au>
14306         * NEWS: update the news file
14308         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14309         "duration" column.
14311         * data/ui/rhythmbox-ui.xml:
14312         * shell/rb-playlist-manager.c:
14313         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14314         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14315         and "delete" for feeds.
14317 2005-11-03  James Livingston  <jrl@ids.org.au>
14319         * sources/rb-podcast-source.c: (impl_delete),
14320         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14321         feed. Closes 319760.
14323 2005-11-03  James Livingston  <jrl@ids.org.au>
14325         Don't start playing from the remote site when a un-downloaded podcast
14326         is activated. Closes 319983.
14327         
14329         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14330         (write_job_data), (download_progress_cb): write the local location as
14331         soon as any data is recieved
14333         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14334         the mountpoint to NULL for podcast episodes that haven't yet been
14335         downloaded.
14336         
14337         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14338         start playing a podcast if it hasn't been downloaded.
14339         
14340         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14341         (rb_podcast_source_entry_activated_cb): begin downloading when the
14342         podcast is activated.
14344 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14346         * data/glade/general-prefs.glade:  Fix capitalization.
14347         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14348         * sources/rb-podcast-source.c:
14349         (rb_podcast_source_songs_show_popup_cb),
14350         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14352 2005-11-03  James Livingston  <jrl@ids.org.au>
14354         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14356         * shell/rb-removable-media-manager.c:
14357         (rb_removable_media_manager_mount_volume): don't check network or
14358         autofs mounts, as they're not going to be removable media. Stops
14359         sending lots of warnings to syslog. Closes 320571.
14361         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14362         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14363         320570.
14365 2005-11-03  James Livingston  <jrl@ids.org.au>
14367         Add support for playing audio CDs. Metadata lookup is done using
14368         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14369         the library when it gets broken out of S-J.
14370         
14371         Add a "rescan media" menu item, and commands for ejecting removable
14372         media.
14374         Move nautilus-cd-burner from optional to required depenency.
14376         * configure.ac:
14377         * data/ui/rhythmbox-ui.xml:
14378         * metadata/Makefile.am:
14379         + metadata/sj-error.c:
14380         + metadata/sj-error.h:
14381         + metadata/sj-metadata-marshal.list:
14382         + metadata/sj-metadata-musicbrainz.c:
14383         + metadata/sj-metadata-musicbrainz.h:
14384         + metadata/sj-metadata.c:
14385         + metadata/sj-metadata.h:
14386         + metadata/sj-structures.c:
14387         + metadata/sj-structures.h:
14388         * player/Makefile.am:
14389         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14390         * po/POTFILES.in:
14391         * shell/Makefile.am:
14392         * shell/rb-removable-media-manager.c:
14393         (rb_removable_media_manager_dispose), (poll_tray_opened),
14394         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14395         (rb_removable_media_manager_load_media),
14396         (rb_removable_media_manager_mount_volume),
14397         (rb_removable_media_manager_cmd_eject_medium),
14398         (rb_removable_media_manager_cmd_scan_media),
14399         (rb_removable_media_manager_check_volume),
14400         (rb_removable_media_manager_unmount_volume_swap),
14401         (rb_removable_media_manager_scan):
14402         * sources/Makefile.am:
14403         + sources/rb-audiocd-source.c:
14404         + sources/rb-audiocd-source.h:
14405         * tests/Makefile.am:
14407 2005-11-02  James Livingston  <jrl@ids.org.au>
14409         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14411         * sources/rb-iradio-source.c:
14412         (stations_view_drag_data_received_cb):
14413         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14414         don't crash when the second uri is missing frm the drop, which
14415         browsers sometimes do.
14417 2005-11-01  James Livingston  <jrl@ids.org.au>
14419         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14420         (rb_podcast_manager_insert_feed):
14421         * podcast/rb-podcast-manager.h:
14422         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14423         (rb_set_item_value), (rb_validate_item_propert),
14424         (rb_podcast_parse_date), (rb_podcast_parse_time):
14425         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14426         from the feed.
14428 2005-10-31  James Livingston  <jrl@ids.org.au>
14430         * ChangeLog:
14431         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14432         huge
14434 2005-10-31  James Livingston  <jrl@ids.org.au>
14436         * sources/rb-podcast-source.c:
14437         (rb_podcast_source_post_date_cell_data_func): generate the date string
14438         in a way that is correct in all locales.
14439         
14440         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14441         (rhythmdb_entry_sync_mirrored): make the last played/date added
14442         columns use the same format.
14444 2005-10-30  James Livingston  <jrl@ids.org.au>
14447         * podcast/rb-podcast-manager.c:
14448         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14449         
14450         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14451         iradio errors better.
14453 2005-10-30  James Livingston  <jrl@ids.org.au>
14455         patch by: Artem Baguinski <femistofel@gmail.com>
14457         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14459 2005-10-30  James Livingston  <jrl@ids.org.au>
14461         * podcast/rb-podcast-manager.c:
14462         (rb_podcast_manager_subscribe_feed),
14463         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14464         already been added, usually as a radio station. Closes 319434.
14466 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14468         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14469         mnemonics & resize issues)
14470         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14471         & mnemonics)
14472         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14473         widget for the "download location" label.
14475         Closes bug 320184.
14477 2005-10-29  James Livingston  <jrl@ids.org.au>
14479         Allow the search box to match words from multiple properties. Closes
14480         bug 139196. Thanks to the person from IRC who did a lot of the initial
14481         work.
14484         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14485         * lib/rb-util.h: Add functions to split a string into words, and one
14486         to perform "search folding" which is currently like casefolding but
14487         also strips punctuation
14488         
14489         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14490         (rhythmdb_query_preprocess):
14491         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14492         against title, artist, album and genre (for the search box)
14493         
14494         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14495         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14496         (save_entry), (search_match_properties),
14497         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14498         splitting into words and matching across multiple properties.
14499         
14500         * sources/rb-library-source.c: (construct_query_from_selection): use
14501         the new SEARCH_MATCH property for the search box
14502         
14503         * widgets/rb-entry-view.c: (type_ahead_search_func):
14505 2005-10-29  James Livingston  <jrl@ids.org.au>
14507         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14508         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14509         
14510         * shell/rb-playlist-manager.c:
14511         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14512         correctly.
14513         
14514         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14515         initial state of the shuffle/repeat menu items correctly. Patch from
14516         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14518 2005-10-29  James Livingston  <jrl@ids.org.au>
14520         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14521         double-free.
14522         
14523         * widgets/rb-cell-renderer-pixbuf.c:
14524         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14525         icon go black when row is not selected
14526         
14527         * doc/reference/tmpl/rb-daap-connection.sgml:
14528         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14530 2005-10-29  James Livingston  <jrl@ids.org.au>
14532         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14533         silly mistake, where it could think partial downloads has been
14534         completed.
14536 2005-10-29  James Livingston  <jrl@ids.org.au>
14538         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14540         * data/glade/song-info.glade:
14541         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14542         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14543         (rb_song_info_sync_entry_single): show the disc number in the song
14544         info window. From bug 311199.
14546 2005-10-29  James Livingston  <jrl@ids.org.au>
14548         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14549         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14550         regularly. Closes 155306.
14552 2005-10-29  James Livingston  <jrl@ids.org.au>
14554         * podcast/rb-podcast-manager.c:
14555         (rb_podcast_manager_download_entry),
14556         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14557         (rb_podcast_manager_insert_feed):
14558         * podcast/rb-podcast-manager.h:
14559         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14560         (rb_podcast_parser_start_element):
14561         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14562         don't download them again. However, it can't resume
14563         partially-downloaded ones.
14565 2005-10-28  James Livingston  <jrl@ids.org.au>
14567         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14568         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14569         work. Don't attempt to write duration as a tag.
14571         Thanks to Artem Baguinski <femistofel@gmail.com>
14573 2005-10-28  James Livingston  <jrl@ids.org.au>
14575         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14576         don't disable the status-bar menu item when the current source doesn't
14577         use the search box.
14579 2005-10-28  James Livingston  <jrl@ids.org.au>
14581         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14582         crash if the file has unknown length
14584 2005-10-27  James Livingston  <jrl@ids.org.au>
14586         * daapsharing/rb-daap-connection.c:
14587         (rb_daap_connection_state_done): don't assert when a daap server
14588         doesn't have any playlists
14590 2005-10-27  James Livingston  <jrl@ids.org.au>
14592         * sources/rb-sourcelist-model.c:
14593         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14594         source for the sourcelist. Closes bug 319817.
14596 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14598         Patch by: Renato Araujo <renatox@gmail.com>
14600         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14601           Fix for a crasher caused by previous patch.
14603 2005-10-26  James Livingston  <jrl@ids.org.au>
14605         * data/glade/podcast-prefs.glade:
14606         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14607         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14608         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14609         * podcast/rb-podcast-manager.c:
14610         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14611         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14612         * shell/rb-shell.c: Change some strings to make them more consistent.
14613         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14614         makes it clearer which is which. "Episode" may not be the best term,
14615         but it seems to be widely used.
14616         
14617         Also fix some strings that weren't marked as translatable.
14618         
14619         * podcast/rb-feed-podcast-properties-dialog.c:
14620         (rb_feed_podcast_properties_dialog_class_init),
14621         (rb_feed_podcast_properties_dialog_finalize):
14622         * podcast/rb-new-podcast-dialog.c:
14623         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14624         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14625         (rb_simple_view_finalize), (rb_simple_view_constructor):
14626         * podcast/rb-podcast-properties-dialog.c:
14627         (rb_podcast_properties_dialog_class_init),
14628         (rb_podcast_properties_dialog_finalize):
14629         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14630         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14631         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14632         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14633         use G_DEFINE_TYPE, instead of doing it manually.
14635 2005-10-26  James Livingston  <jrl@ids.org.au>
14637         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14638         <jrl@ids.org.au>
14640         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14641         (rb_metadata_init): Check that the necessary plugins are present to do
14642         id3 editing.
14643         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14644         corrupted before replacing the original.
14646 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14648         reviewed by: James Livingston <jrl@ids.org.au>
14650         Assign sequential IDs to playlists for DAAP rather than using the
14651         address of the playlist object.  Less flaky, and should work on 64bit
14652         platforms. Closes bug 319304.
14654         * daapsharing/rb-daap-share.c: 
14655         (rb_daap_share_set_property): watch for playlist creation
14656         (_find_by_id), (_find_by_source): playlist list search functions
14657         (rb_daap_share_playlist_created),
14658         (rb_daap_share_process_playlist),
14659         (rb_daap_share_playlist_destroyed):
14660          update playlist list as it changes, use weak refs on 
14661          playlists to get notified on destroy.
14662         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14663          destroy playlist list on shutdown
14664         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14665          DAAP response
14666         (databases_cb): search for playlist ID in list rather than just
14667          converting it to a pointer; return HTTP 404 if playlist not 
14668          found.
14669         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14670          is already used for the main library
14672 2005-10-26  James Livingston  <jrl@ids.org.au>
14674         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14676         * daapsharing/rb-daap-connection.c: (build_message),
14677         (http_response_handler), (http_get), (handle_server_info),
14678         (handle_login), (handle_update), (handle_database_info),
14679         (handle_song_listing), (handle_playlists),
14680         (handle_playlist_entries), (handle_logout),
14681         (rb_daap_connection_new), (rb_daap_connection_logout),
14682         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14683         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14684         * daapsharing/rb-daap-connection.h:
14685         * sources/rb-daap-source.c: (rb_daap_source_activate),
14686         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14687         (rb_daap_source_disconnect): Make connecting to DAAP sources
14688         asynchronous, so that non-responsive servers don't hang the UI. Closes
14689         316225.
14691 2005-10-26  James Livingston  <jrl@ids.org.au>
14693         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14695         * rhythmdb/rhythmdb-query-model.c:
14696         (rhythmdb_query_model_do_reorder): generate the row re-order map
14697         correctly.
14698         
14699         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14700         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14701         Update selection when rows get re-ordered. Closes 319718.
14703 2005-10-26  James Livingston  <jrl@ids.org.au>
14705         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14707         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14708         actually set the db pointer in play orders. Closes 319818.
14710 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14712         Patch by: Renato Araujo <renatox@gmail.com>
14714         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14715         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14716         (rb_podcast_manager_update_synctime),
14717         (rb_podcast_manager_config_changed),
14718         (rb_podcast_manager_insert_feed):
14719         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14720         (save_entry):
14721         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14722         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14723         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14725 2005-10-25  James Livingston  <jrl@ids.org.au>
14727         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14728         (db_entry_deleted_cb): don't share tracks that are hidden because the
14729         file is missing.
14731 2005-10-22  James Livingston  <jrl@ids.org.au>
14733         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14734         crash if an entry couldn't be playerd, without streamer setting an
14735         error.
14737         
14738         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14740         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14741         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14742         is pasted into the dialog.
14743         
14744         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14745         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14746         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14747         (rb_podcast_parse_channel_free):
14748         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14749         feeds
14751 2005-10-22  James Livingston  <jrl@ids.org.au>
14753         * sources/rb-iradio-source.c:
14754         (rb_iradio_source_first_time_changed): Make merging the default
14755         stations actually work.
14756         
14757         * sources/rb-podcast-source.c:
14758         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14759         people weren't seing the percentages in the stats column.
14761 2005-10-21  James Livingston  <jrl@ids.org.au>
14763         Patch from Caio Marcelo <cmarcelo@gmail.com>
14765         * shell/rb-shell.c: (rb_shell_window_state_cb),
14766         (rb_shell_get_visibility), (idle_hide_mainwindow),
14767         (rb_shell_set_visibility): Make the "show window" item in the tray
14768         icon menu show the toggle state correctly. Use a better policy on
14769         deciding whether the window is "visible" or not. Closes bug 308053.
14771 2005-10-21  James Livingston  <jrl@ids.org.au>
14773         * doc/reference/tmpl/rb-shell-preferences.sgml:
14774         * shell/Makefile.am: fix building with gtk-doc
14776         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14777         don't submit podcasts to audioscrobbler
14778         
14779         
14780         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14781         
14782         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14783         (rb_set_item_value): strip spaces surrounding podcast urls
14784         
14786         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14787         
14788         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14790 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14792         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14793          Audioscrobbler/Last.fm support
14795         * configure.ac:
14796         * data/glade/Makefile.am:
14797         * data/glade/audioscrobbler-prefs.glade:
14798         * data/rhythmbox.schemas:
14799         * lib/Makefile.am:
14800         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14801         * lib/md5.h:
14802         * lib/rb-preferences.h:
14803         * po/POTFILES.in:
14804         * shell/Makefile.am:
14805         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14806         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14807         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14808         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14809         (rb_audioscrobbler_timeout_cb), (mkmd5),
14810         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14811         (rb_audioscrobbler_do_handshake),
14812         (rb_audioscrobbler_do_handshake_cb),
14813         (rb_audioscrobbler_submit_queue),
14814         (rb_audioscrobbler_submit_queue_cb),
14815         (rb_audioscrobbler_import_settings),
14816         (rb_audioscrobbler_preferences_sync),
14817         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14818         (rb_audioscrobbler_gconf_changed_cb),
14819         (rb_audioscrobbler_song_changed_cb),
14820         (rb_audioscrobbler_username_entry_changed_cb),
14821         (rb_audioscrobbler_username_entry_activate_cb),
14822         (rb_audioscrobbler_password_entry_changed_cb),
14823         (rb_audioscrobbler_password_entry_activate_cb),
14824         (rb_audioscrobbler_enabled_check_changed_cb),
14825         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14826         (rb_audioscrobbler_load_entry_from_string),
14827         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14828         (rb_audioscrobbler_print_queue),
14829         (rb_audioscrobbler_free_queue_entries):
14830         * shell/rb-audioscrobbler.h:
14831         * shell/rb-shell-preferences.c:
14832         (rb_shell_preferences_append_audioscrobbler_config):
14833         * shell/rb-shell-preferences.h:
14834         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14835         (rb_shell_select_source), (rb_shell_cmd_preferences):
14836         * sources/Makefile.am:
14838 2005-10-21  James Livingston  <jrl@ids.org.au>
14840         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14842         * Makefile.am:
14843         * NEWS:
14844         * configure.ac:
14845         * data/art/Makefile.am:
14846         * data/glade/Makefile.am:
14847         * data/rhythmbox.schemas:
14848         * data/ui/rhythmbox-ui.xml:
14849         * doc/reference/Makefile.am:
14850         * doc/reference/tmpl/rhythmdb.sgml:
14851         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14852         * lib/rb-stock-icons.h:
14853         * po/POTFILES.in:
14854         * podcast/Makefile.am:
14855         + podcast/rb-feed-podcast-properties-dialog.c:
14856         + podcast/rb-feed-podcast-properties-dialog.h:
14857         + podcast/rb-new-podcast-dialog.c:
14858         + podcast/rb-new-podcast-dialog.h:
14859         + podcast/rb-podcast-manager.c:
14860         + podcast/rb-podcast-manager.h:
14861         + podcast/rb-podcast-marshal.list:
14862         + podcast/rb-podcast-parse.c:
14863         + podcast/rb-podcast-parse.h:
14864         + podcast/rb-podcast-properties-dialog.c:
14865         + podcast/rb-podcast-properties-dialog.h:
14866         * rhythmdb/rhythmdb-property-model.c:
14867         (rhythmdb_property_model_set_property),
14868         (rhythmdb_property_model_enable_drag):
14869         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14870         (rhythmdb_tree_parser_end_element), (save_entry),
14871         (rhythmdb_tree_save):
14872         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14873         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14874         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14875         (rhythmdb_entry_podcast_feed_get_type):
14876         * rhythmdb/rhythmdb.h:
14877         * shell/Makefile.am:
14878         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14879         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14880         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14881         (rb_shell_quit):
14882         * sources/Makefile.am:
14883         + sources/rb-podcast-source.c:
14884         + sources/rb-podcast-source.h:
14885         * widgets/Makefile.am:
14886         * widgets/rb-property-view.c: (rb_property_view_class_init),
14887         (rb_property_view_constructor),
14888         (rb_property_view_selection_changed_cb),
14889         (rb_property_view_get_treeview):
14890         * widgets/rb-property-view.h:
14891         + widgets/rb-simple-view.c:
14892         + widgets/rb-simple-view.h:
14894 2005-10-20  James Livingston  <jrl@ids.org.au>
14896         * NEWS: update with changes since 0.9.1
14898         * configure.ac: check whether collate_key_for_filename is available
14899         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14900         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14901         it if it isn't available in glib (i.e. building against 2.6)
14902         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14903         collation to get "natural sorting". Closes bug 158599.
14905 2005-10-20  James Livingston  <jrl@ids.org.au>
14907         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14909         * doc/reference/tmpl/rb-shell-player.sgml:
14910         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14911         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14912         (rb_shell_player_get_playing),
14913         (rb_shell_player_get_playing_time_string),
14914         (rb_shell_player_get_playing_time),
14915         (rb_shell_player_set_playing_time), (tick_cb),
14916         (rb_shell_player_get_playing_path), (filter_mmkeys):
14917         * shell/rb-shell-player.h:
14918         * shell/rb-shell-player.xml:
14919         * shell/rb-shell.c: (rb_shell_constructor),
14920         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14921         (rb_shell_set_window_title), (rb_shell_playing_impl),
14922         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14923         Merge the duration_changed and elapsed_changed DBUS signals into one
14924         elapsed_changed signal. Check that the output argument isn't NULL
14925         before trying to put things in it.
14927 2005-10-20  James Livingston  <jrl@ids.org.au>
14929         * rhythmdb/rhythmdb-query-model.c:
14930         (rhythmdb_query_model_entry_added_cb),
14931         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14932         problem where hidden entries could be shown in playlists.
14933         
14934         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14935         issues when switching in and out of small mode.
14937 2005-10-19  James Livingston  <jrl@ids.org.au>
14939         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14940         (rb_shell_constructor), (rb_shell_window_state_cb),
14941         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14942         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14943         (rb_shell_view_smalldisplay_changed_cb),
14944         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14945         (rb_shell_sync_paned): remove gconf window-state races, prevent
14946         changing small mode too often, fix window event races. Closes 122806.
14948         
14949         Patch from Caio Marcelo <cmarcelo@gmail.com>
14951         * data/rhythmbox.schemas:
14952         * shell/rb-shell.c: (rb_shell_window_state_cb),
14953         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14954         Remember the position of the window. Closes 315289.
14956 2005-10-19  James Livingston  <jrl@ids.org.au>
14958         Patch from Christophe Fergeau  <teuf@gnome.org>
14960         * configure.ac: determine whether libgpod is present when neither
14961         --with-ipod nor --without-ipod is passed
14963 2005-10-19  James Livingston  <jrl@ids.org.au>
14965         Patch from Caio Marcelo <cmarcelo@gmail.com>
14967         * shell/rb-shell-player.c: (do_next_idle),
14968         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14969         (rb_shell_player_do_previous_or_seek),
14970         (rb_shell_player_previous_button_cb),
14971         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14972         (rb_shell_player_cmd_next), (eos_cb):
14973         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14974         end of the playlist is reached.
14976 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14978         * lib/rb-thread.c: fix a few GSource leaks
14980 2005-10-19  James Livingston  <jrl@ids.org.au>
14982         * doc/reference/tmpl/bacon-volume.sgml:
14983         * doc/reference/tmpl/disclosure-widget.sgml:
14984         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14985         * doc/reference/tmpl/eggnotificationbubble.sgml:
14986         * doc/reference/tmpl/eggtrayicon.sgml:
14987         * doc/reference/tmpl/gsequence.sgml:
14988         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14989         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14990         * doc/reference/tmpl/rb-daap-connection.sgml:
14991         * doc/reference/tmpl/rb-daap-dialog.sgml:
14992         * doc/reference/tmpl/rb-daap-mdns.sgml:
14993         * doc/reference/tmpl/rb-daap-share.sgml:
14994         * doc/reference/tmpl/rb-daap-sharing.sgml:
14995         * doc/reference/tmpl/rb-daap-source.sgml:
14996         * doc/reference/tmpl/rb-daap-src.sgml:
14997         * doc/reference/tmpl/rb-daap-structure.sgml:
14998         * doc/reference/tmpl/rb-debug.sgml:
14999         * doc/reference/tmpl/rb-dialog.sgml:
15000         * doc/reference/tmpl/rb-druid.sgml:
15001         * doc/reference/tmpl/rb-entry-view.sgml:
15002         * doc/reference/tmpl/rb-enums.sgml:
15003         * doc/reference/tmpl/rb-file-helpers.sgml:
15004         * doc/reference/tmpl/rb-glade-helpers.sgml:
15005         * doc/reference/tmpl/rb-header.sgml:
15006         * doc/reference/tmpl/rb-history.sgml:
15007         * doc/reference/tmpl/rb-ipod-source.sgml:
15008         * doc/reference/tmpl/rb-iradio-source.sgml:
15009         * doc/reference/tmpl/rb-library-source.sgml:
15010         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15011         * doc/reference/tmpl/rb-metadata.sgml:
15012         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15013         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15014         * doc/reference/tmpl/rb-play-order-linear.sgml:
15015         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15016         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15017         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15018         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15019         * doc/reference/tmpl/rb-play-order-random.sgml:
15020         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15021         * doc/reference/tmpl/rb-play-order.sgml:
15022         * doc/reference/tmpl/rb-player.sgml:
15023         * doc/reference/tmpl/rb-playlist-manager.sgml:
15024         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15025         * doc/reference/tmpl/rb-playlist-source.sgml:
15026         * doc/reference/tmpl/rb-preferences.sgml:
15027         * doc/reference/tmpl/rb-property-view.sgml:
15028         * doc/reference/tmpl/rb-query-creator-private.sgml:
15029         * doc/reference/tmpl/rb-query-creator.sgml:
15030         * doc/reference/tmpl/rb-rating-helper.sgml:
15031         * doc/reference/tmpl/rb-rating.sgml:
15032         * doc/reference/tmpl/rb-recorder.sgml:
15033         * doc/reference/tmpl/rb-refstring.sgml:
15034         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15035         * doc/reference/tmpl/rb-removable-media-source.sgml:
15036         * doc/reference/tmpl/rb-search-entry.sgml:
15037         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15038         * doc/reference/tmpl/rb-shell-glue.sgml:
15039         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15040         * doc/reference/tmpl/rb-shell-player.sgml:
15041         * doc/reference/tmpl/rb-shell-preferences.sgml:
15042         * doc/reference/tmpl/rb-shell.sgml:
15043         * doc/reference/tmpl/rb-song-display-box.sgml:
15044         * doc/reference/tmpl/rb-song-info.sgml:
15045         * doc/reference/tmpl/rb-source-header.sgml:
15046         * doc/reference/tmpl/rb-source.sgml:
15047         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15048         * doc/reference/tmpl/rb-sourcelist.sgml:
15049         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15050         * doc/reference/tmpl/rb-statusbar.sgml:
15051         * doc/reference/tmpl/rb-stock-icons.sgml:
15052         * doc/reference/tmpl/rb-string-helpers.sgml:
15053         * doc/reference/tmpl/rb-thread.sgml:
15054         * doc/reference/tmpl/rb-tray-icon.sgml:
15055         * doc/reference/tmpl/rb-tree-dnd.sgml:
15056         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15057         * doc/reference/tmpl/rb-util.sgml:
15058         * doc/reference/tmpl/rhythmbox-unused.sgml:
15059         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15060         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15061         * doc/reference/tmpl/rhythmdb-tree.sgml:
15062         * doc/reference/tmpl/rhythmdb.sgml: update for changes
15063         
15064         * doc/reference/Makefile.am: make docs build with changed ipod support
15065         
15066         * po/POTFILES.in: remove sources/itunesdb
15068 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
15070         * sources/itunesdb.c:
15071         * sources/itunesdb.h: removed now useless files
15073 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
15075         * configure.ac:
15076         * shell/Makefile.am:
15077         * sources/Makefile.am:
15078         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
15079         code
15080         [1]: http://www.gtkpod.org/libgpod.html
15083 2005-10-18  James Livingston  <jrl@ids.org.au>
15085         patch from Funda Wang <fundawang@linux.net.cn>
15087         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
15088         the notification bubble string translatable.
15090 ============ Version 0.9.1
15092 2005-10-16  James Livingston  <jrl@ids.org.au>
15094         * configure.ac: bump version to 0.9.1
15095         * NEWS: update translation credits
15097 2005-10-16  James Livingston  <jrl@ids.org.au>
15099         * rhythmdb/rhythmdb-query-model.c:
15100         (rhythmdb_query_model_class_init),
15101         (rhythmdb_query_model_drag_data_received): 
15102         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
15103         notified when things are dropped into the entry view.
15104         
15105         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15106         (rb_playlist_source_add_location_swapped),
15107         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
15108         (rb_playlist_source_non_entry_dropped),
15109         (rb_playlist_source_row_inserted): Use the new signal so that dropping
15110         things onto a playlist's entry view work correctly, and doesn't cause
15111         crashes. Allow folders to be dropped as well. (Closes 318308)
15113 2005-10-16  James Livingston  <jrl@ids.org.au>
15115         * NEWS: Update some more
15117         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15118         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
15119         with the paned size, so that it doesn't move when the window is
15120         maximised/restored. Closes bug 315852.
15122         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
15123         display the playcount column, as it's useless (it never get changed).
15125 2005-10-14  James Livingston  <jrl@ids.org.au>
15127         * Makefile.am:
15128         * data/Makefile.am:
15129         * doc/reference/Makefile.am: get "make distcheck" to pass again
15131 2005-10-11  James Livingston  <jrl@ids.org.au>
15133         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
15134         destroy the connection when retrieving the playlists fails, because
15135         tracks have already been added. Closes 318380.
15137 2005-10-11  James Livingston  <jrl@ids.org.au>
15139         * sources/rb-sourcelist.c: (rb_sourcelist_append),
15140         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
15141         (source_name_edited_cb): Ask for the columns to be resized when a
15142         source is added, deleted or changes name.
15144 2005-10-11  James Livingston  <jrl@ids.org.au>
15146         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
15147         create a thread when processing a directory. This stops up created one
15148         thread for each file in a playlist we're trying to load. Closes
15149         317850.
15151         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
15152         typo that made sort-by-artist not work correctly.
15154 2005-10-11  James Livingston  <jrl@ids.org.au>
15156         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
15157         support is enabled
15159 2005-10-11  James Livingston  <jrl@ids.org.au>
15161         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
15162         * lib/rb-file-helpers.h: add a function to turn uris into our
15163         canonical path-escaped form
15164         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
15165         above function when import playlists. This will fix the problem of
15166         duplicate entries due to different representations of the uri (bug
15167         158211).
15169 2005-10-11  James Livingston  <jrl@ids.org.au>
15171         * shell/rb-shell.c: (rb_shell_get_visibility),
15172         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
15173         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
15174         window hiding so that Alt-F4 works again.
15176         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
15177         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
15178         (rb_entry_view_string_sort_func): Stop some crashes where a string
15179         property was set to NULL.
15181 2005-10-10  James Livingston  <jrl@ids.org.au>
15183         * doc/reference/rhythmbox.types: fix gtk-doc generation
15185 2005-10-09  James Livingston  <jrl@ids.org.au>
15187         * sources/rb-sourcelist.c: (rb_sourcelist_init):
15188         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
15189         accelerators, so that we don't have as many conflicting keys.
15191 2005-10-08  James Livingston  <jrl@ids.org.au>
15193         * data/iradio-initial.pls: Update the list of radio stations. Thanks
15194         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
15195         bug 129285.
15197 2005-10-07  James Livingston  <jrl@ids.org.au>
15199         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
15200         local path names in the same way as every other URI. This should stop
15201         duplicates occurring due to different escapings. Closes bug 158211.
15203 2005-10-06  James Livingston  <jrl@ids.org.au>
15205         * NEWS: more updates
15206         
15207         patch from Jaap Haitsma <jaap@haitsma.org>:
15209         * configure.ac:
15210         * data/Makefile.am:
15211         * data/art/Makefile.am:
15212         - data/art/rhythmbox-paused.png:
15213         - data/art/rhythmbox-playback-error.png:
15214         - data/art/rhythmbox-playing.png:
15215         - data/art-clearlooks/:
15216         * lib/rb-file-helpers.c: (rb_file):
15217         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15218         * lib/rb-stock-icons.h:
15219         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
15220         * widgets/rb-cell-renderer-pixbuf.c:
15221         (rb_cell_renderer_pixbuf_render):
15222         * widgets/rb-entry-view.c: (rb_entry_view_init),
15223         (rb_entry_view_set_playing):
15224         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
15225         stock icons instead of custom art. Drop remanents of art-clearlooks.
15227 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
15229         * configure.ac: Added ne in ALL_LINGUAS
15231 2005-10-02  James Livingston  <jrl@ids.org.au>
15233         * data/glade/Makefile.am: actually install the daap prefs glade file
15235 2005-09-30  James Livingston  <jrl@ids.org.au>
15237         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15238         translatable files, so that make check works and we don't annoy the
15239         translators.
15240         
15241         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15242         sanity checking, in case a db entry is missing some properties.
15244 2005-09-29  James Livingston  <jrl@ids.org.au>
15246         - lib/rb-string-helpers.c:
15247         - lib/rb-string-helpers.h:
15248         * lib/Makefile.am:
15249         * rhythmdb/rhythmdb-tree.c:
15250         * rhythmdb/rhythmdb.c:
15251         * shell/main.c: (main):
15252         * shell/rb-shell.c:
15253         * widgets/rb-entry-view.c:
15254         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15255         utility functions haven't been used in a while.
15257 2005-09-27  James Livingston  <jrl@ids.org.au>
15259         * data/art-clearlooks/Makefile.am:
15260         - data/art-clearlooks/rhythmbox-album.png:
15261         - data/art-clearlooks/rhythmbox-audiocd.png:
15262         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15263         - data/art-clearlooks/rhythmbox-dnd.png:
15264         - data/art-clearlooks/rhythmbox-ipod.png:
15265         - data/art-clearlooks/rhythmbox-iradio.png:
15266         - data/art-clearlooks/rhythmbox-library.png:
15267         - data/art-clearlooks/rhythmbox-next.png:
15268         - data/art-clearlooks/rhythmbox-pause.png:
15269         - data/art-clearlooks/rhythmbox-play.png:
15270         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15271         - data/art-clearlooks/rhythmbox-playlist.png:
15272         - data/art-clearlooks/rhythmbox-previous.png:
15273         - data/art-clearlooks/rhythmbox-repeat.png:
15274         - data/art-clearlooks/rhythmbox-rewind.png:
15275         - data/art-clearlooks/rhythmbox-shuffle.png:
15276         - data/art-clearlooks/rhythmbox-stop.png:
15277         - data/art-clearlooks/rhythmbox-visuals.png:
15278         - data/art-clearlooks/rhythmbox-volume-max.png:
15279         - data/art-clearlooks/rhythmbox-volume-medium.png:
15280         - data/art-clearlooks/rhythmbox-volume-min.png:
15281         - data/art-clearlooks/rhythmbox-volume-mute.png:
15282         - data/art-clearlooks/rhythmbox-volume-zero.png:
15283         * data/art/Makefile.am:
15284         - data/art/rhythmbox-album.png:
15285         - data/art/rhythmbox-audiocd.png:
15286         - data/art/rhythmbox-automatic-playlist.png:
15287         - data/art/rhythmbox-dnd.png:
15288         - data/art/rhythmbox-ipod.png:
15289         - data/art/rhythmbox-iradio.png:
15290         - data/art/rhythmbox-library.png:
15291         - data/art/rhythmbox-next.png:
15292         - data/art/rhythmbox-pause.png:
15293         - data/art/rhythmbox-play.png:
15294         - data/art/rhythmbox-playlist-menu.png:
15295         - data/art/rhythmbox-playlist.png:
15296         - data/art/rhythmbox-previous.png:
15297         - data/art/rhythmbox-repeat.png:
15298         - data/art/rhythmbox-rewind.png:
15299         - data/art/rhythmbox-shuffle.png:
15300         - data/art/rhythmbox-stop.png:
15301         - data/art/rhythmbox-visuals.png:
15302         - data/art/rhythmbox-volume-max.png:
15303         - data/art/rhythmbox-volume-medium.png:
15304         - data/art/rhythmbox-volume-min.png:
15305         - data/art/rhythmbox-volume-mute.png:
15306         - data/art/rhythmbox-volume-zero.png:
15307         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15308         * lib/rb-stock-icons.h:
15309         * shell/rb-playlist-manager.c:
15310         * shell/rb-shell-player.c:
15311         * sources/rb-daap-source.c: (rb_daap_get_icon):
15312         * sources/rb-ipod-source.c:
15313         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15314         * sources/rb-library-source.c: (rb_library_source_new):
15315         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15316         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15317         that hasn't been used in a LONG time, and also remove art that are
15318         now stock icons.
15320 2005-09-27  James Livingston  <jrl@ids.org.au>
15322         * README: point to the gnome.org web sites, and update the example
15323         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15324         
15325         * rhythmdb/rhythmdb-query-model.c:
15326         (rhythmdb_query_model_set_property),
15327         (rhythmdb_query_model_get_property),
15328         (rhythmdb_query_model_finalize):
15329         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15330         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15331         * rhythmdb/rhythmdb.h:
15332         * sources/rb-iradio-source.c: (impl_search):
15333         * sources/rb-library-source.c: (impl_search): Add query
15334         "preprocessing", which performs operations such as casefolding any
15335         strings that will be compared to any of the *_FOLDED properties.
15336         Closes bug 316039
15338 2005-09-27  James Livingston  <jrl@ids.org.au>
15340         * data/glade/daap-prefs.glade:
15341         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15342         file for the daap preferences pane
15343         
15344         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15345         (rb_sourcelist_append), (rb_sourcelist_remove),
15346         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15347         don't display the column for source expanders unless there is an
15348         expandable source.
15350 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15352         * .cvsignore:
15353         * Makefile.am:
15354         * configure.ac:
15355         * doc/.cvsignore:
15356         * doc/Makefile.am:
15357         * doc/reference/.cvsignore:
15358         * doc/reference/Makefile.am:
15359         * doc/reference/rhythmbox-docs.sgml:
15360         * doc/reference/rhythmbox-sections.txt:
15361         * doc/reference/rhythmbox.types:
15362         * doc/reference/tmpl/bacon-volume.sgml:
15363         * doc/reference/tmpl/disclosure-widget.sgml:
15364         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15365         * doc/reference/tmpl/eggnotificationbubble.sgml:
15366         * doc/reference/tmpl/eggtrayicon.sgml:
15367         * doc/reference/tmpl/gsequence.sgml:
15368         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15369         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15370         * doc/reference/tmpl/rb-daap-connection.sgml:
15371         * doc/reference/tmpl/rb-daap-dialog.sgml:
15372         * doc/reference/tmpl/rb-daap-mdns.sgml:
15373         * doc/reference/tmpl/rb-daap-share.sgml:
15374         * doc/reference/tmpl/rb-daap-sharing.sgml:
15375         * doc/reference/tmpl/rb-daap-source.sgml:
15376         * doc/reference/tmpl/rb-daap-src.sgml:
15377         * doc/reference/tmpl/rb-daap-structure.sgml:
15378         * doc/reference/tmpl/rb-debug.sgml:
15379         * doc/reference/tmpl/rb-dialog.sgml:
15380         * doc/reference/tmpl/rb-druid.sgml:
15381         * doc/reference/tmpl/rb-entry-view.sgml:
15382         * doc/reference/tmpl/rb-enums.sgml:
15383         * doc/reference/tmpl/rb-file-helpers.sgml:
15384         * doc/reference/tmpl/rb-glade-helpers.sgml:
15385         * doc/reference/tmpl/rb-header.sgml:
15386         * doc/reference/tmpl/rb-history.sgml:
15387         * doc/reference/tmpl/rb-ipod-source.sgml:
15388         * doc/reference/tmpl/rb-iradio-source.sgml:
15389         * doc/reference/tmpl/rb-library-source.sgml:
15390         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15391         * doc/reference/tmpl/rb-metadata.sgml:
15392         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15393         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15394         * doc/reference/tmpl/rb-play-order-linear.sgml:
15395         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15396         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15397         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15398         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15399         * doc/reference/tmpl/rb-play-order-random.sgml:
15400         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15401         * doc/reference/tmpl/rb-play-order.sgml:
15402         * doc/reference/tmpl/rb-player.sgml:
15403         * doc/reference/tmpl/rb-playlist-manager.sgml:
15404         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15405         * doc/reference/tmpl/rb-playlist-source.sgml:
15406         * doc/reference/tmpl/rb-preferences.sgml:
15407         * doc/reference/tmpl/rb-property-view.sgml:
15408         * doc/reference/tmpl/rb-query-creator-private.sgml:
15409         * doc/reference/tmpl/rb-query-creator.sgml:
15410         * doc/reference/tmpl/rb-rating-helper.sgml:
15411         * doc/reference/tmpl/rb-rating.sgml:
15412         * doc/reference/tmpl/rb-recorder.sgml:
15413         * doc/reference/tmpl/rb-refstring.sgml:
15414         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15415         * doc/reference/tmpl/rb-removable-media-source.sgml:
15416         * doc/reference/tmpl/rb-search-entry.sgml:
15417         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15418         * doc/reference/tmpl/rb-shell-glue.sgml:
15419         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15420         * doc/reference/tmpl/rb-shell-player.sgml:
15421         * doc/reference/tmpl/rb-shell-preferences.sgml:
15422         * doc/reference/tmpl/rb-shell.sgml:
15423         * doc/reference/tmpl/rb-song-display-box.sgml:
15424         * doc/reference/tmpl/rb-song-info.sgml:
15425         * doc/reference/tmpl/rb-source-header.sgml:
15426         * doc/reference/tmpl/rb-source.sgml:
15427         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15428         * doc/reference/tmpl/rb-sourcelist.sgml:
15429         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15430         * doc/reference/tmpl/rb-statusbar.sgml:
15431         * doc/reference/tmpl/rb-stock-icons.sgml:
15432         * doc/reference/tmpl/rb-string-helpers.sgml:
15433         * doc/reference/tmpl/rb-thread.sgml:
15434         * doc/reference/tmpl/rb-tray-icon.sgml:
15435         * doc/reference/tmpl/rb-tree-dnd.sgml:
15436         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15437         * doc/reference/tmpl/rb-util.sgml:
15438         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15439         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15440         * doc/reference/tmpl/rhythmdb-tree.sgml:
15441         * doc/reference/tmpl/rhythmdb.sgml:
15442         * macros/.cvsignore:
15443         * shell/Makefile.am:
15444         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15445         (rb_source_finalize), (rb_source_set_property),
15446         (rb_source_get_property), (default_get_pixbuf),
15447         (_rb_source_show_popup):
15448         * sources/rb-source.h:
15449         Add support for gtk-doc in rhythmbox.
15450         Convert RBSource to use newer glib functions, such as add_private.
15451         Gives RBSource a default get_pixbuf implementation.
15453 2005-09-25  James Livingston  <jrl@ids.org.au>
15455         * NEWS: Update with about a months worth of changes
15457         * data/glade/song-info-multiple.glade:
15458         * data/glade/song-info.glade:
15459         * data/rhythmbox.schemas:
15460         * lib/rb-preferences.h:
15461         * rhythmdb/rhythmdb.h:
15462         * shell/rb-shell-player.c:
15463         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15464         few remaining parts of autorating.
15466 2005-09-24  James Livingston  <jrl@ids.org.au>
15468         * shell/rb-shell.c: (rb_shell_constructor),
15469         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15470         (rb_shell_window_configure_cb): store window state in the gconf keys,
15471         so that it gets used. Closes bugs 313893 and 137068.
15473 2005-09-20  James Livingston  <jrl@ids.org.au>
15475         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15476         crash if the entry has a NULL string in a property
15477         
15478         * shell/rb-removable-media-manager.c:
15479         (rb_removable_media_manager_load_media): fix some memory leaks
15480         
15481         (rb_removable_media_manager_mount_volume),
15482         (rb_removable_media_manager_eject_medium_cb),
15483         (rb_removable_media_manager_cmd_eject_medium): use
15484         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15485         
15486         * sources/rb-removable-media-source.c:
15487         (rb_removable_media_source_set_property),
15488         (rb_removable_media_source_get_property): use
15489         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15491 2005-09-18  James Livingston  <jrl@ids.org.au>
15493         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15494         column
15496         * data/glade/general-prefs.glade:
15497         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15498         (rb_shell_preferences_column_check_changed_cb),
15499         (rb_shell_preferences_sync): add checkbox to control visibility
15500         of the column
15501         
15502         
15503         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15504         (save_entry):
15505         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15506         (rhythmdb_prop_get_type):
15507         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15508         was as "last played" is handled
15509         
15510         * sources/rb-library-source.c: (rb_library_source_constructor):
15511         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15512         Make the column show in the library and playlists
15513         
15514         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15515         * widgets/rb-entry-view.h: add the column
15516         
15517         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15518         be sorted by the column
15520 2005-09-16  James Livingston  <jrl@ids.org.au>
15522         * shell/rb-shell-player.c: (rb_shell_player_init),
15523         (rb_shell_player_do_previous_or_seek),
15524         (rb_shell_player_previous_button_cb),
15525         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15526         (rb_shell_player_playpause_button_cb): Make the previous button act
15527         the same as the menu item. Fix an inversion of the "previous track or
15528         seek" logic.
15529         
15530         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15531         
15532         (rb_shell_player_playpause): make --play-pause stop source that can't
15533         be paused
15535 2005-09-15  James Livingston  <jrl@ids.org.au>
15537         * configure.ac: increase totem-plparser requirements to 1.1.5
15539         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15540         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15541         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15542         use the newer playlist APIs to save the name of the playlist, and use
15543         the name of a loaded playlist.
15545         Closes bug 309817.
15547 2005-09-15  James Livingston  <jrl@ids.org.au>
15549         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15551         * shell/Makefile.am: stop some linker warnings
15553         * shell/main.c: (main): make --no-registration work with dbus
15555 2005-09-15  James Livingston  <jrl@ids.org.au>
15557         * daapsharing/rb-daap-sharing.c: (create_share):
15558         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15559         reference sinking and counting issues that I caused.
15561 2005-09-15  James Livingston  <jrl@ids.org.au>
15563         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15564         playing" icon in the "now playing" column header.
15566 2005-09-14  James Livingston  <jrl@ids.org.au>
15568         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15569         daap shares, when sharing is turned off.
15571 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15573         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15574         the GConf value's default, especially for badly installed schema
15575         files
15577 2005-09-12  James Livingston  <jrl@ids.org.au>
15579         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15581         Patch from Paolo Borelli <pborelli@katamail.com>
15583         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15584         grip when maximised. Closes bug 316055.
15586 2005-09-11  James Livingston  <jrl@ids.org.au>
15588         Patch from William Jon McCann <mccann@jhu.edu>
15590         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15591         subclass of GtkStatusbar instead of GtkHBox.
15592         (rb_statusbar_construct): Don't set border width.
15593         (rb_statusbar_init): Use resize grip.  Don't use
15594         markup.
15595         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15596         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15597         Connect tooltips for actions.
15598         (rb_statusbar_sync_status): Push new message to statusbar.
15599         (rb_statusbar_set_progress): Don't use markup.
15600         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15601         flag here since it prevents actually showing or hiding.
15602         (rb_statusbar_sync_with_source): Push new message to statusbar.
15604 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15606         * daapsharing/rb-daap-structure.c:
15607         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15608         around debugging definition.
15610 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15611         
15612         * daapsharing/rb-daap-structure.c:
15613         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15614         type = version.
15616         * daapsharing/rb-daap-mdns.c/h:
15617         (resolve_cb): Updated mDNS resolve callback to send service-name &
15618         name (read from Machine Name in the TXT data or equal to service-name
15619         if not in TXT).
15621         * daapsharing/rb-daap-source.c:
15622         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15623         (rb_daap_source_get_property), (rb_daap_source_new),
15624         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15625         (stop_resolver), (start_browsing), (stop_browsing), 
15626         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15627         and added 'host' and 'port' gobject properties.  Updated to use new
15628         mDNS resolve callback sending service-name & name arguments.
15630 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15632         * daapsharing/rb-daap-mdns.c:
15633         (howl_strerror): New function to report errors from Howl
15634         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15635         (get_sw_discovery), (get_avahi_client): Better error reporting from
15636         Howl & Avahi.
15638         * sources/rb-daap-source.:
15639         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15640         not get started or stopped in some situations.
15641         
15642 2005-09-12  James Livingston  <jrl@ids.org.au>
15644         * shell/rb-removable-media-manager.c: add a missing include, that
15645         would stop compilation if ipod support wasn't turned on
15647 2005-09-11  James Livingston  <jrl@ids.org.au>
15649         * daapsharing/rb-daap-dialog.c: (encode_base64),
15650         (rb_daap_password_dialog_new_run),
15651         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15652         it is no broken in to two pieces, and remove a use of a goto
15653         
15654         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15655         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15656         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15657         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15658         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15659         memory leaks, and some code style things.
15660         
15661         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15662         (rb_daap_share_init), (rb_daap_share_set_property),
15663         (rb_daap_share_dispose), (rb_daap_share_new),
15664         (rb_daap_share_get_property): make the DB and the playlist manager
15665         gobject properties.
15666         
15667         (message_add_standard_headers),
15668         (message_set_from_rb_daap_structure), (server_info_cb),
15669         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15670         (server_cb), (add_db_entry), (db_entry_added_cb),
15671         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15672         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15673         style and use CONF_PREFIX in the gconf keys
15674         
15675         * daapsharing/rb-daap-sharing.c: (create_share),
15676         (enable_sharing_changed_cb), (share_name_changed_cb),
15677         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15678         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15679         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15680         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15681         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15682         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15683         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15684         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15685         hasn't actually changed, fix some memory leaks, code style and release
15686         gconf notifications when the object is destroyed.
15687         
15688         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15689         (rb_daap_source_class_init), (rb_daap_source_init),
15690         (rb_daap_source_dispose), (rb_daap_source_set_property),
15691         (rb_daap_source_get_property), (rb_daap_source_new),
15692         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15693         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15694         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15695         (rb_daap_source_activate), (rb_daap_source_disconnect),
15696         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15697         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15698         release gconf notifications, handle gconf callbacks where the key
15699         hasn't changed, make "real name" and "password protected" gobject
15700         properties, fix some code style and fix a memory leak.
15702 2005-09-11  James Livingston  <jrl@ids.org.au>
15704         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15706         * shell/rb-playlist-manager.c:
15707         (rb_playlist_manager_save_playlists),
15708         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15709         when we aren't supposed to. (Closes bug 315886)
15711 2005-09-11  James Livingston  <jrl@ids.org.au>
15713         * shell/rb-removable-media-manager.c:
15714         (rb_removable_media_manager_class_init),
15715         (rb_removable_media_manager_init),
15716         (rb_removable_media_manager_dispose),
15717         (rb_removable_media_manager_set_property),
15718         (rb_removable_media_manager_get_property),
15719         (rb_removable_media_manager_new),
15720         (rb_removable_media_manager_load_media),
15721         (rb_removable_media_manager_volume_mounted_cb),
15722         (rb_removable_media_manager_volume_unmounted_cb),
15723         (rb_removable_media_manager_mount_volume),
15724         (rb_removable_media_manager_unmount_volume),
15725         (rb_removable_media_manager_source_deleted_cb),
15726         (rb_removable_media_manager_append_media_source),
15727         (rb_removable_media_manager_set_uimanager),
15728         (rb_removable_media_manager_eject_medium_cb),
15729         (rb_removable_media_manager_cmd_eject_medium):
15730         * shell/rb-removable-media-manager.h:
15731         * sources/rb-removable-media-source.c:
15732         (rb_removable_media_source_class_init),
15733         (rb_removable_media_source_init),
15734         (rb_removable_media_source_dispose),
15735         (rb_removable_media_source_set_property),
15736         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15737         (impl_delete_thyself):
15738         * sources/rb-removable-media-source.h: Add the four files that I
15739         somehow managed not to add to cvs in the last commit. Oops.
15741 2005-09-11  James Livingston  <jrl@ids.org.au>
15743         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15744         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15745         
15746         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15747         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15748         removable-media-manager on startup, and handle creation of sources.
15749         
15750         * sources/rb-ipod-source.h:
15751         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15752         (rb_ipod_source_init), (rb_ipod_source_constructor),
15753         (rb_ipod_source_dispose), (rb_ipod_source_new),
15754         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15755         the iPod source over to the removable media framework.
15756         
15757         * sources/rb-library-source.c: (paned_size_allocate_cb),
15758         (rb_library_source_get_paned_key): fix a potential bug is a
15759         library-derived source doesn't have a paned-key
15761 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15763         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15764         mp3 when we can't get the suffix of a file (Closes: #315941)
15766 2005-09-10  James Livingston  <jrl@ids.org.au>
15768         * configure.ac: fix the mdns tests, so that it doesn't complain about
15769         not finding one, if daap support isn't being compiled in
15771 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15773         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15775         * daapsharing/rb-daap-dialog.c:
15776         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15777         HIG compliancy & images.
15779         * daapsharing/rb-daap-mdns.c:
15780         (browse_cb), (resolve_cb): Better detection of local services.  
15781         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15782         Howl's limitations.  Fix the way collision handling is done under
15783         Avahi.
15785         * daapsharing/rb-daap-share.c:
15786         (publish_cb): Better name collision handling (at least for Avahi).
15788 2005-09-10  James Livingston  <jrl@ids.org.au>
15790         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15791         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15792         preferences more HIG compliant (Closes #315889)
15793         
15794         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15795         list of files to be translated
15797 2005-09-10  James Livingston  <jrl@ids.org.au>
15799         * configure.ac: fix it so that --enable-daap=no works
15800         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15801         uninstalled
15803 2005-09-10  James Livingston  <jrl@ids.org.au>
15805         Patch from Christophe Fergeau <teuf@gnome.org>
15807         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15808         the ipod code.
15810 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15811         * README.daap: Updating documentation
15813 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15814         * AUTHORS: Added myself.
15816         * daapsharing/rb-daap-connection.c:
15817         (connection_login), (rb_connection_new): Reorganized password
15818         handling.
15820         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15822         * shell/rb-shell.c:
15823         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15825         * sources/rb-daap-source.c:
15826         (rb_daap_source_activate): Better error handling when we are unable to
15827         connect.
15828         
15829 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15830         * README.daap: Fixed some terminology.
15832         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15833         New --with-mdns=auto|howl|avahi flag to specify.
15835         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15836         name collision dialogs.
15838         * daapsharing/rb-daap-connection.c:
15839         (connection_get_password), (build_message), (http_get)
15840         (connection_login): Ask for & use a password if the share demands it.
15842         * daapsharing/rb-daap-connection.h: Changed prototype of
15843         rb_daap_connection_new.
15844         
15845         * daapsharing/rb-daap-mdns.c: 
15846         (resolve_cb): Better detection of your own music share so it doesn't 
15847         appear in the sourcelist.
15849         * daapsharing/rb-daap-share.c:
15850         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15851         that start on any available port.
15853         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15855         * sources/rb-daap-source.c:
15856         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15857         (browse_cb): Handle passworded shares. Resolve the host immediately
15858         instead of when activated.
15859         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15860         (rb_daap_source_new): New GConf keys for UI state.
15861         (rb_daap_source_activate): Use RBPlaylistSource instead of
15862         RBDAAPPlaylistSource
15863         
15864         * sources/rb-daap-playlist-source.c/h: Removed
15866         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15867         if the playlist is local (i.e. not DAAP or iPod).
15868         
15869         * shell/rb-playlist-manager.c:
15870         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15871         wouldn't get saved if the last playlist hadn't changed.  Only save
15872         local playlists.
15873         
15874 2005-09-09  James Livingston  <jrl@ids.org.au>
15876         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15877         iPod preferences pane, as it already uses the browser views as the
15878         library.
15880 2005-09-09  James Livingston  <jrl@ids.org.au>
15882         * sources/rb-library-source.c: (rb_library_source_finalize),
15883         (rb_library_source_constructor): fix gconf monitoring of library
15884         preference keys.
15885         * sources/rb-library-source.h: remove declaration of function that
15886         does not exist
15888 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15890         * player/rb-player-gst.c:
15891         (rb_player_set_time): Fix seeking in daap streams.
15893 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15895         * data/rhythmbox.schemas: Turn music share browsing on by default.
15897 2005-09-07  James Livingston  <jrl@ids.org.au>
15899         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15901 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15902         * player/rb-player-gst.c: 
15903         (rb_player_get_time): Fix for extra << & == that accidentally made
15904         it in.
15906         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15907         
15908 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15909         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15910         it in last time.  Sorry.
15912 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15913         
15914         * player/rb-player-gst.c:
15915         (rb_player_get_time): Fix a small crash appearing when
15916         the uri isn't set in the player, but rb_player_get_time() is
15917         still called.
15919         * configure.ac: Also check for libsoup 2.4, which is what ships with
15920         Gnome 2.12.
15922         * po/POTFILES.in: Added music sharing files that have translatable 
15923         strings.
15925         * README.daap: New file explaining "How Music Sharing Works"  
15927 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15929         * daapsharing/.cvsignore: added
15931 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15933         * daapsharing/*: Music sharing library.
15934         
15935         * sources/rb-daap-source.c/h: Music share RBSource.
15936         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15938         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15939         libsoup and a mutlicast DNS implementation (howl or avahi).
15941         * data/rhythmbox.schemas: New GConf keys for music sharing.
15943         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15944         source right click menu.
15946         * player/rb-player-gst.c: Changes to properly play & seek in remote
15947         music share files.
15949         * shell/rb-playlist-manager.c/h:
15950         (rb_playlist_manager_get_playlists): New function to get a GList * of
15951         the playlists.
15952         (rb_playlist_manager_save_playlists): Don't save music share playlists
15953         and fixed a GObject reference leak.
15955         * shell/rb-shell.c/h:
15956         (rb_shell_append_source): No longer a local function.  Now takes a
15957         parent RBSource * argument, NULL to append a toplevel source.
15958         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15959         source (useful for disconnecting from remote music share,
15960         specifically).
15961         (rb_shell_quit): Stop music sharing/browsing.
15962         (rb_shell_playlist_added_cb): Work with tree source structure.
15963         (rb_shell_get_property): "playlist-manager" property accessor.
15964         (rb_shell_class_init): New "playlist-manager" property.
15965         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15966         daap sharing/browsing.
15967         (rb_shell_select_source): Notify source of activation/deactivation.
15969         * shell/rb-shell-prefernces.c: Music sharing preferences.
15971         * sources/rb-source.c/h: New activate, deactivate and disconnect
15972         class functions.  Activate & deactivate are notification style 
15973         functions that will tell a source when it is selected/unselected.
15974         Disconnect can be hooked up to a UI object to disconnect the source.
15976         * sources/rb-sourcelist-model.c:
15977         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15978         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15979         append a toplevel source.
15981 2005-09-05  James Livingston  <jrl@ids.org.au>
15983         * rhythmdb/rhythmdb-query-model.c:
15984         (rhythmdb_query_model_entry_changed_cb),
15985         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15986         the duration of filesize of an entry changes.  Emit the row-changed
15987         signals that I forgot to put back in, when I was doing query sorting.
15989         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15990         out "0 minutes" or "0 bytes".
15992 2005-09-04  James Livingston  <jrl@ids.org.au>
15994         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15995         remove a leftover bit of the "internal-name" property of sources.
15997 2005-09-03  James Livingston  <jrl@ids.org.au>
15999         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
16000         extraneous debug message
16001         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
16002         crasher would affect any library-derived sources (which was also a
16003         memory leak).
16005 2005-09-02  Colin Walters  <walters@verbum.org>
16007         * configure.ac: Fix sytnax error.
16009         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
16010         code to disable minimization icons - need to figure out
16011         why it doesn't work...
16013 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
16015         * data/glade/song-info-multiple.glade:
16016         * data/glade/song-info.glade:
16017         * widgets/rb-song-info.c: (rb_song_info_constructor):
16018         Add a mnemonic to the newly added "Automatically rate" label
16019         in the properties dialog and use a bold typeface like all the 
16020         other labels in the dialog. (Closes bug 315089)
16022 2005-09-03  James Livingston  <jrl@ids.org.au>
16024         * sources/rb-library-source.c: (rb_library_source_class_init),
16025         (rb_library_source_finalize), (rb_library_source_constructor),
16026         (rb_library_source_set_property), (rb_library_source_get_property),
16027         (impl_get_paned_key), (paned_size_allocate_cb),
16028         (rb_library_source_state_prefs_sync), (impl_show_popup),
16029         (rb_library_source_get_paned_key):
16030         * sources/rb-library-source.h: Allow sources derived from
16031         RBLibrarySource to use different gconf keys for sort order, browser
16032         visibility and browser pane position. Fix a crasher if a derived
16033         source overrides _get_pixbuf.
16035 2005-09-02  Colin Walters  <walters@verbum.org>
16037         * shell/rb-shell.c (rb_shell_set_visibility): Move
16038         hint setting which seems to avoid races more.
16039         
16040 2005-09-03  James Livingston  <jrl@ids.org.au>
16042         * shell/rb-shell.c: fix compilation with iPod support enabled
16043         
16044 2005-09-02  Colin Walters  <walters@verbum.org>
16046         * shell/rb-shell.c (struct RBShellPrivate): Add
16047         idle_hide_mainwindow_id.
16048         (rb_shell_constructor): Move taskbar skipping hint into
16049         rb_shell_set_visibility.
16050         (idle_hide_mainwindow): New function.
16051         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
16052         racy hack to avoid rb appearing in taskbar when minimized.
16054 2005-09-01  Colin Walters  <walters@verbum.org>
16056         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
16058         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
16059         from gtkstatusicion.c.
16061         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
16063         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
16064         TrayShowWindow entry.
16065         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
16066         (rb_tray_icon_constructor): Create action group here.
16067         (rb_tray_icon_finalize): Destroy action group.
16068         (rb_tray_icon_set_property): Don't take an action group.
16069         (rb_tray_icon_new): Ditto.
16070         (tray_popup_position_menu): Some mostly boilerplate code
16071         to position menu.
16072         (rb_tray_icon_button_press_event_cb): Position menu.
16073         (rb_tray_icon_get_geom): New function used for the shell
16074         to set minimization hints.
16076         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
16078         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
16079         (struct RBShellPrivate): Change visible to iconified.
16080         (set_icon_geometry): New function from Søren Sandmann to
16081         tell Metacity where to draw the minimization animiation.
16082         (rb_shell_window_state_cb): Update iconified.
16083         (rb_shell_get_visibility): New function to say whether
16084         or not we're currently visible.
16085         (rb_shell_set_visibility): Update to minimize to
16086         tray or present as appropriate.
16087         (rb_shell_window_delete_cb): On window close, just
16088         minimize to tray if we're deleted.
16089         (rb_shell_set_window_title): Kill old notification code.
16090         (rb_shell_toggle_visibility): Nwe function.
16091         (rb_shell_cmd_toggle_visibility): Call it.
16092         (rb_shell_constructor): Skip the taskbar.
16093         (tray_destroy_cb): Better debugging.
16094         
16095 2005-09-01  Colin Walters  <walters@verbum.org>
16097         * data/ui/rhythmbox-ui.xml: Add MusicClose.
16099         * configure.ac: Enable bonobo by default.
16100         
16101 2005-09-01  Colin Walters  <walters@verbum.org>
16103         * configure.ac: Default to old art.  Add macros subdir.
16105         * Makefile.am (SUBDIRS): Add macros.
16107         * macros/Makefile.am: New.
16108         
16109 2005-09-01  Colin Walters  <walters@verbum.org>
16111         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
16112         rb-shell-player.xml.
16114         * remote/dbus/rb-remote-dbus.h: Deleted.
16115         
16116         * remote/dbus/Makefile.am: Delete all the junk, just dist
16117         rb-print-playing.py and rb-set-rating.py.
16119         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
16121         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
16123 2005-09-02  James Livingston  <jrl@ids.org.au>
16125         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
16126         file from cvs
16128         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
16129         (rb_shell_constructor): Patches from Jonathan Matthew
16130         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
16131         a crash when using "browse this artist".
16133 2005-08-31  Colin Walters  <walters@verbum.org>
16135         * configure.ac: Add --with-old-art configure switch.  Also
16136         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
16137         but it doesn't work.
16139         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
16140         Don't use eel_create_colorized_pixbuf for new art.
16141         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
16143         * data/art-clearlooks: New artwork.
16144         
16145 2005-08-31  Colin Walters  <walters@verbum.org>
16147         * shell/main.c (main): Fix Bastien's commit to continue to focus
16148         the window with GTK+ 2.8 at least.
16149         
16150 2005-08-31  Colin Walters  <walters@verbum.org>
16152         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
16153         is already loaded.
16155         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
16157 2005-08-31  Bastien Nocera  <hadess@hadess.net>
16159         * README: remove mentions of the xine-lib backend
16160         * shell/main.c: (main): make it compilable with gtk+ < 2.8
16162 2005-08-30  Colin Walters  <walters@verbum.org>
16164         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
16165         Make non-visible sources insensitive.
16166         
16167 2005-08-30  Colin Walters  <walters@verbum.org>
16169         * shell/rb-shell.c: Don't use GConf for selected source; it's
16170         confusing to have the selected source change after startup,
16171         and since we don't save other things it's not worth saving this.
16173         * sources/rb-playlist-source.c:
16174         * sources/rb-library-source.c:
16175         * sources/rb-iradio-source.c:
16176         * sources/rb-ipod-source.c: Delete internal-name property usage.
16177         * sources/rb-source.c: Delete internal-name property.
16179         * data/rhythmbox.schemas: Delete selected_source.
16180         
16181 2005-08-30  Colin Walters  <walters@verbum.org>
16183         * sources/rb-sourcelist.c: Make playing source bold instead of
16184         displaying a pixbuf; it's much less ugly.
16185         
16186 2005-08-30  Colin Walters  <walters@verbum.org>
16188         * sources/rb-source.c:
16189         * sources/rb-source.h: New virtual method try_playlist.
16191         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
16192         impl_try_playlist.
16193         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
16194         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
16195         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
16196         need to.
16197         (stations_view_drag_data_received_cb): Don't check for iradio uris;
16198         in theory we should though...
16200         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
16201         list in rb_shell_construct now.
16202         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
16203         RBiPodSource.
16204         (rb_shell_constructor): Create library, iradio, ipod here.
16205         (rb_shell_source_deleted_cb): Use source directly instead of
16206         indirecting through type.
16207         (rb_shell_sync_selected_source): Ditto.
16208         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
16209         from the type instead of special-casing.
16210         (rb_shell_guess_type_for_uri) 
16211         (rb_shell_add_uri)
16212         (handle_one_uri_with_possible_metadata): New functions.
16213         (rb_shell_load_uri): Refactor to allow loading playlists again,
16214         also use other URI infrastructure.
16216         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
16217         (rb_shell_player_error): Always set entry error on error, instead
16218         of depending on EOF behavior.
16220         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
16221         to just invoke rb_shell_add_uri.
16222         (rb_playlist_manager_parse_file): Return error instead of tossing
16223         up dialog box directly.
16224         (load_playlist_response_cb): Display error here.
16225         (add_uri_to_playlist): Delete.
16226         (handle_playlist_entry_into_playlist_cb): Renamed to
16227         handle_playlist_entry_cb.
16229         * shell/rb-playlist-manager.h: Add error, update prototype.
16231         * lib/rb-file-helpers.c:
16232         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16234 2005-08-29  Colin Walters  <walters@verbum.org>
16236         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16237         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16239         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16240         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16241         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16243         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16244         Prototype rb_shell_set_song_property.
16246         * shell/rb-shell.xml: Export setSongProperty.
16248         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16249         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16250         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16252         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16253         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16254         want to notify of the change.
16255         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16257         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16258         logic error; idle functions would be enqueued for each set.
16259         (rhythmdb_entry_set): Fix assertion logic error.
16261         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16262         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16263         Return if the entry already exists.
16264         
16265 2005-08-29  Colin Walters  <walters@verbum.org>
16267         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16268         "inserted" member which we use to keep track of
16269         whether or not an entry is in the DB.  Prototype
16270         rhythmdb_entry_set_uninserted.
16272         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16273         flag.
16274         (rhythmdb_entry_insert): Assert entry is not already inserted.
16275         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16276         just after creating entry.
16277         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16278         (rhythmdb_entry_set_nonotify): Ditto.
16279         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16280         entries.
16281         (rhythmdb_entry_set_internal): Change notify flag to
16282         notify_if_inserted.  Also move notification after assertions.
16284         Update all existing callers of rhythmdb_entry_set_internal
16285         to give TRUE for notify_if_inserted; this should be what
16286         we want but may be an efficiency hit.
16287         
16288 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16290         * shell/rb-shell-player.c: (rb_shell_player_init),
16291         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16292         (rb_shell_player_set_playing_source_internal),
16293         (rb_shell_player_sync_with_selected_source): Notify the player when an
16294         entry has updated the title, album or artist field, and resync the big
16295         display.
16296         
16297         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16298         * sources/rb-library-source.c: (rb_library_source_class_init),
16299         (impl_get_config_widget):
16300         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16301         * sources/rb-source.c:
16302         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16303         get_album functions in rb-source and adapted other sources accordingly.
16304         
16305 2005-08-29  Colin Walters  <walters@verbum.org>
16307         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16308         signal_change member.
16309         (threadsafe_entry_set): New function.
16310         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16311         (rhythmdb_entry_set_nonotify): New function; just call
16312         threadsafe_entry_set with FALSE.
16313         (rhythmdb_entry_set_internal): Take a notify flag; if true
16314         add the change to our pending set.
16316         Also update all internal callers of rhythmdb_entry_set_internal
16317         to pass FALSE.  Some of these may be bugs however and need to
16318         pass TRUE...
16320         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16321         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16322         rhythmdb_entry_set_nonotify.
16324         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16325         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16327         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16329         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16330         * sources/rb-source.c (rb_source_update_play_statistics): 
16331         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16332         * sources/rb-ipod-source.c (entry_set_string_prop) 
16333         (load_ipod_db_idle_cb): 
16334         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16335         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16336         (info_available_cb): 
16337         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16338         (rb_station_properties_dialog_sync_entries): 
16339         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16341         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16342         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16343         
16344 2005-08-29  Colin Walters  <walters@verbum.org>
16346         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16348         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16349         linking insanity.
16351         * widgets/rb-header.c (sanitize_string): New function, extracted
16352         from old info_url.  Be sure to always strip the string.
16353         (info_url): Rewrite to take artist/album, and generate a sane
16354         URL for them from last.fm, which is better than allmusic.com in
16355         that they support Rhythmbox, and have a *SANE* URL scheme.
16356         (artist_info_url, album_info_url): Delete.
16357         (rb_header_sync): Use info_url.
16359 2005-08-29  James Livingston  <jrl@ids.org.au>
16361         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16362         is implemented before calling it. Many sources don't implement the
16363         method.
16365 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16367         * data/glade/create-playlist.glade:  Cleanup the layout,
16368         and add a few more mnemonics.
16369         * shell/rb-playlist-manager.c:
16370         (rb_playlist_manager_cmd_load_playlist),
16371         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16372         capitalization for window titles.
16373         * widgets/rb-query-creator-properties.c: Add mnemonics
16374         to checkbutton labels.
16375         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16376         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16378 2005-08-28  Colin Walters  <walters@verbum.org>
16380         * data/rhythmbox.schemas: Delete search_text for library
16381         and iradio; this isn't a persistent value anymore.
16382         Closes #313757.
16383         
16384         * sources/rb-source.h:
16385         * sources/rb-source.c: Delete impl_can_search.
16387         * sources/rb-iradio-source.c: Delete search_text usage.
16388         * sources/rb-library-source.c: Ditto.
16390         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16391         search when source is set, and just do rb_source_search in
16392         rb_source_header_search_cb.
16394         * shell/rb-shell.c (rb_shell_append_source): Don't
16395         initiate search.
16397         * shell/Makefile.am: Don't dist dashboard.c.
16399 2005-08-28  Colin Walters  <walters@verbum.org>
16401         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16402         
16403 2005-08-28  Colin Walters  <walters@verbum.org>
16405         * data/org.gnome.Rhythmbox.service.in: New.
16407         * data/Makefile.am: Install service file.
16409         * configure.ac: Define DBUS_SERVICES_DIR.
16411         * autogen.sh: Set ACLOCAL_FLAGS.
16413         * macros/acinclude.m4: New.
16414         
16415 2005-08-28  Colin Walters  <walters@verbum.org>
16417         Initial patch from Jonathan Matthew; closes 313684.
16419         * rhythmdb/rhythmdb-tree.c:
16420         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16421         (save_entry): Return on error.
16422         (rhythmdb_tree_save): Handle error when saving the
16423         db; additionally, handle errors from fclose and unlink,
16424         and print error too.
16426 2005-08-28  Colin Walters  <walters@verbum.org>
16428         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16429         extra _.
16430         
16431 2005-08-28  Colin Walters  <walters@verbum.org>
16433         * configure.ac: Change iPod support to --with-ipod;
16434           automatically enable it if we have HAL.  Try to
16435           support both HAL 0.5 and HAL 0.2.  Break out
16436           totem-plparser into its own check so later we
16437           can do version tests there too.
16438           Kill dashboard support.
16439         
16440         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16441         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16442         Closes #310017.
16443         
16444         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16445         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16447         * sources/Makefile.am: Also handle
16448         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16450         * shell/dashboard.c: Delete; someone should just write a little
16451         python shim which lists on the D-BUS interface and writes the
16452         stuff to Dashboard.  Even better Dashboard should be ported
16453         to D-BUS and do the listening itself, perhaps on an abstract
16454         "org.gnome.MusicPlayer" interface or something.
16456         * shell/rb-shell.c: Kill dashboard support.
16458 2005-08-28  Colin Walters  <walters@verbum.org>
16460         * remote/dbus/rb-print-playing.py: New file.
16462 2005-08-28  Colin Walters  <walters@verbum.org>
16464         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16465         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16467         * shell/rb-shell-player.h:
16468         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16469         * shell/rb-shell-player.xml: Export it.
16471         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16472         (rb_shell_error_quark): New.
16474         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16475         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16476         
16477 2005-08-28  Colin Walters  <walters@verbum.org>
16479         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16480         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16481         bonobo_unlock.
16482         (rb_remote_bonobo_preinit): Lock setting moved here.
16483         (rb_remote_bonobo_init): From here.
16485         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16486         Also invoke handle_cmdline in the right place.
16487         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16488         GFunc.
16490 2005-08-28  James Livingston  <jrl@ids.org.au>
16492         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16493         when 0.9.1 comes around.
16495 2005-08-28  James Livingston  <jrl@ids.org.au>
16497         * iradio/rb-new-station-dialog.c:
16498         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16499         bug 314477.
16501 2005-08-28  James Livingston  <jrl@ids.org.au>
16503         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16505         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16506         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16507         is a song is longer than 60 minutes. Closes bug 313311.
16509 2005-08-27  James Livingston  <jrl@ids.org.au>
16511         * data/glade/create-playlist.glade:
16512         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16513         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16514         "minutes" as an option in the playlist limit menu.
16516         * rhythmdb/rhythmdb-query-model.c:
16517         (rhythmdb_query_model_class_init),
16518         (rhythmdb_query_model_set_property),
16519         (rhythmdb_query_model_get_property),
16520         (rhythmdb_query_model_update_limited_entries): Allow query models to
16521         have a time limit
16522         
16523         * shell/rb-playlist-manager.c:
16524         (rb_playlist_manager_set_automatic_playlist),
16525         (rb_playlist_manager_cmd_edit_automatic_playlist):
16526         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16527         (rb_playlist_source_get_query), (impl_receive_drag),
16528         (rb_playlist_source_new_from_xml),
16529         (rb_playlist_source_save_to_xml),
16530         (rb_playlist_source_songs_sort_order_changed_cb),
16531         (rb_playlist_source_do_query):
16532         * sources/rb-playlist-source.h:
16533         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16535 2005-08-27  James Livingston  <jrl@ids.org.au>
16537         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16539         * configure.ac:
16540         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16541         non-standard location. Closes bug 314640.
16543 2005-08-26  Colin Walters  <walters@verbum.org>
16544         
16545         Patch from Olivier Blin <oblin@mandriva.com>
16547         * widgets/eggnotificationbubble.c (draw_bubble): 
16548         Handle extreme-left case as well.
16549         
16550 2005-08-26  Colin Walters  <walters@verbum.org>
16552         * shell/rb-shell.c (idle_save_state): Don't do this.
16553         (rb_shell_construct): Remove idle calls to idle_save_state.
16554         We should save the playlists automatically when they're
16555         modified.
16556         (rb_shell_load_uri): Don't try to re-stat entry if it already
16557         exists.
16559         * shell/rb-shell-player.c: Keep track of entry we are attempting
16560         to play.
16561         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16562         Don't double-free error.
16563         (rb_shell_player_play_entry): Signal errors.
16564         (rb_shell_player_entry_activated_cb): Ditto.
16565         (rb_shell_player_property_row_activated_cb): Ditto.
16566         (rb_shell_player_set_playing_source_internal): Unset attempted
16567         playing entry.
16568         (rb_shell_player_error): Refactor to be usable both sync and
16569         async.  Handle case where displayed entry differs from entry.
16570         (error_cb): Move GDK locking here.
16572         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16573         people can just use dbus-send or python.  We only support focusing
16574         and loading files.
16575         (load_uri_args): New function, extracted from handle_cmdline.
16576         (dbus_load_uri, bonobo_load_uri): New functions.
16578         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16579         appropriate.
16581         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16582         * remote/dbus/rb-remote-dbus.c: Deleted.
16584         * player/rb-player-gst.c: Clear any pending idle handlers when we
16585         close the player.  Signal errors generated during open/play etc
16586         as synchronous errors.
16588         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16589         
16590 2005-08-26  Colin Walters  <walters@verbum.org>
16592         * shell/rb-shell.c (rb_shell_present): Try harder.
16594 2005-08-26  Colin Walters  <walters@verbum.org>
16596         * shell/rb-shell.c (rb_shell_present): Try to handle
16597         GTK_MINOR_VERSION < 8.
16599 2005-08-26  James Livingston  <jrl@ids.org.au>
16601         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16602         <pbrobinson@gmail.com>
16604 2005-08-26  Colin Walters  <walters@verbum.org>
16606         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16608 2005-08-25  Colin Walters  <walters@verbum.org>
16610         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16611         Delete.
16612         (rb_shell_player_do_next_with_rating): Move back into
16613         rb_shell_player_do_next.
16614         (rb_shell_player_entry_activated_cb): Remove call to
16615         rb_shell_player_auto_adjust_rating.
16616         (do_next_idle): Just call rb_shell_player_do_next.
16618         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16620 2005-08-25  Colin Walters  <walters@verbum.org>
16622         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16623         before gtk_window_present_with_time.
16624         
16625 2005-08-25  Colin Walters  <walters@verbum.org>
16627         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16628         default.
16630         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16631         rb_shell_construct.  This is so we only have to do g_object_new.
16632         (rb_shell_get_player): New function.
16633         (rb_shell_get_player_path): Ditto.
16634         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16635         
16636         * shell/rb-shell.h: Prototype them.
16638         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16639         export over D-BUS.
16640         (reemit_playing_signal): New function.
16641         (rb_shell_player_open_playlist_location): Use return values from
16642         rb_player_open, rb_player_close, etc. instead of checking "error".
16643         Return a gboolean on failure.
16644         (rb_shell_player_open_entry): Just open entry location, don't
16645         print to stderr.
16646         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16647         a gboolean.
16648         (do_next_idle): Move logic for handling of end of playlist here.
16649         (rb_shell_player_set_playing_entry): Take a GError, return a
16650         gboolean.  Update to use gboolean return values.
16651         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16652         logic.  Signal an error on end of playlist.  Also signal error if
16653         we're not playing.  Move heuristic for replaying the song into
16654         rb_shell_player_cmd_previous.
16655         (rb_shell_player_do_next_with_rating): Signal error on end of
16656         playlist.
16657         (rb_shell_player_do_next): Return errors.
16658         (rb_shell_player_cmd_previous): Heuristic for restarting song
16659         moved here; the idea is you generally only want that from the GUI.
16660         (rb_shell_player_cmd_play): Handle error.
16661         (rb_shell_player_playpause): Signal errors.
16662         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16663         rb_shell_player_cmd_next in favor of the internal _do functions.
16664         
16665         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16666         errors.  Update prototypes for above changes.
16668         * shell/main.c: More tightly integrate D-BUS; register various
16669         major singleton objects here.  Fix handle_cmdline so we only
16670         process extra arguments, not every argument.
16672         * shell/Makefile.am: Generate D-BUS glue headers.
16674         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16675         into shell/main.c.  Now this file just acts as a client library.
16676         Not heavily tested.
16678         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16679         Moved here.
16680         (rb_remote_bonobo_init): Move long CORBA rant here along with
16681         setting of lock functions.
16683         * player/rb-player-gst.c (rb_player_construct)
16684         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16685         on error.
16687         * player/rb-player.h: Update prototypes.
16689         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16690         rb-remote-bonobo.c.
16691         (rb_threads_init): Don't set gdk lock functions here.
16693 2005-08-25  James Livingston  <jrl@ids.org.au>
16695         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16697         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16698         * lib/rb-tree-dnd.h:
16699         * rhythmdb/rhythmdb-property-model.c:
16700         (rhythmdb_property_model_class_init),
16701         (rhythmdb_property_model_drag_source_init),
16702         (rhythmdb_property_model_iter_parent),
16703         (rhythmdb_property_model_row_draggable),
16704         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16705         (rhythmdb_property_model_drag_data_get),
16706         (rhythmdb_property_model_enable_drag):
16707         * rhythmdb/rhythmdb-property-model.h:
16708         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16709         (rb_playlist_manager_set_property), (append_new_playlist_source),
16710         (rb_playlist_manager_save_playlists):
16711         * shell/rb-shell.c: (rb_shell_construct),
16712         (sourcelist_drag_received_cb):
16713         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16714         * sources/rb-playlist-source.c: (impl_receive_drag):
16715         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16716         (rb_sourcelist_model_drag_dest_init),
16717         (rb_sourcelist_model_set_dnd_targets),
16718         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16719         (rb_sourcelist_model_row_drop_position),
16720         (rb_sourcelist_model_get_drag_target),
16721         (rb_sourcelist_model_drag_data_get):
16722         * sources/rb-sourcelist-model.h:
16723         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16724         (rb_sourcelist_init), (rb_sourcelist_get_property),
16725         (rb_sourcelist_selection_changed_cb):
16726         * sources/rb-sourcelist.h:
16727         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16728         improve drag-n-drop support. Allow dragging of item from property
16729         views to the source list, to create new automatic playlists. Allow
16730         playlist re-ordering. Fix dragging from Rhythmbox to other
16731         applications. (Closes bug 147337)
16733 2005-08-24  Colin Walters  <walters@verbum.org>
16735         Patch from Olivier Blin <oblin@mandriva.com>
16737         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16738         correctly in the case where the window is next to monitor edge.
16740 2005-08-24  James Livingston  <jrl@ids.org.au>
16742         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16743         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16744         a gobject property to get the query model that backs the playlist.
16746 2005-08-24  James Livingston  <jrl@ids.org.au>
16748         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16749         (handle_playlist_entry_into_playlist_cb),
16750         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16751         audio cd" menu item when a non-playlist source is selected, or the
16752         playlist is empty. (Closes Bug 313253)
16754 2005-08-24  James Livingston  <jrl@ids.org.au>
16756         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16757         Fix the playlist length checkso it doesn't report 0 for automatic
16758         playlists. This was stopping automati playlists being burnt to cd.
16760 2005-08-24  James Livingston  <jrl@ids.org.au>
16762         * configure.ac:
16763         * sources/rb-playlist-source-recorder.c: (burn_cd):
16764         * sources/rb-playlist-source.c:
16765         (rb_playlist_source_songs_sort_order_changed_cb):
16766         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16767         more warnings that occur when compiling RPMs on Fedora.
16769 2005-08-24  James Livingston  <jrl@ids.org.au>
16771         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16772         was stopping some distros gcc version compiling.
16774 2005-08-24  James Livingston  <jrl@ids.org.au>
16776         * NEWS:
16777         * data/glade/create-playlist.glade:
16778         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16779         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16780         (rhythmdb_query_free), (rhythmdb_query_serialize),
16781         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16782         * rhythmdb/rhythmdb.h:
16783         * shell/rb-playlist-manager.c:
16784         (rb_playlist_manager_set_automatic_playlist),
16785         (rb_playlist_manager_cmd_edit_automatic_playlist):
16786         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16787         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16788         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16789         (rb_playlist_source_save_to_xml),
16790         (rb_playlist_source_songs_sort_order_changed_cb),
16791         (rb_playlist_source_do_query):
16792         * sources/rb-playlist-source.h:
16793         * widgets/Makefile.am:
16794         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16795         (rb_entry_view_set_sorting_order):
16796         * widgets/rb-query-creator-private.h:
16797         * widgets/rb-query-creator-properties.c:
16798         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16799         (stringCriteriaGetWidgetData),
16800         (escapedStringCriteriaSetWidgetData),
16801         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16802         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16803         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16804         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16805         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16806         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16807         (relativeTimeCriteriaCreateWidget),
16808         (relativeTimeCriteriaSetWidgetData),
16809         (relativeTimeCriteriaGetWidgetData):
16810         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16811         (rb_query_creator_class_init), (rb_query_creator_constructor),
16812         (rb_query_creator_dispose), (rb_query_creator_set_property),
16813         (rb_query_creator_get_property), (rb_query_creator_load_query),
16814         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16815         (get_entry_for_property), (rb_query_creator_get_query),
16816         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16817         (limit_toggled_cb), (lookup_row_by_widget),
16818         (remove_button_click_cb), (append_row),
16819         (get_property_index_from_proptype), (select_criteria_from_value),
16820         (property_option_menu_changed), (create_property_option_menu),
16821         (create_criteria_option_menu), (sort_option_menu_changed),
16822         (setup_sort_option_menu):
16823         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16824         playlists. The two most notable improvements are 1) adding more
16825         properties to the query creator, making it much easier to add more in
16826         the future, and 2) allow playlists to be sorted, from the query editor
16827         if they gave limits, and by clicking on column headers if they don't.
16829         Files added: widgets/rb-query-creator-private.h,
16830         sources/rb-query-creator-properties.c
16832 2005-08-21  James Livingston  <jrl@ids.org.au>
16834         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16835         error=NULL. This stops some crashes.
16837 2005-08-19  Colin Walters  <walters@verbum.org>
16839         Patch from Olivier Blin <oblin@mandriva.com>
16841         * widgets/eggnotificationbubble.c (force_window): Support top
16842         orientation.
16843         * widgets/eggnotificationbubble.h: Remove
16844         egg_notification_bubble_force_window from header.
16845         
16846 2005-08-18  James Livingston  <jrl@ids.org.au>
16848         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16849         with the changes since then.
16851 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16853         * shell/rb-shell-player.c: (rb_shell_player_init),
16854         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16855         (rb_shell_player_volume_widget_changed_cb):
16856         * sources/rb-iradio-source.c:
16857         * sources/rb-library-source.c:
16858         * sources/rb-playlist-source.c:
16859         * widgets/Makefile.am:
16860         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16861         (bacon_volume_button_class_init), (bacon_volume_button_init),
16862         (bacon_volume_button_dispose), (bacon_volume_button_new),
16863         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16864         (bacon_volume_button_scroll), (bacon_volume_button_press),
16865         (cb_button_timeout), (cb_button_press), (cb_button_release),
16866         (bacon_volume_release_grab), (cb_dock_press),
16867         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16868         (bacon_volume_scale_new), (bacon_volume_scale_press),
16869         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16870         * widgets/bacon-volume.h:
16871         * widgets/rb-volume.c:
16872         * widgets/rb-volume.h:
16873           Use BaconVolumeButton (#300867).
16875 2005-08-17  James Livingston  <jrl@ids.org.au>
16877         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16878         (rhythmdb_process_metadata_load): don't reset the First Seen time
16879         whenever we recheck the metadata.
16881 2005-08-17  James Livingston  <jrl@ids.org.au>
16883         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16884         temporary workaround to stop crashes when trying to burn an empty
16885         playlist. Doesn't disable the menu item which is the better solution
16886         (Bug 313253).
16888 2005-08-15  James Livingston  <jrl@ids.org.au>
16890         * shell/rb-source-header.c: (rb_source_header_init),
16891         (rb_source_header_sync_control_state),
16892         (rb_source_header_search_activate_cb):
16893         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16894         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16895         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16896         (rb_search_entry_init), (rb_search_entry_searching),
16897         (rb_search_entry_activate_cb):
16898         * widgets/rb-search-entry.h: Move focus to the entry view when user
16899         presses enter in the search box. Patch from Paolo Borelli
16900         <pborelli@katamail.com> (Closes bug 128110)
16902 2005-08-15  James Livingston  <jrl@ids.org.au>
16904         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16905         (rb_playlist_manager_new_playlist):
16906         * shell/rb-playlist-manager.h:
16907         * shell/rb-shell.c: (rb_shell_construct),
16908         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16909         the source list to be shown when a new playlist is created. (Closes
16910         bug 161935)
16912 2005-08-15  James Livingston  <jrl@ids.org.au>
16914         * widgets/rb-header.c: (rb_header_init),
16915         (rb_header_set_show_timeline): disable the seek slider, rather than
16916         hiding it, which more closely follows the HIG. (Closes bug 139102)
16918 2005-08-13  Colin Walters  <walters@verbum.org>
16920         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16921         rb_shell_hidden_notify.
16922         (rb_shell_hidden_notify): Notify if the shell is hidden.
16923         (rb_shell_set_visibility_impl): Debug goo.
16925         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16927         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16928         when the user clicks on notification.
16930         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16931         CD burn is complete.
16932         (rb_playlist_source_recorder_finalize): Unref shell.
16933         (rb_playlist_source_recorder_new): Take shell.
16935         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16936         Pass shell to RBPlaylistSourceRecorder.
16937         
16938 2005-08-13  Colin Walters  <walters@verbum.org>
16940         * lib/rb-thread.c:
16941         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16942           time to convert.
16944 2005-08-13  Colin Walters  <walters@verbum.org>
16946         * widgets/eggnotificationbubble.h:
16947         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16948         * widgets/eggtrayicon.c:
16949         * widgets/eggtrayicon.h: Add notification API.
16950         * shell/rb-tray-icon.c:
16951         * shell/rb-tray-icon.h: Add notification API.
16952         * shell/rb-shell.c: Notify on song change.
16954 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16956         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16957         Correct an inversion of two lines causing NULL to be unreffed
16959 ============ Version 0.9.0
16961 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16963         * configure.ac: 0.9.0, whee!
16964         * NEWS: badly updated
16965         * remote/bonobo/Makefile.am:
16966         * remote/bonobo/rb-remote-bonobo.h:
16967         * shell/Makefile.am:
16968         * shell/main.c: make distcheck fixes