2006-11-08 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob4a656e0116ec12b14d0976eff1b5a92c1b4b1051
1 2006-11-08  James Livingston  <doclivingston@gmail.com>
3         patch by: Jerry Tan  <jerry.tan@sun.com>
5         * data/glade/song-info.glade: set more a11y properties on the
6         label-for/labelled-by info. Fixes #368179.
8 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11         (rb_entry_view_dispose), (rb_entry_view_finalize):
12         Unref objects and remove idle handlers in dispose rather than
13         finalize.  Should fix #364783.
15 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
17         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
18         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
19         xmlCreateMemoryParserCtxt returning NULL that was previously checking
20         the wrong variable.  Really fixes #336842.
22 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
24         * plugins/iradio/Makefile.am:
25         Actually install the UI file.
27 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
29         * plugins/generic-player/rb-generic-player-source.c:
30         (rb_generic_player_source_constructor),
31         (rb_generic_player_source_dispose),
32         (rb_generic_player_source_load_playlists):
33         Don't crash if the source is destroyed before it gets a chance
34         to load playlists.
36 2006-11-06  James Livingston  <doclivingston@gmail.com>
38         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
39         * rhythmdb/rhythmdb.c: some leak fixes
41 2006-11-06  James Livingston  <doclivingston@gmail.com>
43         * bindings/python/rb.override: change the right function in the last
44         commit.
46 2006-11-06  James Livingston  <doclivingston@gmail.com>
48         * bindings/python/rb.override: unwrap the python string instead of
49         wrapping it. Oops.
51 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
53         * tests/test-utils.c: (test_rhythmdb_setup):
54         Fix build break, #371106.
56 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
58         * tests/Makefile.am:
59         * tests/test-rhythmdb-property-model.c: (_get_property_count),
60         (START_TEST), (rhythmdb_property_model_suite), (main):
61         * tests/test-rhythmdb-query-model.c: (START_TEST),
62         (rhythmdb_query_model_suite), (main):
63         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
64         * tests/test-utils.c: (start_test_case), (end_step),
65         (end_test_case), (mark_signal), (set_waiting_signal),
66         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
67         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
68         * tests/test-utils.h:
69         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
71 2006-11-04  James Livingston  <doclivingston@gmail.com>
73         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
74         we were passed a absolute path, e.g. from the plugin file find
75         function.
77 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
79         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
81         * remote/dbus/rb-client.c: (main):
82         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
83         * shell/rb-shell.h:
84         * shell/rb-shell.xml:
85         Add dbus method to request a notification for the playing song, and
86         an argument to rhythmbox-client to use it.  Fixes #359593.
88 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
90         * remote/dbus/rb-print-playing.py:
91         Revert changes I accidentally committed a while ago.
93 2006-11-03  James Livingston  <doclivingston@gmail.com>
95         * data/glade/song-info.glade: make more labels selectable, from #368641
97 2006-11-03  James Livingston  <doclivingston@gmail.com>
99         * shell/rb-shell-clipboard.c: (get_focussed_widget),
100         (rb_shell_clipboard_cmd_select_all),
101         (rb_shell_clipboard_cmd_select_none): make Select All select text in
102         the focussed widget if it's a text entry. Fixes #364590
104 2006-11-03  James Livingston  <doclivingston@gmail.com>
106         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
107         (bacon_volume_button_init), (bacon_volume_button_dispose),
108         (bacon_volume_button_new), (bacon_volume_button_realize),
109         (bacon_volume_button_press), (bacon_volume_key_release),
110         (bacon_volume_release_grab), (cb_dock_key_release),
111         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
112         (bacon_volume_theme_changed), (bacon_volume_load_icons):
113         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
114         Fixes #369491
116 2006-10-31  James Livingston  <doclivingston@gmail.com>
118         * configure.ac: remove spaces around '=' where they shouldn't be,
119         fixes building when you have libgpod 0.3.x
121 2006-10-31  James Livingston  <doclivingston@gmail.com>
123         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
125         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
126         period is 0. Fixes #351425
128 2006-10-31  James Livingston  <doclivingston@gmail.com>
130         patch by: Luca Ferretti  <elle.uca@libero.it>
132         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
133         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
134         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
135         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
136         * plugins/ipod/ipod.rb-plugin.desktop.in:
137         * plugins/iradio/iradio.rb-plugin.desktop.in:
138         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
139         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
140         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
141         of the plugins. Fixes #365326
143 2006-10-31  James Livingston  <doclivingston@gmail.com>
145         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
147 2006-10-31  James Livingston  <doclivingston@gmail.com>
149         * data/glade/song-info.glade: set the mnemonic target for the labels
150         in the details tab. Fixes #368179.
152 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
154         * configure.ac:
155         When complaining about GStreamer being too old, use the right variable
156         name for the version we want.
158 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
160         * shell/rb-shell.h:
161         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
162         * shell/rb-tray-icon.h:
163         * bindings/python/rb.defs:
164         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
165         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
166         * sources/rb-playlist-source-recorder.c: (burn_cd):
167         * sources/rb-podcast-source.c:
168         (rb_podcast_source_start_download_cb),
169         (rb_podcast_source_finish_download_cb),
170         (rb_podcast_source_feed_updates_avaliable_cb):
171         Change the various notification functions to take a parameter
172         specifying whether the notification was explicitly requested by the
173         user.  Add a function to display a notification for an entry,
174         including streaming song metadata.
176         * shell/rb-shell-player.c: (rb_shell_player_stop):
177         Emit playing-song-changed and playing-uri-changed when stopping
178         playback.
180         * sources/Makefile.am:
181         * sources/rb-streaming-source.c:
182         * sources/rb-streaming-source.h:
183         Add a base class for streaming sources, handling streaming song
184         metadata and buffering messages, emitting notifications on song
185         changes, and updating play count statistics when playback stops.
187         * plugins/audioscrobbler/Makefile.am:
188         * plugins/audioscrobbler/rb-lastfm-source.c:
189         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
190         (rb_lastfm_source_constructor), (impl_get_status),
191         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
192         (rb_lastfm_source_title_from_uri),
193         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
194         (rb_lastfm_song_changed_cb), (impl_activate):
195         * plugins/audioscrobbler/rb-lastfm-source.h:
196         * plugins/iradio/Makefile.am:
197         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
198         (rb_iradio_source_constructor), (impl_get_status),
199         (info_available_cb), (playing_source_changed_cb):
200         * sources/rb-iradio-source.h:
201         Use the new streaming source base class for iradio and last.fm
202         sources.  Fixes #364094.
204 2006-10-30  James Livingston  <doclivingston@gmail.com>
206         * podcast/rb-podcast-manager.c:
207         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
208         any downloads from it before deleting the post entry. Fixes #366567.
210 2006-10-30  James Livingston  <doclivingston@gmail.com>
212         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
213         move-to-trash, since there have been reports of people accidently
214         deleting tracks and it probably isn't a common enough operation to be
215         worth a shortcut.
217 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
219         * backends/gstreamer/rb-player-gst.c:
220         * configure.ac:
221         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
222         Fix GStreamer 0.8 build (and some typos in configure.ac).
224 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
226         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
228         * sources/rb-source.c: (rb_source_class_init),
229         (rb_source_set_property), (rb_source_get_property):
230         Add a property to RBSource for plugin-created sources to have a
231         pointer to the RBPlugin object that created them.
233         * plugins/audiocd/Makefile.am:
234         * plugins/audiocd/multiple-album.glade:
235         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
236         * sources/Makefile.am:
237         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
238         * sources/rb-audiocd-source.h:
239         If musicbrainz returns multiple albums, present the user with a
240         choice between them.  Fixes #333215.
242         * configure.ac:
243         * plugins/Makefile.am:
244         Remove unused old audio CD stuff, only build audiocd plugin if we have
245         libnautilus-burn.  Fixes #367440.
247 2006-10-30  James Livingston  <doclivingston@gmail.com>
249         patch by: Brian McKenna  <puffnfresh@gmail.com>
251         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
252         handle blocks. Fixes #366696.
254 2006-10-30  James Livingston  <doclivingston@gmail.com>
256         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
258 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
260         * shell/rb-shell-player.c: (rb_shell_player_class_init),
261         (rb_shell_player_sync_with_source),
262         (rb_shell_player_get_playing_time_string), (tick_cb):
263         * widgets/rb-header.c: (rb_header_sync_time),
264         (slider_moved_callback), (rb_header_update_elapsed),
265         (rb_header_elapsed_changed_cb):
266         Revert dbus interface breakage introduced in the fix for #365908.
268 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
270         patch by: Luca Ferretti  <elle.uca@libero.it>
272         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
273         Remove the access keys from the podcast-specific column headers.
274         Fixes #360640 again.
276 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
278         patch by: James Livingston <doclivingston@gmail.com>
280         * sources/rb-browser-source.c: (rb_browser_source_constructor):
281         Only register the search actions once.  From #346801.
283 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
285         * shell/rb-shell-player.c: (rb_shell_player_error):
286         When handling an error, try playing the next stream URL if we have
287         one, rather than stopping playback.  From #358140.
289 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
291         * shell/rb-shell.c: (handle_playlist_entry_cb):
292         Don't crash if we can't guess a source for a URI in the playlist.
293         Fixes #366261.
295 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
297         * shell/rb-shell-player.c: (rb_shell_player_class_init),
298         (rb_shell_player_sync_with_source),
299         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
300         (tick_cb):
301         * widgets/rb-header.c: (rb_header_sync_time),
302         (rb_header_elapsed_changed_cb):
303         Treat elapsed time as signed, since rb_player_get_time returns a
304         signed value.  When actually using the value, mostly treat negative
305         values as 0.  Fixes #365908.
307 2006-10-27  James Livingston  <doclivingston@gmail.com>
309         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
311         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
312         returning 0 for the year/month/day. Fixes #364837.
314 2006-10-27  James Livingston  <doclivingston@gmail.com>
316         patch by: Luca Ferretti  <elle.uca@libero.it>
318         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
319         access keys from the entry view columns headers - they cause
320         keybindings conflicts, headaches for translators and the HIG says
321         they are bad. Fixes #360640.
323 2006-10-27  James Livingston  <doclivingston@gmail.com>
325         patch by: Luca Ferretti  <elle.uca@libero.it>
327         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
328         access keys from the entry view columns headers - they cause
329         keybindings conflicts, headaches for translators and the HIG says
330         they are bad. Fixes #360640.
332 2006-10-27  James Livingston  <doclivingston@gmail.com>
334         * rhythmdb/rhythmdb-private.h:
335         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
336         issues
338 2006-10-27  James Livingston  <doclivingston@gmail.com>
340         * plugins/artdisplay/Makefile.am:
341         * plugins/audioscrobbler/Makefile.am:
342         * plugins/iradio/Makefile.am: fix make clean
344 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
346         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
347         Fall back to strtod() if g_ascii_strtod() doesn't work.
349         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
350         Write floating point values using g_ascii_dtostr() to avoid
351         problems with locale-specific representations.  From #353205.
353 2006-10-25  James Livingston  <doclivingston@gmail.com>
355         * plugins/artdisplay/Makefile.am:
356         * plugins/audioscrobbler/Makefile.am:
357         * plugins/iradio/Makefile.am: fix "make distcheck"
359 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
361         patch by: Brian Cameron <brian.cameron@sun.com>
363         * plugins/audiocd/Makefile.am:
364         Link audiocd plugin with libnautilus-burn as required to get it to work
365         on Solaris.  Fixes #363288.
367 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
369         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
371         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
372         Clarify that we don't submit actual songs to last.fm, just information
373         on what you're listening to.  Fixes #364014.
375 2006-10-24  Bastien Nocera  <hadess@hadess.net>
377         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
378         (bacon_volume_button_class_init), (bacon_volume_button_new),
379         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
380         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
381         (bacon_volume_scale_value_changed): update from libbacon, to get
382         better accessibility support (Closes: #364637)
384 2006-10-24  James Livingston  <doclivingston@gmail.com>
386         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
388         * configure.ac: fix some typos and leftovers from disabled->enabled
389         changes. Fixes #364217
391 2006-10-23  William Jon McCann  <mccann@jhu.edu>
393         * shell/rb-source-header.c (rb_source_header_init):
394         Don't require source header cells to be homogeneous.
395         Patch from #359188
397 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
399         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
400         Pause the pipeline while buffering.  Fixes #358290.
402 2006-10-23  Bastien Nocera  <hadess@hadess.net>
404         * configure.ac: update required libgpod version to avoid crashes
405         when starting up with an iPod connect (Closes: #352972)
406         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
407         (hal_udi_is_ipod): remove outdated ifdefs
409 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
411         * plugins/Makefile.am:
412         * plugins/power-manager/rb-power-manager-plugin.c:
413         Don't try to build the power-manager plugin with dbus < 0.35.
415 2006-10-22  James Livingston  <doclivingston@gmail.com>
417         patch by: Ed Catmur  <ed@catmur.co.uk>
419         * plugins/artdisplay/Makefile.am:
420         * plugins/artdisplay/artdisplay/__init__.py:
421         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
422         placeholder art when none is available, to avoid having the widget pop
423         in and out of existance.
425 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
427         * plugins/lyrics/lyrics.py:
428         Set the lyrics window transient for the main window so it can
429         actually be seen in party mode.  Fixes #362981.
431 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
433         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
434         * sources/rb-source.c: (rb_source_class_init),
435         (rb_source_can_show_properties), (rb_source_song_properties):
436         * sources/rb-source.h:
437         Only enable the 'properties' item in the 'music' menu if the selected
438         source implements the show_properties method.  Fixes #356485.
440 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
442         * shell/rb-shell-player.c:
443         (rb_shell_player_property_row_activated_cb):
444         Take the entry to play from the play order, rather than grabbing the
445         first entry in the query model.  Fixes #362042.
447 2006-10-16  James Livingston  <doclivingston@gmail.com>
449         * shell/main.c: (main): save custom menu accelerators before exiting.
450         Fixed #362300
452 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
454         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
455         I HATE adding this patch, but I'm sick of hitting Yes once
456         and hour.  Working around brain-dead podcasts.
458 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
460         * plugins/lyrics/lyrics.py:
461         Disconnect the create-song-info handler when deactivated.
462         Fixes #361882.
464 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
466         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
467         Reset the style when clearing the search text.  Fixes #361295.
469 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
471         * rhythmdb/rhythmdb-query-model.c:
472         (rhythmdb_query_model_entry_changed_cb):
473         Don't emit entry-prop-changed for hidden signals from chained query
474         models, as the model will also propagate the parent model's
475         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
477 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
479         * sources/rb-ipod-source.c: (generate_ipod_filename):
480         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
481         * lib/rb-cut-and-paste-code.h:
482         Move eel_make_valid_utf8 to lib/, make the replacement
483         character a parameter.
485         * rhythmdb/rhythmdb.c: (make_access_failed_error),
486         (rhythmdb_execute_multi_stat_info_cb),
487         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
488         When constructing an error message that includes a URI, make sure the
489         URI is valid utf-8.  Fixes #353588.
491 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
493         * player/rb-recorder-gst.c: (rb_recorder_construct),
494         (acb_wave_time):
495         Add an extra audioconvert element to allow endianness conversion on
496         big-endian machines, and fix a few endianness issues in the .wav
497         reading code.  Fixes #355611.
499 2006-10-09  James Livingston  <doclivingston@gmail.com>
501         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
503         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
504         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
505         Fixes #357553.
507 2006-10-09  James Livingston  <doclivingston@gmail.com>
509         patch by: Luca Ferretti  <elle.uca@libero.it>
511         * data/glade/song-info-multiple.glade:
512         * data/glade/song-info.glade: Fix a few HIG issues.
514 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
516         * plugins/audioscrobbler/rb-lastfm-source.c:
517         (rb_lastfm_source_class_init):
518         Return TRUE from impl_try_playlist so playback starts in a separate
519         thread.
521 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
523         * shell/main.c: (main):
524         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
525         UTF-8 GStreamer messages.  Fixes #357973.
527 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
529         * shell/rb-shell.c: (rb_shell_constructor):
530         Remove a line that accidentally slipped in from some other universe.
532 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
534         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
535         Don't remove sources from the hash table while iterating it on
536         shutdown.  Fixes #359583.
538 2006-10-07  James Livingston  <doclivingston@gmail.com>
540         patch from Alex Lancaster  <alexl@users.sourceforge.net>
542         * shell/rb-shell.c: change the keybinding for "Plugins" to not
543         conflict with others. Fixes #355904
545 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
547         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
548         (rhythmdb_query_model_chain),
549         (rhythmdb_query_model_entry_changed_cb),
550         (rhythmdb_query_model_base_entry_prop_changed),
551         (rhythmdb_query_model_base_entry_removed):
552         For chained models, propagate the parent model's entry-prop-changed
553         signal rather than emitting one from the db entry-changed handler.
554         This ensures that when the change filters the entry out of the parent
555         model, property models attached to the child model get the entry
556         change signal before the post-entry-delete signal, so they can
557         decrement the refcount for the right property value.  Fixes #359083.
559 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
561         * plugins/audioscrobbler/Makefile.am:
562         define NULL
564 2006-10-07  James Livingston  <doclivingston@gmail.com>
566         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
567         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
568         * plugins/audioscrobbler/rb-lastfm-source.c:
569         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
570         hypens in URI schemes.
572 2006-10-06  William Jon McCann  <mccann@jhu.edu>
574         * plugins/iradio/Makefile.am:
575         * plugins/audioscrobbler/Makefile.am:
576         * plugins/cd-recorder/Makefile.am:
577         Don't clean all plugin_DATA.
578         Fixes #360210
580 2006-10-06  James Livingston  <doclivingston@gmail.com>
582         patch from Matt N  <fisxoj@gmail.com>
584         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
585         (rb_player_gst_bus_cb):
586         * backends/rb-player.c: (rb_player_interface_init),
587         (_rb_player_emit_tick), (_rb_player_emit_event):
588         * backends/rb-player.h: let the backend emit named "events", for
589         things that the core shouldn't know about.
591         * rhythmdb/rhythmdb.h:
592         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
593         support for streams containing album metadata.
595         * plugins/audioscrobbler/Makefile.am:
596         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
597         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
598         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
599         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
600         * plugins/audioscrobbler/rb-lastfm-source.c:
601         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
602         of last.fm streams. From #313049.
604 2006-10-06  James Livingston  <doclivingston@gmail.com>
606         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
607         committing. Oops.
609 2006-10-06  James Livingston  <doclivingston@gmail.com>
611         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
613         * configure.ac:
614         * data/rhythmbox.schemas:
615         * plugins/Makefile.am:
616         * plugins/magnatune/Makefile.am:
617         * plugins/magnatune/magnatune-loading.glade:
618         * plugins/magnatune/magnatune-prefs.glade:
619         * plugins/magnatune/magnatune-purchase.glade:
620         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
621         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
622         * plugins/magnatune/magnatune/MagnatuneSource.py:
623         * plugins/magnatune/magnatune/TrackListHandler.py:
624         * plugins/magnatune/magnatune/__init__.py:
625         * plugins/magnatune/magnatune_circle_small.png:
626         * plugins/magnatune/magnatune_logo_color_small.png:
627         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
628         play and download tracks from the MagnaTune online music store. From
629         #345783.
631 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
633         * lib/rb-proxy-config.c: (rb_proxy_config_init),
634         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
635         (check_auto_proxy_config), (get_proxy_config):
636         Don't crash when eel_gconf_get_string returns NULL.
637         Fixes #359974.
639 2006-10-04  James Livingston  <doclivingston@gmail.com>
641         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
643         * plugins/audiocd/Makefile.am: fix the plugin when linking with
644         --as-needed. Fixes #358730
646 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
648         patch by:  William Jon McCann  <mccann@jhu.edu>
650         * sources/rb-iradio-source.c: (playing_source_changed_cb):
651         Fix some stupidity I introduced that caused crashes on shutdown.
652         Fixes #359181.
654 2006-10-02  William Jon McCann  <mccann@jhu.edu>
656         * plugins/audiocd/Makefile.am:
657         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
658         * plugins/iradio/.cvsignore:
659         * plugins/iradio/Makefile.am:
660         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
661         (impl_deactivate):
662         * plugins/power-manager/.cvsignore:
663         Install missing iradio ui file.  Don't leak ui filename.
664         Fix iradio install dir. Fix audiocd install dir.
665         Remove unused code from audio cd plugin.
667         Fixes #359170
669 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
671         * sources/rb-ipod-source.c: (impl_move_to_trash):
672         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
673         commented out while fixing bug 355235.  Oops.
675 2006-10-03  James Livingston  <doclivingston@gmail.com>
677         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
678         non-unicode warnings to debug statements, since they can occur with
679         slightly broken files.
681         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
682         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
683         iradio plugin is disabled and re-enabled.
685 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
687         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
688         (rhythmdb_entry_podcast_post_get_type):
689         * rhythmdb/rhythmdb.h:
690         * tests/bench-rhythmdb-load.c: (main):
691         Add definitions for some common extra-metadata fields,
692         remove iradio entry type definition, add the concept of entry type
693         categories, define categories for the core entry types.
694         Categories are used to decide if an entry can be copied to a removable
695         device, if it should be reported to audioscrobbler, etc.
697         * shell/Makefile.am:
698         * shell/rb-shell-player.c: (rb_shell_player_class_init),
699         (rb_shell_player_constructor), (rb_shell_player_init),
700         (rb_shell_player_get_property), (open_location_thread),
701         (rb_shell_player_open_location),
702         (rb_shell_player_sync_with_source),
703         (rb_shell_player_set_playing_source_internal), (tick_cb):
704         * shell/rb-shell.c: (construct_widgets), (construct_sources),
705         (rb_shell_player_elapsed_changed_cb):
706         Remove iradio-specific code, use extra metadata fields for streaming
707         title and artist name.
709         * data/ui/rhythmbox-ui.xml:
710         Add a placeholder for 'new ...' menu items.
712         * Makefile.am:
713         * sources/Makefile.am:
714         * configure.ac:
715         * data/rhythmbox.schemas:
716         * plugins/Makefile.am:
717         * plugins/iradio/Makefile.am:
718         * plugins/iradio/iradio-ui.xml:
719         * plugins/iradio/iradio.rb-plugin.desktop.in:
720         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
721         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
722         (rb_iradio_plugin_class_init):
723         iradio plugin, enabled and hidden by default.
725         * plugins/audioscrobbler/rb-audioscrobbler.c:
726         (rb_audioscrobbler_song_changed_cb):
727         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
728         * sources/rb-daap-source.c: (rb_daap_source_new):
729         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
730         Define entry type categories, and use them where appropriate.
732         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
733         (rb_iradio_source_constructor), (rb_iradio_source_new),
734         (impl_get_status), (impl_want_uri), (buffering_cb),
735         (check_entry_type), (streaming_title_request_cb),
736         (streaming_artist_request_cb), (extra_metadata_gather_cb),
737         (info_available_cb), (playing_entry_changed_cb),
738         (playing_source_changed_cb):
739         Move streaming metadata and buffering handling here from
740         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
741         title or artist changes, and handle request and gather signals for
742         those.
744         * widgets/rb-header.c: (rb_header_class_init),
745         (rb_header_set_property), (rb_header_get_property),
746         (rb_header_new), (append_and_free), (rb_header_sync):
747         * widgets/rb-header.h:
748         Rework to use streaming artist and title extra-metadata.
749         streaming-artist overrides entry artist, and streaming-title means
750         entry title is a stream name, displayed in brackets.
752         * doc/reference/Makefile.am:
753         * doc/reference/rhythmbox.types:
754         Remove iradio stuff from gtk-doc build.
756         Fixed #347097.
758 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
760         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
762         * bindings/python/rhythmdb.defs:
763         * lib/rb-marshal.list:
764         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
765         (rhythmdb_emit_entry_deleted),
766         (rhythmdb_entry_extra_metadata_accumulator),
767         (rhythmdb_entry_request_extra_metadata),
768         (rhythmdb_emit_entry_extra_metadata_notify),
769         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
770         * rhythmdb/rhythmdb.h:
771         Add signals for dealing with transient metadata outside the set stored
772         in RhythmDBEntry:
773         - entry_extra_metadata_request returns a value for the requested
774           metadata field
775         - entry_extra_metadata_notify notifies observers of a change to an
776           extra metadata field
777         - entry_extra_metadata_gather returns the values of all extra metadata
778           fields
780         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
781         (rb_shell_player_extra_metadata_cb):
782         Sync the display on extra metadata changes and emit dbus signals when
783         we can marshal the value.
785         * shell/rb-shell.c: (rb_shell_get_song_properties):
786         Implement rb_shell_song_get_properties using
787         rhythmdb_entry_gather_metadata.
789         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
790         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
791         * configure.ac:
792         Add GValue marshaller for python (until bug 351072 is fixed)
794         From #345592.
796 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
798         * configure.ac:
799         * data/rhythmbox.schemas:
800         * plugins/Makefile.am:
801         * plugins/power-manager/Makefile.am:
802         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
803         * plugins/power-manager/rb-power-manager-plugin.c:
804         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
805         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
806         (playing_changed_cb), (impl_activate), (impl_deactivate):
807         gnome-power-manager integration: inhibit suspend while playing.
808         Fixes #344979.
810 2006-10-02  James Livingston  <doclivingston@gmail.com>
812         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
813         and Alex Lancaster  <alexl@users.sourceforge.net>
815         * help/C/rhythmbox.xml: fix some mispellings and grammer.
816         Fixes #353143, #353146 and #353147.
818 ============ Version 0.9.6
820 2006-10-01  James Livingston  <doclivingston@gmail.com>
822         * configure.ac: bump version to 0.9.6. enable tag-writing and
823         ipod-writing by default
825         * NEWS: update NEWS
827 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
829         patch by:  William Jon McCann  <mccann@jhu.edu>
831         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
832         Use a local GError in case no error pointer pointer is passed in.
833         From bug #358396.
835 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
838         Don't reference members of freed structures.
840 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
842         patch by:  William Jon McCann  <mccann@jhu.edu>
844         * player/rb-recorder-gst.c: (rb_recorder_burn):
845         Drop GDK lock before entering n-c-b.  Fixes #353894?
847 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
849         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
850         (impl_activate):
851         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
853 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
855         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
856         Call lirc_init before lirc_readconfig so we don't crash if the user's
857         .lircrc file has any mode sections. Fixes #357419.
859 2006-09-24  James Livingston  <doclivingston@gmail.com>
861         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
862         if we get called twice, as that can happen. Fixes #357214.
864 2006-09-24  James Livingston  <doclivingston@gmail.com>
866         * backends/rb-encoder.h: add "file access" error
868         * lib/rb-file-helpers.c: (rb_dot_dir):
869         * podcast/rb-podcast-manager.c:
870         (rb_podcast_manager_download_file_info_cb): remove directory creation
871         race condition.
873         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
874         (create_parent_dirs), (rb_encoder_gst_encode): check result of
875         directory creation. Fixes #347743
877 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
879         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
880         Strip trailing whitespace
882 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
884         * rhythmdb/Makefile.am:
885         * rhythmdb/rhythmdb-private.h:
886         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
887         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
888         * rhythmdb/rhythmdb-tree.h:
889         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
890         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
891         * rhythmdb/rhythmdb.h:
892         Rather than aborting, show an error and refuse to load the database when
893         it appears to come from the future.  From bug #350304.
895 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
897         * bindings/python/rhythmdb.override:
898         Make entry_foreach usable.
900 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
902         * sources/rb-podcast-source.c: (rb_podcast_source_init):
903         Scale the icon so it matches the rest of the sources.
904         Fixes #351410.
906 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
908         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
909         (rhythmdb_property_model_set_query_model_internal),
910         (rhythmdb_property_model_row_inserted_cb),
911         (rhythmdb_property_model_prop_changed_cb),
912         (rhythmdb_property_model_entry_removed_cb),
913         (rhythmdb_property_model_delete),
914         (rhythmdb_property_model_perform_sync):
915         Use the hash table to track hidden entries, rather than visible
916         entries.  Cuts memory usage fairly significantly.  From bug #347425.
918 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
920         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
921         Patch from Christian Becke to fix compilation with -O3, bug #355945.
923 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
925         * sources/rb-ipod-source.c: (add_rb_playlist),
926         (impl_move_to_trash), (impl_delete_thyself):
927         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
929         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
930         Make sure we don't leave the sourcelist thinking a deleted source is
931         still playing.  Fixes nothing.
933 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
935         * shell/rb-shell.c:
936         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
937         'Music->Import Folder' menu item for better icon theme coverage.
938         Fixes #354575.
940 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
942         * rhythmdb/rhythmdb-private.h:
943         * rhythmdb/rhythmdb.c: (rhythmdb_init),
944         (rhythmdb_start_action_thread), (rhythmdb_finalize),
945         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
946         (rhythmdb_load), (rhythmdb_save_async):
947         Use a limited thread pool for adding URIs to the database.
948         Fixes #352494.
950 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
952         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
953         Do something like the previous change, but for gstreamer 0.10
954         this time.  Oops.  Really fixes #349569.
956 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
958         * backends/gstreamer/rb-player-gst.c: (error_cb):
959         Ignore 'internal data flow error' messages if we've already got an
960         error for the file.  Fixes #349569.
962 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
964         * shell/rb-shell-clipboard.c:
965         (rb_shell_clipboard_playlist_deleted_cb):
966         Rebuild 'add to playlist' menu before removing actions for deleted
967         playlists, and don't unref the action, as we never had a reference on
968         it to begin with.  Fixes #354599.
970 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
972         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
973         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
974         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
976 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
978         * daapsharing/rb-daap-connection.c: (handle_playlists):
979         Reverse the list of playlists on the DAAP server so it ends up in the
980         right order.  Fixes #353926.
982 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
984         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
985         Fully process each code so the LIRC client returns to its normal state
986         when we're done.  Makes LIRC actually work properly for me.
988 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
990         patch by: Ed Catmur  <ed@catmur.co.uk>
992         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
993         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
994         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
996 2006-09-02  William Jon McCann  <mccann@jhu.edu>
998         patch by: James Livingston <doclivingston@gmail.com>
1000         * configure.ac:
1001         * data/rhythmbox.schemas:
1002         * metadata/Makefile.am:
1003         * plugins/Makefile.am:
1004         * plugins/audiocd/.cvsignore:
1005         * plugins/audiocd/Makefile.am:
1006         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1007         * plugins/audiocd/rb-audiocd-plugin.c:
1008         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1009         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1010         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1011         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1012         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1013         (rb_audiocd_plugin_playing_uri_changed_cb),
1014         (nautilus_burn_drive_get_device),
1015         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1016         (impl_activate), (_delete_cb), (impl_deactivate):
1017         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1018         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1019         * shell/main.c: (main):
1020         * shell/rb-removable-media-manager.c:
1021         (rb_removable_media_manager_finalize),
1022         (rb_removable_media_manager_load_media),
1023         (rb_removable_media_manager_mount_volume),
1024         (rb_removable_media_manager_scan):
1025         * sources/Makefile.am:
1026         * sources/rb-audiocd-source.c:
1027         * sources/rb-audiocd-source.h:
1028         Make auto CD support a plugin.
1030         Fixes #349415.
1032 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1034         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1035         Add a final rhythmdb_commit to make sure all songs from the share show
1036         up in the daap source.  Fixes #353913.
1038 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1040         * sources/rb-sourcelist-model.c:
1041         (rb_sourcelist_model_drag_data_received),
1042         (rb_sourcelist_model_row_drop_possible):
1043         Re-enable dragging of a set of tracks to the source list to create a
1044         new static playlist.  Fixes #353893.
1046 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1048         * widgets/bacon-volume.c: (cb_button_timeout):
1049         Actually drop the GDK lock, rather than returning while holding it.
1050         Fixes #353895.
1052 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1054         * plugins/generic-player/rb-generic-player-source.c:
1055         (rb_generic_player_source_constructor),
1056         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1057         (rb_generic_player_source_load_songs), (load_playlist_file),
1058         (default_load_playlists), (get_hal_context):
1059         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1060         Fixes #353483.
1062 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1064         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1065         Canonicalise URIs received from gnome-vfs file monitor.
1066         Fixes #353447.
1068 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1070         * help/C/rhythmbox.xml: unbreak help build
1071         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1072         Unbuffer the IO channel.  Fixes some weirdness for me.
1074 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1076         * help/C/rhythmbox.xml:
1077         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1078         (impl_activate), (impl_deactivate):
1079         Add 'playpause' LIRC command.
1081 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1083         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1084         (rb_source_finalize):
1085         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1086         when disconnecting generic audio players.
1088 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1090         patch by: Paolo Borelli  <pborelli@katamail.com>
1092         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1093         Fix a small leak.
1095 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1097         * backends/gstreamer/rb-player-gst.c:
1098         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1099         Don't actually disable the seek bar for non-seekable songs,
1100         because we can't reliably tell yet.
1102 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1104         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1105         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1106         (db_entry_deleted_cb), (rb_daap_share_server_start),
1107         (rb_daap_share_server_stop):
1108         * rhythmdb/rhythmdb-private.h:
1109         * rhythmdb/rhythmdb-tree.c: (save_entry):
1110         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1111         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1112         (rhythmdb_entry_get_ulong):
1113         * rhythmdb/rhythmdb.h:
1114         Give db entries a numeric ID property, replacing the daap server's
1115         entry->id map.  From #347665.
1117 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1120         * widgets/rb-header.c: (rb_header_class_init),
1121         (rb_header_set_property), (rb_header_get_property),
1122         (rb_header_set_playing_entry), (rb_header_sync),
1123         (rb_header_sync_time):
1124         * widgets/rb-header.h:
1125         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1126         insensitive when the player backend tells us we can't seek in the
1127         current song.  From #330410.
1129 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1131         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1132         Don't try to unref previous/next entries if they aren't there.
1133         Fixes #351806.
1135 2006-08-15  James Livingston  <doclivingston@gmail.com>
1137         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1138         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1139         mountpoint into a RBRefString and compare equality of those, rather
1140         than doign lots of strcmp()s.
1142         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1143         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1144         status notification as well as the visibility update in an idle
1145         callback. Makes it take much less time to update after a volume
1146         mount/unmount event.
1148 2006-08-15  James Livingston  <doclivingston@gmail.com>
1150         patch by: Christian Becke  <christianbecke@web.de>
1152         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1153         multiple selections in the Import Folder dialog. Fixes #351414.
1155 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1157         * shell/rb-shell.c: (construct_widgets):
1158         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1159         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1160         (rb_statusbar_get_property), (rb_statusbar_new):
1161         * shell/rb-statusbar.h:
1162         Use the connect-proxy signal from the UI manager, which covers all
1163         action groups, rather than just one.  Fixes #351280.
1165 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1167         * widgets/rb-library-browser.c: (rebuild_child_model):
1168         Fix query model reference counts (bug #349601).
1170 2006-08-15  James Livingston  <doclivingston@gmail.com>
1172         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1173         Error signals be non-recursive. Fixes a highly-unlikely issue that
1174         could have caused #322972.
1176 2006-08-14  James Livingston  <doclivingston@gmail.com>
1178         * sources/rb-auto-playlist-source.c:
1179         (rb_auto_playlist_source_init):
1180         * sources/rb-static-playlist-source.c:
1181         (rb_static_playlist_source_init):
1183 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1185         * sources/rb-browser-source.c:
1186         * sources/rb-import-errors-source.c:
1187         * sources/rb-iradio-source.c:
1188         * sources/rb-library-source.c:
1189         * sources/rb-missing-files-source.c:
1190         * sources/rb-play-queue-source.c:
1191         * sources/rb-playlist-source.c:
1192         * sources/rb-podcast-source.c:
1193         * sources/rb-source.c:
1194         Make entry-type a property on RBSource, rather than on most of its
1195         subclasses.  Fixes #347288.
1197 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1199         * remote/dbus/rb-client.c: (parse_pattern),
1200         (create_rb_shell_proxies), (main):
1201         Actually implement %ag and %aG (genre) for --print-playing-format
1203 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1205         * lib/rb-debug.c: (rb_debug_real):
1206         No point allocating a buffer for the timestamp when we can just put it
1207         on the stack.
1209 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1211         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1212         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1214 2006-08-11  James Livingston  <doclivingston@gmail.com>
1216         * podcast/rb-podcast-manager.c:
1217         (rb_podcast_manager_update_synctime): fix accidental commit in the
1218         last, which caused a warning.
1220 2006-08-11  James Livingston  <doclivingston@gmail.com>
1222         * data/rhythmbox.schemas:
1223         * podcast/rb-podcast-manager.c:
1224         (rb_podcast_manager_update_synctime): change the schema's
1225         update-inteval value from 0 to 1, which causes it to update on
1226         startup, rather than never. Should fixs #343818.
1228 2006-08-11  James Livingston  <doclivingston@gmail.com>
1230         * configure.ac:
1231         * data/Makefile.am:
1232         - data/rhythmbox.desktop.in:
1233         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1234         the @VERSION@ can be substituted in. Fix some issues with newer
1235         bug-buddy versions. Fixes #348853.
1237 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1239         * data/rhythmbox.schemas:
1240         * plugins/Makefile.am:
1241         * plugins/artdisplay/Makefile.am:
1242         * plugins/audioscrobbler/Makefile.am:
1243         * plugins/cd-recorder/Makefile.am:
1244         * plugins/generic-player/Makefile.am:
1245         * plugins/ipod/Makefile.am:
1246         * plugins/lirc/Makefile.am:
1247         * plugins/lyrics/Makefile.am:
1248         * plugins/pythonconsole/Makefile.am:
1249         * plugins/rb-module.c:
1250         * plugins/rb-module.h:
1251         * plugins/rb-plugin-manager.c: (configure_button_cb),
1252         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1253         (plugin_manager_populate_lists), (plugin_manager_set_active),
1254         (plugin_manager_toggle_active),
1255         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1256         (rb_plugin_manager_finalize):
1257         * plugins/rb-plugin-manager.h:
1258         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1259         (rb_plugin_find_file):
1260         * plugins/rb-plugin.h:
1261         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1262         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1263         (rb_plugins_engine_init), (rb_plugin_info_free),
1264         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1265         (rb_plugins_engine_deactivate_plugin),
1266         (rb_plugins_engine_plugin_is_active),
1267         (rb_plugins_engine_plugin_is_visible),
1268         (rb_plugins_engine_plugin_is_configurable),
1269         (rb_plugins_engine_configure_plugin),
1270         (rb_plugins_engine_get_plugin_name),
1271         (rb_plugins_engine_get_plugin_description),
1272         (rb_plugins_engine_get_plugin_authors),
1273         (rb_plugins_engine_get_plugin_website),
1274         (rb_plugins_engine_get_plugin_copyright),
1275         (rb_plugins_engine_get_plugin_icon):
1276         * plugins/rb-plugins-engine.h:
1277         * plugins/rb-python-module.c: (rb_python_module_init_python),
1278         (rb_python_module_load), (rb_python_module_unload),
1279         (rb_python_module_class_init), (rb_python_module_new),
1280         (finalise_collect_cb), (rb_python_shutdown):
1281         * plugins/rb-python-module.h:
1282         * plugins/rb-python-plugin.c: (call_python_method),
1283         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1284         (impl_is_configurable), (rb_python_object_get_type):
1285         * plugins/rb-python-plugin.h:
1286         * plugins/rb/Makefile.am:
1288         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1289         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1290         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1291         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1292         special case loading of dirs.  Install plugins to subdirectors of
1293         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1294         not DATADIR.  Fixes #350352
1296 2006-08-10  James Livingston  <doclivingston@gmail.com>
1298         * daapsharing/rb-daap-connection.c: (connection_connected),
1299         (connection_disconnected), (connection_operation_done):
1300         * daapsharing/rb-daap-share.c: (name_collision_cb):
1301         * plugins/generic-player/rb-generic-player-source.c:
1302         (rb_generic_player_source_load_playlists):
1303         * podcast/rb-podcast-manager.c:
1304         (rb_podcast_manager_download_entry),
1305         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1306         (end_job), (rb_podcast_manager_event_loop):
1307         * rhythmdb/rhythmdb-property-model.c:
1308         (rhythmdb_property_model_perform_sync):
1309         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1310         (rhythmdb_query_model_process_update), (idle_process_update),
1311         (rhythmdb_query_model_reapply_query_cb):
1312         * shell/rb-play-order.c: (sync_playing_entry_cb):
1313         * shell/rb-removable-media-manager.c:
1314         (rb_removable_media_manager_load_media):
1315         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1316         (rb_shell_clipboard_sync),
1317         (rb_shell_clipboard_entryview_changed_cb),
1318         (rb_shell_clipboard_entries_changed_cb),
1319         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1320         (rebuild_playlist_menu_idle),
1321         (rb_shell_clipboard_playlist_added_cb):
1322         * shell/rb-shell-player.c: (notify_playing_idle),
1323         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1324         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1325         (rb_shell_quit):
1326         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1327         * sources/rb-library-source.c: (add_child_sources_idle):
1328         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1329         (burn_cd_idle):
1330         * sources/rb-source.c: (update_visibility_idle):
1331         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1332         (cb_button_press):
1333         * widgets/rb-druid.c: (idle_set_sensitive):
1334         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1335         take the GDK lock when we should be, from #348588
1337 2006-08-09  James Livingston  <doclivingston@gmail.com>
1339         * rhythmdb/rhythmdb-property-model.c:
1340         (rhythmdb_property_model_get_path),
1341         (rhythmdb_property_model_get_value),
1342         (rhythmdb_property_model_iter_next): don't attempt to verify the
1343         iterator if it's the All value, since it isn't valid. Fixes a
1344         potential crasher.
1346 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1348         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1349         (rb_podcast_manager_download_file_info_cb),
1350         (rb_podcast_manager_abort_download), (download_info_free),
1351         (download_info_new):
1352         Use gnome_vfs_async_get_file_info to figure out the local filename for
1353         a podcast episode, so we get the filename from the target of any
1354         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1355         the query string, then append it later, to stop gnome-vfs from
1356         converting 'http://' to 'http:/'.  If the local filename ends with the
1357         query string, remove it.  Fixes #330766 and #321991.
1359 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1361         * sources/rb-library-source.c: (impl_want_uri):
1362         * sources/rb-static-playlist-source.c: (impl_want_uri):
1363         Treat sftp:// URIs as likely indicators of songness.
1365 2006-08-07  James Livingston  <doclivingston@gmail.com>
1367         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1368         remote tracks with GStreamer 0.10, and remember their visibility like
1369         local ones.
1371 2006-08-07  James Livingston  <doclivingston@gmail.com>
1373         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1374         apparently it's a borrowed reference. Should fix #347072.
1376 2006-08-06  James Livingston  <doclivingston@gmail.com>
1378         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1379         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1380         (rb_shuffle_play_order_get_previous),
1381         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1382         (remove_from_history), (add_randomly_to_history),
1383         (rb_shuffle_sync_history_with_query_model),
1384         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1385         (query_model_and_history_contents_match): remove the tentatative
1386         history stuff, which is from older code, like we did for -random a few
1387         weeks ago.
1389 2006-08-06  James Livingston  <doclivingston@gmail.com>
1391         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1392         (rb_queue_play_order_get_previous):
1393         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1394         (rb_random_play_order_go_next),
1395         (rb_random_play_order_get_previous), (rb_random_db_changed):
1396         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1397         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1398         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1399         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1400         (rb_shuffle_entry_removed),
1401         (query_model_and_history_contents_match):
1402         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1403         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1404         (default_has_next), (default_has_previous),
1405         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1406         various play orders, after reviewing the code. Should fix #349601.
1408 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1410         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1411         Pass the items_per_notification parameter to
1412         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1413         with some versions of python.
1415 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1417         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1418         Don't try to draw the icon if the drawable area is too small.
1419         Fixes #349838.
1421 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1423         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1425         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1427 2006-08-05  James Livingston  <doclivingston@gmail.com>
1429         * configure.ac: tell libtool not to check for C++/fortran/ etc
1430         compilers
1432         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1433         watch, to fix some gconf warnings.
1435 2006-08-04  James Livingston  <doclivingston@gmail.com>
1437         patch by: William Jon McCann  <mccann@jhu.edu>
1439         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1441 2006-08-04  James Livingston  <doclivingston@gmail.com>
1443         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1444         actually fix #349722 this time
1446 2006-08-04  James Livingston  <doclivingston@gmail.com>
1448         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1449         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1450         know about. Fixes #348571.
1452 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1454         various fixes for valgrind complaints:
1455         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1456         (init_rb_tree_dnd_data):
1457           free the associated target list, too
1458         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1459           initialize allocation.{x,y,width,height} correctly
1460         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1461         (rb_entry_view_constructor):
1462           free strings when no longer needed
1464 2006-08-03  James Livingston  <doclivingston@gmail.com>
1466         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1467         real GtkTreeModel not the filter. Fixes #349722
1469 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1471         * backends/gstreamer/rb-player-gst.c:
1472         Only use DAAP seek hacks for GStreamer 0.8 builds.
1474         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1475         (rb_daap_src_open):
1476         * daapsharing/rb-daap-src.h:
1477         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1479         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1480         (rb_daap_source_get_headers):
1481         * sources/rb-daap-source.h:
1482         Reimplement rb_daap_source_get_headers for the case where we've
1483         already got the byte offset.  Add a small hack to
1484         rb_daap_source_class_init to prevent the linker from dropping
1485         rb-daap-src.o entirely.
1487         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1489 2006-08-02  James Livingston  <doclivingston@gmail.com>
1491         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1492         (handle_song_listing), (handle_playlist_entries),
1493         (rb_daap_connection_dispose):
1494         * sources/rb-daap-source.c: (_add_location_to_playlist),
1495         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1496         for playlist URIs, not pointless duplicate strings. From #347425.
1498 2006-08-02  James Livingston  <doclivingston@gmail.com>
1500         * data/rhythmbox.schemas:
1501         * lib/rb-preferences.h:
1502         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1503         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1504         (plugin_manager_set_active), (plugin_manager_toggle_active),
1505         (plugin_manager_get_selected_plugin), (name_search_cb),
1506         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1507         (rb_plugin_manager_finalize):
1508         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1509         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1510         (rb_plugins_engine_plugin_is_visible),
1511         (rb_plugins_engine_plugin_visible_cb):
1512         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1513         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1515 2006-08-02  James Livingston  <doclivingston@gmail.com>
1517         * sources/rb-sourcelist-model.c:
1518         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1519         drop on a source. Fixes #349580.
1521 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1523         * configure.ac:
1524         * daapsharing/rb-daap-dialog.c:
1525         * daapsharing/rb-daap-dialog.h:
1526         * shell/Makefile.am:
1527         * sources/Makefile.am:
1528         * sources/rb-daap-source.c: (connection_auth_cb),
1529         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1530         Add gnome-keyring support for DAAP passwords and use
1531         gnome-password-dialog instead of our own.  
1532         Patch mostly by James Livingston.  Fixes bug #330346.
1534 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1536         * shell/rb-shell-player.c:
1537         (rb_shell_player_set_playing_source_internal),
1538         (rb_shell_player_sync_with_selected_source):
1539         Remove call to rb_source_have_url, as we never did anything with the
1540         result.
1542         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1543         * sources/rb-import-errors-source.c:
1544         (rb_import_errors_source_class_init):
1545         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1546         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1547         * sources/rb-library-source.c: (rb_library_source_class_init),
1548         (impl_want_uri), (impl_add_uri):
1549         * sources/rb-missing-files-source.c:
1550         (rb_missing_files_source_class_init):
1551         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1552         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1553         (impl_want_uri), (impl_add_uri):
1554         * sources/rb-source.c: (rb_source_class_init),
1555         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1556         * sources/rb-source.h:
1557         * sources/rb-static-playlist-source.c:
1558         (rb_static_playlist_source_class_init), (search_action_changed),
1559         (impl_want_uri):
1560         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1561         When adding a URI, want_uri gets called for each source; the one that
1562         wants it most gets the URI passed to its add_uri method.
1563         
1564         * shell/rb-shell.h:
1565         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1566         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1567         (handle_playlist_entry_cb), (rb_shell_load_uri):
1568         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1569         Use want_uri and add_uri to simplify and make generic
1570         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1572         If a source that returns TRUE from try_playlist wants all the URIs in
1573         the playlist, give it the playlist URI instead.  This retains the
1574         existing behaviour for adding iradio playlists.
1576         * bindings/python/rb.defs: Update for above changes.
1578         From bug #347097.
1580 2006-07-31  James Livingston  <doclivingston@gmail.com>
1582         * data/Makefile.am:
1583         * data/generate-keys.sh: fix the build I broke with the last commit.
1584         Oops.
1586 2006-07-31  James Livingston  <doclivingston@gmail.com>
1588         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1589         in a long time. Fixes #349179.
1591 2006-07-30  James Livingston  <doclivingston@gmail.com>
1593         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1594         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1595         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1597 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1599         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1600         Don't tell the browser the query is still pending when doing a subset
1601         search.  Fixes #348617 again.
1603 2006-07-30  James Livingston  <doclivingston@gmail.com>
1605         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1606         override definition. Fixes #348893.
1608 2006-07-30  James Livingston  <doclivingston@gmail.com>
1610         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1611         rb_error_dialog, as it's above this in the stack.
1613         * lib/rb-util.c: (rb_gvalue_compare):
1614         * lib/rb-util.h: change the return type to int, as we're returning
1615         -1/0/1
1617         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1618         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1619         (rb_query_creator_set_sorting): minor leak fixes
1621 2006-07-28  James Livingston  <doclivingston@gmail.com>
1623         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1624         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1625         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1626         (get_or_create_genre), (remove_entry_from_album),
1627         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1628         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1629         (rhythmdb_tree_entry_lookup_by_location),
1630         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1631         (rhythmdb_hash_tree_foreach),
1632         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1633         threadsafe. Fix a nasty problem if the _foreach callback function
1634         caused the addition/removal of entries.
1636 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1638         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1639         Clear selection before changing our idea of the model.  Fixes crashes
1640         on model changes while playing.
1642 2006-07-27  James Livingston  <doclivingston@gmail.com>
1644         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1645         a missing rb_refstring_unref.
1647         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1648         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1649         oops. should hopefully fix the crash reported on #347425.
1651 2006-07-27  James Livingston  <doclivingston@gmail.com>
1653         * backends/gstreamer/rb-encoder-gst.c:
1654         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1656         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1657         thread-safety issue.
1659 2006-07-27  James Livingston  <doclivingston@gmail.com>
1661         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1662         * rhythmdb/rb-refstring.h: add a new function which returns the
1663         RBRefString that matches a string, but never creates a new one.
1665         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1666         (monitor_entry_file), (rhythmdb_check_changed_file),
1667         (rhythmdb_directory_change_cb):
1668         * rhythmdb/rhythmdb-private.h:
1669         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1670         (unparent_entries), (free_unknown_entries),
1671         (rhythmdb_tree_parser_start_element),
1672         (rhythmdb_tree_parser_end_element), (save_entry),
1673         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1674         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1675         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1676         (rhythmdb_tree_entry_type_registered):
1677         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1678         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1679         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1680         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1681         (rhythmdb_process_metadata_load),
1682         (rhythmdb_process_file_created_or_modified),
1683         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1684         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1685         (action_thread_main), (rhythmdb_entry_set_internal),
1686         (rhythmdb_entry_move_to_trash_set_error),
1687         (rhythmdb_entry_move_to_trash),
1688         (rhythmdb_entry_lookup_by_location),
1689         (rhythmdb_entry_lookup_by_location_refstring),
1690         (default_sync_metadata), (rhythmdb_entry_get_string),
1691         (rhythmdb_entry_get_refstring):
1692         * rhythmdb/rhythmdb.h:
1693         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1694         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1695         (rb_playlist_source_row_deleted),
1696         (rb_playlist_source_entry_added_cb),
1697         (rb_playlist_source_location_in_map),
1698         (rb_playlist_source_add_to_map): Make the LOCATION field of
1699         RhythmDBEntry be a RBRefString instead, which reduces some of the
1700         memory-fragmentation on startup and saves RBStaticPlaylistSource
1701         duplicating all the strings.
1703 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1705         * rhythmdb/rhythmdb-query-model.c:
1706         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1707         * rhythmdb/rhythmdb-query-model.h:
1708         Add function to copy contents from one query model to another,
1709         filtered by the destination model's query.
1711         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1712         Use the above to create a new query model for subset searches, rather
1713         than filtering the existing model. Fixes #348617.
1715 2006-07-25  James Livingston  <doclivingston@gmail.com>
1717         * rhythmdb/rhythmdb-query-model.c:
1718         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1719         lost from static playlists. Yet again. Fixes #323095.
1721         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1722         case for the above, so that we should know if a change will break it
1723         again.
1725 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1727         * data/rhythmbox.schemas: Fix for last commit.
1729         * podcast/rb-podcast-manager.c:
1730         (rb_podcast_manager_download_entry),
1731         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1732         (rb_podcast_manager_db_entry_deleted_cb):
1733         * rhythmdb/rhythmdb-property-model.c:
1734         (rhythmdb_property_model_set_query_model_internal),
1735         (rhythmdb_property_model_set_property),
1736         (rhythmdb_property_model_finalize),
1737         (rhythmdb_property_model_drag_data_get):
1738         * rhythmdb/rhythmdb-query-model.c:
1739         (rhythmdb_query_model_set_query_internal),
1740         (rhythmdb_query_model_set_property),
1741         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1742         * rhythmdb/rhythmdb-query-model.h:
1743         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1744         (rb_browser_source_do_query):
1745         * sources/rb-import-errors-source.c:
1746         (rb_import_errors_source_constructor):
1747         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1748         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1749         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1750         (impl_search), (impl_get_status),
1751         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1752         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1753         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1754         * sources/rb-missing-files-source.c:
1755         (rb_missing_files_source_constructor),
1756         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1757         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1758         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1759         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1760         (rb_playlist_source_save_playlist),
1761         (rb_playlist_source_new_from_xml),
1762         (rb_playlist_source_save_to_xml),
1763         (rb_playlist_source_setup_entry_view),
1764         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1765         (rb_playlist_source_get_query_model),
1766         (rb_playlist_source_mark_dirty),
1767         (rb_playlist_source_location_in_map),
1768         (rb_playlist_source_add_to_map):
1769         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1770         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1771         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1772         (impl_delete), (rb_podcast_source_state_prefs_sync),
1773         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1774         (impl_get_config_widget), (rb_podcast_source_add_feed),
1775         (rb_podcast_source_cmd_download_post),
1776         (rb_podcast_source_cmd_cancel_download),
1777         (rb_podcast_source_cmd_delete_feed),
1778         (rb_podcast_source_cmd_update_feed),
1779         (rb_podcast_source_cmd_update_all),
1780         (rb_podcast_source_cb_interval_changed_cb),
1781         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1782         (rb_podcast_source_entry_activated_cb):
1783         * sources/rb-source.c: (rb_source_finalize),
1784         (rb_source_set_query_model_internal), (rb_source_set_property),
1785         (default_get_status):
1786         * sources/rb-static-playlist-source.c:
1787         (rb_static_playlist_source_dispose),
1788         (rb_static_playlist_source_finalize),
1789         (rb_static_playlist_source_constructor),
1790         (rb_static_playlist_source_do_query):
1791         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1792         (rb_entry_view_set_shell_player_internal),
1793         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1794         (rb_entry_view_set_model), (rb_entry_view_append_column),
1795         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1796         (rb_entry_view_set_state):
1797         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1798         (rb_library_browser_finalize), (rb_library_browser_new),
1799         (update_browser_property_visibilty), (view_selection_reset_cb),
1800         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1801         (restore_selection), (rebuild_child_model),
1802         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1803         * widgets/rb-property-view.c:
1804         (rb_property_view_set_model_internal),
1805         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1806         (rb_property_view_get_model), (rb_property_view_set_model),
1807         (rb_property_view_get_num_properties),
1808         (rb_property_view_set_selection),
1809         (rb_property_view_append_column_custom),
1810         (rb_property_view_set_search_func):
1811         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1812         From #347446
1814 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1816         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1817         Work around a small n-c-b API change.
1819 2006-07-25  James Livingston  <doclivingston@gmail.com>
1821         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1823         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1824         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1825         aborting entry-emission on finalise
1827 2006-07-25  James Livingston  <doclivingston@gmail.com>
1829         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1830         warning when entry is NULL.
1832 2006-07-25  James Livingston  <doclivingston@gmail.com>
1834         * help/sv/.cvsignore:
1835         * lib/.cvsignore:
1836         * plugins/generic-player/.cvsignore:
1837         * remote/.cvsignore:
1838         * remote/dbus/.cvsignore:
1839         * shell/.cvsignore:
1840         * tests/.cvsignore: more .cvsignore updates
1842 2006-07-24  James Livingston  <doclivingston@gmail.com>
1844         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1845         (transparent_expose_event), (make_transparent_again),
1846         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1847         apply a patch for EggTrayIcon so that it handled transparent panels
1848         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1849         Fixes #348208.
1851 2006-07-24  James Livingston  <doclivingston@gmail.com>
1853         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1854         queries rather than taking ownership when parsing a subquery. Fixed a
1855         crash exposed by the recent leak fixes.
1857         * doc/reference/tmpl/disclosure-widget.sgml:
1858         * doc/reference/tmpl/rb-debug.sgml:
1859         * doc/reference/tmpl/rb-metadata.sgml:
1860         * doc/reference/tmpl/rb-play-order.sgml:
1861         * doc/reference/tmpl/rb-playlist-manager.sgml:
1862         * doc/reference/tmpl/rb-playlist-source.sgml:
1863         * doc/reference/tmpl/rb-shell-player.sgml:
1864         * doc/reference/tmpl/rb-shell.sgml:
1865         * doc/reference/tmpl/rb-song-display-box.sgml:
1866         * doc/reference/tmpl/rhythmbox-unused.sgml:
1867         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1869 2006-07-24  James Livingston  <doclivingston@gmail.com>
1871         * lib/.cvsignore:
1872         * plugins/artdisplay/.cvsignore:
1873         * plugins/artdisplay/artdisplay/.cvsignore:
1874         * plugins/lyrics/.cvsignore:
1875         * plugins/pythonconsole/.cvsignore:
1876         * plugins/rb/.cvsignore: add/update various .cvsignore files
1878 2006-07-24  James Livingston  <doclivingston@gmail.com>
1880         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1881         (rb_refstring_ref): don't emit critical warnings when the refstring
1882         is NULL, as that happens often for podcast metadata.
1884         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1885         missing rhythmdb_entry_ref call
1887 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1889         * bindings/python/rb.override:
1890         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1891         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1892         (playlist_row_inserted_cb):
1893         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1894         * plugins/rb-plugin-manager.c:
1895         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1896         (rb_podcast_manager_copy_post),
1897         (rb_podcast_manager_db_entry_deleted_cb),
1898         (rb_podcast_manager_insert_feed):
1899         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1900         (rb_refstring_ref), (rb_refstring_get_sort_key):
1901         * rhythmdb/rhythmdb-private.h:
1902         * rhythmdb/rhythmdb-property-model.c:
1903         (rhythmdb_property_model_set_property),
1904         (rhythmdb_property_model_get_property),
1905         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1906         (rhythmdb_property_model_row_inserted_cb),
1907         (rhythmdb_property_model_prop_changed_cb),
1908         (rhythmdb_property_model_compare),
1909         (rhythmdb_property_model_insert),
1910         (rhythmdb_property_model_iter_from_string),
1911         (rhythmdb_property_model_get_column_type),
1912         (rhythmdb_property_model_get_iter),
1913         (rhythmdb_property_model_get_value),
1914         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1915         (rhythmdb_property_model_enable_drag):
1916         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1917         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1918         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1919         (rhythmdb_query_model_chain),
1920         (rhythmdb_query_model_entry_added_cb),
1921         (rhythmdb_query_model_entry_changed_cb),
1922         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1923         (rhythmdb_query_model_add_entry),
1924         (rhythmdb_query_model_insert_into_main_list),
1925         (rhythmdb_query_model_insert_into_limited_list),
1926         (rhythmdb_query_model_remove_from_main_list),
1927         (rhythmdb_query_model_remove_from_limited_list),
1928         (rhythmdb_query_model_update_limited_entries),
1929         (rhythmdb_query_model_emit_reorder),
1930         (rhythmdb_query_model_do_reorder),
1931         (rhythmdb_query_model_do_insert),
1932         (rhythmdb_query_model_move_entry),
1933         (rhythmdb_query_model_remove_entry),
1934         (rhythmdb_query_model_entry_to_iter),
1935         (rhythmdb_query_model_iter_to_entry),
1936         (rhythmdb_query_model_get_previous_from_entry),
1937         (rhythmdb_query_model_row_draggable),
1938         (rhythmdb_query_model_drag_data_delete),
1939         (rhythmdb_query_model_drag_data_get),
1940         (rhythmdb_query_model_drag_data_received),
1941         (rhythmdb_query_model_row_drop_possible),
1942         (rhythmdb_query_model_row_drop_position),
1943         (rhythmdb_query_model_add_results),
1944         (rhythmdb_query_model_query_complete),
1945         (rhythmdb_query_model_get_column_type),
1946         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1947         (rhythmdb_query_model_iter_nth_child),
1948         (apply_updated_entry_sequence),
1949         (rhythmdb_query_model_child_index_to_base_index),
1950         (rhythmdb_query_model_get_entry_index),
1951         (rhythmdb_query_model_base_row_inserted),
1952         (rhythmdb_query_model_base_row_deleted),
1953         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1954         (rhythmdb_query_model_location_sort_func),
1955         (rhythmdb_query_model_title_sort_func),
1956         (rhythmdb_query_model_album_sort_func),
1957         (rhythmdb_query_model_artist_sort_func),
1958         (rhythmdb_query_model_track_sort_func),
1959         (rhythmdb_query_model_double_ceiling_sort_func),
1960         (rhythmdb_query_model_ulong_sort_func),
1961         (rhythmdb_query_model_date_sort_func),
1962         (rhythmdb_query_model_string_sort_func),
1963         (rhythmdb_query_model_within_limit):
1964         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1965         (rhythmdb_tree_parser_start_element),
1966         (rhythmdb_tree_parser_end_element),
1967         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1968         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1969         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1970         (save_entry_uint64), (save_entry_double), (save_entry),
1971         (set_entry_album), (rhythmdb_tree_entry_new),
1972         (get_genres_hash_for_type), (get_or_create_genre),
1973         (get_or_create_artist), (get_or_create_album), (remove_child),
1974         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1975         (rhythmdb_tree_entry_delete), (remove_one_song),
1976         (rhythmdb_tree_entry_delete_by_type),
1977         (rhythmdb_tree_evaluate_query), (search_match_properties),
1978         (evaluate_conjunctive_subquery), (do_conjunction),
1979         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1980         (conjunctive_query_albums), (conjunctive_query_artists),
1981         (conjunctive_query_genre), (conjunctive_query),
1982         (split_query_by_disjunctions), (do_query_recurse),
1983         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1984         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1985         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1986         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1987         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1988         (extract_gtype_from_enum_entry),
1989         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1990         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1991         (rhythmdb_event_free), (rhythmdb_finalize),
1992         (rhythmdb_set_property), (rhythmdb_get_property),
1993         (rhythmdb_thread_create), (free_entry_changes),
1994         (emit_entry_changed), (sync_entry_changed),
1995         (process_added_entries_cb), (process_deleted_entries_cb),
1996         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1997         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1998         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1999         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2000         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2001         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2002         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2003         (rhythmdb_process_metadata_load),
2004         (rhythmdb_process_file_created_or_modified),
2005         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2006         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2007         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2008         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2009         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2010         (record_entry_change), (rhythmdb_entry_set_internal),
2011         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2012         (rhythmdb_entry_move_to_trash_cb),
2013         (rhythmdb_entry_move_to_trash_set_error),
2014         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2015         (rhythmdb_nice_elt_name_from_propid),
2016         (rhythmdb_propid_from_nice_elt_name),
2017         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2018         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2019         (rhythmdb_compute_status_normal), (default_sync_metadata),
2020         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2021         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2022         (podcast_get_playback_uri), (podcast_data_destroy),
2023         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2024         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2025         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2026         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2027         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2028         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2029         * rhythmdb/rhythmdb.h:
2030         * shell/rb-play-order-linear-loop.c:
2031         (rb_linear_play_order_loop_get_next),
2032         (rb_linear_play_order_loop_get_previous):
2033         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2034         (rb_linear_play_order_get_previous):
2035         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2036         * shell/rb-play-order-random.c: (get_query_model_contents):
2037         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2038         (get_query_model_contents):
2039         * shell/rb-play-order.c: (rb_play_order_constructor),
2040         (rb_play_order_finalize),
2041         (rb_play_order_set_playing_entry_internal),
2042         (rb_play_order_set_property), (rb_play_order_new),
2043         (rb_play_order_get_player), (rb_play_order_get_source),
2044         (rb_play_order_get_db), (rb_play_order_get_query_model),
2045         (rb_play_order_player_is_playing),
2046         (rb_play_order_set_playing_entry),
2047         (rb_play_order_get_playing_entry),
2048         (rb_play_order_playing_source_changed),
2049         (rb_play_order_query_model_changed),
2050         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2051         (default_has_next), (default_has_previous),
2052         (sync_playing_entry_cb), (default_playing_entry_removed),
2053         (rb_play_order_has_next), (rb_play_order_get_next),
2054         (rb_play_order_go_next), (rb_play_order_has_previous),
2055         (rb_play_order_get_previous), (rb_play_order_go_previous),
2056         (rb_play_order_model_not_empty),
2057         (rb_play_order_update_have_next_previous):
2058         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2059         (rb_playlist_manager_save_playlists),
2060         (rb_playlist_manager_set_automatic_playlist),
2061         (rb_playlist_manager_cmd_edit_automatic_playlist),
2062         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2063         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2064         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2065         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2066         (volume_pre_unmount_cb), (reemit_playing_signal),
2067         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2068         (rb_shell_player_handle_eos_unlocked),
2069         (rb_shell_player_handle_eos), (rb_shell_player_init),
2070         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2071         (playlist_entry_cb), (rb_shell_player_open_entry),
2072         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2073         (rb_shell_player_set_play_order),
2074         (rb_shell_player_set_playback_state),
2075         (rb_shell_player_sync_play_order),
2076         (rb_shell_player_play_order_update_cb),
2077         (rb_shell_player_jump_to_current), (swap_playing_source),
2078         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2079         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2080         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2081         (rb_shell_player_entry_activated_cb),
2082         (rb_shell_player_property_row_activated_cb),
2083         (rb_shell_player_entry_changed_cb),
2084         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2085         (rb_shell_player_pause),
2086         (rb_shell_player_get_playing_song_duration),
2087         (rb_shell_player_error), (error_cb), (tick_cb),
2088         (info_available_cb), (buffering_cb),
2089         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2090         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2091         (rb_shell_jump_to_current):
2092         * sources/rb-auto-playlist-source.c:
2093         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2094         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2095         (rb_auto_playlist_source_get_query):
2096         * sources/rb-auto-playlist-source.h:
2097         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2098         * sources/rb-import-errors-source.c:
2099         (rb_import_errors_source_constructor):
2100         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2101         * sources/rb-library-source.c: (filepath_parse_pattern):
2102         * sources/rb-missing-files-source.c:
2103         (rb_missing_files_source_constructor):
2104         * sources/rb-play-queue-source.c:
2105         (rb_play_queue_source_clear_queue),
2106         (rb_play_queue_source_track_info_cell_data_func):
2107         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2108         (rb_playlist_source_get_property), (playlist_iter_func),
2109         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2110         (rb_playlist_source_track_cell_data_func):
2111         * sources/rb-podcast-source.c: (construct_query_from_selection),
2112         (rb_podcast_source_post_status_cell_data_func),
2113         (rb_podcast_source_post_feed_cell_data_func),
2114         (rb_podcast_source_feed_title_search_func),
2115         (rb_podcast_source_post_date_cell_data_func):
2116         * sources/rb-source.c: (default_get_status),
2117         (rb_source_get_status), (rb_source_browser_toggled),
2118         (rb_source_update_play_statistics), (rb_source_search),
2119         (rb_source_get_config_widget), (default_add_to_queue),
2120         (rb_source_add_to_queue), (rb_source_receive_drag),
2121         (rb_source_gather_hash_keys):
2122         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2123         (rb_sourcelist_model_is_row_visible),
2124         (rb_sourcelist_model_row_is_separator),
2125         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2126         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2127         (rb_sourcelist_model_drag_data_get):
2128         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2129         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2130         (rb_sourcelist_visible_source_to_iter),
2131         (rb_sourcelist_edit_source_name), (set_source_playing),
2132         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2133         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2134         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2135         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2136         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2137         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2138         (rb_static_playlist_source_add_location_internal),
2139         (rb_static_playlist_source_row_inserted):
2140         * widgets/rb-entry-view.c: (type_ahead_search_func),
2141         (rb_entry_view_finalize), (rb_entry_view_set_model),
2142         (rb_entry_view_playing_cell_data_func),
2143         (rb_entry_view_rating_cell_data_func),
2144         (rb_entry_view_long_cell_data_func),
2145         (rb_entry_view_play_count_cell_data_func),
2146         (rb_entry_view_duration_cell_data_func),
2147         (rb_entry_view_year_cell_data_func),
2148         (rb_entry_view_quality_cell_data_func),
2149         (rb_entry_view_location_cell_data_func),
2150         (rb_entry_view_string_cell_data_func),
2151         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2152         (rb_entry_view_get_sorting_order),
2153         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2154         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2155         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2156         (rb_entry_view_playing_song_changed), (harvest_entries),
2157         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2158         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2159         (set_column_visibility):
2160         * widgets/rb-entry-view.h:
2161         * widgets/rb-header.c: (rb_header_new),
2162         (rb_header_set_playing_entry), (rb_header_set_title):
2163         * widgets/rb-library-browser.c: (rebuild_child_model),
2164         (rb_library_browser_set_model):
2165         * widgets/rb-property-view.c:
2166         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2167         (rb_property_view_set_property), (rb_property_view_get_property),
2168         (rb_property_view_reset), (rb_property_view_get_model),
2169         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2170         (rb_property_view_button_press_cb):
2171         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2172         (rb_query_creator_get_property), (rb_query_creator_load_query),
2173         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2174         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2175         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2176         (lookup_row_by_widget), (remove_button_click_cb),
2177         (add_button_click_cb), (create_property_option_menu):
2178         * widgets/rb-song-info.c: (rb_song_info_constructor),
2179         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2180         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2181         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2182         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2184 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2186         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2187         (rb_shell_player_get_property):
2188         Add a property providing access to the player backend object.
2190 2006-07-23  James Livingston  <doclivingston@gmail.com>
2192         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2193         (get_history), (rb_random_filter_history),
2194         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2195         remove the tentative history, since it appears to be a remanent from
2196         older play order code. The only thing it was doing was using up
2197         CPU-time and memory. From #345857
2199 2006-07-23  James Livingston  <doclivingston@gmail.com>
2201         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2203         * shell/main.c: (main):
2204         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2205         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2206         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2207         (rb_playlist_manager_load_playlists),
2208         (rb_playlist_manager_save_data):
2209         * shell/rb-playlist-manager.h:
2210         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2211         (rb_shell_get_property), (rb_shell_sync_state),
2212         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2213         (construct_sources), (idle_handle_load_complete):
2214         * shell/rb-shell.h: Add a command-line option for changing the
2215         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2217 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2219         * daapsharing/rb-daap-share.c: (databases_cb):
2220         Make sure we set status codes on HTTP responses.
2222 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2224         * configure.ac:
2225         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2226         (chunked_message_finished), (send_chunked_file),
2227         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2228         Use GMappedFile to send local files to DAAP clients where possible.  
2229         iTunes can't seek properly in files sent using chunked transfer 
2230         encoding.  Also remove the useless bitrate calculation code, as we
2231         never even used the result anyway.  From #330410.
2233 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2235         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2237         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2238         Enable multiple selection for 'import file'.  Fixes #347478.
2240 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2242         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2243         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2244         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2245         Fixes #348098.
2247 2006-07-20  James Livingston  <doclivingston@gmail.com>
2249         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2250         aren't NULL before calling strstr. Fixes #347998.
2252 2006-07-19  James Livingston  <doclivingston@gmail.com>
2254         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2256         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2257         MB that only have years. Fixes #347906.
2259 2006-07-19  James Livingston  <doclivingston@gmail.com>
2261         * rhythmdb/rhythmdb-private.h:
2262         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2263         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2264         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2265         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2266         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2267         (rhythmdb_execute_stat), (queue_stat_uri),
2268         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2269         (rhythmdb_load), (rhythmdb_entry_register_type),
2270         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2271         asynchronous vfs operations, and cancel them when shutting down the
2272         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2274         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2275         (test_rhythmdb_shutdown): wait until the db has been finalised before
2276         continuing on to the next test.
2278 2006-07-19  James Livingston  <doclivingston@gmail.com>
2280         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2281         right thing in the #ifdef. From #347832.
2283 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2285         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2286         Fix compile warning.
2288 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2290         * rhythmdb/rhythmdb-query-model.c:
2291         (rhythmdb_query_model_set_property),
2292         (rhythmdb_query_model_reapply_query_cb):
2293         Ignore old query == new query case.
2294         Fixes auto playlists with time-relative queries.
2296         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2297         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2298         (rhythmdb_query_to_string):
2299         * rhythmdb/rhythmdb.h:
2300         Add debug helper for printing queries in case someone needs it again.
2302 2006-07-18  James Livingston  <doclivingston@gmail.com>
2304         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2305         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2306         Fixes #347832
2308         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2309         write then into files.
2311 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2313         * daapsharing/rb-daap-connection.c:
2314         (rb_daap_connection_set_property):
2315         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2316         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2317         (add_playlist_to_mlcl), (databases_cb):
2318         * daapsharing/rb-daap-sharing.c: (create_share):
2319         * iradio/rb-new-station-dialog.c:
2320         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2321         * iradio/rb-station-properties-dialog.c:
2322         (rb_station_properties_dialog_finalize),
2323         (rb_station_properties_dialog_set_property),
2324         (rb_station_properties_dialog_get_current_entry):
2325         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2326         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2327         * plugins/generic-player/rb-generic-player-source.c:
2328         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2329         (handle_playlist_entry_cb):
2330         * plugins/generic-player/rb-nokia770-source.c:
2331         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2332         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2333         (visit_playlist_dirs), (hal_udi_is_psp):
2334         * podcast/rb-podcast-manager.c:
2335         * podcast/rb-podcast-properties-dialog.c:
2336         (rb_podcast_properties_dialog_finalize),
2337         (rb_podcast_properties_dialog_set_entry_view),
2338         (rb_podcast_properties_dialog_set_property):
2339         * rhythmdb/rhythmdb-property-model.c:
2340         * rhythmdb/rhythmdb-query-model.c:
2341         (rhythmdb_query_model_set_property),
2342         (rhythmdb_query_model_reapply_query_cb):
2343         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2344         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2345         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2346         (rhythmdb_event_free), (rhythmdb_shutdown),
2347         (rhythmdb_thread_create), (action_thread_main),
2348         (rhythmdb_do_full_query_async_parsed),
2349         (rhythmdb_do_full_query_internal):
2350         * shell/main.c: (main):
2351         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2352         * shell/rb-play-order.c: (rb_play_order_finalize),
2353         (rb_play_order_set_player),
2354         (rb_play_order_set_playing_entry_internal),
2355         (rb_play_order_set_property),
2356         (rb_play_order_playing_source_changed),
2357         (rb_play_order_query_model_changed):
2358         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2359         (rb_playlist_manager_set_source),
2360         (rb_playlist_manager_set_shell_internal),
2361         (rb_playlist_manager_set_property):
2362         * shell/rb-removable-media-manager.c:
2363         (rb_removable_media_manager_set_property),
2364         (rb_removable_media_manager_set_uimanager),
2365         (rb_removable_media_manager_cmd_eject_medium),
2366         (rb_removable_media_manager_cmd_copy_tracks):
2367         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2368         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2369         (rb_shell_clipboard_set),
2370         (rb_shell_clipboard_cmd_add_to_playlist_new),
2371         (rb_shell_clipboard_playlist_add_cb),
2372         (rb_shell_clipboard_playlist_renamed_cb),
2373         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2374         (rebuild_playlist_menu):
2375         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2376         (rb_shell_player_set_queue_source_internal),
2377         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2378         (rb_shell_player_entry_activated_cb),
2379         (rb_shell_player_property_row_activated_cb),
2380         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2381         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2382         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2383         (rb_shell_finalize), (construct_widgets),
2384         (rb_shell_playing_from_queue_cb),
2385         (rb_shell_player_stream_song_changed_cb),
2386         (rb_shell_player_volume_changed_cb):
2387         * shell/rb-statusbar.c: (rb_statusbar_new):
2388         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2389         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2390         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2391         * sources/rb-auto-playlist-source.c:
2392         (rb_auto_playlist_source_class_init),
2393         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2394         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2395         (rb_auto_playlist_source_do_query),
2396         (rb_auto_playlist_source_set_query),
2397         (rb_auto_playlist_source_browser_changed_cb),
2398         (search_action_changed):
2399         * sources/rb-auto-playlist-source.h:
2400         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2401         (search_action_changed), (rb_browser_source_constructor),
2402         (rb_browser_source_cmd_choose_artist), (impl_delete),
2403         (rb_browser_source_browser_changed_cb),
2404         (rb_browser_source_do_query):
2405         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2406         (rb_daap_source_finalize), (rb_daap_source_class_init),
2407         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2408         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2409         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2410         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2411         (rb_daap_source_get_headers):
2412         * sources/rb-import-errors-source.c:
2413         (rb_import_errors_source_constructor),
2414         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2415         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2416         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2417         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2418         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2419         (impl_paste), (impl_receive_drag):
2420         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2421         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2422         (impl_song_properties):
2423         * sources/rb-library-source.c: (rb_library_source_constructor),
2424         (rb_library_source_new), (impl_paste),
2425         (rb_library_source_add_child_source):
2426         * sources/rb-missing-files-source.c: (impl_delete),
2427         (impl_get_status):
2428         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2429         (rb_play_queue_source_class_init),
2430         (rb_play_queue_source_constructor):
2431         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2432         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2433         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2434         (rb_playlist_source_new_from_xml),
2435         (rb_playlist_source_save_to_xml):
2436         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2437         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2438         (search_action_changed), (rb_podcast_source_constructor),
2439         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2440         (construct_query_from_selection),
2441         (rb_podcast_source_cmd_download_post),
2442         (rb_podcast_source_cmd_cancel_download),
2443         (rb_podcast_source_cmd_delete_feed),
2444         (rb_podcast_source_start_download_cb),
2445         (rb_podcast_source_finish_download_cb),
2446         (rb_podcast_source_feed_updates_avaliable_cb),
2447         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2448         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2449         (impl_get_status):
2450         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2451         * sources/rb-source.c: (rb_source_get_property),
2452         (default_add_to_queue), (default_move_to_trash),
2453         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2454         (_rb_source_register_action_group):
2455         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2456         (rb_sourcelist_model_is_row_visible),
2457         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2458         (rb_sourcelist_model_row_draggable),
2459         (rb_sourcelist_model_drag_data_get):
2460         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2461         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2462         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2463         (visibility_notify_cb):
2464         * sources/rb-static-playlist-source.c:
2465         (rb_static_playlist_source_class_init),
2466         (rb_static_playlist_source_init),
2467         (rb_static_playlist_source_finalize),
2468         (rb_static_playlist_source_constructor), (impl_delete),
2469         (rb_static_playlist_source_browser_changed_cb),
2470         (rb_static_playlist_source_add_location_internal),
2471         (search_action_changed):
2472         * sources/rb-static-playlist-source.h:
2473         * widgets/rb-druid.c:
2474         * widgets/rb-entry-view.c:
2475         (rb_entry_view_set_shell_player_internal),
2476         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2477         (rb_entry_view_get_property), (rb_entry_view_new),
2478         (rb_entry_view_button_press_cb):
2479         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2480         (rb_library_browser_set_property),
2481         (rb_library_browser_get_property):
2482         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2483         (get_entry_for_property), (get_property_index_from_proptype):
2484         * widgets/rb-song-info.c: (rb_song_info_constructor),
2485         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2486         (rb_song_info_set_property), (rb_song_info_get_property):
2488         More leak and reference counting fixes.  From bug #347446.
2490 2006-07-17  James Livingston  <doclivingston@gmail.com>
2492         * sources/rb-auto-playlist-source.c:
2493         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2494         rather than setting the base model, as that lets us not import all the
2495         entries from the base model. This fixes some issues whether the search
2496         box wasn't filting automatic playlists.
2498 2006-07-17  James Livingston  <doclivingston@gmail.com>
2500         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2501         error, which caused blacklist creation to fail.
2503 2006-07-17  James Livingston  <doclivingston@gmail.com>
2505         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2506         running with -n, because we don't start it then. Fixes a crash on
2507         exit.
2509 2006-07-17  James Livingston  <doclivingston@gmail.com>
2511         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2513         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2514         Save not Open for the button. Fixes #345816
2516 2006-07-17  James Livingston  <doclivingston@gmail.com>
2518         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2520         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2521         when track transfer is disabled. Fixes #347705
2523 2006-07-17  James Livingston  <doclivingston@gmail.com>
2525         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2527         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2528         with track transfer disabled. Fixes #347705
2530 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2532         * rhythmdb/rhythmdb-query-model.c:
2533         (rhythmdb_query_model_set_property):
2534         * shell/main.c: (main):
2535         * shell/rb-shell-clipboard.c: (unset_source_internal),
2536         (rb_shell_clipboard_finalize),
2537         (rb_shell_clipboard_set_source_internal),
2538         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2539         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2540         (rb_shell_player_set_db_internal),
2541         (rb_shell_player_set_queue_source_internal),
2542         (rb_shell_player_finalize), (rb_shell_player_set_property):
2543         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2544         * sources/rb-auto-playlist-source.c:
2545         (rb_auto_playlist_source_constructor),
2546         (rb_auto_playlist_source_new_from_xml):
2547         * sources/rb-daap-source.c: (create_pixbufs):
2548         * sources/rb-ipod-source.c:
2549         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2550         * sources/rb-library-source.c:
2551         (rb_library_source_add_child_source):
2552         * sources/rb-play-queue-source.c:
2553         (rb_play_queue_sync_playing_state),
2554         (rb_play_queue_source_track_info_cell_data_func):
2555         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2556         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2557         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2558         (impl_can_add_to_queue), (impl_add_to_queue):
2559         * sources/rb-source.c: (rb_source_set_property):
2560         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2561         * sources/rb-static-playlist-source.c:
2562         (rb_static_playlist_source_constructor),
2563         (rb_static_playlist_source_load_from_xml):
2564         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2565         * widgets/rb-entry-view.c: (rb_entry_view_init),
2566         (rb_entry_view_finalize), (rb_entry_view_append_column),
2567         (rb_entry_view_constructor):
2568         * widgets/rb-song-info.c: (rb_song_info_set_property):
2569         Fix leaks.  From bug #347446.
2571 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2573         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2574         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2575         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2576         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2577         (add_decoding_pipeline), (profile_bin_find_encoder),
2578         (get_profile_from_mime_type), (extract_track), (transcode_track),
2579         (rb_encoder_gst_encode):
2580         * backends/gstreamer/rb-encoder-gst.h:
2581         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2582         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2583         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2584         (rb_player_gst_construct):
2585         * backends/gstreamer/rb-player-gst.h:
2586         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2587         * backends/rb-encoder.h:
2588         * backends/rb-player.c: (_rb_player_emit_tick):
2589         * backends/rb-player.h:
2590         * daapsharing/rb-daap-connection.c: (build_message),
2591         (actual_http_response_handler), (http_response_handler),
2592         (http_get), (entry_set_string_prop), (emit_progress_idle),
2593         (handle_server_info), (handle_database_info),
2594         (handle_song_listing), (handle_playlists),
2595         (handle_playlist_entries), (rb_daap_connection_new),
2596         (connected_cb), (rb_daap_connection_do_something),
2597         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2598         (rb_daap_connection_get_property):
2599         * daapsharing/rb-daap-connection.h:
2600         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2601         (rb_daap_collision_dialog_new_run):
2602         * daapsharing/rb-daap-dialog.h:
2603         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2604         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2605         (DigestToString), (rb_daap_hash_generate):
2606         * daapsharing/rb-daap-hash.h:
2607         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2608         (resolve_cb), (browse_cb):
2609         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2610         (resolve_cb), (rb_daap_mdns_browser_resolve),
2611         (rb_daap_mdns_browser_start), (resolver_free):
2612         * daapsharing/rb-daap-mdns-browser.h:
2613         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2614         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2615         (publish_cb):
2616         * daapsharing/rb-daap-mdns-publisher.h:
2617         * daapsharing/rb-daap-share.c: (name_collision_cb),
2618         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2619         (message_set_from_rb_daap_structure), (content_codes_cb),
2620         (session_id_validate), (logout_cb), (update_cb),
2621         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2622         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2623         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2624         (rb_daap_share_publish_start):
2625         * daapsharing/rb-daap-share.h:
2626         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2627         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2628         * daapsharing/rb-daap-sharing.h:
2629         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2630         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2631         (rb_daap_src_open):
2632         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2633         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2634         (rb_daap_structure_parse_container_buffer),
2635         (rb_daap_structure_parse), (gnode_find_node),
2636         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2637         (print_rb_daap_item):
2638         * daapsharing/rb-daap-structure.h:
2639         * iradio/rb-new-station-dialog.c:
2640         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2641         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2642         (rb_new_station_dialog_text_changed):
2643         * iradio/rb-station-properties-dialog.c:
2644         (rb_station_properties_dialog_init),
2645         (rb_station_properties_dialog_new),
2646         (rb_station_properties_dialog_response_cb),
2647         (rb_station_properties_dialog_get_current_entry),
2648         (rb_station_properties_dialog_rated_cb),
2649         (rb_station_properties_dialog_update_rating),
2650         (rb_station_properties_dialog_update_playback_error),
2651         (rb_station_properties_dialog_sync_entries):
2652         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2653         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2654         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2655         (rb_metadata_can_save), (rb_metadata_save):
2656         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2657         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2658         (_handle_message), (_new_connection), (main):
2659         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2660         (rb_metadata_dbus_read_from_message):
2661         * metadata/rb-metadata-dbus.h:
2662         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2663         (rb_add_id3_tagger), (rb_metadata_init),
2664         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2665         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2666         (rb_metadata_gst_new_decoded_pad_cb),
2667         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2668         * metadata/sj-error.c: (sj_error_quark):
2669         * metadata/sj-error.h:
2670         * metadata/sj-metadata-musicbrainz.c:
2671         (sj_metadata_musicbrainz_instance_init),
2672         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2673         (get_rdf), (lookup_cd):
2674         * metadata/sj-metadata.c: (sj_metadata_get_type):
2675         * metadata/sj-structures.c:
2676         * metadata/sj-structures.h:
2677         * metadata/test-metadata.c: (load_metadata_cb), (main):
2678         * podcast/rb-feed-podcast-properties-dialog.c:
2679         (rb_feed_podcast_properties_dialog_init),
2680         (rb_feed_podcast_properties_dialog_update_title):
2681         * podcast/rb-feed-podcast-properties-dialog.h:
2682         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2683         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2684         (rb_new_podcast_dialog_text_changed):
2685         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2686         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2687         (rb_podcast_manager_set_property),
2688         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2689         (rb_podcast_manager_download_entry),
2690         (rb_podcast_manager_update_feeds),
2691         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2692         (rb_podcast_manager_copy_post),
2693         (rb_podcast_manager_thread_parse_feed),
2694         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2695         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2696         (download_info_free), (download_info_new), (start_job),
2697         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2698         (download_progress_cb), (download_progress_update_cb),
2699         (rb_podcast_manager_remove_feed),
2700         (rb_podcast_manager_db_entry_deleted_cb),
2701         (rb_podcast_manager_cancel_download),
2702         (rb_podcast_manager_update_synctime),
2703         (rb_podcast_manager_set_remove_files),
2704         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2705         (rb_podcast_manager_abort_subscribe),
2706         (rb_podcast_manager_get_podcast_dir):
2707         * podcast/rb-podcast-manager.h:
2708         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2709         (rb_validate_channel_propert), (rb_validate_item_propert),
2710         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2711         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2712         (rb_podcast_parse_date), (rb_podcast_parse_time),
2713         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2714         * podcast/rb-podcast-parse.h:
2715         * podcast/rb-podcast-properties-dialog.c:
2716         (rb_podcast_properties_dialog_init),
2717         (rb_podcast_properties_dialog_get_current_entry),
2718         (rb_podcast_properties_dialog_update_title),
2719         (rb_podcast_properties_dialog_update_duration),
2720         (rb_podcast_properties_dialog_update_date):
2721         * podcast/rb-podcast-properties-dialog.h:
2722         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2723         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2724         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2725         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2726         (g_sequence_search), (g_sequence_set_aggregate_data),
2727         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2728         (find_min), (g_sequence_node_find_by_pos),
2729         (g_sequence_node_find_closest), (g_sequence_node_free),
2730         (g_sequence_node_split), (g_sequence_node_insert_before),
2731         (g_sequence_node_get_length), (g_sequence_node_remove),
2732         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2733         (g_sequence_calc_tree_height):
2734         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2735         (rb_refstring_get):
2736         * rhythmdb/rb-refstring.h:
2737         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2738         (rhythmdb_gda_init), (dump_model), (execute_query),
2739         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2740         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2741         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2742         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2743         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2744         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2745         * rhythmdb/rhythmdb-gda.h:
2746         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2747         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2748         (monitor_library_directory), (rhythmdb_check_changed_file),
2749         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2750         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2751         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2752         * rhythmdb/rhythmdb-private.h:
2753         * rhythmdb/rhythmdb-property-model.c:
2754         (rhythmdb_property_model_set_property),
2755         (rhythmdb_property_model_row_inserted_cb),
2756         (rhythmdb_property_model_prop_changed_cb),
2757         (rhythmdb_property_model_compare),
2758         (rhythmdb_property_model_get_value),
2759         (rhythmdb_property_model_iter_nth_child),
2760         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2761         (rhythmdb_property_model_drag_data_get),
2762         (rhythmdb_property_model_enable_drag),
2763         (rhythmdb_property_model_column_get_type):
2764         * rhythmdb/rhythmdb-property-model.h:
2765         * rhythmdb/rhythmdb-query-model.c:
2766         (rhythmdb_query_model_class_init),
2767         (rhythmdb_query_model_set_property),
2768         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2769         (rhythmdb_query_model_has_pending_changes),
2770         (rhythmdb_query_model_entry_changed_cb),
2771         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2772         (rhythmdb_query_model_add_entry),
2773         (rhythmdb_query_model_remove_from_main_list),
2774         (rhythmdb_query_model_remove_entry),
2775         (rhythmdb_query_model_drag_data_received),
2776         (rhythmdb_query_model_row_drop_possible),
2777         (rhythmdb_query_model_compute_status_normal),
2778         (rhythmdb_query_model_set_sort_order),
2779         (rhythmdb_query_model_get_entry_index),
2780         (rhythmdb_query_model_base_row_inserted),
2781         (rhythmdb_query_model_base_row_deleted),
2782         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2783         (rhythmdb_query_model_date_sort_func),
2784         (rhythmdb_query_model_within_limit):
2785         * rhythmdb/rhythmdb-query-model.h:
2786         * rhythmdb/rhythmdb-query-results.c:
2787         (rhythmdb_query_results_query_complete):
2788         * rhythmdb/rhythmdb-query-results.h:
2789         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2790         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2791         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2792         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2793         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2794         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2795         (rhythmdb_tree_parser_start_element),
2796         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2797         (save_entry), (save_entry_type), (save_unknown_entry_type),
2798         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2799         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2800         (get_or_create_genre), (remove_entry_from_album),
2801         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2802         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2803         (search_match_properties), (evaluate_conjunctive_subquery),
2804         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2805         (conjunctive_query_artists), (conjunctive_query_genre),
2806         (conjunctive_query), (split_query_by_disjunctions),
2807         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2808         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2809         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2810         (rhythmdb_hash_tree_foreach),
2811         (rhythmdb_tree_entry_type_registered):
2812         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2813         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2814         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2815         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2816         (rhythmdb_shutdown), (rhythmdb_finalize),
2817         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2818         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2819         (rhythmdb_entry_example_new),
2820         (set_metadata_string_default_unknown), (is_ghost_entry),
2821         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2822         (rhythmdb_process_metadata_load),
2823         (rhythmdb_process_queued_entry_set_event),
2824         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2825         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2826         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2827         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2828         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2829         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2830         (rhythmdb_entry_delete_by_type),
2831         (rhythmdb_propid_from_nice_elt_name),
2832         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2833         (rhythmdb_compute_status_normal),
2834         (rhythmdb_entry_register_type_alias),
2835         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2836         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2837         (rhythmdb_entry_import_error_get_type),
2838         (rhythmdb_entry_podcast_post_get_type),
2839         (rhythmdb_entry_podcast_feed_get_type),
2840         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2841         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2842         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2843         * rhythmdb/rhythmdb.h:
2844         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2845         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2846         (rb_history_limit_size):
2847         * shell/rb-history.h:
2848         * shell/rb-play-order-linear-loop.c:
2849         (rb_linear_play_order_loop_get_next):
2850         * shell/rb-play-order-linear-loop.h:
2851         * shell/rb-play-order-linear.c:
2852         * shell/rb-play-order-linear.h:
2853         * shell/rb-play-order-queue.c:
2854         (rb_queue_play_order_playing_entry_removed):
2855         * shell/rb-play-order-queue.h:
2856         * shell/rb-play-order-random-by-age-and-rating.c:
2857         * shell/rb-play-order-random-by-age-and-rating.h:
2858         * shell/rb-play-order-random-by-age.c:
2859         (rb_random_by_age_get_entry_weight):
2860         * shell/rb-play-order-random-by-age.h:
2861         * shell/rb-play-order-random-by-rating.c:
2862         * shell/rb-play-order-random-by-rating.h:
2863         * shell/rb-play-order-random-equal-weights.c:
2864         * shell/rb-play-order-random-equal-weights.h:
2865         * shell/rb-play-order-random.c: (rb_random_filter_history),
2866         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2867         (rb_random_db_changed), (rb_random_playing_entry_changed),
2868         (rb_random_db_entry_deleted):
2869         * shell/rb-play-order-shuffle.c: (remove_from_history),
2870         (add_randomly_to_history), (get_query_model_contents),
2871         (rb_shuffle_playing_entry_changed):
2872         * shell/rb-play-order-shuffle.h:
2873         * shell/rb-play-order.c: (rb_play_order_class_init),
2874         (rb_play_order_set_property),
2875         (rb_play_order_playing_source_changed),
2876         (rb_play_order_query_model_changed_cb),
2877         (rb_play_order_query_model_changed),
2878         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2879         * shell/rb-play-order.h:
2880         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2881         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2882         (rb_playlist_manager_set_property),
2883         (rb_playlist_manager_parse_file),
2884         (rb_playlist_manager_load_playlists),
2885         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2886         (rb_playlist_manager_save_playlists),
2887         (rb_playlist_manager_new_playlist),
2888         (rb_playlist_manager_new_playlist_from_selection_data),
2889         (rb_playlist_manager_cmd_new_automatic_playlist),
2890         (rb_playlist_manager_cmd_edit_automatic_playlist),
2891         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2892         (save_playlist_response_cb), (export_set_extension_cb),
2893         (filter_get_export_filter_label), (setup_format_menu),
2894         (rb_playlist_manager_cmd_save_playlist),
2895         (rb_playlist_manager_get_playlists),
2896         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2897         (rb_playlist_manager_delete_playlist),
2898         (rb_playlist_manager_export_playlist):
2899         * shell/rb-playlist-manager.h:
2900         * shell/rb-removable-media-manager.c:
2901         (rb_removable_media_manager_class_init),
2902         (rb_removable_media_manager_dispose),
2903         (rb_removable_media_manager_finalize),
2904         (rb_removable_media_manager_set_property),
2905         (split_drive_from_cdda_uri),
2906         (rb_removable_media_manager_playing_uri_changed_cb),
2907         (rb_removable_media_manager_load_media),
2908         (rb_removable_media_manager_volume_mounted_cb),
2909         (remove_volume_by_source),
2910         (rb_removable_media_manager_source_deleted_cb),
2911         (rb_removable_media_manager_volume_unmounted_cb),
2912         (rb_removable_media_manager_mount_volume),
2913         (rb_removable_media_manager_set_uimanager),
2914         (rb_removable_media_manager_scan), (do_transfer),
2915         (rb_removable_media_manager_cmd_copy_tracks):
2916         * shell/rb-removable-media-manager.h:
2917         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2918         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2919         (rb_shell_clipboard_sync),
2920         (rb_shell_clipboard_idle_poll_deletions),
2921         (rb_shell_clipboard_cmd_add_to_playlist_new),
2922         (rb_shell_clipboard_playlist_add_cb),
2923         (rb_shell_clipboard_playlist_deleted_cb),
2924         (rb_shell_clipboard_playlist_renamed_cb),
2925         (rb_shell_clipboard_playlist_visible_cb),
2926         (rb_shell_clipboard_playlist_added_cb):
2927         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2928         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2929         (rb_shell_player_init), (rb_shell_player_set_property),
2930         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2931         (rb_shell_player_open_location),
2932         (rb_shell_player_set_playing_entry),
2933         (rb_shell_player_play_order_update_cb),
2934         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2935         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2936         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2937         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2938         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2939         (gconf_song_position_slider_visibility_changed),
2940         (rb_shell_player_entry_activated_cb),
2941         (rb_shell_player_property_row_activated_cb),
2942         (rb_shell_player_entry_changed_cb),
2943         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2944         (actually_set_playing_source),
2945         (rb_shell_player_set_playing_source_internal),
2946         (rb_shell_player_get_playing_song_duration), (eos_cb),
2947         (rb_shell_player_error), (error_cb), (info_available_cb),
2948         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2949         (rb_shell_player_error_get_type):
2950         * shell/rb-shell-player.h:
2951         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2952         (rb_shell_preferences_append_page),
2953         (share_check_button_toggled_cb),
2954         (password_check_button_toggled_cb), (add_daap_preferences),
2955         (rb_shell_preferences_column_check_changed_cb),
2956         (rb_shell_preferences_sync_column_button),
2957         (rb_shell_preferences_sync),
2958         (rb_shell_preferences_browser_views_activated_cb):
2959         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2960         (rb_shell_set_property), (rb_shell_get_property),
2961         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2962         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2963         (rb_shell_get_visibility), (rb_shell_set_visibility),
2964         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2965         (rb_shell_register_entry_type_for_source),
2966         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2967         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2968         (rb_shell_player_stream_song_changed_cb),
2969         (rb_shell_set_window_title),
2970         (rb_shell_view_smalldisplay_changed_cb),
2971         (rb_shell_view_queue_as_sidebar_changed_cb),
2972         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2973         (rb_shell_cmd_add_folder_to_library),
2974         (rb_shell_cmd_add_file_to_library),
2975         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2976         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2977         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2978         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2979         (handle_playlist_entry_cb), (rb_shell_load_uri),
2980         (rb_shell_add_to_queue), (rb_shell_present),
2981         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2982         (rb_shell_volume_widget_changed_cb),
2983         (rb_shell_player_volume_changed_cb),
2984         (rb_shell_ui_location_get_type):
2985         * shell/rb-shell.h:
2986         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2987         (rb_source_header_init), (rb_source_header_set_source_internal),
2988         (rb_source_state_sync), (rb_source_header_clear_search),
2989         (rb_source_header_view_browser_changed_cb):
2990         * shell/rb-source-header.h:
2991         * shell/rb-statusbar.c: (rb_statusbar_construct),
2992         (rb_statusbar_init), (rb_statusbar_finalize),
2993         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2994         (rb_statusbar_source_status_changed_cb):
2995         * shell/rb-statusbar.h:
2996         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2997         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2998         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2999         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3000         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3001         (rb_audiocd_create_track_entry):
3002         * sources/rb-auto-playlist-source.c:
3003         (rb_auto_playlist_source_class_init),
3004         (rb_auto_playlist_source_constructor),
3005         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3006         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3007         (rb_auto_playlist_source_query_complete_cb),
3008         (rb_auto_playlist_source_do_query),
3009         (rb_auto_playlist_source_set_query),
3010         (rb_auto_playlist_source_browser_changed_cb),
3011         (search_action_to_prop):
3012         * sources/rb-auto-playlist-source.h:
3013         * sources/rb-browser-source.c: (rb_browser_source_init),
3014         (rb_browser_source_dispose), (search_action_to_prop),
3015         (rb_browser_source_constructor),
3016         (rb_browser_source_cmd_choose_genre),
3017         (rb_browser_source_cmd_choose_artist),
3018         (rb_browser_source_cmd_choose_album), (impl_search),
3019         (rb_browser_source_browser_changed_cb),
3020         (rb_browser_source_do_query):
3021         * sources/rb-browser-source.h:
3022         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3023         (rb_daap_source_init), (rb_daap_source_dispose),
3024         (rb_daap_source_set_property), (start_browsing),
3025         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3026         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3027         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3028         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3029         * sources/rb-daap-source.h:
3030         * sources/rb-import-errors-source.h:
3031         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3032         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3033         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3034         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3035         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3036         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3037         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3038         (generate_ipod_filename), (ipod_path_from_unix_path),
3039         (impl_delete_thyself):
3040         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3041         (rb_iradio_source_init), (rb_iradio_source_constructor),
3042         (rb_iradio_source_new), (guess_uri_scheme),
3043         (rb_iradio_source_add_station),
3044         (rb_iradio_source_async_update_play_statistics),
3045         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3046         (stations_view_drag_data_received_cb),
3047         (rb_iradio_source_cmd_new_station):
3048         * sources/rb-iradio-source.h:
3049         * sources/rb-library-source.c: (rb_library_source_dispose),
3050         (rb_library_source_constructor),
3051         (rb_library_source_location_button_clicked_cb),
3052         (impl_get_config_widget), (rb_library_source_library_location_cb),
3053         (sanitize_path), (filepath_parse_pattern),
3054         (layout_example_label_update),
3055         (rb_library_source_layout_filename_changed), (build_filename),
3056         (impl_can_paste), (impl_paste),
3057         (rb_library_source_add_child_source),
3058         (rb_library_source_sync_child_sources):
3059         * sources/rb-library-source.h:
3060         * sources/rb-missing-files-source.h:
3061         * sources/rb-play-queue-source.c:
3062         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3063         * sources/rb-play-queue-source.h:
3064         * sources/rb-playlist-source-recorder.c:
3065         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3066         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3067         (rb_playlist_source_recorder_init),
3068         (rb_playlist_source_recorder_new):
3069         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3070         (rb_playlist_source_save_playlist),
3071         (rb_playlist_source_entry_added_cb),
3072         (rb_playlist_source_set_query_model),
3073         (rb_playlist_source_add_to_map):
3074         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3075         (rb_podcast_source_init), (rb_podcast_source_dispose),
3076         (rb_podcast_source_finalize), (search_action_to_prop),
3077         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3078         (rb_podcast_source_get_property), (rb_podcast_source_new),
3079         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3080         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3081         (rb_podcast_source_show_browser), (construct_query_from_selection),
3082         (rb_podcast_source_do_query), (impl_get_config_widget),
3083         (rb_podcast_source_btn_file_change_cb),
3084         (posts_view_drag_data_received_cb),
3085         (rb_podcast_source_cmd_download_post),
3086         (rb_podcast_source_cmd_cancel_download),
3087         (rb_podcast_source_cmd_delete_feed),
3088         (rb_podcast_source_cmd_properties_feed),
3089         (rb_podcast_source_cmd_update_feed),
3090         (rb_podcast_source_post_status_cell_data_func),
3091         (rb_podcast_source_post_feed_cell_data_func),
3092         (rb_podcast_source_post_date_cell_data_func),
3093         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3094         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3095         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3096         (impl_get_status):
3097         * sources/rb-podcast-source.h:
3098         * sources/rb-removable-media-source.c:
3099         (rb_removable_media_source_constructor):
3100         * sources/rb-removable-media-source.h:
3101         * sources/rb-source.h:
3102         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3103         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3104         (rb_sourcelist_model_row_is_separator),
3105         (rb_sourcelist_model_drag_data_received),
3106         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3107         (rb_sourcelist_model_row_drop_position),
3108         (rb_sourcelist_model_get_drag_target),
3109         (rb_sourcelist_model_row_draggable),
3110         (rb_sourcelist_model_drag_data_get),
3111         (rb_sourcelist_model_row_inserted_cb),
3112         (rb_sourcelist_model_get_group_path):
3113         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3114         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3115         (rb_sourcelist_visible_source_to_iter),
3116         (rb_sourcelist_edit_source_name),
3117         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3118         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3119         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3120         * sources/rb-static-playlist-source.c:
3121         (rb_static_playlist_source_class_init),
3122         (rb_static_playlist_source_constructor),
3123         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3124         (impl_search), (rb_static_playlist_source_do_query),
3125         (rb_static_playlist_source_browser_changed_cb),
3126         (impl_receive_drag), (impl_save_contents_to_xml),
3127         (rb_static_playlist_source_add_location_swapped),
3128         (search_action_to_prop):
3129         * sources/rb-static-playlist-source.h:
3130         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3131         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3132         (egg_tray_icon_get_orientation_property),
3133         (egg_tray_icon_send_manager_message),
3134         (egg_tray_icon_update_manager_window),
3135         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3136         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3137         * widgets/eggtrayicon.h:
3138         * widgets/rb-cell-renderer-pixbuf.c:
3139         (rb_cell_renderer_pixbuf_get_property),
3140         (rb_cell_renderer_pixbuf_set_property),
3141         (rb_cell_renderer_pixbuf_get_size),
3142         (rb_cell_renderer_pixbuf_render),
3143         (rb_cell_renderer_pixbuf_activate):
3144         * widgets/rb-cell-renderer-rating.c:
3145         (rb_cell_renderer_rating_class_init),
3146         (rb_cell_renderer_rating_get_property),
3147         (rb_cell_renderer_rating_set_property),
3148         (rb_cell_renderer_rating_get_size),
3149         (rb_cell_renderer_rating_render),
3150         (rb_cell_renderer_rating_activate):
3151         * widgets/rb-dialog.c:
3152         * widgets/rb-dialog.h:
3153         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3154         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3155         (rb_druid_page3_finish_cb):
3156         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3157         (rb_entry_view_init), (rb_entry_view_set_property),
3158         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3159         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3160         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3161         (rb_entry_view_set_sorting_order),
3162         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3163         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3164         (rb_entry_view_playing_song_changed),
3165         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3166         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3167         (rb_entry_view_set_fixed_column_width),
3168         (rb_entry_view_get_time_date_column_sample),
3169         (rb_entry_view_state_get_type):
3170         * widgets/rb-entry-view.h:
3171         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3172         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3173         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3174         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3175         (update_browser_property_visibilty),
3176         (rb_library_browser_construct_query), (restore_selection),
3177         (rebuild_child_model), (rb_library_browser_set_selection),
3178         (rb_library_browser_set_model):
3179         * widgets/rb-library-browser.h:
3180         * widgets/rb-property-view.c: (rb_property_view_class_init),
3181         (rb_property_view_set_property), (rb_property_view_reset),
3182         (rb_property_view_get_model), (rb_property_view_constructor),
3183         (rb_property_view_set_selection),
3184         (rb_property_view_selection_changed_cb),
3185         (rb_property_view_button_press_cb),
3186         (rb_property_view_set_search_func):
3187         * widgets/rb-query-creator-private.h:
3188         * widgets/rb-query-creator-properties.c:
3189         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3190         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3191         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3192         (relativeTimeCriteriaCreateWidget),
3193         (relativeTimeCriteriaSetWidgetData):
3194         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3195         (rb_query_creator_dispose), (rb_query_creator_load_query),
3196         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3197         (get_property_index_from_proptype), (select_criteria_from_value),
3198         (create_property_option_menu), (create_criteria_option_menu),
3199         (sort_option_menu_changed), (setup_sort_option_menu):
3200         * widgets/rb-query-creator.h:
3201         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3202         (rb_rating_render_stars):
3203         * widgets/rb-rating-helper.h:
3204         * widgets/rb-rating.c: (rb_rating_expose):
3205         * widgets/rb-rating.h:
3206         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3207         (rb_search_entry_timeout_cb):
3208         * widgets/rb-search-entry.h:
3209         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3210         (rb_song_info_constructor), (rb_song_info_new),
3211         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3212         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3213         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3214         (rb_song_info_query_model_changed_cb),
3215         (rb_song_info_sync_entries_multiple),
3216         (rb_song_info_sync_entry_single):
3217         Strip all trailing whitespace.  Fixes #344293.
3219 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3221         * doc/reference/Makefile.am: Fix GTK Doc Build
3223 2006-07-13  James Livingston  <doclivingston@gmail.com>
3225         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3227         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3228         instead of the LOCATION, and don't try to get the directory listing
3229         for http URI schemes
3231         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3232         invalid utf8 in the error message, since apparently it can happen.
3234 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3236         * sources/rb-import-errors-source.c:
3237         (rb_import_errors_source_class_init),
3238         (rb_import_errors_source_init),
3239         (rb_import_errors_source_constructor),
3240         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3241         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3242         * sources/rb-missing-files-source.c:
3243         (rb_missing_files_source_class_init),
3244         (rb_missing_files_source_init),
3245         (rb_missing_files_source_constructor),
3246         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3247         (rb_missing_files_source_songs_sort_order_changed_cb),
3248         (impl_get_status):
3249         * sources/rb-source.c: (rb_source_class_init),
3250         (rb_source_finalize), (update_visibility_idle),
3251         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3252         (rb_source_set_property), (rb_source_get_property),
3253         (default_get_status), (rb_source_update_play_statistics),
3254         (default_add_to_queue), (_rb_source_show_popup),
3255         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3256         (rb_source_gather_selected_properties),
3257         (_rb_source_register_action_group):
3258         * sources/rb-source.h:
3259         * sources/rb-sourcelist.c: (visibility_notify_cb):
3260         Don't use a fake model for import-errors and missing-files
3261         sources.  Add a new source property "hidden-when-empty".
3262         Update source visibility in an idle.  Clean up some whitespace.
3263         From bug #346800
3265 2006-07-12  James Livingston  <doclivingston@gmail.com>
3267         * bindings/python/rb.defs:
3268         * bindings/python/rb.override: bind rb_error_dialog
3270         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3271         the current working directory for uninstalled plugins, and add the
3272         class name to the method name.
3274 2006-07-12  James Livingston  <doclivingston@gmail.com>
3276         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3277         the sources EOF type if it's NULL. Fixes #346284.
3279 2006-07-12  James Livingston  <doclivingston@gmail.com>
3281         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3282         I accidently committed. Nothing to see here, move along...
3284 2006-07-11  James Livingston  <doclivingston@gmail.com>
3286         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3287         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3288         Unknown.
3290 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3292         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3294 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3296         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3297         Don't try to set mtime if we've deleted the entry.
3299 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3301         * bindings/python/rhythmdb.defs:
3302         * rhythmdb/rhythmdb.c:
3303         * rhythmdb/rhythmdb.h:
3304         * rhythmdb/rhythmdb-private.h:
3305         * rhythmdb/rhythmdb-query.c:
3306         Move data structures holding registered entry types inside the
3307         RhythmDB object, and add a vfunc called when new types are registered.
3308         Add a flag to RhythmDBEntryType specifying whether entries of the type
3309         should be saved to the on-disk database.
3311         * sources/rb-audiocd-source.c:
3312         * sources/rb-daap-source.c:
3313         * sources/rb-ipod-source.c:
3314         * plugins/generic-player/rb-generic-player-source.c:
3315         * plugins/generic-player/rb-nokia770-source.c:
3316         * plugins/generic-player/rb-psp-source.c:
3317         Adjust to the above changes.
3319         * rhythmdb/rhythmdb-tree.c:
3320         If the type for an entry hasn't been registered yet, store the entry's
3321         properties as-is, and convert them to a real entry when the type is
3322         registered.  If the type doesn't get registered, save the entry back
3323         to the database unmodified.  From #330226.
3325 2006-07-10  James Livingston  <doclivingston@gmail.com>
3327         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3328         os.path.unlink to os.unlink, so removing stuff works.
3330 2006-07-10  James Livingston  <doclivingston@gmail.com>
3332         patch by: Ed Catmur  <ed@catmur.co.uk>
3333               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3335         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3336         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3337         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3338         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3339         internals of the cover database and Amazon lookup engine, and add
3340         support for loading art from the local file system. Fixes #345688.
3342         * plugins/rb/Coroutine.py:
3343         * plugins/rb/Makefile.am:
3344         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3345         plugin classes.
3347 2006-07-10  James Livingston  <doclivingston@gmail.com>
3349         * tests/Makefile.am: don't run the benchmark when doing "make check"
3351         * po/POTFILES.in: more build fixes, from Matti Lindell
3352         <feenixx@hotmail.com>. Fixes #347049.
3355 2006-07-10  James Livingston  <doclivingston@gmail.com>
3357         * plugins/cd-recorder/Makefile.am: build fixes
3359         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3360         attempt to change properties if we couldn't create an entry.
3362         * shell/rb-source-header.c: (rb_source_header_init),
3363         (rb_source_header_view_browser_changed_cb),
3364         (rb_source_header_sync_control_state):
3365         * shell/rb-tray-icon.c:
3366         * widgets/Makefile.am:
3367         * widgets/disclosure-widget.c:
3368         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3369         widget, as it hasn't been used for a while.
3371 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3373         * Makefile.am:
3374         * configure.ac:
3375         * data/ui/rhythmbox-ui.xml:
3376         * plugins/Makefile.am:
3377         * plugins/cd-recorder/.cvsignore:
3378         * plugins/cd-recorder/Makefile.am:
3379         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3380         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3381         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3382         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3383         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3384         (playlist_row_inserted_cb), (update_source),
3385         (shell_selected_source_notify_cb), (impl_activate),
3386         (impl_deactivate):
3387         * shell/Makefile.am:
3388         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3389         (rb_playlist_manager_cmd_save_playlist):
3390         * shell/rb-shell.c: (rb_shell_select_source):
3391         * sources/Makefile.am:
3392         * sources/rb-playlist-source-recorder.c:
3393         (rb_playlist_source_recorder_new):
3394         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3395         (rb_playlist_source_add_to_map):
3396         * sources/rb-playlist-source.h:
3397         Move cd burning into a plugin.  Fixes #344300.
3399 2006-07-10  James Livingston  <doclivingston@gmail.com>
3401         * lib/eel-gconf-extensions.c:
3402         * shell/rb-shell.c: remove some ununsed gnomeui includes
3404         * widgets/Makefile.am:
3405         * widgets/rb-song-display-box.c:
3406         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3407         since it isn't acutally used anywhere. Fixes #346926
3409 2006-07-09  James Livingston  <doclivingston@gmail.com>
3411         * bindings/python/rb.defs:
3412         * bindings/python/rb.override:
3413         * lib/rb-debug.c: (rb_debug_real):
3414         * lib/rb-debug.h:
3415         * plugins/rb/__init__.py: don't print out an extra newline when
3416         diverting python print statements to RB's debug log.
3418 2006-07-09  James Livingston  <doclivingston@gmail.com>
3420         * rhythmdb/rhythmdb-property-model.c:
3421         (rhythmdb_property_model_drag_data_get):
3422         * sources/rb-sourcelist-model.c:
3423         (rb_sourcelist_model_row_draggable),
3424         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3425         from the row reference is still valid. Fixes #346709.
3427 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3429         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3431         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3432         If all selected entries have the same rating, use that as the initial
3433         rating for the multiple song info dialog.  Fixes #345970.
3435 2006-07-09  James Livingston  <doclivingston@gmail.com>
3437         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3438         to prevent #343345:
3439                 - don't ever scale to 1x1, just hide the image in that case
3440                 - don't fade when the window is minimised
3441                 - use the last-good allocation width, not the current one - as
3442                   it sometimes get weird values.
3444 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3446         * data/ui/rhythmbox-ui.xml:
3447         * shell/rb-shell.c:
3448         Remove Import audio CD from menu.  Fixes #339732
3450 2006-07-08  James Livingston  <doclivingston@gmail.com>
3452         * metadata/test-metadata.c: (print_metadata_string),
3453         (load_metadata_cb): print out all the metadata we have read, not just
3454         a few.
3456         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3457         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3459 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3461         * plugins/lyrics/lyrics.py:
3462         Change the lyrics cache location to match Quod Libet's,
3463         and fix the '&' -> 'and' substitution to require spaces.
3465 2006-07-08  James Livingston  <doclivingston@gmail.com>
3467         * bindings/python/rb.defs:
3468         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3470         * configure.ac:
3471         * plugins/Makefile.am:
3472         * plugins/rb-python-module.c: (rb_python_module_init_python):
3473         * plugins/rb/Makefile.am: add a place to put common python classes.
3474         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3475         rb module/
3477         * plugins/lyrics/Makefile.am:
3478         * plugins/lyrics/Loader.py:
3479         * plugins/artdisplay/artdisplay/Makefile.am:
3480         * plugins/artdisplay/artdisplay/Loader.py:
3481         * plugins/rb/Loader.py: move the loader class to rb.Loader
3483         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3484         "print ...") to rb_debug. error output (e.g. exceptions) are still
3485         printed on stderr.
3487         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3488         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3489         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3490         instead of Loader.
3492         Fixes #346895.
3494 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3496         * shell/rb-shell-player.xml:
3497         * shell/rb-shell-player.h:
3498         Correct the details of the playing-song-property-changed signal.
3500 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3502         * lib/rb-marshal.list:
3503         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3504         (rb_shell_player_entry_changed_cb):
3505         * shell/rb-shell-player.h:
3506         * shell/rb-shell-player.xml:
3507         Emit a dbus signal when a property is changed on the playing entry.
3508         Fixes #332461.
3510 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3512         * rhythmdb/rhythmdb-private.h:
3513         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3514         Fix build break with gcc 4.1 by changing RBRefString pointers into
3515         gpointers.
3517 2006-07-07  James Livingston  <doclivingston@gmail.com>
3519         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3520         remove an extraneous !, which caused it not to monitor folders in the
3521         library with no tracks in them. Fixes #346759.
3523 2006-07-07  James Livingston  <doclivingston@gmail.com>
3525         * rhythmdb/rhythmdb-private.h:
3526         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3527         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3528         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3529         (rhythmdb_entry_get_string):
3530         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3531         flags for the affected properties. _sync_mirrored will get run
3532         automatically when a dirty property is accessed, which improves
3533         performance a bit (especially during startup) as we don't need to sync
3534         every time they change. From #325215.
3536         * tests/bench-rhythmdb-load.c
3537         * tests/Makefile.am: add a RhythmDB loading benchmark.
3539 2006-07-06  James Livingston  <doclivingston@gmail.com>
3541         * bindings/python/rb.defs:
3542         * bindings/python/rb.override: some more fixes, so that
3543         python classes derived from RBSource work correctly.
3545 2006-07-06  James Livingston  <doclivingston@gmail.com>
3547         * configure.ac: bump pygtk requirements to 2.8, since we're already
3548         using some features of it, and weird things will happen if people are
3549         actually trying to use pygtk 2.6.
3551         * bindings/python/rb.override:
3552         * bindings/python/rhythmdb.defs:
3553         * bindings/python/rhythmdb.override: allow python to set
3554         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3556         * sources/rb-browser-source.c: remove some left over member variables
3558 2006-07-06  James Livingston  <doclivingston@gmail.com>
3560         * rhythmdb/rhythmdb.c:
3561         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3562         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3563         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3564         former is pointless (as rhythmdb already knows which it should use)
3565         and the latter doesn't seem useful at all, and possibly bad. From
3566         #330226.
3568         * bindings/python/rhythmdb.defs:
3569         * bindings/python/rhythmdb.override:
3570         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3571         (handle_song_listing):
3572         * podcast/rb-podcast-manager.c:
3573         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3574         (rb_podcast_manager_insert_feed):
3575         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3576         (rb_audiocd_create_track_entry):
3577         * sources/rb-ipod-source.c: (entry_set_string_prop),
3578         (add_ipod_song_to_db):
3579         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3580         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3582 2006-07-05  James Livingston  <doclivingston@gmail.com>
3584         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3585         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3586         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3587         totem-plparser gives us, or the file name if it doesn't give us
3588         anything. Set the default file name when saving too. Fixes #345261
3590 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3592         patch by: Ed Catmur  <ed@catmur.co.uk>
3594         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3595         Skip all hidden directories, not just trash, and skip unreadable
3596         files.  Fixes #346322.
3598 2006-07-04  James Livingston  <doclivingston@gmail.com>
3600         * plugins/rb-module.h:
3601         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3602         (rb_module_new):
3603         * plugins/rb-plugin.h:
3604         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3605         (rb_plugin_finalise), (rb_plugin_set_property),
3606         (rb_plugin_get_property), (rb_plugin_activate),
3607         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3608         (rb_plugin_find_file):
3609         * plugins/rb-plugins-engine.c: (load_plugin_module):
3610         * plugins/rb-python-module.c: (rb_python_module_new_object),
3611         (rb_python_module_new):
3612         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3613         rb_plugin_find_file method for locating plugin-specific data. Fixes
3614         346473.
3616         * bindings/python/rb.defs:
3617         * plugins/Makefile.am:
3618         * plugins/generic-player/rb-generic-player-plugin.c:
3619         (create_source_cb):
3620         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3622 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3624         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3625         (rb_metadata_can_save), (rb_metadata_save):
3626         Protect the dbus connection with a mutex.
3628 2006-07-03  James Livingston  <doclivingston@gmail.com>
3630         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3631         case of the parser/tagger not being able to be created.
3633 2006-07-03  James Livingston  <doclivingston@gmail.com>
3635         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3637         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3638         window resizable, as it used to be. Fixes #345940.
3640 2006-07-01  James Livingston  <doclivingston@gmail.com>
3642         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3644         * rhythmdb/rhythmdb.h:
3645         * rhythmdb/rhythmdb-private.h:
3646         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3647         (rhythmdb_tree_parser_end_element), (save_entry):
3648         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3649         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3650         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3651         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3652         MusicBrainz track IDs in the database, and bump the on-disk version
3653         number to trigger a metadata reload.
3655         * backends/gstreamer/rb-player-gst.c: (process_tag):
3656         * metadata/rb-metadata-common.c:
3657         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3658         (rb_metadata_gst_field_to_gst_tag):
3659         * metadata/rb-metadata.h: grab MB track IDs and use them.
3661         * plugins/audioscrobbler/rb-audioscrobbler.c:
3662         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3663         (rb_audioscrobbler_timeout_cb),
3664         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3665         the other metadata. Fixes #343491.
3667 2006-06-30  James Livingston  <doclivingston@gmail.com>
3669         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3670         method.
3672 2006-06-30  James Livingston  <doclivingston@gmail.com>
3674         * bindings/python/rb.defs:
3675         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3676         (rb_browser_source_songs_show_popup_cb),
3677         (default_show_entry_popup):
3678         * sources/rb-browser-source.h:
3679         * sources/rb-library-source.c: (rb_library_source_class_init),
3680         (rb_library_source_constructor), (impl_show_popup): allow
3681         RBBrowserSource-derived sources to override the entry context menu
3682         properly - by making it a virtual function, rather than relying on
3683         signal handler order (which doesn't really work).
3685 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3687         * rhythmdb/rhythmdb-query-model.c:
3688         (rhythmdb_query_model_reapply_query_cb):
3689         Use the original query, not the preprocessed query, when redoing
3690         the query to pick up entries that previously didn't match.
3691         Preprocessing the query twice is bad.  Fixes #346186.
3693 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3695         * plugins/audioscrobbler/rb-audioscrobbler.c:
3696         (rb_audioscrobbler_song_changed_cb):
3697         Just check if the elapsed time has been reset, rather
3698         than checking if it's a different track.  Fixes #344827.
3700 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3702         * backends/gstreamer/rb-player-gst.c:
3703         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3704         drive spins up, #344576.
3706 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3708         * plugins/audioscrobbler/rb-audioscrobbler.c:
3709         (rb_audioscrobbler_perform):
3710         Use HTTP/1.1.  Fixes #345895.
3712 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3714         * lib/rb-preferences.h:
3715         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3716         (check_auto_proxy_config), (get_proxy_config):
3717         Don't try to use a HTTP proxy if no proxy host is specified.
3718         Alert the user to the fact that we don't support automatic proxy
3719         configuration as infrequently as possible.  From #345712.
3721 2006-06-25  James Livingston  <doclivingston@gmail.com>
3723         * rhythmdb/rhythmdb-property-model.c:
3724         (rhythmdb_property_model_set_property): connect to the
3725         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3726         things get removed correctly, fixes #338183.
3728 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3730         * rhythmdb/rhythmdb-query-model.c:
3731         (rhythmdb_query_model_drag_data_received):
3732         Fix build break.
3734 2006-06-25  James Livingston  <doclivingston@gmail.com>
3736         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3738         * widgets/rb-search-entry.c: (rb_search_entry_init),
3739         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3740         search box have a pale yellow background when it's in use, except for
3741         when the user has an "accessability" theme. Code based heavily on
3742         Epiphany's. Fixes #344416.
3744 2006-06-25  James Livingston  <doclivingston@gmail.com>
3746         * plugins/lyrics/lyrics.py:
3747         * plugins/pythonconsole/pythonconsole.py:
3748         * plugins/sample-python/sample-python.py: don't import gettext stuff
3749         as _, as the C code does this for us. Fixes i18n for python plugins,
3750         #343081
3752 2006-06-25  James Livingston  <doclivingston@gmail.com>
3754         * rhythmdb/rhythmdb-query-model.c:
3755         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3756         a model use a reorder rather then deleting and re-adding the entry.
3757         This means it does do weird things like stop playback of a track that
3758         is dragged, fixing #337657.
3760 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3762         * metadata/rb-metadata-dbus-service.c:
3763         Add missing #include <glib/gi18n.h> from previous commit.
3765 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3767         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3769         * metadata/rb-metadata-dbus-service.c: (main):
3770         Initialize gettext in the metadata helper.
3771         * metadata/rb-metadata-gst.c:
3772         Make some strings translatable.  Fixes #345286.
3774 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3776         * configure.ac:
3777         * lib/Makefile.am:
3778         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3779         Inline the custom icons so they can always be loaded, but are still
3780         themable.  Fixes #345796.
3782 2006-06-23  James Livingston  <doclivingston@gmail.com>
3784         * sources/rb-auto-playlist-source.c:
3785         (rb_auto_playlist_source_do_query): stop the search box being applied
3786         for limits in auto playlists. Fixes #345307.
3788 2006-06-23  James Livingston  <doclivingston@gmail.com>
3790         * shell/rb-shell-clipboard.c:
3791         (rb_shell_clipboard_set_source_internal),
3792         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3793         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3794         non-library tracks, as we don't supprot it yet. From #345248.
3796 2006-06-23  James Livingston  <doclivingston@gmail.com>
3798         patch by: Brian Cameron  <brian.cameron@sun.com>
3800         * plugins/generic-player/rb-generic-player-plugin.c:
3801         * plugins/generic-player/rb-generic-player-source.c:
3802         * plugins/generic-player/rb-nokia770-source.c:
3803         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3804         Fixes 345673.
3806 2006-06-22  James Livingston  <doclivingston@gmail.com>
3808         * backends/rb-player.c: (rb_player_interface_init):
3809         * lib/rb-marshal.list:
3810         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3811         * rhythmdb/rhythmdb-query-model.c:
3812         (rhythmdb_query_model_class_init):
3813         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3814         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3815         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3816         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3817         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3818         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3819         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3820         possible not.
3822 2006-06-20  James Livingston  <doclivingston@gmail.com>
3824         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3826         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3827         metadata to clients. Fixes #345276.
3829 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3831         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3832         (rb_add_id3_tagger):
3833         Fix plugin/element version detection for id3v2mux.
3835 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3837         * sources/rb-source.c: (rb_source_finalize),
3838         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3839         (_autohide_update_visibility),
3840         (_rb_autohide_source_post_entry_deleted_cb),
3841         (_rb_autohide_source_row_inserted_cb),
3842         (_rb_source_hide_when_empty):
3843         Use post-entry-delete signal to update status and autohide sources.
3845 2006-06-20  James Livingston  <doclivingston@gmail.com>
3847         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3848         "selection changed" idle callback, if present.
3850 2006-06-19  James Livingston  <doclivingston@gmail.com>
3852         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3854         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3855         don't try to translate the empty string. Fixes #345285.
3857 2006-06-19  James Livingston  <doclivingston@gmail.com>
3859         * bindings/python/rhythmdb.override: more python binding fixes
3861 2006-06-19  James Livingston  <doclivingston@gmail.com>
3863         * lib/rb-util.c: (rb_copy_function):
3864         * lib/rb-util.h: add a function that returns the same pointer it was
3865         passed.
3867         * rhythmdb/rhythmdb.h:
3868         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3869         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3870         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3871         and RhythmDBEntryType into boxed types. This allows them to be used
3872         from python. Note that entry-types aren't actually reference counted
3873         (yet).
3875         * bindings/python/rb.defs:
3876         * bindings/python/rhythmdb.defs:
3877         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3878         return types of some bindings.
3880         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3881         (process_added_entries_cb), (rhythmdb_entry_finalize),
3882         (rhythmdb_entry_delete):
3883         * daapsharing/rb-daap-connection.c:
3884         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3885         (rb_daap_connection_get_property):
3886         * plugins/generic-player/rb-generic-player-source.c:
3887         (rb_generic_player_source_load_songs), (load_playlist_file):
3888         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3889         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3890         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3891         (idle_process_update), (rhythmdb_query_model_add_entry),
3892         (rhythmdb_query_model_insert_into_main_list),
3893         (rhythmdb_query_model_insert_into_limited_list),
3894         (rhythmdb_query_model_remove_from_main_list),
3895         (rhythmdb_query_model_remove_from_limited_list),
3896         (rhythmdb_query_model_drag_data_received),
3897         (rhythmdb_query_model_add_results),
3898         (rhythmdb_query_model_get_column_type),
3899         (rhythmdb_query_model_get_value):
3900         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3901         (rhythmdb_tree_entry_delete), (remove_one_song):
3902         * shell/rb-play-order-linear-loop.c:
3903         (rb_linear_play_order_loop_get_next),
3904         (rb_linear_play_order_loop_get_previous):
3905         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3906         (rb_linear_play_order_get_previous):
3907         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3908         (rb_queue_play_order_get_previous):
3909         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3910         (rb_random_filter_history), (rb_random_play_order_get_next),
3911         (rb_random_play_order_go_next), (rb_random_db_changed),
3912         (rb_random_playing_entry_changed):
3913         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3914         (remove_from_history), (add_randomly_to_history),
3915         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3916         * shell/rb-play-order.c: (rb_play_order_class_init),
3917         (rb_play_order_set_property), (rb_play_order_get_property),
3918         (rb_play_order_update_have_next_previous):
3919         * shell/rb-play-order.h:
3920         * shell/rb-shell-clipboard.c:
3921         (rb_shell_clipboard_process_deletions),
3922         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3923         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3924         * sources/rb-auto-playlist-source.c:
3925         (rb_auto_playlist_source_constructor):
3926         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3927         (rb_browser_source_set_property), (rb_browser_source_get_property),
3928         (rb_browser_source_do_query):
3929         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3930         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3931         * sources/rb-ipod-source.c: (add_rb_playlist),
3932         (add_ipod_song_to_db), (impl_paste):
3933         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3934         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3935         * sources/rb-library-source.c: (layout_example_label_update):
3936         * sources/rb-missing-files-source.c:
3937         (rb_missing_files_source_class_init),
3938         (rb_missing_files_source_set_property),
3939         (rb_missing_files_source_get_property),
3940         (rb_missing_files_source_new):
3941         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3942         (rb_playlist_source_set_property),
3943         (rb_playlist_source_get_property):
3944         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3945         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3946         (construct_query_from_selection):
3947         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3948         * sources/rb-static-playlist-source.c:
3949         (rb_static_playlist_source_constructor),
3950         (rb_static_playlist_source_add_location_internal):
3951         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3952         * widgets/rb-header.c: (rb_header_class_init),
3953         (rb_header_set_property), (rb_header_get_property):
3954         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3955         (rb_library_browser_set_property),
3956         (rb_library_browser_get_property):
3957         * widgets/rb-song-info.c: (rb_song_info_class_init),
3958         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3959         change, do s/pointer/boxed/ in many places and free entry-types
3960         properly.
3962 2006-06-18  James Livingston  <doclivingston@gmail.com>
3964         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3965         unushed GThreadPool non-exclusive threads every now and then.
3967         * rhythmdb/rhythmdb-private.h:
3968         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3969         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3970         threads. Fixes #341593
3972 2006-06-19  James Livingston  <doclivingston@gmail.com>
3974         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3975         the "Track number" checkbox actually work for playlists. From #329986.
3977 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3979         * plugins/generic-player/rb-generic-player-source.c:
3980         Get playlist and audio folder information from HAL.  Fixes #333845.
3982 2006-06-18  James Livingston  <doclivingston@gmail.com>
3984         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3986         * widgets/rb-entry-view.h:
3987         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3988         (rb_entry_view_append_column_custom),
3989         (rb_entry_view_insert_column_custom): add support for inserting custom
3990         columns at arbitrary locations, rather than just appending to the end.
3992         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3993         the playlists "track number" column go at the start, and add a normal
3994         track number column. Fixes #329986.
3996 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3998         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3999         a mnemonic conflict.  Add ellipses to the edit button.
4000         * sources/rb-library-source.c:
4001         (rb_library_source_edit_profile_clicked_cb),
4002         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4003         mnemonic widget to the labels. Fixes #344114.
4005 2006-06-18  James Livingston  <doclivingston@gmail.com>
4007         * configure.ac: bump version
4008         * NEWS: add NEWS for 0.9.5
4010 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4012         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4013         (rb_uri_handle_recursively):
4014         Don't attempt to recurse into directories we can't open.  
4015         Fixes #341485.
4017 2006-06-18  James Livingston  <doclivingston@gmail.com>
4019         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4021         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4022         #344610.
4024 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4026         * bindings/python/rb.defs:
4027         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4028         * shell/rb-shell-player.h:
4029         * shell/rb-shell.c: (rb_shell_play_entry):
4030         Add source parameter to rb_shell_player_play_entry, using the selected
4031         source if not specified.
4033         * shell/rb-play-order.c: (rb_play_order_class_init),
4034         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4035         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4036         (default_playing_entry_removed):
4037         * shell/rb-play-order.h:
4038         Move entry removal handling back to the row-deleted signal, as we need
4039         the entry to be present in the model.  When changing to the next entry
4040         after the playing entry is deleted, set the new entry as the playing
4041         entry and then sync it to the player in an idle handler, so we don't
4042         end up playing it if it was removed too.
4043         * shell/rb-play-order-queue.c:
4044         (rb_queue_play_order_playing_entry_changed),
4045         (rb_queue_play_order_playing_entry_removed):
4046         Use the playing-entry-removed handler from the play order class,
4047         setting a flag so we don't try to remove the already-removed entry
4048         from the model.
4050         This makes removal of the playing entry from playlists etc. work more
4051         or less correctly for all play orders.  Fixes #344627.
4053 2006-06-17  James Livingston  <doclivingston@gmail.com>
4055         patch by: Elijah Newren  <newren@gmail.com>
4057         * tests/test-rhythmdb.c: fix the build with older versions of check
4058         (again). Fixes #343718.
4060 2006-06-17  James Livingston  <doclivingston@gmail.com>
4062         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4063         name for capsfilter's "caps" property. Fixes #344968.
4065 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4067         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4068         Don't leak the selected entry list when finding an entry to play.
4070 2006-06-17  James Livingston  <doclivingston@gmail.com>
4072         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4073         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4074         as a O(1) one works fine, and it will get called often when the user
4075         deleted multiple tracks. Part of #344922.
4077 2006-06-17  James Livingston  <doclivingston@gmail.com>
4079         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4080         rb_shell_player_stop and rb_shell_player_playpause not mutually
4081         recursive. Fixed #336912.
4083 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4085         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4086         Treat nested elements inside properties as unknown.  Fixes parsing of
4087         podcast feeds with unescaped HTML in description tags, bug #344532.
4089 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4091         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4092         when quitting.  Fixes #344875.
4094 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4096         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4097         Move the playing-entry-removed handling to after the normal entry
4098         delete handling, since we're called after the entry has been removed
4099         from the query model now.  Fixes crashes described in #344627.
4101 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4103         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4104         (rb_rating_get_rating_from_widget):
4105         * widgets/rb-rating.c: (rb_rating_class_init),
4106         (rb_rating_finalize), (rb_rating_get_property),
4107         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4108         (rb_rating_button_press_cb):
4109         Don't crash when ratings icons can't be found.  Fixes #344533.
4111 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4113         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4115 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4117         * Makefile.am:
4118         * configure.ac:
4119         * remote/Makefile.am:
4120         * remote/dbus/Makefile.am:
4121         * remote/dbus/rb-client.c:
4122         * shell/Makefile.am:
4123         New dbus client program providing --play/--next etc. arguments.
4124         Fixes #340863, #155763.
4126 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4128         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4129         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4131 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4133         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4135         * rhythmdb/rhythmdb-query-model.c:
4136         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4137         to Library incorrectly
4139 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4141         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4142         Return input string untouched if gnome_vfs_uri_new returns NULL.
4143         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4144         (rb_static_playlist_source_add_list_uri):
4145         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4146         URIs don't break it.  Fixes #339033.
4148 2006-06-08  James Livingston  <doclivingston@gmail.com>
4150         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4151         for sources on the edge (i.e. the queue). Fixes #328409.
4153         * sources/rb-ipod-source.c: fix typo
4155 2006-06-08  James Livingston  <doclivingston@gmail.com>
4157         * configure.ac:
4158         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4159         --enable-ipod-writing to enable the ipod syncing code.
4161 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4163         * sources/rb-library-source.c: (layout_example_label_update):
4164         add missing comma so we don't generate broken markup.
4166 2006-06-08  James Livingston  <doclivingston@gmail.com>
4168         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4169         tag-merging with id3v2mux as well as id3mux. From #342330.
4171 2006-06-07  James Livingston  <doclivingston@gmail.com>
4173         * tests/test-rhythmdb.c: #define fail_if for old version of check
4174         which don't have it. Hopefully fixes #343718.
4176 2006-06-07  James Livingston  <doclivingston@gmail.com>
4178         * shell/rb-playlist-manager.c:
4179         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4180         g_value_array_free with NULL. Fixes #341053.
4182 2006-06-07  James Livingston  <doclivingston@gmail.com>
4184         * shell/rb-playlist-manager.c:
4185         (rb_playlist_manager_playlist_entries_changed),
4186         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4187         instead of "row-removed", which fixes updating "burn playlist"
4188         sensitivity. Fixes #331119.
4190 2006-06-07  James Livingston  <doclivingston@gmail.com>
4192         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4193         rather than restarting if the source uses _RETRY and there is an
4194         actual error (like an undecodable stream) rather than it just dropping
4195         out and causing EOS.
4197 2006-06-07  James Livingston  <doclivingston@gmail.com>
4199         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4200         free the pixbufs if they couldn't be loaded. Fixed #343852.
4202 2006-06-07  James Livingston  <doclivingston@gmail.com>
4204         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4205         the close button on the dialog work. Fixes #335346.
4207 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4209         * sources/rb-sourcelist-model.c: (path_is_droppable),
4210         (path_is_reorderable):
4211         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4212         (row_activated_cb), (emit_show_popup), (key_release_cb),
4213         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4214         Ignore group marker rows in the source list.  Fixes #344089, a couple
4215         of other crashers, and some weird UI glitches too.
4217 2006-06-07  James Livingston  <doclivingston@gmail.com>
4219         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4220         the seeking query fails. This is needed because many gst elements
4221         don't implement the seeking query yet. Should fix 329977.
4223 2006-06-06  James Livingston  <doclivingston@gmail.com>
4225         * configure.ac: bump version for a prerelease, turn on track transfer
4226         by default.
4228         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4229         ipod transfer stuff, since it has big issues and we'll hopefully land
4230         real support (bug 310774) after 0.9.5
4232 2006-06-06  James Livingston  <doclivingston@gmail.com>
4234         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4235         id3v2mux once we've detected it.
4237 2006-06-06  James Livingston  <doclivingston@gmail.com>
4239         * lib/Makefile.am:
4240         * tests/test-rhythmdb.c: undo accidental commit which caused
4241         rb-thread.c to be built (which it isn't normally)
4243 2006-06-06  James Livingston  <doclivingston@gmail.com>
4245         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4246         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4247         fail_{if/unless} calls, as some versions of check need them (they are
4248         optional in others). Should fix bug 343718.
4250 2006-06-06  James Livingston  <doclivingston@gmail.com>
4252         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4253         343836.
4254         
4255         * lib/Makefile.am:
4256         * lib/rb-thread.c: (process_actions):
4257         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4258         tests that don't pass.
4260 2006-06-05  James Livingston  <doclivingston@gmail.com>
4262         * data/glade/Makefile.am:
4263         * data/glade/load-failure.glade:
4264         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4265         dialog.
4267 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4269         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4270         checked in.
4272 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4274         * bindings/python/rb.defs:
4275         * sources/rb-source.h:
4276         * sources/rb-source.c: (rb_source_class_init),
4277         (rb_source_set_property), (rb_source_get_property),
4278         (rb_sourcelist_group_get_type):
4279         Add 'sourcelist-group' property on the RBSource class, describing how
4280         sources should be grouped in the source list.
4282         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4283         (rb_sourcelist_model_new), (real_row_is_separator),
4284         (rb_sourcelist_model_is_row_visible),
4285         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4286         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4287         (rb_sourcelist_model_row_draggable),
4288         (rb_sourcelist_model_row_inserted_cb),
4289         (rb_sourcelist_model_row_deleted_cb),
4290         (rb_sourcelist_model_get_group_path):
4291         * sources/rb-sourcelist-model.h:
4292         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4293         (rb_sourcelist_append):
4294         Add group marker rows for each sourcelist group, and use these to
4295         insert sources in the right place.  Sort transient sources (DAAP
4296         shares) by name.  Show the group marker rows as separators when the
4297         next visible row is a source.  Make persistant sources (playlists) and
4298         removable sources reorderable using drag and drop, restricting them
4299         within the source groups.
4300         
4301         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4302         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4303         * sources/rb-daap-source.c: (rb_daap_source_new):
4304         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4305         * sources/rb-static-playlist-source.c:
4306         (rb_static_playlist_source_new):
4307         * plugins/generic-player/rb-generic-player-source.c:
4308         (rb_generic_player_source_new):
4309         * plugins/generic-player/rb-nokia770-source.c:
4310         (rb_nokia770_source_new):
4311         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4312         Add source list group information to existing source classes.
4314         Fixes #318754 and #336492.
4316 2006-06-04  James Livingston  <doclivingston@gmail.com>
4318         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4319         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4320         win32 build fixes.
4322 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4324         * rhythmdb/rhythmdb-query-model.c:
4325         (rhythmdb_query_model_class_init),
4326         (rhythmdb_query_model_remove_from_main_list):
4327         * rhythmdb/rhythmdb-query-model.h:
4328         Add a new 'post-entry-delete' signal, emitted when the entry has been
4329         removed from the model's data structures.
4331         * shell/rb-play-order.c: (rb_play_order_finalize),
4332         (rb_play_order_query_model_changed),
4333         (rb_play_order_post_entry_delete_cb):
4334         Use the new signal to update the play order, so the queue play order
4335         doesn't try to scroll to entries that don't exist in a way that causes
4336         the tree view to crash.  Fixes #340216.
4338 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4340         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4341         Fix rb_debug call I missed previously.
4343 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4345         * metadata/rb-metadata-gst.c:
4346         Don't use NULL as the error message for ignored files, as it crashes
4347         with some C libraries.  Fixes #343713.
4349 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4351         * widgets/rb-dialog.c: (rb_error_dialog):
4352         * widgets/rb-dialog.h:
4353         Mark rb_error_dialog as taking printf-like arguments, and use a format
4354         string for the primary message rather than passing in the message
4355         directly.
4357         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4358         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4359         (info_available_cb):
4360         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4361         * shell/rb-removable-media-manager.c:
4362         (rb_removable_media_manager_eject_medium_cb):
4363         Make sure all calls to rb_error_dialog use string constants for the
4364         format string rather than passing the error message directly.  Remove
4365         an extra %s from the message used when playback fails.  Fixes #343562.
4367         * lib/rb-debug.h:
4368         * sources/rb-audiocd-source.c:
4369         * plugins/audioscrobbler/rb-audioscrobbler.c:
4370         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4371         Mark rb_debug as taking printf-like arguments and fix a few resulting
4372         warnings.
4374 2006-06-02  James Livingston  <doclivingston@gmail.com>
4376         * configure.ac:
4377         + macros/check.m4: add support for using check for unit tests, the .m4
4378         files is so autogen can run without check being installed
4380         * tests/Makefile.am:
4381         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4382         some of the old tests, and add some new ones. Currently
4383         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4384         yet (the query doesn't return any entries).
4386         - tests/deserialization-test1.xml:
4387         - tests/deserialization-test2.xml:
4388         - tests/deserialization-test3.xml:
4389         - tests/test-rhythmdb-indexing.c:
4390         - tests/test-rhythmdb-simple.c:
4391         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4392         have been ported
4394         - tests/test-cd.c:
4395         - tests/test-cmdline.c: remove obsolete tests
4397 2006-06-02  James Livingston  <doclivingston@gmail.com>
4399         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4400         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4401         id3v2mux, and check whether we are using a version of id3mux that has
4402         the correct merge-mode behaviour.
4404         * plugins/sample-python/Makefile.am: fix distcheck.
4406         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4407         the changed-files source was added before trying to remove it.
4409         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4410         *old* bug which would crash if a query with top-level disjunctions
4411         tried to check later disjunctive parts. Hooray for unit-testing.
4413 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4415         * player/rb-recorder-gst.c (rb_recorder_set_device):
4416         Check for a null drive.
4418 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4420         * lib/Makefile.am:
4421         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4422         Register the app icon as a builtin if the icon theme can't find it.
4424 2006-05-31  James Livingston  <doclivingston@gmail.com>
4426         * player/rb-recorder-gst.c: add missing include.
4428 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4430         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4431         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4432         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4433         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4434         (rb_recorder_set_device), (rb_recorder_get_default_device):
4435         * shell/main.c: (main):
4436         * shell/rb-removable-media-manager.c:
4437         (rb_removable_media_manager_finalize),
4438         (get_nautilus_burn_drive_for_path),
4439         (rb_removable_media_manager_playing_uri_changed_cb),
4440         (rb_removable_media_manager_load_media),
4441         (nautilus_burn_drive_get_device),
4442         (rb_removable_media_manager_scan):
4443         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4445         Update for libnautilus-burn 2.15.3 API changes.
4446         Fixes #342604
4448 2006-05-30  James Livingston  <doclivingston@gmail.com>
4450         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4451         "return" to that it asks for the password again if it was wrong.
4453 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4455         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4456         typefind element.
4458 2006-05-30  James Livingston  <doclivingston@gmail.com>
4460         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4461         (download_progress_cb): don't do wonky things if the transfer
4462         "suceeds" without transferring any data.
4464 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4466         * sources/rb-library-source.c: (layout_example_label_update),
4467         (build_filename):  Fix crash when no audio profile is selected.
4468         Fixes #341447.
4470 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4472         * shell/rb-shell.c: (rb_shell_clear_queue):
4473         * shell/rb-shell.h:
4474         * shell/rb-shell.xml:
4475         * sources/rb-play-queue-source.c:
4476         (rb_play_queue_source_clear_queue),
4477         (rb_play_queue_source_cmd_clear):
4478         * sources/rb-play-queue-source.h:
4479         Add clearQueue dbus method.
4481 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4483         * shell/main.c: (main):  Implement --quit option.
4485 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4487         * rhythmdb/rhythmdb-private.h:
4488         * rhythmdb/rhythmdb-tree.h:
4489         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4490         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4491         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4492         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4493         (rhythmdb_entry_get_boolean):
4494         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4495         bitmask, giving the db backend anything past the first 16 bits for 
4496         its own private use.
4498         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4499         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4500         Add a 'loading' flag to indicate that an entry is being loaded from
4501         disk, and use that to ignore entry_set operations on such entries
4502         rather than the 'inserted' flag, which doesn't quite mean the same
4503         thing.  Fixes #342694.
4505 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4507         * shell/rb-shell.xml: Remove visibility property, since it causes
4508         crashes (dbus bug 7057) and doesn't do much else.
4510 2006-05-28  James Livingston  <doclivingston@gmail.com>
4512         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4514         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4515         * po/POTFILES.in: fix some more i18n issues.
4517 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4519         * bindings/python/rb.defs:
4520         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4521         (filter_mmkeys):
4522         * shell/rb-shell-player.h:
4523         Deprecate the useless 'ignore_stop' parameter to
4524         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4525         API.  From bug #334829.
4527 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4529         * plugins/generic-player/rb-generic-player-source.c:
4530         (visit_playlist_dirs), (default_transform_playlist_uri):
4531         When playlist parsing fails, unref the playlist, not the parent
4532         source.  Fix memory leak in playlist uri transform.
4533         * plugins/generic-player/rb-nokia770-source.c:
4534         (impl_transform_playlist_uri):
4535         Fix memory leak in playlist uri transform.
4537 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4539         * doc/reference/Makefile.am: fix grk-doc build
4541 2006-05-27  James Livingston  <doclivingston@gmail.com>
4543         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4545         * plugins/lyrics/lyrics.py:
4546         * po/POTFILES.in: Make strings in plugins translatable. From bug
4547         343081.
4549 2006-05-27  James Livingston  <doclivingston@gmail.com>
4551         * backends/Makefile.am:
4552         * backends/gstreamer/Makefile.am:
4553         * lib/Makefile.am:
4554         * plugins/audioscrobbler/Makefile.am:
4555         * plugins/generic-player/Makefile.am:
4556         * po/POTFILES.in:
4557         * rhythmdb/rhythmdb-monitor.c:
4558         * rhythmdb/rhythmdb.c:
4559         * sources/Makefile.am:
4560         * widgets/Makefile.am: fix compilation after some CVS surgery was
4561         done.
4563 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4565         * bindings/python/rhythmdb.defs:
4566         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4567         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4568         (rhythmdb_query_deserialize):
4569         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4570         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4571         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4572         (rhythmdb_entry_register_type_alias),
4573         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4574         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4575         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4576         (rhythmdb_entry_podcast_feed_get_type),
4577         (rhythmdb_entry_import_error_get_type),
4578         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4579         * rhythmdb/rhythmdb.h:
4580         Allocate a specified amount of extra memory for each db entry, to be
4581         used to store fields specific to the entry type.  Optionally associate
4582         a name with each entry type, to be used when saving entries and
4583         auto playlists to disk.  Allow entry types to have multiple names
4584         to handle older playlist files that used '0' to represent 'song'.
4585         Use private data to store podcast fields.
4587         * rhythmdb/rhythmdb-private.h:
4588         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4589         (rhythmdb_tree_parser_end_element), (save_entry),
4590         (rhythmdb_tree_entry_set):
4591         Simplify property handling by using existing code to convert
4592         properties from strings to GValues and to set properties on entries.
4593         Other assorted changes due to the above.
4595         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4596         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4597         * sources/rb-generic-player-source.c:
4598         (rb_generic_player_source_new):
4599         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4600         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4601         * sources/rb-psp-source.c: (rb_psp_source_new):
4602         Update for changes to rhythmdb_entry_register_type.  None of these
4603         entry types need names or use private data.
4605         Fixes #337429.
4607 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4609         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4610         Fix creation of ignored-file db entries - need to check for
4611         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4613 2006-05-25  James Livingston  <doclivingston@gmail.com>
4615         * AUTHORS:
4616         * MAINTAINERS: update my email address
4618 2006-05-25  James Livingston  <doclivingston@gmail.com>
4620         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4621         "(... mix)" when searching for lyrics. Cache the lyrics under
4622         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4624 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4626         * sources/rb-import-errors-source.c:
4627         (rb_import_errors_source_class_init):
4628         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4629         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4630         * sources/rb-source.c: (rb_source_class_init),
4631         (default_move_to_trash):
4632         Implement the basic move-to-trash operation once in rb-source.c, 
4633         rather than in each source type that supports it.
4635         * plugins/ipod/rb-ipod-plugin.c:
4636         * shell/rb-removable-media-manager.c:
4637         * shell/rb-shell.c: (rb_shell_constructor):
4638         Only scan removable media once after loading plugins.  Add a flag
4639         plugins can use to check if the initial scan has been done.
4641         * data/rhythmbox.schemas:
4642         Enable ipod and generic-player plugins by default.
4643         
4644         * configure.ac:
4645         * data/ui/Makefile.am:
4646         * data/ui/generic-player-ui.xml:
4647         * data/ui/rhythmbox-ui.xml:
4648         * plugins/Makefile.am:
4649         * plugins/generic-player/Makefile.am:
4650         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4651         * plugins/generic-player/rb-generic-player-plugin.c:
4652         * sources/Makefile.am:
4653         * sources/rb-generic-player-source.c:
4654         * sources/rb-generic-player-source.h:
4655         * sources/rb-nokia770-source.c:
4656         * sources/rb-nokia770-source.h:
4657         * sources/rb-psp-source.c: (visit_playlist_dirs):
4658         * sources/rb-psp-source.h:
4659         Pluginise generic player (and nokia770 and PSP) support and add
4660         move-to-trash for players not mounted read-only.
4661         Fixes #342868.
4663 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4665         * daapsharing/rb-daap-connection.c (handle_song_listing):
4666         Lower bound check for batch commit.  Fixes #342848
4668         * sources/rb-daap-source.c (rb_daap_source_get_status):
4669         Always set output variables if provided.
4671 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4673         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4674         (rhythmdb_tree_entry_delete), (remove_one_song):
4675         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4676         Fix two db entry reference counting problems.
4677         The initial reference on the entry is held by the db backend, but it
4678         was never being dropped.  The reference count was incremented when
4679         adding an entry to the deleted_entries map and to the
4680         deleted_entries_to_emit list, but only decremented for one of those.
4682 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4684         * daapsharing/rb-daap-connection.c (http_response_handler) 
4685         (rb_daap_connection_dispose):
4686         Call soup_session_abort to make sure there are no outstanding
4687         requests when we dispose of the connection.  Ignore cancelled
4688         messages in the callback.
4690 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4692         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4693         (rb_daap_source_disconnect): Set a flag when disconnecting
4694         the source.  Check this flag in connection callback
4695         to see if we should release the connection.
4697 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4699         * daapsharing/Makefile.am:
4700         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4701         (rb_daap_connection_class_init), (connection_connected),
4702         (connection_disconnected), (connection_operation_done),
4703         (build_message), (connection_set_error_message),
4704         (actual_http_response_handler), (http_get),
4705         (entry_set_string_prop), (emit_progress_idle),
4706         (handle_server_info), (handle_login), (handle_update),
4707         (handle_database_info), (handle_song_listing), (handle_playlists),
4708         (handle_playlist_entries), (handle_logout),
4709         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4710         (connection_response_data_free), (connected_cb),
4711         (rb_daap_connection_connect), (disconnected_cb),
4712         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4713         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4714         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4715         (rb_daap_connection_get_property):
4716         * daapsharing/rb-daap-connection.h:
4717         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4718         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4719         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4720         (rb_daap_hash_generate):
4721         * daapsharing/rb-daap-hash.h:
4722         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4723         (rb_daap_get_icon), (remove_source), (stop_browsing),
4724         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4725         (connection_connecting_cb), (connection_disconnected_cb),
4726         (release_connection), (rb_daap_source_connection_cb),
4727         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4728         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4730         Adds a better async API for connect and disconnect.  Doesn't share
4731         callback data for every async call.  Adds a connect signal.  Uses
4732         an operation-done signal to trigger the callbacks.  Displays an
4733         error when connections fail.  A few refcounting fixes to fix
4734         crashes.  Uses a weak pointer to set the connection to NULL so we
4735         don't clobber references.  Wait for each disconnect when shutting
4736         down sources.  Split out DAAP hash stuff into its own file.  Fix
4737         typo in header.
4739         Fixes #342643
4740         
4741 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4743         * sources/rb-auto-playlist-source.c:
4744         (rb_auto_playlist_source_new_from_xml):
4745         Initialize the gvalue used to hold the size limit correctly.
4746         Fixes #342744.
4748 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4750         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4751         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4752         * shell/rb-shell.h:
4753         * shell/rb-shell.xml:
4754         Convert rb_shell_quit into a dbus method, and add visibility dbus
4755         property.
4757 2006-05-22  James Livingston  <doclivingston@gmail.com>
4759         * rhythmdb/rhythmdb.h:
4760         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4761         (rhythmdb_entry_is_editable), (action_thread_main),
4762         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4763         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4764         false, and syncing into the file.
4766         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4767         (rhythmdb_entry_iradio_get_type),
4768         (rhythmdb_entry_import_error_get_type):
4769         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4770         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4771         change the DB.
4773 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4775         * rhythmdb/Makefile.am:
4776         * rhythmdb/rhythmdb-monitor.c:
4777         * rhythmdb/rhythmdb-private.h:
4778         * rhythmdb/rhythmdb-query.c:
4779         * rhythmdb/rhythmdb.c:
4780         Split up rhythmdb.c a bit.
4782 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4784         * data/glade/audioscrobbler-prefs.glade:
4785         Add a link to the last.fm server status page.
4787 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4789         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4790         Capitalization fix.
4791         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4792         (impl_create_configure_dialog):  UI layout fixes, remove
4793         dialog separator, and capitalization fix for window title.
4794         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4795         and remove dialog separator.
4796         * data/glade/plugins.glade:  UI layout fixes.
4797         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4798         and capitalization fix.  Fixes #342438.
4800 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4802         * data/glade/podcast-properties.glade:  Fix layout of the download 
4803         location.  Fixes #342431.
4805 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4807         * data/ui/rhythmbox-ui.xml:
4808         We only need one copy of the 'add to queue' action in the edit menu.
4810 2006-05-20  James Livingston  <doclivingston@gmail.com>
4812         * data/ui/rhythmbox-ui.xml:
4813         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4814         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4815         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4816         (rb_shell_clipboard_sync),
4817         (rb_shell_clipboard_cmd_add_to_playlist_new),
4818         (rb_shell_clipboard_cmd_queue_song_info),
4819         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4820         (rb_shell_clipboard_playlist_deleted_cb),
4821         (rb_shell_clipboard_playlist_renamed_cb),
4822         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4823         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4824         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4825         dynamically generated with all the static playlists. Fixes bug 323364.
4827         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4828         right child, so it doesn't go weird when art appears and disappears.
4830 2006-05-20  James Livingston  <doclivingston@gmail.com>
4832         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4834         * rhythmdb/rhythmdb-query-model.c:
4835         (rhythmdb_query_model_set_property),
4836         (rhythmdb_query_model_finalize),
4837         (rhythmdb_query_model_reapply_query_cb):
4838         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4839         (rhythmdb_query_append_prop_multiple),
4840         (rhythmdb_query_is_time_relative):
4841         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4842         time-based criteria, fixes bug 341131.
4844 2006-05-20  James Livingston  <doclivingston@gmail.com>
4846         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4847         we have already changed playing entries. Interpolate the art size so
4848         it doesn't jump when the old and new images have different aspect
4849         ratios.
4851 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4853         * rhythmdb/rhythmdb-private.h:
4854         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4855         (save_entry):
4856         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4857         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4858         (rhythmdb_entry_get_ulong):
4859         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4860         and elsewhere, use them on the stack rather than allocating on 
4861         the heap.  From bug #342333.
4863 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4865         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4866         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4867         (add_track), (eos_cb), (error_signal_idle),
4868         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4869         (rb_recorder_construct), (recorder_track_free),
4870         (rb_recorder_finalize):
4871         * sources/rb-playlist-source-recorder.c:
4872         Support libnautilus-burn size -> capacity API change.  Add
4873         some braces to blocks.
4875 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4877         * metadata/sj-metadata-musicbrainz.c:
4878         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4879         Sync with sound-juicer in CVS.  Fixes #342177
4880         * sources/rb-audiocd-source.c: Don't declare variables
4881         in the middle of a block (c99ism).  Fix order of #includes.
4882         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4883         one variable per line.  Update copyright date.
4885 2006-05-19  James Livingston  <doclivingston@gmail.com>
4887         patch by: Hendrik Richter  <hendi@gnome-de.org>
4889         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4890         "translator_credits" to a hyphen, so it doesn't cause problems for
4891         tools that check access keys. Fixes bug 341832.
4893 2006-05-19  James Livingston  <doclivingston@gmail.com>
4895         * po/POTFILES.in: remove references to files that don't exist any more
4896         (fixes make distcheck).
4898 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4900         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4901         Song Lyrics dialog. Fixes bug 342322.
4903 2006-05-19  James Livingston  <doclivingston@gmail.com>
4905         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4907         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4908         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4909         version checks not break when libnotify goes to 1.0.0. Fixes bug
4910         342244.
4912 2006-05-18  James Livingston  <doclivingston@gmail.com>
4914         * shell/rb-shell-clipboard.c:
4915         * shell/rb-shell.c:
4916         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4918 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4920         * sources/rb-playlist-source-recorder.c (get_song_description):
4921         Reverse artist and title in song description.  This
4922         is useful because at least the title will be visible
4923         when there is limited space.
4925 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4927         * daapsharing/rb-daap-connection.c: (connection_get_password):
4928         Take gdk lock before emitting authenticate signal.
4929         * sources/rb-daap-source.c: (connection_connecting_cb):
4930         Get rid of the unnecessary idle handler (it's already called from one)
4931         Fixes #342047 once more.
4933 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4935         * shell/rb-shell.c: (rb_shell_class_init):
4936         * shell/rb-shell.h:
4937         * widgets/rb-song-info.c: (rb_song_info_class_init),
4938         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4939         (rb_song_info_constructor), (rb_song_info_get_property),
4940         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4941         (rb_song_info_forward_clicked_cb):
4942         * widgets/rb-song-info.h:
4943         * data/glade/song-info-multiple.glade:
4944         * lib/rb-marshal.list:
4945         * bindings/python/Makefile.am:
4946         * bindings/python/rb.defs:
4947         * bindings/python/rb.override:
4948         Allow plugins to add pages to the notebooks used in song info windows,
4949         and to track the current song displayed in single-entry windows.
4950         
4951         * configure.ac:
4952         * plugins/Makefile.am:
4953         * plugins/lyrics/Loader.py:
4954         * plugins/lyrics/Makefile.am:
4955         * plugins/lyrics/lyrics.py:
4956         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4957         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4958         as a separate window (for the playing song) or as a page in the song
4959         info window.  A few TODO items left, but this fixes #319320.
4961 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4963         Patch by:  Roozbeh Pournader
4965         * configure.ac:
4966         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4967         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4969 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4970         
4971         * sources/rb-daap-source.c: (update_connection_status):
4972         Correct return value.  Fixes #342047 again.
4974 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4976         * sources/rb-daap-source.c: (update_connection_status),
4977         (connection_connecting_cb):
4978         Update status in an idle handler so we don't rely on the gdk lock
4979         being recursive (because it isn't any more).  Fixes #342047.
4981 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4983         * lib/rb-util.c: (rb_make_duration_string),
4984         (rb_make_elapsed_time_string):
4985         * lib/rb-util.h:
4986         Add a function for formatting an elapsed time string.
4988         * shell/rb-shell-player.c: (rb_shell_player_init),
4989         (rb_shell_player_sync_with_source),
4990         (rb_shell_player_get_playing_time_string), (tick_cb):
4991         Store elapsed time in the private data structure, and use the above
4992         function.
4993         
4994         * widgets/rb-header.c:
4995         * widgets/rb-header.h:
4996         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4997         object, so everything has the same idea of the elapsed time.
4998         Fixes #339693.
5000 2006-05-16  James Livingston  <doclivingston@gmail.com>
5002         * bindings/python/rhythmdb.defs:
5003         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5004         some parametre defaults, so you don't have to pass None, False for the
5005         sorting order.
5007 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5009         * bindings/python/rhythmdb.defs:
5010         * rhythmdb/rhythmdb-query-model.c:
5011         (rhythmdb_query_model_compute_status_normal):
5012         * rhythmdb/rhythmdb-query-model.h:
5013         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5014         * rhythmdb/rhythmdb.h:
5015         Change the various compute_status methods to accept a singular/plural
5016         pair to use in the status string.
5017         
5018         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5019         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5020         * sources/rb-source.c: (default_get_status):
5021         Call entries 'songs' by default, and 'episodes' in the podcast source.
5022         Fixes #340227.
5024 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5026         patch by:  Paul Drain
5028         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5029         Fixes #341817.
5031 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5033         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5034         Generate reorder maps correctly.
5035         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5036         Scroll to the first entry from the old selection.
5037         Fixes #322992.
5039 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5041         * data/ui/rhythmbox-ui.xml:
5042         * lib/rb-preferences.h:
5043         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5044         (rb_shell_playlist_created_cb),
5045         (rb_shell_view_sidepane_changed_cb),
5046         (rb_shell_sync_sidepane_visibility),
5047         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5048         (sidepane_visibility_changed_cb):
5049         * sources/rb-podcast-source.c:
5050         Convert sourcelist visibility to side-pane visbility.
5051         Fixes #339733
5053 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5055         * widgets/rb-header.c:
5056         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5057         'player', and make it use the private data structure allocated for it.
5059 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5061         * configure.ac: enable metadata helper with dbus < 0.35.
5063 2006-05-15  James Livingston  <doclivingston@gmail.com>
5065         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5067         * data/glade/song-info.glade:
5068         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5069         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5070         (rb_song_info_update_filesize): Add the file size into the song info
5071         window. Fixes bug 340861.
5073 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5075         * bindings/python/rhythmdb.defs:
5076         * rhythmdb/rhythmdb-query-model.c:
5077         (rhythmdb_query_model_set_property),
5078         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5079         * rhythmdb/rhythmdb-query-model.h:
5080         Add a new method to chain query models without importing entries from
5081         the parent into the child.  This is useful when the subset of entries
5082         in the child can be more easily determined by running a query than by
5083         filtering entries from the parent.
5085         * bindings/python/rb.defs:
5086         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5087         (rb_library_browser_set_property),
5088         (rb_library_browser_get_property), (rb_library_browser_new),
5089         (rebuild_child_model):
5090         * widgets/rb-library-browser.h:
5091         * sources/rb-auto-playlist-source.c:
5092         (rb_auto_playlist_source_constructor):
5093         * sources/rb-static-playlist-source.c:
5094         (rb_static_playlist_source_constructor):
5095         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5096         Use more efficient queries for constructing the browser query model
5097         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5098         backend to optimise the query) and run new queries rather than
5099         filtering entries from the parent.  Fixes #341402.
5101         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5103 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5105         * configure.ac:
5106         * shell/Makefile.am:
5107         * shell/main.c: (main), (load_uri_args), (send_present_message),
5108         (unregister_dbus_handler), (handle_dbus_message),
5109         (register_dbus_handler):
5110         Add minimal support for dbus 0.31 - 0.35.
5112         * doc/reference/Makefile.am:
5113         * doc/reference/rhythmbox.types:
5114         * data/Makefile.am:
5115         * data/GNOME_Rhythmbox.server.in:
5116         * data/rhythmbox.pc.in:
5117         * remote/*:
5118         * remote/bonobo/*:
5119         Remove remaining bonobo and generic remote interface files.
5121 2006-05-14  James Livingston  <doclivingston@gmail.com>
5123         * shell/rb-shell.c: (construct_widgets):
5124         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5125         resize the browser and queue-sidebar section of their panes, unless
5126         the other section is below the minimum size. Fixes bug 331927.
5128 2006-05-13  James Livingston  <doclivingston@gmail.com>
5130         * rhythmdb/rhythmdb-query-model.c:
5131         (rhythmdb_query_model_class_init),
5132         (rhythmdb_query_model_set_property),
5133         (rhythmdb_query_model_get_property),
5134         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5135         (rhythmdb_query_model_insert_into_main_list),
5136         (rhythmdb_query_model_insert_into_limited_list),
5137         (rhythmdb_query_model_do_reorder),
5138         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5139         (rhythmdb_query_model_location_sort_func),
5140         (rhythmdb_query_model_title_sort_func),
5141         (rhythmdb_query_model_album_sort_func),
5142         (rhythmdb_query_model_artist_sort_func),
5143         (rhythmdb_query_model_genre_sort_func),
5144         (rhythmdb_query_model_track_sort_func),
5145         (rhythmdb_query_model_double_ceiling_sort_func),
5146         (rhythmdb_query_model_ulong_sort_func),
5147         (rhythmdb_query_model_date_sort_func),
5148         (rhythmdb_query_model_string_sort_func):
5149         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5150         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5151         "data destroy" property. Fixed bug 341543.
5153         * bindings/python/rhythmdb.defs:
5154         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5155         rhythmdb_query_model_set_sorting_order
5157         * rhythmdb/rhythmdb-property-model.c:
5158         (rhythmdb_property_model_drag_data_get):
5159         * sources/rb-import-errors-source.c:
5160         (rb_import_errors_source_constructor):
5161         * sources/rb-missing-files-source.c:
5162         (rb_missing_files_source_constructor):
5163         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5164         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5165         * widgets/rb-entry-view.h: adapt to the above change.
5167 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5169         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5170         (rhythmdb_tree_load):
5171         Commit loaded entries in batches, rather than individually.  
5172         More startup time reduction.
5174 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5176         * doc/reference/Makefile.am: fix gtk-doc compilation
5178 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5180         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5181         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5182         * plugins/artdisplay/artdisplay/Loader.py:
5183         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5184         Only call the first artist the best match when album==Unknown.
5185         Don't perform each query twice if album doesn't include "Vol N".
5186         Fix searching for compilations.  Fix blacklisting.
5187         Part of bug #307848
5189 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5191         * Makefile.am:
5192         * bindings/python/Makefile.am:
5193         * bindings/python/rb.defs:
5194         * bindings/python/rb.override:
5195         * configure.ac:
5196         * doc/reference/Makefile.am:
5197         * plugins/Makefile.am:
5198         * plugins/audioscrobbler/Makefile.am:
5199         * plugins/ipod/Makefile.am:
5200         * plugins/lirc/Makefile.am:
5201         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5202         (impl_activate), (impl_deactivate):
5203         * plugins/sample/Makefile.am:
5204         * remote/Makefile.am:
5205         * shell/Makefile.am:
5206         * shell/main.c: (main), (main_shell_weak_ref_cb):
5207         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5208         (rb_shell_get_property), (rb_shell_window_state_cb),
5209         (idle_hide_mainwindow), (rb_shell_set_visibility),
5210         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5211         (rb_shell_set_song_property):
5212         * shell/rb-shell.h:
5213         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5214         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5215         (rb_tray_icon_get_property), (rb_tray_icon_new),
5216         (rb_tray_icon_button_press_event_cb),
5217         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5218         (rb_tray_icon_show_window_changed_cb):
5219         * shell/rb-tray-icon.h:
5221         Remove bonobo, require DBUS.
5222         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5223         Fixes #339720
5225 2006-05-13  James Livingston  <doclivingston@gmail.com>
5227         * bindings/python/rb.override: fix some pointer-type warnings
5229 2006-05-12  James Livingston  <doclivingston@gmail.com>
5231         * lib/rb-util.c: (rb_value_free):
5232         * lib/rb-util.h: Add function to unset and free a GValue* that was
5233         allocated in the heap.
5235         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5236         the metadata hastable values
5237         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5238         leak the metadata hashtable structure
5239         * metadata/rb-metadata-dbus.c:
5240         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5241         using g_strdup and then _take_string
5243         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5244         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5245         stat something.
5247         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5248         leak the encoded string
5250         * widgets/rb-property-view.c:
5251         (rb_property_view_selection_changed_cb): set some variables to have
5252         inital values, because some code paths may not set them before we use
5253         them.
5255         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5256         don't have python warning into a debug message".
5258 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5260         * data/rhythmbox.schemas: Use zero instead of null for
5261         default burn speed.  Fixes #341283.
5263 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5265         * bindings/python/rb.defs:
5266         * widgets/rb-library-browser.c:
5267         (rb_library_browser_get_property_view):
5268         * widgets/rb-library-browser.h:
5269         Add a method to get the property view for a given property.
5271         * sources/rb-browser-source.c:
5272         (rb_browser_source_cmd_choose_genre),
5273         (rb_browser_source_cmd_choose_artist),
5274         (rb_browser_source_cmd_choose_album):
5275         Change the browser selection by changing the property view selection. 
5276         Makes the selection change visible, fixing #331740.
5278 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5280         * bindings/python/rb.defs:
5281         * bindings/python/rb.override:
5282         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5283         * shell/rb-statusbar.c: (*),
5284         * sources/rb-import-errors-source.c: (impl_get_status):
5285         * sources/rb-iradio-source.c: (impl_get_status):
5286         * sources/rb-missing-files-source.c: (impl_get_status):
5287         * sources/rb-source.c: (default_get_status),
5288         (rb_source_get_status):
5289         * sources/rb-source.h:
5290         Allow sources to provide a progress value for the status bar.
5291         Simplify status bar processing (much less polling).
5292         Consider rhythmdb busy while it's still loading the database.
5294         * daapsharing/rb-daap-connection.c: (*)
5295         * daapsharing/rb-daap-connection.h:
5296         * lib/rb-marshal.list:
5297         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5298         (rb_daap_source_init), (connection_connecting_cb),
5299         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5300         (rb_daap_source_get_status):
5301         Provide status information for DAAP connections, and move processing
5302         of large responses into a separate thread.
5303         Fixes bugs #322020 and #338978.
5305 2006-05-09  James Livingston  <doclivingston@gmail.com>
5307         Split the artdisplay plugin into several files.
5308         Fix loader and amazon-search re-use issues.
5309         Add some better search heuristics.
5311         * configure.ac:
5312         * plugins/artdisplay/Makefile.am:
5313         * plugins/artdisplay/artdisplay.py:
5314         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5315         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5316         * plugins/artdisplay/artdisplay/Loader.py:
5317         * plugins/artdisplay/artdisplay/Makefile.am:
5318         * plugins/artdisplay/artdisplay/__init__.py:
5320 2006-05-09  James Livingston  <doclivingston@gmail.com>
5322         * sources/rb-browser-source.h: remove the _has_first_added_column
5323         stuff since it isn't actually used anywhere. Sources that want it
5324         should just add it themselves, as the library already does
5326         * bindings/python/rb.defs:
5327         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5328         * sources/rb-library-source.c: (rb_library_source_class_init):
5329         * sources/rb-removable-media-source.c:
5330         (rb_removable_media_source_class_init): Remove the remanants of the
5331         above.
5333 2006-05-09  James Livingston  <doclivingston@gmail.com>
5335         * bindings/python/rb.defs:
5336         * sources/rb-browser-source.h: remove a function that was declared in
5337         the header, but not defined anywhere.
5339 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5341         * plugins/artdisplay/.cvsignore:
5342         * plugins/ipod/.cvsignore: Added.
5344 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5346         * sources/rb-auto-playlist-source.c:
5347         (rb_auto_playlist_source_new_from_xml):
5348         Fix reading of older playlist files where all three limits were
5349         specified so we take the first nonzero limit.  From #341053.
5351 2006-05-09  James Livingston  <doclivingston@gmail.com>
5353         * bindings/python/Makefile.am:
5354         * bindings/python/rb.defs:
5355         * bindings/python/rb.override: bind RBBrowserSource,
5356         RBRemovableMediaSource and RBRemovableMediamanager.
5358 2006-05-09  James Livingston  <doclivingston@gmail.com>
5360         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5362         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5363         Fixes bug 339221.
5365 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5367         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5368         Don't explode when trying to edit a query with no limit set.
5370 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5372         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5373         Clear the should_queue flag when switching to a non-submittable entry,
5374         so we don't submit songs that played for three seconds before
5375         switching to a podcast episode.
5377         * rhythmdb/rhythmdb-query-model.c
5378         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5379         in the drag data list.
5381 2006-05-08  James Livingston  <doclivingston@gmail.com>
5383         * lib/rb-util.c: (rb_value_array_append_data):
5384         * lib/rb-util.h: add function which is basically a combination of
5385         G_VALUE_COLLECT and g_value_array_append.
5387         * rhythmdb/rhythmdb-query-model.h:
5388         * rhythmdb/rhythmdb-query-model.c:
5389         (rhythmdb_query_model_class_init),
5390         (rhythmdb_query_model_set_property),
5391         (rhythmdb_query_model_get_property),
5392         (rhythmdb_query_model_finalize),
5393         (rhythmdb_query_model_update_limited_entries),
5394         (rhythmdb_query_model_set_sort_order),
5395         (rhythmdb_query_model_within_limit),
5396         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5397         saner. Rather than having <count=N, time=N, size=N> we now have a
5398         <type, value> pair. This will also make it much easier to add new
5399         limit types in the future.
5401         * shell/rb-playlist-manager.c:
5402         (rb_playlist_manager_set_automatic_playlist),
5403         (rb_playlist_manager_cmd_edit_automatic_playlist):
5404         * sources/rb-auto-playlist-source.c:
5405         (rb_auto_playlist_source_finalize),
5406         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5407         (_save_write_ulong), (_save_write_uint64),
5408         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5409         (rb_auto_playlist_source_set_query),
5410         (rb_auto_playlist_source_get_query):
5411         * sources/rb-auto-playlist-source.h:
5412         * sources/rb-library-source.c:
5413         (rb_library_source_add_child_source):
5414         * sources/rb-psp-source.c: (visit_playlist_dirs):
5415         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5416         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5417         * widgets/rb-query-creator.h: Adapt to the above change.
5419 2006-05-08  James Livingston  <doclivingston@gmail.com>
5421         * shell/rb-playlist-manager.c:
5422         (rb_playlist_manager_cmd_edit_automatic_playlist):
5423         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5424         (rb_auto_playlist_source_set_query),
5425         (rb_auto_playlist_source_get_query): copy the query in the _get method
5426         and free it in things calling that. Fixes a crasher.
5428 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5430         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5431         Make entries on newly mounted volumes visible immediately, hiding them
5432         later if they turn out to be missing.  Fixes #340068.
5434 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5436         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5437         Ignore zip files and ignore errors for files we've decided to ignore.
5439 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5441         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5442         Add missing }, should fix #340844.
5444 2006-05-06  James Livingston  <doclivingston@gmail.com>
5446         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5447         typo.
5449 2006-05-06  James Livingston  <doclivingston@gmail.com>
5451         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5452         that we work with libnotify >= 0.4
5454 2006-05-06  James Livingston  <doclivingston@gmail.com>
5456         patch by: Joe Barnett  <thejoe@gmail.com>
5458         * configure.ac: check if we're using a version of libgpod that
5459         supports the Motorola ROKR
5461         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5462         for the db path, if we using the newer version.
5464         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5466 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5468         * rhythmdb/rhythmdb-query-model.c:
5469         (rhythmdb_query_model_drag_data_get):
5470         Use playback URI, not location, for drag data.  Fixes #322597.
5472 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5474         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5476 2006-05-03  James Livingston  <doclivingston@gmail.com>
5478         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5479         (rb_add_id3_tagger), (rb_metadata_save):
5480         Set the tags on the tagging element when it is
5481         created, not during pipeline creation - which is required for
5482         dynamically created elements.
5484         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5485         support for using the "vorbistag" element to re-tag ogg vorbis files.
5486         Fixes bug 339878.
5488 2006-05-03  James Livingston  <doclivingston@gmail.com>
5490         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5492         * plugins/artdisplay/artdisplay.py:
5493         - Fix small bug callback of data loader getting overwritten on fast
5494         connections.
5495         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5496         Jonathan Matthew)
5497         - Fix Rhythmbox UI blocking while loading/searching cover art
5498         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5499         - Initial approach to allow additional "art search engines"
5500         - Further modularization in a couple of places
5501         - Minor fixes for empty entries (iradio, album, artist etc.)
5503 2006-05-03  James Livingston  <doclivingston@gmail.com>
5505         * shell/rb-playlist-manager.c:
5506         (rb_playlist_manager_playlist_entries_changed),
5507         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5508         options for non-local sources, rather than showing disabled ones.
5510         * sources/rb-library-source.c: (add_child_sources_idle),
5511         (rb_library_source_constructor), (rb_library_source_new),
5512         (rb_library_source_library_location_changed),
5513         (rb_library_source_add_child_source),
5514         (rb_library_source_sync_child_sources): Create "child library" sources
5515         when the user has multiple library locations set. Fixes bug 100552.
5517 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5519         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5520         * plugins/sample/sample.rb-plugin.desktop.in:
5521         Finish changing 'Author' to 'Authors'
5522         
5523         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5524         (rhythmdb_entry_import_error_get_type):
5525         Implement get_playback_uri for import errors (returns NULL)
5527         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5528         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5529         entry, rather than doing entry type checks.
5531 2006-05-02  James Livingston  <doclivingston@gmail.com>
5533         patch from Alessandro Decina  <alessandro@nnva.org>
5535         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5536         the signal emission in the case of fatal-on-init errors. From bug
5537         322268.
5539 2006-05-02  James Livingston  <doclivingston@gmail.com>
5541         * rhythmdb/rhythmdb.h:
5542         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5543         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5544         (rhythmdb_entry_podcast_post_get_type),
5545         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5546         virtual function to entry-types for getting the playback URI. From bug
5547         330226.
5549         * backends/gstreamer/rb-encoder-gst.c:
5550         (create_pipeline_and_source), (extract_track):
5551         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5552         to get the URI.
5554 2006-05-02  James Livingston  <doclivingston@gmail.com>
5556         patch by: Brian Cameron  <brian.cameron@sun.com>
5558         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5559         340337.
5561 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5563         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5564         instead of clear.  Use regex matching to strip "disc N"
5565         from album.  Match titles in ProductName.  Perform
5566         fallback queries including various artist compilations.
5567         Include "us" locale.  Improve queries when artist or album
5568         is unknown.  Use medium size image if large is unavailable.
5570         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5571         William Jon McCann  <mccann@jhu.edu>
5572         
5573 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5575         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5576         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5577         (conjunctive_query): Sanity check.
5578         (evaluate_conjunctive_subquery): 
5579         Don't return TRUE immediately when a relative-time query criterion
5580         matches.  Fixes #339972.
5582 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5584         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5585         Don't crash if primary or secondary are NULL.
5587 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5589         * doc/reference/Makefile.am: fix gtk-doc build yet again
5591 2006-04-28  James Livingston  <doclivingston@gmail.com>
5593         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5594         python console. Fixes bug 339934.
5596 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5598         * rhythmdb/rhythmdb-property-model.c:
5599         (rhythmdb_property_model_drag_data_get):
5600         When creating uri list drag data, create a new query model based on
5601         the query model the property model is attached to.  Makes the
5602         resulting query use the right entry type and include the upstream
5603         query criteria.  Fixes half of #327540.
5605 2006-04-27  James Livingston  <doclivingston@gmail.com>
5607         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5608         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5609         build fixes.
5611 2006-04-27  James Livingston  <doclivingston@gmail.com>
5613         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5615 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5617         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5618         (rb_playlist_manager_save_data),
5619         (rb_playlist_manager_save_playlists):
5620         * shell/rb-playlist-manager.h:
5621         * shell/rb-shell.c: (rb_shell_sync_state),
5622         (idle_save_playlist_manager):
5623         Remove a bit more threading insanity from the playlist manager.
5625 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5627         * shell/rb-playlist-manager.c: 
5628         * shell/rb-playlist-manager.h:
5629         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5630         
5631         * shell/rb-shell.c: (rb_shell_sync_state),
5632         (idle_save_playlist_manager), (construct_sources),
5633         (rb_shell_select_source), (rb_shell_sync_party_mode):
5634         Adjustments for above changes.
5636 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5638         * sources/rb-browser-source.c (impl_browser_toggled):
5639         Reset browser when hidden.  Fixes #339617.
5641 2006-04-26  James Livingston  <doclivingston@gmail.com>
5643         * backends/Makefile.am:
5644         * backends/gstreamer/Makefile.am: work again with separated
5645         built-roots
5647 2006-04-26  James Livingston  <doclivingston@gmail.com>
5649         * shell/rb-removable-media-manager.c:
5650         (rb_removable_media_manager_set_uimanager): fix compilation with
5651         -Werror and --enable-track-transfer.
5653 2006-04-26  James Livingston  <doclivingston@gmail.com>
5655         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5656         implementing class. In theory allows alternate player implementations
5657         to be selected at run-time rather than compile-time. Fixes bug 338667.
5659         * Makefile.am:
5660         * backends/Makefile.am:
5661         * backends/gstreamer/Makefile.am:
5662         * backends/gstreamer/rb-player-gst.h:
5663         * backends/rb-player.c: (rb_player_interface_init),
5664         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5665         (rb_player_close), (rb_player_play), (rb_player_pause),
5666         (rb_player_playing), (rb_player_set_volume),
5667         (rb_player_get_volume), (rb_player_set_replaygain),
5668         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5669         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5670         (_rb_player_emit_buffering), (_rb_player_emit_error),
5671         (_rb_player_emit_tick), (rb_player_error_quark):
5672         * player/Makefile.am:
5673         * player/rb-player-gst.c: (rb_player_gst_class_init),
5674         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5675         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5676         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5677         (process_tag), (found_tag_cb), (buffering_cb),
5678         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5679         (rb_player_gst_new):
5680         * player/rb-player.h:
5681         * shell/Makefile.am:
5682         * sources/rb-audiocd-source.c:
5683         * widgets/Makefile.am:
5684         * widgets/rb-header.c: (rb_header_class_init):
5686 2006-04-26  James Livingston  <doclivingston@gmail.com>
5688         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5689         don't try to download an episode if it couldn't be parsed. Fixes bug
5690         339712.
5692         * shell/rb-removable-media-manager.c:
5693         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5694         Library" option when track transfer is disabled. Fixes bug 339728.
5696 2006-04-26  James Livingston  <doclivingston@gmail.com>
5698         * data/ui/Makefile.am:
5699         * data/ui/daap-ui.xml:
5700         * data/ui/rhythmbox-ui.xml:
5701         * sources/rb-daap-source.c: (rb_daap_sources_init),
5702         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5703         way that the ipod ui is. Fixes bug 339743.
5705 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5707         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5708         (process_added_entries_cb), (process_deleted_entries_cb),
5709         (rhythmdb_commit_internal): 
5710         Combine the idle functions to emit entry-added and entry-deleted,
5711         and combine as many invocations of same as possible.  Another
5712         significant reduction in startup time.
5713         
5714         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5715         Delay the next call to rhythmdb_process_events if the queue is
5716         empty or if we can't process any of the events in the queue because
5717         the database is read only.
5719         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5721 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5723         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5725         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5726         Don't special case errors quite so much.
5728 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5730         * data/rhythmbox.schemas: Remove default speed.
5732         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5733         Add n-c-b 2.15 support.  Make the default speed to slowest since
5734         that is all that works reliably.
5736 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5738         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5739         Fix compiler error from last commit.
5741 2006-04-25  James Livingston  <doclivingston@gmail.com>
5743         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5744         transcoding-related issues. From bug 322268.
5746         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5747         don't emit the signal, since the object is being finalised, which os a
5748         Bad Thing To Do.
5750         (profile_bin_find_encoder), (get_profile_from_mime_type),
5751         (transcode_track): find the encoding element by iterating looking for
5752         element in the class Codec/Encoder/Audio rather than the one named
5753         "enc".
5755 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5757         * shell/rb-shell-player.xml:
5758         * shell/rb-shell.xml:
5759         Add signal argument information.  
5760         Patch by Tim Moloney  <t.moloney@verizon.net>
5762         * shell/rb-shell.c: (rb_shell_window_state_cb):
5763         Use the right value for the visibility_changed signal.  Most of the
5764         time, anyway.
5766 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5768         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5769         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5770         (impl_create_configure_dialog):
5771         * data/glade/audioscrobbler-prefs.glade:
5772         * shell/rb-audioscrobbler.c (*):
5773         * lib/rb-preferences.h:
5774         * data/rhythmbox.schemas:
5775         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5776         Add status information (# tracks submitted, # queued, last submit
5777         time, result of last submission) to the plugin config window.
5778         Remove 'enabled' setting, since it's easier to just disable the
5779         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5780         nonexistant (so far) 'last.fm streaming' plugin.
5781         
5782         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5783         plugin
5785         Fixes some of #325848.  We still don't provide a way to view the
5786         submission queue.
5788 2006-04-25  James Livingston  <doclivingston@gmail.com>
5790         patch by: Anders Petersson  <demitar@worldforge.org>
5792         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5793         the YY-MM-DD format.
5795 2006-04-23  James Livingston  <doclivingston@gmail.com>
5797         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5798         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5799         * bindings/python/override_common.h:
5800         * bindings/python/rb.override: python binding fixes
5802 2006-04-23  James Livingston  <doclivingston@gmail.com>
5804         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5805         (rb_statusbar_sync_with_source),
5806         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5807         callback, rather than immediately every time. Takes ~5% off my warm-cache
5808         startup time.
5810         * bindings/python/rhythmdb.defs: fix the types using for
5811         RhythmDBEntryTypes.
5813 2006-04-22  James Livingston  <doclivingston@gmail.com>
5815         * data/ui/rhythmbox-ui.xml:
5816         * shell/rb-shell.c:
5817         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5818         (remove_source), (rb_daap_sources_init),
5819         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5820         (rb_daap_source_disconnect):
5821         * sources/rb-source.c: (rb_source_class_init),
5822         (rb_source_deactivate):
5823         * sources/rb-source.h: move the "disconnect" functionality from into
5824         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5826 2006-04-22  James Livingston  <doclivingston@gmail.com>
5828         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5829         actually get the translated strings for browser headers (they were
5830         already marked as translatable). Fixes bug 339380.
5832 2006-04-22  James Livingston  <doclivingston@gmail.com>
5834         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5835         submission timeout when the object is finalised.
5837         * bindings/python/Makefile.am:
5838         * bindings/python/rb.defs:
5839         * bindings/python/rb.override:
5840         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5842         * widgets/rb-library-browser.c:
5843         (rb_library_browser_construct_query), (rebuild_output_model),
5844         (rebuild_child_model):
5845         * widgets/rb-library-browser.h: change from GPtrArray to
5846         RhythmDBQuery (which in C is the same thing).
5848 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5850         * shell/rb-shell.c: (rb_shell_get_song_properties):
5851         Don't try to include entry-type (or anything else not easily
5852         marshallable) in the song properties hash table.
5854         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5856         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5857         (rb_playlist_source_constructor): Fix entry-type initialization as
5858         with previous commit.
5860 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5862         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5863         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5864         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5865         (rb_podcast_source_constructor):
5866         Set default values for entry-type after base class construction,
5867         rather than in _init, because gobject will set the entry-type property
5868         to NULL after _init if no value is provided.  Fixes #339206.
5870 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5872         patch by: Gunnar Steinn Magnusson
5874         * COPYING:
5875         * backends/gstreamer/rb-encoder-gst.c:
5876         * backends/gstreamer/rb-encoder-gst.h:
5877         * backends/rb-encoder.c:
5878         * backends/rb-encoder.h:
5879         * bindings/python/override_common.c:
5880         * bindings/python/override_common.h:
5881         * daapsharing/rb-daap-connection.c:
5882         * daapsharing/rb-daap-connection.h:
5883         * daapsharing/rb-daap-dialog.c:
5884         * daapsharing/rb-daap-dialog.h:
5885         * daapsharing/rb-daap-mdns-browser-avahi.c:
5886         * daapsharing/rb-daap-mdns-browser-howl.c:
5887         * daapsharing/rb-daap-mdns-browser.h:
5888         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5889         * daapsharing/rb-daap-mdns-publisher-howl.c:
5890         * daapsharing/rb-daap-mdns-publisher.h:
5891         * daapsharing/rb-daap-share.c:
5892         * daapsharing/rb-daap-share.h:
5893         * daapsharing/rb-daap-sharing.c:
5894         * daapsharing/rb-daap-sharing.h:
5895         * daapsharing/rb-daap-src.c:
5896         * daapsharing/rb-daap-src.h:
5897         * daapsharing/rb-daap-structure.c:
5898         * daapsharing/rb-daap-structure.h:
5899         * help/C/fdl-appendix.xml:
5900         * help/es/es.po:
5901         * help/ja/fdl-appendix.xml:
5902         * iradio/rb-new-station-dialog.c:
5903         * iradio/rb-new-station-dialog.h:
5904         * iradio/rb-station-properties-dialog.c:
5905         * iradio/rb-station-properties-dialog.h:
5906         * lib/mkdtemp.c:
5907         * lib/mkdtemp.h:
5908         * lib/rb-cut-and-paste-code.c:
5909         * lib/rb-cut-and-paste-code.h:
5910         * lib/rb-debug.c:
5911         * lib/rb-debug.h:
5912         * lib/rb-file-helpers.c:
5913         * lib/rb-file-helpers.h:
5914         * lib/rb-glade-helpers.c:
5915         * lib/rb-glade-helpers.h:
5916         * lib/rb-preferences.h:
5917         * lib/rb-proxy-config.c:
5918         * lib/rb-stock-icons.c:
5919         * lib/rb-stock-icons.h:
5920         * lib/rb-thread.c:
5921         * lib/rb-thread.h:
5922         * lib/rb-tree-dnd.c:
5923         * lib/rb-tree-dnd.h:
5924         * lib/rb-util.c:
5925         * lib/rb-util.h:
5926         * metadata/rb-metadata-common.c:
5927         * metadata/rb-metadata-dbus-client.c:
5928         * metadata/rb-metadata-dbus-service.c:
5929         * metadata/rb-metadata-dbus.c:
5930         * metadata/rb-metadata-dbus.h:
5931         * metadata/rb-metadata-gst.c:
5932         * metadata/rb-metadata.h:
5933         * metadata/sj-error.c:
5934         * metadata/sj-error.h:
5935         * metadata/sj-metadata-musicbrainz.c:
5936         * metadata/sj-metadata-musicbrainz.h:
5937         * metadata/sj-metadata.c:
5938         * metadata/sj-metadata.h:
5939         * metadata/sj-structures.c:
5940         * metadata/sj-structures.h:
5941         * metadata/test-metadata.c:
5942         * player/rb-player-gst.c:
5943         * player/rb-player.h:
5944         * player/rb-recorder-gst.c:
5945         * player/rb-recorder.h:
5946         * plugins/artdisplay/artdisplay.py:
5947         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5948         * plugins/ipod/rb-ipod-plugin.c:
5949         * plugins/lirc/rb-lirc-plugin.c:
5950         * plugins/pythonconsole/pythonconsole.py:
5951         * plugins/rb-module.c:
5952         * plugins/rb-module.h:
5953         * plugins/rb-plugin-manager.c:
5954         * plugins/rb-plugin-manager.h:
5955         * plugins/rb-plugin.c:
5956         * plugins/rb-plugin.h:
5957         * plugins/rb-plugins-engine.c:
5958         * plugins/rb-plugins-engine.h:
5959         * plugins/rb-python-module.c:
5960         * plugins/rb-python-module.h:
5961         * plugins/rb-python-plugin.c:
5962         * plugins/rb-python-plugin.h:
5963         * plugins/sample/rb-sample-plugin.c:
5964         * po/de.po:
5965         * po/el.po:
5966         * po/en_CA.po:
5967         * po/eu.po:
5968         * po/fi.po:
5969         * po/fr.po:
5970         * po/it.po:
5971         * po/ja.po:
5972         * po/mk.po:
5973         * po/pt_BR.po:
5974         * po/ru.po:
5975         * podcast/rb-feed-podcast-properties-dialog.c:
5976         * podcast/rb-feed-podcast-properties-dialog.h:
5977         * podcast/rb-new-podcast-dialog.c:
5978         * podcast/rb-new-podcast-dialog.h:
5979         * podcast/rb-podcast-manager.c:
5980         * podcast/rb-podcast-manager.h:
5981         * podcast/rb-podcast-parse.c:
5982         * podcast/rb-podcast-parse.h:
5983         * podcast/rb-podcast-properties-dialog.c:
5984         * podcast/rb-podcast-properties-dialog.h:
5985         * remote/bonobo/libmain.c:
5986         * remote/bonobo/rb-nautilus-context-menu.c:
5987         * remote/bonobo/rb-nautilus-context-menu.h:
5988         * remote/bonobo/rb-remote-bonobo.c:
5989         * remote/bonobo/rb-remote-bonobo.h:
5990         * remote/rb-remote-client-proxy.c:
5991         * remote/rb-remote-client-proxy.h:
5992         * remote/rb-remote-common.c:
5993         * remote/rb-remote-common.h:
5994         * remote/rb-remote-proxy.c:
5995         * remote/rb-remote-proxy.h:
5996         * rhythmdb/gsequence.c:
5997         * rhythmdb/gsequence.h:
5998         * rhythmdb/rb-refstring.c:
5999         * rhythmdb/rb-refstring.h:
6000         * rhythmdb/rhythmdb-gda.c:
6001         * rhythmdb/rhythmdb-gda.h:
6002         * rhythmdb/rhythmdb-private.h:
6003         * rhythmdb/rhythmdb-property-model.c:
6004         * rhythmdb/rhythmdb-property-model.h:
6005         * rhythmdb/rhythmdb-query-model.c:
6006         * rhythmdb/rhythmdb-query-model.h:
6007         * rhythmdb/rhythmdb-query-results.c:
6008         * rhythmdb/rhythmdb-query-results.h:
6009         * rhythmdb/rhythmdb-tree.c:
6010         * rhythmdb/rhythmdb-tree.h:
6011         * rhythmdb/rhythmdb.c:
6012         * rhythmdb/rhythmdb.h:
6013         * shell/main.c:
6014         * shell/rb-audioscrobbler.c:
6015         * shell/rb-audioscrobbler.h:
6016         * shell/rb-history.c:
6017         * shell/rb-history.h:
6018         * shell/rb-play-order-linear-loop.c:
6019         * shell/rb-play-order-linear-loop.h:
6020         * shell/rb-play-order-linear.c:
6021         * shell/rb-play-order-linear.h:
6022         * shell/rb-play-order-queue.c:
6023         * shell/rb-play-order-queue.h:
6024         * shell/rb-play-order-random-by-age-and-rating.c:
6025         * shell/rb-play-order-random-by-age-and-rating.h:
6026         * shell/rb-play-order-random-by-age.c:
6027         * shell/rb-play-order-random-by-age.h:
6028         * shell/rb-play-order-random-by-rating.c:
6029         * shell/rb-play-order-random-by-rating.h:
6030         * shell/rb-play-order-random-equal-weights.c:
6031         * shell/rb-play-order-random-equal-weights.h:
6032         * shell/rb-play-order-random.c:
6033         * shell/rb-play-order-random.h:
6034         * shell/rb-play-order-shuffle.c:
6035         * shell/rb-play-order-shuffle.h:
6036         * shell/rb-play-order.c:
6037         * shell/rb-play-order.h:
6038         * shell/rb-playlist-manager.c:
6039         * shell/rb-playlist-manager.h:
6040         * shell/rb-removable-media-manager.c:
6041         * shell/rb-removable-media-manager.h:
6042         * shell/rb-shell-clipboard.c:
6043         * shell/rb-shell-clipboard.h:
6044         * shell/rb-shell-player.c:
6045         * shell/rb-shell-player.h:
6046         * shell/rb-shell-preferences.c:
6047         * shell/rb-shell-preferences.h:
6048         * shell/rb-shell.c:
6049         * shell/rb-shell.h:
6050         * shell/rb-source-header.c:
6051         * shell/rb-source-header.h:
6052         * shell/rb-statusbar.c:
6053         * shell/rb-statusbar.h:
6054         * shell/rb-tray-icon.c:
6055         * shell/rb-tray-icon.h:
6056         * sources/rb-audiocd-source.c:
6057         * sources/rb-audiocd-source.h:
6058         * sources/rb-auto-playlist-source.c:
6059         * sources/rb-auto-playlist-source.h:
6060         * sources/rb-browser-source.c:
6061         * sources/rb-browser-source.h:
6062         * sources/rb-daap-source.c:
6063         * sources/rb-daap-source.h:
6064         * sources/rb-generic-player-source.c:
6065         * sources/rb-generic-player-source.h:
6066         * sources/rb-import-errors-source.c:
6067         * sources/rb-import-errors-source.h:
6068         * sources/rb-ipod-source.c:
6069         * sources/rb-ipod-source.h:
6070         * sources/rb-iradio-source.c:
6071         * sources/rb-iradio-source.h:
6072         * sources/rb-library-source.c:
6073         * sources/rb-library-source.h:
6074         * sources/rb-missing-files-source.c:
6075         * sources/rb-missing-files-source.h:
6076         * sources/rb-nokia770-source.c:
6077         * sources/rb-nokia770-source.h:
6078         * sources/rb-play-queue-source.c:
6079         * sources/rb-play-queue-source.h:
6080         * sources/rb-playlist-source-recorder.c:
6081         * sources/rb-playlist-source-recorder.h:
6082         * sources/rb-playlist-source.c:
6083         * sources/rb-playlist-source.h:
6084         * sources/rb-playlist-xml.h:
6085         * sources/rb-podcast-source.c:
6086         * sources/rb-podcast-source.h:
6087         * sources/rb-psp-source.c:
6088         * sources/rb-psp-source.h:
6089         * sources/rb-removable-media-source.c:
6090         * sources/rb-removable-media-source.h:
6091         * sources/rb-source.c:
6092         * sources/rb-source.h:
6093         * sources/rb-sourcelist-model.c:
6094         * sources/rb-sourcelist-model.h:
6095         * sources/rb-sourcelist.c:
6096         * sources/rb-sourcelist.h:
6097         * sources/rb-static-playlist-source.c:
6098         * sources/rb-static-playlist-source.h:
6099         * tests/test-cd.c:
6100         * tests/test-cmdline.c:
6101         * tests/test-rhythmdb-indexing.c:
6102         * tests/test-rhythmdb-query.c:
6103         * tests/test-rhythmdb-simple.c:
6104         * tests/test-rhythmdb-tree-deserialization.c:
6105         * tests/test-rhythmdb-tree-serialization.c:
6106         * tests/test-rhythmdb-view.c:
6107         * widgets/bacon-volume.c:
6108         * widgets/bacon-volume.h:
6109         * widgets/disclosure-widget.c:
6110         * widgets/disclosure-widget.h:
6111         * widgets/eel-gconf-extensions.c:
6112         * widgets/eel-gconf-extensions.h:
6113         * widgets/eggtrayicon.c:
6114         * widgets/eggtrayicon.h:
6115         * widgets/libsexy/sexy-icon-entry.c:
6116         * widgets/libsexy/sexy-icon-entry.h:
6117         * widgets/rb-cell-renderer-pixbuf.c:
6118         * widgets/rb-cell-renderer-pixbuf.h:
6119         * widgets/rb-cell-renderer-rating.c:
6120         * widgets/rb-cell-renderer-rating.h:
6121         * widgets/rb-dialog.c:
6122         * widgets/rb-dialog.h:
6123         * widgets/rb-druid.c:
6124         * widgets/rb-druid.h:
6125         * widgets/rb-entry-view.c:
6126         * widgets/rb-entry-view.h:
6127         * widgets/rb-header.c:
6128         * widgets/rb-header.h:
6129         * widgets/rb-library-browser.c:
6130         * widgets/rb-library-browser.h:
6131         * widgets/rb-property-view.c:
6132         * widgets/rb-property-view.h:
6133         * widgets/rb-query-creator-private.h:
6134         * widgets/rb-query-creator-properties.c:
6135         * widgets/rb-query-creator.c:
6136         * widgets/rb-query-creator.h:
6137         * widgets/rb-rating-helper.c:
6138         * widgets/rb-rating-helper.h:
6139         * widgets/rb-rating.c:
6140         * widgets/rb-rating.h:
6141         * widgets/rb-search-entry.c:
6142         * widgets/rb-search-entry.h:
6143         * widgets/rb-song-display-box.c:
6144         * widgets/rb-song-display-box.h:
6145         * widgets/rb-song-info.c:
6146         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6148 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6150         patch by: Gareth Murphy, James Livingston
6152         * bindings/python/rb.defs:
6153         * configure.ac:
6154         * plugins/Makefile.am:
6155         * plugins/artdisplay/Makefile.am:
6156         * plugins/artdisplay/artdisplay.py:
6157         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6158         * plugins/rb-python-module.c: (rb_python_module_init_python):
6159         * shell/rb-shell.c: (construct_widgets),
6160         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6161         (rb_shell_add_widget), (rb_shell_remove_widget),
6162         (rb_shell_ui_location_get_type):
6163         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6165 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6167         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6168         Fix build failure caused by the combination of the previous two
6169         commits.
6171 2006-04-20  James Livingston  <doclivingston@gmail.com>
6173         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6174         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6175         table to the entry types, which will allow us to get rid of some of
6176         the "if entry type == WHATEVER" code everywhere. From bug 
6178         * bindings/python/rb.defs:
6179         * bindings/python/rb.override:
6180         * bindings/python/rhythmdb.defs:
6181         * bindings/python/rhythmdb.override:
6182         * daapsharing/rb-daap-connection.c:
6183         (rb_daap_connection_class_init), (rb_daap_connection_init),
6184         (rb_daap_connection_set_property),
6185         (rb_daap_connection_get_property):
6186         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6187         * podcast/rb-podcast-manager.c:
6188         (rb_podcast_manager_entry_downloaded),
6189         (rb_podcast_manager_subscribe_feed),
6190         (rb_podcast_manager_db_entry_added_cb),
6191         (rb_podcast_manager_db_entry_deleted_cb),
6192         (rb_podcast_manager_insert_feed):
6193         * rhythmdb/rhythmdb-private.h:
6194         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6195         (conjunctive_query):
6196         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6197         (process_added_entries_cb), (rhythmdb_entry_allocate),
6198         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6199         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6200         (rhythmdb_process_metadata_load),
6201         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6202         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6203         (write_encoded_gvalue), (read_encoded_property),
6204         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6205         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6206         (rhythmdb_entry_iradio_get_type),
6207         (rhythmdb_entry_podcast_post_get_type),
6208         (rhythmdb_entry_podcast_feed_get_type),
6209         (rhythmdb_entry_import_error_get_type),
6210         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6211         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6212         (rhythmdb_entry_type_get_type):
6213         * rhythmdb/rhythmdb.h:
6214         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6215         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6216         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6217         (rb_shell_player_entry_activated_cb), (info_available_cb):
6218         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6219         (rb_shell_register_entry_type_for_source),
6220         (rb_shell_playing_from_queue_cb),
6221         (rb_shell_playing_entry_changed_cb),
6222         (rb_shell_player_stream_song_changed_cb),
6223         (rb_shell_jump_to_entry_with_source),
6224         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6225         (handle_playlist_entry_cb), (rb_shell_load_uri):
6226         * shell/rb-shell.h:
6227         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6228         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6229         (rb_browser_source_init), (rb_browser_source_set_property),
6230         (rb_browser_source_get_property):
6231         * sources/rb-ipod-source.c: (impl_paste):
6232         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6233         (rb_iradio_source_init), (rb_iradio_source_set_property),
6234         (rb_iradio_source_get_property):
6235         * sources/rb-library-source.c: (impl_paste):
6236         * sources/rb-missing-files-source.c:
6237         (rb_missing_files_source_class_init),
6238         (rb_missing_files_source_init),
6239         (rb_missing_files_source_set_property),
6240         (rb_missing_files_source_get_property):
6241         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6242         (rb_playlist_source_init), (rb_playlist_source_set_property),
6243         (rb_playlist_source_get_property):
6244         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6245         (rb_podcast_source_init), (rb_podcast_source_set_property),
6246         (rb_podcast_source_get_property):
6247         * sources/rb-static-playlist-source.c:
6248         (rb_static_playlist_source_add_location_internal):
6250 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6252         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6253         (rhythmdb_add_import_error_entry),
6254         (entry_volume_mounted_or_unmounted),
6255         (rhythmdb_volume_unmounted_cb):
6256         When a volume is unmounted, delete import errors for files stored on
6257         it.  When a volume is mounted, stat all tracks stored on it, rather
6258         than assuming they're present.  Fixes #339023.
6260 2006-04-20  James Livingston  <doclivingston@gmail.com>
6262         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6263         browser visibility for non-gconf-using sources (like playlists). Part
6264         of bug 118862.
6266         * shell/rb-source-header.c: (sourcestate_free),
6267         (rb_source_header_init), (rb_source_header_finalize),
6268         (rb_source_header_source_weak_destroy_cb): switch from storing the
6269         search string to storing a "source state" structure
6271         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6272         (rb_source_header_search_cb), (rb_source_header_clear_search),
6273         (rb_source_header_disclosure_toggled_cb): as well as storing the
6274         string, stop the visibility of the source's browser.
6276 2006-04-20  James Livingston  <doclivingston@gmail.com>
6278         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6279         library entries back into the library. Fixes bug 339065.
6281 2006-04-20  James Livingston  <doclivingston@gmail.com>
6283         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6284         only exists in glib 2.10.
6286 2006-04-20  James Livingston  <doclivingston@gmail.com>
6288         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6289         Solaris. From bug 335318.
6291         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6292         * shell/rb-audioscrobbler.c:
6293         * sources/rb-psp-source.c:
6295 2006-04-20  James Livingston  <doclivingston@gmail.com>
6297         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6298         issues for some people.
6300         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6301         accidental s/suffix/prefix/
6303         * sources/rb-auto-playlist-source.c:
6304         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6305         you from sorting playlists which aren't limited by time.
6307 2006-04-19  James Livingston  <doclivingston@gmail.com>
6309         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6310         duration or bitrate back to the file, since they are properties of the
6311         audio data, not tags we can set.
6313 2006-04-19  James Livingston  <doclivingston@gmail.com>
6315         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6316         of libtool, to fix builds which are using a different version. Fixes
6317         bug 338996.
6319         * shell/Makefile.am:
6321 2006-04-19  James Livingston  <doclivingston@gmail.com>
6323         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6324         to sync data to a file which is uneditable.
6326 2006-04-19  James Livingston  <doclivingston@gmail.com>
6328         patch by: Gavin Stewart  <gavin@brokentrain.net>
6330         * data/glade/playlist-save.glade:
6331         * data/glade/Makefile.am:
6332         * po/POTFILES.in: add the playlist saving dialog.
6334         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6335         (export_set_extension_cb), (filter_get_export_filter_label),
6336         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6337         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6338         formats (PLS and M3U at the moment). Fixes bug 316295.
6340 2006-04-19  James Livingston  <doclivingston@gmail.com>
6342         * shell/rb-playlist-manager.c:
6343         (rb_playlist_manager_set_source_internal): don't let you edit remove
6344         auto playlists.
6346         * sources/rb-auto-playlist-source.c:
6347         (rb_auto_playlist_source_set_query): correctly handle time-limited
6348         playlists.
6350 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6352         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6354         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6355         Don't crash if the queue file contains no newlines.
6356         Fixes #338924.
6358 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6360         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6361         condition
6363 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6365         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6366         case. Moreover, they may not exist yet, so take that into account when
6367         generating the iPod filename.
6369 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6371         * sources/rb-ipod-source.c: added support for drag and drop from the
6372         library to the iPod (only enabled if --enable-track-transfer was
6373         passed to configure)
6375 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6377         * configure.ac:
6378         * lib/rb-marshal.list:
6379         * lib/rb-util.c: 
6380         * lib/rb-util.h:
6381         * plugins/Makefile.am:
6382         * plugins/ipod/Makefile.am:
6383         * plugins/ipod/ipod.rb-plugin.desktop.in:
6384         * plugins/ipod/rb-ipod-plugin.c: 
6385         * plugins/rb-plugin.h:
6386         * shell/Makefile.am:
6387         * shell/rb-removable-media-manager.c:
6388         * shell/rb-removable-media-manager.h:
6389         * shell/rb-shell.c: 
6390         * sources/Makefile.am:
6391         * sources/rb-ipod-source.c: 
6392         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6393         various iPod related files should be moved to plugins/ipod/ now...
6395 2006-04-17  James Livingston  <doclivingston@gmail.com>
6397         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6398         and "vic".
6400         * help/C/figures/rb-iradio-main.png:
6401         * help/C/figures/rb-notification-area-menu.png:
6402         * help/C/figures/rb-notification-window.png:
6403         * help/C/figures/rb-notification-zone.png:
6404         * help/C/figures/rb-podcast-main.png:
6405         * help/C/figures/rb-statusbar.png:
6406         * help/C/figures/rb-volume-changer.png:
6407         * help/C/figures/rb-window-small.png:
6408         * help/C/figures/rb-window.png:
6409         * help/C/rhythmbox.xml:
6411 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6413         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6414         more obviously.
6416         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6417         (make_undecodable_error), (rb_metadata_gst_error_cb),
6418         (rb_metadata_gst_new_decoded_pad_cb),
6419         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6420         Ignore really small files (<4kB) for which typefinding fails.
6421         Always link decoded pads from decodebin to fakesink.
6422         Shut the pipeline down by posting an error on the bus when decodebin
6423         emits unknown-type signals.  Fixes bug #338062.
6425 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6427         * shell/rb-shell.c: (rb_shell_load_uri):
6428         Fix glaring mistakes in previous commit: actually pass arguments to
6429         rb_debug, and specify the right entry type when adding a new iradio
6430         station so we don't try to add local playlist files to the library.
6432 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6434         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6435         before trying to add them, as iradio streams often fail rb_uri_exists().
6437         * shell/rb-shell-player.c: (notify_playing_idle),
6438         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6439         (open_location_thread), (rb_shell_player_open_location),
6440         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6441         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6442         of all the stream URLs, and try them in turn.  If we get through the
6443         whole playlist too quickly, error out.  Various other fixes that make
6444         iradio work a lot better.
6446         * shell/rb-shell.c: (add_to_library_response_cb),
6447         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6448         (handle_playlist_entry_cb), (rb_shell_load_uri):
6449         Add playlists containing streams as iradio stations.  If the playlist
6450         is local, add each stream URL, but if the playlist is remote, just add
6451         the playlist URL.
6452         
6453         * sources/rb-iradio-source.c: (new_station_location_added):
6454         Add new station URLs as-is, rather than parsing the playlist and
6455         adding the streams.
6456         
6457         * rhythmdb/rhythmdb-query-model.c:
6458         (rhythmdb_query_model_entry_changed_cb),
6459         (rhythmdb_query_model_emit_reorder),
6460         (rhythmdb_query_model_do_reorder):
6461         Emit row-changed notifications when an entry changes but is not
6462         reordered.
6464         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6465         Display the playback error icon when the entry has an error and
6466         there's nothing else to display.
6467         
6468         Fixes bug #320336 and some of #324402.
6469         
6470 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6472         * sources/rb-ipod-source.c: use a GHashTable for the
6473         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6474         time, this fixes compilation breakage for people not having libgpod
6475         CVS HEAD
6477 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6479         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6481         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6482         (rb_podcast_manager_insert_feed):
6483         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6484         fixes bug 321945
6486 2006-04-16  James Livingston  <doclivingston@gmail.com>
6488         * sources/rb-library-source.c:
6489         (rb_library_source_library_location_cb): return FALSE like we are
6490         supposed to, not void.
6492         patch by: FreeBSD GNOME Project
6493         * configure.ac: fix some bash-isms.
6495         patch by: Pawel Worach  <pawel.worach@gmail.com>
6496         * metadata/rb-metadata-dbus-client.c:
6497         * rhythmdb/rhythmdb-query-model.c:
6498         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6501 2006-04-16  James Livingston  <doclivingston@gmail.com>
6503         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6504         for transcoding to RBEncoderGst.
6506         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6507         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6508         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6509         (add_decoding_pipeline), (encoder_match_mime),
6510         (get_profile_from_mime_type), (extract_track), (transcode_track),
6511         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6513 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6515         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6516         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6517         load_ipod_db_idle_cb to a new separate function
6519 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6521         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6522         source
6524 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6526         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6527         variables
6529 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6531         * data/ui/Makefile.am:
6532         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6533         menu
6534         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6535         NULL before using it as a popup menu
6536         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6537         'eject' an iPod
6539 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6541         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6542         iPod, check if it contains an iPod database before using it (in case
6543         the iPod was repartitionned somehow). Should fix bug #325034
6545 2006-04-16  Steve Frécinaux  <steve@istique.net>
6547         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6549         * data/Makefile.am: install application icon into the default theme.
6551         * data/rhythmbox.desktop.in: don't specify icon file extension.
6552         
6553         * shell/main.c: (main): set default window icon from theme.
6554         
6555         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6556         code concerning window icon, and fix leak by unreferencing the about
6557         logo pixbuf once it's not used anymore.
6559 2006-04-16  James Livingston  <doclivingston@gmail.com>
6561         * configure.ac: bump version to 0.9.4
6562         * NEWS: update NEWS and 0.9.4 insert translations
6564 2006-04-16  James Livingston  <doclivingston@gmail.com>
6566         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6567         namespace automatically.
6569 2006-04-16  James Livingston  <doclivingston@gmail.com>
6571         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6573         * doc/reference/Makefile.am:
6574         * doc/reference/rhythmbox.types: make distcheck work again
6576         * doc/reference/tmpl/eggnotificationbubble.sgml:
6577         * doc/reference/tmpl/eggtrayicon.sgml:
6578         * doc/reference/tmpl/rb-debug.sgml:
6579         * doc/reference/tmpl/rb-entry-view.sgml:
6580         * doc/reference/tmpl/rb-enums.sgml:
6581         * doc/reference/tmpl/rb-metadata.sgml:
6582         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6583         * doc/reference/tmpl/rb-playlist-manager.sgml:
6584         * doc/reference/tmpl/rb-refstring.sgml:
6585         * doc/reference/tmpl/rb-shell-player.sgml:
6586         * doc/reference/tmpl/rb-shell-preferences.sgml:
6587         * doc/reference/tmpl/rb-shell.sgml:
6588         * doc/reference/tmpl/rb-song-info.sgml:
6589         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6590         * doc/reference/tmpl/rb-statusbar.sgml:
6591         * doc/reference/tmpl/rhythmbox-unused.sgml:
6592         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6593         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6595 2006-04-16  James Livingston  <doclivingston@gmail.com>
6597         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6599         * po/LINGUAS: don't split the variable across two lines, as it breaks
6600         the build. Fixes bug 338625.
6602 2006-04-15  James Livingston  <doclivingston@gmail.com>
6604         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6605         add a "sourcelist-model" gobject property.
6607 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6609         * .cvsignore:
6610         * backends/.cvsignore:
6611         * backends/gstreamer/.cvsignore:
6612         * bindings/.cvsignore:
6613         * bindings/python/.cvsignore:
6614         * help/es/.cvsignore:
6615         * metadata/.cvsignore:
6616         * plugins/.cvsignore:
6617         * plugins/audioscrobbler/.cvsignore:
6618         * plugins/lirc/.cvsignore:
6619         * plugins/pythonconsole/.cvsignore:
6620         * plugins/sample-python/.cvsignore:
6621         * plugins/sample/.cvsignore:
6622         * shell/.cvsignore:
6623         * widgets/libsexy/.cvsignore:
6624         Make CVS ignore files.
6626 2006-04-14  James Livingston  <doclivingston@gmail.com>
6628         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6629         the track-loading thread hold a reference on the source, so it doesn't
6630         explode if the cd is removed before it is done. Fixes bug 337237.
6632 2006-04-14  James Livingston  <doclivingston@gmail.com>
6634         * bindings/python/override_common.c:
6635         (_helper_unwrap_pointer_pylist):
6636         * bindings/python/override_common.h:
6637         * bindings/python/rb.override:
6638         * bindings/python/rhythmdb.override: Bind some more functions and
6639         virtual functions.
6641         * shell/rb-shell.c: (rb_shell_select_source):
6642         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6643         * sources/rb-audiocd-source.c:
6644         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6645         * sources/rb-browser-source.c: (impl_get_search_actions):
6646         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6647         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6648         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6649         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6650         (impl_get_search_actions):
6651         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6652         the impl_get_ui_actions and impl_get_search_actions functions return
6653         lists that contain copies of the strings, instead of constant ones.
6654         Needed to bindings
6656 2006-04-14  James Livingston  <doclivingston@gmail.com>
6658         * bindings/python/rhythmdb.defs:
6659         * bindings/python/rhythmdb.override: fix the method argument format
6660         specifiers.
6662 2006-04-14  James Livingston  <doclivingston@gmail.com>
6664         * bindings/python/rhythmdb.defs:
6665         * bindings/python/rhythmdb.override:
6666         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6667         (entry_to_rb_metadata), (record_entry_change),
6668         (rhythmdb_entry_set_visibility):
6669         * rhythmdb/rhythmdb.h:
6670         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6671         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6672         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6673         since they are used in too many places, and not in the Python
6674         bindings.
6676 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6678         * lib/rb-debug.c: (_rb_profile_log):
6679         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6680         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6681         * shell/main.c: (main):
6682         * shell/rb-shell.c: (rb_shell_constructor),
6683         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6684         (rb_shell_present):
6685         Fix profile output indentation.  Add more profiling points.
6686         Fixes part of #338114
6688 2006-04-13  James Livingston  <doclivingston@gmail.com>
6690         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6691         library source being deleted, by setting the active source to NULL.
6692         From bug 338116.
6694 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6696         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6697         Update the last-seen string when hiddenness changes.
6699 2006-04-12  James Livingston  <doclivingston@gmail.com>
6701         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6702         which caused the first-seen time to be reset when a metadata load was
6703         done. Fixes bug 336874.
6705         * shell/rb-shell.h: remove old function declaration.
6707         * bindings/python/rhythmdb.defs:
6708         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6710 2006-04-11  James Livingston  <doclivingston@gmail.com>
6712         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6713         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6714         interaction. Fixes bug 337999.
6716 2006-04-11  James Livingston  <doclivingston@gmail.com>
6718         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6719         track transfer. Fixes bug 338056.
6721         * shell/Makefile.am:
6723 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6725         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6727 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6729         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6730         (_rb_profile_log):
6731         * lib/rb-debug.h:
6732         * shell/rb-shell.c: (construct_db), (construct_widgets),
6733         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6734         Add profiling.  Fixes #337387
6736 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6738         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6739         * widgets/rb-header.c:
6740         Use italics for artist and album. Fixes #336748
6742 2006-04-10  James Livingston  <doclivingston@gmail.com>
6744         * Makefile.am:
6745         * backends/gstreamer/Makefile.am:
6746         * configure.ac:
6747         * data/glade/library-prefs.glade:
6748         * shell/Makefile.am:
6749         * shell/rb-removable-media-manager.c:
6750         * shell/rb-removable-media-manager.h:
6751         * sources/Makefile.am:
6752         * sources/rb-audiocd-source.c:
6753         * sources/rb-library-source.c: (rb_library_source_class_init),
6754         (rb_library_source_finalize), (impl_get_config_widget),
6755         (rb_library_source_preferences_sync), (impl_can_paste): add a
6756         --enable-track-transfer configure option, abd make cd ripping disabled
6757         by default.
6759         * shell/rb-source-header.c:
6760         * sources/rb-source.c: (rb_source_class_init),
6761         (rb_source_delete_thyself), (default_get_entry_view):
6762         * lib/rb-glade-helpers.c:
6763         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6764         some compiler warnings, and also bug 337427.
6766 2006-04-10  James Livingston  <doclivingston@gmail.com>
6768         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6769         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6770         if the gconf key is missing. Fixes bug 337742.
6772 2006-04-10  James Livingston  <doclivingston@gmail.com>
6774         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6775         to fix build problems I caused with a commit yesterday. Fixed bug
6776         337806.
6778         * daapsharing/rb-daap-mdns-browser-howl.c:
6779         (rb_daap_mdns_browser_class_init):
6780         * podcast/Makefile.am:
6781         * rhythmdb/Makefile.am:
6782         * widgets/eggtrayicon.h:
6784 2006-04-09  Steve Frécinaux  <steve@istique.net>
6786         * configure.ac:
6787         * po/LINGUAS:
6788         
6789         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6790         translators' life easier.
6792 2006-04-09  James Livingston  <doclivingston@gmail.com>
6794         * bindings/python/rb.defs:
6795         * bindings/python/rb.override: add bindings for most RBSource virtual
6796         functions.
6798         * sources/rb-source.h:
6799         * sources/rb-source.c: (rb_source_class_init): make
6800         impl_get_browser_key return a non-consht string, since Python can't
6801         really give us constant strings.
6803         * shell/rb-source-header.c: (rb_source_header_finalize),
6804         (rb_source_header_set_source_internal):
6805         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6806         * sources/rb-iradio-source.c: (impl_get_browser_key):
6807         * sources/rb-library-source.c: (impl_get_browser_key):
6808         * sources/rb-playlist-source.c:
6809         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6810         (rb_browser_source_state_prefs_sync):
6811         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6812         above change.
6814         * plugins/sample-python/sample-python.py: show how to add a new
6815         source.
6817 2006-04-09  James Livingston  <doclivingston@gmail.com>
6819         * daapsharing/Makefile.am:
6820         * daapsharing/rb-daap-connection.c:
6821         (rb_daap_connection_class_init):
6822         * daapsharing/rb-daap-marshal.list:
6823         * daapsharing/rb-daap-mdns-browser-avahi.c:
6824         (rb_daap_mdns_browser_class_init):
6825         * lib/rb-marshal.list:
6826         * player/Makefile.am:
6827         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6828         * player/rb-recorder-marshal.list:
6829         * podcast/Makefile.am:
6830         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6831         * podcast/rb-podcast-marshal.list:
6832         * rhythmdb/Makefile.am:
6833         * rhythmdb/rhythmdb-marshal.list:
6834         * rhythmdb/rhythmdb-query-model.c:
6835         (rhythmdb_query_model_class_init):
6836         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6837         into one file, as there is no point having several of them.
6839 2006-04-09  James Livingston  <doclivingston@gmail.com>
6841         * lib/Makefile.am:
6842         * lib/rb-enums.h:
6843         * widgets/Makefile.am:
6844         * widgets/eggnotificationbubble.c:
6845         * widgets/eggnotificationbubble.h:
6846         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6847         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6849         * rhythmdb/rhythmdb-property-model.h:
6850         * rhythmdb/rhythmdb-query-model.h:
6851         * rhythmdb/rhythmdb.h:
6852         * shell/rb-playlist-manager.h:
6853         * widgets/rb-cell-renderer-pixbuf.h:
6854         * widgets/rb-cell-renderer-rating.h:
6855         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6857 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6859         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6860         so we can build without a system-wide installed copy.
6862 2006-04-09  James Livingston  <doclivingston@gmail.com>
6864         * data/glade/general-prefs.glade:
6865         * data/rhythmbox.schemas:
6866         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6867         (rb_combo_box_hyphen_separator_func):
6868         * lib/rb-glade-helpers.h:
6869         * lib/rb-preferences.h:
6870         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6871         (rb_shell_preferences_sync),
6872         (rb_shell_preferences_toolbar_style_cb),
6873         (rb_shell_preferences_browser_views_activated_cb):
6874         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6875         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6876         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6878 2006-04-09  James Livingston  <doclivingston@gmail.com>
6880         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6881         data that MusicBrainz returns to us. Last part of bug 334167.
6883 2006-04-09  James Livingston  <doclivingston@gmail.com>
6885         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6886         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6888 2006-04-09  James Livingston  <doclivingston@gmail.com>
6890         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6891         the entry view properly when the rows are reordered. Fixes bug 337019.
6893 2006-04-09  James Livingston  <doclivingston@gmail.com>
6895         * configure.ac:
6896         * widgets/Makefile.am:
6897         * widgets/libsexy/Makefile.am:
6898         * widgets/libsexy/sexy-icon-entry.c:
6899         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6900         libsexy, and allow building against it or a system-wide installed
6901         copy.
6904         * widgets/rb-search-entry.c: (rb_search_entry_init),
6905         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6906         search box. Fixes bug 128109.
6908 2006-04-09  James Livingston  <doclivingston@gmail.com>
6910         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6912         * widgets/rb-entry-view.c: (rb_entry_view_init),
6913         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6914         and Pause icons rather than the volume ones in the Now Playing column.
6915         Closes bug 336482.
6917 2006-04-08  James Livingston  <doclivingston@gmail.com>
6919         * bindings/python/override_common.h:
6920         * bindings/python/rb.override:
6921         * bindings/python/rhythmdb.override: bind some more functions 
6923 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6925         * metadata/rb-metadata-dbus-service.c: (_send_error):
6926         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6927         are sent properly and we don't get 'method doesn't exist' messages
6928         from dbus instead.
6930 2006-04-08  James Livingston  <doclivingston@gmail.com>
6932         * bindings/python/override_common.h:
6933         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6934         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6935         more utility functions for C<->Python conversions
6937         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6938         (rb_entry_view_state_get_type):
6939         * widgets/rb-entry-view.h: make the colume type and entry view state
6940         GTypes
6942         * bindings/python/Makefile.am:
6943         * bindings/python/rb.defs:
6944         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6945         RBSource.
6947 2006-04-08  James Livingston  <doclivingston@gmail.com>
6949         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6950         initialiser for a GError
6952         * sources/rb-source.c: (rb_source_eof_type_get_type):
6953         * sources/rb-source.h: add a GType for RBSourceEOFType
6955         * bindings/python/Makefile.am:
6956         * bindings/python/rb.defs:
6957         * bindings/python/rb.override: bind RBSource and RBSourceList
6959 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6961         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6962         (rb_shell_player_get_property),
6963         (rb_shell_player_get_active_source),
6964         (rb_shell_player_set_playing_source_internal):
6965         * shell/rb-shell-player.h:
6966         Change 'playing-from-queue' from being a signal to being a property.
6968         * shell/rb-shell.c: (rb_shell_constructor),
6969         (rb_shell_playing_from_queue_cb),
6970         (rb_shell_view_queue_as_sidebar_changed_cb),
6971         (rb_shell_jump_to_entry_with_source):
6972         When the queue side pane is used, make 'jump to current' jump to the
6973         entry in the registered source for its type, rather than in the queue,
6974         and show it as playing in that source.
6975         
6976         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6977         * sources/rb-sourcelist.h:
6978         Remove the 'preempted source' stuff, since it wasn't doing anything
6979         anyway.
6981 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6983         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6984         (download_progress_cb): Canonicalise downloaded file location before
6985         setting the mountpoint property of the corresponding entry.
6986         Fixes #337287 and a couple of memory leaks.
6988 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6990         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6991         (test_load), (main): Call g_set_prgname, report errors more
6992         usefully in test mode.
6993         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6994         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6995         files.  Run the event loop when the state change fails so we get the
6996         error messages from the bus.  Fixes #336921.
6998 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7000         * data/art/Makefile.am: Install media-eject.
7002         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7003         return value of rb_file.
7005         Fixes #337209
7007 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7009         Patch by: William Jon McCann  <mccann@jhu.edu>
7011         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7012         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7013         Fix GError leak.
7015 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7017         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7018         Don't try to add a date when we don't have one.  Fixes #336741.
7020         Also fix variable declaration in middle of block.
7022 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7024         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7025         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7027 2006-04-02  James Livingston  <doclivingston@gmail.com>
7029         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7030         inverted logic causing imports to fail.
7032 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7034         * shell/main.c: (main): Fix dbusless build.
7036 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7038         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7039         wav header for non-gcc compilers (not tested much, was only written
7040         according to docs)
7042 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7044         * shell/main.c: (main): Check if we got a dbus connection before
7045         trying to create a proxy for the shell object.  Fixes #336634.
7047 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7049         * doc/reference/Makefile.am:
7050         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7051         * shell/rb-source-header.c:
7052         * sources/rb-generic-player-source.c:
7053         (default_transform_playlist_uri):
7054         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7055         <alexl@users.sourceforge.net>
7057 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7059         * configure.ac: Detect LIRC.
7060         
7061         * plugins/Makefile.am:
7062         * plugins/lirc/Makefile.am:
7063         * plugins/lirc/lirc.rb-plugin.desktop.in:
7064         * plugins/lirc/rb-lirc-plugin.c:
7065         LIRC plugin.
7067         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7068         Remove obsolete files.
7070 2006-04-02  James Livingston  <doclivingston@gmail.com>
7072         * sources/rb-generic-player-source.c:
7073         (default_transform_playlist_uri): consider playlist paths as relative
7074         to the volume root by default, since that is what most players use.
7076 2006-04-02  James Livingston  <doclivingston@gmail.com>
7078         * lib/rb-util.c: (rb_mime_get_friendly_name):
7079         * lib/rb-util.h: add helper function to get the "friendly" name for a
7080         mime-type
7082         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7083         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7084         the user better error messages about undecodable streams, using the
7085         "friendly" name if possible. Fixes bug 128109.
7087 2006-04-02  James Livingston  <doclivingston@gmail.com>
7089         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7090         (start_pipeline): fix building with gstreamer 0.8
7092 2006-04-02  James Livingston  <doclivingston@gmail.com>
7094         * sources/rb-podcast-source.c: (impl_delete),
7095         (rb_podcast_source_cmd_delete_feed),
7096         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7097         it, since it may change during traversal. Fixes bug 336204.
7099 2006-04-01  James Livingston  <doclivingston@gmail.com>
7101         * data/art/media-eject.png: add the media-eject icon from Banshee
7102         (BSD-licensed), for use when the user's icon theme doesn't have one.
7104         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7105         bug 334897.
7107 2006-04-01  James Livingston  <doclivingston@gmail.com>
7109         * shell/rb-shell-player.h:
7110         * shell/rb-shell-player.c: (rb_shell_player_play),
7111         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7112         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7113         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7115         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7116         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7117         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7119         * bindings/python/rb.defs: bind the above to Python, and remove some
7120         useless stuff from the bindings.
7122 2006-04-01  James Livingston  <doclivingston@gmail.com>
7124         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7125         number tag.
7127         * shell/rb-shell.c:
7128         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7130         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7131         to true.
7133         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7134         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7135         method assigning, so it's understandable
7137         * sources/rb-library-source.c: (rb_library_source_class_init),
7138         (impl_paste): rather than hard-coding the types to ignore, use
7139         rb_source_can_copy.
7141 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7143         * sources/rb-library-source.c:
7144         (rb_library_source_preferences_sync):
7145         Don't crash if no audio profile is selected and the gconf schemas are 
7146         not installed.
7148 2006-03-31  James Livingston  <doclivingston@gmail.com>
7150         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7151         "*" which caused compilation to fail
7153 2006-03-31  James Livingston  <doclivingston@gmail.com>
7155         * configure.ac:
7156         * Makefile.am:
7157         * backends/Makefile.am:
7158         * backends/gstreamer/Makefile.am:
7159         * backends/gstreamer/rb-encoder-gst.c:
7160         * backends/gstreamer/rb-encoder-gst.h:
7161         * backends/rb-encoder.c:
7162         * backends/rb-encoder.h: add a interface for transcoding, and a
7163         GStreamer implementation of it (based on Sound-Juicer's code).
7165         * shell/Makefile.am:
7166         * shell/rb-removable-media-manager.c:
7167         (rb_removable_media_manager_class_init),
7168         (rb_removable_media_manager_init),
7169         (rb_removable_media_manager_dispose),
7170         (rb_removable_media_manager_finalize),
7171         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7172         (progress_cb), (completed_cb), (do_transfer),
7173         (rb_removable_media_manager_queue_transfer), (copy_entry),
7174         (rb_removable_media_manager_cmd_copy_tracks):
7175         * shell/rb-removable-media-manager.h: use the encoder interface to
7176         perform transfers of entries to other locations
7178         * shell/rb-shell-player.c: (open_location_thread):
7179         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7180         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7181         (rb_shell_quit):
7182         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7183         progress in the status bar.
7185         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7186         (rb_shell_preferences_sync),
7187         (rb_shell_preferences_browser_views_activated_cb):
7188         * data/glade/general-prefs.glade: move the browser views setting from
7189         the library tab to the general one.
7191         * data/glade/library-prefs.glade: add settings for the layout of the
7192         user's library, and their preferred encoding format (e.g. for CD
7193         ripping).
7195         * lib/rb-preferences.h:
7196         * data/rhythmbox.schemas: add keys for the above options (and a few
7197         other minor ones)
7199         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7200         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7201         entry, that isn't inserted into the database.
7203         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7204         (rb_audiocd_create_track_entry):
7205         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7206         cds, and set the mime-type of audio cd tracks correctly.
7208         * sources/rb-library-source.c: (rb_library_source_class_init),
7209         (rb_library_source_finalize),
7210         (rb_library_source_edit_profile_clicked_cb),
7211         (impl_get_config_widget), (rb_library_source_preferences_sync),
7212         (impl_receive_drag), (rb_library_source_path_changed_cb),
7213         (rb_library_source_filename_changed_cb),
7214         (rb_library_source_format_changed_cb), (sanitize_path),
7215         (filepath_parse_pattern), (layout_example_label_update),
7216         (rb_library_source_layout_path_changed),
7217         (rb_library_source_layout_filename_changed), (build_filename),
7218         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7219         entries to the library. Large chunks of code for determining the
7220         destination file name stolen from Sound-Juicer.
7222         * sources/rb-sourcelist-model.c: (path_is_droppable):
7223         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7224         * sources/rb-static-playlist-source.c:
7225         (rb_static_playlist_source_class_init):
7226         * sources/rb-removable-media-source.c:
7227         (rb_removable_media_source_class_init):
7228         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7229         (rb_source_can_paste):
7230         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7231         than _can_copy) to determine whether we can paste into the source.
7234 2006-03-31  Steve Frécinaux  <steve@istique.net>
7236         * plugins/rb-python-module.c: allow import of python modules with a '.'
7237         (gedit's bug 336403). Patch by Johan Dahlin.
7239 2006-03-31  James Livingston  <doclivingston@gmail.com>
7241         * sources/rb-library-source.c: 
7242         * sources/rb-library-source.h:
7243         * sources/rb-browser-source.c:
7244         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7245         RBBrowserSource now contains all the stuff for having a source which
7246         views a particular entry type (including browsers and searching).
7247         RBLibrarySource derives from this, and includes the library-specific
7248         stuff, like importing and library watching. Fixes some issues where
7249         library-derived sources were doing things that should be
7250         library-specific. Fixes bug 335185.
7252         * data/ui/rhythmbox-ui.xml:
7253         * sources/Makefile.am: modifications for the above
7255         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7256         (rb_daap_source_get_paned_key):
7257         * sources/rb-daap-source.h:
7258         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7259         * sources/rb-removable-media-source.c:
7260         (rb_removable_media_source_class_init):
7261         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7262         instead of RBLibrarySource.
7264 2006-03-31  James Livingston  <doclivingston@gmail.com>
7266         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7267         I buggered up when changing from GnomeVFSFileSize.
7269 2006-03-30  James Livingston  <doclivingston@gmail.com>
7271         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7272         for "-Wno-error".
7274         * bindings/python/rb.override:
7275         * bindings/python/Makefile.am: make the RB python bindings depend on
7276         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7277         code sometimes emits warnings.
7279         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7280         (rb_shell_player_error_get_type):
7281         * shell/rb-shell-player.h:
7282         * bindings/python/rb.defs: add bindings for RBShellPlayer
7284         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7285         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7286         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7287         * rhythmdb/rhythmdb.h:
7288         * shell/rb-shell.c: (rb_shell_get_song_properties):
7289         * widgets/rb-entry-view.c: (propid_from_name):
7290         * widgets/rb-property-view.c: (rb_property_view_class_init):
7291         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7292         than just plain GPtrArray, and add bindings for it.
7294         * bindings/python/rhythmdb.override: wrap some functions that use
7295         GValues
7297 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7299         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7300         Only watch directories from which entries of type SONG have been
7301         added.
7303 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7305         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7306         No need to restore the selection after rebuilding the child model,
7307         since that can't have changed the selection.
7309 2006-03-29  James Livingston  <doclivingston@gmail.com>
7311         * bindings/python/override_common.c:
7312         * bindings/python/override_common.h: add some for missing files to
7313         cvs.
7315 2006-03-29  James Livingston  <doclivingston@gmail.com>
7317         * configure.ac:
7318         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7319         copied from gedit's autofoo and we don't need it
7321         * bindings/python/rhythmdb.defs:
7322         * bindings/python/rhythmdb.override: add missing files to cvs
7324 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7326         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7327         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7328         before running any of the debug/test modes.
7329         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7330         Make plugin loading work when running uninstalled from the shell/
7331         directory.
7333 2006-03-29  James Livingston  <doclivingston@gmail.com>
7335         * rhythmdb/rhythmdb-property-model.c:
7336         (rhythmdb_property_model_sync),
7337         (rhythmdb_property_model_column_get_type):
7338         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7340         * rhythmdb/rhythmdb-private.h:
7341         * rhythmdb/rhythmdb-query-model.c:
7342         (rhythmdb_query_model_class_init):
7343         * rhythmdb/rhythmdb-query-model.h:
7344         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7345         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7346         (rhythmdb_entry_get_type):
7347         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7349         * widgets/rb-query-creator-properties.c:
7350         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7351         was missing.
7353         * bindings/python/Makefile.am:
7354         * bindings/python/rb.defs:
7355         * bindings/python/rb.override:
7356         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7357         Python bindings for RhythmDB.
7359 2006-03-29  James Livingston  <doclivingston@gmail.com>
7361         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7362         sharing when using --no-registration
7364 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7366         * rhythmdb/rhythmdb-query-model.c:
7367         (rhythmdb_query_model_reapply_query):
7368         Don't remove entries while iterating, as it breaks the sequence
7369         nodes.  Instead, collect a list of removed entries and process it
7370         after iterating the sequence.  Fixes #334642.
7372 2006-03-29  James Livingston  <doclivingston@gmail.com>
7374         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7375         (row_activated_cb), (plugin_manager_toggle_all):
7376         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7377         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7378         (button_press_cb), (source_name_edited_cb):
7379         * widgets/rb-property-view.c: (rb_property_view_set_property),
7380         (rb_property_view_post_row_deleted_cb),
7381         (rb_property_view_row_activated_cb),
7382         (rb_property_view_selection_changed_cb),
7383         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7384         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7386 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7388         * rhythmdb/rhythmdb-query-model.c:
7389         (rhythmdb_query_model_drag_data_received):
7390         Increment the reference count for entries added by drag and drop.
7391         Fixes #336045.
7393 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7395         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7396         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7397         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7399 2006-03-27  James Livingston  <doclivingston@gmail.com>
7401         * shell/rb-shell.c: (rb_shell_constructor),
7402         (rb_shell_sync_window_state): fix a maximise-realise race that would
7403         cause some widgets to be resized after we had explicity set theri
7404         size. Hopefully fixes bug 331927.
7406 2006-03-27  James Livingston  <doclivingston@gmail.com>
7408         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7409         (row_activated_cb), (plugin_manager_set_active),
7410         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7411         configure button sensitivity when a plugin is enabled/disabled.
7413 2006-03-27  James Livingston  <doclivingston@gmail.com>
7415         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7416         stop warnings, only the vbos is used anyway
7418         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7419         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7420         collection every now an then.
7422         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7423         if we are finalising because the python object couldn't be created.
7425         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7426         NULL if the python-side object couldn't be created. Stops crashes when
7427         the object is later used when it doesn't exist in Python.
7429         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7430         (rb_python_shutdown): do better garbage collection when shutting down.
7431         Fixes the problem where Python was holding a reference to the shell,
7432         causing RB not to exit.
7434 2006-03-27  James Livingston  <doclivingston@gmail.com>
7436         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7437         336131.
7439 2006-03-27  James Livingston  <doclivingston@gmail.com>
7441         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7442         From bug 334829.
7444 2006-03-26  James Livingston  <doclivingston@gmail.com>
7446         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7447         library location list to NULL after we free it. Fixes bug 336047.
7449 2006-03-26  James Livingston  <doclivingston@gmail.com>
7451         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7453         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7454         supplies. Fixes bug 335947.
7456 2006-03-25  James Livingston  <doclivingston@gmail.com>
7458         * data/glade/audioscrobbler-prefs.glade:
7459         * shell/rb-audioscrobbler.c:
7460         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7461         "submit songs" checkbox, and make it not disable username/password
7462         entry. This will be needed when we support other last.fm stuff
7463         (profile access, radio, etc).
7465 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7467         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7468         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7469         335777.
7471 2006-03-24  James Livingston  <doclivingston@gmail.com>
7473         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7474         (rb_shell_player_sync_play_order),
7475         (rb_shell_player_play_order_update_cb),
7476         (actually_set_playing_source): update the next/previous availablility
7477         in places where it was missing. Fixes bug 335490.
7479 2006-03-24  James Livingston  <doclivingston@gmail.com>
7481         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7482         can't find the widget
7484         * lib/rb-util.c: (rb_uri_list_parse):
7485         * lib/rb-util.h: add function for parsing a URI list into strings.
7487         * metadata/Makefile.am: make the metdata helper build when linking
7488         with --as-needed
7490         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7491         g_mkdir_with_parents instead of coding our own.
7493         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7494         <itunes:author> over <generator>, instead of using whichever comes
7495         last.
7497         * rhythmdb/rhythmdb-private.h:
7498         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7499         field, as we don't ever check it (to detect corruption). Saves a bit
7500         of memory.
7502 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7504         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7505         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7506         Escape '&' and '=' in the paths we get back from
7507         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7509 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7511         * shell/rb-shell.c: (rb_shell_constructor):
7512         Issue startup notification after creating the main window, so
7513         notification is issued whether the window is visible or not.
7514         Fixes #335086.
7516 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7518         * sources/rb-auto-playlist-source.c: (impl_search),
7519         (rb_auto_playlist_source_query_complete_cb),
7520         (rb_auto_playlist_source_do_query):
7521         * sources/rb-library-source.c: (impl_search),
7522         (rb_library_source_query_complete_cb),
7523         (rb_library_source_do_query):
7524         Defer subset searches (where text is appended to an existing search)
7525         until the original query is complete.
7527 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7529         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7531         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7532         (rb_refstring_get_sort_key): fixes for strict-aliasing
7534 2006-03-21  James Livingston  <jrl@ids.org.au>
7536         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7537         importing a single file. Fixes bug 335307.
7539 2006-03-21  James Livingston  <jrl@ids.org.au>
7541         * shell/Makefile.am: remove the reference to backends/ that I
7542         accidently included.
7544 2006-03-21  James Livingston  <jrl@ids.org.au>
7546         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7547         with Forte (on Solaris). Closes bug 335318.
7549         * configure.ac:
7550         * lib/Makefile.am:
7551         * player/rb-recorder-gst.c:
7552         * podcast/rb-podcast-parse.c:
7553         * remote/bonobo/Makefile.am:
7554         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7555         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7556         (rhythmdb_query_model_add_entry),
7557         (rhythmdb_query_model_add_results):
7558         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7559         * rhythmdb/rhythmdb.h:
7560         * shell/Makefile.am:
7561         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7562         (update_speed_combobox):
7563         * sources/rb-sourcelist-model.c:
7565 2006-03-21  James Livingston  <jrl@ids.org.au>
7567         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7569         * player/Makefile.am:
7570         * shell/Makefile.am: work correctly with a separate build root.
7572 2006-03-21  James Livingston  <jrl@ids.org.au>
7574         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7575         get handed NULL.
7577 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7579         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7580         Only create ignore entries when importing into the library.  
7581         Ignore entries for files in removable media sources don't help.
7583 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7585         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7586         * shell/rb-source-header.h:
7587         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7588         * widgets/rb-search-entry.h:
7589         Add functions to make the search box grab focus.
7591         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7592         Focus the search box after handling the 'view all' action.
7594 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7596         * rhythmdb/rhythmdb.h:
7597         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7598         (rhythmdb_execute_multi_stat_info_cb),
7599         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7600         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7601         (action_thread_main):
7602         Collect all the get_file_info requests on startup into one gnome-vfs
7603         job to reduce overhead and avoid contention for the rhythmdb lock.
7604         Add a new method to call when all initial query models are set up.
7605         
7606         * shell/rb-shell.c: (idle_handle_load_complete):
7607         Call rhythmdb startup complete function when we've loaded all the
7608         playlists.  Fixes #334106.
7610 2006-03-20  James Livingston  <jrl@ids.org.au>
7612         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7613         (rb_entry_view_selection_changed_cb),
7614         (rb_entry_view_have_complete_selection): make has_complete_selection
7615         not slow. Fixes a performance issue I added a week or so ago.
7617 2006-03-20  James Livingston  <jrl@ids.org.au>
7619         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7620         before passing to strcmp. From bug 334559.
7622 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7624         * configure.ac:
7625         * lib/Makefile.am:
7626         * lib/rb-proxy-config.c:
7627         * lib/rb-proxy-config.h:
7628         Add a new object to watch the HTTP proxy configuration and emit
7629         signals when it changes.
7631         * shell/rb-audioscrobbler.c:
7632         * shell/rb-audioscrobbler.h:
7633         Use rb-proxy-config to watch HTTP proxy configuration.
7635         * shell/rb-shell.c:
7636         Construct rb-proxy-config object on startup, and remove all
7637         audioscrobbler references.
7639         * shell/Makefile.am:
7640         * plugins/audioscrobbler/Makefile.am:
7641         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7642         Move all audioscrobbler code into the plugin.  We should move
7643         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7644         point.  Don't use a private data structure in the plugin, since the
7645         class definition isn't in a header file.  Fixes #335091.
7647 2006-03-20  James Livingston  <jrl@ids.org.au>
7649         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7650         don't enable Next if the source has an EOS type other than
7651         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7653 2006-03-20  James Livingston  <jrl@ids.org.au>
7655         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7656         (rb_song_info_forward_clicked_cb): deal with there being no
7657         next/previous entry.
7659         (rb_song_info_query_model_inserted_cb),
7660         (rb_song_info_query_model_deleted_cb),
7661         (rb_song_info_query_model_reordered_cb),
7662         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7663         to update the button status. Fixes bug 333293.
7665 2006-03-20  James Livingston  <jrl@ids.org.au>
7667         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7668         caused by my last commit
7670 2006-03-20  James Livingston  <jrl@ids.org.au>
7672         * bindings/python/Makefile.am:
7673         * bindings/python/rb.defs:
7674         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7676         * shell/rb-shell.c: (rb_shell_constructor),
7677         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7678         tray-icon detection slightly
7680 2006-03-19  Steve Frécinaux  <steve@istique.net>
7682         * data/ui/rhythmbox-ui.xml:
7683         * shell/rb-shell.c:
7685         Add an empty Tool Menu (hidden by default) containing placeholders for
7686         plugins.
7688         * configure.ac:
7689         * plugins/Makefile.am:
7690         * plugins/pythonconsole/Makefile.am:
7691         * plugins/pythonconsole/pythonconsole.py:
7692         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7693         
7694         Python Console plugin
7696 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7698         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7699         Extra step to encode '&' and '=' to match what gnome-vfs does
7700         internally.
7701         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7702         (rhythmdb_tree_save):
7703         Increment rhythmdb xml version to 1.2, and force another uri
7704         re-canonicalisation when loading v1.1 databases.
7705         Fixes bug #333998.
7707 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7709         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7710         (avahi_client_init), (browse_cb):
7711         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7712         (avahi_client_init):
7713         Fix compilation with Avahi 0.5.x (bug #334551).
7715 2006-03-19  James Livingston  <jrl@ids.org.au>
7717         Add Increase/Decrease Volume menu items and keybindings. From bug
7718         123383.
7720         * data/ui/rhythmbox-ui.xml:
7721         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7722         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7723         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7725 2006-03-19  James Livingston  <jrl@ids.org.au>
7727         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7729         * shell/Makefile.am: fix the link order, so that we compile with
7730         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7732 2006-03-19  James Livingston  <jrl@ids.org.au>
7734         patch by: Adam Petaccia  <adam@tpetaccia.com>
7736         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7737         plugins". Fixes bug 335037.
7739 2006-03-18  James Livingston  <jrl@ids.org.au>
7741         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7742         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7743         332992.
7745         * widgets/rb-header.c: don't make artist/album info in the header the
7746         small size, since it's hard to read.
7748 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7750         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7751         (rhythmdb_finalize): Don't leak the hash tables.
7752         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7753         (rhythmdb_commit_internal): Make sure to process the deletions.
7754         (rhythmdb_entry_delete): Use a hash.
7756         * podcast/rb-podcast-manager.c: Random analness about char*
7757         (rb_podcast_manager_remove_feed): Add debugging.
7758         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7759         the result of gnome_vfs_unlink.  Don't leak a uri.
7761         Fixes #334786
7763 2006-03-18  James Livingston  <jrl@ids.org.au>
7765         * NEWS: update NEWS file
7767 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7769         * rhythmdb/rhythmdb-property-model.c:
7770         (rhythmdb_property_model_prop_changed_cb):
7771         Remove entries from the hash table after processing visible->hidden
7772         changes.
7774 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7776         * sources/rb-daap-source.c (connection_connected_cb) 
7777         (connection_disconnected_cb): Add debug.
7778         (rb_daap_source_get_headers): Check for NULL connection.
7780         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7781         Check return value of rb_daap_source_get_headers.
7783         Fixes #332089
7785 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7787         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7788         Restore the selection after rebuilding the child model, so the
7789         selection is shown correctly after using the 'browse this
7790         album/artist/genre' menu items.
7792 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7794         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7795         Clear the selection before changing the active model.
7796         Fixes crash reported in bug 334549.
7798 2006-03-15  James Livingston  <jrl@ids.org.au>
7800         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7801         (rb_tray_icon_sync_action):
7802         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7803         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7804         for non-libnotify notification bubbles. Fixes bug 331721.
7806 2006-03-15  James Livingston  <jrl@ids.org.au>
7808         Add search-bar options to playlists. Fixes bug 334407.
7810         * sources/rb-auto-playlist-source.c:
7811         (rb_auto_playlist_source_class_init),
7812         (rb_auto_playlist_source_constructor),
7813         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7814         (search_action_to_prop), (search_action_changed):
7815         * sources/rb-static-playlist-source.c:
7816         (rb_static_playlist_source_class_init),
7817         (rb_static_playlist_source_constructor),
7818         (construct_query_from_selection), (impl_get_search_actions),
7819         (search_action_to_prop), (search_action_changed):
7821 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7823         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7824         Remove broken attempt at making the search bar buttons not
7825         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7827 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7829         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7830         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7832 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7834         * widgets/rb-header.c (rb_header_sync): Escape album and
7835         artist before adding to markup.
7837 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7839         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7840         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7841         (rb_header_set_property), (rb_header_get_property),
7842         (rb_header_sync):
7843         Remove the GnomeUrl song links until we can do it properly.
7844         Fixes #334453.
7846 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7848         * shell/rb-source-header.c: (rb_source_header_clear_search):
7849         Remove the stored search text from the hash table, so it doesn't
7850         reappear after switching to another source and back.
7852         * sources/rb-auto-playlist-source.c: (impl_search):
7853         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7854         * sources/rb-static-playlist-source.c: (impl_search):
7855         Make sure all sources treat impl_search(NULL) and impl_search("") the
7856         same.  Fixes #334525.
7858 2006-03-14  James Livingston  <jrl@ids.org.au>
7860         Store which thread created new entries, and make rhythmdb_commit only
7861         insert the entries for the thread that calls it. This stops one thread
7862         calling rhythmdb_commit inserting entries that are half-way through
7863         construction by another thread (as happens with audio cds). From bug
7864         330226.
7866         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7867         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7868         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7869         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7870         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7871         (rhythmdb_process_metadata_load),
7872         (rhythmdb_process_queued_entry_set_event),
7873         (rhythmdb_prop_get_type):
7875 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7877         * rhythmdb/rhythmdb-query-model.c:
7878         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7879         (rhythmdb_query_model_finalize):
7880         Move object unrefs from _finalize into _dispose.
7881         
7882         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7883         Remove extra g_object_ref that was causing query model leaks.
7884         
7885         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7886         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7887         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7888         Remove the cached 'all' query, since it doesn't really help and it
7889         makes the code more complicated.  Attach the genre property view to
7890         the query model build from the search text, so only genres for
7891         stations matching the search terms are displayed.  Preserve the genre
7892         selection across searches.
7894         * widgets/rb-library-browser.c: 
7895         (rb_library_browser_class_init), (rb_library_browser_get_property):
7896         Add properties for the input and output models for the browser, and
7897         remove the 'changed' signal as we can just use notify::output-model.
7898         (ignore_selection_changes),
7899         (selection_restore_data_destroy), (query_complete_cb),
7900         (restore_selection): Helper functions for preserving selections across
7901         query model rebuilds.
7902         (rebuild_output_model):  New function for creating a query model to
7903         use as the display model for a source using the browser.
7904         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7905         g_object_unrefs, reuse the parent's query model when there's no
7906         selection, and use ignore_selection_changes and restore_selection.
7907         (rb_library_browser_set_selection): rebuild_child_model emits the
7908         changed signal, so no need to do it here.
7909         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7910         ignore_selection_changes and restore_selection. 
7911         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7912         flag to rb_library_browser_set_model indicating whether the query is
7913         asynchronous.
7915         * sources/rb-static-playlist-source.c:
7916         (rb_static_playlist_source_class_init),
7917         (rb_static_playlist_source_dispose):
7918         (rb_static_playlist_source_constructor):  Add an extra reference on
7919         the base model, so it doesn't vanish when we set a new display model
7920         based on a search or browser selection.
7921         (impl_search): Ensure the search_text field in the source is NULL if
7922         the search box is empty.
7923         (construct_query_from_selection),
7924         (rb_static_playlist_source_do_query): Use the query model constructed
7925         from the search as the input model for the browser.
7926         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7927         output model as the query model for the source.
7929         * sources/rb-auto-playlist-source.c:
7930         (rb_auto_playlist_source_finalize): Free more stuff.
7931         (rb_auto_playlist_source_constructor),
7932         (rb_auto_playlist_source_browser_changed_cb):
7933         Update for rb-library-browser changes, use the browser's output query
7934         model as the query model for the source.
7935         (impl_reset_filters), (impl_search), 
7936         (rb_auto_playlist_source_do_query),
7937         (rb_auto_playlist_source_set_query):
7938         Use the query model constructed from the search text as the input to
7939         the library browser, and when adding text to an existing search, apply
7940         the new query to the existing query model.
7941         
7942         * sources/rb-library-source.c: (rb_library_source_dispose):
7943         (rb_library_source_finalize): Chain dispose up to the parent class.
7944         (rb_library_source_constructor): Update for rb-library-browser
7945         changes. 
7946         (impl_search): Ensure search_text is NULL if the search box is empty,
7947         and use the subset flag to _do_query if text has been appended to an
7948         existing search.
7949         (search_action_changed), (impl_reset_filters):
7950         (rb_library_source_browser_changed_cb),
7951         (rb_library_source_do_query): Use the browser's output model as the
7952         query model for the source.
7954         Rework library and playlist sources to use a single query chain,
7955         and to limit the entries shown in property views based on the search
7956         terms.  Fixes bug #322787.
7958 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7960         * configure.ac:  Enable metadata helper by default, and fix a typo.
7962 2006-03-13  James Livingston  <jrl@ids.org.au>
7964         Make RBRefStrings lazily create the folded and sort-key strings when
7965         they are first used. This will same some memory by not creating ones
7966         that are never used, and delaying some of the others to when the user
7967         resorts or performs a similar action. Fixes bug 332992.
7969         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7970         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7971         (rb_refstring_get), (rb_refstring_get_folded),
7972         (rb_refstring_get_sort_key), (rb_refstring_hash),
7973         (rb_refstring_equal):
7974         * rhythmdb/rb-refstring.h:
7975         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7977 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7979         * data/ui/rhythmbox-ui.xml:
7980         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7981         * lib/rb-stock-icons.h:
7982         * shell/rb-shell-player.c:
7983         * shell/rb-shell.c: (rb_shell_constructor):
7984         * shell/rb-source-header.c: (force_no_shadow),
7985         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7986         (rb_source_header_class_init), (rb_source_header_init),
7987         (merge_source_ui_cb), (toolbar_set_homogeneous),
7988         (rb_source_header_set_source_internal),
7989         (rb_source_header_set_property), (rb_source_header_get_property),
7990         (rb_source_header_set_source), (rb_source_header_new),
7991         (rb_source_header_filter_changed_cb):
7992         * shell/rb-source-header.h:
7993         * sources/rb-library-source.c: (rb_library_source_class_init),
7994         (rb_library_source_init), (search_action_to_prop),
7995         (search_action_changed), (rb_library_source_constructor),
7996         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7997         (construct_query_from_selection):
7998         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7999         (rb_podcast_source_init), (search_action_to_prop),
8000         (search_action_changed), (rb_podcast_source_constructor),
8001         (construct_query_from_selection), (impl_get_ui_actions),
8002         (impl_get_search_actions):
8003         * sources/rb-source.c: (rb_source_class_init),
8004         (rb_source_get_ui_actions), (default_get_search_actions),
8005         (rb_source_get_search_actions):
8006         * sources/rb-source.h:
8008         Add a search bar.  Fixes #328618
8010 2006-03-12  James Livingston  <jrl@ids.org.au>
8012         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8013         * shell/main.c: (main): make --no-update not stat files checking for
8014         changes, instead of doing nothing. Fixes bug 125177.
8016 2006-03-12  James Livingston  <jrl@ids.org.au>
8018         * podcast/rb-podcast-manager.c:
8019         (rb_podcast_manager_thread_parse_feed):
8020         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8021         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8022         having an invalid mime-type. Fixed bug 329813.
8024 2006-03-12  James Livingston  <jrl@ids.org.au>
8026         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8027         Finally lets us close bug 309609.
8029         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8030         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8031         0.10
8033         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8034         inverted logic of the editable check.
8036 2006-03-12  James Livingston  <jrl@ids.org.au>
8038         Make API doc generation work again. Fixes bug 334276.
8040         * doc/reference/Makefile.am:
8041         * doc/reference/tmpl/rb-debug.sgml:
8042         * doc/reference/tmpl/rb-druid.sgml:
8043         * doc/reference/tmpl/rb-entry-view.sgml:
8044         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8045         * doc/reference/tmpl/rb-metadata.sgml:
8046         * doc/reference/tmpl/rb-shell.sgml:
8047         * doc/reference/tmpl/rhythmbox-unused.sgml:
8048         * doc/reference/tmpl/rhythmdb.sgml:
8050 2006-03-12  James Livingston  <jrl@ids.org.au>
8052         * shell/rb-shell-clipboard.c:
8053         (rb_shell_clipboard_set_source_internal),
8054         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8055         it doesn't have one. Fixes bug 331673.
8057         * sources/rb-source.c: (rb_source_class_init): provide a default
8058         have_url implementation that returns FALSE.
8060 2006-03-12  James Livingston  <jrl@ids.org.au>
8062         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8063         doing a distclean. Fixes bug 334221.
8066         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8068         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8070 2006-03-11  James Livingston  <jrl@ids.org.au>
8072         * shell/rb-shell.c: (rb_shell_window_state_cb),
8073         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8074         update the window width/height when iconified. Stops the window
8075         changing size when it is restored from the tray, fixing bug 333824. 
8077 2006-03-11  James Livingston  <jrl@ids.org.au>
8079         Try to get cvs to actually add the necessary files for plugin support
8081 2006-03-11  James Livingston  <jrl@ids.org.au>
8083         Add a plugin framework, with basic support for Python plugins (based
8084         on gedit's). Closes bug 330523.
8086         * Makefile.am:
8087         * shell/Makefile.am:
8088         * configure.ac: necessary autofoo.
8090         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8092         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8093         * lib/rb-file-helpers.h:
8095         * data/glade/plugins/glade:
8096         * lib/rb-preferences.h:
8097         * plugins/*:
8098         * bindings/*: plugin framework
8100         * plugins/sample/*:
8101         * plugins/sample-python/*: sample plugins
8103         * plugins/audioscrobbler/*:
8104         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8105         (rb_audioscrobbler_set_property),
8106         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8107         submission into a plugin. shell/audioscrobbler.* should really be
8108         moved, but that sucks with cvs.
8110         * shell/rb-shell.h:
8111         * shell/rb-shell.c: (rb_shell_constructor),
8112         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8113         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8114         (rb_shell_quit): start and stop plugin framework.
8116 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8118         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8119         (rhythmdb_entry_delete):
8120         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8121         immediately, so we can't get change notifications afterwards.  
8122         Fixes #331732.
8123         (rhythmdb_process_metadata_load): Add a commit after removing an
8124         entry so we can recreate it with a different type without getting
8125         confused.
8127 2006-03-11  James Livingston  <jrl@ids.org.au>
8129         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8130         use the drive name for audio CDs, use "Unknown CD".
8132 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8134         patch by:  James Henstridge  <james@jamesh.id.au>
8136         * sources/rb-removable-media-source.c:
8137         (rb_removable_media_source_constructor):
8138         Get the device name from the GnomeVFSDrive if possible,
8139         since this is usually a more descriptive name.  Fixes #333080.
8141 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8143         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8145         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8146         Don't automatically download episodes when configured for manual
8147         updating.  Fixes #331564.
8149 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8151         * rhythmdb/rhythmdb-property-model.c:
8152         (rhythmdb_property_model_iter_from_string):
8153         Return an iterator for the 'all' property when name == NULL,
8154         and don't write to *iter if iter == NULL.
8156 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8158         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8159         When switching to the play queue, still call _go_next on the normal
8160         play order, so self-emptying auto playlists ("play count = 0" etc.)
8161         don't restart once the queue is empty.
8163         * shell/rb-tray-icon.c:
8164         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8165         with 'next'.
8167 2006-03-05  James Livingston  <jrl@ids.org.au>
8169         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8170         don't submit tracks which could not be played. Fixed bug 333013.
8172         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8173         tracks which could not be played.
8175 2006-03-05  James Livingston  <jrl@ids.org.au>
8177         Sync musicbrainz lookup code from Sound-Juicer cvs.
8179         * metadata/sj-metadata-musicbrainz.c:
8180         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8181         (get_offline_track_listing), (artist_and_title_from_title),
8182         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8183         (mb_list_albums), (mb_get_submit_url):
8184         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8185         * metadata/sj-metadata.h:
8186         * metadata/sj-structures.c: (track_details_free),
8187         (album_details_free):
8188         * metadata/sj-structures.h:
8190 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8192         * lib/rb-debug.h:
8193         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8194         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8195         (rb_profiler_reset), (rb_profiler_free):
8196         Filter debug output by matching the file and function names against a
8197         match string.
8199         * shell/main.c: (main):
8200         Add -D command line option to specify the debug match string.
8202         * shell/rb-removable-media-manager.c:
8203         (rb_removable_media_manager_mount_volume):
8204         Fix some typos in debug output.
8206 2006-03-03  James Livingston  <jrl@ids.org.au>
8208         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8209         * shell/rb-shell.c: (rb_shell_load_uri):
8210         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8211         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8212         use the new "recurse" property from totem-plparser, if present. Stop
8213         RB hanging for new users who don't have a 'net connection. From bug
8214         331508.
8216 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8218         * shell/rb-removable-media-manager.c:
8219         (rb_removable_media_manager_mount_volume):
8220         * sources/Makefile.am:
8221         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8222         Fix missing files on make dist (conditional files), only build the
8223         N770 support if there's HAL support, as we have no other ways of
8224         detecting it
8226 2006-03-03  James Livingston  <jrl@ids.org.au>
8228         * shell/rb-shell-clipboard.c:
8229         (rb_shell_clipboard_set_source_internal): really fix it this time.
8230         hopefully.
8232 2006-03-03  James Livingston  <jrl@ids.org.au>
8234         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8235         with the idle function not being removed.
8237 2006-03-02  James Livingston  <jrl@ids.org.au>
8239         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8240         * widgets/rb-entry-view.h: add function for determining whether all
8241         entries are selected.
8243         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8244         (rb_shell_clipboard_set_source_internal),
8245         (rb_shell_clipboard_finalize),
8246         (rb_shell_clipboard_idle_poll_deletions),
8247         (rb_shell_clipboard_entryview_changed_cb),
8248         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8249         removals, to update things.
8251         (rb_shell_clipboard_sync): update the Select All and Select None
8252         sensitivity, based on what is selected. Fixed bug 172220.
8254 2006-03-02  James Livingston  <jrl@ids.org.au>
8256         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8257         restore the selections of later models. This means that selecting the
8258         artist for the selected album does not reset the album selection.
8260 2006-03-02  James Livingston  <jrl@ids.org.au>
8262         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8263         Stops it emitting critical warnings.
8265 2006-03-02  James Livingston  <jrl@ids.org.au>
8267         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8268         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8269         second fragment is already escaped.
8271         * sources/rb-generic-player-source.c:
8272         (rb_generic_player_source_class_init),
8273         (rb_generic_player_source_constructor), (impl_show_popup),
8274         (rb_generic_player_source_load_playlists),
8275         (rb_generic_player_source_transform_playlist_uri),
8276         (handle_playlist_entry_cb), (visit_playlist_dirs),
8277         (default_load_playlists), (default_transform_playlist_uri):
8278         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8279         the device. Allow subclasses to override the playlist loading, and
8280         (playlist uri)->(actual uri) mapping. A lot of devices which have
8281         playlists won't work right now, but people will see them and hopefully
8282         file bugs.
8284         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8285         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8286         
8287         * sources/Makefile.am:
8288         + sources/rb-nokia770-source.{c,h}:
8289         * shell/rb-removable-media-manager.c:
8290         (rb_removable_media_manager_mount_volume): Add support for reading
8291         playlists of Nokia 770s.
8293 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8295         * data/glade/podcast-properties.glade:
8296         * podcast/rb-podcast-properties-dialog.c:
8297         (rb_podcast_properties_dialog_init),
8298         (rb_podcast_properties_dialog_update),
8299         (rb_podcast_properties_dialog_update_location),
8300         (rb_podcast_properties_dialog_update_download_location):
8301         Add 'download location' field showing the path to the downloaded copy.
8302         Fixes #330696.
8304 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8306         * configure.ac: simplify HAVE_HAL define
8308 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8310         * configure.ac:
8311         * lib/rb-file-helpers.c: (rb_uri_append_path):
8312         * lib/rb-file-helpers.h:
8313         * shell/rb-removable-media-manager.c:
8314         (rb_removable_media_manager_mount_volume):
8315         * sources/Makefile.am:
8316         * sources/rb-ipod-source.c:
8317         * sources/rb-psp-source.*:
8318         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8319         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8321 2006-03-02  James Livingston  <jrl@ids.org.au>
8323         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8324         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8325         (swap_playing_source), (rb_shell_player_playpause),
8326         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8327         (rb_shell_player_set_playing_source_internal): check for the entry
8328         view being NULL before trying to use it. Lets us support sources which
8329         don't have an entry view. From bug 331673.
8331 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8333         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8334         use gnome_vfs_read_entire_file with a URI, not a local filename
8336 2006-03-01  James Livingston  <jrl@ids.org.au>
8338         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8339         first-seen and last-seen when merging duplicate entries.
8341 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8343         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8344         * widgets/rb-property-view.h:  New function, allowing custom 
8345         interactive search functions for property views.
8346         
8347         * sources/rb-podcast-source.c: 
8348         (feed_select_change_cb): Only do a new query when the selection
8349         actually changes.
8350         (rb_podcast_source_constructor),
8351         (rb_podcast_source_feed_title_search_func):
8352         Interactive search function for podcast feed titles.  Fixes #327451.
8354 2006-03-01  James Livingston  <jrl@ids.org.au>
8356         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8357         the uri in the callback, since it causes symbols to not be escaped.
8358         Fixes bug 332976.
8360         * data/ui/rhythmbox-ui.xml:
8361         * sources/rb-import-errors-source.c:
8362         (rb_import_errors_source_class_init),
8363         (rb_import_errors_source_constructor), (impl_get_status),
8364         (impl_move_to_trash),
8365         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8366         import errors source
8367         
8368         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8369         (rb_entry_view_append_column): unescape the URI for display.
8371 2006-03-01  James Livingston  <jrl@ids.org.au>
8373         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8374         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8375         function fails.
8377 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8379         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8380         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8381         * sources/rb-play-queue-source.c:
8382         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8383         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8384         of "Queued Songs".
8386         Fixes #331637.
8388 2006-03-01  James Livingston  <jrl@ids.org.au>
8390         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8391         Fixes bug 332913.
8393 2006-03-01  James Livingston  <jrl@ids.org.au>
8395         * daapsharing/rb-daap-mdns-browser-howl.c:
8396         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8397         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8398         (rb_daap_mdns_publisher_class_init),
8399         (rb_daap_mdns_publisher_finalize):
8400         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8401         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8402         (rb_recorder_finalize):
8403         * rhythmdb/rhythmdb-query-model.c:
8404         (rhythmdb_query_model_constructor):
8405         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8406         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8407         * sources/rb-playlist-source-recorder.c:
8408         (rb_playlist_source_recorder_style_set),
8409         (rb_playlist_source_recorder_class_init),
8410         (rb_playlist_source_recorder_finalize):
8411         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8412         other classes in the same way, so they don't break when derived from.
8414 2006-03-01  James Livingston  <jrl@ids.org.au>
8416         * sources/rb-generic-player-source.c:
8417         (rb_generic_player_source_constructor): don't get the parent class in
8418         a dumb way, and it breaks when the class is derived from.
8420 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8422         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8424 2006-03-01  James Livingston  <jrl@ids.org.au>
8426         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8427         not work in glib 2.8 systems.
8429 2006-03-01  James Livingston  <jrl@ids.org.au>
8431         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8432         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8433         say it is crap.
8435         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8436         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8437         podcasts on ion-local places
8439         * rhythmdb/gsequence.c: (g_sequence_node_new),
8440         (g_sequence_node_free): use gslice if we are building against glib
8441         2.10.
8443         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8444         local files too, so it doesn't block.
8446 2006-02-28  James Livingston  <jrl@ids.org.au>
8448         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8449         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8450         stats the file. Stops the UI blocking while stats are done.
8452 2006-02-28  James Livingston  <jrl@ids.org.au>
8454         * sources/rb-static-playlist-source.c:
8455         (rb_static_playlist_source_class_init),
8456         (rb_static_playlist_source_constructor), (impl_reset_filters),
8457         (impl_get_property_views), (impl_browser_toggled),
8458         (rb_static_playlist_source_do_query),
8459         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8460         playlists. From bug 118862.
8462         * sources/rb-play-queue-source.c:
8463         (rb_play_queue_source_class_init): disable them for the play queue.
8465 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8467         * data/glade/library-prefs.glade:  Add a mnemonic.
8468         * sources/rb-library-source.c:
8469         (rb_library_source_location_button_clicked_cb):  Use title
8470         capitalization for window title.
8472 2006-02-28  James Livingston  <jrl@ids.org.au>
8474         * sources/rb-auto-playlist-source.c:
8475         (construct_query_from_selection): don't create a subquery for only one
8476         criteria, as it's a silly effifiency degredation.
8478 2006-02-28  James Livingston  <jrl@ids.org.au>
8480         * rhythmdb/rhythmdb.h:
8481         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8482         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8483         saved to disk
8485         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8486         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8487         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8488         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8489         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8490         This will make importing files quicker as we don't need to try files
8491         that we know are not going to be interesting - especially useful when
8492         using the library watching facility.
8494         Fixes bug 323179.
8496 2006-02-28  James Livingston  <jrl@ids.org.au>
8498         * shell/rb-shell.c: (rb_shell_constructor),
8499         (rb_shell_set_visibility): fix browser and source-list pane
8500         positioning, that I broke with the "remember visibility" patch.
8502 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8504         * metadata/rb-metadata-dbus-service.c: (main):
8505         Change argument handling so you can use --debug with the --load and
8506         --can-save test modes.
8507         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8508         Use a separate GMainContext, not the default one.  Probably fixes
8509         #332344.
8511 2006-02-27  James Livingston  <jrl@ids.org.au>
8513         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8514         first starting up. Fixes bug 330342.
8516 2006-02-27  James Livingston  <jrl@ids.org.au>
8518         * sources/rb-sourcelist-model.c:
8519         (rb_sourcelist_model_set_dnd_targets):
8520         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8521         COPY action for draging sources and tracks, not MOVE as well. Stops
8522         Nautilus moving file away, and fixes bug 332488.
8524 2006-02-27  James Livingston  <jrl@ids.org.au>
8526         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8528         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8529         and Last Played metadata off iPods. Closes bug 324648.
8531 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8533         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8534         Disable audioscrobbler when run with the --no-registration flag, since
8535         last.fm doesn't allow multiple concurrent clients per user.
8537 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8539         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8540         Rename renamable sources when F2 is pressed when the sourcelist has
8541         focus.  Fixes #330700.
8543 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8545         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8546         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8547         (rb_playlist_manager_cmd_edit_automatic_playlist):
8548         Fix various crashes when deleting auto playlists previously edited
8549         by disconnecting signal handlers when the query editor is closed or
8550         the playlist is deleted.
8552 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8554         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8555         removed load failure dialog, and actually use the friendly file type
8556         name in error messages.
8558 2006-02-24  James Livingston  <jrl@ids.org.au>
8560         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8562         * sources/rb-library-source.c:
8563         (rb_library_source_location_button_clicked_cb),
8564         (rb_library_source_preferences_sync),
8565         (rb_library_source_library_location_cb): convert the library URI to
8566         for display, and back again. Fixes bug 332356.
8568 2006-02-23  James Livingston  <jrl@ids.org.au>
8570         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8571         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8572         (rhythmdb_sync_library_location): don't monitor files at all if
8573         watching is turned off. From bug 323096.
8575 2006-02-23  James Livingston  <jrl@ids.org.au>
8577         * data/rhythmbox.schemas:
8578         * lib/rb-preferences.h:
8579         * shell/rb-shell.c: (rb_shell_constructor),
8580         (rb_shell_set_visibility): remember main window visibility between
8581         sessions. Fixes bug 127320.
8583 2006-02-23  James Livingston  <jrl@ids.org.au>
8585         * data/glade/library-prefs.glade:
8586         * sources/rb-library-source.c: (impl_get_config_widget),
8587         (rb_library_source_location_button_clicked_cb),
8588         (rb_library_source_preferences_sync),
8589         (rb_library_source_library_location_cb),
8590         (rb_library_source_watch_toggled_cb): change the library-location
8591         widgets from the file-chooser drop menu to a text entry and Browse
8592         button. This is needed to prevent the location from chaning if the
8593         directory cannot be found. Fixes bug 328414.
8595 2006-02-23  James Livingston  <jrl@ids.org.au>
8597         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8598         item. Fixes bug 329042.
8600 2006-02-23  James Livingston  <jrl@ids.org.au>
8602         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8604         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8605         comma in some podcast feeds. Fixes bug 332194.
8607 2006-02-23  James Livingston  <jrl@ids.org.au>
8609         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8610         lower priority.
8612         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8613         the internal audio cd URIs from "cdda://device:track" to
8614         "cdda://track#device" as it makes processing much easier.
8616         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8617         * player/rb-player-gst.c: don't have the shell close the player
8618         between songs, as doing that should be backend-specific. Make the
8619         gstreamer backend close before starting a new track, unless the old
8620         and new ones are both tracks on the same audio cd. Just seek in that
8621         case.
8623 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8625         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8627 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8629         * configure.ac: Enable more warnings in my stupid setup too.
8630         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8631         #332210.
8633 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8635         * sources/rb-missing-files-source.h,
8636         * sources/rb-missing-files-source.c,
8637         * sources/rb-import-errors-source.h,
8638         * sources/rb-import-errors-source.c:
8639         Add library meta-sources, showing missing files and import errors.
8640         Fixes #167763, #142322.
8642         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8643         * sources/rb-sourcelist-model.h:
8644         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8645         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8646         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8647         (visibility_notify_cb):
8648         Store source visibility in the sourcelist model, so we can determine
8649         child source counts correctly and get the sourcelist expander column
8650         right.
8651         
8652         * widgets/rb-entry-view.h:
8653         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8654         (rb_entry_view_append_column), (set_column_visibility):
8655         Allow the creator of the entry view to specify which columns are
8656         always visible.
8658         * sources/rb-source.h:
8659         * sources/rb-source.c: (_autohide_update_visibility),
8660         (_rb_autohide_source_row_deleted_cb),
8661         (_rb_autohide_source_row_inserted_cb),
8662         (_rb_source_hide_when_empty):
8663         Allow sources to automatically hide themselves when empty.
8664         
8665         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8666         * sources/rb-library-source.c: (rb_library_source_constructor):
8667         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8668         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8669         Explicitly specify which columns are always visible.
8670         
8671         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8672         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8673         Remove load error signal handling and load failure dialog.
8674         Create missing files and import errors sources for the library.
8676         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8677         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8678         Create DB entries for import errors rather than emitting the 'load
8679         error' signal; mark loaded entries visible.
8680         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8681         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8682         (rhythmdb_prop_get_type): Store string form of last seen time for
8683         hidden entries, since it's used in the missing files source.
8684         (rhythmdb_entry_import_error_get_type): 
8685         Add entry type for import errors.
8686         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8687         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8688         (rhythmdb_entry_move_to_trash_set_error),
8689         (rhythmdb_entry_move_to_trash):  
8690         Correct spelling, add missing rhythmdb_commit.
8691         * rhythmdb/rhythmdb.h:  
8692         Add import error entry type and last seen string property.
8693         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8694         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8695         (save_entry):  Ignore string form of 'last seen' property.
8697         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8698         Don't try to play hidden entries or import error entries.
8700         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8701         * sources/Makefile.am: Add meta-source files
8702         * widgets/Makefile.am: Remove load failure dialog files
8704 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8706         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8707         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8708         few bits and pieces.
8710 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8712         * metadata/test-metadata.c: (load_metadata_cb):
8713         Fix compile warning for ignoring return value from getcwd, #332064.
8715 2006-02-21  James Livingston  <jrl@ids.org.au>
8717         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8718         (edit_auto_playlist_deleted_cb),
8719         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8720         playlist editor non-modal. Fixes bug 320030.
8722 2006-02-21  James Livingston  <jrl@ids.org.au>
8724         * shell/rb-shell.c: (rb_shell_constructor):
8725         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8726         (rb_header_set_show_artist_album):
8727         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8728         (rb_song_display_box_sync): make the queue sidebar and song display
8729         not get affected by gtk_widget_show_all. Fixes bug 332001.
8731 2006-02-21  James Livingston  <jrl@ids.org.au>
8733         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8735         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8736         feeds which use timezone names instead of offsets. Doesn't actually
8737         parse the timezone name since they are not standardised. Fixes bug
8738         331691.
8740 2006-02-21  James Livingston  <jrl@ids.org.au>
8742         * help/C/figures/rb-notification-area.png:
8743         * help/C/figures/rb-sidebar.png:
8744         * help/C/quick-reference.xml: remove obsolete files from CVS.
8746         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8747         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8748         (rhythmdb_query_free), (rhythmdb_query_serialize),
8749         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8750         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8752         * widgets/rb-query-creator-properties.c: add prefix and suffix
8753         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8754         doesn't escape the ':' separator in uris.
8756 2006-02-21  James Livingston  <jrl@ids.org.au>
8758         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8759         on startup.
8761 2006-02-21  James Livingston  <jrl@ids.org.au>
8763         * NEWS: update with recent changes
8765 2006-02-21  James Livingston  <jrl@ids.org.au>
8767         * shell/rb-shell.c: (rb_shell_constructor),
8768         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8769         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8770         (rb_druid_browse_clicked_cb), (do_response):
8771         * widgets/rb-druid.h: Make running the druid not block RBShell
8772         starting up. This is required so that bonobo registration doesn't time
8773         out. Fixed bug 318766.
8775 2006-02-21  James Livingston  <jrl@ids.org.au>
8777         * rhythmdb/rhythmdb-property-model.c:
8778         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8779         hash table after using it, not before. Fixed bug 331922.
8781 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8783         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8784         (rb_shell_view_queue_as_sidebar_changed_cb):
8785         When playing from the queue, only attempt to highlight the queue
8786         source in the source list if it's actually visible there.  Otherwise,
8787         leave the preempted source highlighted.  Mostly fixes #330819.
8789 2006-02-20  James Livingston  <jrl@ids.org.au>
8791         * rhythmdb/rhythmdb-property-model.c:
8792         (rhythmdb_property_model_row_inserted_cb),
8793         (rhythmdb_property_model_prop_changed_cb),
8794         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8795         store the roperty value in the entry-mapping table, so that receiving
8796         the remove signal from a query model before we get notified of a
8797         change doesn't cause a crash. Fixes bug 331770.
8799 2006-02-20  James Livingston  <jrl@ids.org.au>
8801         * data/ui/rhythmbox-ui.xml:
8802         * sources/rb-play-queue-source.c:
8803         (rb_play_queue_source_class_init),
8804         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8805         playlist things in the queue popup source. From 330490.
8807         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8808         previous commit
8810 2006-02-20  James Livingston  <jrl@ids.org.au>
8812         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8813         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8814         attempt to sync data for non-editable entries when using
8815         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8816         331762.
8818 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8820         * .cvsignore:
8821         * Makefile.am:
8822         * autogen.sh:
8823         * configure.ac:
8824         * help/.cvsignore:
8825         * help/Makefile.am: ported to gnome-doc-utils
8826         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8827         * help/ChangeLog: added, for translators
8828         * help/C/rhytmbox-C.omf: removed, no longer used
8829         Know issue: figures are installed, but some are not showed; manual
8830         description added, but not showed in Yelp while browsing. I'll
8831         investigate, maybe are needed some little changes to
8832         help/C/rhythmbox.xml.
8834 2006-02-20  James Livingston  <jrl@ids.org.au>
8836         * data/ui/rhythmbox-ui.xml:
8837         * help/C/figures/rb-adv.png:
8838         * help/C/figures/rb-asst-finish.png:
8839         * help/C/figures/rb-asst-library.png:
8840         * help/C/figures/rb-asst-start.png:
8841         * help/C/figures/rb-basic.png:
8842         * help/C/figures/rb-browser.png:
8843         * help/C/figures/rb-context-menu.png:
8844         * help/C/figures/rb-empty.png:
8845         * help/C/figures/rb-full-play.png:
8846         * help/C/figures/rb-group-auto.png:
8847         * help/C/figures/rb-group-create.png:
8848         * help/C/figures/rb-group.png:
8849         * help/C/figures/rb-imported.png:
8850         * help/C/figures/rb-iradio-add.png:
8851         * help/C/figures/rb-iradio.png:
8852         * help/C/figures/rb-nextprev.png:
8853         * help/C/figures/rb-nobrowse-play.png:
8854         * help/C/figures/rb-notification-area-menu.png:
8855         * help/C/figures/rb-player.png:
8856         * help/C/figures/rb-prefs-general.png:
8857         * help/C/figures/rb-prefs-ipod.png:
8858         * help/C/figures/rb-prefs-library.png:
8859         * help/C/figures/rb-prefs.png:
8860         * help/C/figures/rb-repeat.png:
8861         * help/C/figures/rb-search.png:
8862         * help/C/figures/rb-shuffle.png:
8863         * help/C/figures/rb-stats.png:
8864         * help/C/figures/rb-toolbar-editor.png:
8865         * help/C/figures/rb-volume-mute.png:
8866         * help/C/figures/rhythmbox-group.png:
8867         * help/C/figures/rhythmbox-tray-icon.png:
8868         * help/C/user-guide.xml: remove old stuff from cvs
8870 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8872         * metadata/rb-metadata-dbus-client.c: 
8873         * metadata/rb-metadata-dbus-service.c:
8874         * metadata/rb-metadata-dbus.c:
8875         * metadata/rb-metadata-dbus.h:
8876         New files, adding an external service for reading and writing
8877         metadata, and an implementation of the RBMetaData interface that uses
8878         dbus to communicate with it.
8879         
8880         * metadata/rb-metadata.h,
8881         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8882         (rb_metadata_get_field_name): Put metadata details in a static array
8883         instead of using a hash table, and add a field for language code (not
8884         used for anything)
8885         * metadata/rb-metadata-gst.c: Updates for changes in
8886         rb-metadata-common.c, fix signal handler closure leak for the typefind
8887         element's have-type signal, and add XML to the list of types we ignore.
8888         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8889         Update for changes to rb_metadata_get_field_type
8890         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8891         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8892         here and there.
8893         
8894         * configure.ac: Add --enable-metadata-helper option (not enabled by
8895         default) to use the external metadata service
8896         * metadata/Makefile.am: Add new files
8897         * metadata/test-metadata.c:  Test program for the metadata service
8899         Fixes #329597. 
8901 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8903         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8904         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8905         (rb_podcast_source_cmd_new_podcast):
8906         Move 'new podcast' action to the podcast source, and add it to the
8907         toolbar.  Fixes #331562.
8909 2006-02-19  James Livingston  <jrl@ids.org.au>
8911         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8912         menus, and away from move-to-trash. Fixes bug 331013.
8914 2006-02-19  James Livingston  <jrl@ids.org.au>
8916         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8917         when deleting last entry. Fixes bug 331712.
8919 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8921         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8922         (rb_entry_view_button_press_cb):
8923         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8924         anywhere, and include a flag indicating whether the click was over an
8925         entry or not.
8926         
8927         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8928         (rb_playlist_source_songs_show_popup_cb):
8929         * sources/rb-playlist-source.h:
8930         Add the 'over entry' flag to the class show popup method, and in the
8931         default handler, ignore right clicks when not over an entry.
8932         
8933         * sources/rb-iradio-source.c:
8934         (rb_iradio_source_songs_show_popup_cb):
8935         * sources/rb-library-source.c:
8936         (rb_library_source_songs_show_popup_cb):
8937         * sources/rb-podcast-source.c:
8938         (rb_podcast_source_songs_show_popup_cb):
8939         Show the source list popup menu when right clicked while not over an
8940         entry.
8942         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8943         For the queue sidebar, always display the popup so the 'clear queue'
8944         action is available regardless of where you click.  For the queue
8945         source, only display the popup when right clicked over an entry.
8946         Fixes #331392.
8948 2006-02-19  James Livingston  <jrl@ids.org.au>
8950         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8951         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8952         entry view, when we're not even using it
8954         * rhythmdb/rhythmdb-property-model.c:
8955         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8956         function, rather than a copy of the code.
8958         * shell/rb-playlist-manager.c:
8959         (rb_playlist_manager_playlist_row_inserted_cb),
8960         (rb_playlist_manager_set_source_internal),
8961         (rb_playlist_manager_playlist_entries_changed): use the query-model
8962         directly, rather than the source's entry view.
8964         * shell/rb-source-header.c: don't use the entry view, just select the
8965         source widget.
8967 2006-02-18  James Livingston  <jrl@ids.org.au>
8969         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8971         * help/C/figures/rb-iradio-main.png:
8972         * help/C/figures/rb-notification-area-menu.png:
8973         * help/C/figures/rb-notification-window.png:
8974         * help/C/figures/rb-notification-zone.png:
8975         * help/C/figures/rb-podcast-main.png:
8976         * help/C/figures/rb-statusbar.png:
8977         * help/C/figures/rb-toolbar-prevplaynext.png:
8978         * help/C/figures/rb-toolbar-repeat.png:
8979         * help/C/figures/rb-toolbar-shuffle.png:
8980         * help/C/figures/rb-toolbar.png:
8981         * help/C/figures/rb-volume-changer.png:
8982         * help/C/figures/rb-window-small.png:
8983         * help/C/figures/rb-window.png:
8984         * help/C/rhythmbox.xml: Update user guide with some of the changes
8985         that have occurred after 0.8.8. From bug 314001.
8987 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8989         * rhythmdb/rhythmdb-query-results.h,
8990           rhythmdb/rhythmdb-query-results.c:
8991         New interface for objects that accept query results from RhythmDB.
8993         * rhythmdb/rhythmdb-query-model.c:
8994         (rhythmdb_query_model_query_results_init),
8995         (rhythmdb_query_model_set_query),
8996         (rhythmdb_query_model_add_results),
8997         (rhythmdb_query_model_query_complete):
8998         * rhythmdb/rhythmdb-query-model.h:
8999         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9001         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9002         (rhythmdb_tree_do_full_query):
9003         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9004         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9005         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9006         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9007         * rhythmdb/rhythmdb.h:
9008         Pass query results through the RhythmDBQueryResults interface, rather
9009         than directly to a RhythmDBQueryModel.
9011         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9012         (rb_podcast_manager_db_entry_deleted_cb):
9013         * sources/rb-auto-playlist-source.c:
9014         (rb_auto_playlist_source_do_query),
9015         (rb_auto_playlist_source_set_query):
9016         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9017         * sources/rb-library-source.c: (rb_library_source_constructor),
9018         (rb_library_source_do_query):
9019         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9020         (rb_podcast_source_do_query):
9021         * rhythmdb/rhythmdb-property-model.c:
9022         (rhythmdb_property_model_drag_data_get):
9023         Cast the query model to RhythmDBQueryResults when passing to one of
9024         the RhythmDB query methods.
9026         * rhythmdb/Makefile.am: Add new files.
9028 2006-02-18  James Livingston  <jrl@ids.org.au>
9030         * data/ui/rhythmbox-ui.xml:
9031         * shell/rb-playlist-manager.c:
9032         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9033         "queue playlist" item to source context menu. Fixes bug 330490.
9035 2006-02-18  James Livingston  <jrl@ids.org.au>
9037         * data/glade/general-prefs.glade:
9038         * shell/rb-shell-preferences.c:
9039         (rb_shell_preferences_column_check_changed_cb),
9040         (rb_shell_preferences_sync):
9041         * sources/rb-library-source.c: (rb_library_source_constructor):
9042         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9043         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9044         (rb_entry_view_append_column): Add a "quality" colume which indicates
9045         the bitrate of media. Part of bug 167659.
9047 2006-02-18  James Livingston  <jrl@ids.org.au>
9049         * shell/rb-play-order.c: (do_next_idle_cb),
9050         (default_playing_entry_removed): move to next track when playing entry
9051         is deleted. Fixes bug 131150.
9053         * shell/rb-shell-player.h: remove ancient stuff
9055 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9057         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9058         (rb_shell_clipboard_set_property): 
9059         * shell/rb-shell.c (rb_shell_sync_party_mode):
9060         Trigger a resync of the clipboard properties when changing party mode.
9062 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9064         * sources/rb-static-playlist-source.c: Fix includes.
9066         * sources/rb-source.c (rb_source_can_rename) 
9067         (rb_source_can_delete, rb_source_can_move_to_trash):
9068         Return FALSE if in party mode.
9070         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9071         Replace fullscreen with party mode.
9072         (rb_shell_window_delete_cb): Don't quit if in party mode.
9073         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9074         (window_state_event_cb): Try to deiconify shell when iconified
9075         in party mode.
9076         (rb_shell_sync_party_mode): Sync party mode properties.
9077         Currently, that means [de]sensitizing close, quit, and small-display,
9078         going into fullscreen mode with window stuck and kept above, and
9079         toggling queue-only for the shell player.
9080         (rb_shell_sync_smalldisplay): Sensitive party mode.
9081         (rb_shell_get_party_mode): Get party mode setting.
9083         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9084         (rb_shell_player_set_property, rb_shell_player_get_property):
9085         Add queue-only property.
9086         (rb_shell_player_entry_activated_cb): If in party mode
9087         only queue the entry on activation.
9089         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9090         Break out from set_properties.  Desensitize some actions when
9091         in party mode.
9092         (rb_playlist_manager_set_property): Break out set_source_internal.
9094         * data/rhythmbox.schemas: Remove fullscreen mode.
9096         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9097         action with party mode.
9099         Partial fix for #323933
9101 2006-02-17  James Livingston  <jrl@ids.org.au>
9103         * configure.ac:
9104         * shell/rb-removable-media-manager.c:
9105         (get_nautilus_burn_drive_for_path),
9106         (rb_removable_media_manager_playing_uri_changed_cb): only use
9107         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9108         over the list when it doesn't.
9110 2006-02-17  James Livingston  <jrl@ids.org.au>
9112         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9113         (rb_iradio_source_first_time_changed): Only do the import on the
9114         first change from FALSE to TRUE.
9116         * sources/rb-library-source.c:
9117         (rb_library_source_preferences_sync),
9118         (rb_library_source_library_location_cb): set the first-run done flag
9119         if the user presses close and then sets their watches library
9120         location. Fixes bug 325997.
9122 2006-02-17  James Livingston  <jrl@ids.org.au>
9124         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9125         removable media manager gobject properties
9127         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9128         (split_drive_from_cdda_uri),
9129         (rb_removable_media_manager_playing_uri_changed_cb),
9130         (rb_removable_media_manager_load_media): stop polling a cd drive
9131         when we are playing from it. Part of bug 330716.
9133 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9135         * rhythmdb/rhythmdb-query-model.c:
9136         (rhythmdb_query_model_set_property),
9137         (rhythmdb_query_model_finalize),
9138         (rhythmdb_query_model_base_entry_removed):
9139         Propagate entry removal from base models out to attached property
9140         models.  Fixes the rest of #331165.
9142 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9144         * rhythmdb/rhythmdb-property-model.c:
9145         (rhythmdb_property_model_row_inserted_cb),
9146         (rhythmdb_property_model_prop_changed_cb),
9147         (rhythmdb_property_model_insert):
9148         Don't store NULL as a hash table value if we want to use
9149         g_hash_table_lookup to check if a key exists, and get the checks for
9150         how and whether to handle entry changes the right way around.
9151         Fixes #331211 and half of #331165.
9153 2006-02-16  James Livingston  <jrl@ids.org.au>
9155         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9156         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9157         Fixes bug 329942.
9159 2006-02-16  James Livingston  <jrl@ids.org.au>
9161         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9162         actually reset the browsers.
9164 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9166         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9167         Escape the strings we pass into libnotify so we don't get blank
9168         notifications when the song name contains '&' etc.  Fixes #330784.
9170 2006-02-16  James Livingston  <jrl@ids.org.au>
9172         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9173         enable "View All" when there is only a search box and no browser.
9174         Fixes bug 331395.
9176 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9178         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9179         popup menu, which I forgot to commit with the patch for bug #330014.
9181 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9183         * shell/rb-shell-player.c: (open_location_thread):
9184         Sync button and entry view state once we've started the player, so the
9185         entry view gets into the playing state for iradio.
9187 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9189         * shell/rb-shell-player.c: (open_location_thread):
9190         Take GDK lock before doing anything UI-related.
9192 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9194         * shell/rb-shell.c: Move 'new iradio station' action to
9195         iradio source.
9197         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9198         (rb_iradio_source_init), (rb_iradio_source_finalize),
9199         (rb_iradio_source_constructor):
9200         Remove some unused stuff.
9202         (guess_uri_scheme), (rb_iradio_source_add_station),
9203         (rb_iradio_source_add_from_playlist),
9204         (impl_get_ui_actions), (new_station_location_added),
9205         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9206         action, include it in the toolbar, and make sure the URI we add has a
9207         scheme.  Fixes #327059, more or less.
9209 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9211         * sources/rb-play-queue-source.c:
9212         (rb_play_queue_source_class_init),
9213         (rb_play_queue_source_constructor),
9214         (rb_play_queue_source_update_count),
9215         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9216         Add a toolbar button to clear the play queue, and make it sensitive
9217         only when there are entries in the queue.  Fixes #330014.
9219         * sources/rb-source.c: (_rb_source_register_action_group):
9220         * sources/rb-source.h:  Add helper function to register an
9221         action group for a source.
9223         * sources/rb-library-source.c: (rb_library_source_constructor):
9224         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9225         (register_action_group):  Use _rb_source_register_action_group.
9227 2006-02-15  James Livingston  <jrl@ids.org.au>
9229         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9230         (rb_song_info_constructor), (rb_song_info_set_property): make
9231         tag-editing completion work for albums too.
9233 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9235         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9236         Check the 'limit' checkbox for time-limited playlists.
9238 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9240         * widgets/rb-song-info.c: Prove text-completion when editing title,
9241         artist or album
9243 2006-02-14  James Livingston  <jrl@ids.org.au>
9245         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9246         tray icon popup menu. Fixes bug 331026.
9248 2006-02-14  James Livingston  <jrl@ids.org.au>
9250         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9251         Ogg Vorbis streams, instead of the MP3 ones.
9253 2006-02-14  James Livingston  <jrl@ids.org.au>
9255         * rhythmdb/rhythmdb-property-model.c:
9256         (rhythmdb_property_model_class_init),
9257         (rhythmdb_property_model_drag_data_get):
9258         * rhythmdb/rhythmdb-query-model.c:
9259         (rhythmdb_query_model_title_sort_func):
9260         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9261         LOCATION as the key. Fixes bug 330601.
9263 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9265         * sources/rb-playlist-source.c: (playlist_iter_func):
9266         Make it compile with older versions of totem-plparser too.      
9268 2006-02-13  James Livingston  <jrl@ids.org.au>
9270         * rhythmdb/rhythmdb.h:
9271         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9272         structure private, since things should use the accessor functions
9273         rather than manipulating it directly - Only RhythmDB and the
9274         implementation classes should access it directly. Part of the RhythmDB
9275         cleanup of bug 330226.
9277         * iradio/rb-station-properties-dialog.c:
9278         (rb_station_properties_dialog_update_title),
9279         (rb_station_properties_dialog_update_title_entry),
9280         (rb_station_properties_dialog_update_genre),
9281         (rb_station_properties_dialog_update_location),
9282         (rb_station_properties_dialog_update_play_count),
9283         (rb_station_properties_dialog_update_bitrate),
9284         (rb_station_properties_dialog_update_last_played),
9285         (rb_station_properties_dialog_update_rating),
9286         (rb_station_properties_dialog_update_playback_error),
9287         (rb_station_properties_dialog_sync_entries):
9288         * podcast/rb-feed-podcast-properties-dialog.c:
9289         (rb_feed_podcast_properties_dialog_update_title),
9290         (rb_feed_podcast_properties_dialog_update_title_label),
9291         (rb_feed_podcast_properties_dialog_update_author),
9292         (rb_feed_podcast_properties_dialog_update_location),
9293         (rb_feed_podcast_properties_dialog_update_copyright),
9294         (rb_feed_podcast_properties_dialog_update_language),
9295         (rb_feed_podcast_properties_dialog_update_summary):
9296         * podcast/rb-podcast-manager.c:
9297         (rb_podcast_manager_entry_downloaded),
9298         (rb_podcast_manager_db_entry_added_cb),
9299         (download_progress_update_cb),
9300         (rb_podcast_manager_db_entry_deleted_cb):
9301         * podcast/rb-podcast-properties-dialog.c:
9302         (rb_podcast_properties_dialog_update_title),
9303         (rb_podcast_properties_dialog_update_title_label),
9304         (rb_podcast_properties_dialog_update_feed),
9305         (rb_podcast_properties_dialog_update_location),
9306         (rb_podcast_properties_dialog_update_play_count),
9307         (rb_podcast_properties_dialog_update_bitrate),
9308         (rb_podcast_properties_dialog_update_last_played),
9309         (rb_podcast_properties_dialog_update_rating),
9310         (rb_podcast_properties_dialog_update_date),
9311         (rb_podcast_properties_dialog_update_description):
9312         * rhythmdb/rhythmdb-query-model.c:
9313         (rhythmdb_query_model_entry_changed_cb),
9314         (rhythmdb_query_model_remove_from_main_list),
9315         (rhythmdb_query_model_update_limited_entries),
9316         (rhythmdb_query_model_drag_data_get),
9317         (rhythmdb_query_model_album_sort_func):
9318         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9319         (save_entry):
9320         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9321         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9322         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9323         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9324         (rhythmdb_entry_get_double):
9325         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9326         * shell/rb-play-order-random-by-age-and-rating.c:
9327         (rb_random_by_age_and_rating_get_entry_weight):
9328         * shell/rb-play-order-random-by-age.c:
9329         (rb_random_by_age_get_entry_weight):
9330         * shell/rb-play-order-random-by-rating.c:
9331         (rb_random_by_rating_get_entry_weight):
9332         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9333         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9334         (rb_shell_player_set_playing_entry),
9335         (rb_shell_player_sync_replaygain),
9336         (rb_shell_player_sync_with_source),
9337         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9338         * sources/rb-playlist-source.c: (playlist_iter_func),
9339         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9340         (rb_playlist_source_entry_added_cb):
9341         * sources/rb-podcast-source.c:
9342         (rb_podcast_source_post_status_cell_data_func):
9343         * sources/rb-source.c: (rb_source_update_play_statistics):
9344         * sources/rb-sourcelist-model.c:
9345         (rb_sourcelist_model_drag_data_get):
9346         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9347         (rb_static_playlist_source_add_entry),
9348         (rb_static_playlist_source_remove_entry):
9349         * widgets/rb-entry-view.c: (type_ahead_search_func),
9350         (rb_entry_view_playing_cell_data_func),
9351         (rb_entry_view_rating_cell_data_func),
9352         (rb_entry_view_pixbuf_clicked_cb):
9353         * widgets/rb-header.c: (rb_header_get_duration):
9354         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9355         (rb_song_info_populate_dialog),
9356         (rb_song_info_update_playback_error),
9357         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9358         (rb_song_info_update_location), (rb_song_info_update_play_count),
9359         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9360         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9361         (rb_song_info_sync_entry_single): fix the huge number of times that
9362         the internals got accessed directly.
9364 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9366         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9367         trash' are grouped together.
9368         * shell/main.c: (main): Pass no-registration flag in to RBShell
9369         constructor, rather than mysteriously always passing TRUE.
9370         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9371         Set dirty flag when entries are removed from the model, so the play
9372         queue is marked dirty appropriately.
9373         * AUTHORS: update my email address
9375 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9377         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9379         * widgets/rb-druid.c: (path_dialog_response_cb):
9380         If the URI is local, don't display the 'file://' prefix.  
9381         Fixes #330919.
9383 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9385         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9386         Attach the notification to the tray icon widget, so libnotify
9387         positions it less badly.  Fixes #330876.
9389 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9391         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9392         Reverse the selection list before returning it, so we get it in the
9393         right order.  Fixes #330283 and some other weirdness.
9395 2006-02-11  James Livingston  <jrl@ids.org.au>
9397         * shell/rb-shell.c: (rb_shell_constructor),
9398         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9399         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9400         make small-mode and fullscreen mutually exclusive, since they don't
9401         work together
9403         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9404         Mode.
9406 2006-02-10  James Livingston  <jrl@ids.org.au>
9408         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9409         since it can cause it to be slower than real-time. Should fix bug
9410         322270.
9412 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9414         * rhythmdb/rhythmdb-query-model.c:
9415         (rhythmdb_query_model_set_property):
9416         Think just a little bit harder about that last commit.
9418 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9420         * rhythmdb/rhythmdb-query-model.c:
9421         (rhythmdb_query_model_set_property):
9422         Get the check for hidden entries the right way around.
9423         Fixes #330527, #330514.
9425         (rhythmdb_query_model_set_sort_order):
9426         Ignore no-op sort order changes, so we don't get critical
9427         messages when selecting 'all' in auto playlist browsers.
9429 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9431         Patch by: Christophe Fergeau  <teuf@gnome.org>
9433         * sources/rb-removable-media-source.c:
9434         (rb_removable_media_source_init),
9435         (rb_removable_media_source_constructor):
9436         Move icon setup code to the constructor, as the volume property
9437         haven't been set yet when _init is called.
9439 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9441         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9442         Make the source pixbuf a dynamic property.
9444         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9445         (rb_source_set_pixbuf, rb_source_set_property) 
9446         (rb_source_get_property): Add icon property.
9448         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9449         (rb_auto_playlist_source_init):
9450         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9451         (rb_static_playlist_source_init):
9452         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9453         (rb_removable_media_source_init): 
9454         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9455         (rb_podcast_source_init): 
9456         * sources/rb-library-source.c (rb_library_source_class_init) 
9457         (rb_library_source_set_property, rb_library_source_get_property): 
9458         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9459         (rb_iradio_source_init): Remove impl_get_pixbuf and
9460         set icon property on source base class.
9462         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9463         a different icon for when the share is password protected
9464         and locked.
9465         (rb_daap_source_new): Set icon property.
9466         (composite_icons): Composite an emblem on a pixbuf.
9467         (create_pixbufs): Load global pixbufs.
9468         (destroy_pixbufs): unref global pixbufs.
9469         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9470         (connection_auth_cb, connection_connected_cb) 
9471         (connection_disconnected_cb): Update icon when connection
9472         status changes.
9473         (rb_daap_source_activate): Connect signals.
9475         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9476         dialog with parent.
9478         * daapsharing/rb-daap-marshal.list: Add new signal.
9480         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9481         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9483         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9484         Add authenticate, connected, and disconnected signals.
9485         (connection_get_password): emit authenticate signal instead
9486         of running dialog directly.
9487         (connection_connected, connection_disconnected): Emit signals.
9488         (handle_login): Emit connected signal.
9489         (handle_logout): Emit disconnected signal.
9490         (rb_daap_connection_do_something): Fix leak.
9492         Fixes #330291
9494 2006-02-09  James Livingston  <jrl@ids.org.au>
9496         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9497         entries from the base model if we don't have show-hidden set. Fixes
9498         bug 330514.
9500 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9502         * daapsharing/rb-daap-share.c (message_get_session_id):
9503         Ugh. Use strtoul instead of atoi.
9504         (session_id_validate): Add debug statements.
9506 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9508         * daapsharing/rb-daap-connection.c (http_response_handler):
9509         Report the actual uri from the message in debug statements.
9511 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9513         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9514         Add context argument.
9515         (message_get_session_id): New function to parse session id from
9516         the message.
9517         (message_get_revision_number): Break out function to parse
9518         revision number from the message.
9519         (session_id_validate): New function to validate given session id
9520         is valid for given context (ie. client address).
9521         (session_id_generate): Generate a random session id.
9522         (session_id_create): Create a unique session id and store it.
9523         (session_id_remove): Remove a session id from the store.
9524         (login_cb): Create a session id instead of using a constant one.
9525         (logout_cb): Validate session id.
9526         (update_cb): Use new message_get_revision_number function.
9527         (databases_cb): Validate session id.
9528         (server_cb): Add server context to argument list for callbacks.  It
9529         is needed to look up the remote host.
9530         (db_entry_changed_cb): Use braces.
9531         (soup_auth_callback): Remove FIXME.
9532         (rb_daap_share_server_start): Create session id store.
9533         (rb_daap_share_server_stop): Destroy session id store.
9535         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9536         Don't base64-encode password here since it needs to be
9537         combined with the username first.
9539         * daapsharing/rb-daap-connection.c (build_message):
9540         Add username to Authorization token.
9541         (handle_login, handle_song_listing) 
9542         (rb_daap_connection_do_something): Session id
9543         must be an unsigned int.
9545         Fixes #329814
9547 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9549         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9550         Don't check if we've got a playing entry, ask the player object (duh).
9551         Might actually fix #329993.     
9553 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9555         * sources/rb-static-playlist-source.c:
9556         (rb_static_playlist_source_add_list_uri):
9557         Canonicalise URIs before trying to add them to the playlist, and 
9558         don't try to add files to the database for which there is 
9559         already an entry.
9561 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9563         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9564         Don't ask the entry view if we're playing, just check if we've got a
9565         playing entry.  Fixes #329993.
9567 2006-02-08  James Livingston  <jrl@ids.org.au>
9569         * rhythmdb/rhythmdb-query-model.c:
9570         (rhythmdb_query_model_set_property),
9571         (rhythmdb_query_model_finalize),
9572         (rhythmdb_query_model_base_complete): remove
9573         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9574         don't get emitted for entry changes. Fixes bug 330301.
9576         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9577         (rb_library_browser_init), (rb_library_browser_constructor),
9578         (rb_library_browser_new): do stuff in the constructor, not the init
9579         function, so that the db property gets set on RBPropertyViews
9580         correctly. Fixes a crash when dragging properties to a playlist.
9582 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9584         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9585         Actually stop soup server.  Fixes #329816.
9587 2006-02-07  James Livingston  <jrl@ids.org.au>
9589         * lib/rb-util.h:
9590         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9591         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9592         (collate_values_cb), (rb_collate_hash_table_keys),
9593         (rb_collate_hash_table_values): add functions to compare, copy and
9594         free string-lists. add functions to collate the keys or values of a
9595         hash table into a list.
9597         * rhythmdb/rhythmdb-property-model.c:
9598         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9599         (_remove_entry_cb), (_add_entry_cb),
9600         (rhythmdb_property_model_set_property),
9601         (rhythmdb_property_model_get_property),
9602         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9603         (rhythmdb_property_model_row_inserted_cb),
9604         (rhythmdb_property_model_prop_changed_cb),
9605         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9606         that are hidden, storing those that we have counted in a hash-table.
9608         * shell/Makefile.am: fix build order issue
9610         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9611         * sources/rb-source.h:
9612         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9613         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9614         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9615         browser-toggled method, rename _get_exta_views to _get_property_views,
9616         since several things depend on returning only that.
9618         * sources/rb-source.c: (rb_source_class_init),
9619         (rb_source_browser_toggled), (default_get_property_views),
9620         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9621         (rb_source_gather_hash_keys),
9622         (rb_source_gather_selected_properties): above changes, and move some
9623         utility functions up from RBLibraryView
9625         * widgets/rb-property-view.c:
9626         (rb_property_view_selection_changed_cb): fix leak.
9628         * rhythmdb/rhythmdb-query-model.c:
9629         (rhythmdb_query_model_set_property),
9630         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9631         (rhythmdb_query_model_set_sort_order),
9632         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9633         query model being resorted.
9635         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9636         NULL query.
9638         * rhythmdb/rhythmdb.h:
9639         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9640         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9641         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9642         two queries. Add a function to append "property={X,Y,Z,...}" to a
9643         query.
9645         * sources/rb-library-source.c: (rb_library_source_class_init),
9646         (rb_library_source_finalize), (rb_library_source_constructor),
9647         (rb_library_source_cmd_choose_genre),
9648         (rb_library_source_cmd_choose_artist),
9649         (rb_library_source_cmd_choose_album), (impl_search),
9650         (impl_get_property_views), (impl_reset_filters),
9651         (rb_library_source_preferences_sync),
9652         (rb_library_source_browser_views_activated_cb),
9653         (rb_library_source_state_prefs_sync),
9654         (construct_query_from_selection), (rb_library_source_do_query),
9655         (rb_library_source_browser_changed_cb):
9656         * widgets/Makefile.am:
9657         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9658         browser" widgets, which contains several property views, based on the
9659         code from RBLibrarySource. Make RBLibrarySource use it.
9661         * sources/rb-auto-playlist-source.c:
9662         (rb_auto_playlist_source_class_init),
9663         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9664         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9665         (impl_get_property_views), (impl_browser_toggled),
9666         (construct_query_from_selection),
9667         (rb_auto_playlist_source_do_query),
9668         (rb_auto_playlist_source_set_query),
9669         (rb_auto_playlist_source_browser_changed_cb): Use the new
9670         library-browser widget to add browsers to automatic playlists.
9672 2006-02-07  James Livingston  <jrl@ids.org.au>
9674         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9675         properly.
9676         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9677         type of the source is taken into account. Fixes bug 329621.
9679 2006-02-07  James Livingston  <jrl@ids.org.au>
9681         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9682         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9683         1.1, and perform URI canonicalistion when first upgrading. This should
9684         fix our remaining canonicalisation issues, such as bug 329988.
9686 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9688         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9689         Track the playing entry when the entry view isn't in the playing
9690         state, so we don't have to get the state changes exactly right.
9691         Fixes #330135.
9693 2006-02-06  James Livingston  <jrl@ids.org.au>
9695         * shell/rb-shell-player.c: (open_location_thread),
9696         (rb_shell_player_open_location): fix several iradio issues: having to
9697         press play after double-clicking on a station, not working correctly
9698         without a http:// prefix, and ignoring totem-plparser results other
9699         than success or error (e.g. IGNORE).
9701 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9703         Addition of dbus methods for dealing with static playlists and the
9704         play queue.  Fixes #329958.
9706         * shell/Makefile.am:
9707         * shell/rb-playlist-manager.h:
9708         * shell/rb-playlist-manager.xml:
9709         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9710         (rb_playlist_manager_get_playlists),
9711         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9712         (rb_playlist_manager_create_static_playlist),
9713         (rb_playlist_manager_delete_playlist),
9714         (rb_playlist_manager_add_to_playlist),
9715         (rb_playlist_manager_remove_from_playlist),
9716         (rb_playlist_manager_export_playlist):
9717         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9718         to create, delete, list, modify, export, and import  static playlists.
9719         
9720         * shell/main.c: (main): Register playlist manager object with dbus.
9722         * shell/rb-shell.h:
9723         * shell/rb-shell.xml:
9724         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9725         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9726         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9727         object, and implement the addToQueue and removeFromQueue methods.
9728         
9729         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9730         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9731         formats.
9733 2006-02-05  James Livingston  <jrl@ids.org.au>
9735         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9736         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9737         (save_entry): allow storage of booleans in the on-disk db, and
9738         save/load the HIDDEN property.
9740         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9741         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9742         to the state it was when RB shutdown. This makes RB appear to start
9743         faster, as tracks can appear before the stat is done. Remote files
9744         still start hidden. From bug 325215.
9746 2006-02-05  James Livingston  <jrl@ids.org.au>
9748         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9749         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9750         really cares about the difference from "entry-added", and it isn't
9751         emitted by the tree backend anyway.
9753         * rhythmdb/rhythmdb-query-model.c:
9754         (rhythmdb_query_model_constructor):
9755         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9756         remove the references to the entry-restored signal.
9758 2006-02-05  James Livingston  <jrl@ids.org.au>
9760         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9761         issue.
9763 2006-02-05  James Livingston  <jrl@ids.org.au>
9765         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9766         things are NULL before using g_object_unref. Fixes bug 327452.
9768         * player/rb-recorder-gst.c: (rb_recorder_construct):
9769         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9770         rather than assertion.
9772         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9773         emit a warning, rather than asserting if an unknown playlist type is
9774         encountered.
9776 2006-02-05  James Livingston  <jrl@ids.org.au>
9778         * widgets/Makefile.am:
9779         * widgets/rb-simple-view.c:
9780         * widgets/rb-simple-view.h: Move the two features that this class
9781         provides into RBPropertyView, and remove this class. Closes bug
9782         327500.
9784         * podcast/rb-feed-podcast-properties-dialog.c:
9785         * podcast/rb-feed-podcast-properties-dialog.h:
9786         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9787         (rb_podcast_source_feeds_show_popup_cb):
9788         * sources/rb-podcast-source.h:
9789         * widgets/rb-property-view.c: (rb_property_view_class_init),
9790         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9791         (rb_property_view_append_column_custom),
9792         (rb_property_view_button_press_cb):
9793         * widgets/rb-property-view.h: Updated for the above change.
9795 2006-02-04  James Livingston  <jrl@ids.org.au>
9797         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9798         too close to Move to Trash and people aren't likely to use it often.
9800 2006-02-04  James Livingston  <jrl@ids.org.au>
9802         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9804 2006-02-04  James Livingston  <jrl@ids.org.au>
9806         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9807         passed a path instead of a URI.
9809         * sources/rb-generic-player-source.c: (default_get_mount_path):
9810         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9811         the path. This fixes bug 329723.
9813 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9815         * daapsharing/rb-daap-structure.c:
9816         (rb_daap_content_code_string_as_int32):
9817         Use network byte order.
9819 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9821         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9822         Use a hash for source lookup.
9823         (mdns_service_added, mdns_service_removed): Handle
9824         service-added and service-removed signals from RBDaapMdnsBrowser.
9825         (remove_source): GDestroyNotify function for when sources
9826         are removed from the hash.
9827         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9828         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9829         (rb_daap_sources_shutdown): Update.
9830         (source_host_find): GHRFunc for finding a source by ip.
9831         (rb_daap_source_find_for_uri): Use the hash source lookup.
9833         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9834         Namespace keys.
9835         (password_check_button_toggled_cb): Handle password enabled.
9836         (share_name_entry_focus_out_event_cb): Namespace keys.
9837         Handle changes more robustly.
9838         (share_password_entry_focus_out_event_cb): Handle password entry.
9839         (add_daap_preferences): Connect to password signals.
9841         * lib/rb-preferences.h: Add DAAP keys.
9843         * data/glade/daap-prefs.glade: Add password UI.
9845         * data/rhythmbox.schemas: Add password keys.
9847         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9848         assert with warning.
9850         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9851         gconf keys to lib/rb-preferences.h.  Namespace
9852         the gconf keys.
9853         (create_share): Add password support.
9854         (enable_sharing_changed_cb): Namespaced keys.
9855         (require_password_changed_cb): Handle key change.
9856         (share_name_changed_cb): Namespaced keys.
9857         (share_password_changed_cb): Handle key change.
9858         (rb_daap_sharing_init): Namespaced keys.
9859         (rb_daap_sharing_shutdown): Ditto.
9861         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9862         Add password property.
9863         (rb_daap_share_set_name): Break out prop set function.
9864         (published_cb): New RBDaapMdnsPublisher signal handler.
9865         (name_collision_cb): Ditto.
9866         (rb_daap_share_init): Create publisher object and
9867         connect to signals.
9868         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9869         (rb_daap_share_set_property): Break out prop set functions.
9870         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9871         Unref publisher.
9872         (rb_daap_share_new): Add password argument.  Start
9873         publishing and DAAP server.
9874         (message_set_from_rb_daap_structure): Change print to debug.
9875         (server_info_cb): Set auth method to publish.
9876         (logout_cb): Handle DAAP client logout.
9877         (update_cb): Remove C++ comments.
9878         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9879         (server_cb): Add debug.
9880         (soup_auth_callback): Handle auth requests.
9881         (rb_daap_share_server_start): Split up functions for starting
9882         server and publishing.  Add auth handling to server.
9883         (rb_daap_share_server_stop): Split stop server and publish.
9884         No C++ comments.
9885         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9886         Start and stop publishing.
9887         (rb_daap_share_restart): Restart server and publishing.
9888         (rb_daap_share_maybe_restart): Conditionally restart.
9890         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9891         (rb_daap_collision_dialog_new_run): Don't use
9892         separators in dialogs.
9894         * daapsharing/rb-daap-connection.h: Add private
9895         data to class structure.
9897         * daapsharing/rb-daap-connection.c: Move
9898         some includes to top of file.  Make private
9899         data struct name consistent with others.
9900         (rb_daap_connection_class_init): Rename
9901         private.
9902         (rb_daap_connection_init): Get and store the pointer
9903         to the private data once instead of in every
9904         function.  Create a username value "Rhythmbox_VERSION".
9905         (connection_get_password): Don't get private.
9906         (build_message): Ditto.
9907         (http_response_handler): Don't init variables in
9908         declaration.  Add debug.  Spacing.
9909         (http_get, entry_set_string_prop, handle_server_info) 
9910         (handle_login, handle_update, handle_database_info) 
9911         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9912         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9913         (rb_daap_connection_state_done): Don't get private.
9914         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9915         spacing.  Correctly base64 encode the Authentication token.
9916         Add username to auth token.
9917         (rb_daap_connection_get_playlists): Don't get private.
9918         (rb_daap_connection_dispose): Ditto.  Free username.
9919         (rb_daap_connection_set_property) 
9920         (rb_daap_connection_get_property): Don't get private.
9922         * daapsharing/Makefile.am: Conditionally
9923         compile MDNS backends.  Add marshall stuff.
9925         * daapsharing/.cvsignore: Update.
9927         * configure.ac: Add conditional to see which
9928         MDNS backend we should use.
9930         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9932         * daapsharing/rb-daap-marshal.list:
9933         * daapsharing/rb-daap-mdns-browser-avahi.c:
9934         * daapsharing/rb-daap-mdns-browser-howl.c:
9935         * daapsharing/rb-daap-mdns-browser.h:
9936         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9937         * daapsharing/rb-daap-mdns-publisher-howl.c:
9938         * daapsharing/rb-daap-mdns-publisher.h:
9939         Split rb-daap-mdns.c into two classes.  One for
9940         publishing and one for browsing.  Split out
9941         the avahi and howl backends into different files.
9943         Fixes #322966
9944         
9945 2006-02-04  James Livingston  <jrl@ids.org.au>
9947         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9949         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9950         crash if metadata reader gives us NULL for strings.
9952 2006-02-03  James Livingston  <jrl@ids.org.au>
9954         * shell/rb-shell-player.c: (open_location_thread),
9955         (rb_shell_player_open_location):
9956         retrieve iradio playlists files in a thread, so that with GStreamer
9957         0.10 the UI doesn't block while connecting to stations. The streamer
9958         connection is synchronous with 0.8, so that will still block (a bit).
9959         Fixed bug 128106.
9961         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9962         because _open_entry does that automatically when it is ready to.
9964 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9966         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9967         (rb_podcast_source_post_status_cell_data_func):
9968         Leave the podcast status column blank for episodes that have not been
9969         downloaded.
9971 2006-02-03  James Livingston  <jrl@ids.org.au>
9973         Add support for source-specific toolbar items, and make the Burn
9974         Playlist item only available for playlists. Also add Update All
9975         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9977         * data/ui/rhythmbox-ui.xml:
9978         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9979         (impl_get_ui_actions): make the Burn CD toolbar item only for
9980         playlists
9982         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9983         * lib/rb-stock-icons.h: load the Eject icon as stock.
9985         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9986         action
9988         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9989         (rb_shell_select_source):
9990         * sources/rb-source.c: (rb_source_class_init),
9991         (rb_source_disconnect), (default_get_ui_actions),
9992         (rb_source_get_ui_actions):
9993         * sources/rb-source.h: add support for source-specific toolbar items
9995         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9996         Eject and Rip toolbar items
9998         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9999         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10000         item.
10002 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10004         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10005         * shell/main.c: (main):
10006         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10007         Replace all g_critical calls with g_warning, since none of them are
10008         the sort of thing the process should die over.  Fixes #329398.
10010 2006-02-03  James Livingston  <jrl@ids.org.au>
10012         * configure.ac: mention gst-plugins-base in the error message for not
10013         finding GStreamer 0.10, since not having that will cause it to fail.
10015 2006-02-03  James Livingston  <jrl@ids.org.au>
10017         * configure.ac: fix typo that means you get the wrong error message if
10018         you explicity request a particular playback engine, and it can't be
10019         found.
10021 2006-02-03  James Livingston  <jrl@ids.org.au>
10023         * data/glade/library-prefs.glade: allow the watched library location
10024         to be a non-local place.
10026 ============ Version 0.9.3
10029 2006-02-02  James Livingston  <jrl@ids.org.au>
10031         * NEWS: update NEWS
10032         * configure.ac: bump version to 0.9.3
10034         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10035         <caillon@redhat.com>, fixed bug 329517. 
10037 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10039         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10041         * widgets/rb-song-info.c: (rb_song_info_constructor):
10042         Make year and disc number fields non-editable if tag editing
10043         is disabled.  Fixes #329463.
10045 2006-02-01  James Livingston  <jrl@ids.org.au>
10047         * rhythmdb/rhythmdb-property-model.c:
10048         (rhythmdb_property_model_row_inserted_cb),
10049         (rhythmdb_property_model_prop_changed_cb),
10050         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10051         correctly. Fixes bug 327061.
10053         * rhythmdb/rhythmdb-query-model.c:
10054         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10055         the HIDDEN property when an entry is removed for being hidden.
10057         * rhythmdb/rhythmdb-query-model.h:
10058         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10059         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10060         models's "connected" property. Whatever it was needed for seems to
10061         have gone.
10063 2006-02-01  James Livingston  <jrl@ids.org.au>
10065         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10067         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10068         (rb_shell_player_playing_changed_cb): block the signal to prevent
10069         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10070         button pausing.
10072 2006-02-01  James Livingston  <jrl@ids.org.au>
10074         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10075         /should/ now work, if the neccessary plugins get ported.
10077 2006-01-30  James Livingston  <jrl@ids.org.au>
10079         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10080         string properties to "Unknown" is the string is empty. Kind of fixes
10081         bug 327495.
10083         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10084         gettext calls once, rather than once per time the function is used.
10085         This stops us making tens of thousands of gettext calls on startup,
10086         which reduces the cpu-time of startup by 10-20%
10088 2006-01-29  James Livingston  <jrl@ids.org.au>
10090         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10091         (rhythmdb_add_uri):
10092         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10093         for files containing known video streams.
10096 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10098         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10099         required.
10101 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10103         * INSTALL.quick: More random updates
10105         * rhythmdb/rhythmdb-query-model.c:
10106         (rhythmdb_query_model_class_init),
10107         (rhythmdb_query_model_set_property),
10108         (rhythmdb_query_model_get_property),
10109         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10110         Remove user sort data handling, take a property ID and a reverse
10111         flag instead.
10112         (rhythmdb_query_model_insert_into_main_list),
10113         (rhythmdb_query_model_insert_into_limited_list),
10114         (rhythmdb_query_model_do_reorder),
10115         (_reverse_sorting_func):
10116         Handle reverse sorting by calling _reverse_sorting_func, which
10117         calls the real sort function and reverses the result.
10118         (rhythmdb_query_model_set_sort_order):
10119         Allow this to be called to set the initial sort order for limited
10120         queries, and handle reverse sorting when reordering.
10121         (rhythmdb_query_model_location_sort_func),
10122         (rhythmdb_query_model_album_sort_func),
10123         (rhythmdb_query_model_artist_sort_func),
10124         (rhythmdb_query_model_genre_sort_func),
10125         (rhythmdb_query_model_track_sort_func),
10126         (rhythmdb_query_model_double_ceiling_sort_func),
10127         (rhythmdb_query_model_ulong_sort_func),
10128         (rhythmdb_query_model_date_sort_func),
10129         (rhythmdb_query_model_string_sort_func):
10130         Sort functions moved from rb-entry-view.c.
10131         * rhythmdb/rhythmdb-query-model.h:
10132         Add the sort functions, and update the changed functions.
10133         
10134         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10135         Just call _resort_model when the query model is set, since it
10136         does all the same things.
10137         (rb_entry_view_append_column):
10138         Rework bits so the rating column doesn't have to be so much of a
10139         special case.
10140         (rb_entry_view_append_column_custom):
10141         Take a property ID to sort on, rather than arbitrary custom data.
10142         (rb_entry_view_resort_model):
10143         Query model does all the reverse sort handling now.
10144         * widgets/rb-entry-view.h: Update _append_column_custom.
10146         * sources/rb-play-queue-source.c:
10147         (rb_play_queue_source_constructor):
10148         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10149         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10150         (rb_podcast_source_post_date_cell_sort_func),
10151         (rb_podcast_source_post_status_cell_sort_func),
10152         (rb_podcast_source_post_feed_cell_sort_func):
10153         Updates required by all the other changes.
10155         * rhythmdb/rhythmdb-property-model.c:
10156         (rhythmdb_property_model_drag_data_get):
10157         Sort the query results on the selected property,
10158         so they arrive in the expected order.  All the other changes were made
10159         to make this possible.  Fixes bug #327494.
10161 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10162         
10163         * shell/rb-shell-clipboard.c:
10164         Use GTK_STOCK_REMOVE icon for the remove action in
10165         the play queue too.
10167 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10169         * sources/rb-play-queue-source.c:
10170         (rb_play_queue_source_constructor),
10171         (rb_play_queue_source_update_count):
10172         Don't make the 'queued songs' column clickable,
10173         and add the queued song count to the column title.
10175 2006-01-29  James Livingston  <jrl@ids.org.au>
10177         * configure.ac: remove "experimental" marking from DAAP, and enable by
10178         default if the dependencies are found.
10180 2006-01-29  James Livingston  <jrl@ids.org.au>
10182         * NEWS: update NEWS
10184 2006-01-29  James Livingston  <jrl@ids.org.au>
10186         patch by: William Jon McCann  <mccann@jhu.edu>
10188         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10189         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10190         property used for the feed list. Fixes problem with feeds with no
10191         episodes not showing up.
10193 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10194         
10195         * shell/rb-play-order-random-by-age-and-rating.c:
10196         (rb_random_by_age_and_rating_get_entry_weight):
10197         Fix compile errors, bug #328978.
10199 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10201         * INSTALL.quick, README: Random updates
10202         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10204 2006-01-28  James Livingston  <jrl@ids.org.au>
10206         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10207         default rating back to 0 (from 2.5, which was needed for autorating).
10209         * shell/rb-play-order-random-by-age-and-rating.c:
10210         (rb_random_by_age_and_rating_get_entry_weight):
10211         * shell/rb-play-order-random-by-rating.c:
10212         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10213         2.5 for the purposes of weighting entries.
10215 2006-01-28  James Livingston  <jrl@ids.org.au>
10217         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10218         translator comments, to make it clearer what the "friendly time"
10219         formatting strings mean.
10221 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10223         * daapsharing/rb-daap-connection.c: (http_response_handler):
10224         Fix the sense of the overflow check so it'll accept valid input.
10226 2006-01-27  James Livingston  <jrl@ids.org.au>
10228         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10230         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10231         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10233 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10235         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10236         
10237         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10238         Don't include the artist field in the window title if it's blank.
10239         Fixes #325973.
10241 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10243         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10244         Use stock delete icon for move to trash and stock remove
10245         for remove menu item.
10247 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10249         * shell/rb-shell.c: (rb_shell_constructor),
10250         (idle_handle_load_complete):  Don't start the playlist save
10251         timeout until we've loaded the playlists, otherwise we'll
10252         write an empty playlist file if startup takes too long.
10254 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10256         * shell/rb-shell.c: Make view toolbar toggle use
10257         shift+ctrl+t.  Fixes #327585.
10259 2006-01-25  James Livingston  <jrl@ids.org.au>
10261         patch by: Christope Fergeau  <teuf@gnome.org>
10263         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10264         (http_response_handler): fix a potential buffer overflow issue.
10266 2006-01-25  James Livingston  <jrl@ids.org.au>
10268         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10269         Year column wide enough to display "Unknown"
10271 2006-01-25  James Livingston  <jrl@ids.org.au>
10273         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10274         (rb_podcast_source_post_status_cell_data_func): make the episode
10275         status wording better. Part of bug 321607.
10277 2006-01-25  James Livingston  <jrl@ids.org.au>
10279         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10280         others with a separator.
10282         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10283         stock Delete icon.
10285 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10287         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10289 2006-01-23  James Livingston  <jrl@ids.org.au>
10291         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10292         0.3.2. Fixed bug 328158.
10294 2006-01-23  James Livingston  <jrl@ids.org.au>
10296         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10297         (gulong_gst_date_transform), (rb_metadata_class_init):
10298         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10300 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10302         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10303         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10304         (record_entry_change): Protect added_entries and changed_entries with
10305         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10307 2006-01-23  James Livingston  <jrl@ids.org.au>
10309         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10310         the browser for audio CDs.
10312 2006-01-22  James Livingston  <jrl@ids.org.au>
10314         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10315         NEVER_FAIL as it causes the daemon-not-running error to never be
10316         reported, resulting in bug 319438 re-occurring.
10318 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10320         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10321         Just call the podcast manager's update method.  Unbreaks the 'update
10322         all feeds' command.
10324 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10326         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10328 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10330         * configure.ac: Don't disable DAAP with gstreamer 0.10
10332         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10333         (rb_daap_src_class_init), (rb_daap_src_init),
10334         (rb_daap_src_finalize), (rb_daap_src_set_property),
10335         (rb_daap_src_get_property), (rb_daap_src_write),
10336         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10337         (_split_uri), (rb_daap_src_open):
10338         * daapsharing/rb-daap-src.h:
10339         Mostly fix seeking, handle chunked transfer encoding, and port to
10340         gstreamer 0.10.
10341         
10342         * player/rb-player-gst.c:
10343         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10344         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10346         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10347         being fixed.
10349 2006-01-21  James Livingston  <jrl@ids.org.au>
10351         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10352         for Year metadata in DAAP sources. Fixes bug 327700.
10354         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10356 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10358         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10359         enum values instead of magic numbers.
10361         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10362         Add number of songs that match each property title into
10363         the cell.  Also show the number of properties that match
10364         in the All entry.
10365         (rb_property_view_constructor): Use enum values instead of
10366         magic numbers.
10368         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10369         Query podcast posts instead of feeds for browser.  Use
10370         post SUBTITLE which is the location for the property view.
10371         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10372         (construct_query_from_selection) 
10373         (rb_podcast_source_cmd_delete_feed) 
10374         (rb_podcast_source_cmd_properties_feed) 
10375         (rb_podcast_source_cmd_update_feed): Use variable to make
10376         it clear what the selection data represents.
10377         (rb_podcast_source_feed_title_cell_data_func): Add number
10378         of posts that belong to each feed in the browser.
10380         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10381         (rhythmdb_property_model_delete_prop): Decrement the refcount
10382         for the All entry.
10383         (rhythmdb_property_model_get_column_type): Use column enum
10384         values instead of magic numbers.  Add NUMBER column.
10385         (rhythmdb_property_model_get_value): Use enum.
10386         Add NUMBER column that represents the refcount for
10387         the title of that property.
10388         (rhythmdb_property_model_perform_sync): Don't fake up
10389         a title for All here.
10391         Fixes #327372.
10392         
10393 2006-01-21  James Livingston  <jrl@ids.org.au>
10395         Make Rhythmbox start faster by not blocking the UI while database
10396         initialisation and loading occurs. Closes bug 323348.
10398         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10399         start 10 seconds later instead of immediately.
10400         
10401         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10402         safe to call from any thread.
10404         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10405         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10406         so the UI doesn't block.
10408 2006-01-18  James Livingston  <jrl@ids.org.au>
10410         * sources/rb-static-playlist-source.c:
10411         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10412         cause crashes. Oops. fixes bug 327477.
10414 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10416         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10417         Set GST element state to NULL before unreffing.
10418         Fixes #327422.
10420 2006-01-18  James Livingston  <jrl@ids.org.au>
10422         * sources/rb-static-playlist-source.c:
10423         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10424         type, since the playlists can contain non-song entries. Fixes bug
10425         327448.
10427         * sources/rb-play-queue-source.c:
10428         (rb_play_queue_source_class_init): disable the search box for the
10429         queue.
10431 2006-01-18  James Livingston  <jrl@ids.org.au>
10433         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10434         dragging of podcast episodes. Fixed bug 327450.
10436 2006-01-18  James Livingston  <jrl@ids.org.au>
10438         * rhythmdb/rhythmdb-query-model.c:
10439         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10440         dragging to an emoty playlist.
10442 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10444         * sources/rb-playlist-source-recorder.c:
10445         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10447 2006-01-17  James Livingston  <jrl@ids.org.au>
10449         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10451         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10452         different number of tracks than exist on the cd, since that happens
10453         with audio+data hybrid CDs. Part of bug 325046.
10455 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10457         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10458         Remove useless call to gtk_tree_view_column_set_clickable().
10460         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10461         Don't store sort data for columns if the sort function is NULL,
10462         so only sortable columns will be in the column sort data map.
10463         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10464         on clickable.
10465         (rb_entry_view_constructor):  The 'playing icon' column is never
10466         clickable, so don't connect a signal handler for it.
10468         Fixes bug 326811.
10470 2006-01-17  James Livingston  <jrl@ids.org.au>
10472         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10473         are 0.8 only. Fix element detection.
10475         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10476         saving the new metadata failed
10478 2006-01-17  James Livingston  <jrl@ids.org.au>
10480         * shell/rb-shell-player.c: (do_next_idle),
10481         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10482         (eos_cb): release audio device when a playlist finishes. Fixes bug
10483         323679.
10485 2006-01-17  James Livingston  <jrl@ids.org.au>
10487         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10488         canonicalise the URIs when things are added via library watching.
10490 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10492         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10493         Off by one error in default speed index.
10495 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10497         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10498         (update_speed_combobox, update_speed_combobox):
10499         Get a list of the actually supported write speeds from
10500         n-c-b >= 2.13.90.  Otherwise use fallback list.
10502 2006-01-17  James Livingston  <jrl@ids.org.au>
10504         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10505         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10506         don't get stuck on recursive symlinks. Fixed bug 125452.
10508 2006-01-17  James Livingston  <jrl@ids.org.au>
10510         Add support for mass-storage audio players. Players are detected via
10511         either the HAL "audio_player" capability, or a ".is_audio_player" file
10512         in the root of the volume. Closes bug 325602.
10514         * configure.ac: separate using HAL from ipod support.
10516         * lib/rb-file-helpers.c: (rb_uri_is_local):
10517         * lib/rb-file-helpers.h: add function to determine whether a URI is
10518         local.
10520         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10521         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10522         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10523         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10524         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10525         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10526         directories can be scanned for files to add as  non-SONG entries.
10528         * shell/rb-removable-media-manager.c:
10529         (rb_removable_media_manager_mount_volume): add checking for
10530         mass-storage players.
10532         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10533         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10534         (hal_udi_is_ipod):
10535         * sources/rb-removable-media-source.c:
10536         (rb_removable_media_source_class_init),
10537         (rb_removable_media_source_constructor): move some things up to the
10538         RBRemovableMediaSource, rather than making subclasses do it.
10540         * sources/Makefile.am:
10541         * sources/rb-generic-player-source.c:
10542         * sources/rb-generic-player-source.h: add mass-storage player source.
10544 2006-01-16  James Livingston  <jrl@ids.org.au>
10546         patch by: William Jon McCann  <mccann@jhu.edu>
10548         * rhythmdb/rhythmdb-query-model.c:
10549         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10550         commit.
10552 2006-01-16  James Livingston  <jrl@ids.org.au>
10554         Patch to add support for "chained queries" and putting hidden tracks
10555         in query models. Use chained queries to add search box support to
10556         normal playlists, and to make hidden entries not get lost. Fixes bug
10557         319278.
10559         * rhythmdb/rhythmdb-query-model.h:
10560         * rhythmdb/rhythmdb-query-model.c:
10561         (rhythmdb_query_model_class_init),
10562         (rhythmdb_query_model_set_property),
10563         (rhythmdb_query_model_get_property):
10564         (rhythmdb_query_model_finalize): add "show-hidden" and
10565         "base-model" properties.
10567         (rhythmdb_query_model_set_connected),
10568         (rhythmdb_query_model_has_pending_changes),     
10569         (rhythmdb_query_model_entry_added_cb),
10570         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10571         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10572         (rhythmdb_query_model_remove_entry),
10573         (rhythmdb_query_model_drag_data_received),
10574         (rhythmdb_query_model_base_row_inserted),
10575         (rhythmdb_query_model_base_row_deleted),
10576         (rhythmdb_query_model_base_non_entry_dropped),
10577         (rhythmdb_query_model_base_complete),
10578         (rhythmdb_query_model_base_entry_prop_changed),
10579         (rhythmdb_query_model_base_rows_reordered),
10580         (rhythmdb_query_model_row_drop_possible): handle base-model by
10581         chaining events and operations where necessary. Make hidden entries
10582         not get added only if "show-hidden" is false.
10584         (rhythmdb_query_model_child_index_to_base_index),
10585         (rhythmdb_query_model_base_index_to_child_index),
10586         (rhythmdb_query_model_get_entry_index): utility functions for handling
10587         base-model entries.
10589         (rhythmdb_query_model_reapply_query): apply the current query, and
10590         remove entries that don't match it.
10592         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10593         empty queries.
10595         * sources/rb-source.c: (rb_source_set_property): move the unref later
10596         to fix problem if it is the last reference.
10598         * sources/rb-static-playlist-source.c:
10599         (rb_static_playlist_source_class_init),
10600         (rb_static_playlist_source_init),
10601         (rb_static_playlist_source_finalize),
10602         (rb_static_playlist_source_constructor), (impl_reset_filters),
10603         (impl_search), (rb_static_playlist_source_do_query),
10604         (impl_save_contents_to_xml),
10605         (rb_static_playlist_source_add_location_internal): use a chained query
10606         model to filter out hidden entries and implement the search box.
10608 2006-01-15  James Livingston  <jrl@ids.org.au>
10610         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10611         the default playlist loading, which I broke earlier.
10613 2006-01-15  James Livingston  <jrl@ids.org.au>
10615         patch by: William Jon McCann  <mccann@jhu.edu>
10617         * sources/rb-playlist-source.c: (playlist_iter_func): use
10618         totem-plparser's new API version macros to check for API changes.
10619         Handle the recent API change.
10621 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10623         * sources/rb-library-source.c: (impl_get_config_widget):
10624         Ref the preferences object to match the unref in the
10625         finalizer.  Fixes some portion of #323505.
10627 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10629         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10630         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10631         Fix valgrind warnings about accessing uninitialised values.
10633 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10635         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10637 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10639         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10640         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10641         Stops the 'now playing' icon from being displayed after the play
10642         order finishes.
10644 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10646         * podcast/rb-podcast-manager.c:
10647         (rb_podcast_manager_db_entry_deleted_cb):
10648         Don't try to delete files we never downloaded, and cancel downloads
10649         for deleted episodes.  Fixes bug #326862.
10650         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10651         Don't complain about NULL data items in the selection list.
10653 2006-01-14  James Livingston  <jrl@ids.org.au>
10655         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10656         Make the name ofthe queue non editable. Fixes bug 326918.
10658 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10660         * sources/rb-playlist-source-recorder.c (burn_cd) 
10661         (ask_rewrite_disc): Don't use our locally copied functions
10662         if we have at least 2.13.
10664 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10666         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10667         Correct the argument type for the process_error signal.
10668         May fix bug #323154.
10670 2006-01-13  James Livingston  <jrl@ids.org.au>
10672         save the queue to disk when exiting, and reload on startup. Fixed bug
10673         326677 .
10675         * shell/rb-playlist-manager.c:
10676         (rb_playlist_manager_load_playlists),
10677         (rb_playlist_manager_save_playlists_async): don't disable saving of
10678         the queue
10680         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10681         add the queue source as a gobject property.
10683         * sources/rb-play-queue-source.c:
10684         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10685         code to save the queue to xml
10687         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10688         load the queue from xml.
10689         * sources/rb-playlist-xml.h:
10691         * sources/rb-static-playlist-source.c:
10692         (rb_static_playlist_source_load_from_xml),
10693         (rb_static_playlist_source_new_from_xml):
10694         * sources/rb-static-playlist-source.h: split the playlist xml loading
10695         from the static playlist creation function, so the queue can use it.
10697 2006-01-13  James Livingston  <jrl@ids.org.au>
10699         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10700         assertion that should be there. Fixes bug 325923.
10701         
10702         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10703         return NULL if the entry already exists (e.g. as another type).
10704         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10705         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10706         (rb_podcast_manager_insert_feed):
10707         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10708         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10709         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10710         for the above function returning NULL.
10712 2006-01-12  James Livingston  <jrl@ids.org.au>
10714         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10715         is enabled. Fixes bug 326673.
10716         
10717         * doc/reference/tmpl/eggtrayicon.sgml:
10718         * doc/reference/tmpl/rb-daap-src.sgml:
10719         * doc/reference/tmpl/rb-source.sgml:
10720         * doc/reference/tmpl/rb-statusbar.sgml:
10721         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10722         * doc/reference/tmpl/rhythmbox-unused.sgml:
10723         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10725 2006-01-11  James Livingston  <jrl@ids.org.au>
10727         * widgets/rb-song-info.c: (rb_song_info_constructor),
10728         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10729         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10730         the same value for properties. From bug 326054.
10732 2006-01-11  James Livingston  <jrl@ids.org.au>
10734         * sources/rb-source.h:
10735         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10736         (rb_shell_player_set_playing_source_internal), (eos_cb):
10737         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10738         every entry.
10740         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10741         source use this. Closes bug 322077.
10743 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10745         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10746         In order for set_icon_data_from_pixbuf() to be
10747         effective, one must not set an icon in _new().
10749 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10751         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10752         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10753         (egg_tray_icon_notify): Add support for libnotify 0.3.
10754         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10755         * configure.ac: Determine the version of libnotify.
10756         Fixes #326333.
10758 2006-01-08  James Livingston  <jrl@ids.org.au>
10760         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10761         trying to share a track with unknown length.
10763 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10765         * shell/rb-shell-player.c: (rb_shell_player_init):
10766         Sync volume on startup so it doesn't default to 0.
10768 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10770         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10771         (rb_shell_player_get_property), (rb_shell_player_open_location),
10772         (info_available_cb):  Add the iradio streamed song title as a
10773         property, and emit a signal when it changes.
10775         * shell/rb-shell.c: (rb_shell_constructor),
10776         (rb_shell_player_elapsed_changed_cb),
10777         (rb_shell_player_stream_song_changed_cb):
10778         Issue a notification when the iradio song title changes.
10779         Fixes #326166.
10781 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10783         * shell/rb-shell-player.c: (rb_shell_player_init),
10784         (rb_shell_player_finalize), (rb_shell_player_set_property),
10785         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10786         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10787         (rb_shell_player_set_volume_relative),
10788         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10789         (rb_shell_player_get_mute):
10790         * shell/rb-shell-player.h:
10791         * shell/rb-shell-player.xml:
10792         Store volume as a property on RBShellPlayer, rather than in gconf.
10793         Add some methods to control volume via dbus.
10795         * shell/rb-shell.c: (rb_shell_constructor),
10796         (rb_shell_volume_widget_changed_cb),
10797         (rb_shell_player_volume_changed_cb):
10798         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10799         Update volume using player properties rather than gconf, and sync the
10800         volume with the volume control button when something else changes it.
10801         Fixes #323840.
10803 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10805         * shell/rb-tray-icon.c (tray_popup_position_menu):
10806         Make tray menu align with edge of panel.
10808         patch from Jaap A. Haitsma <jaap@haitsma.org>
10809         Fixes #319913
10811 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10812         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10813         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10814         (rb_playlist_manager_new_playlist_from_selection_data):
10815         Make a reasonable default name for playlists created from
10816         dropped data.  Fixes #326116.
10818 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10820         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10821         Use new gconf key.
10822         (burn_cd): Always eject CD after burning.  Too many drives
10823         get confused if we don't.  Save the speed used if the burn
10824         was completed successfully.
10826         * data/rhythmbox.schemas: Use our own speed instead of from
10827         n-c-b. The situation is that the default_speed for n-c-b is most
10828         likely the maximum write speed.  This is fine for n-c-b because it
10829         has burn-proof turned on.  We can't turn it on for audio CDs
10830         because the results are poor in quality.  So we'll just pick a
10831         default that should work for everyone (4).
10833 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10834         
10835         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10836         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10838 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10840         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10841         in my previous commit.  Fixes #326037.
10843 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10845         patch by: Jonathan Matthew
10847         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10848         error on Fedora Rawhide.
10850 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10852         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10853         Assume HTTP URLs ending with .xml or .rss are podcasts.
10854         (rb_shell_add_uri): Handle adding podcast feeds.
10856         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10857         Register as the source for podcast feeds.
10859 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10861         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10862         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10863         (rb_shell_preferences_append_view_page):
10864         * shell/rb-shell-preferences.h:
10865         Fix typo in function name.  Fixes #325992.
10867 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10869         * shell/rb-audioscrobbler.c:
10870         Add '+' to the list of characters to URI-encode, so it doesn't get
10871         interpreted as a space.
10873 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10875         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10876         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10877         goes away while we're still trying to log in.
10879 2006-01-06  James Livingston  <jrl@ids.org.au>
10881         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10883 2006-01-06  James Livingston  <jrl@ids.org.au>
10885         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10886         support for Year to automatic playlists. Closes bug 321341.
10888         * rhythmdb/rhythmdb-query-model.c:
10889         (rhythmdb_query_model_set_property):
10890         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10891         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10892         (rhythmdb_query_free), (rhythmdb_query_serialize),
10893         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10894         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10895         * rhythmdb/rhythmdb.h: Support special
10896         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10897         year in date.
10899         * widgets/rb-query-creator-properties.c:
10900         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10901         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10903 2006-01-06  James Livingston  <jrl@ids.org.au>
10905         * configure.ac: make the playback backend selection work correctly
10907         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10908         (rb_daap_src_class_init), (rb_daap_src_dispose),
10909         (rb_daap_src_change_state), (rb_daap_src_initialize):
10910         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10911         doesn't work for this class. Fixes bug 325934
10913 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10915         * configure.ac: Fix check for libnotify.
10917 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10919         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10920         Get name element for current lang and remove all name nodes
10921         from the XML tree.
10922         (get_playlist_name_from_xml): Try to get name element or
10923         fall back to name attribute.
10924         (rb_playlist_source_new_from_xml): Get name before turning over
10925         to sub-types for parsing so that we can remove name elements
10926         from the tree if necessary.
10928         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10929         Load default playlists file if per user playlists are not found.
10931         * data/playlists.xml.in: 
10932         * data/Makefile.am: 
10933         * data/.cvsignore: Add default set of playlists.
10934         Fixes #323004
10936 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10938         * shell/main.c: (main): Don't use the dbus interface to show the
10939         window if we're also going to use the bonobo interface.
10941 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10943         * shell/rb-history.c: (rb_history_set_playing):
10944         Allow setting the playing song to NULL.
10945         (rb_history_append), (rb_history_delete_link):
10946         Don't randomly change position when entries are added and removed,
10947         it confuses play orders.
10948         
10949         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10950         Random orders always have a next entry if the model is not empty.
10951         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10952         Go back to the start of the history if we're past its end.
10954         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10955         (rb_shuffle_play_order_go_next): Go back to the start of the history
10956         if we're past its end.
10957         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10958         the history if the current entry is removed.
10960         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10961         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10962         the play order when the query has finished. This wasted about 10% CPU
10963         while the query was running.
10965         Fixes #324641: assertion failures when the query model was changed
10966         such that the playing song was no longer present.
10968 2006-01-05  James Livingston  <jrl@ids.org.au>
10970         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10971         (rb_daap_src_dispose), (rb_daap_src_change_state):
10972         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10973         (rhythmdb_gda_finalize):
10974         * widgets/rb-cell-renderer-pixbuf.c:
10975         * widgets/rb-cell-renderer-rating.c:
10976         (rb_cell_renderer_rating_class_init),
10977         (rb_cell_renderer_rating_finalize):
10978         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10979         * widgets/rb-load-failure-dialog.c:
10980         (rb_load_failure_dialog_class_init),
10981         (rb_load_failure_dialog_finalize):
10982         * widgets/rb-rating.c: (rb_rating_class_init),
10983         (rb_rating_finalize):
10984         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10985         (rb_search_entry_finalize): use G_DEFINE_TYPE
10987         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10989 2006-01-05  James Livingston  <jrl@ids.org.au>
10991         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10993         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10994         the tarball.
10996         * shell/rb-history.c: (rb_history_class_init),
10997         (rb_history_finalize):
10998         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10999         (rb_playlist_manager_finalize):
11000         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11001         (rb_remote_init): use G_DEFINE_TYPE.
11003 2006-01-05  James Livingston  <jrl@ids.org.au>
11005         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11006         changes
11008 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11010         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11011         Disable burn action when source is not a playlist.
11012         Fixes #323578.
11014 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11016         Optionally use libnotify to display song change and other
11017         notifications, and provide an option to disable notifications.
11018         Fixes #320355 and innumerable informal complaints.
11020         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11021         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11022         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11023         (egg_tray_icon_notify):
11024         * widgets/eggtrayicon.h:
11025         * configure.ac:
11026         * shell/Makefile.am:
11027         Optionally use libnotify instead of eggnotificationbubble.
11029         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11030         (rb_tray_icon_constructor), 
11031         (rb_tray_icon_show_notifications_changed_cb),
11032         (rb_tray_icon_hide_notify_cb)
11033         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11034         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11035         EggNotificationBubble pointer to eggtrayicon.
11037         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11038         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11039         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11041 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11043         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11044         Request a minimum size for the progress bar so that
11045         the window doesn't shrink too small.
11047 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11049         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11050         (add_db_entry), (db_entry_deleted_cb):
11051         Don't track the number of songs currently present, track the next ID
11052         to assign.  Fixes potential ID conflict problems.
11053         
11054         (db_entry_changed_cb), (rb_daap_share_start_publish),
11055         (rb_daap_share_stop_publish):
11056         Watch for db entry changes, and when songs become non-hidden after
11057         a successful stat, add them to the mapping tables.   Fixes #325178,
11058         making the DAAP server usable again.
11060 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11061         
11062         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11063         (rb_statusbar_construct), (rb_statusbar_init),
11064         (rb_statusbar_finalize), (rb_statusbar_set_property),
11065         (rb_statusbar_get_property), (rb_statusbar_new),
11066         (rb_statusbar_sync_with_source):
11067         * shell/rb-statusbar.h:
11068         Remove visibility management code, stop watching for play order
11069         changes (status bar doesn't show play order any more), remove unused
11070         'player' property, and some other minor cleanup.
11071         
11072         * shell/rb-shell.c: (rb_shell_constructor),
11073         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11074         (rb_shell_sync_statusbar_visibility):
11075         Manage status bar visibility here rather than in the status bar
11076         itself, so we can take small mode into account.  Fixes #323589.
11078 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11080         * widgets/eggnotificationbubble.c: (draw_bubble):
11081         Move the bubble off the visible screen while setting up bevels.  
11082         Fixes #316810.
11084 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11086         * shell/rb-shell-player.c: (rb_shell_player_init),
11087         (rb_shell_player_finalize): 
11088         Remove unused structure members.
11089         
11090         (do_next_idle), (rb_shell_player_error):
11091         Only queue one call to do_next_idle, so we don't skip tracks if we get
11092         two errors for the same song.  Fixes #325216.
11094 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11096         * data/glade/podcast-feed-properties.glade,
11097          podcast/rb-feed-podcast-properties-dialog.c:
11098         (rb_feed_podcast_properties_dialog_init),
11099         (rb_feed_podcast_properties_dialog_update):
11100         Add 'last episode' field to the podcast feed properties dialog.
11102         * podcast/rb-feed-podcast-properties-dialog.c:
11103         (rb_feed_podcast_properties_dialog_update_last_update),
11104         (rb_feed_podcast_properties_dialog_update_last_episode),
11105          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11106         Use last-seen property for the time at which we last updated the feed,
11107         and post-time for the time the last episode was published.
11109         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11110         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11111         feed, use last-seen (which in 0.9.2 was the last post time).
11113         Fixes #323894.
11115 2006-01-01  James Livingston  <jrl@ids.org.au>
11117         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11119         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11120         year from the ipod database.
11122 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11124         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11125         Only set the pipeline back to NULL state for really uninteresting
11126         files.  This was causing deadlocks with various video files.
11127         Fixes #324912.
11129 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11131         * data/glade/song-info-multiple.glade:
11132         Add disc number label and field.
11133         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11134         (rb_song_info_constructor): 
11135         Handle widgets for disc number.
11136         (rb_song_info_sync_entries_multiple):
11137         Set disc number property on selected entries.
11138         Fixes #324777.
11140 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11142         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11143         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11144         Activate the default widget when enter is pressed in these dialogs.
11145         Fixes #322887.
11147 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11149         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11150         Use rb_shell_player_get_playing_entry, so we get the right entry
11151         when playing from the queue.  Fixes #325379.
11153 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11155         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11156         Include podcast posts with no publication date.  Typically
11157         seen in static collections rather than feeds.
11159 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11161         * shell/main.c: (main): Don't attempt to handle
11162         bonobo-only arguments if we couldn't get a bonobo
11163         client proxy.
11165 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11167         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11168         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11169         abort if daap sharing is disabled and then re-enabled.
11171 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11173         * podcast/rb-podcast-parse.c (rb_insert_item):
11174         Add debugging.
11175         (rb_podcast_parser_start_element): Support itunes:image.
11176         Add debugging.  Don't abuse the break statement.  Warn
11177         if state is unknown.
11178         (rb_podcast_parser_end_element): Add debugging.  Warn
11179         if state is unknown.
11180         (rb_podcast_parser_characters): Warn if state is unknown.
11182         Fixes parsing of feeds that use the itunes:image element.
11183         Fixes #324632
11185 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11187         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11188         (stations_view_drag_data_received_cb):
11189         Remove calls to rhythmdb_entry_lookup_by_location, as
11190         rb_iradio_source_add_station does that anyway.
11191         
11192         (rb_iradio_source_add_from_playlist):
11193         If the URL doesn't point to a playlist, add it as the stream
11194         URL instead.
11196 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11198         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11199         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11200         so we don't get an assertion failure.
11201         Fixes #325025.
11203 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11205         * shell/main.c: (load_uri_args): don't compile this in if
11206         neither bonobo nor dbus are enabled.  Fixes #324890.
11208 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11210         * sources/rb-audiocd-source.c:
11211         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11212         so it closes the device.
11214 2005-12-20  James Livingston  <jrl@ids.org.au>
11216         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11217         so that it doesn't spend forever getting stuck on the one file. Don't
11218         report errors for failing to change state on known non-audio files.
11220         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11221         audio sink creation if we can't create the gconfaudiosink. This lets
11222         it work with only gst-plugins-base on 0.10.
11224 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11226         * rhythmdb/rhythmdb-query-model.c:
11227         (rhythmdb_query_model_set_sort_order):
11228         Fix a tiny memory leak in the previous commit.
11230 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11232         * rhythmdb/rhythmdb-query-model.c:
11233         (rhythmdb_query_model_set_sort_order):
11234         Don't try to emit reorders for empty query models, since it doesn't
11235         achieve anything and it results in a few warnings.
11237 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11239         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11240         Make burn dialog non-resizable so that the expander can shrink.
11241         Fixes #308951.
11243 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11245         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11246         add entries without a location, rather than those with one.
11248 2005-12-19  James Livingston  <jrl@ids.org.au>
11250         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11251         the error isn't set.
11253 2005-12-19  James Livingston  <jrl@ids.org.au>
11254         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11255         add entries without a location. Fixes bug 324290.
11257         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11258         without a location.
11260         * shell/main.c: (main): don't crash if dbus initialisation fails
11261         without setting an error
11263 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11265         * sources/rb-library-source.c: Remove unused structure members
11266         (rb_library_source_do_query): Actually use the cached 'all' query.
11267         Fixes #324025.
11268         
11269 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11271         * sources/rb-audiocd-source.c 
11272         (rb_audiocd_get_cd_info): tab
11273         (rb_audiocd_scan_songs): Return boolean success/failure,
11274         fix error messages a bit.
11275         (metadata_cb): Don't crash if we have no tracks
11276         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11277         the CD.
11278         Fixes #324222.
11280 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11282         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11283         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11284         key.
11286         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11287         Fixes #324157
11289 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11291         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11292         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11293         (fullscreen_changed_cb): 
11294         * lib/rb-preferences.h: 
11295         * data/ui/rhythmbox-ui.xml: 
11296         * data/rhythmbox.schemas:
11297         Add fullscreen mode.
11299         Fixes #324075.
11301 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11303         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11304         configure.  It was not working with RPM.
11305         * data/Makefile.am: Switched dbus directory location to use
11306         datadir instead of variable that was not working.
11308 2005-12-13  James Livingston  <jrl@ids.org.au>
11310         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11312         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11313         the podcast browser work again. Closes bug 323856.
11315 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11317         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11318         Remove C99ism.
11320         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11321         (rb_utf_friendly_time):
11322         * lib/rb-cut-and-paste-code.h:
11324         * podcast/rb-feed-podcast-properties-dialog.c:
11325         (rb_feed_podcast_properties_dialog_parse_time):
11326         * podcast/rb-podcast-properties-dialog.c:
11327         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11328         to display the date in a more user friendly way.
11329         For example, if the feed was updated yesterday it will say:
11330         Last updated: Yesterday 10:00 AM
11331         instead of printing the date.
11333 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11335         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11336         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11337         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11338         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11339         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11340         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11341         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11342         (rb_podcast_parse_date): Add support for some real world
11343         date formats.
11344         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11345         (rb_podcast_parse_item_free): Style and no need to check
11346         for NULL before g_free.
11348         May fix #323742
11350 2005-12-12  James Livingston  <jrl@ids.org.au>
11352         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11353         with gstreamer 0.10, which replaced audioscale.
11355         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11356         function to free the SoupSession
11358         * shell/rb-source-header.c: (rb_source_header_set_property),
11359         (rb_source_header_disclosure_toggled_cb),
11360         (rb_source_header_view_browser_changed_cb),
11361         (rb_source_header_sync_control_state):
11362         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11363         * sources/rb-library-source.c: (rb_library_source_class_init):
11364         * sources/rb-source.c: (rb_source_class_init),
11365         (rb_source_get_status), (default_get_browser_key),
11366         (rb_source_get_browser_key), (rb_source_can_browse),
11367         (rb_source_notify_status_changed),
11368         (rb_source_notify_filter_changed):
11369         * sources/rb-source.h: seperate the enabling of browsers from the use
11370         of a gconf key.
11372 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11374         * data/glade/podcast-feed-properties.glade: 
11375         * data/glade/podcast-properties.glade: Use scrolled viewports
11376         for description text.  Fix regression of #320509.
11378 2005-12-11  James Livingston  <jrl@ids.org.au>
11380         * sources/rb-auto-playlist-source.c:
11381         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11382         (impl_search), (rb_auto_playlist_source_do_query),
11383         (rb_auto_playlist_source_set_query),
11384         (rb_auto_playlist_source_get_query): add support for the search box
11385         to automatic playlists.
11387         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11388         memory leak.
11390 2005-12-11  James Livingston  <jrl@ids.org.au>
11392         * NEWS: update NEWS
11394 2005-12-11  James Livingston  <jrl@ids.org.au>
11396         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11397         (rhythmdb_load), (monitor_subdirectory),
11398         (rhythmdb_sync_library_location):  start the library sync and
11399         monitoring in an idle callback.
11401 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11403         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11404         (rb_podcast_source_constructor): Remove unused pixbuf column.
11405         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11406         Use consistent style.
11408         Fixes #322961.
11410 2005-12-11  James Livingston  <jrl@ids.org.au>
11412         * rhythmdb/rhythmdb-property-model.c:
11413         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11414         (rhythmdb_property_model_insert),
11415         (rhythmdb_property_model_delete_prop):
11416         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11417         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11418         (destroy_tree_property):
11419         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11420         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11421         GMemChunks, they are crap and deprecated. Improves startup-time and
11422         memory usage slightly.
11424 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11426         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11427         Added license and website info.
11429         * MAINTAINERS.old: Add Colin.
11430         * MAINTAINERS: Add James.
11431         * AUTHORS: Put back in order.  Add extra space between name and email
11432         to make it easier to read.  Add James and jonathan.
11434         * widgets/rb-song-info.c (rb_song_info_init) 
11435         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11437 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11439         Play queue implementation. Closes bug 107787.
11441         * data/rhythmbox.schemas: add items for whether the queue should be
11442         displayed as a sidebar, and the height of the sourcelist if it is.
11444         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11445         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11446         add popups for queue as source and as sidebar.  We need a separate
11447         popup for the sidebar view because otherwise it's hard to tell which
11448         of the visible entry views the action came from.
11450         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11452         * po/POTFILES.in: Add new file
11454         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11455         Add helper function for deciding if a podcast episode is available for
11456         playback.
11458         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11459         reorder entries in the query model.
11460         (idle_process_update): Handle new update type used to insert entries
11461         at a particular position in the query model.
11462         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11463         parameter to specify the position (-1 meaning 'at the end').
11464         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11465         parameter.
11466         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11467         bad entry removal updates for entries that aren't in the model.
11468         (rhythmdb_query_model_emit_reorder): Add helper function for
11469         reordering rows.
11470         (rhythmdb_query_model_move_entry): New method for moving entries
11471         around in the model
11472         (rhythmdb_query_model_entry_added_cb),
11473         (rhythmdb_query_model_update_limited_entries),
11474         (rhythmdb_query_model_do_reorder),
11475         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11476         use rhythmdb_query_model_emit_reorder where appropriate.
11478         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11479         Don't allow the queue to be deleted.
11480         (handle_playlist_entry_cb): Update for method signature change
11481         (rb_playlist_manager_save_playlists_async),
11482         (rb_playlist_manager_get_playlists): Don't save the play queue,
11483         don't report it as a playlist.
11485         * shell/rb-play-order.c: Include queue play order in the list of
11486         available orders.
11488         * shell/rb-shell.c
11489         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11490         for access to the clipboard object.
11491         (rb_shell_constructor): Handle playing-from-queue signal to update the
11492         sourcelist display; add queue sidebar in to UI, listen for queue
11493         sidebar pane changes, and read initial settings from gconf.
11494         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11495         Only tell the sourcelist the source has changed if the new source is 
11496         not the queue, as we update the sourcelist differently in that case.
11497         (rb_shell_set_window_title): Only use the cached window title if the
11498         playing state was the same when it was created.
11499         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11500         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11501         sourcelist is hidden and the queue is shown as a source.
11502         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11503         mode, since it doesn't make any sense.
11504         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11505         too.
11506         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11507         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11508         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11509         playing from queue shown as sidebar.
11511         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11512         MusicProperties action here from rb-shell-player.c, since it acts like
11513         cut/copy/paste etc.
11514         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11515         (rb_shell_clipboard_get_property): new property for queue source.
11516         Watch for selection changes in the sidebar entry view as well as the
11517         normal one.
11518         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11519         actions and MusicProperties.
11520         (rb_shell_clipboard_cmd_queue_delete),
11521         (rb_shell_clipboard_cmd_add_song_to_queue),
11522         (rb_shell_clipboard_cmd_song_info),
11523         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11525         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11526         actually came from (could be the playing source, or the queue), add a 
11527         new play order object for the queue, add a property for the queue
11528         source, add a signal for when we switch between playing from the
11529         source and from the queue.
11530         (rb_shell_player_set_property): Handle playing directly from the
11531         queue so we stop once the queue is empty.  Create queue play order
11532         when we get the queue source.
11533         (rb_shell_player_get_playing_source): Return the source we're actually
11534         playing from.
11535         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11536         that's where it is.
11537         (rb_shell_player_set_playing_entry): Update the queue play order if 
11538         that's where we're playing from.
11539         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11540         queue into consideration too.
11541         (swap_playing_source): Helper function for switching the playing
11542         source.
11543         (rb_shell_player_do_previous): Check the queue, even though there's
11544         never a previous entry in it (yet), swap playing source if it changed.
11545         (rb_shell_player_do_next): Check the queue for entries to play before
11546         the normal play order, and swap playing source if it changed.
11547         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11548         entries to go to as well.
11549         (rb_shell_player_playpause): Check the queue before the selection and
11550         the play order, and swap playing source if it changed.
11551         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11552         (rb_shell_player_entry_activated_cb): Use
11553         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11554         activating queue entries work properly (move the activated entry to
11555         the start of the queue and then play it); if we were playing from the
11556         queue, clear its playing entry so it'll start again from the start
11557         after the activated entry.
11558         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11559         to rb-shell-clipboard.c
11560         (actually_set_playing_source): Add helper for updating the playing
11561         source.
11562         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11563         signal if we stop or start doing so; use actually_set_playing_source; 
11564         emit playing-source-changed if we actually did change source.
11566         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11567         rb_static_playlist_source_add_location.
11569         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11570         enqueueing of songs from the library.
11572         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11573         enqueueing of sonsg from playlists.
11574         (rb_playlist_source_entry_added_cb): Add extra parameter for
11575         rhythmdb_query_model_add_entry.
11576         
11577         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11578         Implement (can_)add_to_queue for this class.
11579         (rb_podcast_source_entry_activated): Use
11580         rb_podcast_manager_entry_downloaded.
11581         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11582         been downloaded is selected.
11583         (impl_add_to_queue): Only add downloaded entries to the queue.
11585         * sources/rb-source.{c,h}:
11586         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11587         methods.
11588         (rb_source_class_init): Don't allow enqueueing by default; implement 
11589         add_to_queue though.
11590         (default_add_to_queue): Add all selected entries to the queue.
11591         
11592         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11593         would be playing if there wasn't anything in the queue).
11594         (set_source_playing): Helper function for manipulating tree store.
11595         (rb_sourcelist_set_playing_source): Use set_source_playing
11596         (rb_sourcelist_preempt_playing_source): Update preempted source
11597         pointer, manipulate source states.
11599         * sources/rb-static-playlist-source.{c,h}:
11600         (rb_static_playlist_source_add_location_internal),
11601         (rb_static_playlist_source_add_location),
11602         (rb_static_playlist_source_add_entry): Add index parameter for
11603         specifying where in the playlist the new entry goes.
11604         (rb_static_playlist_source_new_from_xml), (impl_paste),
11605         (rb_static_playlist_source_add_list_uri),
11606         (rb_static_playlist_source_add_location_swapped),
11607         (rb_static_playlist_source_add_locations),
11608         (rb_static_playlist_source_non_entry_dropped),
11609         (rb_static_playlist_source_row_inserted):
11610         Handle new index parameter everywhere it appears
11611         (rb_static_playlist_source_move_entry): New method for moving entries
11612         around in the playlist.
11614         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11615         warnings when trying to scroll entry views that have never been
11616         displayed.
11618         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11619         play order that removes the old entry when switching to a new one.
11621         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11622         static playlist subclass that has a second entry view for the sidebar
11623         view using alternate formatting, and that displays the number of
11624         entries it contains in its source list entry.
11626 2005-12-10  James Livingston  <jrl@ids.org.au>
11628         * rhythmdb/rhythmdb-query-model.c:
11629         (rhythmdb_query_model_add_entry),
11630         (rhythmdb_query_model_drag_data_received):
11631         * sources/rb-static-playlist-source.c:
11632         (rb_static_playlist_source_non_entry_dropped): when things are
11633         dropped, ignore any blank lines in the list of uris. Make the source
11634         responsible for adding new items to the db.
11636         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11637         empty string.
11639 2005-12-10  James Livingston  <jrl@ids.org.au>
11641         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11642         (rb_shell_player_sync_buttons),
11643         (rb_shell_player_selection_changed_cb): watch for the
11644         "selection-changed" signal, so that the Song Properties get enabled.
11645         Closes bug 323694.
11647 2005-12-10  James Livingston  <jrl@ids.org.au>
11649         * data/rhythmbox.schemas: fix the gconf schema
11651 2005-12-10  James Livingston  <jrl@ids.org.au>
11653         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11654         the decoded-pad callback with gstreamer 0.8, it causes problems.
11656 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11658         Remove more junk from RBEntryView. Closes bug 323640.
11660         * widgets/rb-entry-view.{c,h}:
11661         Remove unused private structure members, replace 'playing' boolean
11662         with an enum (so we know if we're paused too), and store a pointer to
11663         the RBShellPlayer too.  
11664         (rb_entry_view_class_init), (rb_entry_view_set_property),
11665         (rb_entry_view_get_property):
11666         Remove 'entry-selected' and 'changed' signals and
11667         'playing-entry' property, add 'selection-changed' signal and
11668         'shell-player' and 'playing-state' properties.
11669         (rb_entry_view_new): Take the shell player object reference
11670         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11671         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11672         No longer needed, shell player is the place to get this information.
11673         (rb_entry_view_busy), (rb_entry_view_get_duration),
11674         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11675         (rb_entry_view_get_next_from_entry),
11676         (rb_entry_view_get_previous_from_entry),
11677         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11678         (rb_entry_view_get_num_entries):
11679         Removed, callers should go to the query model directly.
11680         (rb_entry_view_playing_song_changed): Update active query model, emit
11681         row changed signals to update pixbufs, and scroll to the playing song
11682         when the playing song changes, based on a signal from the shell
11683         player.
11684         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11685         (emit_entry_changed): Evil, removed.
11686         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11687         selection-changed signal.
11688         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11689         Remove selection lock.  It didn't work anyway.
11690         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11691         (rb_entry_view_emit_row_changed): Simple helper function to emit
11692         row-changed signals.
11694         * widgets/Makefile.am: Entry view needs headers from the shell/
11695         directory.
11696         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11698         scrolling the entry view to show the entry being displayed.
11699         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11700         'source' property so we can watch for query model changes.
11701         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11702         (rb_song_info_set_property): Watch for query model changes, don't
11703         watch for entry view changes.
11704         (rb_song_info_new): Take source as a parameter, use the source's entry
11705         view unless one was specifically supplied.
11706         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11707         Use query model rather than entry view to move between songs.
11708         (rb_song_info_update_buttons): Use query model.
11709         (rb_song_info_query_model_changed_cb): Handle query model changes.
11711         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11712         Only one copy of the code to enable/disable the CD burning action
11713         (rb_playlist_manager_playlist_entries_changed):
11714         Use the query model to get the number of entries, not the entry view.
11716         * shell/rb-play-order-random-by-age-and-rating.c,
11717         shell/rb-play-order-random-by-age.c,
11718         shell/rb-play-order-random-by-rating.c,
11719         shell/rb-play-order-random-equal-weights.c:
11720         Use G_DEFINE_TYPE
11722         * shell/rb-shell-player.{c,h}:
11723         Remove a few unused entries from the structure.
11724         (rb_shell_player_set_property):
11725         Don't use the 'changed' signal on the entry view (it's evil)
11726         (rb_shell_player_have_first): No longer needed
11727         (rb_shell_player_play): Just tell the entry view it's playing
11728         (rb_shell_player_playpause): Tell the entry view it's paused
11729         when pausing.
11730         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11731         (rb_shell_player_property_row_activated_cb):
11732         Get the entry to play using the query model, not the entry view.
11733         (rb_shell_player_sync_buttons): Update entry view state while we're
11734         here.
11735         (rb_shell_player_set_playing_source_internal): Update entry view state
11736         (rb_shell_player_get_playing): Ask the entry view, not the player.
11737         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11738         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11739         the window title and tray icon tooltip.
11740         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11742         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11743         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11744         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11745         view constructor, pass the source in to the song info widget
11746         constructor.
11748         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11749         Use 'selection-changed' instead of 'changed', since that's what the
11750         clipboard cares about.
11751         (rb_shell_clipboard_set_source): Don't die if source == NULL
11753 2005-12-10  James Livingston  <jrl@ids.org.au>
11755         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11756         * sources/rb-playlist-source-recorder.c:
11757         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11758         stuff not use the deprecated API when compiled against 2.13
11760 2005-12-10  James Livingston  <jrl@ids.org.au>
11762         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11764         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11765         problem where the genre tag was getting set to the artist. Closes bug
11766         323642.
11768 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11770         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11771         Return NULL if can't get first iter.
11773         Fixes #323663
11775 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11777         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11778         updated rb_station_properties_dialog_new API.
11779         (rb_iradio_source_add_from_playlist): New public function.
11780         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11782         * shell/rb-shell.c (new_station_location_added): Handle
11783         iradio location added signal.
11784         (rb_shell_cmd_new_station): Use new iradio station dialog.
11786         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11787         (rb_station_properties_dialog_new): Don't squeeze new
11788         station functionality into this class.
11789         (rb_station_properties_dialog_response_cb): ditto.
11790         (rb_station_properties_dialog_update_title): Make
11791         consistent with other properties dialogs.
11792         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11794         * iradio/rb-new-station-dialog.[ch]: 
11795         * iradio/Makefile.am: Add new station dialog.
11797         * data/glade/station-new.glade: New file based on
11798         new podcast feed dialog.
11799         * data/glade/station-properties.glade: Updated to
11800         be consistent with song properties dialog.
11802         Fixes #323306.
11804 2005-12-10  James Livingston  <jrl@ids.org.au>
11806         patch by: Ståle Lyngaas <staale@lyngaas.com>
11808         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11809         submit songs longer than 30 minutes. Fixes bug 323639.
11811 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11813         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11814         async save function.
11815         (rb_shell_finalize): Remove save timeout sources.  Reorder
11816         steps a bit to make saving db and playlists a bit more
11817         failsafe in case something goes wrong later.
11818         (rb_shell_constructor): Keep track of save timeout source.
11819         (add_to_library_response_cb): Keep track of db save timeout source.
11821         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11822         g_atomic.
11823         (rb_playlist_manager_shutdown): New function to shutdown
11824         threads etc. before exit.
11825         (rb_playlist_manager_finalize): Moved handling outstanding
11826         threads stuff to shutdown since if there are outstanding threads
11827         they hold a ref and finalize is never called.
11828         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11829         of signal which may be required for sync save.
11830         (rb_playlist_manager_save_playlists_async): Renamed old
11831         save_playlists to save_playlists_async.  Use g_atomic.
11832         (rb_playlist_manager_save_playlists): New function to
11833         perform sync saves (symmetric with RhythmDB API).
11834         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11836         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11837         Style consistency anality.
11838         (rhythmdb_finalize): Remove save timeout source.
11839         (rhythmdb_set_property, rhythmdb_get_property) 
11840         (rhythmdb_process_events): More anality and keep track of
11841         save timeout source.
11842         (action_thread_main): No need to call g_thread_exit.
11843         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11844         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11845         (write_encoded_gvalue, read_encoded_property): La la la.
11847         Fixes #322940.
11849 2005-12-10  James Livingston  <jrl@ids.org.au>
11851         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11852         non-audio files.
11854 2005-12-10  James Livingston  <jrl@ids.org.au>
11856         * Makefile.am:
11857         * configure.ac: remove the rpm spec files, so that automake works.
11858         oops
11860         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11861         locking issue
11863 2005-12-09  James Livingston  <jrl@ids.org.au>
11865         * debian/: try to get cvs to actually remove the files
11867 2005-12-09  James Livingston  <jrl@ids.org.au>
11869         * rhythmbox.spec.in:
11870         * debian/: remove the distro package stuff, they are *really* old, and
11871         downstream manage it anyway.
11873 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11875         Rework play orders to work off query models rather than 
11876         entry views, and track the playing entry themselves rather
11877         than relying on the entry view to do it.  This makes the entry
11878         view mostly just a widget. Closes bug 323612.
11880         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11881         Use query model rather than entry view to get the number
11882         of entries in playlists.
11884         * rhythmdb/rhythmdb-query-model.{c.h}
11885         (rhythmdb_query_model_tree_path_to_entry),
11886         (rhythmdb_query_model_iter_to_entry),
11887         (rhythmdb_query_model_get_next_from_entry),
11888         (rhythmdb_query_model_get_previous_from_entry):
11889         New utility functions for iterating through query models.
11890         (rhythmdb_query_model_compute_status_normal):
11891         Have one copy of this code, not four.
11893         * shell/rb-play-order.{c,h}:
11894         Add signals for when next/previous availability changes, and
11895         when the playing entry is removed, and add a property for
11896         the current playing entry.  Add gtkdoc comments too.
11897         (rb_play_order_class_init): Add new property and signals.
11898         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11899         (rb_play_orer_query_model_changed_cb),
11900         (rb_play_order_query_model_changed): 
11901         Use query model rather than entry view.
11902         (rb_play_order_set_property), (rb_play_order_get_property):
11903         Handle new playing-entry property.  Call playing_entry_changed virtual
11904         method so subclasses can do any processing required.
11905         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11906         (rb_play_order_set_playing_entry):
11907         Just use the playing-entry property.
11908         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11909         Utility methods for subclasses.
11910         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11911         Update next/previous availability, check if the playing entry
11912         was removed.
11913         (default_playing_entry_removed):
11914         Keep the current behaviour of just stopping playback when the 
11915         playing entry is deleted.
11916         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11917         these for subclasses that don't have go_next/go_previous, but do
11918         have get_next/get_previous.
11919         (rb_play_order_update_have_next_previous): Emit signal if the
11920         availability of next/previous entries has changed.
11922         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11923         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11924         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11925         methods.
11926         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11927         on the last song in the shuffled order, go back to the start. This
11928         means if you press 'play' again you'll get the whole order again, not
11929         just one song.
11931         * shell/rb-shell-player.c:
11932         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11933         play order rather than the entry view.
11934         (rb_shell_player_set_property): Update the play order when the
11935         selected source changes and we aren't playing anything.
11936         (rb_shell_player_sync_play_order): Copy the playing entry across to
11937         the new play order so playback continues from the same song, and watch
11938         for updates to have_next/have_previous.
11939         (rb_shell_player_play_order_update_cb): Enable/disable the
11940         next/previous actions when next/previous entry availability changes.
11941         (rb_shell_player_jump_to_current): Just use the play order's idea of
11942         what's playing, not the entry view's; if not playing anything, clear
11943         the selection, so when a playlist ends and you hit play again, it'll
11944         start at the start rather than the end.
11945         (rb_shell_player_do_previous): restructure a bit.
11946         (rb_shell_player_do_next): restructure, jump to new playing entry in
11947         an idle handler instead of directly.
11948         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11949         song if there is one.
11950         (rb_shell_player_playpause): Jump to playing song, don't update the
11951         play order if we got the song from the selection.
11952         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11953         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11954         looks after next/previous actions now.  Don't break if called while
11955         there is no selected source.
11956         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11957         (rb_shell_player_set_playing_source_internal),
11958         (rb_shell_player_error): No need to track the attempted playing entry
11959         any more, since the play order does that.
11961         * shell/rb-shell.c:
11962         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11963         rb_shell_player_get_playing_entry rather than going through the entry
11964         view.
11966         * shell/rb-statusbar.c (rb_statusbar_set_property),
11967         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11968         than the entry view for status bar text changes.
11969         (rb_statusbar_sync_status): Ask the query model directly
11971         * sources/rb-source.{c}: Add query model property.
11972         (default_get_status): Get status text from query model, should be
11973         suitable for most sources.
11974         (rb_source_set_property): Listen for changes to the query model 
11975         to update the status text.
11976         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11977         (idle_emit_status_changed): Emit status-changed signals when query
11978         model changes. 
11980         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11981         (impl_get_status): Not needed, RBSource does this now
11982         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11983         Update RBSource's query model reference.
11985         * sources/rb-playlist-source.c:
11986         Remove query-model property, since RBSource has one now
11987         (impl_get_status): Not needed, RBSource does this now
11988         (rb_playlist_source_row_deleted): Use query model iterator helper
11989         function.
11990         (rb_playlist_source_set_query_model): Update RBSource's query model
11991         reference too.
11993         * sources/rb-iradio-source.c:
11994         (impl_get_status): Ask the query model directly.
11995         (rb_iradio_source_do_query): Update RBSource's query model reference
11996         when we create a new query.
11998         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11999         Use query model rather than entry view.
12001         * widgets/rb-entry-view.{c,h}: 
12002         Remove playing_entry_deleted signal (now in play order).
12003         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12004          as RhythmDBQueryModel has equivalent helper functions.
12005         (rb_entry_view_*): Use query model helpers instead of the above two
12006         functions.
12008 2005-12-09  James Livingston  <jrl@ids.org.au>
12010         * configure.ac:
12011         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12012         (rb_recorder_enabled):
12013         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12014         * sources/rb-playlist-source-recorder.c:
12015         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12016         whether libnautilusburn has the _drive_unref function, and if so use
12017         it. Stops it complaining about deprecated API.
12019 2005-12-09  James Livingston  <jrl@ids.org.au>
12021         * configure.ac: drop the minimum gstreamer version back down, it
12022         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12024 2005-12-09  James Livingston  <jrl@ids.org.au>
12026         * widgets/rb-song-info.c: (rb_song_info_class_init),
12027         (rb_song_info_show), (rb_song_info_constructor),
12028         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12029         (rb_song_info_forward_clicked_cb): save metadata changes when the
12030         Next/Previous buttons are pressed (closes bug 320952). use
12031         G_DEFINE_TYPE.
12033 2005-12-09  James Livingston  <jrl@ids.org.au>
12035         Patch by: <jonathan@kaolin.hn.org>
12037         * sources/rb-iradio-source.c:
12038         (stations_view_drag_data_received_cb):
12039         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12040         of urls. Fixes bug 323610.
12042 2005-12-09  James Livingston  <jrl@ids.org.au>
12044          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12045          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12047         * configure.ac:
12048         * metadata/rb-metadata-gst.c:
12049         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12050         (rb_player_construct), (rb_player_new):
12051         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12052         (rb_recorder_gst_signal_error), (pipe_message),
12053         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12054         (rb_recorder_new):
12055         * shell/main.c: (main):
12056         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12057         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12059 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12061         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12063         * shell/rb-playlist-manager.c:
12064           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12065           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12066           (rb_playlist_manager_set_automatic_playlist),
12067           (rb_playlist_manager_cmd_new_automatic_playlist),
12068           (rb_playlist_manager_cmd_edit_automatic_playlist):
12069            Use new playlist subclasses.
12070           (rb_playlist_manager_save_playlists): Only read the dirty flag
12071            for local playlists, minor pointless reformatting
12073         * sources/Makefile.am: add new files
12075         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12076           split lots of stuff out into two
12077           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12078           make RBPlaylistSource abstract, add virtual methods for showing a
12079           popup for the entry view and saving the playlist to XML.
12080           Other stuff is subclass-specific, or already virtual in RBSource.
12082         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12083           in one place, since they're used across three source files now
12085         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12086           Use new static playlist class
12088         * sources/rb-ipod-source.c: (add_rb_playlist):
12089           Use new static playlist class
12091         * sources/rb-static-playlist-source.{c,h},
12092         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12093         files.
12095         * po/POTFILES.in: add new files
12097 2005-12-07  James Livingston  <jrl@ids.org.au>
12099         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12100         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12101         metadata loads not attempt to write changes to disk.
12103 2005-12-07  James Livingston  <jrl@ids.org.au>
12105         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12107         * data/glade/song-info-multiple.glade:
12108         * widgets/rb-song-info.c: (rb_song_info_constructor),
12109         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12110         multiple songs at once.
12112 2005-12-06  James Livingston  <jrl@ids.org.au>
12114         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12115         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12117 2005-12-06  James Livingston  <jrl@ids.org.au>
12119         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12120         names rather than adding a horizontal scroll bar.
12122 2005-12-06  James Livingston  <jrl@ids.org.au>
12124         * rhythmdb/rhythmdb-query-model.c:
12125         (rhythmdb_query_model_update_limited_entries),
12126         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12127         messages
12129         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12130         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12131         always hide rather than remove DB entries, which will make RB not lose
12132         information when tag editing happens or people move files to trash and
12133         then change their mind. Also fix some races where the monitoring code
12134         would notice the temporary files generated by saving metadata.
12136 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12138         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12139         Hide internals and add tooltips.
12140         (rb_song_display_box_size_allocate): Hide internals.
12141         (sanitize_string, info_url): Copied from rb-header.
12142         (rb_song_display_box_sync): New public function.
12144         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12145         (rb_header_init): Use a separate row for the seek bar.
12146         (rb_header_finalize): Don't unref widgets.
12147         (rb_header_sync): Use rb_song_display_box_sync.
12148         (rb_header_set_urldata)
12149         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12150         (rb_header_set_show_position_slider): Set visibility of seek bar.
12151         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12152         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12154         * shell/rb-statusbar.c (rb_statusbar_init)
12155         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12157         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12158         (rb_shell_constructor): Remove hseparator.  Monitor
12159         toolbar visibility settings.  Add toolbar.  Add
12160         volume button to toolbar.  Add tooltips for volume button.
12161         (rb_shell_view_toolbar_changed_cb) 
12162         (rb_shell_sync_toolbar_visibility)
12163         (toolbar_visibility_changed_cb): Set visibility of
12164         toolbar.
12165         (rb_shell_sync_smalldisplay): Set the toolbar style to
12166         icons only when in small display mode.
12167         (rb_shell_volume_widget_changed_cb): Save volume setting.
12169         * shell/rb-shell-player.c (rb_shell_player_constructor):
12170         Remove pause and stop actions.  Make play action "important"
12171         so that text is visible in horizontal toolbar position.
12172         Remove control buttons.
12173         (rb_shell_player_init) 
12174         (rb_shell_player_sync_song_position_slider_visibility):
12175         Set visbibility of seek bar.
12176         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12177         Make play action a toggle.
12178         (rb_shell_player_sync_volume): Volume control moved
12179         to player.
12180         (gconf_song_position_slider_visibility_changed):
12181         Set visbibility of seek bar.
12182         (rb_shell_player_sync_buttons):
12183         Set sensitivity of actions instead of buttons.
12184         (rb_shell_player_playing_changed_cb): Add callback
12185         for player notify::playing changes.
12187         * lib/rb-preferences.h: Add hide toolbar and seek
12188         bar key names.
12190         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12191         seek bar menu items.  Remove pause and stop actions
12192         from the control menu.  Add a toolbar.
12194         * data/rhythmbox.schemas: Add toolbar_hidden
12195         song_position_slider_hidden keys.
12197         Patch by: James Livingston  <jrl@ids.org.au>
12198                   William Jon McCann  <mccann@jhu.edu>
12199         Fixes #316238.
12201 2005-12-05  James Livingston  <jrl@ids.org.au>
12203         * data/glade/library-prefs.glade:
12204         * data/rhythmbox.schemas:
12205         * lib/rb-preferences.h:
12206         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12207         (rhythmdb_sync_library_location):
12208         * sources/rb-library-source.c: (rb_library_source_class_init),
12209         (rb_library_source_finalize), (rb_library_source_constructor),
12210         (impl_get_config_widget), (rb_library_source_preferences_sync),
12211         (rb_library_source_watch_toggled_cb): allow people to disable library
12212         monitoring, because with nothing set the file chooser button selects
12213         the Home folder (and hence that will get monitored).
12215 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12217         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12218         attempt to fix problem with RSS parsing showing invalid feed types.
12219         Fixes bug 323153
12221 2005-12-04  James Livingston  <jrl@ids.org.au>
12223         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12224         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12225         importing a remote directory not block the UI.
12227 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12229         * data/glade/podcast-feed-properties.glade:
12230         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12232 2005-12-04  James Livingston  <jrl@ids.org.au>
12234         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12236         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12237         to && to fix a mistake in the earlier podcast patch.
12239 2005-12-03  James Livingston  <jrl@ids.org.au>
12241         * data/glade/podcast-new.glade:
12242         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12243         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12245         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12246         GValue, which stops occasional errors.
12248         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12249         compile issue.
12251 2005-12-03  James Livingston  <jrl@ids.org.au>
12253         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12255         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12256         crasher with some podcasts feeds.
12258 2005-12-03  James Livingston  <jrl@ids.org.au>
12260         * data/rhythmbox.schemas: fix the gconf schema
12262 2005-12-03  James Livingston  <jrl@ids.org.au>
12264         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12265         add a selection timeout to the sourcelist. This lets you hold a track
12266         over the playlist source, and then have the view switch so you can
12267         insert the track in the middle of the playlist. Closes bug 323044.
12269         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12270         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12271         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12272         (rb_tree_dnd_add_drag_dest_support):
12273         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12274         timeout.
12276         * sources/rb-sourcelist-model.c:
12277         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12278         the source list.
12280 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12282         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12283         links, so that the text doesn't touch the button
12285 2005-12-02  James Livingston  <jrl@ids.org.au>
12287         Add full support for gnome-vfs remote files. Closes bug 140355.
12289         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12290         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12291         for authentication information from the user doesn't block the UI.
12293         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12295         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12296         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12297         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12298         (rhythmdb_process_stat_event), (emit_load_error_idle),
12299         (rhythmdb_process_metadata_load),
12300         (rhythmdb_process_queued_entry_set_event),
12301         (rhythmdb_process_file_created_or_modified),
12302         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12303         (queue_stat_uri), (add_thread_main),
12304         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12305         (rhythmdb_load), (rhythmdb_save_thread_main),
12306         (threadsafe_entry_set), (rhythmdb_query_internal),
12307         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12308         (rhythmdb_do_full_query_internal),
12309         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12310         (rhythmdb_volume_unmounted_cb),
12311         (rhythmdb_check_changed_file): trivial changes to support the
12312         asynchronous stats.
12314         * shell/main.c: (main): activate the authentication manager.
12316         * shell/rb-playlist-manager.c:
12317         (rb_playlist_manager_cmd_load_playlist),
12318         (rb_playlist_manager_cmd_save_playlist):
12319         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12320         (rb_shell_cmd_add_file_to_library):
12321         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12322         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12323         remote files.
12325 2005-12-02  James Livingston  <jrl@ids.org.au>
12327         * shell/rb-playlist-manager.c: makes playlist menu items use the
12328         elipses correctly. Fixes bug 322283.
12330 2005-12-02  James Livingston  <jrl@ids.org.au>
12332         * shell/rb-playlist-manager.c:
12333         (rb_playlist_manager_load_playlists): fix silly mistake
12335 2005-12-02  James Livingston  <jrl@ids.org.au>
12337         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12338         print out metadata-write unless --debug was passed.
12340         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12341         * shell/rb-playlist-manager.c:
12342         (rb_playlist_manager_load_playlists): block writes to disk if they are
12343         still being loaded.
12345 2005-12-02  James Livingston  <jrl@ids.org.au>
12347         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12348         ctrl-T, because Ctrl-D is used by "small mode"
12350 2005-12-02  James Livingston  <jrl@ids.org.au>
12352         * shell/rb-shell-preferences.c:
12353         (rb_shell_preferences_append_view_page):
12354         * sources/rb-library-source.c: (impl_get_config_widget):
12355         * sources/rb-podcast-source.c: (impl_get_config_widget):
12356         * sources/rb-source.c: (rb_source_get_config_widget):
12357         * sources/rb-source.h: Make the preference actually work.
12359         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12360         if Rhythmbox is being run for the first time.
12362 2005-12-02  James Livingston  <jrl@ids.org.au>
12364         Add support for Rhythmbox to watch your library, and automatically add
12365         new tracks. Fixes bug 160159.
12367         * data/glade/library-prefs.glade: add "library location" preference
12368         * data/rhythmbox.schemas: add gconf key for the library location
12370         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12371         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12372         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12373         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12374         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12375         (rhythmdb_load_thread_main), (rhythmdb_load),
12376         (monitor_subdirectory), (monitor_library_directory),
12377         (monitor_entry_file), (rhythmdb_sync_library_location),
12378         (library_location_changed_cb), (rhythmdb_check_changed_file),
12379         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12380         specifiec in the gconf key for new additions. Also fix monitoring code
12381         so that it works properly, and notices deletions.
12383         * lib/rb-preferences.h:
12384         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12385         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12386         * shell/rb-audioscrobbler.h:
12387         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12388         (rb_shell_preferences_append_view_page),
12389         (rb_shell_preferences_new):
12390         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12391         it's preferences pane, so that we don't need #ifdef's through
12392         rb-shell-preferences.
12394         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12395         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12396         "preferences" property, so that sources can acccess it. This is needed
12397         because the library location pref needs to take effect when the window
12398         is closed.
12400         * sources/rb-library-source.c:
12401         (rb_library_source_library_location_changed),
12402         (rb_library_source_dispose), (rb_library_source_finalize),
12403         (rb_library_source_constructor), (impl_get_config_widget),
12404         (rb_library_source_preferences_sync),
12405         (rb_library_source_process_library_location_change),
12406         (rb_library_source_prefs_update),
12407         (rb_library_source_process_library_handle_selection),
12408         (rb_library_source_library_location_cb): set up and control the
12409         "library location" preference.
12411         * sources/rb-audiocd-source.c:(rb_source_class_init):
12412         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12413         code.
12415 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12417         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12418         (rb_feed_podcast_properties_dialog_update_title): 
12419         * data/glade/podcast-feed-properties.glade:
12420         Make the feed properties dialog consistent with the podcast
12421         properties dialog.
12423 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12425         * metadata/.cvsignore: 
12426         * po/.cvsignore: 
12427         * podcast/.cvsignore: Updated.
12429         * shell/main.c (main): Support DBus 0.6 flags.
12431 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12433         * data/ui/rhythmbox-ui.xml:
12434         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12435         (rhythmbd_entry_move_to_trash_set_error),
12436         (rhythmdb_entry_move_to_trash):
12437         * rhythmdb/rhythmdb.h:
12438         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12439         (rb_shell_clipboard_cmd_delete),
12440         (rb_shell_clipboard_cmd_move_to_trash):
12441         * sources/rb-library-source.c: (rb_library_source_class_init),
12442         (impl_delete), (impl_move_to_trash):
12443         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12444         (impl_delete), (impl_move_to_trash):
12445         * sources/rb-removable-media-source.c:
12446         (rb_removable_media_source_class_init):
12447         * sources/rb-source.c: (rb_source_class_init),
12448         (rb_source_can_move_to_trash), (rb_source_delete),
12449         (rb_source_move_to_trash):
12450         * sources/rb-source.h:
12451         Add move_to_trash member for the sources, implement move to trash for
12452         the library and playlists
12453         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12454         local files to the trash, and deleting them from the database
12455         (Closes: #315389)
12457 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12459         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12460         (rb_tray_icon_init, rb_tray_icon_finalize): 
12461         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12462         (rb_statusbar_init, rb_statusbar_finalize): 
12463         * shell/rb-source-header.c (rb_source_header_class_init) 
12464         (rb_source_header_init, rb_source_header_finalize): 
12465         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12466         (rb_shell_finalize): 
12467         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12468         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12469         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12470         (rb_shell_player_init, rb_shell_player_finalize): 
12471         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12472         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12473         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12474         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12475         * shell/rb-play-order.c (rb_play_order_class_init) 
12476         (rb_play_order_init, rb_play_order_finalize): 
12477         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12478         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12479         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12480         (rb_random_play_order_init, rb_random_play_order_finalize): 
12481         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12482         (rb_history_finalize): 
12483         * shell/rb-commander.c (rb_commander_class_init) 
12484         (rb_commander_init, rb_commander_finalize): 
12485         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12486         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12487         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12488         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12489         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12490         (rb_podcast_properties_dialog_init) 
12491         (rb_podcast_properties_dialog_finalize): 
12492         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12493         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12494         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12495         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12496         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12497         (rb_feed_podcast_properties_dialog_init) 
12498         (rb_feed_podcast_properties_dialog_finalize): 
12499         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12500         (rb_metadata_init, rb_metadata_finalize): 
12501         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12502         (rb_station_properties_dialog_init) 
12503         (rb_station_properties_dialog_finalize): 
12504         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12505         (rb_daap_share_init, rb_daap_share_dispose): 
12507         Use g_type_class_add_private in all classes. Closes bug 313688.
12508         
12509 2005-11-30  James Livingston  <jrl@ids.org.au>
12511         patch by: William Jon McCann <mccann@jhu.edu> to use
12512         g_type_class_add_private in all classes. Closes bug 313688.
12514         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12515         (rb_thread_finalize):
12516         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12517         (rb_player_finalize):
12518         * rhythmdb/rhythmdb-property-model.c:
12519         (rhythmdb_property_model_class_init),
12520         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12521         * rhythmdb/rhythmdb-query-model.c:
12522         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12523         (rhythmdb_query_model_finalize):
12524         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12525         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12526         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12527         (rhythmdb_finalize):
12528         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12529         (rb_daap_source_init), (rb_daap_source_dispose):
12530         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12531         (rb_iradio_source_init), (rb_iradio_source_finalize):
12532         * sources/rb-library-source.c: (rb_library_source_class_init),
12533         (rb_library_source_init), (rb_library_source_finalize):
12534         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12535         (rb_playlist_source_init), (rb_playlist_source_dispose):
12536         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12537         (rb_podcast_source_init), (rb_podcast_source_finalize):
12538         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12539         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12540         * sources/rb-sourcelist-model.h:
12541         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12542         (rb_sourcelist_init), (rb_sourcelist_finalize):
12543         * sources/rb-sourcelist.h:
12544         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12545         * widgets/rb-cell-renderer-rating.c:
12546         (rb_cell_renderer_rating_init),
12547         (rb_cell_renderer_rating_class_init),
12548         (rb_cell_renderer_rating_finalize):
12549         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12550         (rb_druid_finalize):
12551         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12552         (rb_entry_view_init), (rb_entry_view_finalize):
12553         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12554         (rb_header_finalize):
12555         * widgets/rb-load-failure-dialog.c:
12556         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12557         (rb_load_failure_dialog_finalize):
12558         * widgets/rb-property-view.c: (rb_property_view_class_init),
12559         (rb_property_view_init), (rb_property_view_finalize):
12560         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12561         (rb_rating_finalize):
12562         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12563         (rb_search_entry_init), (rb_search_entry_finalize):
12564         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12565         (rb_simple_view_init), (rb_simple_view_finalize):
12566         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12567         (rb_song_display_box_init), (rb_song_display_box_finalize):
12568         * widgets/rb-song-info.c: (rb_song_info_class_init),
12569         (rb_song_info_init), (rb_song_info_finalize):
12570         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12571         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12573 2005-11-30  James Livingston  <jrl@ids.org.au>
12575         * iradio/rb-station-properties-dialog.c:
12576         (rb_station_properties_dialog_init),
12577         (rb_station_properties_dialog_new):
12578         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12579         * lib/rb-glade-helpers.h:
12580         * podcast/rb-feed-podcast-properties-dialog.c:
12581         (rb_feed_podcast_properties_dialog_init),
12582         (rb_feed_podcast_properties_dialog_new):
12583         * podcast/rb-podcast-properties-dialog.c:
12584         (rb_podcast_properties_dialog_init),
12585         (rb_podcast_properties_dialog_new):
12586         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12587         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12588         * sources/rb-library-source.c: (impl_get_config_widget):
12589         * sources/rb-playlist-source-recorder.c:
12590         (rb_playlist_source_recorder_init):
12591         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12592         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12593         in rb-glade-helpers, rather than having eight implementation
12594         throughout the code.
12596 2005-11-30  James Livingston  <jrl@ids.org.au>
12598         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12599         * lib/rb-util.h:
12600         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12601         move the duration->string function into rb-utils, as it gets used in a
12602         few places.
12604         patch by: William Jon McCann <mccann@jhu.edu>
12606         * data/glade/podcast-properties.glade:
12607         * podcast/rb-podcast-properties-dialog.c:
12608         (rb_podcast_properties_dialog_init),
12609         (rb_podcast_properties_dialog_update),
12610         (rb_podcast_properties_dialog_update_title),
12611         (rb_podcast_properties_dialog_update_feed),
12612         (rb_podcast_properties_dialog_update_duration),
12613         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12614         info dialog look more like the song info dialog. Use the same "Feed"
12615         value that is displayed in the treeview (ie. the album field), displays
12616         the duration, uses units in the bitrate field, and sort the fields in
12617         the same order.
12619 2005-11-29  James Livingston  <jrl@ids.org.au>
12621         * rhythmdb/rhythmdb-marshal.list:
12622         * rhythmdb/rhythmdb.h:
12623         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12624         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12625         (entry_to_rb_metadata), (emit_save_error_idle),
12626         (action_thread_main): emit error signal when metadata write fails.
12628         * shell/rb-shell.c: (rb_shell_constructor),
12629         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12630         "metadata save" error and display it to the user.
12632 2005-11-29  James Livingston  <jrl@ids.org.au>
12634         * data/ui/rhythmbox-ui.xml:
12635         * sources/rb-podcast-source.c:
12636         (rb_podcast_source_songs_show_popup_cb),
12637         (rb_podcast_source_cmd_download_post),
12638         (rb_podcast_source_cmd_cancel_download): split download and cancel
12639         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12640         321653.
12642 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12644         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12645         title on alert dialogs per the HIG.
12647         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12648         the term Burn.
12649         (free_song_list): Routine to free song list.
12650         (rb_playlist_source_recorder_finalize): Use free_song_list.
12651         (rb_playlist_source_recorder_add_from_model): Return FALSE
12652         if unable to add all songs.  Check that duration of all
12653         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12654         Fixes #321753.
12656         * sources/rb-playlist-source-recorder.c (check_media_length)
12657         (rb_playlist_source_recorder_start): Only check the duration
12658         and current media if the playlist length is longer than a
12659         standard CD (74 min).  Otherwise, just let the Recorder do the
12660         check.
12661         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12662         drive at init.
12663         (rb_recorder_set_device): Don't leak drives.
12664         (rb_recorder_get_media_length): Use drive that was already set.
12665         (rb_recorder_burn): Let the recorder handle checking media type/size.
12666         Fixes bug 321754.
12668 2005-11-29  James Livingston  <jrl@ids.org.au>
12670         * rhythmdb/rhythmdb-query-model.c:
12671         (rhythmdb_query_model_set_sort_order):
12672         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12673         emitting the tree-model "resorted" signal.
12675         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12676         (rb_entry_view_finalize), (rb_entry_view_set_property),
12677         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12678         * widgets/rb-entry-view.h: add a function to resort the entry view,
12679         using the above function.
12681         * sources/rb-iradio-source.c:
12682         (rb_iradio_source_songs_view_sort_order_changed_cb):
12683         * sources/rb-library-source.c: (rb_library_source_finalize),
12684         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12685         * sources/rb-playlist-source.c:
12686         (rb_playlist_source_songs_sort_order_changed_cb):
12687         * sources/rb-podcast-source.c:
12688         (rb_podcast_source_posts_view_sort_order_changed_cb),
12689         (rb_podcast_source_do_query): use the above function instead of
12690         re-creating the query model. This makes changing the sorting an order
12691         of magnitude faster, as it uses a single resorted signal rather than
12692         deleting and re-adding everything (which emits 2N signals). Closes bug
12693         315389.
12695 2005-11-29  James Livingston  <jrl@ids.org.au>
12697         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12698         autosizing, which results in large speedups. Closes bug 312122.
12700         * po/ja.po: change the date format, so that it is a constant width
12702         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12703         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12704         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12705         (rb_entry_view_constructor): make columns use fixed widths,
12706         disable column autosizing, and enable fixed-height mode.
12708         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12709         (rb_entry_view_get_time_date_column_sample):
12710         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12711         and get the canonical date format for the locale.
12713 ============ Version 0.9.2
12715 2005-11-28  James Livingston  <jrl@ids.org.au>
12717         * configure.ac: bump version to 0.9.2
12718         * NEWS: update with changes for 0.9.2
12720 2005-11-28  James Livingston  <jrl@ids.org.au>
12722         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12724         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12725         Disable saving, renaming and delting for DAAP playlists.
12726         Fixes bug 322627.
12728 2005-11-28  James Livingston  <jrl@ids.org.au>
12730         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12731         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12732         prevent bug 322619.
12734         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12735         * sources/rb-removable-media-source.c:
12736         (rb_removable_media_source_class_init): fix ipod browser visibility
12737         problem.
12739 2005-11-28  James Livingston  <jrl@ids.org.au>
12741         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12742         Avahi 0.6 support actually work. Fixes bug 322519.
12744 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12746         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12747         avahi is specified in --with-mdns
12749 2005-11-27  James Livingston  <jrl@ids.org.au>
12751         patch by: Bastien Nocera <hadess@hadess.net>
12753         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12754         not the private one. Fixes bug 322485.
12756 2005-11-26  James Livingston  <jrl@ids.org.au>
12758         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12759         Avahi 0.6, as well as 0.5.
12761         * configure.ac:
12762         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12763         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12764         (add_service):
12766 2005-11-25  James Livingston  <jrl@ids.org.au>
12768         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12769         321926.
12771 2005-11-25  James Livingston  <jrl@ids.org.au>
12773         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12774         correct type for checking the date against 0. Stops a warning when
12775         saving metadata.
12777 2005-11-25  James Livingston  <jrl@ids.org.au>
12779         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12780         adjustment to be inside the element's limits. Without this songs that
12781         have large ReplayGain values will recieve no increase because they are
12782         outside the acceptable range, causing them to remain quiet.
12784 2005-11-25  James Livingston  <jrl@ids.org.au>
12786         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12787         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12788         * sources/rb-ipod-source.c:
12789         * sources/rb-source.h:
12790         * sources/rb-library-source.h:
12791         * sources/rb-library-source.c: (rb_library_source_class_init),
12792         (rb_library_source_constructor),
12793         (rb_library_source_has_first_added_column),
12794         (rb_library_source_has_drop_support):
12795         * sources/rb-removable-media-source.c:
12796         (rb_removable_media_source_class_init): Make library-derived sources
12797         not show the Date Added column, as it doesn't make sense. Fixes bug
12798         322269.
12799         Move some of the feature funcs from the ipod and audio cd sources up to
12800         the removable media source.
12802 2005-11-24  James Livingston  <jrl@ids.org.au>
12804         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12805         errors. oops.
12807 2005-11-24  James Livingston  <jrl@ids.org.au>
12809         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12810         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12811         (rb_iradio_source_constructor): Chain up dispose method and use
12812         G_DEFINE_TYPE
12814 2005-11-24  James Livingston  <jrl@ids.org.au>
12816         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12817         mistake in the last commit that can cause crashes.
12819 2005-11-24  James Livingston  <jrl@ids.org.au>
12821         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12822         instead of g_printerr.
12824         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12825         rb_debug instead of g_warning. The message happens every time for
12826         removable media/daap shares, so it's not unusual.
12828 2005-11-24  James Livingston  <jrl@ids.org.au>
12830         patch by: Tom Parker <palfrey@tevp.net>
12832         * configure.ac: fix libsoup test for enabling daap
12834 2005-11-23  James Livingston  <jrl@ids.org.au>
12836         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12837         (rb_query_creator_init), (rb_query_creator_constructor),
12838         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12839         empty row to queries with no criteria. Fixes bug 322078. use
12840         G_DEFINE_TYPE.
12842 2005-11-23  James Livingston  <jrl@ids.org.au>
12844         patch by:  <baptiste.millemathias@gmail.com>
12846         * help/C/quick-reference.xml: update the quick reference to have the
12847         correct key bindings.
12849 2005-11-22  James Livingston  <jrl@ids.org.au>
12851         * sources/rb-library-source.c: (genres_selection_reset_cb),
12852         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12853         reset the query when all browser selections are removed.
12855 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12857         * podcast/rb-podcast-manager.c:
12858         (rb_podcast_manager_db_entry_deleted_cb):
12859         Use a custom loop to remove podcast posts, rather than
12860         gtk_tree_model_foreach(), as deleting the entries within
12861         that loop causes the iterator to return the first entry
12862         twice.  Instead, we need to find the next entry before
12863         removing the current one. Fixes bug 321956.
12864         (rb_podcast_manager_entry_remove_cb): No longer needed.
12866 2005-11-22  James Livingston  <jrl@ids.org.au>
12868         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12869         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12870         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12872 2005-11-22  James Livingston  <jrl@ids.org.au>
12874         * sources/rb-podcast-source.c:
12875         (rb_podcast_source_post_date_cell_sort_func),
12876         (rb_podcast_source_post_status_cell_sort_func),
12877         (rb_podcast_source_post_feed_cell_sort_func):
12878         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12879         (rb_entry_view_album_sort_func),
12880         (rb_entry_view_double_ceiling_sort_func),
12881         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12882         the entry's location as a last resort when sorting, so the sort order
12883         is stable. This will stop entries moving around when two entries have
12884         the same sorting, and one of them gets played.
12886 2005-11-22  James Livingston  <jrl@ids.org.au>
12888         * daapsharing/rb-daap-connection.c:
12889         (rb_daap_connection_class_init), (rb_daap_connection_init),
12890         (connection_get_password), (build_message),
12891         (http_response_handler), (http_get), (handle_server_info),
12892         (handle_login), (handle_update), (handle_database_info),
12893         (handle_song_listing), (handle_playlists),
12894         (handle_playlist_entries), (rb_daap_connection_new),
12895         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12896         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12897         (rb_daap_connection_get_headers),
12898         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12899         (rb_daap_connection_set_property),
12900         (rb_daap_connection_get_property):
12901         * daapsharing/rb-daap-connection.h:
12902         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12903         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12904         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12905         of destroying the object when it is going to be used by a callback and
12906         fixes a double-free. Fixes bugs 321930 and 322007.
12908 2005-11-22  James Livingston  <jrl@ids.org.au>
12910         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12911         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12912         notification if there aren't any. Fixes bug 321968.
12914 2005-11-22  James Livingston  <jrl@ids.org.au>
12916         * rhythmdb/rhythmdb-property-model.c:
12917         (rhythmdb_property_model_set_property),
12918         (rhythmdb_property_model_finalize),
12919         (rhythmdb_property_model_compare),
12920         (rhythmdb_property_model_insert),
12921         (rhythmdb_property_model_delete_prop): Fix property model sorting
12922         where the display and sort keys are different. Fixes bug 321980.
12924 2005-11-22  James Livingston  <jrl@ids.org.au>
12926         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12927         when import as a file or passed on the command line, and load them as
12928         playlists.
12930 2005-11-22  James Livingston  <jrl@ids.org.au>
12932         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12934         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12935         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12936         a broken daap server. Fixes bug 321919.
12938 2005-11-22  James Livingston  <jrl@ids.org.au>
12940         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12941         drag-and-drop for both the episodes and feeds list.
12942         
12943         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12944         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12945         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12947         * widgets/rb-property-view.c: (rb_property_view_class_init),
12948         (rb_property_view_set_property), (rb_property_view_get_property),
12949         (rb_property_view_new), (rb_property_view_constructor):
12950         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12951         (rb_simple_view_new), (rb_simple_view_constructor):
12952         * widgets/rb-simple-view.h: add a "draggable" property to property
12953         views and set it to false for the feed list. Fixes bug 321284.
12955 2005-11-22  James Livingston  <jrl@ids.org.au>
12957         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12959         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12960         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12961         * sources/rb-ipod-source.c: (add_rb_playlist):
12962         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12963         (rb_playlist_source_set_property),
12964         (rb_playlist_source_get_property), (rb_playlist_source_new),
12965         (impl_receive_drag), (rb_playlist_source_add_location),
12966         (rb_playlist_source_new_from_xml):
12967         * sources/rb-playlist-source.h: give playlists and (optional)
12968         entry-type, and reject entries that don't match. Fixes bug 322006.
12970 2005-11-21  James Livingston  <jrl@ids.org.au>
12972         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12973         (rb_source_header_finalize): remove the weak references when the
12974         source header is finalised. Stops the callbacks being called after the
12975         object is destroyed.
12977 2005-11-21  James Livingston  <jrl@ids.org.au>
12979         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12980         --no-registration was passed. It causes warnings that make it
12981         impossible to run with --no-registration --g-fatal-warnings
12983 2005-11-21  James Livingston  <jrl@ids.org.au>
12985         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12986         of strings when they are still in use. Fixes bug 321547.
12988         (rb_daap_connection_destroy): fix memory leak
12990 2005-11-21  James Livingston  <jrl@ids.org.au>
12992         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12993         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12994         (rb_daap_mdns_resolve_cancel), (publish_cb),
12995         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12996         support.
12998 2005-11-21  James Livingston  <jrl@ids.org.au>
13000         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13001         sorting by genre
13003 2005-11-20  James Livingston  <jrl@ids.org.au>
13005         * podcast/rb-podcast-manager.c:
13006         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13007         that we don't leak thread structures. Fixes bug 321636, and probably
13008         321775.
13010 2005-11-20  James Livingston  <jrl@ids.org.au>
13012         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13013         (lookup_cd):
13014         * podcast/rb-podcast-manager.c: (start_job),
13015         (rb_podcast_manager_db_entry_deleted_cb),
13016         (rb_podcast_manager_entry_remove_cb):
13017         * podcast/rb-podcast-parse.c: (rb_insert_item),
13018         (rb_podcast_parse_load_feed):
13019         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13020         * shell/rb-removable-media-manager.c:
13021         (rb_removable_media_manager_append_media_source):
13022         * shell/rb-shell.c: (add_to_library_response_cb):
13023         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13024         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13025         * sources/rb-iradio-source.c:
13026         (stations_view_drag_data_received_cb):
13027         * sources/rb-library-source.c: (string_list_equal),
13028         (impl_get_extra_views), (impl_receive_drag):
13029         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13030         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13031         (impl_receive_drag):
13032         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13033         (rb_entry_view_append_column_custom), (harvest_entries):
13034         * widgets/rb-property-view.c:
13035         (rb_property_view_selection_changed_cb):
13036         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13037         switch from using g_list_append to g_list_prepend. This changes
13038         operations from O(n^2) to O(n), which in cases like deleting a lot of
13039         tracks can give huge improvements in speed. Closes bug 321696.
13041 2005-11-20  James Livingston  <jrl@ids.org.au>
13043         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13044         (rb_sourcelist_update_expander_visibility): fix indenting of child
13045         sources.
13047 2005-11-20  James Livingston  <jrl@ids.org.au>
13049         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13050         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13051         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13052         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13053         (add_service), (entry_group_cb): dynamically allocate memory, rather
13054         than using static variables.
13056         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13057         re-enable the daap share if the name hasn't changed.
13058         * shell/rb-shell-preferences.c:
13059         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13060         change it's name when the checkbox is disabled. Fixed bug 321748.
13062 2005-11-18  James Livingston  <jrl@ids.org.au>
13064         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13065         as hidden if it is on the current workspace.
13067 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13069         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13070         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13071         (rb_podcast_properties_dialog_parse_time): 
13072         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13073         (rb_feed_podcast_properties_dialog_parse_time):
13074         Rework the way the last mod time strings are created.  It was using
13075         thread unsafe functions, not creating value UTF, and not not checking
13076         the value of the result before modifying it.  This new method fixes
13077         these problems.
13079 2005-11-18  James Livingston  <jrl@ids.org.au>
13081         Don't reset the search box when viewing a different source, because it
13082         will change what is being played. Closes 321593.
13084         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13085         the search box
13087         * shell/rb-source-header.c: (rb_source_header_class_init),
13088         (rb_source_header_init), (rb_source_header_finalize): use
13089         G_DEFINE_TYPE.
13091         (rb_source_header_set_property),
13092         (rb_source_header_source_weak_destroy_cb),
13093         (rb_source_header_search_cb): store the search text when leaving a
13094         source and put it in the search box when viewing it again.
13096 2005-11-18  James Livingston  <jrl@ids.org.au>
13098         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13099         (save_entry):
13100         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13101         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13102         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13103         time stamp.
13105         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13106         last-seen as the timestamp of the last update of the feed. Don't
13107         re-add episodes that have been deleted. Closes 319759.
13109 2005-11-18  James Livingston  <jrl@ids.org.au>
13111         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13112         that don't have the day name at the start. Closes 321645.
13114 2005-11-18  James Livingston  <jrl@ids.org.au>
13116         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13117         (rb_podcast_manager_copy_post),
13118         (rb_podcast_manager_get_podcast_dir):
13119         * podcast/rb-podcast-manager.h:
13120         * sources/rb-podcast-source.c: (impl_get_config_widget),
13121         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13122         download location switching to / if the prefs were opened before
13123         downloading an episode. Closes 321611.
13125 2005-11-18  James Livingston  <jrl@ids.org.au>
13127         * data/glade/podcast-new.glade:
13128         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13129         (rb_new_podcast_dialog_set_property),
13130         (rb_new_podcast_dialog_get_property),
13131         (rb_new_podcast_dialog_response_cb),
13132         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13133         for entering new podcast urls in. Closes bug 321610.
13135 2005-11-18  James Livingston  <jrl@ids.org.au>
13137         * sources/rb-podcast-source.c: (construct_query_from_selection),
13138         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13139         without restarting RB. Closes bug 321612.
13141 2005-11-18  James Livingston  <jrl@ids.org.au>
13143         * widgets/rb-entry-view.c: (set_column_visibility),
13144         (rb_entry_view_sync_columns_visible): when changing visibility of one
13145         column, don't hide and re-show all the others. Makes a show/hide
13146         column operation a lot faster.
13148 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13150         Closes bug 321702.
13152         * iradio/rb-station-properties-dialog.c
13153          (rb_station_properties_dialog_update_bitrate):
13154         Mark the bitrate value as being kbps, using the same
13155         translatable format string as rb-song-info.c
13157         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13158          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13160         * shell/rb-shell-player.c (info_available_cb):
13161          Use RB_METADATA_FIELD_BITRATE to update the iradio
13162          station's bitrate value.
13164 2005-11-17  James Livingston  <jrl@ids.org.au>
13166         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13168         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13169         free a NULL date.
13171 2005-11-17  James Livingston  <jrl@ids.org.au>
13173         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13175         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13176         assertions. Lookup the icon size correctly.
13178 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13180         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13181         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13182         Fix build errors.
13184 2005-11-16  James Livingston  <jrl@ids.org.au>
13186         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13187         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13188         (rb_shell_preferences_sync_column_button): block the toggle signal of
13189         the column checkboxes while setting their initial state. This stops
13190         the visibility being re-set, which causes a lot of time being spent
13191         measuring the columns aagin when opening the prefs window.
13193         Use G_DEFINE_TYPE.
13195 2005-11-16  James Livingston  <jrl@ids.org.au>
13197         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13198         (rb_sourcelist_edit_source_name): don't assume that the editable
13199         source name is in the first column, because it isn't. Fixes bug
13200         320137.
13202 2005-11-16  James Livingston  <jrl@ids.org.au>
13204         * daapsharing/rb-daap-mdns.h:
13205         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13206         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13207         parts can know why operations failed. Avahi can report that the daemon
13208         was not running. Howl doesn't do this (yet).
13209         
13210         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13211         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13212         (browse_cb): don't display mdns errors to the user, if it wa because
13213         the daemon was not running.
13215 2005-11-16  James Livingston  <jrl@ids.org.au>
13217         * rhythmdb/rhythmdb-property-model.c:
13218         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13219         (rhythmdb_property_model_compare),
13220         (rhythmdb_property_model_insert),
13221         (rhythmdb_property_model_insert_prop),
13222         (rhythmdb_property_model_delete),
13223         (rhythmdb_property_model_delete_prop),
13224         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13225         copying the string and re-creating the sort key. Saves a little bit of
13226         memory and time.
13228         (rhythmdb_property_model_perform_sync),
13229         (rhythmdb_property_model_sync): perform the count sync in an idle
13230         callback, so that it doesn't have to be re-run once per value when
13231         loading.
13233 2005-11-16  James Livingston  <jrl@ids.org.au>
13235         * rhythmdb/rhythmdb-query-model.c:
13236         (rhythmdb_query_model_entry_deleted_cb),
13237         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13238         limited list. Stops problems if they are deleted, and then things on
13239         the main list are
13241 2005-11-16  James Livingston  <jrl@ids.org.au>
13243         * NEWS: update NEWS
13245         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13246         button's minimise-to-tray action
13248 2005-11-16  James Livingston  <jrl@ids.org.au>
13250         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13251         leak. Disable adding newly created files for now, because it doesn't
13252         work properly.
13254         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13255         (rb_sourcelist_model_finalize):
13256         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13257         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13259 2005-11-16  James Livingston  <jrl@ids.org.au>
13261         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13262         problem where a GError* wasn't being set to NULL. Actually check the
13263         result.
13265 2005-11-16  James Livingston  <jrl@ids.org.au>
13267         * doc/reference/tmpl/rb-entry-view.sgml:
13268         * doc/reference/tmpl/rhythmbox-unused.sgml:
13269         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13270         * doc/reference/tmpl/rhythmdb.sgml:
13271         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13272         docs, including the patch that was on bug 
13274         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13275         API, because it should only be used by RhythmDB itself.
13277 2005-11-16  James Livingston  <jrl@ids.org.au>
13279         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13280         pausing by middle clicking on the tray icon.
13282 2005-11-15  James Livingston  <jrl@ids.org.au>
13284         * configure.ac: enable audioscrobbler support by default, if libsoup
13285         is present.
13287 2005-11-15  James Livingston  <jrl@ids.org.au>
13289         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13290         Closes bug 321157.
13292         * configure.ac:
13293         * daapsharing/rb-daap-connection.c: (build_message),
13294         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13295         support gzip encoded daap connections.
13297         (handle_song_listing): fix leak
13299 2005-11-15  James Livingston  <jrl@ids.org.au>
13301         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13302         * sources/rb-podcast-source.c:
13303         (rb_podcast_source_post_date_cell_data_func): make the date format
13304         translatable again, so that translators can choose the best format for
13305         their locale (%x is huge in some locales)
13307 2005-11-15  James Livingston  <jrl@ids.org.au>
13309         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13310         (end_job): mark podcast episodes as failed, if the metadata load
13311         fails. This will prevent people playing non-audio enclosures, helping
13312         stop bug 320366.
13314 2005-11-14  James Livingston  <jrl@ids.org.au>
13316         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13317         video sink to fakesink. This will stop problems (potentially crashers)
13318         that will occur if the file contains a video stream.
13320         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13321         rather than using magic numbers everywhere.
13323         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13324         * sources/rb-podcast-source.c:
13325         (rb_podcast_source_songs_show_popup_cb),
13326         (rb_podcast_source_cmd_download_post),
13327         (rb_podcast_source_post_status_cell_data_func),
13328         (rb_podcast_source_entry_activated_cb): use the above constants.
13330         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13331         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13332         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13333         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13334         (cancel_job), (download_progress_cb),
13335         (rb_podcast_manager_cancel_download),
13336         (rb_podcast_manager_insert_feed): use the constants, and fix a
13337         trhead-safety issue.
13339 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13341         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13342         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13343         entry-changed events after stats on startup, fixes entry deleted from
13344         filtered views not disappearing
13346 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13348         Fix rhythmdb query model refcount and polling problems. Closes bug
13349         321410.
13351         * rhythmdb/rhythmdb-property-model.c:
13352         (rhythmdb_property_model_finalize):
13353          Unref the query model if we have one.
13355         * rhythmdb/rhythmdb-query-model.h:
13356          Remove poll and cancel methods.  Query cancellation
13357          never did anything anyway.
13359         * rhythmdb/rhythmdb-query-model.c:
13360         (rhythmdb_query_model_init): Remove GAsyncQueues.
13361          Replace the GAsyncQueue-based update processing
13362          with a simpler g_idle_add approach; still has the
13363          same queueing properties, but now we don't poll the
13364          model forever and updates are processed immediately.
13366         (_unref_entry), (rhythmdb_query_model_finalize):
13367          Unref DB entries when finalized
13369         (rhythmdb_query_model_has_pending_changes):
13370          Use our own counter to decide if there are updates pending
13372         (rhythmdb_query_model_process_update), (idle_process_update):
13373          Process updates using g_idle_add, or directly if possible
13375         (rhythmdb_query_model_signal_complete),
13376         (rhythmdb_query_model_add_entries):
13377          Change to new update processing method
13379         (idle_poll_model), (rhythmdb_query_model_poll):
13380          Remove GAsyncQueue-based update processing.
13382         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13383          No need to poll the model any more - updates are processed
13384          directly for synchronous queries.
13386         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13387          Property model needs to be unref'd here
13389         * sources/rb-library-source.c: (rb_library_source_do_query):
13390          Don't try to cancel the active query (it never worked anyway),
13391          remove obsolete poll call, unref property models as required,
13392          and don't unref the cached 'all' query, since hold on to it.
13393          We unref it when the sort order changes, which forces the query
13394          to be rerun.
13396         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13397          Unref the property model as required
13399         (rb_podcast_source_do_query):
13400          Treat any query with no selected feeds and no search text as
13401          an 'all' query.  Unref query models except for the cached
13402          'all' query, since we hold on to that.
13404         (rb_podcast_source_cmd_update_all):
13405          Unref the property model as required.
13407         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13408          Don't try to cancel the query (it never worked anyway)
13410         (rb_entry_view_poll_model):
13411          No need for this any more.
13413         * widgets/rb-entry-view.h:
13414          Remove obsolete function rb_entry_view_poll_model
13416         * widgets/rb-property-view.c: (rb_property_view_set_property):
13417          Ref and unref the property model as required.
13419 2005-11-14  James Livingston  <jrl@ids.org.au>
13421         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13423         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13424         for error. Closes bug 321416.
13426 2005-11-14  James Livingston  <jrl@ids.org.au>
13428         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13430         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13431         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13433 2005-11-14  James Livingston  <jrl@ids.org.au>
13435         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13436         * shell/rb-removable-media-manager.c:
13437         (rb_removable_media_manager_set_uimanager):
13438         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13439         translation domain for GTK action groups.
13441 2005-11-12  James Livingston  <jrl@ids.org.au>
13443         * po/POTFILES.in: remove the old station-new files
13445 2005-11-12  James Livingston  <jrl@ids.org.au>
13447         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13448         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13449         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13450         when upgrading from a pre-Date-supporting version to a version that
13451         supports Date metadata. Closes bug 320760.
13453 2005-11-12  James Livingston  <jrl@ids.org.au>
13455         Add "update all podcast feeds" command. Closes bug 319954.
13457         * data/ui/rhythmbox-ui.xml: add to source context menu.
13459         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13460         (register_action_group), (rb_podcast_source_cmd_download_post),
13461         (rb_podcast_source_cmd_delete_feed),
13462         (rb_podcast_source_cmd_properties_feed),
13463         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13464         rather than the shell.
13466         (rb_podcast_source_update_feed_func),
13467         (rb_podcast_source_cmd_update_all): update every feed.
13469 2005-11-11  James Livingston  <jrl@ids.org.au>
13471         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13472         (rb_shell_player_constructor), (rb_shell_player_finalize):
13473         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13474         others follow the HIG recommentations.
13476 2005-11-11  James Livingston  <jrl@ids.org.au>
13478         * podcast/rb-podcast-manager.c:
13479         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13480         before trying to use it.
13482 2005-11-11  James Livingston  <jrl@ids.org.au>
13484         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13485         (rb_entry_view_append_column): When sorting by year, sort by album
13486         within a particular year.
13488 2005-11-11  James Livingston  <jrl@ids.org.au>
13490         * NEWS: updates
13492 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13493         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13494         spelling of "Language."
13496 2005-11-11  James Livingston  <jrl@ids.org.au>
13498         * rhythmdb/rhythmdb-property-model.c:
13499         (rhythmdb_property_model_row_inserted_cb),
13500         (rhythmdb_property_model_prop_changed_cb),
13501         (rhythmdb_property_model_entry_removed_cb),
13502         (rhythmdb_property_model_insert_prop),
13503         (rhythmdb_property_model_sync): display the count after the "All"
13504         entry of a property model.
13506         * widgets/rb-property-view.c: (rb_property_view_class_init),
13507         (rb_property_view_finalize), (rb_property_view_constructor): use
13508         G_DEFINE_TYPE
13510 2005-11-10  James Livingston  <jrl@ids.org.au>
13512         * rhythmdb/rhythmdb-query-model.c:
13513         (rhythmdb_query_model_remove_entry):
13514         * rhythmdb/rhythmdb-query-model.h: make
13515         rhythmdb_query_model_remove_entry return whether the entry was in the
13516         model.
13518         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13519         don't add non-SONG entries, as it doesn't really work and can cause
13520         crashes.
13522         (rb_playlist_source_remove_location): assert if the playlist and model
13523         differ on whether the entry is in the playlist
13525 2005-11-10  James Livingston  <jrl@ids.org.au>
13527         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13528         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13529         (rb_podcast_manager_thread_parse_feed),
13530         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13531         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13532         emulating one with a list and mutex. Fixes a couple of threading
13533         issues.
13534         
13535         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13536         updated feeds.
13537         
13538         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13539         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13540         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13541         * podcast/rb-podcast-parse.c: (rb_insert_item),
13542         (rb_podcast_parse_channel_free):
13543         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13544         fix some typos, and make a bit of code clearer.
13546 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13548         Make the "delete podcast" dialog better. Closes bug 320899.
13550         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13551         Add PROP_WINDOW for rb_shell_get_property so we can access the
13552         GtkWindow widget of the main window. 
13553         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13554         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13555         podcast feed delete dialog less confusing as well.
13557 2005-11-09  James Livingston  <jrl@ids.org.au>
13559         * shell/rb-removable-media-manager.c:
13560         (rb_removable_media_manager_mount_volume),
13561         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13562         NULL for a cd volume.
13564 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13566         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13567         method return a gboolean indicating whether the changes
13568         to the entry have already been applied.
13570         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13571         only modify the entry if impl_entry_set returns FALSE.
13573         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13574         When setting the location of an entry, update the
13575         hash table mapping locations to entries.
13577 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13579         * data/glade/Makefile.am:
13580         * iradio/Makefile.am:
13581           Remove 'new station' dialog.
13583         * iradio/rb-station-properties-dialog.h:
13584         * sources/rb-iradio-source.c: (impl_song_properties):
13585         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13586          Add 'new station' mode parameter to
13587          rb_station_properties_dialog_new.
13589         * (rb_station_properties_dialog_response_cb),
13590         (rb_station_properties_dialog_create_station):
13591          When in 'new station' mode, create the station
13592          when OK button is pressed.
13594         * iradio/rb-station-properties-dialog.c:
13595         (rb_station_properties_dialog_location_changed_cb):
13596          Only enable OK button if a location is specified
13597         (rb_station_properties_dialog_init),
13598         (rb_station_properties_dialog_new),
13599         (rb_station_properties_dialog_update),
13600         (rb_station_properties_dialog_update_title),
13601         (rb_station_properties_dialog_rated_cb),
13602         (rb_station_properties_dialog_update_play_count),
13603         (rb_station_properties_dialog_update_bitrate),
13604         (rb_station_properties_dialog_update_last_played),
13605         (rb_station_properties_dialog_update_rating),
13606         (rb_station_properties_dialog_update_playback_error),
13607         (rb_station_properties_dialog_show):
13608          Handle 'new station' mode, where there's no current
13609          station to edit.
13611 2005-11-08  James Livingston  <jrl@ids.org.au>
13613         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13614         keybinding for track columns consistent between library and playlist
13615         sources.
13617 2005-11-07  James Livingston  <jrl@ids.org.au>
13619         * data/ui/rhythmbox-ui.xml:
13620         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13621         "Edit" item to playlist menu. Closes bug 311470.
13623 2005-11-07  James Livingston  <jrl@ids.org.au>
13625         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13627         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13628         confirmation to save dialogs, with gtk 2.8 or higher.
13630 2005-11-07 James Livingston  <jrl@ids.org.au>
13631         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13632         requirement to a general on, because people are going to have it for
13633         the other dependencies.
13635 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13637         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13638         delete dialog less confusing.  Use HIG recommended button order.
13639         Closes bug 320840.
13641 2005-11-06  James Livingston  <jrl@ids.org.au>
13643         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13644         drag-and-drop error.
13645         
13646         * sources/rb-library-source.c: (rb_library_source_constructor): only
13647         add drag-and-drop for the Library itself, subclasses can add support
13648         themselves if they want it.
13650         * sources/rb-removable-media-source.c:
13651         (rb_removable_media_source_class_init): by default removable media
13652         sources do not support dnd
13654 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13656         * data/glade/station-properties.glade:
13657          Add box containing error icon and error message label
13658         * iradio/rb-station-properties-dialog.c:
13659         (rb_station_properties_dialog_class_init),
13660         (rb_station_properties_dialog_finalize):
13661          Change this class to use G_DEFINE_TYPE
13662         (rb_station_properties_dialog_init),
13663         (rb_station_properties_dialog_update),
13664         (rb_station_properties_dialog_update_playback_error):
13665          Display error icon and message when there is one, and hide the error
13666          box otherwise.
13667         (rb_station_properties_dialog_show): Hack widget show
13668          method to update the visibility of the error info box when showing
13669          the widget.  Otherwise the icon is displayed all the time (same thing
13670          is done in rb-song-info). Closes bug 320749.
13672 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13674         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13675         parsing of the duration of podcast episodes from the feed. Closes bug
13676         320748.
13678 2005-11-05  James Livingston  <jrl@ids.org.au>
13680         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13681         release date metadata ("Year"). Closes bug 166093.
13683         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13684         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13685         (rb_metadata_gst_add_tag_data):
13686         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13687         (save_entry):
13688         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13689         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13690         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13691         (rhythmdb_prop_get_type):
13692         * rhythmdb/rhythmdb.h: add support for "date" property
13693         
13694         * data/glade/general-prefs.glade:
13695         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13696         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13697         (rb_entry_view_append_column):
13698         * widgets/rb-entry-view.h:
13699         * sources/rb-library-source.c: (rb_library_source_constructor):
13700         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13701         "Year" colums
13703         * data/glade/song-info.glade:
13704         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13705         (rb_song_info_construct_single), (rb_song_info_constructor),
13706         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13707         (rb_song_info_sync_entry_single): Add "Year" to song info window
13709         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13710         sorted by year.
13712 2005-11-05  James Livingston  <jrl@ids.org.au>
13714         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13715         description if it's very long.
13717 2005-11-05  James Livingston  <jrl@ids.org.au>
13719         pathc by: Artem Baguinski <femistofel@gmail.com>
13721         * help/C/Makefile.am:
13722         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13723         Closes bug 320613.
13725 2005-11-05  James Livingston  <jrl@ids.org.au>
13727         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13729         * daapsharing/rb-daap-share.c: (write_next_chunk),
13730         (message_finished), (databases_cb): Use chunked file loading and
13731         sending in the DAAP server. This should reduce the amount of memory
13732         required to send files to the client.
13734 2005-11-05  James Livingston  <jrl@ids.org.au>
13736         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13737         work better on some systems. Closes 320622.
13739 2005-11-05  James Livingston  <jrl@ids.org.au>
13741         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13742         homepage, so that users can find out what AudioScrobbler is. Add
13743         access keys.
13745         * data/glade/daap-prefs.glade:
13746         * data/glade/general-prefs.glade:
13747         * data/glade/library-prefs.glade: make the indent be more consistent
13749         * data/glade/podcast-prefs.glade: 
13750         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13751         (impl_get_config_widget): move thing out of code into glade, where
13752         they belong
13754 2005-11-05  James Livingston  <jrl@ids.org.au>
13756         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13757         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13759 2005-11-04  James Livingston  <jrl@ids.org.au>
13761         * configure.ac: don't print DAAP configure info twice
13763 2005-11-04  James Livingston  <jrl@ids.org.au>
13765         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13766         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13767         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13768         #ifdefs, since we removed the symbol. Oops
13770 2005-11-04  James Livingston  <jrl@ids.org.au>
13772         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13773         after the connect line, not before. Oops.
13775 2005-11-04  James Livingston  <jrl@ids.org.au>
13777         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13778         fix some warnings
13780 2005-11-03  James Livingston  <jrl@ids.org.au>
13782         * NEWS: update the news file
13784         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13785         "duration" column.
13787         * data/ui/rhythmbox-ui.xml:
13788         * shell/rb-playlist-manager.c:
13789         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13790         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13791         and "delete" for feeds.
13793 2005-11-03  James Livingston  <jrl@ids.org.au>
13795         * sources/rb-podcast-source.c: (impl_delete),
13796         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13797         feed. Closes 319760.
13799 2005-11-03  James Livingston  <jrl@ids.org.au>
13801         Don't start playing from the remote site when a un-downloaded podcast
13802         is activated. Closes 319983.
13803         
13805         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13806         (write_job_data), (download_progress_cb): write the local location as
13807         soon as any data is recieved
13809         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13810         the mountpoint to NULL for podcast episodes that haven't yet been
13811         downloaded.
13812         
13813         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13814         start playing a podcast if it hasn't been downloaded.
13815         
13816         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13817         (rb_podcast_source_entry_activated_cb): begin downloading when the
13818         podcast is activated.
13820 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13822         * data/glade/general-prefs.glade:  Fix capitalization.
13823         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13824         * sources/rb-podcast-source.c:
13825         (rb_podcast_source_songs_show_popup_cb),
13826         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13828 2005-11-03  James Livingston  <jrl@ids.org.au>
13830         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13832         * shell/rb-removable-media-manager.c:
13833         (rb_removable_media_manager_mount_volume): don't check network or
13834         autofs mounts, as they're not going to be removable media. Stops
13835         sending lots of warnings to syslog. Closes 320571.
13837         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13838         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13839         320570.
13841 2005-11-03  James Livingston  <jrl@ids.org.au>
13843         Add support for playing audio CDs. Metadata lookup is done using
13844         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13845         the library when it gets broken out of S-J.
13846         
13847         Add a "rescan media" menu item, and commands for ejecting removable
13848         media.
13850         Move nautilus-cd-burner from optional to required depenency.
13852         * configure.ac:
13853         * data/ui/rhythmbox-ui.xml:
13854         * metadata/Makefile.am:
13855         + metadata/sj-error.c:
13856         + metadata/sj-error.h:
13857         + metadata/sj-metadata-marshal.list:
13858         + metadata/sj-metadata-musicbrainz.c:
13859         + metadata/sj-metadata-musicbrainz.h:
13860         + metadata/sj-metadata.c:
13861         + metadata/sj-metadata.h:
13862         + metadata/sj-structures.c:
13863         + metadata/sj-structures.h:
13864         * player/Makefile.am:
13865         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13866         * po/POTFILES.in:
13867         * shell/Makefile.am:
13868         * shell/rb-removable-media-manager.c:
13869         (rb_removable_media_manager_dispose), (poll_tray_opened),
13870         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13871         (rb_removable_media_manager_load_media),
13872         (rb_removable_media_manager_mount_volume),
13873         (rb_removable_media_manager_cmd_eject_medium),
13874         (rb_removable_media_manager_cmd_scan_media),
13875         (rb_removable_media_manager_check_volume),
13876         (rb_removable_media_manager_unmount_volume_swap),
13877         (rb_removable_media_manager_scan):
13878         * sources/Makefile.am:
13879         + sources/rb-audiocd-source.c:
13880         + sources/rb-audiocd-source.h:
13881         * tests/Makefile.am:
13883 2005-11-02  James Livingston  <jrl@ids.org.au>
13885         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13887         * sources/rb-iradio-source.c:
13888         (stations_view_drag_data_received_cb):
13889         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13890         don't crash when the second uri is missing frm the drop, which
13891         browsers sometimes do.
13893 2005-11-01  James Livingston  <jrl@ids.org.au>
13895         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13896         (rb_podcast_manager_insert_feed):
13897         * podcast/rb-podcast-manager.h:
13898         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13899         (rb_set_item_value), (rb_validate_item_propert),
13900         (rb_podcast_parse_date), (rb_podcast_parse_time):
13901         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13902         from the feed.
13904 2005-10-31  James Livingston  <jrl@ids.org.au>
13906         * ChangeLog:
13907         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13908         huge
13910 2005-10-31  James Livingston  <jrl@ids.org.au>
13912         * sources/rb-podcast-source.c:
13913         (rb_podcast_source_post_date_cell_data_func): generate the date string
13914         in a way that is correct in all locales.
13915         
13916         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13917         (rhythmdb_entry_sync_mirrored): make the last played/date added
13918         columns use the same format.
13920 2005-10-30  James Livingston  <jrl@ids.org.au>
13923         * podcast/rb-podcast-manager.c:
13924         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13925         
13926         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13927         iradio errors better.
13929 2005-10-30  James Livingston  <jrl@ids.org.au>
13931         patch by: Artem Baguinski <femistofel@gmail.com>
13933         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13935 2005-10-30  James Livingston  <jrl@ids.org.au>
13937         * podcast/rb-podcast-manager.c:
13938         (rb_podcast_manager_subscribe_feed),
13939         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13940         already been added, usually as a radio station. Closes 319434.
13942 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13944         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13945         mnemonics & resize issues)
13946         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13947         & mnemonics)
13948         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13949         widget for the "download location" label.
13951         Closes bug 320184.
13953 2005-10-29  James Livingston  <jrl@ids.org.au>
13955         Allow the search box to match words from multiple properties. Closes
13956         bug 139196. Thanks to the person from IRC who did a lot of the initial
13957         work.
13960         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13961         * lib/rb-util.h: Add functions to split a string into words, and one
13962         to perform "search folding" which is currently like casefolding but
13963         also strips punctuation
13964         
13965         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13966         (rhythmdb_query_preprocess):
13967         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13968         against title, artist, album and genre (for the search box)
13969         
13970         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13971         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13972         (save_entry), (search_match_properties),
13973         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13974         splitting into words and matching across multiple properties.
13975         
13976         * sources/rb-library-source.c: (construct_query_from_selection): use
13977         the new SEARCH_MATCH property for the search box
13978         
13979         * widgets/rb-entry-view.c: (type_ahead_search_func):
13981 2005-10-29  James Livingston  <jrl@ids.org.au>
13983         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13984         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13985         
13986         * shell/rb-playlist-manager.c:
13987         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13988         correctly.
13989         
13990         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13991         initial state of the shuffle/repeat menu items correctly. Patch from
13992         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13994 2005-10-29  James Livingston  <jrl@ids.org.au>
13996         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13997         double-free.
13998         
13999         * widgets/rb-cell-renderer-pixbuf.c:
14000         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14001         icon go black when row is not selected
14002         
14003         * doc/reference/tmpl/rb-daap-connection.sgml:
14004         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14006 2005-10-29  James Livingston  <jrl@ids.org.au>
14008         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14009         silly mistake, where it could think partial downloads has been
14010         completed.
14012 2005-10-29  James Livingston  <jrl@ids.org.au>
14014         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14016         * data/glade/song-info.glade:
14017         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14018         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14019         (rb_song_info_sync_entry_single): show the disc number in the song
14020         info window. From bug 311199.
14022 2005-10-29  James Livingston  <jrl@ids.org.au>
14024         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14025         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14026         regularly. Closes 155306.
14028 2005-10-29  James Livingston  <jrl@ids.org.au>
14030         * podcast/rb-podcast-manager.c:
14031         (rb_podcast_manager_download_entry),
14032         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14033         (rb_podcast_manager_insert_feed):
14034         * podcast/rb-podcast-manager.h:
14035         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14036         (rb_podcast_parser_start_element):
14037         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14038         don't download them again. However, it can't resume
14039         partially-downloaded ones.
14041 2005-10-28  James Livingston  <jrl@ids.org.au>
14043         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14044         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14045         work. Don't attempt to write duration as a tag.
14047         Thanks to Artem Baguinski <femistofel@gmail.com>
14049 2005-10-28  James Livingston  <jrl@ids.org.au>
14051         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14052         don't disable the status-bar menu item when the current source doesn't
14053         use the search box.
14055 2005-10-28  James Livingston  <jrl@ids.org.au>
14057         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14058         crash if the file has unknown length
14060 2005-10-27  James Livingston  <jrl@ids.org.au>
14062         * daapsharing/rb-daap-connection.c:
14063         (rb_daap_connection_state_done): don't assert when a daap server
14064         doesn't have any playlists
14066 2005-10-27  James Livingston  <jrl@ids.org.au>
14068         * sources/rb-sourcelist-model.c:
14069         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14070         source for the sourcelist. Closes bug 319817.
14072 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14074         Patch by: Renato Araujo <renatox@gmail.com>
14076         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14077           Fix for a crasher caused by previous patch.
14079 2005-10-26  James Livingston  <jrl@ids.org.au>
14081         * data/glade/podcast-prefs.glade:
14082         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14083         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14084         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14085         * podcast/rb-podcast-manager.c:
14086         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14087         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14088         * shell/rb-shell.c: Change some strings to make them more consistent.
14089         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14090         makes it clearer which is which. "Episode" may not be the best term,
14091         but it seems to be widely used.
14092         
14093         Also fix some strings that weren't marked as translatable.
14094         
14095         * podcast/rb-feed-podcast-properties-dialog.c:
14096         (rb_feed_podcast_properties_dialog_class_init),
14097         (rb_feed_podcast_properties_dialog_finalize):
14098         * podcast/rb-new-podcast-dialog.c:
14099         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14100         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14101         (rb_simple_view_finalize), (rb_simple_view_constructor):
14102         * podcast/rb-podcast-properties-dialog.c:
14103         (rb_podcast_properties_dialog_class_init),
14104         (rb_podcast_properties_dialog_finalize):
14105         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14106         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14107         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14108         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14109         use G_DEFINE_TYPE, instead of doing it manually.
14111 2005-10-26  James Livingston  <jrl@ids.org.au>
14113         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14114         <jrl@ids.org.au>
14116         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14117         (rb_metadata_init): Check that the necessary plugins are present to do
14118         id3 editing.
14119         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14120         corrupted before replacing the original.
14122 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14124         reviewed by: James Livingston <jrl@ids.org.au>
14126         Assign sequential IDs to playlists for DAAP rather than using the
14127         address of the playlist object.  Less flaky, and should work on 64bit
14128         platforms. Closes bug 319304.
14130         * daapsharing/rb-daap-share.c: 
14131         (rb_daap_share_set_property): watch for playlist creation
14132         (_find_by_id), (_find_by_source): playlist list search functions
14133         (rb_daap_share_playlist_created),
14134         (rb_daap_share_process_playlist),
14135         (rb_daap_share_playlist_destroyed):
14136          update playlist list as it changes, use weak refs on 
14137          playlists to get notified on destroy.
14138         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14139          destroy playlist list on shutdown
14140         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14141          DAAP response
14142         (databases_cb): search for playlist ID in list rather than just
14143          converting it to a pointer; return HTTP 404 if playlist not 
14144          found.
14145         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14146          is already used for the main library
14148 2005-10-26  James Livingston  <jrl@ids.org.au>
14150         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14152         * daapsharing/rb-daap-connection.c: (build_message),
14153         (http_response_handler), (http_get), (handle_server_info),
14154         (handle_login), (handle_update), (handle_database_info),
14155         (handle_song_listing), (handle_playlists),
14156         (handle_playlist_entries), (handle_logout),
14157         (rb_daap_connection_new), (rb_daap_connection_logout),
14158         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14159         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14160         * daapsharing/rb-daap-connection.h:
14161         * sources/rb-daap-source.c: (rb_daap_source_activate),
14162         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14163         (rb_daap_source_disconnect): Make connecting to DAAP sources
14164         asynchronous, so that non-responsive servers don't hang the UI. Closes
14165         316225.
14167 2005-10-26  James Livingston  <jrl@ids.org.au>
14169         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14171         * rhythmdb/rhythmdb-query-model.c:
14172         (rhythmdb_query_model_do_reorder): generate the row re-order map
14173         correctly.
14174         
14175         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14176         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14177         Update selection when rows get re-ordered. Closes 319718.
14179 2005-10-26  James Livingston  <jrl@ids.org.au>
14181         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14183         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14184         actually set the db pointer in play orders. Closes 319818.
14186 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14188         Patch by: Renato Araujo <renatox@gmail.com>
14190         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14191         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14192         (rb_podcast_manager_update_synctime),
14193         (rb_podcast_manager_config_changed),
14194         (rb_podcast_manager_insert_feed):
14195         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14196         (save_entry):
14197         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14198         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14199         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14201 2005-10-25  James Livingston  <jrl@ids.org.au>
14203         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14204         (db_entry_deleted_cb): don't share tracks that are hidden because the
14205         file is missing.
14207 2005-10-22  James Livingston  <jrl@ids.org.au>
14209         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14210         crash if an entry couldn't be playerd, without streamer setting an
14211         error.
14213         
14214         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14216         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14217         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14218         is pasted into the dialog.
14219         
14220         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14221         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14222         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14223         (rb_podcast_parse_channel_free):
14224         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14225         feeds
14227 2005-10-22  James Livingston  <jrl@ids.org.au>
14229         * sources/rb-iradio-source.c:
14230         (rb_iradio_source_first_time_changed): Make merging the default
14231         stations actually work.
14232         
14233         * sources/rb-podcast-source.c:
14234         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14235         people weren't seing the percentages in the stats column.
14237 2005-10-21  James Livingston  <jrl@ids.org.au>
14239         Patch from Caio Marcelo <cmarcelo@gmail.com>
14241         * shell/rb-shell.c: (rb_shell_window_state_cb),
14242         (rb_shell_get_visibility), (idle_hide_mainwindow),
14243         (rb_shell_set_visibility): Make the "show window" item in the tray
14244         icon menu show the toggle state correctly. Use a better policy on
14245         deciding whether the window is "visible" or not. Closes bug 308053.
14247 2005-10-21  James Livingston  <jrl@ids.org.au>
14249         * doc/reference/tmpl/rb-shell-preferences.sgml:
14250         * shell/Makefile.am: fix building with gtk-doc
14252         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14253         don't submit podcasts to audioscrobbler
14254         
14255         
14256         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14257         
14258         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14259         (rb_set_item_value): strip spaces surrounding podcast urls
14260         
14262         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14263         
14264         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14266 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14268         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14269          Audioscrobbler/Last.fm support
14271         * configure.ac:
14272         * data/glade/Makefile.am:
14273         * data/glade/audioscrobbler-prefs.glade:
14274         * data/rhythmbox.schemas:
14275         * lib/Makefile.am:
14276         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14277         * lib/md5.h:
14278         * lib/rb-preferences.h:
14279         * po/POTFILES.in:
14280         * shell/Makefile.am:
14281         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14282         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14283         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14284         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14285         (rb_audioscrobbler_timeout_cb), (mkmd5),
14286         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14287         (rb_audioscrobbler_do_handshake),
14288         (rb_audioscrobbler_do_handshake_cb),
14289         (rb_audioscrobbler_submit_queue),
14290         (rb_audioscrobbler_submit_queue_cb),
14291         (rb_audioscrobbler_import_settings),
14292         (rb_audioscrobbler_preferences_sync),
14293         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14294         (rb_audioscrobbler_gconf_changed_cb),
14295         (rb_audioscrobbler_song_changed_cb),
14296         (rb_audioscrobbler_username_entry_changed_cb),
14297         (rb_audioscrobbler_username_entry_activate_cb),
14298         (rb_audioscrobbler_password_entry_changed_cb),
14299         (rb_audioscrobbler_password_entry_activate_cb),
14300         (rb_audioscrobbler_enabled_check_changed_cb),
14301         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14302         (rb_audioscrobbler_load_entry_from_string),
14303         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14304         (rb_audioscrobbler_print_queue),
14305         (rb_audioscrobbler_free_queue_entries):
14306         * shell/rb-audioscrobbler.h:
14307         * shell/rb-shell-preferences.c:
14308         (rb_shell_preferences_append_audioscrobbler_config):
14309         * shell/rb-shell-preferences.h:
14310         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14311         (rb_shell_select_source), (rb_shell_cmd_preferences):
14312         * sources/Makefile.am:
14314 2005-10-21  James Livingston  <jrl@ids.org.au>
14316         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14318         * Makefile.am:
14319         * NEWS:
14320         * configure.ac:
14321         * data/art/Makefile.am:
14322         * data/glade/Makefile.am:
14323         * data/rhythmbox.schemas:
14324         * data/ui/rhythmbox-ui.xml:
14325         * doc/reference/Makefile.am:
14326         * doc/reference/tmpl/rhythmdb.sgml:
14327         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14328         * lib/rb-stock-icons.h:
14329         * po/POTFILES.in:
14330         * podcast/Makefile.am:
14331         + podcast/rb-feed-podcast-properties-dialog.c:
14332         + podcast/rb-feed-podcast-properties-dialog.h:
14333         + podcast/rb-new-podcast-dialog.c:
14334         + podcast/rb-new-podcast-dialog.h:
14335         + podcast/rb-podcast-manager.c:
14336         + podcast/rb-podcast-manager.h:
14337         + podcast/rb-podcast-marshal.list:
14338         + podcast/rb-podcast-parse.c:
14339         + podcast/rb-podcast-parse.h:
14340         + podcast/rb-podcast-properties-dialog.c:
14341         + podcast/rb-podcast-properties-dialog.h:
14342         * rhythmdb/rhythmdb-property-model.c:
14343         (rhythmdb_property_model_set_property),
14344         (rhythmdb_property_model_enable_drag):
14345         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14346         (rhythmdb_tree_parser_end_element), (save_entry),
14347         (rhythmdb_tree_save):
14348         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14349         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14350         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14351         (rhythmdb_entry_podcast_feed_get_type):
14352         * rhythmdb/rhythmdb.h:
14353         * shell/Makefile.am:
14354         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14355         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14356         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14357         (rb_shell_quit):
14358         * sources/Makefile.am:
14359         + sources/rb-podcast-source.c:
14360         + sources/rb-podcast-source.h:
14361         * widgets/Makefile.am:
14362         * widgets/rb-property-view.c: (rb_property_view_class_init),
14363         (rb_property_view_constructor),
14364         (rb_property_view_selection_changed_cb),
14365         (rb_property_view_get_treeview):
14366         * widgets/rb-property-view.h:
14367         + widgets/rb-simple-view.c:
14368         + widgets/rb-simple-view.h:
14370 2005-10-20  James Livingston  <jrl@ids.org.au>
14372         * NEWS: update with changes since 0.9.1
14374         * configure.ac: check whether collate_key_for_filename is available
14375         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14376         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14377         it if it isn't available in glib (i.e. building against 2.6)
14378         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14379         collation to get "natural sorting". Closes bug 158599.
14381 2005-10-20  James Livingston  <jrl@ids.org.au>
14383         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14385         * doc/reference/tmpl/rb-shell-player.sgml:
14386         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14387         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14388         (rb_shell_player_get_playing),
14389         (rb_shell_player_get_playing_time_string),
14390         (rb_shell_player_get_playing_time),
14391         (rb_shell_player_set_playing_time), (tick_cb),
14392         (rb_shell_player_get_playing_path), (filter_mmkeys):
14393         * shell/rb-shell-player.h:
14394         * shell/rb-shell-player.xml:
14395         * shell/rb-shell.c: (rb_shell_constructor),
14396         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14397         (rb_shell_set_window_title), (rb_shell_playing_impl),
14398         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14399         Merge the duration_changed and elapsed_changed DBUS signals into one
14400         elapsed_changed signal. Check that the output argument isn't NULL
14401         before trying to put things in it.
14403 2005-10-20  James Livingston  <jrl@ids.org.au>
14405         * rhythmdb/rhythmdb-query-model.c:
14406         (rhythmdb_query_model_entry_added_cb),
14407         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14408         problem where hidden entries could be shown in playlists.
14409         
14410         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14411         issues when switching in and out of small mode.
14413 2005-10-19  James Livingston  <jrl@ids.org.au>
14415         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14416         (rb_shell_constructor), (rb_shell_window_state_cb),
14417         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14418         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14419         (rb_shell_view_smalldisplay_changed_cb),
14420         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14421         (rb_shell_sync_paned): remove gconf window-state races, prevent
14422         changing small mode too often, fix window event races. Closes 122806.
14424         
14425         Patch from Caio Marcelo <cmarcelo@gmail.com>
14427         * data/rhythmbox.schemas:
14428         * shell/rb-shell.c: (rb_shell_window_state_cb),
14429         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14430         Remember the position of the window. Closes 315289.
14432 2005-10-19  James Livingston  <jrl@ids.org.au>
14434         Patch from Christophe Fergeau  <teuf@gnome.org>
14436         * configure.ac: determine whether libgpod is present when neither
14437         --with-ipod nor --without-ipod is passed
14439 2005-10-19  James Livingston  <jrl@ids.org.au>
14441         Patch from Caio Marcelo <cmarcelo@gmail.com>
14443         * shell/rb-shell-player.c: (do_next_idle),
14444         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14445         (rb_shell_player_do_previous_or_seek),
14446         (rb_shell_player_previous_button_cb),
14447         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14448         (rb_shell_player_cmd_next), (eos_cb):
14449         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14450         end of the playlist is reached.
14452 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14454         * lib/rb-thread.c: fix a few GSource leaks
14456 2005-10-19  James Livingston  <jrl@ids.org.au>
14458         * doc/reference/tmpl/bacon-volume.sgml:
14459         * doc/reference/tmpl/disclosure-widget.sgml:
14460         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14461         * doc/reference/tmpl/eggnotificationbubble.sgml:
14462         * doc/reference/tmpl/eggtrayicon.sgml:
14463         * doc/reference/tmpl/gsequence.sgml:
14464         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14465         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14466         * doc/reference/tmpl/rb-daap-connection.sgml:
14467         * doc/reference/tmpl/rb-daap-dialog.sgml:
14468         * doc/reference/tmpl/rb-daap-mdns.sgml:
14469         * doc/reference/tmpl/rb-daap-share.sgml:
14470         * doc/reference/tmpl/rb-daap-sharing.sgml:
14471         * doc/reference/tmpl/rb-daap-source.sgml:
14472         * doc/reference/tmpl/rb-daap-src.sgml:
14473         * doc/reference/tmpl/rb-daap-structure.sgml:
14474         * doc/reference/tmpl/rb-debug.sgml:
14475         * doc/reference/tmpl/rb-dialog.sgml:
14476         * doc/reference/tmpl/rb-druid.sgml:
14477         * doc/reference/tmpl/rb-entry-view.sgml:
14478         * doc/reference/tmpl/rb-enums.sgml:
14479         * doc/reference/tmpl/rb-file-helpers.sgml:
14480         * doc/reference/tmpl/rb-glade-helpers.sgml:
14481         * doc/reference/tmpl/rb-header.sgml:
14482         * doc/reference/tmpl/rb-history.sgml:
14483         * doc/reference/tmpl/rb-ipod-source.sgml:
14484         * doc/reference/tmpl/rb-iradio-source.sgml:
14485         * doc/reference/tmpl/rb-library-source.sgml:
14486         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14487         * doc/reference/tmpl/rb-metadata.sgml:
14488         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14489         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14490         * doc/reference/tmpl/rb-play-order-linear.sgml:
14491         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14492         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14493         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14494         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14495         * doc/reference/tmpl/rb-play-order-random.sgml:
14496         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14497         * doc/reference/tmpl/rb-play-order.sgml:
14498         * doc/reference/tmpl/rb-player.sgml:
14499         * doc/reference/tmpl/rb-playlist-manager.sgml:
14500         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14501         * doc/reference/tmpl/rb-playlist-source.sgml:
14502         * doc/reference/tmpl/rb-preferences.sgml:
14503         * doc/reference/tmpl/rb-property-view.sgml:
14504         * doc/reference/tmpl/rb-query-creator-private.sgml:
14505         * doc/reference/tmpl/rb-query-creator.sgml:
14506         * doc/reference/tmpl/rb-rating-helper.sgml:
14507         * doc/reference/tmpl/rb-rating.sgml:
14508         * doc/reference/tmpl/rb-recorder.sgml:
14509         * doc/reference/tmpl/rb-refstring.sgml:
14510         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14511         * doc/reference/tmpl/rb-removable-media-source.sgml:
14512         * doc/reference/tmpl/rb-search-entry.sgml:
14513         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14514         * doc/reference/tmpl/rb-shell-glue.sgml:
14515         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14516         * doc/reference/tmpl/rb-shell-player.sgml:
14517         * doc/reference/tmpl/rb-shell-preferences.sgml:
14518         * doc/reference/tmpl/rb-shell.sgml:
14519         * doc/reference/tmpl/rb-song-display-box.sgml:
14520         * doc/reference/tmpl/rb-song-info.sgml:
14521         * doc/reference/tmpl/rb-source-header.sgml:
14522         * doc/reference/tmpl/rb-source.sgml:
14523         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14524         * doc/reference/tmpl/rb-sourcelist.sgml:
14525         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14526         * doc/reference/tmpl/rb-statusbar.sgml:
14527         * doc/reference/tmpl/rb-stock-icons.sgml:
14528         * doc/reference/tmpl/rb-string-helpers.sgml:
14529         * doc/reference/tmpl/rb-thread.sgml:
14530         * doc/reference/tmpl/rb-tray-icon.sgml:
14531         * doc/reference/tmpl/rb-tree-dnd.sgml:
14532         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14533         * doc/reference/tmpl/rb-util.sgml:
14534         * doc/reference/tmpl/rhythmbox-unused.sgml:
14535         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14536         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14537         * doc/reference/tmpl/rhythmdb-tree.sgml:
14538         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14539         
14540         * doc/reference/Makefile.am: make docs build with changed ipod support
14541         
14542         * po/POTFILES.in: remove sources/itunesdb
14544 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14546         * sources/itunesdb.c:
14547         * sources/itunesdb.h: removed now useless files
14549 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14551         * configure.ac:
14552         * shell/Makefile.am:
14553         * sources/Makefile.am:
14554         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14555         code
14556         [1]: http://www.gtkpod.org/libgpod.html
14559 2005-10-18  James Livingston  <jrl@ids.org.au>
14561         patch from Funda Wang <fundawang@linux.net.cn>
14563         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14564         the notification bubble string translatable.
14566 ============ Version 0.9.1
14568 2005-10-16  James Livingston  <jrl@ids.org.au>
14570         * configure.ac: bump version to 0.9.1
14571         * NEWS: update translation credits
14573 2005-10-16  James Livingston  <jrl@ids.org.au>
14575         * rhythmdb/rhythmdb-query-model.c:
14576         (rhythmdb_query_model_class_init),
14577         (rhythmdb_query_model_drag_data_received): 
14578         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14579         notified when things are dropped into the entry view.
14580         
14581         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14582         (rb_playlist_source_add_location_swapped),
14583         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14584         (rb_playlist_source_non_entry_dropped),
14585         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14586         things onto a playlist's entry view work correctly, and doesn't cause
14587         crashes. Allow folders to be dropped as well. (Closes 318308)
14589 2005-10-16  James Livingston  <jrl@ids.org.au>
14591         * NEWS: Update some more
14593         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14594         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14595         with the paned size, so that it doesn't move when the window is
14596         maximised/restored. Closes bug 315852.
14598         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14599         display the playcount column, as it's useless (it never get changed).
14601 2005-10-14  James Livingston  <jrl@ids.org.au>
14603         * Makefile.am:
14604         * data/Makefile.am:
14605         * doc/reference/Makefile.am: get "make distcheck" to pass again
14607 2005-10-11  James Livingston  <jrl@ids.org.au>
14609         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14610         destroy the connection when retrieving the playlists fails, because
14611         tracks have already been added. Closes 318380.
14613 2005-10-11  James Livingston  <jrl@ids.org.au>
14615         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14616         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14617         (source_name_edited_cb): Ask for the columns to be resized when a
14618         source is added, deleted or changes name.
14620 2005-10-11  James Livingston  <jrl@ids.org.au>
14622         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14623         create a thread when processing a directory. This stops up created one
14624         thread for each file in a playlist we're trying to load. Closes
14625         317850.
14627         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14628         typo that made sort-by-artist not work correctly.
14630 2005-10-11  James Livingston  <jrl@ids.org.au>
14632         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14633         support is enabled
14635 2005-10-11  James Livingston  <jrl@ids.org.au>
14637         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14638         * lib/rb-file-helpers.h: add a function to turn uris into our
14639         canonical path-escaped form
14640         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14641         above function when import playlists. This will fix the problem of
14642         duplicate entries due to different representations of the uri (bug
14643         158211).
14645 2005-10-11  James Livingston  <jrl@ids.org.au>
14647         * shell/rb-shell.c: (rb_shell_get_visibility),
14648         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14649         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14650         window hiding so that Alt-F4 works again.
14652         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14653         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14654         (rb_entry_view_string_sort_func): Stop some crashes where a string
14655         property was set to NULL.
14657 2005-10-10  James Livingston  <jrl@ids.org.au>
14659         * doc/reference/rhythmbox.types: fix gtk-doc generation
14661 2005-10-09  James Livingston  <jrl@ids.org.au>
14663         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14664         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14665         accelerators, so that we don't have as many conflicting keys.
14667 2005-10-08  James Livingston  <jrl@ids.org.au>
14669         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14670         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14671         bug 129285.
14673 2005-10-07  James Livingston  <jrl@ids.org.au>
14675         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14676         local path names in the same way as every other URI. This should stop
14677         duplicates occurring due to different escapings. Closes bug 158211.
14679 2005-10-06  James Livingston  <jrl@ids.org.au>
14681         * NEWS: more updates
14682         
14683         patch from Jaap Haitsma <jaap@haitsma.org>:
14685         * configure.ac:
14686         * data/Makefile.am:
14687         * data/art/Makefile.am:
14688         - data/art/rhythmbox-paused.png:
14689         - data/art/rhythmbox-playback-error.png:
14690         - data/art/rhythmbox-playing.png:
14691         - data/art-clearlooks/:
14692         * lib/rb-file-helpers.c: (rb_file):
14693         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14694         * lib/rb-stock-icons.h:
14695         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14696         * widgets/rb-cell-renderer-pixbuf.c:
14697         (rb_cell_renderer_pixbuf_render):
14698         * widgets/rb-entry-view.c: (rb_entry_view_init),
14699         (rb_entry_view_set_playing):
14700         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14701         stock icons instead of custom art. Drop remanents of art-clearlooks.
14703 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14705         * configure.ac: Added ne in ALL_LINGUAS
14707 2005-10-02  James Livingston  <jrl@ids.org.au>
14709         * data/glade/Makefile.am: actually install the daap prefs glade file
14711 2005-09-30  James Livingston  <jrl@ids.org.au>
14713         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14714         translatable files, so that make check works and we don't annoy the
14715         translators.
14716         
14717         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14718         sanity checking, in case a db entry is missing some properties.
14720 2005-09-29  James Livingston  <jrl@ids.org.au>
14722         - lib/rb-string-helpers.c:
14723         - lib/rb-string-helpers.h:
14724         * lib/Makefile.am:
14725         * rhythmdb/rhythmdb-tree.c:
14726         * rhythmdb/rhythmdb.c:
14727         * shell/main.c: (main):
14728         * shell/rb-shell.c:
14729         * widgets/rb-entry-view.c:
14730         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14731         utility functions haven't been used in a while.
14733 2005-09-27  James Livingston  <jrl@ids.org.au>
14735         * data/art-clearlooks/Makefile.am:
14736         - data/art-clearlooks/rhythmbox-album.png:
14737         - data/art-clearlooks/rhythmbox-audiocd.png:
14738         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14739         - data/art-clearlooks/rhythmbox-dnd.png:
14740         - data/art-clearlooks/rhythmbox-ipod.png:
14741         - data/art-clearlooks/rhythmbox-iradio.png:
14742         - data/art-clearlooks/rhythmbox-library.png:
14743         - data/art-clearlooks/rhythmbox-next.png:
14744         - data/art-clearlooks/rhythmbox-pause.png:
14745         - data/art-clearlooks/rhythmbox-play.png:
14746         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14747         - data/art-clearlooks/rhythmbox-playlist.png:
14748         - data/art-clearlooks/rhythmbox-previous.png:
14749         - data/art-clearlooks/rhythmbox-repeat.png:
14750         - data/art-clearlooks/rhythmbox-rewind.png:
14751         - data/art-clearlooks/rhythmbox-shuffle.png:
14752         - data/art-clearlooks/rhythmbox-stop.png:
14753         - data/art-clearlooks/rhythmbox-visuals.png:
14754         - data/art-clearlooks/rhythmbox-volume-max.png:
14755         - data/art-clearlooks/rhythmbox-volume-medium.png:
14756         - data/art-clearlooks/rhythmbox-volume-min.png:
14757         - data/art-clearlooks/rhythmbox-volume-mute.png:
14758         - data/art-clearlooks/rhythmbox-volume-zero.png:
14759         * data/art/Makefile.am:
14760         - data/art/rhythmbox-album.png:
14761         - data/art/rhythmbox-audiocd.png:
14762         - data/art/rhythmbox-automatic-playlist.png:
14763         - data/art/rhythmbox-dnd.png:
14764         - data/art/rhythmbox-ipod.png:
14765         - data/art/rhythmbox-iradio.png:
14766         - data/art/rhythmbox-library.png:
14767         - data/art/rhythmbox-next.png:
14768         - data/art/rhythmbox-pause.png:
14769         - data/art/rhythmbox-play.png:
14770         - data/art/rhythmbox-playlist-menu.png:
14771         - data/art/rhythmbox-playlist.png:
14772         - data/art/rhythmbox-previous.png:
14773         - data/art/rhythmbox-repeat.png:
14774         - data/art/rhythmbox-rewind.png:
14775         - data/art/rhythmbox-shuffle.png:
14776         - data/art/rhythmbox-stop.png:
14777         - data/art/rhythmbox-visuals.png:
14778         - data/art/rhythmbox-volume-max.png:
14779         - data/art/rhythmbox-volume-medium.png:
14780         - data/art/rhythmbox-volume-min.png:
14781         - data/art/rhythmbox-volume-mute.png:
14782         - data/art/rhythmbox-volume-zero.png:
14783         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14784         * lib/rb-stock-icons.h:
14785         * shell/rb-playlist-manager.c:
14786         * shell/rb-shell-player.c:
14787         * sources/rb-daap-source.c: (rb_daap_get_icon):
14788         * sources/rb-ipod-source.c:
14789         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14790         * sources/rb-library-source.c: (rb_library_source_new):
14791         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14792         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14793         that hasn't been used in a LONG time, and also remove art that are
14794         now stock icons.
14796 2005-09-27  James Livingston  <jrl@ids.org.au>
14798         * README: point to the gnome.org web sites, and update the example
14799         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14800         
14801         * rhythmdb/rhythmdb-query-model.c:
14802         (rhythmdb_query_model_set_property),
14803         (rhythmdb_query_model_get_property),
14804         (rhythmdb_query_model_finalize):
14805         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14806         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14807         * rhythmdb/rhythmdb.h:
14808         * sources/rb-iradio-source.c: (impl_search):
14809         * sources/rb-library-source.c: (impl_search): Add query
14810         "preprocessing", which performs operations such as casefolding any
14811         strings that will be compared to any of the *_FOLDED properties.
14812         Closes bug 316039
14814 2005-09-27  James Livingston  <jrl@ids.org.au>
14816         * data/glade/daap-prefs.glade:
14817         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14818         file for the daap preferences pane
14819         
14820         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14821         (rb_sourcelist_append), (rb_sourcelist_remove),
14822         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14823         don't display the column for source expanders unless there is an
14824         expandable source.
14826 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14828         * .cvsignore:
14829         * Makefile.am:
14830         * configure.ac:
14831         * doc/.cvsignore:
14832         * doc/Makefile.am:
14833         * doc/reference/.cvsignore:
14834         * doc/reference/Makefile.am:
14835         * doc/reference/rhythmbox-docs.sgml:
14836         * doc/reference/rhythmbox-sections.txt:
14837         * doc/reference/rhythmbox.types:
14838         * doc/reference/tmpl/bacon-volume.sgml:
14839         * doc/reference/tmpl/disclosure-widget.sgml:
14840         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14841         * doc/reference/tmpl/eggnotificationbubble.sgml:
14842         * doc/reference/tmpl/eggtrayicon.sgml:
14843         * doc/reference/tmpl/gsequence.sgml:
14844         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14845         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14846         * doc/reference/tmpl/rb-daap-connection.sgml:
14847         * doc/reference/tmpl/rb-daap-dialog.sgml:
14848         * doc/reference/tmpl/rb-daap-mdns.sgml:
14849         * doc/reference/tmpl/rb-daap-share.sgml:
14850         * doc/reference/tmpl/rb-daap-sharing.sgml:
14851         * doc/reference/tmpl/rb-daap-source.sgml:
14852         * doc/reference/tmpl/rb-daap-src.sgml:
14853         * doc/reference/tmpl/rb-daap-structure.sgml:
14854         * doc/reference/tmpl/rb-debug.sgml:
14855         * doc/reference/tmpl/rb-dialog.sgml:
14856         * doc/reference/tmpl/rb-druid.sgml:
14857         * doc/reference/tmpl/rb-entry-view.sgml:
14858         * doc/reference/tmpl/rb-enums.sgml:
14859         * doc/reference/tmpl/rb-file-helpers.sgml:
14860         * doc/reference/tmpl/rb-glade-helpers.sgml:
14861         * doc/reference/tmpl/rb-header.sgml:
14862         * doc/reference/tmpl/rb-history.sgml:
14863         * doc/reference/tmpl/rb-ipod-source.sgml:
14864         * doc/reference/tmpl/rb-iradio-source.sgml:
14865         * doc/reference/tmpl/rb-library-source.sgml:
14866         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14867         * doc/reference/tmpl/rb-metadata.sgml:
14868         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14869         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14870         * doc/reference/tmpl/rb-play-order-linear.sgml:
14871         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14872         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14873         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14874         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14875         * doc/reference/tmpl/rb-play-order-random.sgml:
14876         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14877         * doc/reference/tmpl/rb-play-order.sgml:
14878         * doc/reference/tmpl/rb-player.sgml:
14879         * doc/reference/tmpl/rb-playlist-manager.sgml:
14880         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14881         * doc/reference/tmpl/rb-playlist-source.sgml:
14882         * doc/reference/tmpl/rb-preferences.sgml:
14883         * doc/reference/tmpl/rb-property-view.sgml:
14884         * doc/reference/tmpl/rb-query-creator-private.sgml:
14885         * doc/reference/tmpl/rb-query-creator.sgml:
14886         * doc/reference/tmpl/rb-rating-helper.sgml:
14887         * doc/reference/tmpl/rb-rating.sgml:
14888         * doc/reference/tmpl/rb-recorder.sgml:
14889         * doc/reference/tmpl/rb-refstring.sgml:
14890         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14891         * doc/reference/tmpl/rb-removable-media-source.sgml:
14892         * doc/reference/tmpl/rb-search-entry.sgml:
14893         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14894         * doc/reference/tmpl/rb-shell-glue.sgml:
14895         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14896         * doc/reference/tmpl/rb-shell-player.sgml:
14897         * doc/reference/tmpl/rb-shell-preferences.sgml:
14898         * doc/reference/tmpl/rb-shell.sgml:
14899         * doc/reference/tmpl/rb-song-display-box.sgml:
14900         * doc/reference/tmpl/rb-song-info.sgml:
14901         * doc/reference/tmpl/rb-source-header.sgml:
14902         * doc/reference/tmpl/rb-source.sgml:
14903         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14904         * doc/reference/tmpl/rb-sourcelist.sgml:
14905         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14906         * doc/reference/tmpl/rb-statusbar.sgml:
14907         * doc/reference/tmpl/rb-stock-icons.sgml:
14908         * doc/reference/tmpl/rb-string-helpers.sgml:
14909         * doc/reference/tmpl/rb-thread.sgml:
14910         * doc/reference/tmpl/rb-tray-icon.sgml:
14911         * doc/reference/tmpl/rb-tree-dnd.sgml:
14912         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14913         * doc/reference/tmpl/rb-util.sgml:
14914         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14915         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14916         * doc/reference/tmpl/rhythmdb-tree.sgml:
14917         * doc/reference/tmpl/rhythmdb.sgml:
14918         * macros/.cvsignore:
14919         * shell/Makefile.am:
14920         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14921         (rb_source_finalize), (rb_source_set_property),
14922         (rb_source_get_property), (default_get_pixbuf),
14923         (_rb_source_show_popup):
14924         * sources/rb-source.h:
14925         Add support for gtk-doc in rhythmbox.
14926         Convert RBSource to use newer glib functions, such as add_private.
14927         Gives RBSource a default get_pixbuf implementation.
14929 2005-09-25  James Livingston  <jrl@ids.org.au>
14931         * NEWS: Update with about a months worth of changes
14933         * data/glade/song-info-multiple.glade:
14934         * data/glade/song-info.glade:
14935         * data/rhythmbox.schemas:
14936         * lib/rb-preferences.h:
14937         * rhythmdb/rhythmdb.h:
14938         * shell/rb-shell-player.c:
14939         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14940         few remaining parts of autorating.
14942 2005-09-24  James Livingston  <jrl@ids.org.au>
14944         * shell/rb-shell.c: (rb_shell_constructor),
14945         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14946         (rb_shell_window_configure_cb): store window state in the gconf keys,
14947         so that it gets used. Closes bugs 313893 and 137068.
14949 2005-09-20  James Livingston  <jrl@ids.org.au>
14951         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14952         crash if the entry has a NULL string in a property
14953         
14954         * shell/rb-removable-media-manager.c:
14955         (rb_removable_media_manager_load_media): fix some memory leaks
14956         
14957         (rb_removable_media_manager_mount_volume),
14958         (rb_removable_media_manager_eject_medium_cb),
14959         (rb_removable_media_manager_cmd_eject_medium): use
14960         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14961         
14962         * sources/rb-removable-media-source.c:
14963         (rb_removable_media_source_set_property),
14964         (rb_removable_media_source_get_property): use
14965         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14967 2005-09-18  James Livingston  <jrl@ids.org.au>
14969         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14970         column
14972         * data/glade/general-prefs.glade:
14973         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14974         (rb_shell_preferences_column_check_changed_cb),
14975         (rb_shell_preferences_sync): add checkbox to control visibility
14976         of the column
14977         
14978         
14979         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14980         (save_entry):
14981         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14982         (rhythmdb_prop_get_type):
14983         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14984         was as "last played" is handled
14985         
14986         * sources/rb-library-source.c: (rb_library_source_constructor):
14987         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14988         Make the column show in the library and playlists
14989         
14990         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14991         * widgets/rb-entry-view.h: add the column
14992         
14993         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14994         be sorted by the column
14996 2005-09-16  James Livingston  <jrl@ids.org.au>
14998         * shell/rb-shell-player.c: (rb_shell_player_init),
14999         (rb_shell_player_do_previous_or_seek),
15000         (rb_shell_player_previous_button_cb),
15001         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15002         (rb_shell_player_playpause_button_cb): Make the previous button act
15003         the same as the menu item. Fix an inversion of the "previous track or
15004         seek" logic.
15005         
15006         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15007         
15008         (rb_shell_player_playpause): make --play-pause stop source that can't
15009         be paused
15011 2005-09-15  James Livingston  <jrl@ids.org.au>
15013         * configure.ac: increase totem-plparser requirements to 1.1.5
15015         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15016         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15017         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15018         use the newer playlist APIs to save the name of the playlist, and use
15019         the name of a loaded playlist.
15021         Closes bug 309817.
15023 2005-09-15  James Livingston  <jrl@ids.org.au>
15025         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15027         * shell/Makefile.am: stop some linker warnings
15029         * shell/main.c: (main): make --no-registration work with dbus
15031 2005-09-15  James Livingston  <jrl@ids.org.au>
15033         * daapsharing/rb-daap-sharing.c: (create_share):
15034         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15035         reference sinking and counting issues that I caused.
15037 2005-09-15  James Livingston  <jrl@ids.org.au>
15039         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15040         playing" icon in the "now playing" column header.
15042 2005-09-14  James Livingston  <jrl@ids.org.au>
15044         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15045         daap shares, when sharing is turned off.
15047 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15049         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15050         the GConf value's default, especially for badly installed schema
15051         files
15053 2005-09-12  James Livingston  <jrl@ids.org.au>
15055         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15057         Patch from Paolo Borelli <pborelli@katamail.com>
15059         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15060         grip when maximised. Closes bug 316055.
15062 2005-09-11  James Livingston  <jrl@ids.org.au>
15064         Patch from William Jon McCann <mccann@jhu.edu>
15066         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15067         subclass of GtkStatusbar instead of GtkHBox.
15068         (rb_statusbar_construct): Don't set border width.
15069         (rb_statusbar_init): Use resize grip.  Don't use
15070         markup.
15071         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15072         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15073         Connect tooltips for actions.
15074         (rb_statusbar_sync_status): Push new message to statusbar.
15075         (rb_statusbar_set_progress): Don't use markup.
15076         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15077         flag here since it prevents actually showing or hiding.
15078         (rb_statusbar_sync_with_source): Push new message to statusbar.
15080 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15082         * daapsharing/rb-daap-structure.c:
15083         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15084         around debugging definition.
15086 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15087         
15088         * daapsharing/rb-daap-structure.c:
15089         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15090         type = version.
15092         * daapsharing/rb-daap-mdns.c/h:
15093         (resolve_cb): Updated mDNS resolve callback to send service-name &
15094         name (read from Machine Name in the TXT data or equal to service-name
15095         if not in TXT).
15097         * daapsharing/rb-daap-source.c:
15098         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15099         (rb_daap_source_get_property), (rb_daap_source_new),
15100         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15101         (stop_resolver), (start_browsing), (stop_browsing), 
15102         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15103         and added 'host' and 'port' gobject properties.  Updated to use new
15104         mDNS resolve callback sending service-name & name arguments.
15106 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15108         * daapsharing/rb-daap-mdns.c:
15109         (howl_strerror): New function to report errors from Howl
15110         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15111         (get_sw_discovery), (get_avahi_client): Better error reporting from
15112         Howl & Avahi.
15114         * sources/rb-daap-source.:
15115         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15116         not get started or stopped in some situations.
15117         
15118 2005-09-12  James Livingston  <jrl@ids.org.au>
15120         * shell/rb-removable-media-manager.c: add a missing include, that
15121         would stop compilation if ipod support wasn't turned on
15123 2005-09-11  James Livingston  <jrl@ids.org.au>
15125         * daapsharing/rb-daap-dialog.c: (encode_base64),
15126         (rb_daap_password_dialog_new_run),
15127         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15128         it is no broken in to two pieces, and remove a use of a goto
15129         
15130         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15131         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15132         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15133         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15134         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15135         memory leaks, and some code style things.
15136         
15137         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15138         (rb_daap_share_init), (rb_daap_share_set_property),
15139         (rb_daap_share_dispose), (rb_daap_share_new),
15140         (rb_daap_share_get_property): make the DB and the playlist manager
15141         gobject properties.
15142         
15143         (message_add_standard_headers),
15144         (message_set_from_rb_daap_structure), (server_info_cb),
15145         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15146         (server_cb), (add_db_entry), (db_entry_added_cb),
15147         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15148         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15149         style and use CONF_PREFIX in the gconf keys
15150         
15151         * daapsharing/rb-daap-sharing.c: (create_share),
15152         (enable_sharing_changed_cb), (share_name_changed_cb),
15153         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15154         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15155         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15156         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15157         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15158         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15159         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15160         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15161         hasn't actually changed, fix some memory leaks, code style and release
15162         gconf notifications when the object is destroyed.
15163         
15164         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15165         (rb_daap_source_class_init), (rb_daap_source_init),
15166         (rb_daap_source_dispose), (rb_daap_source_set_property),
15167         (rb_daap_source_get_property), (rb_daap_source_new),
15168         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15169         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15170         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15171         (rb_daap_source_activate), (rb_daap_source_disconnect),
15172         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15173         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15174         release gconf notifications, handle gconf callbacks where the key
15175         hasn't changed, make "real name" and "password protected" gobject
15176         properties, fix some code style and fix a memory leak.
15178 2005-09-11  James Livingston  <jrl@ids.org.au>
15180         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15182         * shell/rb-playlist-manager.c:
15183         (rb_playlist_manager_save_playlists),
15184         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15185         when we aren't supposed to. (Closes bug 315886)
15187 2005-09-11  James Livingston  <jrl@ids.org.au>
15189         * shell/rb-removable-media-manager.c:
15190         (rb_removable_media_manager_class_init),
15191         (rb_removable_media_manager_init),
15192         (rb_removable_media_manager_dispose),
15193         (rb_removable_media_manager_set_property),
15194         (rb_removable_media_manager_get_property),
15195         (rb_removable_media_manager_new),
15196         (rb_removable_media_manager_load_media),
15197         (rb_removable_media_manager_volume_mounted_cb),
15198         (rb_removable_media_manager_volume_unmounted_cb),
15199         (rb_removable_media_manager_mount_volume),
15200         (rb_removable_media_manager_unmount_volume),
15201         (rb_removable_media_manager_source_deleted_cb),
15202         (rb_removable_media_manager_append_media_source),
15203         (rb_removable_media_manager_set_uimanager),
15204         (rb_removable_media_manager_eject_medium_cb),
15205         (rb_removable_media_manager_cmd_eject_medium):
15206         * shell/rb-removable-media-manager.h:
15207         * sources/rb-removable-media-source.c:
15208         (rb_removable_media_source_class_init),
15209         (rb_removable_media_source_init),
15210         (rb_removable_media_source_dispose),
15211         (rb_removable_media_source_set_property),
15212         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15213         (impl_delete_thyself):
15214         * sources/rb-removable-media-source.h: Add the four files that I
15215         somehow managed not to add to cvs in the last commit. Oops.
15217 2005-09-11  James Livingston  <jrl@ids.org.au>
15219         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15220         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15221         
15222         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15223         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15224         removable-media-manager on startup, and handle creation of sources.
15225         
15226         * sources/rb-ipod-source.h:
15227         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15228         (rb_ipod_source_init), (rb_ipod_source_constructor),
15229         (rb_ipod_source_dispose), (rb_ipod_source_new),
15230         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15231         the iPod source over to the removable media framework.
15232         
15233         * sources/rb-library-source.c: (paned_size_allocate_cb),
15234         (rb_library_source_get_paned_key): fix a potential bug is a
15235         library-derived source doesn't have a paned-key
15237 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15239         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15240         mp3 when we can't get the suffix of a file (Closes: #315941)
15242 2005-09-10  James Livingston  <jrl@ids.org.au>
15244         * configure.ac: fix the mdns tests, so that it doesn't complain about
15245         not finding one, if daap support isn't being compiled in
15247 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15249         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15251         * daapsharing/rb-daap-dialog.c:
15252         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15253         HIG compliancy & images.
15255         * daapsharing/rb-daap-mdns.c:
15256         (browse_cb), (resolve_cb): Better detection of local services.  
15257         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15258         Howl's limitations.  Fix the way collision handling is done under
15259         Avahi.
15261         * daapsharing/rb-daap-share.c:
15262         (publish_cb): Better name collision handling (at least for Avahi).
15264 2005-09-10  James Livingston  <jrl@ids.org.au>
15266         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15267         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15268         preferences more HIG compliant (Closes #315889)
15269         
15270         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15271         list of files to be translated
15273 2005-09-10  James Livingston  <jrl@ids.org.au>
15275         * configure.ac: fix it so that --enable-daap=no works
15276         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15277         uninstalled
15279 2005-09-10  James Livingston  <jrl@ids.org.au>
15281         Patch from Christophe Fergeau <teuf@gnome.org>
15283         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15284         the ipod code.
15286 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15287         * README.daap: Updating documentation
15289 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15290         * AUTHORS: Added myself.
15292         * daapsharing/rb-daap-connection.c:
15293         (connection_login), (rb_connection_new): Reorganized password
15294         handling.
15296         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15298         * shell/rb-shell.c:
15299         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15301         * sources/rb-daap-source.c:
15302         (rb_daap_source_activate): Better error handling when we are unable to
15303         connect.
15304         
15305 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15306         * README.daap: Fixed some terminology.
15308         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15309         New --with-mdns=auto|howl|avahi flag to specify.
15311         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15312         name collision dialogs.
15314         * daapsharing/rb-daap-connection.c:
15315         (connection_get_password), (build_message), (http_get)
15316         (connection_login): Ask for & use a password if the share demands it.
15318         * daapsharing/rb-daap-connection.h: Changed prototype of
15319         rb_daap_connection_new.
15320         
15321         * daapsharing/rb-daap-mdns.c: 
15322         (resolve_cb): Better detection of your own music share so it doesn't 
15323         appear in the sourcelist.
15325         * daapsharing/rb-daap-share.c:
15326         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15327         that start on any available port.
15329         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15331         * sources/rb-daap-source.c:
15332         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15333         (browse_cb): Handle passworded shares. Resolve the host immediately
15334         instead of when activated.
15335         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15336         (rb_daap_source_new): New GConf keys for UI state.
15337         (rb_daap_source_activate): Use RBPlaylistSource instead of
15338         RBDAAPPlaylistSource
15339         
15340         * sources/rb-daap-playlist-source.c/h: Removed
15342         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15343         if the playlist is local (i.e. not DAAP or iPod).
15344         
15345         * shell/rb-playlist-manager.c:
15346         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15347         wouldn't get saved if the last playlist hadn't changed.  Only save
15348         local playlists.
15349         
15350 2005-09-09  James Livingston  <jrl@ids.org.au>
15352         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15353         iPod preferences pane, as it already uses the browser views as the
15354         library.
15356 2005-09-09  James Livingston  <jrl@ids.org.au>
15358         * sources/rb-library-source.c: (rb_library_source_finalize),
15359         (rb_library_source_constructor): fix gconf monitoring of library
15360         preference keys.
15361         * sources/rb-library-source.h: remove declaration of function that
15362         does not exist
15364 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15366         * player/rb-player-gst.c:
15367         (rb_player_set_time): Fix seeking in daap streams.
15369 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15371         * data/rhythmbox.schemas: Turn music share browsing on by default.
15373 2005-09-07  James Livingston  <jrl@ids.org.au>
15375         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15377 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15378         * player/rb-player-gst.c: 
15379         (rb_player_get_time): Fix for extra << & == that accidentally made
15380         it in.
15382         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15383         
15384 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15385         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15386         it in last time.  Sorry.
15388 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15389         
15390         * player/rb-player-gst.c:
15391         (rb_player_get_time): Fix a small crash appearing when
15392         the uri isn't set in the player, but rb_player_get_time() is
15393         still called.
15395         * configure.ac: Also check for libsoup 2.4, which is what ships with
15396         Gnome 2.12.
15398         * po/POTFILES.in: Added music sharing files that have translatable 
15399         strings.
15401         * README.daap: New file explaining "How Music Sharing Works"  
15403 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15405         * daapsharing/.cvsignore: added
15407 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15409         * daapsharing/*: Music sharing library.
15410         
15411         * sources/rb-daap-source.c/h: Music share RBSource.
15412         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15414         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15415         libsoup and a mutlicast DNS implementation (howl or avahi).
15417         * data/rhythmbox.schemas: New GConf keys for music sharing.
15419         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15420         source right click menu.
15422         * player/rb-player-gst.c: Changes to properly play & seek in remote
15423         music share files.
15425         * shell/rb-playlist-manager.c/h:
15426         (rb_playlist_manager_get_playlists): New function to get a GList * of
15427         the playlists.
15428         (rb_playlist_manager_save_playlists): Don't save music share playlists
15429         and fixed a GObject reference leak.
15431         * shell/rb-shell.c/h:
15432         (rb_shell_append_source): No longer a local function.  Now takes a
15433         parent RBSource * argument, NULL to append a toplevel source.
15434         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15435         source (useful for disconnecting from remote music share,
15436         specifically).
15437         (rb_shell_quit): Stop music sharing/browsing.
15438         (rb_shell_playlist_added_cb): Work with tree source structure.
15439         (rb_shell_get_property): "playlist-manager" property accessor.
15440         (rb_shell_class_init): New "playlist-manager" property.
15441         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15442         daap sharing/browsing.
15443         (rb_shell_select_source): Notify source of activation/deactivation.
15445         * shell/rb-shell-prefernces.c: Music sharing preferences.
15447         * sources/rb-source.c/h: New activate, deactivate and disconnect
15448         class functions.  Activate & deactivate are notification style 
15449         functions that will tell a source when it is selected/unselected.
15450         Disconnect can be hooked up to a UI object to disconnect the source.
15452         * sources/rb-sourcelist-model.c:
15453         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15454         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15455         append a toplevel source.
15457 2005-09-05  James Livingston  <jrl@ids.org.au>
15459         * rhythmdb/rhythmdb-query-model.c:
15460         (rhythmdb_query_model_entry_changed_cb),
15461         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15462         the duration of filesize of an entry changes.  Emit the row-changed
15463         signals that I forgot to put back in, when I was doing query sorting.
15465         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15466         out "0 minutes" or "0 bytes".
15468 2005-09-04  James Livingston  <jrl@ids.org.au>
15470         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15471         remove a leftover bit of the "internal-name" property of sources.
15473 2005-09-03  James Livingston  <jrl@ids.org.au>
15475         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15476         extraneous debug message
15477         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15478         crasher would affect any library-derived sources (which was also a
15479         memory leak).
15481 2005-09-02  Colin Walters  <walters@verbum.org>
15483         * configure.ac: Fix sytnax error.
15485         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15486         code to disable minimization icons - need to figure out
15487         why it doesn't work...
15489 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15491         * data/glade/song-info-multiple.glade:
15492         * data/glade/song-info.glade:
15493         * widgets/rb-song-info.c: (rb_song_info_constructor):
15494         Add a mnemonic to the newly added "Automatically rate" label
15495         in the properties dialog and use a bold typeface like all the 
15496         other labels in the dialog. (Closes bug 315089)
15498 2005-09-03  James Livingston  <jrl@ids.org.au>
15500         * sources/rb-library-source.c: (rb_library_source_class_init),
15501         (rb_library_source_finalize), (rb_library_source_constructor),
15502         (rb_library_source_set_property), (rb_library_source_get_property),
15503         (impl_get_paned_key), (paned_size_allocate_cb),
15504         (rb_library_source_state_prefs_sync), (impl_show_popup),
15505         (rb_library_source_get_paned_key):
15506         * sources/rb-library-source.h: Allow sources derived from
15507         RBLibrarySource to use different gconf keys for sort order, browser
15508         visibility and browser pane position. Fix a crasher if a derived
15509         source overrides _get_pixbuf.
15511 2005-09-02  Colin Walters  <walters@verbum.org>
15513         * shell/rb-shell.c (rb_shell_set_visibility): Move
15514         hint setting which seems to avoid races more.
15515         
15516 2005-09-03  James Livingston  <jrl@ids.org.au>
15518         * shell/rb-shell.c: fix compilation with iPod support enabled
15519         
15520 2005-09-02  Colin Walters  <walters@verbum.org>
15522         * shell/rb-shell.c (struct RBShellPrivate): Add
15523         idle_hide_mainwindow_id.
15524         (rb_shell_constructor): Move taskbar skipping hint into
15525         rb_shell_set_visibility.
15526         (idle_hide_mainwindow): New function.
15527         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15528         racy hack to avoid rb appearing in taskbar when minimized.
15530 2005-09-01  Colin Walters  <walters@verbum.org>
15532         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15534         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15535         from gtkstatusicion.c.
15537         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15539         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15540         TrayShowWindow entry.
15541         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15542         (rb_tray_icon_constructor): Create action group here.
15543         (rb_tray_icon_finalize): Destroy action group.
15544         (rb_tray_icon_set_property): Don't take an action group.
15545         (rb_tray_icon_new): Ditto.
15546         (tray_popup_position_menu): Some mostly boilerplate code
15547         to position menu.
15548         (rb_tray_icon_button_press_event_cb): Position menu.
15549         (rb_tray_icon_get_geom): New function used for the shell
15550         to set minimization hints.
15552         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15554         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15555         (struct RBShellPrivate): Change visible to iconified.
15556         (set_icon_geometry): New function from Søren Sandmann to
15557         tell Metacity where to draw the minimization animiation.
15558         (rb_shell_window_state_cb): Update iconified.
15559         (rb_shell_get_visibility): New function to say whether
15560         or not we're currently visible.
15561         (rb_shell_set_visibility): Update to minimize to
15562         tray or present as appropriate.
15563         (rb_shell_window_delete_cb): On window close, just
15564         minimize to tray if we're deleted.
15565         (rb_shell_set_window_title): Kill old notification code.
15566         (rb_shell_toggle_visibility): Nwe function.
15567         (rb_shell_cmd_toggle_visibility): Call it.
15568         (rb_shell_constructor): Skip the taskbar.
15569         (tray_destroy_cb): Better debugging.
15570         
15571 2005-09-01  Colin Walters  <walters@verbum.org>
15573         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15575         * configure.ac: Enable bonobo by default.
15576         
15577 2005-09-01  Colin Walters  <walters@verbum.org>
15579         * configure.ac: Default to old art.  Add macros subdir.
15581         * Makefile.am (SUBDIRS): Add macros.
15583         * macros/Makefile.am: New.
15584         
15585 2005-09-01  Colin Walters  <walters@verbum.org>
15587         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15588         rb-shell-player.xml.
15590         * remote/dbus/rb-remote-dbus.h: Deleted.
15591         
15592         * remote/dbus/Makefile.am: Delete all the junk, just dist
15593         rb-print-playing.py and rb-set-rating.py.
15595         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15597         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15599 2005-09-02  James Livingston  <jrl@ids.org.au>
15601         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15602         file from cvs
15604         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15605         (rb_shell_constructor): Patches from Jonathan Matthew
15606         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15607         a crash when using "browse this artist".
15609 2005-08-31  Colin Walters  <walters@verbum.org>
15611         * configure.ac: Add --with-old-art configure switch.  Also
15612         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15613         but it doesn't work.
15615         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15616         Don't use eel_create_colorized_pixbuf for new art.
15617         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15619         * data/art-clearlooks: New artwork.
15620         
15621 2005-08-31  Colin Walters  <walters@verbum.org>
15623         * shell/main.c (main): Fix Bastien's commit to continue to focus
15624         the window with GTK+ 2.8 at least.
15625         
15626 2005-08-31  Colin Walters  <walters@verbum.org>
15628         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15629         is already loaded.
15631         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15633 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15635         * README: remove mentions of the xine-lib backend
15636         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15638 2005-08-30  Colin Walters  <walters@verbum.org>
15640         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15641         Make non-visible sources insensitive.
15642         
15643 2005-08-30  Colin Walters  <walters@verbum.org>
15645         * shell/rb-shell.c: Don't use GConf for selected source; it's
15646         confusing to have the selected source change after startup,
15647         and since we don't save other things it's not worth saving this.
15649         * sources/rb-playlist-source.c:
15650         * sources/rb-library-source.c:
15651         * sources/rb-iradio-source.c:
15652         * sources/rb-ipod-source.c: Delete internal-name property usage.
15653         * sources/rb-source.c: Delete internal-name property.
15655         * data/rhythmbox.schemas: Delete selected_source.
15656         
15657 2005-08-30  Colin Walters  <walters@verbum.org>
15659         * sources/rb-sourcelist.c: Make playing source bold instead of
15660         displaying a pixbuf; it's much less ugly.
15661         
15662 2005-08-30  Colin Walters  <walters@verbum.org>
15664         * sources/rb-source.c:
15665         * sources/rb-source.h: New virtual method try_playlist.
15667         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15668         impl_try_playlist.
15669         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15670         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15671         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15672         need to.
15673         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15674         in theory we should though...
15676         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15677         list in rb_shell_construct now.
15678         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15679         RBiPodSource.
15680         (rb_shell_constructor): Create library, iradio, ipod here.
15681         (rb_shell_source_deleted_cb): Use source directly instead of
15682         indirecting through type.
15683         (rb_shell_sync_selected_source): Ditto.
15684         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15685         from the type instead of special-casing.
15686         (rb_shell_guess_type_for_uri) 
15687         (rb_shell_add_uri)
15688         (handle_one_uri_with_possible_metadata): New functions.
15689         (rb_shell_load_uri): Refactor to allow loading playlists again,
15690         also use other URI infrastructure.
15692         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15693         (rb_shell_player_error): Always set entry error on error, instead
15694         of depending on EOF behavior.
15696         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15697         to just invoke rb_shell_add_uri.
15698         (rb_playlist_manager_parse_file): Return error instead of tossing
15699         up dialog box directly.
15700         (load_playlist_response_cb): Display error here.
15701         (add_uri_to_playlist): Delete.
15702         (handle_playlist_entry_into_playlist_cb): Renamed to
15703         handle_playlist_entry_cb.
15705         * shell/rb-playlist-manager.h: Add error, update prototype.
15707         * lib/rb-file-helpers.c:
15708         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15710 2005-08-29  Colin Walters  <walters@verbum.org>
15712         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15713         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15715         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15716         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15717         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15719         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15720         Prototype rb_shell_set_song_property.
15722         * shell/rb-shell.xml: Export setSongProperty.
15724         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15725         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15726         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15728         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15729         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15730         want to notify of the change.
15731         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15733         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15734         logic error; idle functions would be enqueued for each set.
15735         (rhythmdb_entry_set): Fix assertion logic error.
15737         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15738         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15739         Return if the entry already exists.
15740         
15741 2005-08-29  Colin Walters  <walters@verbum.org>
15743         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15744         "inserted" member which we use to keep track of
15745         whether or not an entry is in the DB.  Prototype
15746         rhythmdb_entry_set_uninserted.
15748         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15749         flag.
15750         (rhythmdb_entry_insert): Assert entry is not already inserted.
15751         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15752         just after creating entry.
15753         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15754         (rhythmdb_entry_set_nonotify): Ditto.
15755         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15756         entries.
15757         (rhythmdb_entry_set_internal): Change notify flag to
15758         notify_if_inserted.  Also move notification after assertions.
15760         Update all existing callers of rhythmdb_entry_set_internal
15761         to give TRUE for notify_if_inserted; this should be what
15762         we want but may be an efficiency hit.
15763         
15764 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15766         * shell/rb-shell-player.c: (rb_shell_player_init),
15767         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15768         (rb_shell_player_set_playing_source_internal),
15769         (rb_shell_player_sync_with_selected_source): Notify the player when an
15770         entry has updated the title, album or artist field, and resync the big
15771         display.
15772         
15773         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15774         * sources/rb-library-source.c: (rb_library_source_class_init),
15775         (impl_get_config_widget):
15776         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15777         * sources/rb-source.c:
15778         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15779         get_album functions in rb-source and adapted other sources accordingly.
15780         
15781 2005-08-29  Colin Walters  <walters@verbum.org>
15783         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15784         signal_change member.
15785         (threadsafe_entry_set): New function.
15786         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15787         (rhythmdb_entry_set_nonotify): New function; just call
15788         threadsafe_entry_set with FALSE.
15789         (rhythmdb_entry_set_internal): Take a notify flag; if true
15790         add the change to our pending set.
15792         Also update all internal callers of rhythmdb_entry_set_internal
15793         to pass FALSE.  Some of these may be bugs however and need to
15794         pass TRUE...
15796         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15797         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15798         rhythmdb_entry_set_nonotify.
15800         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15801         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15803         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15805         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15806         * sources/rb-source.c (rb_source_update_play_statistics): 
15807         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15808         * sources/rb-ipod-source.c (entry_set_string_prop) 
15809         (load_ipod_db_idle_cb): 
15810         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15811         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15812         (info_available_cb): 
15813         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15814         (rb_station_properties_dialog_sync_entries): 
15815         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15817         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15818         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15819         
15820 2005-08-29  Colin Walters  <walters@verbum.org>
15822         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15824         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15825         linking insanity.
15827         * widgets/rb-header.c (sanitize_string): New function, extracted
15828         from old info_url.  Be sure to always strip the string.
15829         (info_url): Rewrite to take artist/album, and generate a sane
15830         URL for them from last.fm, which is better than allmusic.com in
15831         that they support Rhythmbox, and have a *SANE* URL scheme.
15832         (artist_info_url, album_info_url): Delete.
15833         (rb_header_sync): Use info_url.
15835 2005-08-29  James Livingston  <jrl@ids.org.au>
15837         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15838         is implemented before calling it. Many sources don't implement the
15839         method.
15841 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15843         * data/glade/create-playlist.glade:  Cleanup the layout,
15844         and add a few more mnemonics.
15845         * shell/rb-playlist-manager.c:
15846         (rb_playlist_manager_cmd_load_playlist),
15847         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15848         capitalization for window titles.
15849         * widgets/rb-query-creator-properties.c: Add mnemonics
15850         to checkbutton labels.
15851         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15852         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15854 2005-08-28  Colin Walters  <walters@verbum.org>
15856         * data/rhythmbox.schemas: Delete search_text for library
15857         and iradio; this isn't a persistent value anymore.
15858         Closes #313757.
15859         
15860         * sources/rb-source.h:
15861         * sources/rb-source.c: Delete impl_can_search.
15863         * sources/rb-iradio-source.c: Delete search_text usage.
15864         * sources/rb-library-source.c: Ditto.
15866         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15867         search when source is set, and just do rb_source_search in
15868         rb_source_header_search_cb.
15870         * shell/rb-shell.c (rb_shell_append_source): Don't
15871         initiate search.
15873         * shell/Makefile.am: Don't dist dashboard.c.
15875 2005-08-28  Colin Walters  <walters@verbum.org>
15877         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15878         
15879 2005-08-28  Colin Walters  <walters@verbum.org>
15881         * data/org.gnome.Rhythmbox.service.in: New.
15883         * data/Makefile.am: Install service file.
15885         * configure.ac: Define DBUS_SERVICES_DIR.
15887         * autogen.sh: Set ACLOCAL_FLAGS.
15889         * macros/acinclude.m4: New.
15890         
15891 2005-08-28  Colin Walters  <walters@verbum.org>
15893         Initial patch from Jonathan Matthew; closes 313684.
15895         * rhythmdb/rhythmdb-tree.c:
15896         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15897         (save_entry): Return on error.
15898         (rhythmdb_tree_save): Handle error when saving the
15899         db; additionally, handle errors from fclose and unlink,
15900         and print error too.
15902 2005-08-28  Colin Walters  <walters@verbum.org>
15904         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15905         extra _.
15906         
15907 2005-08-28  Colin Walters  <walters@verbum.org>
15909         * configure.ac: Change iPod support to --with-ipod;
15910           automatically enable it if we have HAL.  Try to
15911           support both HAL 0.5 and HAL 0.2.  Break out
15912           totem-plparser into its own check so later we
15913           can do version tests there too.
15914           Kill dashboard support.
15915         
15916         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15917         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15918         Closes #310017.
15919         
15920         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15921         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15923         * sources/Makefile.am: Also handle
15924         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15926         * shell/dashboard.c: Delete; someone should just write a little
15927         python shim which lists on the D-BUS interface and writes the
15928         stuff to Dashboard.  Even better Dashboard should be ported
15929         to D-BUS and do the listening itself, perhaps on an abstract
15930         "org.gnome.MusicPlayer" interface or something.
15932         * shell/rb-shell.c: Kill dashboard support.
15934 2005-08-28  Colin Walters  <walters@verbum.org>
15936         * remote/dbus/rb-print-playing.py: New file.
15938 2005-08-28  Colin Walters  <walters@verbum.org>
15940         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15941         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15943         * shell/rb-shell-player.h:
15944         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15945         * shell/rb-shell-player.xml: Export it.
15947         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15948         (rb_shell_error_quark): New.
15950         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15951         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15952         
15953 2005-08-28  Colin Walters  <walters@verbum.org>
15955         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15956         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15957         bonobo_unlock.
15958         (rb_remote_bonobo_preinit): Lock setting moved here.
15959         (rb_remote_bonobo_init): From here.
15961         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15962         Also invoke handle_cmdline in the right place.
15963         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15964         GFunc.
15966 2005-08-28  James Livingston  <jrl@ids.org.au>
15968         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15969         when 0.9.1 comes around.
15971 2005-08-28  James Livingston  <jrl@ids.org.au>
15973         * iradio/rb-new-station-dialog.c:
15974         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15975         bug 314477.
15977 2005-08-28  James Livingston  <jrl@ids.org.au>
15979         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15981         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15982         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15983         is a song is longer than 60 minutes. Closes bug 313311.
15985 2005-08-27  James Livingston  <jrl@ids.org.au>
15987         * data/glade/create-playlist.glade:
15988         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15989         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15990         "minutes" as an option in the playlist limit menu.
15992         * rhythmdb/rhythmdb-query-model.c:
15993         (rhythmdb_query_model_class_init),
15994         (rhythmdb_query_model_set_property),
15995         (rhythmdb_query_model_get_property),
15996         (rhythmdb_query_model_update_limited_entries): Allow query models to
15997         have a time limit
15998         
15999         * shell/rb-playlist-manager.c:
16000         (rb_playlist_manager_set_automatic_playlist),
16001         (rb_playlist_manager_cmd_edit_automatic_playlist):
16002         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16003         (rb_playlist_source_get_query), (impl_receive_drag),
16004         (rb_playlist_source_new_from_xml),
16005         (rb_playlist_source_save_to_xml),
16006         (rb_playlist_source_songs_sort_order_changed_cb),
16007         (rb_playlist_source_do_query):
16008         * sources/rb-playlist-source.h:
16009         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16011 2005-08-27  James Livingston  <jrl@ids.org.au>
16013         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16015         * configure.ac:
16016         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16017         non-standard location. Closes bug 314640.
16019 2005-08-26  Colin Walters  <walters@verbum.org>
16020         
16021         Patch from Olivier Blin <oblin@mandriva.com>
16023         * widgets/eggnotificationbubble.c (draw_bubble): 
16024         Handle extreme-left case as well.
16025         
16026 2005-08-26  Colin Walters  <walters@verbum.org>
16028         * shell/rb-shell.c (idle_save_state): Don't do this.
16029         (rb_shell_construct): Remove idle calls to idle_save_state.
16030         We should save the playlists automatically when they're
16031         modified.
16032         (rb_shell_load_uri): Don't try to re-stat entry if it already
16033         exists.
16035         * shell/rb-shell-player.c: Keep track of entry we are attempting
16036         to play.
16037         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16038         Don't double-free error.
16039         (rb_shell_player_play_entry): Signal errors.
16040         (rb_shell_player_entry_activated_cb): Ditto.
16041         (rb_shell_player_property_row_activated_cb): Ditto.
16042         (rb_shell_player_set_playing_source_internal): Unset attempted
16043         playing entry.
16044         (rb_shell_player_error): Refactor to be usable both sync and
16045         async.  Handle case where displayed entry differs from entry.
16046         (error_cb): Move GDK locking here.
16048         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16049         people can just use dbus-send or python.  We only support focusing
16050         and loading files.
16051         (load_uri_args): New function, extracted from handle_cmdline.
16052         (dbus_load_uri, bonobo_load_uri): New functions.
16054         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16055         appropriate.
16057         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16058         * remote/dbus/rb-remote-dbus.c: Deleted.
16060         * player/rb-player-gst.c: Clear any pending idle handlers when we
16061         close the player.  Signal errors generated during open/play etc
16062         as synchronous errors.
16064         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16065         
16066 2005-08-26  Colin Walters  <walters@verbum.org>
16068         * shell/rb-shell.c (rb_shell_present): Try harder.
16070 2005-08-26  Colin Walters  <walters@verbum.org>
16072         * shell/rb-shell.c (rb_shell_present): Try to handle
16073         GTK_MINOR_VERSION < 8.
16075 2005-08-26  James Livingston  <jrl@ids.org.au>
16077         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16078         <pbrobinson@gmail.com>
16080 2005-08-26  Colin Walters  <walters@verbum.org>
16082         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16084 2005-08-25  Colin Walters  <walters@verbum.org>
16086         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16087         Delete.
16088         (rb_shell_player_do_next_with_rating): Move back into
16089         rb_shell_player_do_next.
16090         (rb_shell_player_entry_activated_cb): Remove call to
16091         rb_shell_player_auto_adjust_rating.
16092         (do_next_idle): Just call rb_shell_player_do_next.
16094         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16096 2005-08-25  Colin Walters  <walters@verbum.org>
16098         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16099         before gtk_window_present_with_time.
16100         
16101 2005-08-25  Colin Walters  <walters@verbum.org>
16103         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16104         default.
16106         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16107         rb_shell_construct.  This is so we only have to do g_object_new.
16108         (rb_shell_get_player): New function.
16109         (rb_shell_get_player_path): Ditto.
16110         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16111         
16112         * shell/rb-shell.h: Prototype them.
16114         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16115         export over D-BUS.
16116         (reemit_playing_signal): New function.
16117         (rb_shell_player_open_playlist_location): Use return values from
16118         rb_player_open, rb_player_close, etc. instead of checking "error".
16119         Return a gboolean on failure.
16120         (rb_shell_player_open_entry): Just open entry location, don't
16121         print to stderr.
16122         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16123         a gboolean.
16124         (do_next_idle): Move logic for handling of end of playlist here.
16125         (rb_shell_player_set_playing_entry): Take a GError, return a
16126         gboolean.  Update to use gboolean return values.
16127         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16128         logic.  Signal an error on end of playlist.  Also signal error if
16129         we're not playing.  Move heuristic for replaying the song into
16130         rb_shell_player_cmd_previous.
16131         (rb_shell_player_do_next_with_rating): Signal error on end of
16132         playlist.
16133         (rb_shell_player_do_next): Return errors.
16134         (rb_shell_player_cmd_previous): Heuristic for restarting song
16135         moved here; the idea is you generally only want that from the GUI.
16136         (rb_shell_player_cmd_play): Handle error.
16137         (rb_shell_player_playpause): Signal errors.
16138         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16139         rb_shell_player_cmd_next in favor of the internal _do functions.
16140         
16141         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16142         errors.  Update prototypes for above changes.
16144         * shell/main.c: More tightly integrate D-BUS; register various
16145         major singleton objects here.  Fix handle_cmdline so we only
16146         process extra arguments, not every argument.
16148         * shell/Makefile.am: Generate D-BUS glue headers.
16150         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16151         into shell/main.c.  Now this file just acts as a client library.
16152         Not heavily tested.
16154         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16155         Moved here.
16156         (rb_remote_bonobo_init): Move long CORBA rant here along with
16157         setting of lock functions.
16159         * player/rb-player-gst.c (rb_player_construct)
16160         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16161         on error.
16163         * player/rb-player.h: Update prototypes.
16165         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16166         rb-remote-bonobo.c.
16167         (rb_threads_init): Don't set gdk lock functions here.
16169 2005-08-25  James Livingston  <jrl@ids.org.au>
16171         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16173         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16174         * lib/rb-tree-dnd.h:
16175         * rhythmdb/rhythmdb-property-model.c:
16176         (rhythmdb_property_model_class_init),
16177         (rhythmdb_property_model_drag_source_init),
16178         (rhythmdb_property_model_iter_parent),
16179         (rhythmdb_property_model_row_draggable),
16180         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16181         (rhythmdb_property_model_drag_data_get),
16182         (rhythmdb_property_model_enable_drag):
16183         * rhythmdb/rhythmdb-property-model.h:
16184         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16185         (rb_playlist_manager_set_property), (append_new_playlist_source),
16186         (rb_playlist_manager_save_playlists):
16187         * shell/rb-shell.c: (rb_shell_construct),
16188         (sourcelist_drag_received_cb):
16189         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16190         * sources/rb-playlist-source.c: (impl_receive_drag):
16191         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16192         (rb_sourcelist_model_drag_dest_init),
16193         (rb_sourcelist_model_set_dnd_targets),
16194         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16195         (rb_sourcelist_model_row_drop_position),
16196         (rb_sourcelist_model_get_drag_target),
16197         (rb_sourcelist_model_drag_data_get):
16198         * sources/rb-sourcelist-model.h:
16199         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16200         (rb_sourcelist_init), (rb_sourcelist_get_property),
16201         (rb_sourcelist_selection_changed_cb):
16202         * sources/rb-sourcelist.h:
16203         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16204         improve drag-n-drop support. Allow dragging of item from property
16205         views to the source list, to create new automatic playlists. Allow
16206         playlist re-ordering. Fix dragging from Rhythmbox to other
16207         applications. (Closes bug 147337)
16209 2005-08-24  Colin Walters  <walters@verbum.org>
16211         Patch from Olivier Blin <oblin@mandriva.com>
16213         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16214         correctly in the case where the window is next to monitor edge.
16216 2005-08-24  James Livingston  <jrl@ids.org.au>
16218         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16219         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16220         a gobject property to get the query model that backs the playlist.
16222 2005-08-24  James Livingston  <jrl@ids.org.au>
16224         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16225         (handle_playlist_entry_into_playlist_cb),
16226         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16227         audio cd" menu item when a non-playlist source is selected, or the
16228         playlist is empty. (Closes Bug 313253)
16230 2005-08-24  James Livingston  <jrl@ids.org.au>
16232         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16233         Fix the playlist length checkso it doesn't report 0 for automatic
16234         playlists. This was stopping automati playlists being burnt to cd.
16236 2005-08-24  James Livingston  <jrl@ids.org.au>
16238         * configure.ac:
16239         * sources/rb-playlist-source-recorder.c: (burn_cd):
16240         * sources/rb-playlist-source.c:
16241         (rb_playlist_source_songs_sort_order_changed_cb):
16242         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16243         more warnings that occur when compiling RPMs on Fedora.
16245 2005-08-24  James Livingston  <jrl@ids.org.au>
16247         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16248         was stopping some distros gcc version compiling.
16250 2005-08-24  James Livingston  <jrl@ids.org.au>
16252         * NEWS:
16253         * data/glade/create-playlist.glade:
16254         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16255         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16256         (rhythmdb_query_free), (rhythmdb_query_serialize),
16257         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16258         * rhythmdb/rhythmdb.h:
16259         * shell/rb-playlist-manager.c:
16260         (rb_playlist_manager_set_automatic_playlist),
16261         (rb_playlist_manager_cmd_edit_automatic_playlist):
16262         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16263         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16264         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16265         (rb_playlist_source_save_to_xml),
16266         (rb_playlist_source_songs_sort_order_changed_cb),
16267         (rb_playlist_source_do_query):
16268         * sources/rb-playlist-source.h:
16269         * widgets/Makefile.am:
16270         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16271         (rb_entry_view_set_sorting_order):
16272         * widgets/rb-query-creator-private.h:
16273         * widgets/rb-query-creator-properties.c:
16274         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16275         (stringCriteriaGetWidgetData),
16276         (escapedStringCriteriaSetWidgetData),
16277         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16278         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16279         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16280         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16281         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16282         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16283         (relativeTimeCriteriaCreateWidget),
16284         (relativeTimeCriteriaSetWidgetData),
16285         (relativeTimeCriteriaGetWidgetData):
16286         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16287         (rb_query_creator_class_init), (rb_query_creator_constructor),
16288         (rb_query_creator_dispose), (rb_query_creator_set_property),
16289         (rb_query_creator_get_property), (rb_query_creator_load_query),
16290         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16291         (get_entry_for_property), (rb_query_creator_get_query),
16292         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16293         (limit_toggled_cb), (lookup_row_by_widget),
16294         (remove_button_click_cb), (append_row),
16295         (get_property_index_from_proptype), (select_criteria_from_value),
16296         (property_option_menu_changed), (create_property_option_menu),
16297         (create_criteria_option_menu), (sort_option_menu_changed),
16298         (setup_sort_option_menu):
16299         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16300         playlists. The two most notable improvements are 1) adding more
16301         properties to the query creator, making it much easier to add more in
16302         the future, and 2) allow playlists to be sorted, from the query editor
16303         if they gave limits, and by clicking on column headers if they don't.
16305         Files added: widgets/rb-query-creator-private.h,
16306         sources/rb-query-creator-properties.c
16308 2005-08-21  James Livingston  <jrl@ids.org.au>
16310         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16311         error=NULL. This stops some crashes.
16313 2005-08-19  Colin Walters  <walters@verbum.org>
16315         Patch from Olivier Blin <oblin@mandriva.com>
16317         * widgets/eggnotificationbubble.c (force_window): Support top
16318         orientation.
16319         * widgets/eggnotificationbubble.h: Remove
16320         egg_notification_bubble_force_window from header.
16321         
16322 2005-08-18  James Livingston  <jrl@ids.org.au>
16324         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16325         with the changes since then.
16327 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16329         * shell/rb-shell-player.c: (rb_shell_player_init),
16330         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16331         (rb_shell_player_volume_widget_changed_cb):
16332         * sources/rb-iradio-source.c:
16333         * sources/rb-library-source.c:
16334         * sources/rb-playlist-source.c:
16335         * widgets/Makefile.am:
16336         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16337         (bacon_volume_button_class_init), (bacon_volume_button_init),
16338         (bacon_volume_button_dispose), (bacon_volume_button_new),
16339         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16340         (bacon_volume_button_scroll), (bacon_volume_button_press),
16341         (cb_button_timeout), (cb_button_press), (cb_button_release),
16342         (bacon_volume_release_grab), (cb_dock_press),
16343         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16344         (bacon_volume_scale_new), (bacon_volume_scale_press),
16345         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16346         * widgets/bacon-volume.h:
16347         * widgets/rb-volume.c:
16348         * widgets/rb-volume.h:
16349           Use BaconVolumeButton (#300867).
16351 2005-08-17  James Livingston  <jrl@ids.org.au>
16353         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16354         (rhythmdb_process_metadata_load): don't reset the First Seen time
16355         whenever we recheck the metadata.
16357 2005-08-17  James Livingston  <jrl@ids.org.au>
16359         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16360         temporary workaround to stop crashes when trying to burn an empty
16361         playlist. Doesn't disable the menu item which is the better solution
16362         (Bug 313253).
16364 2005-08-15  James Livingston  <jrl@ids.org.au>
16366         * shell/rb-source-header.c: (rb_source_header_init),
16367         (rb_source_header_sync_control_state),
16368         (rb_source_header_search_activate_cb):
16369         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16370         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16371         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16372         (rb_search_entry_init), (rb_search_entry_searching),
16373         (rb_search_entry_activate_cb):
16374         * widgets/rb-search-entry.h: Move focus to the entry view when user
16375         presses enter in the search box. Patch from Paolo Borelli
16376         <pborelli@katamail.com> (Closes bug 128110)
16378 2005-08-15  James Livingston  <jrl@ids.org.au>
16380         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16381         (rb_playlist_manager_new_playlist):
16382         * shell/rb-playlist-manager.h:
16383         * shell/rb-shell.c: (rb_shell_construct),
16384         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16385         the source list to be shown when a new playlist is created. (Closes
16386         bug 161935)
16388 2005-08-15  James Livingston  <jrl@ids.org.au>
16390         * widgets/rb-header.c: (rb_header_init),
16391         (rb_header_set_show_timeline): disable the seek slider, rather than
16392         hiding it, which more closely follows the HIG. (Closes bug 139102)
16394 2005-08-13  Colin Walters  <walters@verbum.org>
16396         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16397         rb_shell_hidden_notify.
16398         (rb_shell_hidden_notify): Notify if the shell is hidden.
16399         (rb_shell_set_visibility_impl): Debug goo.
16401         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16403         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16404         when the user clicks on notification.
16406         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16407         CD burn is complete.
16408         (rb_playlist_source_recorder_finalize): Unref shell.
16409         (rb_playlist_source_recorder_new): Take shell.
16411         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16412         Pass shell to RBPlaylistSourceRecorder.
16413         
16414 2005-08-13  Colin Walters  <walters@verbum.org>
16416         * lib/rb-thread.c:
16417         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16418           time to convert.
16420 2005-08-13  Colin Walters  <walters@verbum.org>
16422         * widgets/eggnotificationbubble.h:
16423         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16424         * widgets/eggtrayicon.c:
16425         * widgets/eggtrayicon.h: Add notification API.
16426         * shell/rb-tray-icon.c:
16427         * shell/rb-tray-icon.h: Add notification API.
16428         * shell/rb-shell.c: Notify on song change.
16430 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16432         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16433         Correct an inversion of two lines causing NULL to be unreffed
16435 ============ Version 0.9.0
16437 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16439         * configure.ac: 0.9.0, whee!
16440         * NEWS: badly updated
16441         * remote/bonobo/Makefile.am:
16442         * remote/bonobo/rb-remote-bonobo.h:
16443         * shell/Makefile.am:
16444         * shell/main.c: make distcheck fixes