2006-11-10 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob7702b598384872c1a7855ff082851b74e23ac9f3
1 2006-11-10  James Livingston  <doclivingston@gmail.com>
3         * plugins/generic-player/rb-nokia770-source.c:
4         (hal_udi_is_nokia770):
5         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
6         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
7         context if it wasn't inited. Fixes #372824
9 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
11         * plugins/daap/rb-daap-plugin.h:
12         Add the file I missed last time.
14 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
16         * CVS-SURGERY:
17         * backends/gstreamer/Makefile.am:
18         * backends/gstreamer/rb-player-gst.c:
19         * configure.ac:
20         * daapsharing/Makefile.am:
21         * daapsharing/rb-daap-connection.c:
22         (rb_daap_connection_disconnect):
23         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
24         (rb_daap_src_open):
25         * daapsharing/rb-daap-src.h:
26         * data/glade/Makefile.am:
27         * data/rhythmbox.schemas:
28         * data/ui/Makefile.am:
29         * plugins/Makefile.am:
30         * plugins/daap/.cvsignore:
31         * plugins/daap/Makefile.am:
32         * plugins/daap/daap.rb-plugin.desktop.in:
33         * plugins/daap/rb-daap-plugin.c:
34         * shell/Makefile.am:
35         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
36         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
37         * sources/Makefile.am:
38         * sources/rb-daap-source.c: (rb_daap_source_class_init),
39         (rb_daap_source_new), (connection_auth_cb),
40         (connection_connecting_cb), (connection_disconnected_cb),
41         (release_connection), (rb_daap_source_disconnect),
42         (rb_daap_source_show_popup):
43         * sources/rb-daap-source.h:
44         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
45         Fixes #336150.
47 2006-11-09  James Livingston  <doclivingston@gmail.com>
49         * rhythmdb/rhythmdb.c: take the ref before calling the delete
50         implementation, not after. From #372851.
52 2006-11-09  James Livingston  <doclivingston@gmail.com>
54         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
56         * plugins/Makefile.am:
57         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
58         fixes #371178.
60 2006-11-09  James Livingston  <doclivingston@gmail.com>
62         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
63         g_signal_connect_object not g_signal_object, which stops it beign
64         called after the plugin is disposed.
66 2006-11-09  James Livingston  <doclivingston@gmail.com>
68         * plugins/audioscrobbler/rb-audioscrobbler.c:
69         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
70         after we're finalised. Should fix #370513
72 2006-11-08  James Livingston  <doclivingston@gmail.com>
74         patch by: Jerry Tan  <jerry.tan@sun.com>
76         * data/glade/song-info.glade: set more a11y properties on the
77         label-for/labelled-by info. Fixes #368179.
79 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
81         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
82         (rb_entry_view_dispose), (rb_entry_view_finalize):
83         Unref objects and remove idle handlers in dispose rather than
84         finalize.  Should fix #364783.
86 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
88         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
89         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
90         xmlCreateMemoryParserCtxt returning NULL that was previously checking
91         the wrong variable.  Really fixes #336842.
93 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
95         * plugins/iradio/Makefile.am:
96         Actually install the UI file.
98 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
100         * plugins/generic-player/rb-generic-player-source.c:
101         (rb_generic_player_source_constructor),
102         (rb_generic_player_source_dispose),
103         (rb_generic_player_source_load_playlists):
104         Don't crash if the source is destroyed before it gets a chance
105         to load playlists.
107 2006-11-06  James Livingston  <doclivingston@gmail.com>
109         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
110         * rhythmdb/rhythmdb.c: some leak fixes
112 2006-11-06  James Livingston  <doclivingston@gmail.com>
114         * bindings/python/rb.override: change the right function in the last
115         commit.
117 2006-11-06  James Livingston  <doclivingston@gmail.com>
119         * bindings/python/rb.override: unwrap the python string instead of
120         wrapping it. Oops.
122 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
124         * tests/test-utils.c: (test_rhythmdb_setup):
125         Fix build break, #371106.
127 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
129         * tests/Makefile.am:
130         * tests/test-rhythmdb-property-model.c: (_get_property_count),
131         (START_TEST), (rhythmdb_property_model_suite), (main):
132         * tests/test-rhythmdb-query-model.c: (START_TEST),
133         (rhythmdb_query_model_suite), (main):
134         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
135         * tests/test-utils.c: (start_test_case), (end_step),
136         (end_test_case), (mark_signal), (set_waiting_signal),
137         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
138         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
139         * tests/test-utils.h:
140         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
142 2006-11-04  James Livingston  <doclivingston@gmail.com>
144         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
145         we were passed a absolute path, e.g. from the plugin file find
146         function.
148 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
150         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
152         * remote/dbus/rb-client.c: (main):
153         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
154         * shell/rb-shell.h:
155         * shell/rb-shell.xml:
156         Add dbus method to request a notification for the playing song, and
157         an argument to rhythmbox-client to use it.  Fixes #359593.
159 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
161         * remote/dbus/rb-print-playing.py:
162         Revert changes I accidentally committed a while ago.
164 2006-11-03  James Livingston  <doclivingston@gmail.com>
166         * data/glade/song-info.glade: make more labels selectable, from #368641
168 2006-11-03  James Livingston  <doclivingston@gmail.com>
170         * shell/rb-shell-clipboard.c: (get_focussed_widget),
171         (rb_shell_clipboard_cmd_select_all),
172         (rb_shell_clipboard_cmd_select_none): make Select All select text in
173         the focussed widget if it's a text entry. Fixes #364590
175 2006-11-03  James Livingston  <doclivingston@gmail.com>
177         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
178         (bacon_volume_button_init), (bacon_volume_button_dispose),
179         (bacon_volume_button_new), (bacon_volume_button_realize),
180         (bacon_volume_button_press), (bacon_volume_key_release),
181         (bacon_volume_release_grab), (cb_dock_key_release),
182         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
183         (bacon_volume_theme_changed), (bacon_volume_load_icons):
184         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
185         Fixes #369491
187 2006-10-31  James Livingston  <doclivingston@gmail.com>
189         * configure.ac: remove spaces around '=' where they shouldn't be,
190         fixes building when you have libgpod 0.3.x
192 2006-10-31  James Livingston  <doclivingston@gmail.com>
194         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
196         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
197         period is 0. Fixes #351425
199 2006-10-31  James Livingston  <doclivingston@gmail.com>
201         patch by: Luca Ferretti  <elle.uca@libero.it>
203         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
204         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
205         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
206         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
207         * plugins/ipod/ipod.rb-plugin.desktop.in:
208         * plugins/iradio/iradio.rb-plugin.desktop.in:
209         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
210         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
211         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
212         of the plugins. Fixes #365326
214 2006-10-31  James Livingston  <doclivingston@gmail.com>
216         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
218 2006-10-31  James Livingston  <doclivingston@gmail.com>
220         * data/glade/song-info.glade: set the mnemonic target for the labels
221         in the details tab. Fixes #368179.
223 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
225         * configure.ac:
226         When complaining about GStreamer being too old, use the right variable
227         name for the version we want.
229 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
231         * shell/rb-shell.h:
232         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
233         * shell/rb-tray-icon.h:
234         * bindings/python/rb.defs:
235         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
236         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
237         * sources/rb-playlist-source-recorder.c: (burn_cd):
238         * sources/rb-podcast-source.c:
239         (rb_podcast_source_start_download_cb),
240         (rb_podcast_source_finish_download_cb),
241         (rb_podcast_source_feed_updates_avaliable_cb):
242         Change the various notification functions to take a parameter
243         specifying whether the notification was explicitly requested by the
244         user.  Add a function to display a notification for an entry,
245         including streaming song metadata.
247         * shell/rb-shell-player.c: (rb_shell_player_stop):
248         Emit playing-song-changed and playing-uri-changed when stopping
249         playback.
251         * sources/Makefile.am:
252         * sources/rb-streaming-source.c:
253         * sources/rb-streaming-source.h:
254         Add a base class for streaming sources, handling streaming song
255         metadata and buffering messages, emitting notifications on song
256         changes, and updating play count statistics when playback stops.
258         * plugins/audioscrobbler/Makefile.am:
259         * plugins/audioscrobbler/rb-lastfm-source.c:
260         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
261         (rb_lastfm_source_constructor), (impl_get_status),
262         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
263         (rb_lastfm_source_title_from_uri),
264         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
265         (rb_lastfm_song_changed_cb), (impl_activate):
266         * plugins/audioscrobbler/rb-lastfm-source.h:
267         * plugins/iradio/Makefile.am:
268         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
269         (rb_iradio_source_constructor), (impl_get_status),
270         (info_available_cb), (playing_source_changed_cb):
271         * sources/rb-iradio-source.h:
272         Use the new streaming source base class for iradio and last.fm
273         sources.  Fixes #364094.
275 2006-10-30  James Livingston  <doclivingston@gmail.com>
277         * podcast/rb-podcast-manager.c:
278         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
279         any downloads from it before deleting the post entry. Fixes #366567.
281 2006-10-30  James Livingston  <doclivingston@gmail.com>
283         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
284         move-to-trash, since there have been reports of people accidently
285         deleting tracks and it probably isn't a common enough operation to be
286         worth a shortcut.
288 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
290         * backends/gstreamer/rb-player-gst.c:
291         * configure.ac:
292         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
293         Fix GStreamer 0.8 build (and some typos in configure.ac).
295 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
297         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
299         * sources/rb-source.c: (rb_source_class_init),
300         (rb_source_set_property), (rb_source_get_property):
301         Add a property to RBSource for plugin-created sources to have a
302         pointer to the RBPlugin object that created them.
304         * plugins/audiocd/Makefile.am:
305         * plugins/audiocd/multiple-album.glade:
306         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
307         * sources/Makefile.am:
308         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
309         * sources/rb-audiocd-source.h:
310         If musicbrainz returns multiple albums, present the user with a
311         choice between them.  Fixes #333215.
313         * configure.ac:
314         * plugins/Makefile.am:
315         Remove unused old audio CD stuff, only build audiocd plugin if we have
316         libnautilus-burn.  Fixes #367440.
318 2006-10-30  James Livingston  <doclivingston@gmail.com>
320         patch by: Brian McKenna  <puffnfresh@gmail.com>
322         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
323         handle blocks. Fixes #366696.
325 2006-10-30  James Livingston  <doclivingston@gmail.com>
327         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
329 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
331         * shell/rb-shell-player.c: (rb_shell_player_class_init),
332         (rb_shell_player_sync_with_source),
333         (rb_shell_player_get_playing_time_string), (tick_cb):
334         * widgets/rb-header.c: (rb_header_sync_time),
335         (slider_moved_callback), (rb_header_update_elapsed),
336         (rb_header_elapsed_changed_cb):
337         Revert dbus interface breakage introduced in the fix for #365908.
339 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
341         patch by: Luca Ferretti  <elle.uca@libero.it>
343         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
344         Remove the access keys from the podcast-specific column headers.
345         Fixes #360640 again.
347 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
349         patch by: James Livingston <doclivingston@gmail.com>
351         * sources/rb-browser-source.c: (rb_browser_source_constructor):
352         Only register the search actions once.  From #346801.
354 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
356         * shell/rb-shell-player.c: (rb_shell_player_error):
357         When handling an error, try playing the next stream URL if we have
358         one, rather than stopping playback.  From #358140.
360 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
362         * shell/rb-shell.c: (handle_playlist_entry_cb):
363         Don't crash if we can't guess a source for a URI in the playlist.
364         Fixes #366261.
366 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
368         * shell/rb-shell-player.c: (rb_shell_player_class_init),
369         (rb_shell_player_sync_with_source),
370         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
371         (tick_cb):
372         * widgets/rb-header.c: (rb_header_sync_time),
373         (rb_header_elapsed_changed_cb):
374         Treat elapsed time as signed, since rb_player_get_time returns a
375         signed value.  When actually using the value, mostly treat negative
376         values as 0.  Fixes #365908.
378 2006-10-27  James Livingston  <doclivingston@gmail.com>
380         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
382         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
383         returning 0 for the year/month/day. Fixes #364837.
385 2006-10-27  James Livingston  <doclivingston@gmail.com>
387         patch by: Luca Ferretti  <elle.uca@libero.it>
389         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
390         access keys from the entry view columns headers - they cause
391         keybindings conflicts, headaches for translators and the HIG says
392         they are bad. Fixes #360640.
394 2006-10-27  James Livingston  <doclivingston@gmail.com>
396         patch by: Luca Ferretti  <elle.uca@libero.it>
398         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
399         access keys from the entry view columns headers - they cause
400         keybindings conflicts, headaches for translators and the HIG says
401         they are bad. Fixes #360640.
403 2006-10-27  James Livingston  <doclivingston@gmail.com>
405         * rhythmdb/rhythmdb-private.h:
406         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
407         issues
409 2006-10-27  James Livingston  <doclivingston@gmail.com>
411         * plugins/artdisplay/Makefile.am:
412         * plugins/audioscrobbler/Makefile.am:
413         * plugins/iradio/Makefile.am: fix make clean
415 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
417         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
418         Fall back to strtod() if g_ascii_strtod() doesn't work.
420         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
421         Write floating point values using g_ascii_dtostr() to avoid
422         problems with locale-specific representations.  From #353205.
424 2006-10-25  James Livingston  <doclivingston@gmail.com>
426         * plugins/artdisplay/Makefile.am:
427         * plugins/audioscrobbler/Makefile.am:
428         * plugins/iradio/Makefile.am: fix "make distcheck"
430 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
432         patch by: Brian Cameron <brian.cameron@sun.com>
434         * plugins/audiocd/Makefile.am:
435         Link audiocd plugin with libnautilus-burn as required to get it to work
436         on Solaris.  Fixes #363288.
438 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
440         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
442         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
443         Clarify that we don't submit actual songs to last.fm, just information
444         on what you're listening to.  Fixes #364014.
446 2006-10-24  Bastien Nocera  <hadess@hadess.net>
448         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
449         (bacon_volume_button_class_init), (bacon_volume_button_new),
450         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
451         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
452         (bacon_volume_scale_value_changed): update from libbacon, to get
453         better accessibility support (Closes: #364637)
455 2006-10-24  James Livingston  <doclivingston@gmail.com>
457         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
459         * configure.ac: fix some typos and leftovers from disabled->enabled
460         changes. Fixes #364217
462 2006-10-23  William Jon McCann  <mccann@jhu.edu>
464         * shell/rb-source-header.c (rb_source_header_init):
465         Don't require source header cells to be homogeneous.
466         Patch from #359188
468 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
470         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
471         Pause the pipeline while buffering.  Fixes #358290.
473 2006-10-23  Bastien Nocera  <hadess@hadess.net>
475         * configure.ac: update required libgpod version to avoid crashes
476         when starting up with an iPod connect (Closes: #352972)
477         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
478         (hal_udi_is_ipod): remove outdated ifdefs
480 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
482         * plugins/Makefile.am:
483         * plugins/power-manager/rb-power-manager-plugin.c:
484         Don't try to build the power-manager plugin with dbus < 0.35.
486 2006-10-22  James Livingston  <doclivingston@gmail.com>
488         patch by: Ed Catmur  <ed@catmur.co.uk>
490         * plugins/artdisplay/Makefile.am:
491         * plugins/artdisplay/artdisplay/__init__.py:
492         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
493         placeholder art when none is available, to avoid having the widget pop
494         in and out of existance.
496 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
498         * plugins/lyrics/lyrics.py:
499         Set the lyrics window transient for the main window so it can
500         actually be seen in party mode.  Fixes #362981.
502 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
504         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
505         * sources/rb-source.c: (rb_source_class_init),
506         (rb_source_can_show_properties), (rb_source_song_properties):
507         * sources/rb-source.h:
508         Only enable the 'properties' item in the 'music' menu if the selected
509         source implements the show_properties method.  Fixes #356485.
511 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
513         * shell/rb-shell-player.c:
514         (rb_shell_player_property_row_activated_cb):
515         Take the entry to play from the play order, rather than grabbing the
516         first entry in the query model.  Fixes #362042.
518 2006-10-16  James Livingston  <doclivingston@gmail.com>
520         * shell/main.c: (main): save custom menu accelerators before exiting.
521         Fixed #362300
523 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
525         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
526         I HATE adding this patch, but I'm sick of hitting Yes once
527         and hour.  Working around brain-dead podcasts.
529 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
531         * plugins/lyrics/lyrics.py:
532         Disconnect the create-song-info handler when deactivated.
533         Fixes #361882.
535 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
537         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
538         Reset the style when clearing the search text.  Fixes #361295.
540 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
542         * rhythmdb/rhythmdb-query-model.c:
543         (rhythmdb_query_model_entry_changed_cb):
544         Don't emit entry-prop-changed for hidden signals from chained query
545         models, as the model will also propagate the parent model's
546         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
548 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
550         * sources/rb-ipod-source.c: (generate_ipod_filename):
551         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
552         * lib/rb-cut-and-paste-code.h:
553         Move eel_make_valid_utf8 to lib/, make the replacement
554         character a parameter.
556         * rhythmdb/rhythmdb.c: (make_access_failed_error),
557         (rhythmdb_execute_multi_stat_info_cb),
558         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
559         When constructing an error message that includes a URI, make sure the
560         URI is valid utf-8.  Fixes #353588.
562 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
564         * player/rb-recorder-gst.c: (rb_recorder_construct),
565         (acb_wave_time):
566         Add an extra audioconvert element to allow endianness conversion on
567         big-endian machines, and fix a few endianness issues in the .wav
568         reading code.  Fixes #355611.
570 2006-10-09  James Livingston  <doclivingston@gmail.com>
572         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
574         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
575         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
576         Fixes #357553.
578 2006-10-09  James Livingston  <doclivingston@gmail.com>
580         patch by: Luca Ferretti  <elle.uca@libero.it>
582         * data/glade/song-info-multiple.glade:
583         * data/glade/song-info.glade: Fix a few HIG issues.
585 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
587         * plugins/audioscrobbler/rb-lastfm-source.c:
588         (rb_lastfm_source_class_init):
589         Return TRUE from impl_try_playlist so playback starts in a separate
590         thread.
592 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
594         * shell/main.c: (main):
595         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
596         UTF-8 GStreamer messages.  Fixes #357973.
598 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
600         * shell/rb-shell.c: (rb_shell_constructor):
601         Remove a line that accidentally slipped in from some other universe.
603 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
605         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
606         Don't remove sources from the hash table while iterating it on
607         shutdown.  Fixes #359583.
609 2006-10-07  James Livingston  <doclivingston@gmail.com>
611         patch from Alex Lancaster  <alexl@users.sourceforge.net>
613         * shell/rb-shell.c: change the keybinding for "Plugins" to not
614         conflict with others. Fixes #355904
616 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
618         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
619         (rhythmdb_query_model_chain),
620         (rhythmdb_query_model_entry_changed_cb),
621         (rhythmdb_query_model_base_entry_prop_changed),
622         (rhythmdb_query_model_base_entry_removed):
623         For chained models, propagate the parent model's entry-prop-changed
624         signal rather than emitting one from the db entry-changed handler.
625         This ensures that when the change filters the entry out of the parent
626         model, property models attached to the child model get the entry
627         change signal before the post-entry-delete signal, so they can
628         decrement the refcount for the right property value.  Fixes #359083.
630 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
632         * plugins/audioscrobbler/Makefile.am:
633         define NULL
635 2006-10-07  James Livingston  <doclivingston@gmail.com>
637         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
638         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
639         * plugins/audioscrobbler/rb-lastfm-source.c:
640         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
641         hypens in URI schemes.
643 2006-10-06  William Jon McCann  <mccann@jhu.edu>
645         * plugins/iradio/Makefile.am:
646         * plugins/audioscrobbler/Makefile.am:
647         * plugins/cd-recorder/Makefile.am:
648         Don't clean all plugin_DATA.
649         Fixes #360210
651 2006-10-06  James Livingston  <doclivingston@gmail.com>
653         patch from Matt N  <fisxoj@gmail.com>
655         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
656         (rb_player_gst_bus_cb):
657         * backends/rb-player.c: (rb_player_interface_init),
658         (_rb_player_emit_tick), (_rb_player_emit_event):
659         * backends/rb-player.h: let the backend emit named "events", for
660         things that the core shouldn't know about.
662         * rhythmdb/rhythmdb.h:
663         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
664         support for streams containing album metadata.
666         * plugins/audioscrobbler/Makefile.am:
667         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
668         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
669         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
670         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
671         * plugins/audioscrobbler/rb-lastfm-source.c:
672         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
673         of last.fm streams. From #313049.
675 2006-10-06  James Livingston  <doclivingston@gmail.com>
677         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
678         committing. Oops.
680 2006-10-06  James Livingston  <doclivingston@gmail.com>
682         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
684         * configure.ac:
685         * data/rhythmbox.schemas:
686         * plugins/Makefile.am:
687         * plugins/magnatune/Makefile.am:
688         * plugins/magnatune/magnatune-loading.glade:
689         * plugins/magnatune/magnatune-prefs.glade:
690         * plugins/magnatune/magnatune-purchase.glade:
691         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
692         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
693         * plugins/magnatune/magnatune/MagnatuneSource.py:
694         * plugins/magnatune/magnatune/TrackListHandler.py:
695         * plugins/magnatune/magnatune/__init__.py:
696         * plugins/magnatune/magnatune_circle_small.png:
697         * plugins/magnatune/magnatune_logo_color_small.png:
698         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
699         play and download tracks from the MagnaTune online music store. From
700         #345783.
702 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
704         * lib/rb-proxy-config.c: (rb_proxy_config_init),
705         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
706         (check_auto_proxy_config), (get_proxy_config):
707         Don't crash when eel_gconf_get_string returns NULL.
708         Fixes #359974.
710 2006-10-04  James Livingston  <doclivingston@gmail.com>
712         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
714         * plugins/audiocd/Makefile.am: fix the plugin when linking with
715         --as-needed. Fixes #358730
717 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
719         patch by:  William Jon McCann  <mccann@jhu.edu>
721         * sources/rb-iradio-source.c: (playing_source_changed_cb):
722         Fix some stupidity I introduced that caused crashes on shutdown.
723         Fixes #359181.
725 2006-10-02  William Jon McCann  <mccann@jhu.edu>
727         * plugins/audiocd/Makefile.am:
728         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
729         * plugins/iradio/.cvsignore:
730         * plugins/iradio/Makefile.am:
731         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
732         (impl_deactivate):
733         * plugins/power-manager/.cvsignore:
734         Install missing iradio ui file.  Don't leak ui filename.
735         Fix iradio install dir. Fix audiocd install dir.
736         Remove unused code from audio cd plugin.
738         Fixes #359170
740 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
742         * sources/rb-ipod-source.c: (impl_move_to_trash):
743         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
744         commented out while fixing bug 355235.  Oops.
746 2006-10-03  James Livingston  <doclivingston@gmail.com>
748         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
749         non-unicode warnings to debug statements, since they can occur with
750         slightly broken files.
752         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
753         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
754         iradio plugin is disabled and re-enabled.
756 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
758         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
759         (rhythmdb_entry_podcast_post_get_type):
760         * rhythmdb/rhythmdb.h:
761         * tests/bench-rhythmdb-load.c: (main):
762         Add definitions for some common extra-metadata fields,
763         remove iradio entry type definition, add the concept of entry type
764         categories, define categories for the core entry types.
765         Categories are used to decide if an entry can be copied to a removable
766         device, if it should be reported to audioscrobbler, etc.
768         * shell/Makefile.am:
769         * shell/rb-shell-player.c: (rb_shell_player_class_init),
770         (rb_shell_player_constructor), (rb_shell_player_init),
771         (rb_shell_player_get_property), (open_location_thread),
772         (rb_shell_player_open_location),
773         (rb_shell_player_sync_with_source),
774         (rb_shell_player_set_playing_source_internal), (tick_cb):
775         * shell/rb-shell.c: (construct_widgets), (construct_sources),
776         (rb_shell_player_elapsed_changed_cb):
777         Remove iradio-specific code, use extra metadata fields for streaming
778         title and artist name.
780         * data/ui/rhythmbox-ui.xml:
781         Add a placeholder for 'new ...' menu items.
783         * Makefile.am:
784         * sources/Makefile.am:
785         * configure.ac:
786         * data/rhythmbox.schemas:
787         * plugins/Makefile.am:
788         * plugins/iradio/Makefile.am:
789         * plugins/iradio/iradio-ui.xml:
790         * plugins/iradio/iradio.rb-plugin.desktop.in:
791         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
792         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
793         (rb_iradio_plugin_class_init):
794         iradio plugin, enabled and hidden by default.
796         * plugins/audioscrobbler/rb-audioscrobbler.c:
797         (rb_audioscrobbler_song_changed_cb):
798         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
799         * sources/rb-daap-source.c: (rb_daap_source_new):
800         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
801         Define entry type categories, and use them where appropriate.
803         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
804         (rb_iradio_source_constructor), (rb_iradio_source_new),
805         (impl_get_status), (impl_want_uri), (buffering_cb),
806         (check_entry_type), (streaming_title_request_cb),
807         (streaming_artist_request_cb), (extra_metadata_gather_cb),
808         (info_available_cb), (playing_entry_changed_cb),
809         (playing_source_changed_cb):
810         Move streaming metadata and buffering handling here from
811         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
812         title or artist changes, and handle request and gather signals for
813         those.
815         * widgets/rb-header.c: (rb_header_class_init),
816         (rb_header_set_property), (rb_header_get_property),
817         (rb_header_new), (append_and_free), (rb_header_sync):
818         * widgets/rb-header.h:
819         Rework to use streaming artist and title extra-metadata.
820         streaming-artist overrides entry artist, and streaming-title means
821         entry title is a stream name, displayed in brackets.
823         * doc/reference/Makefile.am:
824         * doc/reference/rhythmbox.types:
825         Remove iradio stuff from gtk-doc build.
827         Fixed #347097.
829 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
831         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
833         * bindings/python/rhythmdb.defs:
834         * lib/rb-marshal.list:
835         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
836         (rhythmdb_emit_entry_deleted),
837         (rhythmdb_entry_extra_metadata_accumulator),
838         (rhythmdb_entry_request_extra_metadata),
839         (rhythmdb_emit_entry_extra_metadata_notify),
840         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
841         * rhythmdb/rhythmdb.h:
842         Add signals for dealing with transient metadata outside the set stored
843         in RhythmDBEntry:
844         - entry_extra_metadata_request returns a value for the requested
845           metadata field
846         - entry_extra_metadata_notify notifies observers of a change to an
847           extra metadata field
848         - entry_extra_metadata_gather returns the values of all extra metadata
849           fields
851         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
852         (rb_shell_player_extra_metadata_cb):
853         Sync the display on extra metadata changes and emit dbus signals when
854         we can marshal the value.
856         * shell/rb-shell.c: (rb_shell_get_song_properties):
857         Implement rb_shell_song_get_properties using
858         rhythmdb_entry_gather_metadata.
860         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
861         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
862         * configure.ac:
863         Add GValue marshaller for python (until bug 351072 is fixed)
865         From #345592.
867 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
869         * configure.ac:
870         * data/rhythmbox.schemas:
871         * plugins/Makefile.am:
872         * plugins/power-manager/Makefile.am:
873         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
874         * plugins/power-manager/rb-power-manager-plugin.c:
875         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
876         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
877         (playing_changed_cb), (impl_activate), (impl_deactivate):
878         gnome-power-manager integration: inhibit suspend while playing.
879         Fixes #344979.
881 2006-10-02  James Livingston  <doclivingston@gmail.com>
883         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
884         and Alex Lancaster  <alexl@users.sourceforge.net>
886         * help/C/rhythmbox.xml: fix some mispellings and grammer.
887         Fixes #353143, #353146 and #353147.
889 ============ Version 0.9.6
891 2006-10-01  James Livingston  <doclivingston@gmail.com>
893         * configure.ac: bump version to 0.9.6. enable tag-writing and
894         ipod-writing by default
896         * NEWS: update NEWS
898 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
900         patch by:  William Jon McCann  <mccann@jhu.edu>
902         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
903         Use a local GError in case no error pointer pointer is passed in.
904         From bug #358396.
906 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
908         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
909         Don't reference members of freed structures.
911 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
913         patch by:  William Jon McCann  <mccann@jhu.edu>
915         * player/rb-recorder-gst.c: (rb_recorder_burn):
916         Drop GDK lock before entering n-c-b.  Fixes #353894?
918 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
920         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
921         (impl_activate):
922         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
924 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
926         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
927         Call lirc_init before lirc_readconfig so we don't crash if the user's
928         .lircrc file has any mode sections. Fixes #357419.
930 2006-09-24  James Livingston  <doclivingston@gmail.com>
932         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
933         if we get called twice, as that can happen. Fixes #357214.
935 2006-09-24  James Livingston  <doclivingston@gmail.com>
937         * backends/rb-encoder.h: add "file access" error
939         * lib/rb-file-helpers.c: (rb_dot_dir):
940         * podcast/rb-podcast-manager.c:
941         (rb_podcast_manager_download_file_info_cb): remove directory creation
942         race condition.
944         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
945         (create_parent_dirs), (rb_encoder_gst_encode): check result of
946         directory creation. Fixes #347743
948 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
950         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
951         Strip trailing whitespace
953 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
955         * rhythmdb/Makefile.am:
956         * rhythmdb/rhythmdb-private.h:
957         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
958         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
959         * rhythmdb/rhythmdb-tree.h:
960         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
961         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
962         * rhythmdb/rhythmdb.h:
963         Rather than aborting, show an error and refuse to load the database when
964         it appears to come from the future.  From bug #350304.
966 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
968         * bindings/python/rhythmdb.override:
969         Make entry_foreach usable.
971 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
973         * sources/rb-podcast-source.c: (rb_podcast_source_init):
974         Scale the icon so it matches the rest of the sources.
975         Fixes #351410.
977 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
979         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
980         (rhythmdb_property_model_set_query_model_internal),
981         (rhythmdb_property_model_row_inserted_cb),
982         (rhythmdb_property_model_prop_changed_cb),
983         (rhythmdb_property_model_entry_removed_cb),
984         (rhythmdb_property_model_delete),
985         (rhythmdb_property_model_perform_sync):
986         Use the hash table to track hidden entries, rather than visible
987         entries.  Cuts memory usage fairly significantly.  From bug #347425.
989 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
991         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
992         Patch from Christian Becke to fix compilation with -O3, bug #355945.
994 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
996         * sources/rb-ipod-source.c: (add_rb_playlist),
997         (impl_move_to_trash), (impl_delete_thyself):
998         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1000         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1001         Make sure we don't leave the sourcelist thinking a deleted source is
1002         still playing.  Fixes nothing.
1004 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1006         * shell/rb-shell.c:
1007         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1008         'Music->Import Folder' menu item for better icon theme coverage.
1009         Fixes #354575.
1011 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1013         * rhythmdb/rhythmdb-private.h:
1014         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1015         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1016         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1017         (rhythmdb_load), (rhythmdb_save_async):
1018         Use a limited thread pool for adding URIs to the database.
1019         Fixes #352494.
1021 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1023         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1024         Do something like the previous change, but for gstreamer 0.10
1025         this time.  Oops.  Really fixes #349569.
1027 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1029         * backends/gstreamer/rb-player-gst.c: (error_cb):
1030         Ignore 'internal data flow error' messages if we've already got an
1031         error for the file.  Fixes #349569.
1033 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1035         * shell/rb-shell-clipboard.c:
1036         (rb_shell_clipboard_playlist_deleted_cb):
1037         Rebuild 'add to playlist' menu before removing actions for deleted
1038         playlists, and don't unref the action, as we never had a reference on
1039         it to begin with.  Fixes #354599.
1041 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1043         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1044         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1045         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1047 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1049         * daapsharing/rb-daap-connection.c: (handle_playlists):
1050         Reverse the list of playlists on the DAAP server so it ends up in the
1051         right order.  Fixes #353926.
1053 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1055         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1056         Fully process each code so the LIRC client returns to its normal state
1057         when we're done.  Makes LIRC actually work properly for me.
1059 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1061         patch by: Ed Catmur  <ed@catmur.co.uk>
1063         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1064         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1065         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1067 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1069         patch by: James Livingston <doclivingston@gmail.com>
1071         * configure.ac:
1072         * data/rhythmbox.schemas:
1073         * metadata/Makefile.am:
1074         * plugins/Makefile.am:
1075         * plugins/audiocd/.cvsignore:
1076         * plugins/audiocd/Makefile.am:
1077         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1078         * plugins/audiocd/rb-audiocd-plugin.c:
1079         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1080         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1081         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1082         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1083         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1084         (rb_audiocd_plugin_playing_uri_changed_cb),
1085         (nautilus_burn_drive_get_device),
1086         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1087         (impl_activate), (_delete_cb), (impl_deactivate):
1088         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1089         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1090         * shell/main.c: (main):
1091         * shell/rb-removable-media-manager.c:
1092         (rb_removable_media_manager_finalize),
1093         (rb_removable_media_manager_load_media),
1094         (rb_removable_media_manager_mount_volume),
1095         (rb_removable_media_manager_scan):
1096         * sources/Makefile.am:
1097         * sources/rb-audiocd-source.c:
1098         * sources/rb-audiocd-source.h:
1099         Make auto CD support a plugin.
1101         Fixes #349415.
1103 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1105         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1106         Add a final rhythmdb_commit to make sure all songs from the share show
1107         up in the daap source.  Fixes #353913.
1109 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1111         * sources/rb-sourcelist-model.c:
1112         (rb_sourcelist_model_drag_data_received),
1113         (rb_sourcelist_model_row_drop_possible):
1114         Re-enable dragging of a set of tracks to the source list to create a
1115         new static playlist.  Fixes #353893.
1117 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * widgets/bacon-volume.c: (cb_button_timeout):
1120         Actually drop the GDK lock, rather than returning while holding it.
1121         Fixes #353895.
1123 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1125         * plugins/generic-player/rb-generic-player-source.c:
1126         (rb_generic_player_source_constructor),
1127         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1128         (rb_generic_player_source_load_songs), (load_playlist_file),
1129         (default_load_playlists), (get_hal_context):
1130         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1131         Fixes #353483.
1133 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1135         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1136         Canonicalise URIs received from gnome-vfs file monitor.
1137         Fixes #353447.
1139 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1141         * help/C/rhythmbox.xml: unbreak help build
1142         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1143         Unbuffer the IO channel.  Fixes some weirdness for me.
1145 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1147         * help/C/rhythmbox.xml:
1148         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1149         (impl_activate), (impl_deactivate):
1150         Add 'playpause' LIRC command.
1152 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1154         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1155         (rb_source_finalize):
1156         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1157         when disconnecting generic audio players.
1159 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1161         patch by: Paolo Borelli  <pborelli@katamail.com>
1163         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1164         Fix a small leak.
1166 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1168         * backends/gstreamer/rb-player-gst.c:
1169         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1170         Don't actually disable the seek bar for non-seekable songs,
1171         because we can't reliably tell yet.
1173 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1175         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1176         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1177         (db_entry_deleted_cb), (rb_daap_share_server_start),
1178         (rb_daap_share_server_stop):
1179         * rhythmdb/rhythmdb-private.h:
1180         * rhythmdb/rhythmdb-tree.c: (save_entry):
1181         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1182         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1183         (rhythmdb_entry_get_ulong):
1184         * rhythmdb/rhythmdb.h:
1185         Give db entries a numeric ID property, replacing the daap server's
1186         entry->id map.  From #347665.
1188 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1190         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1191         * widgets/rb-header.c: (rb_header_class_init),
1192         (rb_header_set_property), (rb_header_get_property),
1193         (rb_header_set_playing_entry), (rb_header_sync),
1194         (rb_header_sync_time):
1195         * widgets/rb-header.h:
1196         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1197         insensitive when the player backend tells us we can't seek in the
1198         current song.  From #330410.
1200 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1202         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1203         Don't try to unref previous/next entries if they aren't there.
1204         Fixes #351806.
1206 2006-08-15  James Livingston  <doclivingston@gmail.com>
1208         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1209         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1210         mountpoint into a RBRefString and compare equality of those, rather
1211         than doign lots of strcmp()s.
1213         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1214         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1215         status notification as well as the visibility update in an idle
1216         callback. Makes it take much less time to update after a volume
1217         mount/unmount event.
1219 2006-08-15  James Livingston  <doclivingston@gmail.com>
1221         patch by: Christian Becke  <christianbecke@web.de>
1223         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1224         multiple selections in the Import Folder dialog. Fixes #351414.
1226 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1228         * shell/rb-shell.c: (construct_widgets):
1229         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1230         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1231         (rb_statusbar_get_property), (rb_statusbar_new):
1232         * shell/rb-statusbar.h:
1233         Use the connect-proxy signal from the UI manager, which covers all
1234         action groups, rather than just one.  Fixes #351280.
1236 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1238         * widgets/rb-library-browser.c: (rebuild_child_model):
1239         Fix query model reference counts (bug #349601).
1241 2006-08-15  James Livingston  <doclivingston@gmail.com>
1243         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1244         Error signals be non-recursive. Fixes a highly-unlikely issue that
1245         could have caused #322972.
1247 2006-08-14  James Livingston  <doclivingston@gmail.com>
1249         * sources/rb-auto-playlist-source.c:
1250         (rb_auto_playlist_source_init):
1251         * sources/rb-static-playlist-source.c:
1252         (rb_static_playlist_source_init):
1254 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1256         * sources/rb-browser-source.c:
1257         * sources/rb-import-errors-source.c:
1258         * sources/rb-iradio-source.c:
1259         * sources/rb-library-source.c:
1260         * sources/rb-missing-files-source.c:
1261         * sources/rb-play-queue-source.c:
1262         * sources/rb-playlist-source.c:
1263         * sources/rb-podcast-source.c:
1264         * sources/rb-source.c:
1265         Make entry-type a property on RBSource, rather than on most of its
1266         subclasses.  Fixes #347288.
1268 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1270         * remote/dbus/rb-client.c: (parse_pattern),
1271         (create_rb_shell_proxies), (main):
1272         Actually implement %ag and %aG (genre) for --print-playing-format
1274 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1276         * lib/rb-debug.c: (rb_debug_real):
1277         No point allocating a buffer for the timestamp when we can just put it
1278         on the stack.
1280 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1282         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1283         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1285 2006-08-11  James Livingston  <doclivingston@gmail.com>
1287         * podcast/rb-podcast-manager.c:
1288         (rb_podcast_manager_update_synctime): fix accidental commit in the
1289         last, which caused a warning.
1291 2006-08-11  James Livingston  <doclivingston@gmail.com>
1293         * data/rhythmbox.schemas:
1294         * podcast/rb-podcast-manager.c:
1295         (rb_podcast_manager_update_synctime): change the schema's
1296         update-inteval value from 0 to 1, which causes it to update on
1297         startup, rather than never. Should fixs #343818.
1299 2006-08-11  James Livingston  <doclivingston@gmail.com>
1301         * configure.ac:
1302         * data/Makefile.am:
1303         - data/rhythmbox.desktop.in:
1304         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1305         the @VERSION@ can be substituted in. Fix some issues with newer
1306         bug-buddy versions. Fixes #348853.
1308 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1310         * data/rhythmbox.schemas:
1311         * plugins/Makefile.am:
1312         * plugins/artdisplay/Makefile.am:
1313         * plugins/audioscrobbler/Makefile.am:
1314         * plugins/cd-recorder/Makefile.am:
1315         * plugins/generic-player/Makefile.am:
1316         * plugins/ipod/Makefile.am:
1317         * plugins/lirc/Makefile.am:
1318         * plugins/lyrics/Makefile.am:
1319         * plugins/pythonconsole/Makefile.am:
1320         * plugins/rb-module.c:
1321         * plugins/rb-module.h:
1322         * plugins/rb-plugin-manager.c: (configure_button_cb),
1323         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1324         (plugin_manager_populate_lists), (plugin_manager_set_active),
1325         (plugin_manager_toggle_active),
1326         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1327         (rb_plugin_manager_finalize):
1328         * plugins/rb-plugin-manager.h:
1329         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1330         (rb_plugin_find_file):
1331         * plugins/rb-plugin.h:
1332         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1333         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1334         (rb_plugins_engine_init), (rb_plugin_info_free),
1335         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1336         (rb_plugins_engine_deactivate_plugin),
1337         (rb_plugins_engine_plugin_is_active),
1338         (rb_plugins_engine_plugin_is_visible),
1339         (rb_plugins_engine_plugin_is_configurable),
1340         (rb_plugins_engine_configure_plugin),
1341         (rb_plugins_engine_get_plugin_name),
1342         (rb_plugins_engine_get_plugin_description),
1343         (rb_plugins_engine_get_plugin_authors),
1344         (rb_plugins_engine_get_plugin_website),
1345         (rb_plugins_engine_get_plugin_copyright),
1346         (rb_plugins_engine_get_plugin_icon):
1347         * plugins/rb-plugins-engine.h:
1348         * plugins/rb-python-module.c: (rb_python_module_init_python),
1349         (rb_python_module_load), (rb_python_module_unload),
1350         (rb_python_module_class_init), (rb_python_module_new),
1351         (finalise_collect_cb), (rb_python_shutdown):
1352         * plugins/rb-python-module.h:
1353         * plugins/rb-python-plugin.c: (call_python_method),
1354         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1355         (impl_is_configurable), (rb_python_object_get_type):
1356         * plugins/rb-python-plugin.h:
1357         * plugins/rb/Makefile.am:
1359         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1360         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1361         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1362         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1363         special case loading of dirs.  Install plugins to subdirectors of
1364         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1365         not DATADIR.  Fixes #350352
1367 2006-08-10  James Livingston  <doclivingston@gmail.com>
1369         * daapsharing/rb-daap-connection.c: (connection_connected),
1370         (connection_disconnected), (connection_operation_done):
1371         * daapsharing/rb-daap-share.c: (name_collision_cb):
1372         * plugins/generic-player/rb-generic-player-source.c:
1373         (rb_generic_player_source_load_playlists):
1374         * podcast/rb-podcast-manager.c:
1375         (rb_podcast_manager_download_entry),
1376         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1377         (end_job), (rb_podcast_manager_event_loop):
1378         * rhythmdb/rhythmdb-property-model.c:
1379         (rhythmdb_property_model_perform_sync):
1380         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1381         (rhythmdb_query_model_process_update), (idle_process_update),
1382         (rhythmdb_query_model_reapply_query_cb):
1383         * shell/rb-play-order.c: (sync_playing_entry_cb):
1384         * shell/rb-removable-media-manager.c:
1385         (rb_removable_media_manager_load_media):
1386         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1387         (rb_shell_clipboard_sync),
1388         (rb_shell_clipboard_entryview_changed_cb),
1389         (rb_shell_clipboard_entries_changed_cb),
1390         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1391         (rebuild_playlist_menu_idle),
1392         (rb_shell_clipboard_playlist_added_cb):
1393         * shell/rb-shell-player.c: (notify_playing_idle),
1394         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1395         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1396         (rb_shell_quit):
1397         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1398         * sources/rb-library-source.c: (add_child_sources_idle):
1399         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1400         (burn_cd_idle):
1401         * sources/rb-source.c: (update_visibility_idle):
1402         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1403         (cb_button_press):
1404         * widgets/rb-druid.c: (idle_set_sensitive):
1405         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1406         take the GDK lock when we should be, from #348588
1408 2006-08-09  James Livingston  <doclivingston@gmail.com>
1410         * rhythmdb/rhythmdb-property-model.c:
1411         (rhythmdb_property_model_get_path),
1412         (rhythmdb_property_model_get_value),
1413         (rhythmdb_property_model_iter_next): don't attempt to verify the
1414         iterator if it's the All value, since it isn't valid. Fixes a
1415         potential crasher.
1417 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1419         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1420         (rb_podcast_manager_download_file_info_cb),
1421         (rb_podcast_manager_abort_download), (download_info_free),
1422         (download_info_new):
1423         Use gnome_vfs_async_get_file_info to figure out the local filename for
1424         a podcast episode, so we get the filename from the target of any
1425         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1426         the query string, then append it later, to stop gnome-vfs from
1427         converting 'http://' to 'http:/'.  If the local filename ends with the
1428         query string, remove it.  Fixes #330766 and #321991.
1430 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1432         * sources/rb-library-source.c: (impl_want_uri):
1433         * sources/rb-static-playlist-source.c: (impl_want_uri):
1434         Treat sftp:// URIs as likely indicators of songness.
1436 2006-08-07  James Livingston  <doclivingston@gmail.com>
1438         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1439         remote tracks with GStreamer 0.10, and remember their visibility like
1440         local ones.
1442 2006-08-07  James Livingston  <doclivingston@gmail.com>
1444         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1445         apparently it's a borrowed reference. Should fix #347072.
1447 2006-08-06  James Livingston  <doclivingston@gmail.com>
1449         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1450         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1451         (rb_shuffle_play_order_get_previous),
1452         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1453         (remove_from_history), (add_randomly_to_history),
1454         (rb_shuffle_sync_history_with_query_model),
1455         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1456         (query_model_and_history_contents_match): remove the tentatative
1457         history stuff, which is from older code, like we did for -random a few
1458         weeks ago.
1460 2006-08-06  James Livingston  <doclivingston@gmail.com>
1462         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1463         (rb_queue_play_order_get_previous):
1464         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1465         (rb_random_play_order_go_next),
1466         (rb_random_play_order_get_previous), (rb_random_db_changed):
1467         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1468         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1469         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1470         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1471         (rb_shuffle_entry_removed),
1472         (query_model_and_history_contents_match):
1473         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1474         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1475         (default_has_next), (default_has_previous),
1476         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1477         various play orders, after reviewing the code. Should fix #349601.
1479 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1481         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1482         Pass the items_per_notification parameter to
1483         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1484         with some versions of python.
1486 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1488         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1489         Don't try to draw the icon if the drawable area is too small.
1490         Fixes #349838.
1492 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1494         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1496         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1498 2006-08-05  James Livingston  <doclivingston@gmail.com>
1500         * configure.ac: tell libtool not to check for C++/fortran/ etc
1501         compilers
1503         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1504         watch, to fix some gconf warnings.
1506 2006-08-04  James Livingston  <doclivingston@gmail.com>
1508         patch by: William Jon McCann  <mccann@jhu.edu>
1510         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1512 2006-08-04  James Livingston  <doclivingston@gmail.com>
1514         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1515         actually fix #349722 this time
1517 2006-08-04  James Livingston  <doclivingston@gmail.com>
1519         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1520         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1521         know about. Fixes #348571.
1523 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1525         various fixes for valgrind complaints:
1526         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1527         (init_rb_tree_dnd_data):
1528           free the associated target list, too
1529         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1530           initialize allocation.{x,y,width,height} correctly
1531         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1532         (rb_entry_view_constructor):
1533           free strings when no longer needed
1535 2006-08-03  James Livingston  <doclivingston@gmail.com>
1537         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1538         real GtkTreeModel not the filter. Fixes #349722
1540 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1542         * backends/gstreamer/rb-player-gst.c:
1543         Only use DAAP seek hacks for GStreamer 0.8 builds.
1545         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1546         (rb_daap_src_open):
1547         * daapsharing/rb-daap-src.h:
1548         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1550         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1551         (rb_daap_source_get_headers):
1552         * sources/rb-daap-source.h:
1553         Reimplement rb_daap_source_get_headers for the case where we've
1554         already got the byte offset.  Add a small hack to
1555         rb_daap_source_class_init to prevent the linker from dropping
1556         rb-daap-src.o entirely.
1558         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1560 2006-08-02  James Livingston  <doclivingston@gmail.com>
1562         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1563         (handle_song_listing), (handle_playlist_entries),
1564         (rb_daap_connection_dispose):
1565         * sources/rb-daap-source.c: (_add_location_to_playlist),
1566         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1567         for playlist URIs, not pointless duplicate strings. From #347425.
1569 2006-08-02  James Livingston  <doclivingston@gmail.com>
1571         * data/rhythmbox.schemas:
1572         * lib/rb-preferences.h:
1573         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1574         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1575         (plugin_manager_set_active), (plugin_manager_toggle_active),
1576         (plugin_manager_get_selected_plugin), (name_search_cb),
1577         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1578         (rb_plugin_manager_finalize):
1579         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1580         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1581         (rb_plugins_engine_plugin_is_visible),
1582         (rb_plugins_engine_plugin_visible_cb):
1583         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1584         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1586 2006-08-02  James Livingston  <doclivingston@gmail.com>
1588         * sources/rb-sourcelist-model.c:
1589         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1590         drop on a source. Fixes #349580.
1592 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1594         * configure.ac:
1595         * daapsharing/rb-daap-dialog.c:
1596         * daapsharing/rb-daap-dialog.h:
1597         * shell/Makefile.am:
1598         * sources/Makefile.am:
1599         * sources/rb-daap-source.c: (connection_auth_cb),
1600         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1601         Add gnome-keyring support for DAAP passwords and use
1602         gnome-password-dialog instead of our own.  
1603         Patch mostly by James Livingston.  Fixes bug #330346.
1605 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1607         * shell/rb-shell-player.c:
1608         (rb_shell_player_set_playing_source_internal),
1609         (rb_shell_player_sync_with_selected_source):
1610         Remove call to rb_source_have_url, as we never did anything with the
1611         result.
1613         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1614         * sources/rb-import-errors-source.c:
1615         (rb_import_errors_source_class_init):
1616         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1617         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1618         * sources/rb-library-source.c: (rb_library_source_class_init),
1619         (impl_want_uri), (impl_add_uri):
1620         * sources/rb-missing-files-source.c:
1621         (rb_missing_files_source_class_init):
1622         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1623         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1624         (impl_want_uri), (impl_add_uri):
1625         * sources/rb-source.c: (rb_source_class_init),
1626         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1627         * sources/rb-source.h:
1628         * sources/rb-static-playlist-source.c:
1629         (rb_static_playlist_source_class_init), (search_action_changed),
1630         (impl_want_uri):
1631         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1632         When adding a URI, want_uri gets called for each source; the one that
1633         wants it most gets the URI passed to its add_uri method.
1634         
1635         * shell/rb-shell.h:
1636         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1637         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1638         (handle_playlist_entry_cb), (rb_shell_load_uri):
1639         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1640         Use want_uri and add_uri to simplify and make generic
1641         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1643         If a source that returns TRUE from try_playlist wants all the URIs in
1644         the playlist, give it the playlist URI instead.  This retains the
1645         existing behaviour for adding iradio playlists.
1647         * bindings/python/rb.defs: Update for above changes.
1649         From bug #347097.
1651 2006-07-31  James Livingston  <doclivingston@gmail.com>
1653         * data/Makefile.am:
1654         * data/generate-keys.sh: fix the build I broke with the last commit.
1655         Oops.
1657 2006-07-31  James Livingston  <doclivingston@gmail.com>
1659         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1660         in a long time. Fixes #349179.
1662 2006-07-30  James Livingston  <doclivingston@gmail.com>
1664         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1665         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1666         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1668 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1670         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1671         Don't tell the browser the query is still pending when doing a subset
1672         search.  Fixes #348617 again.
1674 2006-07-30  James Livingston  <doclivingston@gmail.com>
1676         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1677         override definition. Fixes #348893.
1679 2006-07-30  James Livingston  <doclivingston@gmail.com>
1681         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1682         rb_error_dialog, as it's above this in the stack.
1684         * lib/rb-util.c: (rb_gvalue_compare):
1685         * lib/rb-util.h: change the return type to int, as we're returning
1686         -1/0/1
1688         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1689         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1690         (rb_query_creator_set_sorting): minor leak fixes
1692 2006-07-28  James Livingston  <doclivingston@gmail.com>
1694         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1695         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1696         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1697         (get_or_create_genre), (remove_entry_from_album),
1698         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1699         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1700         (rhythmdb_tree_entry_lookup_by_location),
1701         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1702         (rhythmdb_hash_tree_foreach),
1703         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1704         threadsafe. Fix a nasty problem if the _foreach callback function
1705         caused the addition/removal of entries.
1707 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1709         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1710         Clear selection before changing our idea of the model.  Fixes crashes
1711         on model changes while playing.
1713 2006-07-27  James Livingston  <doclivingston@gmail.com>
1715         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1716         a missing rb_refstring_unref.
1718         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1719         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1720         oops. should hopefully fix the crash reported on #347425.
1722 2006-07-27  James Livingston  <doclivingston@gmail.com>
1724         * backends/gstreamer/rb-encoder-gst.c:
1725         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1727         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1728         thread-safety issue.
1730 2006-07-27  James Livingston  <doclivingston@gmail.com>
1732         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1733         * rhythmdb/rb-refstring.h: add a new function which returns the
1734         RBRefString that matches a string, but never creates a new one.
1736         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1737         (monitor_entry_file), (rhythmdb_check_changed_file),
1738         (rhythmdb_directory_change_cb):
1739         * rhythmdb/rhythmdb-private.h:
1740         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1741         (unparent_entries), (free_unknown_entries),
1742         (rhythmdb_tree_parser_start_element),
1743         (rhythmdb_tree_parser_end_element), (save_entry),
1744         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1745         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1746         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1747         (rhythmdb_tree_entry_type_registered):
1748         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1749         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1750         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1751         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1752         (rhythmdb_process_metadata_load),
1753         (rhythmdb_process_file_created_or_modified),
1754         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1755         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1756         (action_thread_main), (rhythmdb_entry_set_internal),
1757         (rhythmdb_entry_move_to_trash_set_error),
1758         (rhythmdb_entry_move_to_trash),
1759         (rhythmdb_entry_lookup_by_location),
1760         (rhythmdb_entry_lookup_by_location_refstring),
1761         (default_sync_metadata), (rhythmdb_entry_get_string),
1762         (rhythmdb_entry_get_refstring):
1763         * rhythmdb/rhythmdb.h:
1764         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1765         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1766         (rb_playlist_source_row_deleted),
1767         (rb_playlist_source_entry_added_cb),
1768         (rb_playlist_source_location_in_map),
1769         (rb_playlist_source_add_to_map): Make the LOCATION field of
1770         RhythmDBEntry be a RBRefString instead, which reduces some of the
1771         memory-fragmentation on startup and saves RBStaticPlaylistSource
1772         duplicating all the strings.
1774 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1776         * rhythmdb/rhythmdb-query-model.c:
1777         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1778         * rhythmdb/rhythmdb-query-model.h:
1779         Add function to copy contents from one query model to another,
1780         filtered by the destination model's query.
1782         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1783         Use the above to create a new query model for subset searches, rather
1784         than filtering the existing model. Fixes #348617.
1786 2006-07-25  James Livingston  <doclivingston@gmail.com>
1788         * rhythmdb/rhythmdb-query-model.c:
1789         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1790         lost from static playlists. Yet again. Fixes #323095.
1792         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1793         case for the above, so that we should know if a change will break it
1794         again.
1796 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1798         * data/rhythmbox.schemas: Fix for last commit.
1800         * podcast/rb-podcast-manager.c:
1801         (rb_podcast_manager_download_entry),
1802         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1803         (rb_podcast_manager_db_entry_deleted_cb):
1804         * rhythmdb/rhythmdb-property-model.c:
1805         (rhythmdb_property_model_set_query_model_internal),
1806         (rhythmdb_property_model_set_property),
1807         (rhythmdb_property_model_finalize),
1808         (rhythmdb_property_model_drag_data_get):
1809         * rhythmdb/rhythmdb-query-model.c:
1810         (rhythmdb_query_model_set_query_internal),
1811         (rhythmdb_query_model_set_property),
1812         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1813         * rhythmdb/rhythmdb-query-model.h:
1814         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1815         (rb_browser_source_do_query):
1816         * sources/rb-import-errors-source.c:
1817         (rb_import_errors_source_constructor):
1818         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1819         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1820         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1821         (impl_search), (impl_get_status),
1822         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1823         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1824         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1825         * sources/rb-missing-files-source.c:
1826         (rb_missing_files_source_constructor),
1827         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1828         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1829         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1830         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1831         (rb_playlist_source_save_playlist),
1832         (rb_playlist_source_new_from_xml),
1833         (rb_playlist_source_save_to_xml),
1834         (rb_playlist_source_setup_entry_view),
1835         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1836         (rb_playlist_source_get_query_model),
1837         (rb_playlist_source_mark_dirty),
1838         (rb_playlist_source_location_in_map),
1839         (rb_playlist_source_add_to_map):
1840         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1841         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1842         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1843         (impl_delete), (rb_podcast_source_state_prefs_sync),
1844         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1845         (impl_get_config_widget), (rb_podcast_source_add_feed),
1846         (rb_podcast_source_cmd_download_post),
1847         (rb_podcast_source_cmd_cancel_download),
1848         (rb_podcast_source_cmd_delete_feed),
1849         (rb_podcast_source_cmd_update_feed),
1850         (rb_podcast_source_cmd_update_all),
1851         (rb_podcast_source_cb_interval_changed_cb),
1852         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1853         (rb_podcast_source_entry_activated_cb):
1854         * sources/rb-source.c: (rb_source_finalize),
1855         (rb_source_set_query_model_internal), (rb_source_set_property),
1856         (default_get_status):
1857         * sources/rb-static-playlist-source.c:
1858         (rb_static_playlist_source_dispose),
1859         (rb_static_playlist_source_finalize),
1860         (rb_static_playlist_source_constructor),
1861         (rb_static_playlist_source_do_query):
1862         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1863         (rb_entry_view_set_shell_player_internal),
1864         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1865         (rb_entry_view_set_model), (rb_entry_view_append_column),
1866         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1867         (rb_entry_view_set_state):
1868         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1869         (rb_library_browser_finalize), (rb_library_browser_new),
1870         (update_browser_property_visibilty), (view_selection_reset_cb),
1871         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1872         (restore_selection), (rebuild_child_model),
1873         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1874         * widgets/rb-property-view.c:
1875         (rb_property_view_set_model_internal),
1876         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1877         (rb_property_view_get_model), (rb_property_view_set_model),
1878         (rb_property_view_get_num_properties),
1879         (rb_property_view_set_selection),
1880         (rb_property_view_append_column_custom),
1881         (rb_property_view_set_search_func):
1882         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1883         From #347446
1885 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1887         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1888         Work around a small n-c-b API change.
1890 2006-07-25  James Livingston  <doclivingston@gmail.com>
1892         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1894         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1895         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1896         aborting entry-emission on finalise
1898 2006-07-25  James Livingston  <doclivingston@gmail.com>
1900         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1901         warning when entry is NULL.
1903 2006-07-25  James Livingston  <doclivingston@gmail.com>
1905         * help/sv/.cvsignore:
1906         * lib/.cvsignore:
1907         * plugins/generic-player/.cvsignore:
1908         * remote/.cvsignore:
1909         * remote/dbus/.cvsignore:
1910         * shell/.cvsignore:
1911         * tests/.cvsignore: more .cvsignore updates
1913 2006-07-24  James Livingston  <doclivingston@gmail.com>
1915         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1916         (transparent_expose_event), (make_transparent_again),
1917         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1918         apply a patch for EggTrayIcon so that it handled transparent panels
1919         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1920         Fixes #348208.
1922 2006-07-24  James Livingston  <doclivingston@gmail.com>
1924         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1925         queries rather than taking ownership when parsing a subquery. Fixed a
1926         crash exposed by the recent leak fixes.
1928         * doc/reference/tmpl/disclosure-widget.sgml:
1929         * doc/reference/tmpl/rb-debug.sgml:
1930         * doc/reference/tmpl/rb-metadata.sgml:
1931         * doc/reference/tmpl/rb-play-order.sgml:
1932         * doc/reference/tmpl/rb-playlist-manager.sgml:
1933         * doc/reference/tmpl/rb-playlist-source.sgml:
1934         * doc/reference/tmpl/rb-shell-player.sgml:
1935         * doc/reference/tmpl/rb-shell.sgml:
1936         * doc/reference/tmpl/rb-song-display-box.sgml:
1937         * doc/reference/tmpl/rhythmbox-unused.sgml:
1938         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1940 2006-07-24  James Livingston  <doclivingston@gmail.com>
1942         * lib/.cvsignore:
1943         * plugins/artdisplay/.cvsignore:
1944         * plugins/artdisplay/artdisplay/.cvsignore:
1945         * plugins/lyrics/.cvsignore:
1946         * plugins/pythonconsole/.cvsignore:
1947         * plugins/rb/.cvsignore: add/update various .cvsignore files
1949 2006-07-24  James Livingston  <doclivingston@gmail.com>
1951         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1952         (rb_refstring_ref): don't emit critical warnings when the refstring
1953         is NULL, as that happens often for podcast metadata.
1955         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1956         missing rhythmdb_entry_ref call
1958 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1960         * bindings/python/rb.override:
1961         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1962         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1963         (playlist_row_inserted_cb):
1964         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1965         * plugins/rb-plugin-manager.c:
1966         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1967         (rb_podcast_manager_copy_post),
1968         (rb_podcast_manager_db_entry_deleted_cb),
1969         (rb_podcast_manager_insert_feed):
1970         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1971         (rb_refstring_ref), (rb_refstring_get_sort_key):
1972         * rhythmdb/rhythmdb-private.h:
1973         * rhythmdb/rhythmdb-property-model.c:
1974         (rhythmdb_property_model_set_property),
1975         (rhythmdb_property_model_get_property),
1976         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1977         (rhythmdb_property_model_row_inserted_cb),
1978         (rhythmdb_property_model_prop_changed_cb),
1979         (rhythmdb_property_model_compare),
1980         (rhythmdb_property_model_insert),
1981         (rhythmdb_property_model_iter_from_string),
1982         (rhythmdb_property_model_get_column_type),
1983         (rhythmdb_property_model_get_iter),
1984         (rhythmdb_property_model_get_value),
1985         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1986         (rhythmdb_property_model_enable_drag):
1987         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1988         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1989         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1990         (rhythmdb_query_model_chain),
1991         (rhythmdb_query_model_entry_added_cb),
1992         (rhythmdb_query_model_entry_changed_cb),
1993         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1994         (rhythmdb_query_model_add_entry),
1995         (rhythmdb_query_model_insert_into_main_list),
1996         (rhythmdb_query_model_insert_into_limited_list),
1997         (rhythmdb_query_model_remove_from_main_list),
1998         (rhythmdb_query_model_remove_from_limited_list),
1999         (rhythmdb_query_model_update_limited_entries),
2000         (rhythmdb_query_model_emit_reorder),
2001         (rhythmdb_query_model_do_reorder),
2002         (rhythmdb_query_model_do_insert),
2003         (rhythmdb_query_model_move_entry),
2004         (rhythmdb_query_model_remove_entry),
2005         (rhythmdb_query_model_entry_to_iter),
2006         (rhythmdb_query_model_iter_to_entry),
2007         (rhythmdb_query_model_get_previous_from_entry),
2008         (rhythmdb_query_model_row_draggable),
2009         (rhythmdb_query_model_drag_data_delete),
2010         (rhythmdb_query_model_drag_data_get),
2011         (rhythmdb_query_model_drag_data_received),
2012         (rhythmdb_query_model_row_drop_possible),
2013         (rhythmdb_query_model_row_drop_position),
2014         (rhythmdb_query_model_add_results),
2015         (rhythmdb_query_model_query_complete),
2016         (rhythmdb_query_model_get_column_type),
2017         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2018         (rhythmdb_query_model_iter_nth_child),
2019         (apply_updated_entry_sequence),
2020         (rhythmdb_query_model_child_index_to_base_index),
2021         (rhythmdb_query_model_get_entry_index),
2022         (rhythmdb_query_model_base_row_inserted),
2023         (rhythmdb_query_model_base_row_deleted),
2024         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2025         (rhythmdb_query_model_location_sort_func),
2026         (rhythmdb_query_model_title_sort_func),
2027         (rhythmdb_query_model_album_sort_func),
2028         (rhythmdb_query_model_artist_sort_func),
2029         (rhythmdb_query_model_track_sort_func),
2030         (rhythmdb_query_model_double_ceiling_sort_func),
2031         (rhythmdb_query_model_ulong_sort_func),
2032         (rhythmdb_query_model_date_sort_func),
2033         (rhythmdb_query_model_string_sort_func),
2034         (rhythmdb_query_model_within_limit):
2035         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2036         (rhythmdb_tree_parser_start_element),
2037         (rhythmdb_tree_parser_end_element),
2038         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2039         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2040         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2041         (save_entry_uint64), (save_entry_double), (save_entry),
2042         (set_entry_album), (rhythmdb_tree_entry_new),
2043         (get_genres_hash_for_type), (get_or_create_genre),
2044         (get_or_create_artist), (get_or_create_album), (remove_child),
2045         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2046         (rhythmdb_tree_entry_delete), (remove_one_song),
2047         (rhythmdb_tree_entry_delete_by_type),
2048         (rhythmdb_tree_evaluate_query), (search_match_properties),
2049         (evaluate_conjunctive_subquery), (do_conjunction),
2050         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2051         (conjunctive_query_albums), (conjunctive_query_artists),
2052         (conjunctive_query_genre), (conjunctive_query),
2053         (split_query_by_disjunctions), (do_query_recurse),
2054         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2055         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2056         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2057         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2058         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2059         (extract_gtype_from_enum_entry),
2060         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2061         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2062         (rhythmdb_event_free), (rhythmdb_finalize),
2063         (rhythmdb_set_property), (rhythmdb_get_property),
2064         (rhythmdb_thread_create), (free_entry_changes),
2065         (emit_entry_changed), (sync_entry_changed),
2066         (process_added_entries_cb), (process_deleted_entries_cb),
2067         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2068         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2069         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2070         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2071         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2072         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2073         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2074         (rhythmdb_process_metadata_load),
2075         (rhythmdb_process_file_created_or_modified),
2076         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2077         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2078         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2079         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2080         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2081         (record_entry_change), (rhythmdb_entry_set_internal),
2082         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2083         (rhythmdb_entry_move_to_trash_cb),
2084         (rhythmdb_entry_move_to_trash_set_error),
2085         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2086         (rhythmdb_nice_elt_name_from_propid),
2087         (rhythmdb_propid_from_nice_elt_name),
2088         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2089         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2090         (rhythmdb_compute_status_normal), (default_sync_metadata),
2091         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2092         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2093         (podcast_get_playback_uri), (podcast_data_destroy),
2094         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2095         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2096         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2097         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2098         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2099         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2100         * rhythmdb/rhythmdb.h:
2101         * shell/rb-play-order-linear-loop.c:
2102         (rb_linear_play_order_loop_get_next),
2103         (rb_linear_play_order_loop_get_previous):
2104         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2105         (rb_linear_play_order_get_previous):
2106         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2107         * shell/rb-play-order-random.c: (get_query_model_contents):
2108         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2109         (get_query_model_contents):
2110         * shell/rb-play-order.c: (rb_play_order_constructor),
2111         (rb_play_order_finalize),
2112         (rb_play_order_set_playing_entry_internal),
2113         (rb_play_order_set_property), (rb_play_order_new),
2114         (rb_play_order_get_player), (rb_play_order_get_source),
2115         (rb_play_order_get_db), (rb_play_order_get_query_model),
2116         (rb_play_order_player_is_playing),
2117         (rb_play_order_set_playing_entry),
2118         (rb_play_order_get_playing_entry),
2119         (rb_play_order_playing_source_changed),
2120         (rb_play_order_query_model_changed),
2121         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2122         (default_has_next), (default_has_previous),
2123         (sync_playing_entry_cb), (default_playing_entry_removed),
2124         (rb_play_order_has_next), (rb_play_order_get_next),
2125         (rb_play_order_go_next), (rb_play_order_has_previous),
2126         (rb_play_order_get_previous), (rb_play_order_go_previous),
2127         (rb_play_order_model_not_empty),
2128         (rb_play_order_update_have_next_previous):
2129         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2130         (rb_playlist_manager_save_playlists),
2131         (rb_playlist_manager_set_automatic_playlist),
2132         (rb_playlist_manager_cmd_edit_automatic_playlist),
2133         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2134         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2135         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2136         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2137         (volume_pre_unmount_cb), (reemit_playing_signal),
2138         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2139         (rb_shell_player_handle_eos_unlocked),
2140         (rb_shell_player_handle_eos), (rb_shell_player_init),
2141         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2142         (playlist_entry_cb), (rb_shell_player_open_entry),
2143         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2144         (rb_shell_player_set_play_order),
2145         (rb_shell_player_set_playback_state),
2146         (rb_shell_player_sync_play_order),
2147         (rb_shell_player_play_order_update_cb),
2148         (rb_shell_player_jump_to_current), (swap_playing_source),
2149         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2150         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2151         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2152         (rb_shell_player_entry_activated_cb),
2153         (rb_shell_player_property_row_activated_cb),
2154         (rb_shell_player_entry_changed_cb),
2155         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2156         (rb_shell_player_pause),
2157         (rb_shell_player_get_playing_song_duration),
2158         (rb_shell_player_error), (error_cb), (tick_cb),
2159         (info_available_cb), (buffering_cb),
2160         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2161         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2162         (rb_shell_jump_to_current):
2163         * sources/rb-auto-playlist-source.c:
2164         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2165         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2166         (rb_auto_playlist_source_get_query):
2167         * sources/rb-auto-playlist-source.h:
2168         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2169         * sources/rb-import-errors-source.c:
2170         (rb_import_errors_source_constructor):
2171         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2172         * sources/rb-library-source.c: (filepath_parse_pattern):
2173         * sources/rb-missing-files-source.c:
2174         (rb_missing_files_source_constructor):
2175         * sources/rb-play-queue-source.c:
2176         (rb_play_queue_source_clear_queue),
2177         (rb_play_queue_source_track_info_cell_data_func):
2178         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2179         (rb_playlist_source_get_property), (playlist_iter_func),
2180         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2181         (rb_playlist_source_track_cell_data_func):
2182         * sources/rb-podcast-source.c: (construct_query_from_selection),
2183         (rb_podcast_source_post_status_cell_data_func),
2184         (rb_podcast_source_post_feed_cell_data_func),
2185         (rb_podcast_source_feed_title_search_func),
2186         (rb_podcast_source_post_date_cell_data_func):
2187         * sources/rb-source.c: (default_get_status),
2188         (rb_source_get_status), (rb_source_browser_toggled),
2189         (rb_source_update_play_statistics), (rb_source_search),
2190         (rb_source_get_config_widget), (default_add_to_queue),
2191         (rb_source_add_to_queue), (rb_source_receive_drag),
2192         (rb_source_gather_hash_keys):
2193         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2194         (rb_sourcelist_model_is_row_visible),
2195         (rb_sourcelist_model_row_is_separator),
2196         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2197         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2198         (rb_sourcelist_model_drag_data_get):
2199         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2200         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2201         (rb_sourcelist_visible_source_to_iter),
2202         (rb_sourcelist_edit_source_name), (set_source_playing),
2203         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2204         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2205         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2206         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2207         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2208         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2209         (rb_static_playlist_source_add_location_internal),
2210         (rb_static_playlist_source_row_inserted):
2211         * widgets/rb-entry-view.c: (type_ahead_search_func),
2212         (rb_entry_view_finalize), (rb_entry_view_set_model),
2213         (rb_entry_view_playing_cell_data_func),
2214         (rb_entry_view_rating_cell_data_func),
2215         (rb_entry_view_long_cell_data_func),
2216         (rb_entry_view_play_count_cell_data_func),
2217         (rb_entry_view_duration_cell_data_func),
2218         (rb_entry_view_year_cell_data_func),
2219         (rb_entry_view_quality_cell_data_func),
2220         (rb_entry_view_location_cell_data_func),
2221         (rb_entry_view_string_cell_data_func),
2222         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2223         (rb_entry_view_get_sorting_order),
2224         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2225         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2226         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2227         (rb_entry_view_playing_song_changed), (harvest_entries),
2228         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2229         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2230         (set_column_visibility):
2231         * widgets/rb-entry-view.h:
2232         * widgets/rb-header.c: (rb_header_new),
2233         (rb_header_set_playing_entry), (rb_header_set_title):
2234         * widgets/rb-library-browser.c: (rebuild_child_model),
2235         (rb_library_browser_set_model):
2236         * widgets/rb-property-view.c:
2237         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2238         (rb_property_view_set_property), (rb_property_view_get_property),
2239         (rb_property_view_reset), (rb_property_view_get_model),
2240         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2241         (rb_property_view_button_press_cb):
2242         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2243         (rb_query_creator_get_property), (rb_query_creator_load_query),
2244         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2245         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2246         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2247         (lookup_row_by_widget), (remove_button_click_cb),
2248         (add_button_click_cb), (create_property_option_menu):
2249         * widgets/rb-song-info.c: (rb_song_info_constructor),
2250         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2251         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2252         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2253         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2255 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2257         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2258         (rb_shell_player_get_property):
2259         Add a property providing access to the player backend object.
2261 2006-07-23  James Livingston  <doclivingston@gmail.com>
2263         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2264         (get_history), (rb_random_filter_history),
2265         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2266         remove the tentative history, since it appears to be a remanent from
2267         older play order code. The only thing it was doing was using up
2268         CPU-time and memory. From #345857
2270 2006-07-23  James Livingston  <doclivingston@gmail.com>
2272         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2274         * shell/main.c: (main):
2275         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2276         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2277         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2278         (rb_playlist_manager_load_playlists),
2279         (rb_playlist_manager_save_data):
2280         * shell/rb-playlist-manager.h:
2281         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2282         (rb_shell_get_property), (rb_shell_sync_state),
2283         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2284         (construct_sources), (idle_handle_load_complete):
2285         * shell/rb-shell.h: Add a command-line option for changing the
2286         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2288 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2290         * daapsharing/rb-daap-share.c: (databases_cb):
2291         Make sure we set status codes on HTTP responses.
2293 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2295         * configure.ac:
2296         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2297         (chunked_message_finished), (send_chunked_file),
2298         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2299         Use GMappedFile to send local files to DAAP clients where possible.  
2300         iTunes can't seek properly in files sent using chunked transfer 
2301         encoding.  Also remove the useless bitrate calculation code, as we
2302         never even used the result anyway.  From #330410.
2304 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2306         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2308         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2309         Enable multiple selection for 'import file'.  Fixes #347478.
2311 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2313         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2314         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2315         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2316         Fixes #348098.
2318 2006-07-20  James Livingston  <doclivingston@gmail.com>
2320         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2321         aren't NULL before calling strstr. Fixes #347998.
2323 2006-07-19  James Livingston  <doclivingston@gmail.com>
2325         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2327         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2328         MB that only have years. Fixes #347906.
2330 2006-07-19  James Livingston  <doclivingston@gmail.com>
2332         * rhythmdb/rhythmdb-private.h:
2333         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2334         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2335         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2336         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2337         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2338         (rhythmdb_execute_stat), (queue_stat_uri),
2339         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2340         (rhythmdb_load), (rhythmdb_entry_register_type),
2341         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2342         asynchronous vfs operations, and cancel them when shutting down the
2343         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2345         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2346         (test_rhythmdb_shutdown): wait until the db has been finalised before
2347         continuing on to the next test.
2349 2006-07-19  James Livingston  <doclivingston@gmail.com>
2351         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2352         right thing in the #ifdef. From #347832.
2354 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2356         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2357         Fix compile warning.
2359 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2361         * rhythmdb/rhythmdb-query-model.c:
2362         (rhythmdb_query_model_set_property),
2363         (rhythmdb_query_model_reapply_query_cb):
2364         Ignore old query == new query case.
2365         Fixes auto playlists with time-relative queries.
2367         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2368         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2369         (rhythmdb_query_to_string):
2370         * rhythmdb/rhythmdb.h:
2371         Add debug helper for printing queries in case someone needs it again.
2373 2006-07-18  James Livingston  <doclivingston@gmail.com>
2375         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2376         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2377         Fixes #347832
2379         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2380         write then into files.
2382 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2384         * daapsharing/rb-daap-connection.c:
2385         (rb_daap_connection_set_property):
2386         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2387         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2388         (add_playlist_to_mlcl), (databases_cb):
2389         * daapsharing/rb-daap-sharing.c: (create_share):
2390         * iradio/rb-new-station-dialog.c:
2391         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2392         * iradio/rb-station-properties-dialog.c:
2393         (rb_station_properties_dialog_finalize),
2394         (rb_station_properties_dialog_set_property),
2395         (rb_station_properties_dialog_get_current_entry):
2396         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2397         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2398         * plugins/generic-player/rb-generic-player-source.c:
2399         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2400         (handle_playlist_entry_cb):
2401         * plugins/generic-player/rb-nokia770-source.c:
2402         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2403         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2404         (visit_playlist_dirs), (hal_udi_is_psp):
2405         * podcast/rb-podcast-manager.c:
2406         * podcast/rb-podcast-properties-dialog.c:
2407         (rb_podcast_properties_dialog_finalize),
2408         (rb_podcast_properties_dialog_set_entry_view),
2409         (rb_podcast_properties_dialog_set_property):
2410         * rhythmdb/rhythmdb-property-model.c:
2411         * rhythmdb/rhythmdb-query-model.c:
2412         (rhythmdb_query_model_set_property),
2413         (rhythmdb_query_model_reapply_query_cb):
2414         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2415         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2416         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2417         (rhythmdb_event_free), (rhythmdb_shutdown),
2418         (rhythmdb_thread_create), (action_thread_main),
2419         (rhythmdb_do_full_query_async_parsed),
2420         (rhythmdb_do_full_query_internal):
2421         * shell/main.c: (main):
2422         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2423         * shell/rb-play-order.c: (rb_play_order_finalize),
2424         (rb_play_order_set_player),
2425         (rb_play_order_set_playing_entry_internal),
2426         (rb_play_order_set_property),
2427         (rb_play_order_playing_source_changed),
2428         (rb_play_order_query_model_changed):
2429         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2430         (rb_playlist_manager_set_source),
2431         (rb_playlist_manager_set_shell_internal),
2432         (rb_playlist_manager_set_property):
2433         * shell/rb-removable-media-manager.c:
2434         (rb_removable_media_manager_set_property),
2435         (rb_removable_media_manager_set_uimanager),
2436         (rb_removable_media_manager_cmd_eject_medium),
2437         (rb_removable_media_manager_cmd_copy_tracks):
2438         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2439         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2440         (rb_shell_clipboard_set),
2441         (rb_shell_clipboard_cmd_add_to_playlist_new),
2442         (rb_shell_clipboard_playlist_add_cb),
2443         (rb_shell_clipboard_playlist_renamed_cb),
2444         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2445         (rebuild_playlist_menu):
2446         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2447         (rb_shell_player_set_queue_source_internal),
2448         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2449         (rb_shell_player_entry_activated_cb),
2450         (rb_shell_player_property_row_activated_cb),
2451         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2452         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2453         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2454         (rb_shell_finalize), (construct_widgets),
2455         (rb_shell_playing_from_queue_cb),
2456         (rb_shell_player_stream_song_changed_cb),
2457         (rb_shell_player_volume_changed_cb):
2458         * shell/rb-statusbar.c: (rb_statusbar_new):
2459         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2460         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2461         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2462         * sources/rb-auto-playlist-source.c:
2463         (rb_auto_playlist_source_class_init),
2464         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2465         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2466         (rb_auto_playlist_source_do_query),
2467         (rb_auto_playlist_source_set_query),
2468         (rb_auto_playlist_source_browser_changed_cb),
2469         (search_action_changed):
2470         * sources/rb-auto-playlist-source.h:
2471         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2472         (search_action_changed), (rb_browser_source_constructor),
2473         (rb_browser_source_cmd_choose_artist), (impl_delete),
2474         (rb_browser_source_browser_changed_cb),
2475         (rb_browser_source_do_query):
2476         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2477         (rb_daap_source_finalize), (rb_daap_source_class_init),
2478         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2479         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2480         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2481         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2482         (rb_daap_source_get_headers):
2483         * sources/rb-import-errors-source.c:
2484         (rb_import_errors_source_constructor),
2485         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2486         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2487         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2488         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2489         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2490         (impl_paste), (impl_receive_drag):
2491         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2492         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2493         (impl_song_properties):
2494         * sources/rb-library-source.c: (rb_library_source_constructor),
2495         (rb_library_source_new), (impl_paste),
2496         (rb_library_source_add_child_source):
2497         * sources/rb-missing-files-source.c: (impl_delete),
2498         (impl_get_status):
2499         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2500         (rb_play_queue_source_class_init),
2501         (rb_play_queue_source_constructor):
2502         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2503         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2504         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2505         (rb_playlist_source_new_from_xml),
2506         (rb_playlist_source_save_to_xml):
2507         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2508         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2509         (search_action_changed), (rb_podcast_source_constructor),
2510         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2511         (construct_query_from_selection),
2512         (rb_podcast_source_cmd_download_post),
2513         (rb_podcast_source_cmd_cancel_download),
2514         (rb_podcast_source_cmd_delete_feed),
2515         (rb_podcast_source_start_download_cb),
2516         (rb_podcast_source_finish_download_cb),
2517         (rb_podcast_source_feed_updates_avaliable_cb),
2518         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2519         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2520         (impl_get_status):
2521         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2522         * sources/rb-source.c: (rb_source_get_property),
2523         (default_add_to_queue), (default_move_to_trash),
2524         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2525         (_rb_source_register_action_group):
2526         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2527         (rb_sourcelist_model_is_row_visible),
2528         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2529         (rb_sourcelist_model_row_draggable),
2530         (rb_sourcelist_model_drag_data_get):
2531         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2532         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2533         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2534         (visibility_notify_cb):
2535         * sources/rb-static-playlist-source.c:
2536         (rb_static_playlist_source_class_init),
2537         (rb_static_playlist_source_init),
2538         (rb_static_playlist_source_finalize),
2539         (rb_static_playlist_source_constructor), (impl_delete),
2540         (rb_static_playlist_source_browser_changed_cb),
2541         (rb_static_playlist_source_add_location_internal),
2542         (search_action_changed):
2543         * sources/rb-static-playlist-source.h:
2544         * widgets/rb-druid.c:
2545         * widgets/rb-entry-view.c:
2546         (rb_entry_view_set_shell_player_internal),
2547         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2548         (rb_entry_view_get_property), (rb_entry_view_new),
2549         (rb_entry_view_button_press_cb):
2550         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2551         (rb_library_browser_set_property),
2552         (rb_library_browser_get_property):
2553         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2554         (get_entry_for_property), (get_property_index_from_proptype):
2555         * widgets/rb-song-info.c: (rb_song_info_constructor),
2556         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2557         (rb_song_info_set_property), (rb_song_info_get_property):
2559         More leak and reference counting fixes.  From bug #347446.
2561 2006-07-17  James Livingston  <doclivingston@gmail.com>
2563         * sources/rb-auto-playlist-source.c:
2564         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2565         rather than setting the base model, as that lets us not import all the
2566         entries from the base model. This fixes some issues whether the search
2567         box wasn't filting automatic playlists.
2569 2006-07-17  James Livingston  <doclivingston@gmail.com>
2571         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2572         error, which caused blacklist creation to fail.
2574 2006-07-17  James Livingston  <doclivingston@gmail.com>
2576         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2577         running with -n, because we don't start it then. Fixes a crash on
2578         exit.
2580 2006-07-17  James Livingston  <doclivingston@gmail.com>
2582         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2584         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2585         Save not Open for the button. Fixes #345816
2587 2006-07-17  James Livingston  <doclivingston@gmail.com>
2589         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2591         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2592         when track transfer is disabled. Fixes #347705
2594 2006-07-17  James Livingston  <doclivingston@gmail.com>
2596         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2598         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2599         with track transfer disabled. Fixes #347705
2601 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2603         * rhythmdb/rhythmdb-query-model.c:
2604         (rhythmdb_query_model_set_property):
2605         * shell/main.c: (main):
2606         * shell/rb-shell-clipboard.c: (unset_source_internal),
2607         (rb_shell_clipboard_finalize),
2608         (rb_shell_clipboard_set_source_internal),
2609         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2610         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2611         (rb_shell_player_set_db_internal),
2612         (rb_shell_player_set_queue_source_internal),
2613         (rb_shell_player_finalize), (rb_shell_player_set_property):
2614         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2615         * sources/rb-auto-playlist-source.c:
2616         (rb_auto_playlist_source_constructor),
2617         (rb_auto_playlist_source_new_from_xml):
2618         * sources/rb-daap-source.c: (create_pixbufs):
2619         * sources/rb-ipod-source.c:
2620         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2621         * sources/rb-library-source.c:
2622         (rb_library_source_add_child_source):
2623         * sources/rb-play-queue-source.c:
2624         (rb_play_queue_sync_playing_state),
2625         (rb_play_queue_source_track_info_cell_data_func):
2626         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2627         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2628         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2629         (impl_can_add_to_queue), (impl_add_to_queue):
2630         * sources/rb-source.c: (rb_source_set_property):
2631         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2632         * sources/rb-static-playlist-source.c:
2633         (rb_static_playlist_source_constructor),
2634         (rb_static_playlist_source_load_from_xml):
2635         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2636         * widgets/rb-entry-view.c: (rb_entry_view_init),
2637         (rb_entry_view_finalize), (rb_entry_view_append_column),
2638         (rb_entry_view_constructor):
2639         * widgets/rb-song-info.c: (rb_song_info_set_property):
2640         Fix leaks.  From bug #347446.
2642 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2644         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2645         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2646         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2647         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2648         (add_decoding_pipeline), (profile_bin_find_encoder),
2649         (get_profile_from_mime_type), (extract_track), (transcode_track),
2650         (rb_encoder_gst_encode):
2651         * backends/gstreamer/rb-encoder-gst.h:
2652         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2653         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2654         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2655         (rb_player_gst_construct):
2656         * backends/gstreamer/rb-player-gst.h:
2657         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2658         * backends/rb-encoder.h:
2659         * backends/rb-player.c: (_rb_player_emit_tick):
2660         * backends/rb-player.h:
2661         * daapsharing/rb-daap-connection.c: (build_message),
2662         (actual_http_response_handler), (http_response_handler),
2663         (http_get), (entry_set_string_prop), (emit_progress_idle),
2664         (handle_server_info), (handle_database_info),
2665         (handle_song_listing), (handle_playlists),
2666         (handle_playlist_entries), (rb_daap_connection_new),
2667         (connected_cb), (rb_daap_connection_do_something),
2668         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2669         (rb_daap_connection_get_property):
2670         * daapsharing/rb-daap-connection.h:
2671         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2672         (rb_daap_collision_dialog_new_run):
2673         * daapsharing/rb-daap-dialog.h:
2674         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2675         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2676         (DigestToString), (rb_daap_hash_generate):
2677         * daapsharing/rb-daap-hash.h:
2678         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2679         (resolve_cb), (browse_cb):
2680         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2681         (resolve_cb), (rb_daap_mdns_browser_resolve),
2682         (rb_daap_mdns_browser_start), (resolver_free):
2683         * daapsharing/rb-daap-mdns-browser.h:
2684         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2685         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2686         (publish_cb):
2687         * daapsharing/rb-daap-mdns-publisher.h:
2688         * daapsharing/rb-daap-share.c: (name_collision_cb),
2689         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2690         (message_set_from_rb_daap_structure), (content_codes_cb),
2691         (session_id_validate), (logout_cb), (update_cb),
2692         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2693         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2694         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2695         (rb_daap_share_publish_start):
2696         * daapsharing/rb-daap-share.h:
2697         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2698         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2699         * daapsharing/rb-daap-sharing.h:
2700         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2701         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2702         (rb_daap_src_open):
2703         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2704         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2705         (rb_daap_structure_parse_container_buffer),
2706         (rb_daap_structure_parse), (gnode_find_node),
2707         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2708         (print_rb_daap_item):
2709         * daapsharing/rb-daap-structure.h:
2710         * iradio/rb-new-station-dialog.c:
2711         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2712         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2713         (rb_new_station_dialog_text_changed):
2714         * iradio/rb-station-properties-dialog.c:
2715         (rb_station_properties_dialog_init),
2716         (rb_station_properties_dialog_new),
2717         (rb_station_properties_dialog_response_cb),
2718         (rb_station_properties_dialog_get_current_entry),
2719         (rb_station_properties_dialog_rated_cb),
2720         (rb_station_properties_dialog_update_rating),
2721         (rb_station_properties_dialog_update_playback_error),
2722         (rb_station_properties_dialog_sync_entries):
2723         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2724         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2725         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2726         (rb_metadata_can_save), (rb_metadata_save):
2727         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2728         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2729         (_handle_message), (_new_connection), (main):
2730         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2731         (rb_metadata_dbus_read_from_message):
2732         * metadata/rb-metadata-dbus.h:
2733         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2734         (rb_add_id3_tagger), (rb_metadata_init),
2735         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2736         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2737         (rb_metadata_gst_new_decoded_pad_cb),
2738         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2739         * metadata/sj-error.c: (sj_error_quark):
2740         * metadata/sj-error.h:
2741         * metadata/sj-metadata-musicbrainz.c:
2742         (sj_metadata_musicbrainz_instance_init),
2743         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2744         (get_rdf), (lookup_cd):
2745         * metadata/sj-metadata.c: (sj_metadata_get_type):
2746         * metadata/sj-structures.c:
2747         * metadata/sj-structures.h:
2748         * metadata/test-metadata.c: (load_metadata_cb), (main):
2749         * podcast/rb-feed-podcast-properties-dialog.c:
2750         (rb_feed_podcast_properties_dialog_init),
2751         (rb_feed_podcast_properties_dialog_update_title):
2752         * podcast/rb-feed-podcast-properties-dialog.h:
2753         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2754         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2755         (rb_new_podcast_dialog_text_changed):
2756         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2757         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2758         (rb_podcast_manager_set_property),
2759         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2760         (rb_podcast_manager_download_entry),
2761         (rb_podcast_manager_update_feeds),
2762         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2763         (rb_podcast_manager_copy_post),
2764         (rb_podcast_manager_thread_parse_feed),
2765         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2766         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2767         (download_info_free), (download_info_new), (start_job),
2768         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2769         (download_progress_cb), (download_progress_update_cb),
2770         (rb_podcast_manager_remove_feed),
2771         (rb_podcast_manager_db_entry_deleted_cb),
2772         (rb_podcast_manager_cancel_download),
2773         (rb_podcast_manager_update_synctime),
2774         (rb_podcast_manager_set_remove_files),
2775         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2776         (rb_podcast_manager_abort_subscribe),
2777         (rb_podcast_manager_get_podcast_dir):
2778         * podcast/rb-podcast-manager.h:
2779         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2780         (rb_validate_channel_propert), (rb_validate_item_propert),
2781         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2782         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2783         (rb_podcast_parse_date), (rb_podcast_parse_time),
2784         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2785         * podcast/rb-podcast-parse.h:
2786         * podcast/rb-podcast-properties-dialog.c:
2787         (rb_podcast_properties_dialog_init),
2788         (rb_podcast_properties_dialog_get_current_entry),
2789         (rb_podcast_properties_dialog_update_title),
2790         (rb_podcast_properties_dialog_update_duration),
2791         (rb_podcast_properties_dialog_update_date):
2792         * podcast/rb-podcast-properties-dialog.h:
2793         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2794         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2795         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2796         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2797         (g_sequence_search), (g_sequence_set_aggregate_data),
2798         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2799         (find_min), (g_sequence_node_find_by_pos),
2800         (g_sequence_node_find_closest), (g_sequence_node_free),
2801         (g_sequence_node_split), (g_sequence_node_insert_before),
2802         (g_sequence_node_get_length), (g_sequence_node_remove),
2803         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2804         (g_sequence_calc_tree_height):
2805         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2806         (rb_refstring_get):
2807         * rhythmdb/rb-refstring.h:
2808         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2809         (rhythmdb_gda_init), (dump_model), (execute_query),
2810         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2811         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2812         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2813         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2814         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2815         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2816         * rhythmdb/rhythmdb-gda.h:
2817         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2818         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2819         (monitor_library_directory), (rhythmdb_check_changed_file),
2820         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2821         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2822         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2823         * rhythmdb/rhythmdb-private.h:
2824         * rhythmdb/rhythmdb-property-model.c:
2825         (rhythmdb_property_model_set_property),
2826         (rhythmdb_property_model_row_inserted_cb),
2827         (rhythmdb_property_model_prop_changed_cb),
2828         (rhythmdb_property_model_compare),
2829         (rhythmdb_property_model_get_value),
2830         (rhythmdb_property_model_iter_nth_child),
2831         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2832         (rhythmdb_property_model_drag_data_get),
2833         (rhythmdb_property_model_enable_drag),
2834         (rhythmdb_property_model_column_get_type):
2835         * rhythmdb/rhythmdb-property-model.h:
2836         * rhythmdb/rhythmdb-query-model.c:
2837         (rhythmdb_query_model_class_init),
2838         (rhythmdb_query_model_set_property),
2839         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2840         (rhythmdb_query_model_has_pending_changes),
2841         (rhythmdb_query_model_entry_changed_cb),
2842         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2843         (rhythmdb_query_model_add_entry),
2844         (rhythmdb_query_model_remove_from_main_list),
2845         (rhythmdb_query_model_remove_entry),
2846         (rhythmdb_query_model_drag_data_received),
2847         (rhythmdb_query_model_row_drop_possible),
2848         (rhythmdb_query_model_compute_status_normal),
2849         (rhythmdb_query_model_set_sort_order),
2850         (rhythmdb_query_model_get_entry_index),
2851         (rhythmdb_query_model_base_row_inserted),
2852         (rhythmdb_query_model_base_row_deleted),
2853         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2854         (rhythmdb_query_model_date_sort_func),
2855         (rhythmdb_query_model_within_limit):
2856         * rhythmdb/rhythmdb-query-model.h:
2857         * rhythmdb/rhythmdb-query-results.c:
2858         (rhythmdb_query_results_query_complete):
2859         * rhythmdb/rhythmdb-query-results.h:
2860         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2861         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2862         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2863         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2864         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2865         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2866         (rhythmdb_tree_parser_start_element),
2867         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2868         (save_entry), (save_entry_type), (save_unknown_entry_type),
2869         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2870         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2871         (get_or_create_genre), (remove_entry_from_album),
2872         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2873         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2874         (search_match_properties), (evaluate_conjunctive_subquery),
2875         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2876         (conjunctive_query_artists), (conjunctive_query_genre),
2877         (conjunctive_query), (split_query_by_disjunctions),
2878         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2879         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2880         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2881         (rhythmdb_hash_tree_foreach),
2882         (rhythmdb_tree_entry_type_registered):
2883         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2884         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2885         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2886         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2887         (rhythmdb_shutdown), (rhythmdb_finalize),
2888         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2889         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2890         (rhythmdb_entry_example_new),
2891         (set_metadata_string_default_unknown), (is_ghost_entry),
2892         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2893         (rhythmdb_process_metadata_load),
2894         (rhythmdb_process_queued_entry_set_event),
2895         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2896         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2897         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2898         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2899         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2900         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2901         (rhythmdb_entry_delete_by_type),
2902         (rhythmdb_propid_from_nice_elt_name),
2903         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2904         (rhythmdb_compute_status_normal),
2905         (rhythmdb_entry_register_type_alias),
2906         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2907         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2908         (rhythmdb_entry_import_error_get_type),
2909         (rhythmdb_entry_podcast_post_get_type),
2910         (rhythmdb_entry_podcast_feed_get_type),
2911         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2912         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2913         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2914         * rhythmdb/rhythmdb.h:
2915         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2916         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2917         (rb_history_limit_size):
2918         * shell/rb-history.h:
2919         * shell/rb-play-order-linear-loop.c:
2920         (rb_linear_play_order_loop_get_next):
2921         * shell/rb-play-order-linear-loop.h:
2922         * shell/rb-play-order-linear.c:
2923         * shell/rb-play-order-linear.h:
2924         * shell/rb-play-order-queue.c:
2925         (rb_queue_play_order_playing_entry_removed):
2926         * shell/rb-play-order-queue.h:
2927         * shell/rb-play-order-random-by-age-and-rating.c:
2928         * shell/rb-play-order-random-by-age-and-rating.h:
2929         * shell/rb-play-order-random-by-age.c:
2930         (rb_random_by_age_get_entry_weight):
2931         * shell/rb-play-order-random-by-age.h:
2932         * shell/rb-play-order-random-by-rating.c:
2933         * shell/rb-play-order-random-by-rating.h:
2934         * shell/rb-play-order-random-equal-weights.c:
2935         * shell/rb-play-order-random-equal-weights.h:
2936         * shell/rb-play-order-random.c: (rb_random_filter_history),
2937         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2938         (rb_random_db_changed), (rb_random_playing_entry_changed),
2939         (rb_random_db_entry_deleted):
2940         * shell/rb-play-order-shuffle.c: (remove_from_history),
2941         (add_randomly_to_history), (get_query_model_contents),
2942         (rb_shuffle_playing_entry_changed):
2943         * shell/rb-play-order-shuffle.h:
2944         * shell/rb-play-order.c: (rb_play_order_class_init),
2945         (rb_play_order_set_property),
2946         (rb_play_order_playing_source_changed),
2947         (rb_play_order_query_model_changed_cb),
2948         (rb_play_order_query_model_changed),
2949         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2950         * shell/rb-play-order.h:
2951         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2952         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2953         (rb_playlist_manager_set_property),
2954         (rb_playlist_manager_parse_file),
2955         (rb_playlist_manager_load_playlists),
2956         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2957         (rb_playlist_manager_save_playlists),
2958         (rb_playlist_manager_new_playlist),
2959         (rb_playlist_manager_new_playlist_from_selection_data),
2960         (rb_playlist_manager_cmd_new_automatic_playlist),
2961         (rb_playlist_manager_cmd_edit_automatic_playlist),
2962         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2963         (save_playlist_response_cb), (export_set_extension_cb),
2964         (filter_get_export_filter_label), (setup_format_menu),
2965         (rb_playlist_manager_cmd_save_playlist),
2966         (rb_playlist_manager_get_playlists),
2967         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2968         (rb_playlist_manager_delete_playlist),
2969         (rb_playlist_manager_export_playlist):
2970         * shell/rb-playlist-manager.h:
2971         * shell/rb-removable-media-manager.c:
2972         (rb_removable_media_manager_class_init),
2973         (rb_removable_media_manager_dispose),
2974         (rb_removable_media_manager_finalize),
2975         (rb_removable_media_manager_set_property),
2976         (split_drive_from_cdda_uri),
2977         (rb_removable_media_manager_playing_uri_changed_cb),
2978         (rb_removable_media_manager_load_media),
2979         (rb_removable_media_manager_volume_mounted_cb),
2980         (remove_volume_by_source),
2981         (rb_removable_media_manager_source_deleted_cb),
2982         (rb_removable_media_manager_volume_unmounted_cb),
2983         (rb_removable_media_manager_mount_volume),
2984         (rb_removable_media_manager_set_uimanager),
2985         (rb_removable_media_manager_scan), (do_transfer),
2986         (rb_removable_media_manager_cmd_copy_tracks):
2987         * shell/rb-removable-media-manager.h:
2988         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2989         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2990         (rb_shell_clipboard_sync),
2991         (rb_shell_clipboard_idle_poll_deletions),
2992         (rb_shell_clipboard_cmd_add_to_playlist_new),
2993         (rb_shell_clipboard_playlist_add_cb),
2994         (rb_shell_clipboard_playlist_deleted_cb),
2995         (rb_shell_clipboard_playlist_renamed_cb),
2996         (rb_shell_clipboard_playlist_visible_cb),
2997         (rb_shell_clipboard_playlist_added_cb):
2998         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2999         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3000         (rb_shell_player_init), (rb_shell_player_set_property),
3001         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3002         (rb_shell_player_open_location),
3003         (rb_shell_player_set_playing_entry),
3004         (rb_shell_player_play_order_update_cb),
3005         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3006         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3007         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3008         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3009         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3010         (gconf_song_position_slider_visibility_changed),
3011         (rb_shell_player_entry_activated_cb),
3012         (rb_shell_player_property_row_activated_cb),
3013         (rb_shell_player_entry_changed_cb),
3014         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3015         (actually_set_playing_source),
3016         (rb_shell_player_set_playing_source_internal),
3017         (rb_shell_player_get_playing_song_duration), (eos_cb),
3018         (rb_shell_player_error), (error_cb), (info_available_cb),
3019         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3020         (rb_shell_player_error_get_type):
3021         * shell/rb-shell-player.h:
3022         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3023         (rb_shell_preferences_append_page),
3024         (share_check_button_toggled_cb),
3025         (password_check_button_toggled_cb), (add_daap_preferences),
3026         (rb_shell_preferences_column_check_changed_cb),
3027         (rb_shell_preferences_sync_column_button),
3028         (rb_shell_preferences_sync),
3029         (rb_shell_preferences_browser_views_activated_cb):
3030         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3031         (rb_shell_set_property), (rb_shell_get_property),
3032         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3033         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3034         (rb_shell_get_visibility), (rb_shell_set_visibility),
3035         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3036         (rb_shell_register_entry_type_for_source),
3037         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3038         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3039         (rb_shell_player_stream_song_changed_cb),
3040         (rb_shell_set_window_title),
3041         (rb_shell_view_smalldisplay_changed_cb),
3042         (rb_shell_view_queue_as_sidebar_changed_cb),
3043         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3044         (rb_shell_cmd_add_folder_to_library),
3045         (rb_shell_cmd_add_file_to_library),
3046         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3047         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3048         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3049         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3050         (handle_playlist_entry_cb), (rb_shell_load_uri),
3051         (rb_shell_add_to_queue), (rb_shell_present),
3052         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3053         (rb_shell_volume_widget_changed_cb),
3054         (rb_shell_player_volume_changed_cb),
3055         (rb_shell_ui_location_get_type):
3056         * shell/rb-shell.h:
3057         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3058         (rb_source_header_init), (rb_source_header_set_source_internal),
3059         (rb_source_state_sync), (rb_source_header_clear_search),
3060         (rb_source_header_view_browser_changed_cb):
3061         * shell/rb-source-header.h:
3062         * shell/rb-statusbar.c: (rb_statusbar_construct),
3063         (rb_statusbar_init), (rb_statusbar_finalize),
3064         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3065         (rb_statusbar_source_status_changed_cb):
3066         * shell/rb-statusbar.h:
3067         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3068         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3069         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3070         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3071         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3072         (rb_audiocd_create_track_entry):
3073         * sources/rb-auto-playlist-source.c:
3074         (rb_auto_playlist_source_class_init),
3075         (rb_auto_playlist_source_constructor),
3076         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3077         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3078         (rb_auto_playlist_source_query_complete_cb),
3079         (rb_auto_playlist_source_do_query),
3080         (rb_auto_playlist_source_set_query),
3081         (rb_auto_playlist_source_browser_changed_cb),
3082         (search_action_to_prop):
3083         * sources/rb-auto-playlist-source.h:
3084         * sources/rb-browser-source.c: (rb_browser_source_init),
3085         (rb_browser_source_dispose), (search_action_to_prop),
3086         (rb_browser_source_constructor),
3087         (rb_browser_source_cmd_choose_genre),
3088         (rb_browser_source_cmd_choose_artist),
3089         (rb_browser_source_cmd_choose_album), (impl_search),
3090         (rb_browser_source_browser_changed_cb),
3091         (rb_browser_source_do_query):
3092         * sources/rb-browser-source.h:
3093         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3094         (rb_daap_source_init), (rb_daap_source_dispose),
3095         (rb_daap_source_set_property), (start_browsing),
3096         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3097         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3098         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3099         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3100         * sources/rb-daap-source.h:
3101         * sources/rb-import-errors-source.h:
3102         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3103         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3104         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3105         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3106         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3107         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3108         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3109         (generate_ipod_filename), (ipod_path_from_unix_path),
3110         (impl_delete_thyself):
3111         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3112         (rb_iradio_source_init), (rb_iradio_source_constructor),
3113         (rb_iradio_source_new), (guess_uri_scheme),
3114         (rb_iradio_source_add_station),
3115         (rb_iradio_source_async_update_play_statistics),
3116         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3117         (stations_view_drag_data_received_cb),
3118         (rb_iradio_source_cmd_new_station):
3119         * sources/rb-iradio-source.h:
3120         * sources/rb-library-source.c: (rb_library_source_dispose),
3121         (rb_library_source_constructor),
3122         (rb_library_source_location_button_clicked_cb),
3123         (impl_get_config_widget), (rb_library_source_library_location_cb),
3124         (sanitize_path), (filepath_parse_pattern),
3125         (layout_example_label_update),
3126         (rb_library_source_layout_filename_changed), (build_filename),
3127         (impl_can_paste), (impl_paste),
3128         (rb_library_source_add_child_source),
3129         (rb_library_source_sync_child_sources):
3130         * sources/rb-library-source.h:
3131         * sources/rb-missing-files-source.h:
3132         * sources/rb-play-queue-source.c:
3133         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3134         * sources/rb-play-queue-source.h:
3135         * sources/rb-playlist-source-recorder.c:
3136         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3137         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3138         (rb_playlist_source_recorder_init),
3139         (rb_playlist_source_recorder_new):
3140         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3141         (rb_playlist_source_save_playlist),
3142         (rb_playlist_source_entry_added_cb),
3143         (rb_playlist_source_set_query_model),
3144         (rb_playlist_source_add_to_map):
3145         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3146         (rb_podcast_source_init), (rb_podcast_source_dispose),
3147         (rb_podcast_source_finalize), (search_action_to_prop),
3148         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3149         (rb_podcast_source_get_property), (rb_podcast_source_new),
3150         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3151         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3152         (rb_podcast_source_show_browser), (construct_query_from_selection),
3153         (rb_podcast_source_do_query), (impl_get_config_widget),
3154         (rb_podcast_source_btn_file_change_cb),
3155         (posts_view_drag_data_received_cb),
3156         (rb_podcast_source_cmd_download_post),
3157         (rb_podcast_source_cmd_cancel_download),
3158         (rb_podcast_source_cmd_delete_feed),
3159         (rb_podcast_source_cmd_properties_feed),
3160         (rb_podcast_source_cmd_update_feed),
3161         (rb_podcast_source_post_status_cell_data_func),
3162         (rb_podcast_source_post_feed_cell_data_func),
3163         (rb_podcast_source_post_date_cell_data_func),
3164         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3165         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3166         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3167         (impl_get_status):
3168         * sources/rb-podcast-source.h:
3169         * sources/rb-removable-media-source.c:
3170         (rb_removable_media_source_constructor):
3171         * sources/rb-removable-media-source.h:
3172         * sources/rb-source.h:
3173         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3174         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3175         (rb_sourcelist_model_row_is_separator),
3176         (rb_sourcelist_model_drag_data_received),
3177         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3178         (rb_sourcelist_model_row_drop_position),
3179         (rb_sourcelist_model_get_drag_target),
3180         (rb_sourcelist_model_row_draggable),
3181         (rb_sourcelist_model_drag_data_get),
3182         (rb_sourcelist_model_row_inserted_cb),
3183         (rb_sourcelist_model_get_group_path):
3184         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3185         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3186         (rb_sourcelist_visible_source_to_iter),
3187         (rb_sourcelist_edit_source_name),
3188         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3189         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3190         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3191         * sources/rb-static-playlist-source.c:
3192         (rb_static_playlist_source_class_init),
3193         (rb_static_playlist_source_constructor),
3194         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3195         (impl_search), (rb_static_playlist_source_do_query),
3196         (rb_static_playlist_source_browser_changed_cb),
3197         (impl_receive_drag), (impl_save_contents_to_xml),
3198         (rb_static_playlist_source_add_location_swapped),
3199         (search_action_to_prop):
3200         * sources/rb-static-playlist-source.h:
3201         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3202         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3203         (egg_tray_icon_get_orientation_property),
3204         (egg_tray_icon_send_manager_message),
3205         (egg_tray_icon_update_manager_window),
3206         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3207         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3208         * widgets/eggtrayicon.h:
3209         * widgets/rb-cell-renderer-pixbuf.c:
3210         (rb_cell_renderer_pixbuf_get_property),
3211         (rb_cell_renderer_pixbuf_set_property),
3212         (rb_cell_renderer_pixbuf_get_size),
3213         (rb_cell_renderer_pixbuf_render),
3214         (rb_cell_renderer_pixbuf_activate):
3215         * widgets/rb-cell-renderer-rating.c:
3216         (rb_cell_renderer_rating_class_init),
3217         (rb_cell_renderer_rating_get_property),
3218         (rb_cell_renderer_rating_set_property),
3219         (rb_cell_renderer_rating_get_size),
3220         (rb_cell_renderer_rating_render),
3221         (rb_cell_renderer_rating_activate):
3222         * widgets/rb-dialog.c:
3223         * widgets/rb-dialog.h:
3224         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3225         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3226         (rb_druid_page3_finish_cb):
3227         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3228         (rb_entry_view_init), (rb_entry_view_set_property),
3229         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3230         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3231         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3232         (rb_entry_view_set_sorting_order),
3233         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3234         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3235         (rb_entry_view_playing_song_changed),
3236         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3237         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3238         (rb_entry_view_set_fixed_column_width),
3239         (rb_entry_view_get_time_date_column_sample),
3240         (rb_entry_view_state_get_type):
3241         * widgets/rb-entry-view.h:
3242         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3243         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3244         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3245         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3246         (update_browser_property_visibilty),
3247         (rb_library_browser_construct_query), (restore_selection),
3248         (rebuild_child_model), (rb_library_browser_set_selection),
3249         (rb_library_browser_set_model):
3250         * widgets/rb-library-browser.h:
3251         * widgets/rb-property-view.c: (rb_property_view_class_init),
3252         (rb_property_view_set_property), (rb_property_view_reset),
3253         (rb_property_view_get_model), (rb_property_view_constructor),
3254         (rb_property_view_set_selection),
3255         (rb_property_view_selection_changed_cb),
3256         (rb_property_view_button_press_cb),
3257         (rb_property_view_set_search_func):
3258         * widgets/rb-query-creator-private.h:
3259         * widgets/rb-query-creator-properties.c:
3260         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3261         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3262         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3263         (relativeTimeCriteriaCreateWidget),
3264         (relativeTimeCriteriaSetWidgetData):
3265         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3266         (rb_query_creator_dispose), (rb_query_creator_load_query),
3267         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3268         (get_property_index_from_proptype), (select_criteria_from_value),
3269         (create_property_option_menu), (create_criteria_option_menu),
3270         (sort_option_menu_changed), (setup_sort_option_menu):
3271         * widgets/rb-query-creator.h:
3272         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3273         (rb_rating_render_stars):
3274         * widgets/rb-rating-helper.h:
3275         * widgets/rb-rating.c: (rb_rating_expose):
3276         * widgets/rb-rating.h:
3277         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3278         (rb_search_entry_timeout_cb):
3279         * widgets/rb-search-entry.h:
3280         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3281         (rb_song_info_constructor), (rb_song_info_new),
3282         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3283         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3284         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3285         (rb_song_info_query_model_changed_cb),
3286         (rb_song_info_sync_entries_multiple),
3287         (rb_song_info_sync_entry_single):
3288         Strip all trailing whitespace.  Fixes #344293.
3290 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3292         * doc/reference/Makefile.am: Fix GTK Doc Build
3294 2006-07-13  James Livingston  <doclivingston@gmail.com>
3296         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3298         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3299         instead of the LOCATION, and don't try to get the directory listing
3300         for http URI schemes
3302         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3303         invalid utf8 in the error message, since apparently it can happen.
3305 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3307         * sources/rb-import-errors-source.c:
3308         (rb_import_errors_source_class_init),
3309         (rb_import_errors_source_init),
3310         (rb_import_errors_source_constructor),
3311         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3312         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3313         * sources/rb-missing-files-source.c:
3314         (rb_missing_files_source_class_init),
3315         (rb_missing_files_source_init),
3316         (rb_missing_files_source_constructor),
3317         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3318         (rb_missing_files_source_songs_sort_order_changed_cb),
3319         (impl_get_status):
3320         * sources/rb-source.c: (rb_source_class_init),
3321         (rb_source_finalize), (update_visibility_idle),
3322         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3323         (rb_source_set_property), (rb_source_get_property),
3324         (default_get_status), (rb_source_update_play_statistics),
3325         (default_add_to_queue), (_rb_source_show_popup),
3326         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3327         (rb_source_gather_selected_properties),
3328         (_rb_source_register_action_group):
3329         * sources/rb-source.h:
3330         * sources/rb-sourcelist.c: (visibility_notify_cb):
3331         Don't use a fake model for import-errors and missing-files
3332         sources.  Add a new source property "hidden-when-empty".
3333         Update source visibility in an idle.  Clean up some whitespace.
3334         From bug #346800
3336 2006-07-12  James Livingston  <doclivingston@gmail.com>
3338         * bindings/python/rb.defs:
3339         * bindings/python/rb.override: bind rb_error_dialog
3341         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3342         the current working directory for uninstalled plugins, and add the
3343         class name to the method name.
3345 2006-07-12  James Livingston  <doclivingston@gmail.com>
3347         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3348         the sources EOF type if it's NULL. Fixes #346284.
3350 2006-07-12  James Livingston  <doclivingston@gmail.com>
3352         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3353         I accidently committed. Nothing to see here, move along...
3355 2006-07-11  James Livingston  <doclivingston@gmail.com>
3357         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3358         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3359         Unknown.
3361 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3363         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3365 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3367         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3368         Don't try to set mtime if we've deleted the entry.
3370 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3372         * bindings/python/rhythmdb.defs:
3373         * rhythmdb/rhythmdb.c:
3374         * rhythmdb/rhythmdb.h:
3375         * rhythmdb/rhythmdb-private.h:
3376         * rhythmdb/rhythmdb-query.c:
3377         Move data structures holding registered entry types inside the
3378         RhythmDB object, and add a vfunc called when new types are registered.
3379         Add a flag to RhythmDBEntryType specifying whether entries of the type
3380         should be saved to the on-disk database.
3382         * sources/rb-audiocd-source.c:
3383         * sources/rb-daap-source.c:
3384         * sources/rb-ipod-source.c:
3385         * plugins/generic-player/rb-generic-player-source.c:
3386         * plugins/generic-player/rb-nokia770-source.c:
3387         * plugins/generic-player/rb-psp-source.c:
3388         Adjust to the above changes.
3390         * rhythmdb/rhythmdb-tree.c:
3391         If the type for an entry hasn't been registered yet, store the entry's
3392         properties as-is, and convert them to a real entry when the type is
3393         registered.  If the type doesn't get registered, save the entry back
3394         to the database unmodified.  From #330226.
3396 2006-07-10  James Livingston  <doclivingston@gmail.com>
3398         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3399         os.path.unlink to os.unlink, so removing stuff works.
3401 2006-07-10  James Livingston  <doclivingston@gmail.com>
3403         patch by: Ed Catmur  <ed@catmur.co.uk>
3404               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3406         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3407         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3408         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3409         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3410         internals of the cover database and Amazon lookup engine, and add
3411         support for loading art from the local file system. Fixes #345688.
3413         * plugins/rb/Coroutine.py:
3414         * plugins/rb/Makefile.am:
3415         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3416         plugin classes.
3418 2006-07-10  James Livingston  <doclivingston@gmail.com>
3420         * tests/Makefile.am: don't run the benchmark when doing "make check"
3422         * po/POTFILES.in: more build fixes, from Matti Lindell
3423         <feenixx@hotmail.com>. Fixes #347049.
3426 2006-07-10  James Livingston  <doclivingston@gmail.com>
3428         * plugins/cd-recorder/Makefile.am: build fixes
3430         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3431         attempt to change properties if we couldn't create an entry.
3433         * shell/rb-source-header.c: (rb_source_header_init),
3434         (rb_source_header_view_browser_changed_cb),
3435         (rb_source_header_sync_control_state):
3436         * shell/rb-tray-icon.c:
3437         * widgets/Makefile.am:
3438         * widgets/disclosure-widget.c:
3439         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3440         widget, as it hasn't been used for a while.
3442 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3444         * Makefile.am:
3445         * configure.ac:
3446         * data/ui/rhythmbox-ui.xml:
3447         * plugins/Makefile.am:
3448         * plugins/cd-recorder/.cvsignore:
3449         * plugins/cd-recorder/Makefile.am:
3450         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3451         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3452         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3453         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3454         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3455         (playlist_row_inserted_cb), (update_source),
3456         (shell_selected_source_notify_cb), (impl_activate),
3457         (impl_deactivate):
3458         * shell/Makefile.am:
3459         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3460         (rb_playlist_manager_cmd_save_playlist):
3461         * shell/rb-shell.c: (rb_shell_select_source):
3462         * sources/Makefile.am:
3463         * sources/rb-playlist-source-recorder.c:
3464         (rb_playlist_source_recorder_new):
3465         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3466         (rb_playlist_source_add_to_map):
3467         * sources/rb-playlist-source.h:
3468         Move cd burning into a plugin.  Fixes #344300.
3470 2006-07-10  James Livingston  <doclivingston@gmail.com>
3472         * lib/eel-gconf-extensions.c:
3473         * shell/rb-shell.c: remove some ununsed gnomeui includes
3475         * widgets/Makefile.am:
3476         * widgets/rb-song-display-box.c:
3477         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3478         since it isn't acutally used anywhere. Fixes #346926
3480 2006-07-09  James Livingston  <doclivingston@gmail.com>
3482         * bindings/python/rb.defs:
3483         * bindings/python/rb.override:
3484         * lib/rb-debug.c: (rb_debug_real):
3485         * lib/rb-debug.h:
3486         * plugins/rb/__init__.py: don't print out an extra newline when
3487         diverting python print statements to RB's debug log.
3489 2006-07-09  James Livingston  <doclivingston@gmail.com>
3491         * rhythmdb/rhythmdb-property-model.c:
3492         (rhythmdb_property_model_drag_data_get):
3493         * sources/rb-sourcelist-model.c:
3494         (rb_sourcelist_model_row_draggable),
3495         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3496         from the row reference is still valid. Fixes #346709.
3498 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3500         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3502         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3503         If all selected entries have the same rating, use that as the initial
3504         rating for the multiple song info dialog.  Fixes #345970.
3506 2006-07-09  James Livingston  <doclivingston@gmail.com>
3508         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3509         to prevent #343345:
3510                 - don't ever scale to 1x1, just hide the image in that case
3511                 - don't fade when the window is minimised
3512                 - use the last-good allocation width, not the current one - as
3513                   it sometimes get weird values.
3515 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3517         * data/ui/rhythmbox-ui.xml:
3518         * shell/rb-shell.c:
3519         Remove Import audio CD from menu.  Fixes #339732
3521 2006-07-08  James Livingston  <doclivingston@gmail.com>
3523         * metadata/test-metadata.c: (print_metadata_string),
3524         (load_metadata_cb): print out all the metadata we have read, not just
3525         a few.
3527         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3528         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3530 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3532         * plugins/lyrics/lyrics.py:
3533         Change the lyrics cache location to match Quod Libet's,
3534         and fix the '&' -> 'and' substitution to require spaces.
3536 2006-07-08  James Livingston  <doclivingston@gmail.com>
3538         * bindings/python/rb.defs:
3539         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3541         * configure.ac:
3542         * plugins/Makefile.am:
3543         * plugins/rb-python-module.c: (rb_python_module_init_python):
3544         * plugins/rb/Makefile.am: add a place to put common python classes.
3545         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3546         rb module/
3548         * plugins/lyrics/Makefile.am:
3549         * plugins/lyrics/Loader.py:
3550         * plugins/artdisplay/artdisplay/Makefile.am:
3551         * plugins/artdisplay/artdisplay/Loader.py:
3552         * plugins/rb/Loader.py: move the loader class to rb.Loader
3554         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3555         "print ...") to rb_debug. error output (e.g. exceptions) are still
3556         printed on stderr.
3558         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3559         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3560         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3561         instead of Loader.
3563         Fixes #346895.
3565 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3567         * shell/rb-shell-player.xml:
3568         * shell/rb-shell-player.h:
3569         Correct the details of the playing-song-property-changed signal.
3571 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3573         * lib/rb-marshal.list:
3574         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3575         (rb_shell_player_entry_changed_cb):
3576         * shell/rb-shell-player.h:
3577         * shell/rb-shell-player.xml:
3578         Emit a dbus signal when a property is changed on the playing entry.
3579         Fixes #332461.
3581 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3583         * rhythmdb/rhythmdb-private.h:
3584         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3585         Fix build break with gcc 4.1 by changing RBRefString pointers into
3586         gpointers.
3588 2006-07-07  James Livingston  <doclivingston@gmail.com>
3590         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3591         remove an extraneous !, which caused it not to monitor folders in the
3592         library with no tracks in them. Fixes #346759.
3594 2006-07-07  James Livingston  <doclivingston@gmail.com>
3596         * rhythmdb/rhythmdb-private.h:
3597         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3598         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3599         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3600         (rhythmdb_entry_get_string):
3601         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3602         flags for the affected properties. _sync_mirrored will get run
3603         automatically when a dirty property is accessed, which improves
3604         performance a bit (especially during startup) as we don't need to sync
3605         every time they change. From #325215.
3607         * tests/bench-rhythmdb-load.c
3608         * tests/Makefile.am: add a RhythmDB loading benchmark.
3610 2006-07-06  James Livingston  <doclivingston@gmail.com>
3612         * bindings/python/rb.defs:
3613         * bindings/python/rb.override: some more fixes, so that
3614         python classes derived from RBSource work correctly.
3616 2006-07-06  James Livingston  <doclivingston@gmail.com>
3618         * configure.ac: bump pygtk requirements to 2.8, since we're already
3619         using some features of it, and weird things will happen if people are
3620         actually trying to use pygtk 2.6.
3622         * bindings/python/rb.override:
3623         * bindings/python/rhythmdb.defs:
3624         * bindings/python/rhythmdb.override: allow python to set
3625         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3627         * sources/rb-browser-source.c: remove some left over member variables
3629 2006-07-06  James Livingston  <doclivingston@gmail.com>
3631         * rhythmdb/rhythmdb.c:
3632         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3633         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3634         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3635         former is pointless (as rhythmdb already knows which it should use)
3636         and the latter doesn't seem useful at all, and possibly bad. From
3637         #330226.
3639         * bindings/python/rhythmdb.defs:
3640         * bindings/python/rhythmdb.override:
3641         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3642         (handle_song_listing):
3643         * podcast/rb-podcast-manager.c:
3644         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3645         (rb_podcast_manager_insert_feed):
3646         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3647         (rb_audiocd_create_track_entry):
3648         * sources/rb-ipod-source.c: (entry_set_string_prop),
3649         (add_ipod_song_to_db):
3650         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3651         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3653 2006-07-05  James Livingston  <doclivingston@gmail.com>
3655         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3656         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3657         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3658         totem-plparser gives us, or the file name if it doesn't give us
3659         anything. Set the default file name when saving too. Fixes #345261
3661 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3663         patch by: Ed Catmur  <ed@catmur.co.uk>
3665         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3666         Skip all hidden directories, not just trash, and skip unreadable
3667         files.  Fixes #346322.
3669 2006-07-04  James Livingston  <doclivingston@gmail.com>
3671         * plugins/rb-module.h:
3672         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3673         (rb_module_new):
3674         * plugins/rb-plugin.h:
3675         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3676         (rb_plugin_finalise), (rb_plugin_set_property),
3677         (rb_plugin_get_property), (rb_plugin_activate),
3678         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3679         (rb_plugin_find_file):
3680         * plugins/rb-plugins-engine.c: (load_plugin_module):
3681         * plugins/rb-python-module.c: (rb_python_module_new_object),
3682         (rb_python_module_new):
3683         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3684         rb_plugin_find_file method for locating plugin-specific data. Fixes
3685         346473.
3687         * bindings/python/rb.defs:
3688         * plugins/Makefile.am:
3689         * plugins/generic-player/rb-generic-player-plugin.c:
3690         (create_source_cb):
3691         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3693 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3695         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3696         (rb_metadata_can_save), (rb_metadata_save):
3697         Protect the dbus connection with a mutex.
3699 2006-07-03  James Livingston  <doclivingston@gmail.com>
3701         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3702         case of the parser/tagger not being able to be created.
3704 2006-07-03  James Livingston  <doclivingston@gmail.com>
3706         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3708         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3709         window resizable, as it used to be. Fixes #345940.
3711 2006-07-01  James Livingston  <doclivingston@gmail.com>
3713         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3715         * rhythmdb/rhythmdb.h:
3716         * rhythmdb/rhythmdb-private.h:
3717         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3718         (rhythmdb_tree_parser_end_element), (save_entry):
3719         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3720         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3721         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3722         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3723         MusicBrainz track IDs in the database, and bump the on-disk version
3724         number to trigger a metadata reload.
3726         * backends/gstreamer/rb-player-gst.c: (process_tag):
3727         * metadata/rb-metadata-common.c:
3728         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3729         (rb_metadata_gst_field_to_gst_tag):
3730         * metadata/rb-metadata.h: grab MB track IDs and use them.
3732         * plugins/audioscrobbler/rb-audioscrobbler.c:
3733         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3734         (rb_audioscrobbler_timeout_cb),
3735         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3736         the other metadata. Fixes #343491.
3738 2006-06-30  James Livingston  <doclivingston@gmail.com>
3740         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3741         method.
3743 2006-06-30  James Livingston  <doclivingston@gmail.com>
3745         * bindings/python/rb.defs:
3746         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3747         (rb_browser_source_songs_show_popup_cb),
3748         (default_show_entry_popup):
3749         * sources/rb-browser-source.h:
3750         * sources/rb-library-source.c: (rb_library_source_class_init),
3751         (rb_library_source_constructor), (impl_show_popup): allow
3752         RBBrowserSource-derived sources to override the entry context menu
3753         properly - by making it a virtual function, rather than relying on
3754         signal handler order (which doesn't really work).
3756 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3758         * rhythmdb/rhythmdb-query-model.c:
3759         (rhythmdb_query_model_reapply_query_cb):
3760         Use the original query, not the preprocessed query, when redoing
3761         the query to pick up entries that previously didn't match.
3762         Preprocessing the query twice is bad.  Fixes #346186.
3764 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3766         * plugins/audioscrobbler/rb-audioscrobbler.c:
3767         (rb_audioscrobbler_song_changed_cb):
3768         Just check if the elapsed time has been reset, rather
3769         than checking if it's a different track.  Fixes #344827.
3771 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3773         * backends/gstreamer/rb-player-gst.c:
3774         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3775         drive spins up, #344576.
3777 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3779         * plugins/audioscrobbler/rb-audioscrobbler.c:
3780         (rb_audioscrobbler_perform):
3781         Use HTTP/1.1.  Fixes #345895.
3783 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3785         * lib/rb-preferences.h:
3786         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3787         (check_auto_proxy_config), (get_proxy_config):
3788         Don't try to use a HTTP proxy if no proxy host is specified.
3789         Alert the user to the fact that we don't support automatic proxy
3790         configuration as infrequently as possible.  From #345712.
3792 2006-06-25  James Livingston  <doclivingston@gmail.com>
3794         * rhythmdb/rhythmdb-property-model.c:
3795         (rhythmdb_property_model_set_property): connect to the
3796         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3797         things get removed correctly, fixes #338183.
3799 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3801         * rhythmdb/rhythmdb-query-model.c:
3802         (rhythmdb_query_model_drag_data_received):
3803         Fix build break.
3805 2006-06-25  James Livingston  <doclivingston@gmail.com>
3807         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3809         * widgets/rb-search-entry.c: (rb_search_entry_init),
3810         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3811         search box have a pale yellow background when it's in use, except for
3812         when the user has an "accessability" theme. Code based heavily on
3813         Epiphany's. Fixes #344416.
3815 2006-06-25  James Livingston  <doclivingston@gmail.com>
3817         * plugins/lyrics/lyrics.py:
3818         * plugins/pythonconsole/pythonconsole.py:
3819         * plugins/sample-python/sample-python.py: don't import gettext stuff
3820         as _, as the C code does this for us. Fixes i18n for python plugins,
3821         #343081
3823 2006-06-25  James Livingston  <doclivingston@gmail.com>
3825         * rhythmdb/rhythmdb-query-model.c:
3826         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3827         a model use a reorder rather then deleting and re-adding the entry.
3828         This means it does do weird things like stop playback of a track that
3829         is dragged, fixing #337657.
3831 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3833         * metadata/rb-metadata-dbus-service.c:
3834         Add missing #include <glib/gi18n.h> from previous commit.
3836 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3838         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3840         * metadata/rb-metadata-dbus-service.c: (main):
3841         Initialize gettext in the metadata helper.
3842         * metadata/rb-metadata-gst.c:
3843         Make some strings translatable.  Fixes #345286.
3845 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3847         * configure.ac:
3848         * lib/Makefile.am:
3849         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3850         Inline the custom icons so they can always be loaded, but are still
3851         themable.  Fixes #345796.
3853 2006-06-23  James Livingston  <doclivingston@gmail.com>
3855         * sources/rb-auto-playlist-source.c:
3856         (rb_auto_playlist_source_do_query): stop the search box being applied
3857         for limits in auto playlists. Fixes #345307.
3859 2006-06-23  James Livingston  <doclivingston@gmail.com>
3861         * shell/rb-shell-clipboard.c:
3862         (rb_shell_clipboard_set_source_internal),
3863         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3864         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3865         non-library tracks, as we don't supprot it yet. From #345248.
3867 2006-06-23  James Livingston  <doclivingston@gmail.com>
3869         patch by: Brian Cameron  <brian.cameron@sun.com>
3871         * plugins/generic-player/rb-generic-player-plugin.c:
3872         * plugins/generic-player/rb-generic-player-source.c:
3873         * plugins/generic-player/rb-nokia770-source.c:
3874         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3875         Fixes 345673.
3877 2006-06-22  James Livingston  <doclivingston@gmail.com>
3879         * backends/rb-player.c: (rb_player_interface_init):
3880         * lib/rb-marshal.list:
3881         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3882         * rhythmdb/rhythmdb-query-model.c:
3883         (rhythmdb_query_model_class_init):
3884         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3885         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3886         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3887         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3888         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3889         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3890         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3891         possible not.
3893 2006-06-20  James Livingston  <doclivingston@gmail.com>
3895         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3897         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3898         metadata to clients. Fixes #345276.
3900 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3902         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3903         (rb_add_id3_tagger):
3904         Fix plugin/element version detection for id3v2mux.
3906 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3908         * sources/rb-source.c: (rb_source_finalize),
3909         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3910         (_autohide_update_visibility),
3911         (_rb_autohide_source_post_entry_deleted_cb),
3912         (_rb_autohide_source_row_inserted_cb),
3913         (_rb_source_hide_when_empty):
3914         Use post-entry-delete signal to update status and autohide sources.
3916 2006-06-20  James Livingston  <doclivingston@gmail.com>
3918         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3919         "selection changed" idle callback, if present.
3921 2006-06-19  James Livingston  <doclivingston@gmail.com>
3923         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3925         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3926         don't try to translate the empty string. Fixes #345285.
3928 2006-06-19  James Livingston  <doclivingston@gmail.com>
3930         * bindings/python/rhythmdb.override: more python binding fixes
3932 2006-06-19  James Livingston  <doclivingston@gmail.com>
3934         * lib/rb-util.c: (rb_copy_function):
3935         * lib/rb-util.h: add a function that returns the same pointer it was
3936         passed.
3938         * rhythmdb/rhythmdb.h:
3939         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3940         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3941         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3942         and RhythmDBEntryType into boxed types. This allows them to be used
3943         from python. Note that entry-types aren't actually reference counted
3944         (yet).
3946         * bindings/python/rb.defs:
3947         * bindings/python/rhythmdb.defs:
3948         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3949         return types of some bindings.
3951         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3952         (process_added_entries_cb), (rhythmdb_entry_finalize),
3953         (rhythmdb_entry_delete):
3954         * daapsharing/rb-daap-connection.c:
3955         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3956         (rb_daap_connection_get_property):
3957         * plugins/generic-player/rb-generic-player-source.c:
3958         (rb_generic_player_source_load_songs), (load_playlist_file):
3959         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3960         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3961         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3962         (idle_process_update), (rhythmdb_query_model_add_entry),
3963         (rhythmdb_query_model_insert_into_main_list),
3964         (rhythmdb_query_model_insert_into_limited_list),
3965         (rhythmdb_query_model_remove_from_main_list),
3966         (rhythmdb_query_model_remove_from_limited_list),
3967         (rhythmdb_query_model_drag_data_received),
3968         (rhythmdb_query_model_add_results),
3969         (rhythmdb_query_model_get_column_type),
3970         (rhythmdb_query_model_get_value):
3971         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3972         (rhythmdb_tree_entry_delete), (remove_one_song):
3973         * shell/rb-play-order-linear-loop.c:
3974         (rb_linear_play_order_loop_get_next),
3975         (rb_linear_play_order_loop_get_previous):
3976         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3977         (rb_linear_play_order_get_previous):
3978         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3979         (rb_queue_play_order_get_previous):
3980         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3981         (rb_random_filter_history), (rb_random_play_order_get_next),
3982         (rb_random_play_order_go_next), (rb_random_db_changed),
3983         (rb_random_playing_entry_changed):
3984         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3985         (remove_from_history), (add_randomly_to_history),
3986         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3987         * shell/rb-play-order.c: (rb_play_order_class_init),
3988         (rb_play_order_set_property), (rb_play_order_get_property),
3989         (rb_play_order_update_have_next_previous):
3990         * shell/rb-play-order.h:
3991         * shell/rb-shell-clipboard.c:
3992         (rb_shell_clipboard_process_deletions),
3993         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3994         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3995         * sources/rb-auto-playlist-source.c:
3996         (rb_auto_playlist_source_constructor):
3997         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3998         (rb_browser_source_set_property), (rb_browser_source_get_property),
3999         (rb_browser_source_do_query):
4000         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4001         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4002         * sources/rb-ipod-source.c: (add_rb_playlist),
4003         (add_ipod_song_to_db), (impl_paste):
4004         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4005         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4006         * sources/rb-library-source.c: (layout_example_label_update):
4007         * sources/rb-missing-files-source.c:
4008         (rb_missing_files_source_class_init),
4009         (rb_missing_files_source_set_property),
4010         (rb_missing_files_source_get_property),
4011         (rb_missing_files_source_new):
4012         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4013         (rb_playlist_source_set_property),
4014         (rb_playlist_source_get_property):
4015         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4016         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4017         (construct_query_from_selection):
4018         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4019         * sources/rb-static-playlist-source.c:
4020         (rb_static_playlist_source_constructor),
4021         (rb_static_playlist_source_add_location_internal):
4022         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4023         * widgets/rb-header.c: (rb_header_class_init),
4024         (rb_header_set_property), (rb_header_get_property):
4025         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4026         (rb_library_browser_set_property),
4027         (rb_library_browser_get_property):
4028         * widgets/rb-song-info.c: (rb_song_info_class_init),
4029         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4030         change, do s/pointer/boxed/ in many places and free entry-types
4031         properly.
4033 2006-06-18  James Livingston  <doclivingston@gmail.com>
4035         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4036         unushed GThreadPool non-exclusive threads every now and then.
4038         * rhythmdb/rhythmdb-private.h:
4039         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4040         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4041         threads. Fixes #341593
4043 2006-06-19  James Livingston  <doclivingston@gmail.com>
4045         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4046         the "Track number" checkbox actually work for playlists. From #329986.
4048 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4050         * plugins/generic-player/rb-generic-player-source.c:
4051         Get playlist and audio folder information from HAL.  Fixes #333845.
4053 2006-06-18  James Livingston  <doclivingston@gmail.com>
4055         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4057         * widgets/rb-entry-view.h:
4058         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4059         (rb_entry_view_append_column_custom),
4060         (rb_entry_view_insert_column_custom): add support for inserting custom
4061         columns at arbitrary locations, rather than just appending to the end.
4063         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4064         the playlists "track number" column go at the start, and add a normal
4065         track number column. Fixes #329986.
4067 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4069         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4070         a mnemonic conflict.  Add ellipses to the edit button.
4071         * sources/rb-library-source.c:
4072         (rb_library_source_edit_profile_clicked_cb),
4073         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4074         mnemonic widget to the labels. Fixes #344114.
4076 2006-06-18  James Livingston  <doclivingston@gmail.com>
4078         * configure.ac: bump version
4079         * NEWS: add NEWS for 0.9.5
4081 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4083         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4084         (rb_uri_handle_recursively):
4085         Don't attempt to recurse into directories we can't open.  
4086         Fixes #341485.
4088 2006-06-18  James Livingston  <doclivingston@gmail.com>
4090         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4092         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4093         #344610.
4095 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4097         * bindings/python/rb.defs:
4098         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4099         * shell/rb-shell-player.h:
4100         * shell/rb-shell.c: (rb_shell_play_entry):
4101         Add source parameter to rb_shell_player_play_entry, using the selected
4102         source if not specified.
4104         * shell/rb-play-order.c: (rb_play_order_class_init),
4105         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4106         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4107         (default_playing_entry_removed):
4108         * shell/rb-play-order.h:
4109         Move entry removal handling back to the row-deleted signal, as we need
4110         the entry to be present in the model.  When changing to the next entry
4111         after the playing entry is deleted, set the new entry as the playing
4112         entry and then sync it to the player in an idle handler, so we don't
4113         end up playing it if it was removed too.
4114         * shell/rb-play-order-queue.c:
4115         (rb_queue_play_order_playing_entry_changed),
4116         (rb_queue_play_order_playing_entry_removed):
4117         Use the playing-entry-removed handler from the play order class,
4118         setting a flag so we don't try to remove the already-removed entry
4119         from the model.
4121         This makes removal of the playing entry from playlists etc. work more
4122         or less correctly for all play orders.  Fixes #344627.
4124 2006-06-17  James Livingston  <doclivingston@gmail.com>
4126         patch by: Elijah Newren  <newren@gmail.com>
4128         * tests/test-rhythmdb.c: fix the build with older versions of check
4129         (again). Fixes #343718.
4131 2006-06-17  James Livingston  <doclivingston@gmail.com>
4133         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4134         name for capsfilter's "caps" property. Fixes #344968.
4136 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4138         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4139         Don't leak the selected entry list when finding an entry to play.
4141 2006-06-17  James Livingston  <doclivingston@gmail.com>
4143         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4144         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4145         as a O(1) one works fine, and it will get called often when the user
4146         deleted multiple tracks. Part of #344922.
4148 2006-06-17  James Livingston  <doclivingston@gmail.com>
4150         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4151         rb_shell_player_stop and rb_shell_player_playpause not mutually
4152         recursive. Fixed #336912.
4154 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4156         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4157         Treat nested elements inside properties as unknown.  Fixes parsing of
4158         podcast feeds with unescaped HTML in description tags, bug #344532.
4160 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4162         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4163         when quitting.  Fixes #344875.
4165 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4167         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4168         Move the playing-entry-removed handling to after the normal entry
4169         delete handling, since we're called after the entry has been removed
4170         from the query model now.  Fixes crashes described in #344627.
4172 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4174         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4175         (rb_rating_get_rating_from_widget):
4176         * widgets/rb-rating.c: (rb_rating_class_init),
4177         (rb_rating_finalize), (rb_rating_get_property),
4178         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4179         (rb_rating_button_press_cb):
4180         Don't crash when ratings icons can't be found.  Fixes #344533.
4182 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4184         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4186 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4188         * Makefile.am:
4189         * configure.ac:
4190         * remote/Makefile.am:
4191         * remote/dbus/Makefile.am:
4192         * remote/dbus/rb-client.c:
4193         * shell/Makefile.am:
4194         New dbus client program providing --play/--next etc. arguments.
4195         Fixes #340863, #155763.
4197 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4199         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4200         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4202 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4204         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4206         * rhythmdb/rhythmdb-query-model.c:
4207         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4208         to Library incorrectly
4210 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4212         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4213         Return input string untouched if gnome_vfs_uri_new returns NULL.
4214         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4215         (rb_static_playlist_source_add_list_uri):
4216         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4217         URIs don't break it.  Fixes #339033.
4219 2006-06-08  James Livingston  <doclivingston@gmail.com>
4221         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4222         for sources on the edge (i.e. the queue). Fixes #328409.
4224         * sources/rb-ipod-source.c: fix typo
4226 2006-06-08  James Livingston  <doclivingston@gmail.com>
4228         * configure.ac:
4229         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4230         --enable-ipod-writing to enable the ipod syncing code.
4232 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4234         * sources/rb-library-source.c: (layout_example_label_update):
4235         add missing comma so we don't generate broken markup.
4237 2006-06-08  James Livingston  <doclivingston@gmail.com>
4239         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4240         tag-merging with id3v2mux as well as id3mux. From #342330.
4242 2006-06-07  James Livingston  <doclivingston@gmail.com>
4244         * tests/test-rhythmdb.c: #define fail_if for old version of check
4245         which don't have it. Hopefully fixes #343718.
4247 2006-06-07  James Livingston  <doclivingston@gmail.com>
4249         * shell/rb-playlist-manager.c:
4250         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4251         g_value_array_free with NULL. Fixes #341053.
4253 2006-06-07  James Livingston  <doclivingston@gmail.com>
4255         * shell/rb-playlist-manager.c:
4256         (rb_playlist_manager_playlist_entries_changed),
4257         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4258         instead of "row-removed", which fixes updating "burn playlist"
4259         sensitivity. Fixes #331119.
4261 2006-06-07  James Livingston  <doclivingston@gmail.com>
4263         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4264         rather than restarting if the source uses _RETRY and there is an
4265         actual error (like an undecodable stream) rather than it just dropping
4266         out and causing EOS.
4268 2006-06-07  James Livingston  <doclivingston@gmail.com>
4270         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4271         free the pixbufs if they couldn't be loaded. Fixed #343852.
4273 2006-06-07  James Livingston  <doclivingston@gmail.com>
4275         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4276         the close button on the dialog work. Fixes #335346.
4278 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4280         * sources/rb-sourcelist-model.c: (path_is_droppable),
4281         (path_is_reorderable):
4282         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4283         (row_activated_cb), (emit_show_popup), (key_release_cb),
4284         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4285         Ignore group marker rows in the source list.  Fixes #344089, a couple
4286         of other crashers, and some weird UI glitches too.
4288 2006-06-07  James Livingston  <doclivingston@gmail.com>
4290         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4291         the seeking query fails. This is needed because many gst elements
4292         don't implement the seeking query yet. Should fix 329977.
4294 2006-06-06  James Livingston  <doclivingston@gmail.com>
4296         * configure.ac: bump version for a prerelease, turn on track transfer
4297         by default.
4299         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4300         ipod transfer stuff, since it has big issues and we'll hopefully land
4301         real support (bug 310774) after 0.9.5
4303 2006-06-06  James Livingston  <doclivingston@gmail.com>
4305         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4306         id3v2mux once we've detected it.
4308 2006-06-06  James Livingston  <doclivingston@gmail.com>
4310         * lib/Makefile.am:
4311         * tests/test-rhythmdb.c: undo accidental commit which caused
4312         rb-thread.c to be built (which it isn't normally)
4314 2006-06-06  James Livingston  <doclivingston@gmail.com>
4316         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4317         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4318         fail_{if/unless} calls, as some versions of check need them (they are
4319         optional in others). Should fix bug 343718.
4321 2006-06-06  James Livingston  <doclivingston@gmail.com>
4323         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4324         343836.
4325         
4326         * lib/Makefile.am:
4327         * lib/rb-thread.c: (process_actions):
4328         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4329         tests that don't pass.
4331 2006-06-05  James Livingston  <doclivingston@gmail.com>
4333         * data/glade/Makefile.am:
4334         * data/glade/load-failure.glade:
4335         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4336         dialog.
4338 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4340         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4341         checked in.
4343 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4345         * bindings/python/rb.defs:
4346         * sources/rb-source.h:
4347         * sources/rb-source.c: (rb_source_class_init),
4348         (rb_source_set_property), (rb_source_get_property),
4349         (rb_sourcelist_group_get_type):
4350         Add 'sourcelist-group' property on the RBSource class, describing how
4351         sources should be grouped in the source list.
4353         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4354         (rb_sourcelist_model_new), (real_row_is_separator),
4355         (rb_sourcelist_model_is_row_visible),
4356         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4357         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4358         (rb_sourcelist_model_row_draggable),
4359         (rb_sourcelist_model_row_inserted_cb),
4360         (rb_sourcelist_model_row_deleted_cb),
4361         (rb_sourcelist_model_get_group_path):
4362         * sources/rb-sourcelist-model.h:
4363         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4364         (rb_sourcelist_append):
4365         Add group marker rows for each sourcelist group, and use these to
4366         insert sources in the right place.  Sort transient sources (DAAP
4367         shares) by name.  Show the group marker rows as separators when the
4368         next visible row is a source.  Make persistant sources (playlists) and
4369         removable sources reorderable using drag and drop, restricting them
4370         within the source groups.
4371         
4372         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4373         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4374         * sources/rb-daap-source.c: (rb_daap_source_new):
4375         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4376         * sources/rb-static-playlist-source.c:
4377         (rb_static_playlist_source_new):
4378         * plugins/generic-player/rb-generic-player-source.c:
4379         (rb_generic_player_source_new):
4380         * plugins/generic-player/rb-nokia770-source.c:
4381         (rb_nokia770_source_new):
4382         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4383         Add source list group information to existing source classes.
4385         Fixes #318754 and #336492.
4387 2006-06-04  James Livingston  <doclivingston@gmail.com>
4389         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4390         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4391         win32 build fixes.
4393 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4395         * rhythmdb/rhythmdb-query-model.c:
4396         (rhythmdb_query_model_class_init),
4397         (rhythmdb_query_model_remove_from_main_list):
4398         * rhythmdb/rhythmdb-query-model.h:
4399         Add a new 'post-entry-delete' signal, emitted when the entry has been
4400         removed from the model's data structures.
4402         * shell/rb-play-order.c: (rb_play_order_finalize),
4403         (rb_play_order_query_model_changed),
4404         (rb_play_order_post_entry_delete_cb):
4405         Use the new signal to update the play order, so the queue play order
4406         doesn't try to scroll to entries that don't exist in a way that causes
4407         the tree view to crash.  Fixes #340216.
4409 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4411         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4412         Fix rb_debug call I missed previously.
4414 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4416         * metadata/rb-metadata-gst.c:
4417         Don't use NULL as the error message for ignored files, as it crashes
4418         with some C libraries.  Fixes #343713.
4420 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4422         * widgets/rb-dialog.c: (rb_error_dialog):
4423         * widgets/rb-dialog.h:
4424         Mark rb_error_dialog as taking printf-like arguments, and use a format
4425         string for the primary message rather than passing in the message
4426         directly.
4428         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4429         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4430         (info_available_cb):
4431         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4432         * shell/rb-removable-media-manager.c:
4433         (rb_removable_media_manager_eject_medium_cb):
4434         Make sure all calls to rb_error_dialog use string constants for the
4435         format string rather than passing the error message directly.  Remove
4436         an extra %s from the message used when playback fails.  Fixes #343562.
4438         * lib/rb-debug.h:
4439         * sources/rb-audiocd-source.c:
4440         * plugins/audioscrobbler/rb-audioscrobbler.c:
4441         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4442         Mark rb_debug as taking printf-like arguments and fix a few resulting
4443         warnings.
4445 2006-06-02  James Livingston  <doclivingston@gmail.com>
4447         * configure.ac:
4448         + macros/check.m4: add support for using check for unit tests, the .m4
4449         files is so autogen can run without check being installed
4451         * tests/Makefile.am:
4452         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4453         some of the old tests, and add some new ones. Currently
4454         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4455         yet (the query doesn't return any entries).
4457         - tests/deserialization-test1.xml:
4458         - tests/deserialization-test2.xml:
4459         - tests/deserialization-test3.xml:
4460         - tests/test-rhythmdb-indexing.c:
4461         - tests/test-rhythmdb-simple.c:
4462         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4463         have been ported
4465         - tests/test-cd.c:
4466         - tests/test-cmdline.c: remove obsolete tests
4468 2006-06-02  James Livingston  <doclivingston@gmail.com>
4470         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4471         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4472         id3v2mux, and check whether we are using a version of id3mux that has
4473         the correct merge-mode behaviour.
4475         * plugins/sample-python/Makefile.am: fix distcheck.
4477         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4478         the changed-files source was added before trying to remove it.
4480         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4481         *old* bug which would crash if a query with top-level disjunctions
4482         tried to check later disjunctive parts. Hooray for unit-testing.
4484 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4486         * player/rb-recorder-gst.c (rb_recorder_set_device):
4487         Check for a null drive.
4489 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4491         * lib/Makefile.am:
4492         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4493         Register the app icon as a builtin if the icon theme can't find it.
4495 2006-05-31  James Livingston  <doclivingston@gmail.com>
4497         * player/rb-recorder-gst.c: add missing include.
4499 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4501         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4502         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4503         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4504         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4505         (rb_recorder_set_device), (rb_recorder_get_default_device):
4506         * shell/main.c: (main):
4507         * shell/rb-removable-media-manager.c:
4508         (rb_removable_media_manager_finalize),
4509         (get_nautilus_burn_drive_for_path),
4510         (rb_removable_media_manager_playing_uri_changed_cb),
4511         (rb_removable_media_manager_load_media),
4512         (nautilus_burn_drive_get_device),
4513         (rb_removable_media_manager_scan):
4514         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4516         Update for libnautilus-burn 2.15.3 API changes.
4517         Fixes #342604
4519 2006-05-30  James Livingston  <doclivingston@gmail.com>
4521         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4522         "return" to that it asks for the password again if it was wrong.
4524 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4526         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4527         typefind element.
4529 2006-05-30  James Livingston  <doclivingston@gmail.com>
4531         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4532         (download_progress_cb): don't do wonky things if the transfer
4533         "suceeds" without transferring any data.
4535 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4537         * sources/rb-library-source.c: (layout_example_label_update),
4538         (build_filename):  Fix crash when no audio profile is selected.
4539         Fixes #341447.
4541 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4543         * shell/rb-shell.c: (rb_shell_clear_queue):
4544         * shell/rb-shell.h:
4545         * shell/rb-shell.xml:
4546         * sources/rb-play-queue-source.c:
4547         (rb_play_queue_source_clear_queue),
4548         (rb_play_queue_source_cmd_clear):
4549         * sources/rb-play-queue-source.h:
4550         Add clearQueue dbus method.
4552 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4554         * shell/main.c: (main):  Implement --quit option.
4556 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4558         * rhythmdb/rhythmdb-private.h:
4559         * rhythmdb/rhythmdb-tree.h:
4560         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4561         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4562         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4563         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4564         (rhythmdb_entry_get_boolean):
4565         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4566         bitmask, giving the db backend anything past the first 16 bits for 
4567         its own private use.
4569         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4570         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4571         Add a 'loading' flag to indicate that an entry is being loaded from
4572         disk, and use that to ignore entry_set operations on such entries
4573         rather than the 'inserted' flag, which doesn't quite mean the same
4574         thing.  Fixes #342694.
4576 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4578         * shell/rb-shell.xml: Remove visibility property, since it causes
4579         crashes (dbus bug 7057) and doesn't do much else.
4581 2006-05-28  James Livingston  <doclivingston@gmail.com>
4583         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4585         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4586         * po/POTFILES.in: fix some more i18n issues.
4588 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4590         * bindings/python/rb.defs:
4591         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4592         (filter_mmkeys):
4593         * shell/rb-shell-player.h:
4594         Deprecate the useless 'ignore_stop' parameter to
4595         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4596         API.  From bug #334829.
4598 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4600         * plugins/generic-player/rb-generic-player-source.c:
4601         (visit_playlist_dirs), (default_transform_playlist_uri):
4602         When playlist parsing fails, unref the playlist, not the parent
4603         source.  Fix memory leak in playlist uri transform.
4604         * plugins/generic-player/rb-nokia770-source.c:
4605         (impl_transform_playlist_uri):
4606         Fix memory leak in playlist uri transform.
4608 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4610         * doc/reference/Makefile.am: fix grk-doc build
4612 2006-05-27  James Livingston  <doclivingston@gmail.com>
4614         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4616         * plugins/lyrics/lyrics.py:
4617         * po/POTFILES.in: Make strings in plugins translatable. From bug
4618         343081.
4620 2006-05-27  James Livingston  <doclivingston@gmail.com>
4622         * backends/Makefile.am:
4623         * backends/gstreamer/Makefile.am:
4624         * lib/Makefile.am:
4625         * plugins/audioscrobbler/Makefile.am:
4626         * plugins/generic-player/Makefile.am:
4627         * po/POTFILES.in:
4628         * rhythmdb/rhythmdb-monitor.c:
4629         * rhythmdb/rhythmdb.c:
4630         * sources/Makefile.am:
4631         * widgets/Makefile.am: fix compilation after some CVS surgery was
4632         done.
4634 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4636         * bindings/python/rhythmdb.defs:
4637         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4638         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4639         (rhythmdb_query_deserialize):
4640         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4641         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4642         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4643         (rhythmdb_entry_register_type_alias),
4644         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4645         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4646         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4647         (rhythmdb_entry_podcast_feed_get_type),
4648         (rhythmdb_entry_import_error_get_type),
4649         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4650         * rhythmdb/rhythmdb.h:
4651         Allocate a specified amount of extra memory for each db entry, to be
4652         used to store fields specific to the entry type.  Optionally associate
4653         a name with each entry type, to be used when saving entries and
4654         auto playlists to disk.  Allow entry types to have multiple names
4655         to handle older playlist files that used '0' to represent 'song'.
4656         Use private data to store podcast fields.
4658         * rhythmdb/rhythmdb-private.h:
4659         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4660         (rhythmdb_tree_parser_end_element), (save_entry),
4661         (rhythmdb_tree_entry_set):
4662         Simplify property handling by using existing code to convert
4663         properties from strings to GValues and to set properties on entries.
4664         Other assorted changes due to the above.
4666         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4667         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4668         * sources/rb-generic-player-source.c:
4669         (rb_generic_player_source_new):
4670         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4671         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4672         * sources/rb-psp-source.c: (rb_psp_source_new):
4673         Update for changes to rhythmdb_entry_register_type.  None of these
4674         entry types need names or use private data.
4676         Fixes #337429.
4678 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4680         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4681         Fix creation of ignored-file db entries - need to check for
4682         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4684 2006-05-25  James Livingston  <doclivingston@gmail.com>
4686         * AUTHORS:
4687         * MAINTAINERS: update my email address
4689 2006-05-25  James Livingston  <doclivingston@gmail.com>
4691         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4692         "(... mix)" when searching for lyrics. Cache the lyrics under
4693         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4695 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4697         * sources/rb-import-errors-source.c:
4698         (rb_import_errors_source_class_init):
4699         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4700         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4701         * sources/rb-source.c: (rb_source_class_init),
4702         (default_move_to_trash):
4703         Implement the basic move-to-trash operation once in rb-source.c, 
4704         rather than in each source type that supports it.
4706         * plugins/ipod/rb-ipod-plugin.c:
4707         * shell/rb-removable-media-manager.c:
4708         * shell/rb-shell.c: (rb_shell_constructor):
4709         Only scan removable media once after loading plugins.  Add a flag
4710         plugins can use to check if the initial scan has been done.
4712         * data/rhythmbox.schemas:
4713         Enable ipod and generic-player plugins by default.
4714         
4715         * configure.ac:
4716         * data/ui/Makefile.am:
4717         * data/ui/generic-player-ui.xml:
4718         * data/ui/rhythmbox-ui.xml:
4719         * plugins/Makefile.am:
4720         * plugins/generic-player/Makefile.am:
4721         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4722         * plugins/generic-player/rb-generic-player-plugin.c:
4723         * sources/Makefile.am:
4724         * sources/rb-generic-player-source.c:
4725         * sources/rb-generic-player-source.h:
4726         * sources/rb-nokia770-source.c:
4727         * sources/rb-nokia770-source.h:
4728         * sources/rb-psp-source.c: (visit_playlist_dirs):
4729         * sources/rb-psp-source.h:
4730         Pluginise generic player (and nokia770 and PSP) support and add
4731         move-to-trash for players not mounted read-only.
4732         Fixes #342868.
4734 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4736         * daapsharing/rb-daap-connection.c (handle_song_listing):
4737         Lower bound check for batch commit.  Fixes #342848
4739         * sources/rb-daap-source.c (rb_daap_source_get_status):
4740         Always set output variables if provided.
4742 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4744         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4745         (rhythmdb_tree_entry_delete), (remove_one_song):
4746         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4747         Fix two db entry reference counting problems.
4748         The initial reference on the entry is held by the db backend, but it
4749         was never being dropped.  The reference count was incremented when
4750         adding an entry to the deleted_entries map and to the
4751         deleted_entries_to_emit list, but only decremented for one of those.
4753 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4755         * daapsharing/rb-daap-connection.c (http_response_handler) 
4756         (rb_daap_connection_dispose):
4757         Call soup_session_abort to make sure there are no outstanding
4758         requests when we dispose of the connection.  Ignore cancelled
4759         messages in the callback.
4761 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4763         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4764         (rb_daap_source_disconnect): Set a flag when disconnecting
4765         the source.  Check this flag in connection callback
4766         to see if we should release the connection.
4768 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4770         * daapsharing/Makefile.am:
4771         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4772         (rb_daap_connection_class_init), (connection_connected),
4773         (connection_disconnected), (connection_operation_done),
4774         (build_message), (connection_set_error_message),
4775         (actual_http_response_handler), (http_get),
4776         (entry_set_string_prop), (emit_progress_idle),
4777         (handle_server_info), (handle_login), (handle_update),
4778         (handle_database_info), (handle_song_listing), (handle_playlists),
4779         (handle_playlist_entries), (handle_logout),
4780         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4781         (connection_response_data_free), (connected_cb),
4782         (rb_daap_connection_connect), (disconnected_cb),
4783         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4784         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4785         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4786         (rb_daap_connection_get_property):
4787         * daapsharing/rb-daap-connection.h:
4788         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4789         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4790         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4791         (rb_daap_hash_generate):
4792         * daapsharing/rb-daap-hash.h:
4793         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4794         (rb_daap_get_icon), (remove_source), (stop_browsing),
4795         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4796         (connection_connecting_cb), (connection_disconnected_cb),
4797         (release_connection), (rb_daap_source_connection_cb),
4798         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4799         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4801         Adds a better async API for connect and disconnect.  Doesn't share
4802         callback data for every async call.  Adds a connect signal.  Uses
4803         an operation-done signal to trigger the callbacks.  Displays an
4804         error when connections fail.  A few refcounting fixes to fix
4805         crashes.  Uses a weak pointer to set the connection to NULL so we
4806         don't clobber references.  Wait for each disconnect when shutting
4807         down sources.  Split out DAAP hash stuff into its own file.  Fix
4808         typo in header.
4810         Fixes #342643
4811         
4812 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4814         * sources/rb-auto-playlist-source.c:
4815         (rb_auto_playlist_source_new_from_xml):
4816         Initialize the gvalue used to hold the size limit correctly.
4817         Fixes #342744.
4819 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4821         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4822         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4823         * shell/rb-shell.h:
4824         * shell/rb-shell.xml:
4825         Convert rb_shell_quit into a dbus method, and add visibility dbus
4826         property.
4828 2006-05-22  James Livingston  <doclivingston@gmail.com>
4830         * rhythmdb/rhythmdb.h:
4831         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4832         (rhythmdb_entry_is_editable), (action_thread_main),
4833         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4834         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4835         false, and syncing into the file.
4837         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4838         (rhythmdb_entry_iradio_get_type),
4839         (rhythmdb_entry_import_error_get_type):
4840         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4841         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4842         change the DB.
4844 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4846         * rhythmdb/Makefile.am:
4847         * rhythmdb/rhythmdb-monitor.c:
4848         * rhythmdb/rhythmdb-private.h:
4849         * rhythmdb/rhythmdb-query.c:
4850         * rhythmdb/rhythmdb.c:
4851         Split up rhythmdb.c a bit.
4853 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4855         * data/glade/audioscrobbler-prefs.glade:
4856         Add a link to the last.fm server status page.
4858 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4860         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4861         Capitalization fix.
4862         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4863         (impl_create_configure_dialog):  UI layout fixes, remove
4864         dialog separator, and capitalization fix for window title.
4865         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4866         and remove dialog separator.
4867         * data/glade/plugins.glade:  UI layout fixes.
4868         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4869         and capitalization fix.  Fixes #342438.
4871 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4873         * data/glade/podcast-properties.glade:  Fix layout of the download 
4874         location.  Fixes #342431.
4876 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4878         * data/ui/rhythmbox-ui.xml:
4879         We only need one copy of the 'add to queue' action in the edit menu.
4881 2006-05-20  James Livingston  <doclivingston@gmail.com>
4883         * data/ui/rhythmbox-ui.xml:
4884         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4885         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4886         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4887         (rb_shell_clipboard_sync),
4888         (rb_shell_clipboard_cmd_add_to_playlist_new),
4889         (rb_shell_clipboard_cmd_queue_song_info),
4890         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4891         (rb_shell_clipboard_playlist_deleted_cb),
4892         (rb_shell_clipboard_playlist_renamed_cb),
4893         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4894         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4895         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4896         dynamically generated with all the static playlists. Fixes bug 323364.
4898         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4899         right child, so it doesn't go weird when art appears and disappears.
4901 2006-05-20  James Livingston  <doclivingston@gmail.com>
4903         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4905         * rhythmdb/rhythmdb-query-model.c:
4906         (rhythmdb_query_model_set_property),
4907         (rhythmdb_query_model_finalize),
4908         (rhythmdb_query_model_reapply_query_cb):
4909         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4910         (rhythmdb_query_append_prop_multiple),
4911         (rhythmdb_query_is_time_relative):
4912         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4913         time-based criteria, fixes bug 341131.
4915 2006-05-20  James Livingston  <doclivingston@gmail.com>
4917         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4918         we have already changed playing entries. Interpolate the art size so
4919         it doesn't jump when the old and new images have different aspect
4920         ratios.
4922 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4924         * rhythmdb/rhythmdb-private.h:
4925         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4926         (save_entry):
4927         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4928         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4929         (rhythmdb_entry_get_ulong):
4930         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4931         and elsewhere, use them on the stack rather than allocating on 
4932         the heap.  From bug #342333.
4934 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4936         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4937         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4938         (add_track), (eos_cb), (error_signal_idle),
4939         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4940         (rb_recorder_construct), (recorder_track_free),
4941         (rb_recorder_finalize):
4942         * sources/rb-playlist-source-recorder.c:
4943         Support libnautilus-burn size -> capacity API change.  Add
4944         some braces to blocks.
4946 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4948         * metadata/sj-metadata-musicbrainz.c:
4949         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4950         Sync with sound-juicer in CVS.  Fixes #342177
4951         * sources/rb-audiocd-source.c: Don't declare variables
4952         in the middle of a block (c99ism).  Fix order of #includes.
4953         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4954         one variable per line.  Update copyright date.
4956 2006-05-19  James Livingston  <doclivingston@gmail.com>
4958         patch by: Hendrik Richter  <hendi@gnome-de.org>
4960         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4961         "translator_credits" to a hyphen, so it doesn't cause problems for
4962         tools that check access keys. Fixes bug 341832.
4964 2006-05-19  James Livingston  <doclivingston@gmail.com>
4966         * po/POTFILES.in: remove references to files that don't exist any more
4967         (fixes make distcheck).
4969 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4971         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4972         Song Lyrics dialog. Fixes bug 342322.
4974 2006-05-19  James Livingston  <doclivingston@gmail.com>
4976         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4978         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4979         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4980         version checks not break when libnotify goes to 1.0.0. Fixes bug
4981         342244.
4983 2006-05-18  James Livingston  <doclivingston@gmail.com>
4985         * shell/rb-shell-clipboard.c:
4986         * shell/rb-shell.c:
4987         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4989 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4991         * sources/rb-playlist-source-recorder.c (get_song_description):
4992         Reverse artist and title in song description.  This
4993         is useful because at least the title will be visible
4994         when there is limited space.
4996 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4998         * daapsharing/rb-daap-connection.c: (connection_get_password):
4999         Take gdk lock before emitting authenticate signal.
5000         * sources/rb-daap-source.c: (connection_connecting_cb):
5001         Get rid of the unnecessary idle handler (it's already called from one)
5002         Fixes #342047 once more.
5004 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5006         * shell/rb-shell.c: (rb_shell_class_init):
5007         * shell/rb-shell.h:
5008         * widgets/rb-song-info.c: (rb_song_info_class_init),
5009         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5010         (rb_song_info_constructor), (rb_song_info_get_property),
5011         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5012         (rb_song_info_forward_clicked_cb):
5013         * widgets/rb-song-info.h:
5014         * data/glade/song-info-multiple.glade:
5015         * lib/rb-marshal.list:
5016         * bindings/python/Makefile.am:
5017         * bindings/python/rb.defs:
5018         * bindings/python/rb.override:
5019         Allow plugins to add pages to the notebooks used in song info windows,
5020         and to track the current song displayed in single-entry windows.
5021         
5022         * configure.ac:
5023         * plugins/Makefile.am:
5024         * plugins/lyrics/Loader.py:
5025         * plugins/lyrics/Makefile.am:
5026         * plugins/lyrics/lyrics.py:
5027         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5028         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5029         as a separate window (for the playing song) or as a page in the song
5030         info window.  A few TODO items left, but this fixes #319320.
5032 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5034         Patch by:  Roozbeh Pournader
5036         * configure.ac:
5037         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5038         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5040 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5041         
5042         * sources/rb-daap-source.c: (update_connection_status):
5043         Correct return value.  Fixes #342047 again.
5045 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5047         * sources/rb-daap-source.c: (update_connection_status),
5048         (connection_connecting_cb):
5049         Update status in an idle handler so we don't rely on the gdk lock
5050         being recursive (because it isn't any more).  Fixes #342047.
5052 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5054         * lib/rb-util.c: (rb_make_duration_string),
5055         (rb_make_elapsed_time_string):
5056         * lib/rb-util.h:
5057         Add a function for formatting an elapsed time string.
5059         * shell/rb-shell-player.c: (rb_shell_player_init),
5060         (rb_shell_player_sync_with_source),
5061         (rb_shell_player_get_playing_time_string), (tick_cb):
5062         Store elapsed time in the private data structure, and use the above
5063         function.
5064         
5065         * widgets/rb-header.c:
5066         * widgets/rb-header.h:
5067         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5068         object, so everything has the same idea of the elapsed time.
5069         Fixes #339693.
5071 2006-05-16  James Livingston  <doclivingston@gmail.com>
5073         * bindings/python/rhythmdb.defs:
5074         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5075         some parametre defaults, so you don't have to pass None, False for the
5076         sorting order.
5078 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5080         * bindings/python/rhythmdb.defs:
5081         * rhythmdb/rhythmdb-query-model.c:
5082         (rhythmdb_query_model_compute_status_normal):
5083         * rhythmdb/rhythmdb-query-model.h:
5084         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5085         * rhythmdb/rhythmdb.h:
5086         Change the various compute_status methods to accept a singular/plural
5087         pair to use in the status string.
5088         
5089         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5090         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5091         * sources/rb-source.c: (default_get_status):
5092         Call entries 'songs' by default, and 'episodes' in the podcast source.
5093         Fixes #340227.
5095 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5097         patch by:  Paul Drain
5099         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5100         Fixes #341817.
5102 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5104         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5105         Generate reorder maps correctly.
5106         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5107         Scroll to the first entry from the old selection.
5108         Fixes #322992.
5110 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5112         * data/ui/rhythmbox-ui.xml:
5113         * lib/rb-preferences.h:
5114         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5115         (rb_shell_playlist_created_cb),
5116         (rb_shell_view_sidepane_changed_cb),
5117         (rb_shell_sync_sidepane_visibility),
5118         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5119         (sidepane_visibility_changed_cb):
5120         * sources/rb-podcast-source.c:
5121         Convert sourcelist visibility to side-pane visbility.
5122         Fixes #339733
5124 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5126         * widgets/rb-header.c:
5127         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5128         'player', and make it use the private data structure allocated for it.
5130 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5132         * configure.ac: enable metadata helper with dbus < 0.35.
5134 2006-05-15  James Livingston  <doclivingston@gmail.com>
5136         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5138         * data/glade/song-info.glade:
5139         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5140         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5141         (rb_song_info_update_filesize): Add the file size into the song info
5142         window. Fixes bug 340861.
5144 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5146         * bindings/python/rhythmdb.defs:
5147         * rhythmdb/rhythmdb-query-model.c:
5148         (rhythmdb_query_model_set_property),
5149         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5150         * rhythmdb/rhythmdb-query-model.h:
5151         Add a new method to chain query models without importing entries from
5152         the parent into the child.  This is useful when the subset of entries
5153         in the child can be more easily determined by running a query than by
5154         filtering entries from the parent.
5156         * bindings/python/rb.defs:
5157         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5158         (rb_library_browser_set_property),
5159         (rb_library_browser_get_property), (rb_library_browser_new),
5160         (rebuild_child_model):
5161         * widgets/rb-library-browser.h:
5162         * sources/rb-auto-playlist-source.c:
5163         (rb_auto_playlist_source_constructor):
5164         * sources/rb-static-playlist-source.c:
5165         (rb_static_playlist_source_constructor):
5166         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5167         Use more efficient queries for constructing the browser query model
5168         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5169         backend to optimise the query) and run new queries rather than
5170         filtering entries from the parent.  Fixes #341402.
5172         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5174 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5176         * configure.ac:
5177         * shell/Makefile.am:
5178         * shell/main.c: (main), (load_uri_args), (send_present_message),
5179         (unregister_dbus_handler), (handle_dbus_message),
5180         (register_dbus_handler):
5181         Add minimal support for dbus 0.31 - 0.35.
5183         * doc/reference/Makefile.am:
5184         * doc/reference/rhythmbox.types:
5185         * data/Makefile.am:
5186         * data/GNOME_Rhythmbox.server.in:
5187         * data/rhythmbox.pc.in:
5188         * remote/*:
5189         * remote/bonobo/*:
5190         Remove remaining bonobo and generic remote interface files.
5192 2006-05-14  James Livingston  <doclivingston@gmail.com>
5194         * shell/rb-shell.c: (construct_widgets):
5195         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5196         resize the browser and queue-sidebar section of their panes, unless
5197         the other section is below the minimum size. Fixes bug 331927.
5199 2006-05-13  James Livingston  <doclivingston@gmail.com>
5201         * rhythmdb/rhythmdb-query-model.c:
5202         (rhythmdb_query_model_class_init),
5203         (rhythmdb_query_model_set_property),
5204         (rhythmdb_query_model_get_property),
5205         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5206         (rhythmdb_query_model_insert_into_main_list),
5207         (rhythmdb_query_model_insert_into_limited_list),
5208         (rhythmdb_query_model_do_reorder),
5209         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5210         (rhythmdb_query_model_location_sort_func),
5211         (rhythmdb_query_model_title_sort_func),
5212         (rhythmdb_query_model_album_sort_func),
5213         (rhythmdb_query_model_artist_sort_func),
5214         (rhythmdb_query_model_genre_sort_func),
5215         (rhythmdb_query_model_track_sort_func),
5216         (rhythmdb_query_model_double_ceiling_sort_func),
5217         (rhythmdb_query_model_ulong_sort_func),
5218         (rhythmdb_query_model_date_sort_func),
5219         (rhythmdb_query_model_string_sort_func):
5220         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5221         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5222         "data destroy" property. Fixed bug 341543.
5224         * bindings/python/rhythmdb.defs:
5225         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5226         rhythmdb_query_model_set_sorting_order
5228         * rhythmdb/rhythmdb-property-model.c:
5229         (rhythmdb_property_model_drag_data_get):
5230         * sources/rb-import-errors-source.c:
5231         (rb_import_errors_source_constructor):
5232         * sources/rb-missing-files-source.c:
5233         (rb_missing_files_source_constructor):
5234         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5235         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5236         * widgets/rb-entry-view.h: adapt to the above change.
5238 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5240         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5241         (rhythmdb_tree_load):
5242         Commit loaded entries in batches, rather than individually.  
5243         More startup time reduction.
5245 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5247         * doc/reference/Makefile.am: fix gtk-doc compilation
5249 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5251         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5252         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5253         * plugins/artdisplay/artdisplay/Loader.py:
5254         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5255         Only call the first artist the best match when album==Unknown.
5256         Don't perform each query twice if album doesn't include "Vol N".
5257         Fix searching for compilations.  Fix blacklisting.
5258         Part of bug #307848
5260 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5262         * Makefile.am:
5263         * bindings/python/Makefile.am:
5264         * bindings/python/rb.defs:
5265         * bindings/python/rb.override:
5266         * configure.ac:
5267         * doc/reference/Makefile.am:
5268         * plugins/Makefile.am:
5269         * plugins/audioscrobbler/Makefile.am:
5270         * plugins/ipod/Makefile.am:
5271         * plugins/lirc/Makefile.am:
5272         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5273         (impl_activate), (impl_deactivate):
5274         * plugins/sample/Makefile.am:
5275         * remote/Makefile.am:
5276         * shell/Makefile.am:
5277         * shell/main.c: (main), (main_shell_weak_ref_cb):
5278         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5279         (rb_shell_get_property), (rb_shell_window_state_cb),
5280         (idle_hide_mainwindow), (rb_shell_set_visibility),
5281         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5282         (rb_shell_set_song_property):
5283         * shell/rb-shell.h:
5284         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5285         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5286         (rb_tray_icon_get_property), (rb_tray_icon_new),
5287         (rb_tray_icon_button_press_event_cb),
5288         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5289         (rb_tray_icon_show_window_changed_cb):
5290         * shell/rb-tray-icon.h:
5292         Remove bonobo, require DBUS.
5293         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5294         Fixes #339720
5296 2006-05-13  James Livingston  <doclivingston@gmail.com>
5298         * bindings/python/rb.override: fix some pointer-type warnings
5300 2006-05-12  James Livingston  <doclivingston@gmail.com>
5302         * lib/rb-util.c: (rb_value_free):
5303         * lib/rb-util.h: Add function to unset and free a GValue* that was
5304         allocated in the heap.
5306         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5307         the metadata hastable values
5308         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5309         leak the metadata hashtable structure
5310         * metadata/rb-metadata-dbus.c:
5311         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5312         using g_strdup and then _take_string
5314         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5315         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5316         stat something.
5318         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5319         leak the encoded string
5321         * widgets/rb-property-view.c:
5322         (rb_property_view_selection_changed_cb): set some variables to have
5323         inital values, because some code paths may not set them before we use
5324         them.
5326         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5327         don't have python warning into a debug message".
5329 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5331         * data/rhythmbox.schemas: Use zero instead of null for
5332         default burn speed.  Fixes #341283.
5334 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5336         * bindings/python/rb.defs:
5337         * widgets/rb-library-browser.c:
5338         (rb_library_browser_get_property_view):
5339         * widgets/rb-library-browser.h:
5340         Add a method to get the property view for a given property.
5342         * sources/rb-browser-source.c:
5343         (rb_browser_source_cmd_choose_genre),
5344         (rb_browser_source_cmd_choose_artist),
5345         (rb_browser_source_cmd_choose_album):
5346         Change the browser selection by changing the property view selection. 
5347         Makes the selection change visible, fixing #331740.
5349 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5351         * bindings/python/rb.defs:
5352         * bindings/python/rb.override:
5353         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5354         * shell/rb-statusbar.c: (*),
5355         * sources/rb-import-errors-source.c: (impl_get_status):
5356         * sources/rb-iradio-source.c: (impl_get_status):
5357         * sources/rb-missing-files-source.c: (impl_get_status):
5358         * sources/rb-source.c: (default_get_status),
5359         (rb_source_get_status):
5360         * sources/rb-source.h:
5361         Allow sources to provide a progress value for the status bar.
5362         Simplify status bar processing (much less polling).
5363         Consider rhythmdb busy while it's still loading the database.
5365         * daapsharing/rb-daap-connection.c: (*)
5366         * daapsharing/rb-daap-connection.h:
5367         * lib/rb-marshal.list:
5368         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5369         (rb_daap_source_init), (connection_connecting_cb),
5370         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5371         (rb_daap_source_get_status):
5372         Provide status information for DAAP connections, and move processing
5373         of large responses into a separate thread.
5374         Fixes bugs #322020 and #338978.
5376 2006-05-09  James Livingston  <doclivingston@gmail.com>
5378         Split the artdisplay plugin into several files.
5379         Fix loader and amazon-search re-use issues.
5380         Add some better search heuristics.
5382         * configure.ac:
5383         * plugins/artdisplay/Makefile.am:
5384         * plugins/artdisplay/artdisplay.py:
5385         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5386         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5387         * plugins/artdisplay/artdisplay/Loader.py:
5388         * plugins/artdisplay/artdisplay/Makefile.am:
5389         * plugins/artdisplay/artdisplay/__init__.py:
5391 2006-05-09  James Livingston  <doclivingston@gmail.com>
5393         * sources/rb-browser-source.h: remove the _has_first_added_column
5394         stuff since it isn't actually used anywhere. Sources that want it
5395         should just add it themselves, as the library already does
5397         * bindings/python/rb.defs:
5398         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5399         * sources/rb-library-source.c: (rb_library_source_class_init):
5400         * sources/rb-removable-media-source.c:
5401         (rb_removable_media_source_class_init): Remove the remanants of the
5402         above.
5404 2006-05-09  James Livingston  <doclivingston@gmail.com>
5406         * bindings/python/rb.defs:
5407         * sources/rb-browser-source.h: remove a function that was declared in
5408         the header, but not defined anywhere.
5410 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5412         * plugins/artdisplay/.cvsignore:
5413         * plugins/ipod/.cvsignore: Added.
5415 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5417         * sources/rb-auto-playlist-source.c:
5418         (rb_auto_playlist_source_new_from_xml):
5419         Fix reading of older playlist files where all three limits were
5420         specified so we take the first nonzero limit.  From #341053.
5422 2006-05-09  James Livingston  <doclivingston@gmail.com>
5424         * bindings/python/Makefile.am:
5425         * bindings/python/rb.defs:
5426         * bindings/python/rb.override: bind RBBrowserSource,
5427         RBRemovableMediaSource and RBRemovableMediamanager.
5429 2006-05-09  James Livingston  <doclivingston@gmail.com>
5431         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5433         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5434         Fixes bug 339221.
5436 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5438         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5439         Don't explode when trying to edit a query with no limit set.
5441 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5443         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5444         Clear the should_queue flag when switching to a non-submittable entry,
5445         so we don't submit songs that played for three seconds before
5446         switching to a podcast episode.
5448         * rhythmdb/rhythmdb-query-model.c
5449         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5450         in the drag data list.
5452 2006-05-08  James Livingston  <doclivingston@gmail.com>
5454         * lib/rb-util.c: (rb_value_array_append_data):
5455         * lib/rb-util.h: add function which is basically a combination of
5456         G_VALUE_COLLECT and g_value_array_append.
5458         * rhythmdb/rhythmdb-query-model.h:
5459         * rhythmdb/rhythmdb-query-model.c:
5460         (rhythmdb_query_model_class_init),
5461         (rhythmdb_query_model_set_property),
5462         (rhythmdb_query_model_get_property),
5463         (rhythmdb_query_model_finalize),
5464         (rhythmdb_query_model_update_limited_entries),
5465         (rhythmdb_query_model_set_sort_order),
5466         (rhythmdb_query_model_within_limit),
5467         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5468         saner. Rather than having <count=N, time=N, size=N> we now have a
5469         <type, value> pair. This will also make it much easier to add new
5470         limit types in the future.
5472         * shell/rb-playlist-manager.c:
5473         (rb_playlist_manager_set_automatic_playlist),
5474         (rb_playlist_manager_cmd_edit_automatic_playlist):
5475         * sources/rb-auto-playlist-source.c:
5476         (rb_auto_playlist_source_finalize),
5477         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5478         (_save_write_ulong), (_save_write_uint64),
5479         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5480         (rb_auto_playlist_source_set_query),
5481         (rb_auto_playlist_source_get_query):
5482         * sources/rb-auto-playlist-source.h:
5483         * sources/rb-library-source.c:
5484         (rb_library_source_add_child_source):
5485         * sources/rb-psp-source.c: (visit_playlist_dirs):
5486         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5487         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5488         * widgets/rb-query-creator.h: Adapt to the above change.
5490 2006-05-08  James Livingston  <doclivingston@gmail.com>
5492         * shell/rb-playlist-manager.c:
5493         (rb_playlist_manager_cmd_edit_automatic_playlist):
5494         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5495         (rb_auto_playlist_source_set_query),
5496         (rb_auto_playlist_source_get_query): copy the query in the _get method
5497         and free it in things calling that. Fixes a crasher.
5499 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5501         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5502         Make entries on newly mounted volumes visible immediately, hiding them
5503         later if they turn out to be missing.  Fixes #340068.
5505 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5507         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5508         Ignore zip files and ignore errors for files we've decided to ignore.
5510 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5512         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5513         Add missing }, should fix #340844.
5515 2006-05-06  James Livingston  <doclivingston@gmail.com>
5517         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5518         typo.
5520 2006-05-06  James Livingston  <doclivingston@gmail.com>
5522         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5523         that we work with libnotify >= 0.4
5525 2006-05-06  James Livingston  <doclivingston@gmail.com>
5527         patch by: Joe Barnett  <thejoe@gmail.com>
5529         * configure.ac: check if we're using a version of libgpod that
5530         supports the Motorola ROKR
5532         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5533         for the db path, if we using the newer version.
5535         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5537 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5539         * rhythmdb/rhythmdb-query-model.c:
5540         (rhythmdb_query_model_drag_data_get):
5541         Use playback URI, not location, for drag data.  Fixes #322597.
5543 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5545         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5547 2006-05-03  James Livingston  <doclivingston@gmail.com>
5549         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5550         (rb_add_id3_tagger), (rb_metadata_save):
5551         Set the tags on the tagging element when it is
5552         created, not during pipeline creation - which is required for
5553         dynamically created elements.
5555         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5556         support for using the "vorbistag" element to re-tag ogg vorbis files.
5557         Fixes bug 339878.
5559 2006-05-03  James Livingston  <doclivingston@gmail.com>
5561         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5563         * plugins/artdisplay/artdisplay.py:
5564         - Fix small bug callback of data loader getting overwritten on fast
5565         connections.
5566         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5567         Jonathan Matthew)
5568         - Fix Rhythmbox UI blocking while loading/searching cover art
5569         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5570         - Initial approach to allow additional "art search engines"
5571         - Further modularization in a couple of places
5572         - Minor fixes for empty entries (iradio, album, artist etc.)
5574 2006-05-03  James Livingston  <doclivingston@gmail.com>
5576         * shell/rb-playlist-manager.c:
5577         (rb_playlist_manager_playlist_entries_changed),
5578         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5579         options for non-local sources, rather than showing disabled ones.
5581         * sources/rb-library-source.c: (add_child_sources_idle),
5582         (rb_library_source_constructor), (rb_library_source_new),
5583         (rb_library_source_library_location_changed),
5584         (rb_library_source_add_child_source),
5585         (rb_library_source_sync_child_sources): Create "child library" sources
5586         when the user has multiple library locations set. Fixes bug 100552.
5588 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5590         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5591         * plugins/sample/sample.rb-plugin.desktop.in:
5592         Finish changing 'Author' to 'Authors'
5593         
5594         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5595         (rhythmdb_entry_import_error_get_type):
5596         Implement get_playback_uri for import errors (returns NULL)
5598         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5599         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5600         entry, rather than doing entry type checks.
5602 2006-05-02  James Livingston  <doclivingston@gmail.com>
5604         patch from Alessandro Decina  <alessandro@nnva.org>
5606         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5607         the signal emission in the case of fatal-on-init errors. From bug
5608         322268.
5610 2006-05-02  James Livingston  <doclivingston@gmail.com>
5612         * rhythmdb/rhythmdb.h:
5613         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5614         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5615         (rhythmdb_entry_podcast_post_get_type),
5616         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5617         virtual function to entry-types for getting the playback URI. From bug
5618         330226.
5620         * backends/gstreamer/rb-encoder-gst.c:
5621         (create_pipeline_and_source), (extract_track):
5622         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5623         to get the URI.
5625 2006-05-02  James Livingston  <doclivingston@gmail.com>
5627         patch by: Brian Cameron  <brian.cameron@sun.com>
5629         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5630         340337.
5632 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5634         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5635         instead of clear.  Use regex matching to strip "disc N"
5636         from album.  Match titles in ProductName.  Perform
5637         fallback queries including various artist compilations.
5638         Include "us" locale.  Improve queries when artist or album
5639         is unknown.  Use medium size image if large is unavailable.
5641         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5642         William Jon McCann  <mccann@jhu.edu>
5643         
5644 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5646         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5647         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5648         (conjunctive_query): Sanity check.
5649         (evaluate_conjunctive_subquery): 
5650         Don't return TRUE immediately when a relative-time query criterion
5651         matches.  Fixes #339972.
5653 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5655         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5656         Don't crash if primary or secondary are NULL.
5658 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5660         * doc/reference/Makefile.am: fix gtk-doc build yet again
5662 2006-04-28  James Livingston  <doclivingston@gmail.com>
5664         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5665         python console. Fixes bug 339934.
5667 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5669         * rhythmdb/rhythmdb-property-model.c:
5670         (rhythmdb_property_model_drag_data_get):
5671         When creating uri list drag data, create a new query model based on
5672         the query model the property model is attached to.  Makes the
5673         resulting query use the right entry type and include the upstream
5674         query criteria.  Fixes half of #327540.
5676 2006-04-27  James Livingston  <doclivingston@gmail.com>
5678         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5679         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5680         build fixes.
5682 2006-04-27  James Livingston  <doclivingston@gmail.com>
5684         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5686 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5688         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5689         (rb_playlist_manager_save_data),
5690         (rb_playlist_manager_save_playlists):
5691         * shell/rb-playlist-manager.h:
5692         * shell/rb-shell.c: (rb_shell_sync_state),
5693         (idle_save_playlist_manager):
5694         Remove a bit more threading insanity from the playlist manager.
5696 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5698         * shell/rb-playlist-manager.c: 
5699         * shell/rb-playlist-manager.h:
5700         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5701         
5702         * shell/rb-shell.c: (rb_shell_sync_state),
5703         (idle_save_playlist_manager), (construct_sources),
5704         (rb_shell_select_source), (rb_shell_sync_party_mode):
5705         Adjustments for above changes.
5707 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5709         * sources/rb-browser-source.c (impl_browser_toggled):
5710         Reset browser when hidden.  Fixes #339617.
5712 2006-04-26  James Livingston  <doclivingston@gmail.com>
5714         * backends/Makefile.am:
5715         * backends/gstreamer/Makefile.am: work again with separated
5716         built-roots
5718 2006-04-26  James Livingston  <doclivingston@gmail.com>
5720         * shell/rb-removable-media-manager.c:
5721         (rb_removable_media_manager_set_uimanager): fix compilation with
5722         -Werror and --enable-track-transfer.
5724 2006-04-26  James Livingston  <doclivingston@gmail.com>
5726         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5727         implementing class. In theory allows alternate player implementations
5728         to be selected at run-time rather than compile-time. Fixes bug 338667.
5730         * Makefile.am:
5731         * backends/Makefile.am:
5732         * backends/gstreamer/Makefile.am:
5733         * backends/gstreamer/rb-player-gst.h:
5734         * backends/rb-player.c: (rb_player_interface_init),
5735         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5736         (rb_player_close), (rb_player_play), (rb_player_pause),
5737         (rb_player_playing), (rb_player_set_volume),
5738         (rb_player_get_volume), (rb_player_set_replaygain),
5739         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5740         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5741         (_rb_player_emit_buffering), (_rb_player_emit_error),
5742         (_rb_player_emit_tick), (rb_player_error_quark):
5743         * player/Makefile.am:
5744         * player/rb-player-gst.c: (rb_player_gst_class_init),
5745         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5746         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5747         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5748         (process_tag), (found_tag_cb), (buffering_cb),
5749         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5750         (rb_player_gst_new):
5751         * player/rb-player.h:
5752         * shell/Makefile.am:
5753         * sources/rb-audiocd-source.c:
5754         * widgets/Makefile.am:
5755         * widgets/rb-header.c: (rb_header_class_init):
5757 2006-04-26  James Livingston  <doclivingston@gmail.com>
5759         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5760         don't try to download an episode if it couldn't be parsed. Fixes bug
5761         339712.
5763         * shell/rb-removable-media-manager.c:
5764         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5765         Library" option when track transfer is disabled. Fixes bug 339728.
5767 2006-04-26  James Livingston  <doclivingston@gmail.com>
5769         * data/ui/Makefile.am:
5770         * data/ui/daap-ui.xml:
5771         * data/ui/rhythmbox-ui.xml:
5772         * sources/rb-daap-source.c: (rb_daap_sources_init),
5773         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5774         way that the ipod ui is. Fixes bug 339743.
5776 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5778         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5779         (process_added_entries_cb), (process_deleted_entries_cb),
5780         (rhythmdb_commit_internal): 
5781         Combine the idle functions to emit entry-added and entry-deleted,
5782         and combine as many invocations of same as possible.  Another
5783         significant reduction in startup time.
5784         
5785         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5786         Delay the next call to rhythmdb_process_events if the queue is
5787         empty or if we can't process any of the events in the queue because
5788         the database is read only.
5790         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5792 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5794         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5796         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5797         Don't special case errors quite so much.
5799 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5801         * data/rhythmbox.schemas: Remove default speed.
5803         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5804         Add n-c-b 2.15 support.  Make the default speed to slowest since
5805         that is all that works reliably.
5807 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5809         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5810         Fix compiler error from last commit.
5812 2006-04-25  James Livingston  <doclivingston@gmail.com>
5814         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5815         transcoding-related issues. From bug 322268.
5817         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5818         don't emit the signal, since the object is being finalised, which os a
5819         Bad Thing To Do.
5821         (profile_bin_find_encoder), (get_profile_from_mime_type),
5822         (transcode_track): find the encoding element by iterating looking for
5823         element in the class Codec/Encoder/Audio rather than the one named
5824         "enc".
5826 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5828         * shell/rb-shell-player.xml:
5829         * shell/rb-shell.xml:
5830         Add signal argument information.  
5831         Patch by Tim Moloney  <t.moloney@verizon.net>
5833         * shell/rb-shell.c: (rb_shell_window_state_cb):
5834         Use the right value for the visibility_changed signal.  Most of the
5835         time, anyway.
5837 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5839         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5840         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5841         (impl_create_configure_dialog):
5842         * data/glade/audioscrobbler-prefs.glade:
5843         * shell/rb-audioscrobbler.c (*):
5844         * lib/rb-preferences.h:
5845         * data/rhythmbox.schemas:
5846         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5847         Add status information (# tracks submitted, # queued, last submit
5848         time, result of last submission) to the plugin config window.
5849         Remove 'enabled' setting, since it's easier to just disable the
5850         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5851         nonexistant (so far) 'last.fm streaming' plugin.
5852         
5853         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5854         plugin
5856         Fixes some of #325848.  We still don't provide a way to view the
5857         submission queue.
5859 2006-04-25  James Livingston  <doclivingston@gmail.com>
5861         patch by: Anders Petersson  <demitar@worldforge.org>
5863         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5864         the YY-MM-DD format.
5866 2006-04-23  James Livingston  <doclivingston@gmail.com>
5868         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5869         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5870         * bindings/python/override_common.h:
5871         * bindings/python/rb.override: python binding fixes
5873 2006-04-23  James Livingston  <doclivingston@gmail.com>
5875         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5876         (rb_statusbar_sync_with_source),
5877         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5878         callback, rather than immediately every time. Takes ~5% off my warm-cache
5879         startup time.
5881         * bindings/python/rhythmdb.defs: fix the types using for
5882         RhythmDBEntryTypes.
5884 2006-04-22  James Livingston  <doclivingston@gmail.com>
5886         * data/ui/rhythmbox-ui.xml:
5887         * shell/rb-shell.c:
5888         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5889         (remove_source), (rb_daap_sources_init),
5890         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5891         (rb_daap_source_disconnect):
5892         * sources/rb-source.c: (rb_source_class_init),
5893         (rb_source_deactivate):
5894         * sources/rb-source.h: move the "disconnect" functionality from into
5895         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5897 2006-04-22  James Livingston  <doclivingston@gmail.com>
5899         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5900         actually get the translated strings for browser headers (they were
5901         already marked as translatable). Fixes bug 339380.
5903 2006-04-22  James Livingston  <doclivingston@gmail.com>
5905         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5906         submission timeout when the object is finalised.
5908         * bindings/python/Makefile.am:
5909         * bindings/python/rb.defs:
5910         * bindings/python/rb.override:
5911         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5913         * widgets/rb-library-browser.c:
5914         (rb_library_browser_construct_query), (rebuild_output_model),
5915         (rebuild_child_model):
5916         * widgets/rb-library-browser.h: change from GPtrArray to
5917         RhythmDBQuery (which in C is the same thing).
5919 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5921         * shell/rb-shell.c: (rb_shell_get_song_properties):
5922         Don't try to include entry-type (or anything else not easily
5923         marshallable) in the song properties hash table.
5925         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5927         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5928         (rb_playlist_source_constructor): Fix entry-type initialization as
5929         with previous commit.
5931 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5933         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5934         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5935         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5936         (rb_podcast_source_constructor):
5937         Set default values for entry-type after base class construction,
5938         rather than in _init, because gobject will set the entry-type property
5939         to NULL after _init if no value is provided.  Fixes #339206.
5941 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5943         patch by: Gunnar Steinn Magnusson
5945         * COPYING:
5946         * backends/gstreamer/rb-encoder-gst.c:
5947         * backends/gstreamer/rb-encoder-gst.h:
5948         * backends/rb-encoder.c:
5949         * backends/rb-encoder.h:
5950         * bindings/python/override_common.c:
5951         * bindings/python/override_common.h:
5952         * daapsharing/rb-daap-connection.c:
5953         * daapsharing/rb-daap-connection.h:
5954         * daapsharing/rb-daap-dialog.c:
5955         * daapsharing/rb-daap-dialog.h:
5956         * daapsharing/rb-daap-mdns-browser-avahi.c:
5957         * daapsharing/rb-daap-mdns-browser-howl.c:
5958         * daapsharing/rb-daap-mdns-browser.h:
5959         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5960         * daapsharing/rb-daap-mdns-publisher-howl.c:
5961         * daapsharing/rb-daap-mdns-publisher.h:
5962         * daapsharing/rb-daap-share.c:
5963         * daapsharing/rb-daap-share.h:
5964         * daapsharing/rb-daap-sharing.c:
5965         * daapsharing/rb-daap-sharing.h:
5966         * daapsharing/rb-daap-src.c:
5967         * daapsharing/rb-daap-src.h:
5968         * daapsharing/rb-daap-structure.c:
5969         * daapsharing/rb-daap-structure.h:
5970         * help/C/fdl-appendix.xml:
5971         * help/es/es.po:
5972         * help/ja/fdl-appendix.xml:
5973         * iradio/rb-new-station-dialog.c:
5974         * iradio/rb-new-station-dialog.h:
5975         * iradio/rb-station-properties-dialog.c:
5976         * iradio/rb-station-properties-dialog.h:
5977         * lib/mkdtemp.c:
5978         * lib/mkdtemp.h:
5979         * lib/rb-cut-and-paste-code.c:
5980         * lib/rb-cut-and-paste-code.h:
5981         * lib/rb-debug.c:
5982         * lib/rb-debug.h:
5983         * lib/rb-file-helpers.c:
5984         * lib/rb-file-helpers.h:
5985         * lib/rb-glade-helpers.c:
5986         * lib/rb-glade-helpers.h:
5987         * lib/rb-preferences.h:
5988         * lib/rb-proxy-config.c:
5989         * lib/rb-stock-icons.c:
5990         * lib/rb-stock-icons.h:
5991         * lib/rb-thread.c:
5992         * lib/rb-thread.h:
5993         * lib/rb-tree-dnd.c:
5994         * lib/rb-tree-dnd.h:
5995         * lib/rb-util.c:
5996         * lib/rb-util.h:
5997         * metadata/rb-metadata-common.c:
5998         * metadata/rb-metadata-dbus-client.c:
5999         * metadata/rb-metadata-dbus-service.c:
6000         * metadata/rb-metadata-dbus.c:
6001         * metadata/rb-metadata-dbus.h:
6002         * metadata/rb-metadata-gst.c:
6003         * metadata/rb-metadata.h:
6004         * metadata/sj-error.c:
6005         * metadata/sj-error.h:
6006         * metadata/sj-metadata-musicbrainz.c:
6007         * metadata/sj-metadata-musicbrainz.h:
6008         * metadata/sj-metadata.c:
6009         * metadata/sj-metadata.h:
6010         * metadata/sj-structures.c:
6011         * metadata/sj-structures.h:
6012         * metadata/test-metadata.c:
6013         * player/rb-player-gst.c:
6014         * player/rb-player.h:
6015         * player/rb-recorder-gst.c:
6016         * player/rb-recorder.h:
6017         * plugins/artdisplay/artdisplay.py:
6018         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6019         * plugins/ipod/rb-ipod-plugin.c:
6020         * plugins/lirc/rb-lirc-plugin.c:
6021         * plugins/pythonconsole/pythonconsole.py:
6022         * plugins/rb-module.c:
6023         * plugins/rb-module.h:
6024         * plugins/rb-plugin-manager.c:
6025         * plugins/rb-plugin-manager.h:
6026         * plugins/rb-plugin.c:
6027         * plugins/rb-plugin.h:
6028         * plugins/rb-plugins-engine.c:
6029         * plugins/rb-plugins-engine.h:
6030         * plugins/rb-python-module.c:
6031         * plugins/rb-python-module.h:
6032         * plugins/rb-python-plugin.c:
6033         * plugins/rb-python-plugin.h:
6034         * plugins/sample/rb-sample-plugin.c:
6035         * po/de.po:
6036         * po/el.po:
6037         * po/en_CA.po:
6038         * po/eu.po:
6039         * po/fi.po:
6040         * po/fr.po:
6041         * po/it.po:
6042         * po/ja.po:
6043         * po/mk.po:
6044         * po/pt_BR.po:
6045         * po/ru.po:
6046         * podcast/rb-feed-podcast-properties-dialog.c:
6047         * podcast/rb-feed-podcast-properties-dialog.h:
6048         * podcast/rb-new-podcast-dialog.c:
6049         * podcast/rb-new-podcast-dialog.h:
6050         * podcast/rb-podcast-manager.c:
6051         * podcast/rb-podcast-manager.h:
6052         * podcast/rb-podcast-parse.c:
6053         * podcast/rb-podcast-parse.h:
6054         * podcast/rb-podcast-properties-dialog.c:
6055         * podcast/rb-podcast-properties-dialog.h:
6056         * remote/bonobo/libmain.c:
6057         * remote/bonobo/rb-nautilus-context-menu.c:
6058         * remote/bonobo/rb-nautilus-context-menu.h:
6059         * remote/bonobo/rb-remote-bonobo.c:
6060         * remote/bonobo/rb-remote-bonobo.h:
6061         * remote/rb-remote-client-proxy.c:
6062         * remote/rb-remote-client-proxy.h:
6063         * remote/rb-remote-common.c:
6064         * remote/rb-remote-common.h:
6065         * remote/rb-remote-proxy.c:
6066         * remote/rb-remote-proxy.h:
6067         * rhythmdb/gsequence.c:
6068         * rhythmdb/gsequence.h:
6069         * rhythmdb/rb-refstring.c:
6070         * rhythmdb/rb-refstring.h:
6071         * rhythmdb/rhythmdb-gda.c:
6072         * rhythmdb/rhythmdb-gda.h:
6073         * rhythmdb/rhythmdb-private.h:
6074         * rhythmdb/rhythmdb-property-model.c:
6075         * rhythmdb/rhythmdb-property-model.h:
6076         * rhythmdb/rhythmdb-query-model.c:
6077         * rhythmdb/rhythmdb-query-model.h:
6078         * rhythmdb/rhythmdb-query-results.c:
6079         * rhythmdb/rhythmdb-query-results.h:
6080         * rhythmdb/rhythmdb-tree.c:
6081         * rhythmdb/rhythmdb-tree.h:
6082         * rhythmdb/rhythmdb.c:
6083         * rhythmdb/rhythmdb.h:
6084         * shell/main.c:
6085         * shell/rb-audioscrobbler.c:
6086         * shell/rb-audioscrobbler.h:
6087         * shell/rb-history.c:
6088         * shell/rb-history.h:
6089         * shell/rb-play-order-linear-loop.c:
6090         * shell/rb-play-order-linear-loop.h:
6091         * shell/rb-play-order-linear.c:
6092         * shell/rb-play-order-linear.h:
6093         * shell/rb-play-order-queue.c:
6094         * shell/rb-play-order-queue.h:
6095         * shell/rb-play-order-random-by-age-and-rating.c:
6096         * shell/rb-play-order-random-by-age-and-rating.h:
6097         * shell/rb-play-order-random-by-age.c:
6098         * shell/rb-play-order-random-by-age.h:
6099         * shell/rb-play-order-random-by-rating.c:
6100         * shell/rb-play-order-random-by-rating.h:
6101         * shell/rb-play-order-random-equal-weights.c:
6102         * shell/rb-play-order-random-equal-weights.h:
6103         * shell/rb-play-order-random.c:
6104         * shell/rb-play-order-random.h:
6105         * shell/rb-play-order-shuffle.c:
6106         * shell/rb-play-order-shuffle.h:
6107         * shell/rb-play-order.c:
6108         * shell/rb-play-order.h:
6109         * shell/rb-playlist-manager.c:
6110         * shell/rb-playlist-manager.h:
6111         * shell/rb-removable-media-manager.c:
6112         * shell/rb-removable-media-manager.h:
6113         * shell/rb-shell-clipboard.c:
6114         * shell/rb-shell-clipboard.h:
6115         * shell/rb-shell-player.c:
6116         * shell/rb-shell-player.h:
6117         * shell/rb-shell-preferences.c:
6118         * shell/rb-shell-preferences.h:
6119         * shell/rb-shell.c:
6120         * shell/rb-shell.h:
6121         * shell/rb-source-header.c:
6122         * shell/rb-source-header.h:
6123         * shell/rb-statusbar.c:
6124         * shell/rb-statusbar.h:
6125         * shell/rb-tray-icon.c:
6126         * shell/rb-tray-icon.h:
6127         * sources/rb-audiocd-source.c:
6128         * sources/rb-audiocd-source.h:
6129         * sources/rb-auto-playlist-source.c:
6130         * sources/rb-auto-playlist-source.h:
6131         * sources/rb-browser-source.c:
6132         * sources/rb-browser-source.h:
6133         * sources/rb-daap-source.c:
6134         * sources/rb-daap-source.h:
6135         * sources/rb-generic-player-source.c:
6136         * sources/rb-generic-player-source.h:
6137         * sources/rb-import-errors-source.c:
6138         * sources/rb-import-errors-source.h:
6139         * sources/rb-ipod-source.c:
6140         * sources/rb-ipod-source.h:
6141         * sources/rb-iradio-source.c:
6142         * sources/rb-iradio-source.h:
6143         * sources/rb-library-source.c:
6144         * sources/rb-library-source.h:
6145         * sources/rb-missing-files-source.c:
6146         * sources/rb-missing-files-source.h:
6147         * sources/rb-nokia770-source.c:
6148         * sources/rb-nokia770-source.h:
6149         * sources/rb-play-queue-source.c:
6150         * sources/rb-play-queue-source.h:
6151         * sources/rb-playlist-source-recorder.c:
6152         * sources/rb-playlist-source-recorder.h:
6153         * sources/rb-playlist-source.c:
6154         * sources/rb-playlist-source.h:
6155         * sources/rb-playlist-xml.h:
6156         * sources/rb-podcast-source.c:
6157         * sources/rb-podcast-source.h:
6158         * sources/rb-psp-source.c:
6159         * sources/rb-psp-source.h:
6160         * sources/rb-removable-media-source.c:
6161         * sources/rb-removable-media-source.h:
6162         * sources/rb-source.c:
6163         * sources/rb-source.h:
6164         * sources/rb-sourcelist-model.c:
6165         * sources/rb-sourcelist-model.h:
6166         * sources/rb-sourcelist.c:
6167         * sources/rb-sourcelist.h:
6168         * sources/rb-static-playlist-source.c:
6169         * sources/rb-static-playlist-source.h:
6170         * tests/test-cd.c:
6171         * tests/test-cmdline.c:
6172         * tests/test-rhythmdb-indexing.c:
6173         * tests/test-rhythmdb-query.c:
6174         * tests/test-rhythmdb-simple.c:
6175         * tests/test-rhythmdb-tree-deserialization.c:
6176         * tests/test-rhythmdb-tree-serialization.c:
6177         * tests/test-rhythmdb-view.c:
6178         * widgets/bacon-volume.c:
6179         * widgets/bacon-volume.h:
6180         * widgets/disclosure-widget.c:
6181         * widgets/disclosure-widget.h:
6182         * widgets/eel-gconf-extensions.c:
6183         * widgets/eel-gconf-extensions.h:
6184         * widgets/eggtrayicon.c:
6185         * widgets/eggtrayicon.h:
6186         * widgets/libsexy/sexy-icon-entry.c:
6187         * widgets/libsexy/sexy-icon-entry.h:
6188         * widgets/rb-cell-renderer-pixbuf.c:
6189         * widgets/rb-cell-renderer-pixbuf.h:
6190         * widgets/rb-cell-renderer-rating.c:
6191         * widgets/rb-cell-renderer-rating.h:
6192         * widgets/rb-dialog.c:
6193         * widgets/rb-dialog.h:
6194         * widgets/rb-druid.c:
6195         * widgets/rb-druid.h:
6196         * widgets/rb-entry-view.c:
6197         * widgets/rb-entry-view.h:
6198         * widgets/rb-header.c:
6199         * widgets/rb-header.h:
6200         * widgets/rb-library-browser.c:
6201         * widgets/rb-library-browser.h:
6202         * widgets/rb-property-view.c:
6203         * widgets/rb-property-view.h:
6204         * widgets/rb-query-creator-private.h:
6205         * widgets/rb-query-creator-properties.c:
6206         * widgets/rb-query-creator.c:
6207         * widgets/rb-query-creator.h:
6208         * widgets/rb-rating-helper.c:
6209         * widgets/rb-rating-helper.h:
6210         * widgets/rb-rating.c:
6211         * widgets/rb-rating.h:
6212         * widgets/rb-search-entry.c:
6213         * widgets/rb-search-entry.h:
6214         * widgets/rb-song-display-box.c:
6215         * widgets/rb-song-display-box.h:
6216         * widgets/rb-song-info.c:
6217         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6219 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6221         patch by: Gareth Murphy, James Livingston
6223         * bindings/python/rb.defs:
6224         * configure.ac:
6225         * plugins/Makefile.am:
6226         * plugins/artdisplay/Makefile.am:
6227         * plugins/artdisplay/artdisplay.py:
6228         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6229         * plugins/rb-python-module.c: (rb_python_module_init_python):
6230         * shell/rb-shell.c: (construct_widgets),
6231         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6232         (rb_shell_add_widget), (rb_shell_remove_widget),
6233         (rb_shell_ui_location_get_type):
6234         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6236 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6238         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6239         Fix build failure caused by the combination of the previous two
6240         commits.
6242 2006-04-20  James Livingston  <doclivingston@gmail.com>
6244         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6245         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6246         table to the entry types, which will allow us to get rid of some of
6247         the "if entry type == WHATEVER" code everywhere. From bug 
6249         * bindings/python/rb.defs:
6250         * bindings/python/rb.override:
6251         * bindings/python/rhythmdb.defs:
6252         * bindings/python/rhythmdb.override:
6253         * daapsharing/rb-daap-connection.c:
6254         (rb_daap_connection_class_init), (rb_daap_connection_init),
6255         (rb_daap_connection_set_property),
6256         (rb_daap_connection_get_property):
6257         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6258         * podcast/rb-podcast-manager.c:
6259         (rb_podcast_manager_entry_downloaded),
6260         (rb_podcast_manager_subscribe_feed),
6261         (rb_podcast_manager_db_entry_added_cb),
6262         (rb_podcast_manager_db_entry_deleted_cb),
6263         (rb_podcast_manager_insert_feed):
6264         * rhythmdb/rhythmdb-private.h:
6265         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6266         (conjunctive_query):
6267         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6268         (process_added_entries_cb), (rhythmdb_entry_allocate),
6269         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6270         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6271         (rhythmdb_process_metadata_load),
6272         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6273         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6274         (write_encoded_gvalue), (read_encoded_property),
6275         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6276         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6277         (rhythmdb_entry_iradio_get_type),
6278         (rhythmdb_entry_podcast_post_get_type),
6279         (rhythmdb_entry_podcast_feed_get_type),
6280         (rhythmdb_entry_import_error_get_type),
6281         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6282         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6283         (rhythmdb_entry_type_get_type):
6284         * rhythmdb/rhythmdb.h:
6285         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6286         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6287         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6288         (rb_shell_player_entry_activated_cb), (info_available_cb):
6289         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6290         (rb_shell_register_entry_type_for_source),
6291         (rb_shell_playing_from_queue_cb),
6292         (rb_shell_playing_entry_changed_cb),
6293         (rb_shell_player_stream_song_changed_cb),
6294         (rb_shell_jump_to_entry_with_source),
6295         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6296         (handle_playlist_entry_cb), (rb_shell_load_uri):
6297         * shell/rb-shell.h:
6298         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6299         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6300         (rb_browser_source_init), (rb_browser_source_set_property),
6301         (rb_browser_source_get_property):
6302         * sources/rb-ipod-source.c: (impl_paste):
6303         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6304         (rb_iradio_source_init), (rb_iradio_source_set_property),
6305         (rb_iradio_source_get_property):
6306         * sources/rb-library-source.c: (impl_paste):
6307         * sources/rb-missing-files-source.c:
6308         (rb_missing_files_source_class_init),
6309         (rb_missing_files_source_init),
6310         (rb_missing_files_source_set_property),
6311         (rb_missing_files_source_get_property):
6312         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6313         (rb_playlist_source_init), (rb_playlist_source_set_property),
6314         (rb_playlist_source_get_property):
6315         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6316         (rb_podcast_source_init), (rb_podcast_source_set_property),
6317         (rb_podcast_source_get_property):
6318         * sources/rb-static-playlist-source.c:
6319         (rb_static_playlist_source_add_location_internal):
6321 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6323         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6324         (rhythmdb_add_import_error_entry),
6325         (entry_volume_mounted_or_unmounted),
6326         (rhythmdb_volume_unmounted_cb):
6327         When a volume is unmounted, delete import errors for files stored on
6328         it.  When a volume is mounted, stat all tracks stored on it, rather
6329         than assuming they're present.  Fixes #339023.
6331 2006-04-20  James Livingston  <doclivingston@gmail.com>
6333         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6334         browser visibility for non-gconf-using sources (like playlists). Part
6335         of bug 118862.
6337         * shell/rb-source-header.c: (sourcestate_free),
6338         (rb_source_header_init), (rb_source_header_finalize),
6339         (rb_source_header_source_weak_destroy_cb): switch from storing the
6340         search string to storing a "source state" structure
6342         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6343         (rb_source_header_search_cb), (rb_source_header_clear_search),
6344         (rb_source_header_disclosure_toggled_cb): as well as storing the
6345         string, stop the visibility of the source's browser.
6347 2006-04-20  James Livingston  <doclivingston@gmail.com>
6349         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6350         library entries back into the library. Fixes bug 339065.
6352 2006-04-20  James Livingston  <doclivingston@gmail.com>
6354         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6355         only exists in glib 2.10.
6357 2006-04-20  James Livingston  <doclivingston@gmail.com>
6359         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6360         Solaris. From bug 335318.
6362         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6363         * shell/rb-audioscrobbler.c:
6364         * sources/rb-psp-source.c:
6366 2006-04-20  James Livingston  <doclivingston@gmail.com>
6368         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6369         issues for some people.
6371         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6372         accidental s/suffix/prefix/
6374         * sources/rb-auto-playlist-source.c:
6375         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6376         you from sorting playlists which aren't limited by time.
6378 2006-04-19  James Livingston  <doclivingston@gmail.com>
6380         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6381         duration or bitrate back to the file, since they are properties of the
6382         audio data, not tags we can set.
6384 2006-04-19  James Livingston  <doclivingston@gmail.com>
6386         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6387         of libtool, to fix builds which are using a different version. Fixes
6388         bug 338996.
6390         * shell/Makefile.am:
6392 2006-04-19  James Livingston  <doclivingston@gmail.com>
6394         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6395         to sync data to a file which is uneditable.
6397 2006-04-19  James Livingston  <doclivingston@gmail.com>
6399         patch by: Gavin Stewart  <gavin@brokentrain.net>
6401         * data/glade/playlist-save.glade:
6402         * data/glade/Makefile.am:
6403         * po/POTFILES.in: add the playlist saving dialog.
6405         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6406         (export_set_extension_cb), (filter_get_export_filter_label),
6407         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6408         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6409         formats (PLS and M3U at the moment). Fixes bug 316295.
6411 2006-04-19  James Livingston  <doclivingston@gmail.com>
6413         * shell/rb-playlist-manager.c:
6414         (rb_playlist_manager_set_source_internal): don't let you edit remove
6415         auto playlists.
6417         * sources/rb-auto-playlist-source.c:
6418         (rb_auto_playlist_source_set_query): correctly handle time-limited
6419         playlists.
6421 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6423         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6425         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6426         Don't crash if the queue file contains no newlines.
6427         Fixes #338924.
6429 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6431         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6432         condition
6434 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6436         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6437         case. Moreover, they may not exist yet, so take that into account when
6438         generating the iPod filename.
6440 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6442         * sources/rb-ipod-source.c: added support for drag and drop from the
6443         library to the iPod (only enabled if --enable-track-transfer was
6444         passed to configure)
6446 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6448         * configure.ac:
6449         * lib/rb-marshal.list:
6450         * lib/rb-util.c: 
6451         * lib/rb-util.h:
6452         * plugins/Makefile.am:
6453         * plugins/ipod/Makefile.am:
6454         * plugins/ipod/ipod.rb-plugin.desktop.in:
6455         * plugins/ipod/rb-ipod-plugin.c: 
6456         * plugins/rb-plugin.h:
6457         * shell/Makefile.am:
6458         * shell/rb-removable-media-manager.c:
6459         * shell/rb-removable-media-manager.h:
6460         * shell/rb-shell.c: 
6461         * sources/Makefile.am:
6462         * sources/rb-ipod-source.c: 
6463         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6464         various iPod related files should be moved to plugins/ipod/ now...
6466 2006-04-17  James Livingston  <doclivingston@gmail.com>
6468         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6469         and "vic".
6471         * help/C/figures/rb-iradio-main.png:
6472         * help/C/figures/rb-notification-area-menu.png:
6473         * help/C/figures/rb-notification-window.png:
6474         * help/C/figures/rb-notification-zone.png:
6475         * help/C/figures/rb-podcast-main.png:
6476         * help/C/figures/rb-statusbar.png:
6477         * help/C/figures/rb-volume-changer.png:
6478         * help/C/figures/rb-window-small.png:
6479         * help/C/figures/rb-window.png:
6480         * help/C/rhythmbox.xml:
6482 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6484         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6485         more obviously.
6487         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6488         (make_undecodable_error), (rb_metadata_gst_error_cb),
6489         (rb_metadata_gst_new_decoded_pad_cb),
6490         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6491         Ignore really small files (<4kB) for which typefinding fails.
6492         Always link decoded pads from decodebin to fakesink.
6493         Shut the pipeline down by posting an error on the bus when decodebin
6494         emits unknown-type signals.  Fixes bug #338062.
6496 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6498         * shell/rb-shell.c: (rb_shell_load_uri):
6499         Fix glaring mistakes in previous commit: actually pass arguments to
6500         rb_debug, and specify the right entry type when adding a new iradio
6501         station so we don't try to add local playlist files to the library.
6503 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6505         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6506         before trying to add them, as iradio streams often fail rb_uri_exists().
6508         * shell/rb-shell-player.c: (notify_playing_idle),
6509         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6510         (open_location_thread), (rb_shell_player_open_location),
6511         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6512         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6513         of all the stream URLs, and try them in turn.  If we get through the
6514         whole playlist too quickly, error out.  Various other fixes that make
6515         iradio work a lot better.
6517         * shell/rb-shell.c: (add_to_library_response_cb),
6518         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6519         (handle_playlist_entry_cb), (rb_shell_load_uri):
6520         Add playlists containing streams as iradio stations.  If the playlist
6521         is local, add each stream URL, but if the playlist is remote, just add
6522         the playlist URL.
6523         
6524         * sources/rb-iradio-source.c: (new_station_location_added):
6525         Add new station URLs as-is, rather than parsing the playlist and
6526         adding the streams.
6527         
6528         * rhythmdb/rhythmdb-query-model.c:
6529         (rhythmdb_query_model_entry_changed_cb),
6530         (rhythmdb_query_model_emit_reorder),
6531         (rhythmdb_query_model_do_reorder):
6532         Emit row-changed notifications when an entry changes but is not
6533         reordered.
6535         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6536         Display the playback error icon when the entry has an error and
6537         there's nothing else to display.
6538         
6539         Fixes bug #320336 and some of #324402.
6540         
6541 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6543         * sources/rb-ipod-source.c: use a GHashTable for the
6544         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6545         time, this fixes compilation breakage for people not having libgpod
6546         CVS HEAD
6548 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6550         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6552         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6553         (rb_podcast_manager_insert_feed):
6554         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6555         fixes bug 321945
6557 2006-04-16  James Livingston  <doclivingston@gmail.com>
6559         * sources/rb-library-source.c:
6560         (rb_library_source_library_location_cb): return FALSE like we are
6561         supposed to, not void.
6563         patch by: FreeBSD GNOME Project
6564         * configure.ac: fix some bash-isms.
6566         patch by: Pawel Worach  <pawel.worach@gmail.com>
6567         * metadata/rb-metadata-dbus-client.c:
6568         * rhythmdb/rhythmdb-query-model.c:
6569         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6572 2006-04-16  James Livingston  <doclivingston@gmail.com>
6574         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6575         for transcoding to RBEncoderGst.
6577         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6578         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6579         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6580         (add_decoding_pipeline), (encoder_match_mime),
6581         (get_profile_from_mime_type), (extract_track), (transcode_track),
6582         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6584 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6586         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6587         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6588         load_ipod_db_idle_cb to a new separate function
6590 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6592         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6593         source
6595 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6597         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6598         variables
6600 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6602         * data/ui/Makefile.am:
6603         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6604         menu
6605         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6606         NULL before using it as a popup menu
6607         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6608         'eject' an iPod
6610 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6612         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6613         iPod, check if it contains an iPod database before using it (in case
6614         the iPod was repartitionned somehow). Should fix bug #325034
6616 2006-04-16  Steve Frécinaux  <steve@istique.net>
6618         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6620         * data/Makefile.am: install application icon into the default theme.
6622         * data/rhythmbox.desktop.in: don't specify icon file extension.
6623         
6624         * shell/main.c: (main): set default window icon from theme.
6625         
6626         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6627         code concerning window icon, and fix leak by unreferencing the about
6628         logo pixbuf once it's not used anymore.
6630 2006-04-16  James Livingston  <doclivingston@gmail.com>
6632         * configure.ac: bump version to 0.9.4
6633         * NEWS: update NEWS and 0.9.4 insert translations
6635 2006-04-16  James Livingston  <doclivingston@gmail.com>
6637         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6638         namespace automatically.
6640 2006-04-16  James Livingston  <doclivingston@gmail.com>
6642         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6644         * doc/reference/Makefile.am:
6645         * doc/reference/rhythmbox.types: make distcheck work again
6647         * doc/reference/tmpl/eggnotificationbubble.sgml:
6648         * doc/reference/tmpl/eggtrayicon.sgml:
6649         * doc/reference/tmpl/rb-debug.sgml:
6650         * doc/reference/tmpl/rb-entry-view.sgml:
6651         * doc/reference/tmpl/rb-enums.sgml:
6652         * doc/reference/tmpl/rb-metadata.sgml:
6653         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6654         * doc/reference/tmpl/rb-playlist-manager.sgml:
6655         * doc/reference/tmpl/rb-refstring.sgml:
6656         * doc/reference/tmpl/rb-shell-player.sgml:
6657         * doc/reference/tmpl/rb-shell-preferences.sgml:
6658         * doc/reference/tmpl/rb-shell.sgml:
6659         * doc/reference/tmpl/rb-song-info.sgml:
6660         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6661         * doc/reference/tmpl/rb-statusbar.sgml:
6662         * doc/reference/tmpl/rhythmbox-unused.sgml:
6663         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6664         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6666 2006-04-16  James Livingston  <doclivingston@gmail.com>
6668         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6670         * po/LINGUAS: don't split the variable across two lines, as it breaks
6671         the build. Fixes bug 338625.
6673 2006-04-15  James Livingston  <doclivingston@gmail.com>
6675         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6676         add a "sourcelist-model" gobject property.
6678 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6680         * .cvsignore:
6681         * backends/.cvsignore:
6682         * backends/gstreamer/.cvsignore:
6683         * bindings/.cvsignore:
6684         * bindings/python/.cvsignore:
6685         * help/es/.cvsignore:
6686         * metadata/.cvsignore:
6687         * plugins/.cvsignore:
6688         * plugins/audioscrobbler/.cvsignore:
6689         * plugins/lirc/.cvsignore:
6690         * plugins/pythonconsole/.cvsignore:
6691         * plugins/sample-python/.cvsignore:
6692         * plugins/sample/.cvsignore:
6693         * shell/.cvsignore:
6694         * widgets/libsexy/.cvsignore:
6695         Make CVS ignore files.
6697 2006-04-14  James Livingston  <doclivingston@gmail.com>
6699         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6700         the track-loading thread hold a reference on the source, so it doesn't
6701         explode if the cd is removed before it is done. Fixes bug 337237.
6703 2006-04-14  James Livingston  <doclivingston@gmail.com>
6705         * bindings/python/override_common.c:
6706         (_helper_unwrap_pointer_pylist):
6707         * bindings/python/override_common.h:
6708         * bindings/python/rb.override:
6709         * bindings/python/rhythmdb.override: Bind some more functions and
6710         virtual functions.
6712         * shell/rb-shell.c: (rb_shell_select_source):
6713         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6714         * sources/rb-audiocd-source.c:
6715         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6716         * sources/rb-browser-source.c: (impl_get_search_actions):
6717         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6718         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6719         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6720         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6721         (impl_get_search_actions):
6722         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6723         the impl_get_ui_actions and impl_get_search_actions functions return
6724         lists that contain copies of the strings, instead of constant ones.
6725         Needed to bindings
6727 2006-04-14  James Livingston  <doclivingston@gmail.com>
6729         * bindings/python/rhythmdb.defs:
6730         * bindings/python/rhythmdb.override: fix the method argument format
6731         specifiers.
6733 2006-04-14  James Livingston  <doclivingston@gmail.com>
6735         * bindings/python/rhythmdb.defs:
6736         * bindings/python/rhythmdb.override:
6737         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6738         (entry_to_rb_metadata), (record_entry_change),
6739         (rhythmdb_entry_set_visibility):
6740         * rhythmdb/rhythmdb.h:
6741         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6742         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6743         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6744         since they are used in too many places, and not in the Python
6745         bindings.
6747 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6749         * lib/rb-debug.c: (_rb_profile_log):
6750         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6751         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6752         * shell/main.c: (main):
6753         * shell/rb-shell.c: (rb_shell_constructor),
6754         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6755         (rb_shell_present):
6756         Fix profile output indentation.  Add more profiling points.
6757         Fixes part of #338114
6759 2006-04-13  James Livingston  <doclivingston@gmail.com>
6761         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6762         library source being deleted, by setting the active source to NULL.
6763         From bug 338116.
6765 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6767         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6768         Update the last-seen string when hiddenness changes.
6770 2006-04-12  James Livingston  <doclivingston@gmail.com>
6772         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6773         which caused the first-seen time to be reset when a metadata load was
6774         done. Fixes bug 336874.
6776         * shell/rb-shell.h: remove old function declaration.
6778         * bindings/python/rhythmdb.defs:
6779         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6781 2006-04-11  James Livingston  <doclivingston@gmail.com>
6783         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6784         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6785         interaction. Fixes bug 337999.
6787 2006-04-11  James Livingston  <doclivingston@gmail.com>
6789         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6790         track transfer. Fixes bug 338056.
6792         * shell/Makefile.am:
6794 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6796         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6798 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6800         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6801         (_rb_profile_log):
6802         * lib/rb-debug.h:
6803         * shell/rb-shell.c: (construct_db), (construct_widgets),
6804         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6805         Add profiling.  Fixes #337387
6807 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6809         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6810         * widgets/rb-header.c:
6811         Use italics for artist and album. Fixes #336748
6813 2006-04-10  James Livingston  <doclivingston@gmail.com>
6815         * Makefile.am:
6816         * backends/gstreamer/Makefile.am:
6817         * configure.ac:
6818         * data/glade/library-prefs.glade:
6819         * shell/Makefile.am:
6820         * shell/rb-removable-media-manager.c:
6821         * shell/rb-removable-media-manager.h:
6822         * sources/Makefile.am:
6823         * sources/rb-audiocd-source.c:
6824         * sources/rb-library-source.c: (rb_library_source_class_init),
6825         (rb_library_source_finalize), (impl_get_config_widget),
6826         (rb_library_source_preferences_sync), (impl_can_paste): add a
6827         --enable-track-transfer configure option, abd make cd ripping disabled
6828         by default.
6830         * shell/rb-source-header.c:
6831         * sources/rb-source.c: (rb_source_class_init),
6832         (rb_source_delete_thyself), (default_get_entry_view):
6833         * lib/rb-glade-helpers.c:
6834         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6835         some compiler warnings, and also bug 337427.
6837 2006-04-10  James Livingston  <doclivingston@gmail.com>
6839         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6840         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6841         if the gconf key is missing. Fixes bug 337742.
6843 2006-04-10  James Livingston  <doclivingston@gmail.com>
6845         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6846         to fix build problems I caused with a commit yesterday. Fixed bug
6847         337806.
6849         * daapsharing/rb-daap-mdns-browser-howl.c:
6850         (rb_daap_mdns_browser_class_init):
6851         * podcast/Makefile.am:
6852         * rhythmdb/Makefile.am:
6853         * widgets/eggtrayicon.h:
6855 2006-04-09  Steve Frécinaux  <steve@istique.net>
6857         * configure.ac:
6858         * po/LINGUAS:
6859         
6860         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6861         translators' life easier.
6863 2006-04-09  James Livingston  <doclivingston@gmail.com>
6865         * bindings/python/rb.defs:
6866         * bindings/python/rb.override: add bindings for most RBSource virtual
6867         functions.
6869         * sources/rb-source.h:
6870         * sources/rb-source.c: (rb_source_class_init): make
6871         impl_get_browser_key return a non-consht string, since Python can't
6872         really give us constant strings.
6874         * shell/rb-source-header.c: (rb_source_header_finalize),
6875         (rb_source_header_set_source_internal):
6876         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6877         * sources/rb-iradio-source.c: (impl_get_browser_key):
6878         * sources/rb-library-source.c: (impl_get_browser_key):
6879         * sources/rb-playlist-source.c:
6880         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6881         (rb_browser_source_state_prefs_sync):
6882         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6883         above change.
6885         * plugins/sample-python/sample-python.py: show how to add a new
6886         source.
6888 2006-04-09  James Livingston  <doclivingston@gmail.com>
6890         * daapsharing/Makefile.am:
6891         * daapsharing/rb-daap-connection.c:
6892         (rb_daap_connection_class_init):
6893         * daapsharing/rb-daap-marshal.list:
6894         * daapsharing/rb-daap-mdns-browser-avahi.c:
6895         (rb_daap_mdns_browser_class_init):
6896         * lib/rb-marshal.list:
6897         * player/Makefile.am:
6898         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6899         * player/rb-recorder-marshal.list:
6900         * podcast/Makefile.am:
6901         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6902         * podcast/rb-podcast-marshal.list:
6903         * rhythmdb/Makefile.am:
6904         * rhythmdb/rhythmdb-marshal.list:
6905         * rhythmdb/rhythmdb-query-model.c:
6906         (rhythmdb_query_model_class_init):
6907         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6908         into one file, as there is no point having several of them.
6910 2006-04-09  James Livingston  <doclivingston@gmail.com>
6912         * lib/Makefile.am:
6913         * lib/rb-enums.h:
6914         * widgets/Makefile.am:
6915         * widgets/eggnotificationbubble.c:
6916         * widgets/eggnotificationbubble.h:
6917         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6918         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6920         * rhythmdb/rhythmdb-property-model.h:
6921         * rhythmdb/rhythmdb-query-model.h:
6922         * rhythmdb/rhythmdb.h:
6923         * shell/rb-playlist-manager.h:
6924         * widgets/rb-cell-renderer-pixbuf.h:
6925         * widgets/rb-cell-renderer-rating.h:
6926         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6928 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6930         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6931         so we can build without a system-wide installed copy.
6933 2006-04-09  James Livingston  <doclivingston@gmail.com>
6935         * data/glade/general-prefs.glade:
6936         * data/rhythmbox.schemas:
6937         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6938         (rb_combo_box_hyphen_separator_func):
6939         * lib/rb-glade-helpers.h:
6940         * lib/rb-preferences.h:
6941         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6942         (rb_shell_preferences_sync),
6943         (rb_shell_preferences_toolbar_style_cb),
6944         (rb_shell_preferences_browser_views_activated_cb):
6945         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6946         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6947         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6949 2006-04-09  James Livingston  <doclivingston@gmail.com>
6951         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6952         data that MusicBrainz returns to us. Last part of bug 334167.
6954 2006-04-09  James Livingston  <doclivingston@gmail.com>
6956         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6957         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6959 2006-04-09  James Livingston  <doclivingston@gmail.com>
6961         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6962         the entry view properly when the rows are reordered. Fixes bug 337019.
6964 2006-04-09  James Livingston  <doclivingston@gmail.com>
6966         * configure.ac:
6967         * widgets/Makefile.am:
6968         * widgets/libsexy/Makefile.am:
6969         * widgets/libsexy/sexy-icon-entry.c:
6970         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6971         libsexy, and allow building against it or a system-wide installed
6972         copy.
6975         * widgets/rb-search-entry.c: (rb_search_entry_init),
6976         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6977         search box. Fixes bug 128109.
6979 2006-04-09  James Livingston  <doclivingston@gmail.com>
6981         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6983         * widgets/rb-entry-view.c: (rb_entry_view_init),
6984         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6985         and Pause icons rather than the volume ones in the Now Playing column.
6986         Closes bug 336482.
6988 2006-04-08  James Livingston  <doclivingston@gmail.com>
6990         * bindings/python/override_common.h:
6991         * bindings/python/rb.override:
6992         * bindings/python/rhythmdb.override: bind some more functions 
6994 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6996         * metadata/rb-metadata-dbus-service.c: (_send_error):
6997         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6998         are sent properly and we don't get 'method doesn't exist' messages
6999         from dbus instead.
7001 2006-04-08  James Livingston  <doclivingston@gmail.com>
7003         * bindings/python/override_common.h:
7004         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7005         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7006         more utility functions for C<->Python conversions
7008         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7009         (rb_entry_view_state_get_type):
7010         * widgets/rb-entry-view.h: make the colume type and entry view state
7011         GTypes
7013         * bindings/python/Makefile.am:
7014         * bindings/python/rb.defs:
7015         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7016         RBSource.
7018 2006-04-08  James Livingston  <doclivingston@gmail.com>
7020         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7021         initialiser for a GError
7023         * sources/rb-source.c: (rb_source_eof_type_get_type):
7024         * sources/rb-source.h: add a GType for RBSourceEOFType
7026         * bindings/python/Makefile.am:
7027         * bindings/python/rb.defs:
7028         * bindings/python/rb.override: bind RBSource and RBSourceList
7030 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7032         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7033         (rb_shell_player_get_property),
7034         (rb_shell_player_get_active_source),
7035         (rb_shell_player_set_playing_source_internal):
7036         * shell/rb-shell-player.h:
7037         Change 'playing-from-queue' from being a signal to being a property.
7039         * shell/rb-shell.c: (rb_shell_constructor),
7040         (rb_shell_playing_from_queue_cb),
7041         (rb_shell_view_queue_as_sidebar_changed_cb),
7042         (rb_shell_jump_to_entry_with_source):
7043         When the queue side pane is used, make 'jump to current' jump to the
7044         entry in the registered source for its type, rather than in the queue,
7045         and show it as playing in that source.
7046         
7047         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7048         * sources/rb-sourcelist.h:
7049         Remove the 'preempted source' stuff, since it wasn't doing anything
7050         anyway.
7052 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7054         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7055         (download_progress_cb): Canonicalise downloaded file location before
7056         setting the mountpoint property of the corresponding entry.
7057         Fixes #337287 and a couple of memory leaks.
7059 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7061         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7062         (test_load), (main): Call g_set_prgname, report errors more
7063         usefully in test mode.
7064         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7065         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7066         files.  Run the event loop when the state change fails so we get the
7067         error messages from the bus.  Fixes #336921.
7069 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7071         * data/art/Makefile.am: Install media-eject.
7073         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7074         return value of rb_file.
7076         Fixes #337209
7078 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7080         Patch by: William Jon McCann  <mccann@jhu.edu>
7082         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7083         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7084         Fix GError leak.
7086 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7088         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7089         Don't try to add a date when we don't have one.  Fixes #336741.
7091         Also fix variable declaration in middle of block.
7093 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7095         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7096         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7098 2006-04-02  James Livingston  <doclivingston@gmail.com>
7100         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7101         inverted logic causing imports to fail.
7103 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7105         * shell/main.c: (main): Fix dbusless build.
7107 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7109         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7110         wav header for non-gcc compilers (not tested much, was only written
7111         according to docs)
7113 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7115         * shell/main.c: (main): Check if we got a dbus connection before
7116         trying to create a proxy for the shell object.  Fixes #336634.
7118 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7120         * doc/reference/Makefile.am:
7121         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7122         * shell/rb-source-header.c:
7123         * sources/rb-generic-player-source.c:
7124         (default_transform_playlist_uri):
7125         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7126         <alexl@users.sourceforge.net>
7128 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7130         * configure.ac: Detect LIRC.
7131         
7132         * plugins/Makefile.am:
7133         * plugins/lirc/Makefile.am:
7134         * plugins/lirc/lirc.rb-plugin.desktop.in:
7135         * plugins/lirc/rb-lirc-plugin.c:
7136         LIRC plugin.
7138         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7139         Remove obsolete files.
7141 2006-04-02  James Livingston  <doclivingston@gmail.com>
7143         * sources/rb-generic-player-source.c:
7144         (default_transform_playlist_uri): consider playlist paths as relative
7145         to the volume root by default, since that is what most players use.
7147 2006-04-02  James Livingston  <doclivingston@gmail.com>
7149         * lib/rb-util.c: (rb_mime_get_friendly_name):
7150         * lib/rb-util.h: add helper function to get the "friendly" name for a
7151         mime-type
7153         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7154         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7155         the user better error messages about undecodable streams, using the
7156         "friendly" name if possible. Fixes bug 128109.
7158 2006-04-02  James Livingston  <doclivingston@gmail.com>
7160         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7161         (start_pipeline): fix building with gstreamer 0.8
7163 2006-04-02  James Livingston  <doclivingston@gmail.com>
7165         * sources/rb-podcast-source.c: (impl_delete),
7166         (rb_podcast_source_cmd_delete_feed),
7167         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7168         it, since it may change during traversal. Fixes bug 336204.
7170 2006-04-01  James Livingston  <doclivingston@gmail.com>
7172         * data/art/media-eject.png: add the media-eject icon from Banshee
7173         (BSD-licensed), for use when the user's icon theme doesn't have one.
7175         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7176         bug 334897.
7178 2006-04-01  James Livingston  <doclivingston@gmail.com>
7180         * shell/rb-shell-player.h:
7181         * shell/rb-shell-player.c: (rb_shell_player_play),
7182         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7183         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7184         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7186         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7187         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7188         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7190         * bindings/python/rb.defs: bind the above to Python, and remove some
7191         useless stuff from the bindings.
7193 2006-04-01  James Livingston  <doclivingston@gmail.com>
7195         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7196         number tag.
7198         * shell/rb-shell.c:
7199         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7201         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7202         to true.
7204         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7205         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7206         method assigning, so it's understandable
7208         * sources/rb-library-source.c: (rb_library_source_class_init),
7209         (impl_paste): rather than hard-coding the types to ignore, use
7210         rb_source_can_copy.
7212 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7214         * sources/rb-library-source.c:
7215         (rb_library_source_preferences_sync):
7216         Don't crash if no audio profile is selected and the gconf schemas are 
7217         not installed.
7219 2006-03-31  James Livingston  <doclivingston@gmail.com>
7221         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7222         "*" which caused compilation to fail
7224 2006-03-31  James Livingston  <doclivingston@gmail.com>
7226         * configure.ac:
7227         * Makefile.am:
7228         * backends/Makefile.am:
7229         * backends/gstreamer/Makefile.am:
7230         * backends/gstreamer/rb-encoder-gst.c:
7231         * backends/gstreamer/rb-encoder-gst.h:
7232         * backends/rb-encoder.c:
7233         * backends/rb-encoder.h: add a interface for transcoding, and a
7234         GStreamer implementation of it (based on Sound-Juicer's code).
7236         * shell/Makefile.am:
7237         * shell/rb-removable-media-manager.c:
7238         (rb_removable_media_manager_class_init),
7239         (rb_removable_media_manager_init),
7240         (rb_removable_media_manager_dispose),
7241         (rb_removable_media_manager_finalize),
7242         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7243         (progress_cb), (completed_cb), (do_transfer),
7244         (rb_removable_media_manager_queue_transfer), (copy_entry),
7245         (rb_removable_media_manager_cmd_copy_tracks):
7246         * shell/rb-removable-media-manager.h: use the encoder interface to
7247         perform transfers of entries to other locations
7249         * shell/rb-shell-player.c: (open_location_thread):
7250         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7251         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7252         (rb_shell_quit):
7253         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7254         progress in the status bar.
7256         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7257         (rb_shell_preferences_sync),
7258         (rb_shell_preferences_browser_views_activated_cb):
7259         * data/glade/general-prefs.glade: move the browser views setting from
7260         the library tab to the general one.
7262         * data/glade/library-prefs.glade: add settings for the layout of the
7263         user's library, and their preferred encoding format (e.g. for CD
7264         ripping).
7266         * lib/rb-preferences.h:
7267         * data/rhythmbox.schemas: add keys for the above options (and a few
7268         other minor ones)
7270         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7271         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7272         entry, that isn't inserted into the database.
7274         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7275         (rb_audiocd_create_track_entry):
7276         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7277         cds, and set the mime-type of audio cd tracks correctly.
7279         * sources/rb-library-source.c: (rb_library_source_class_init),
7280         (rb_library_source_finalize),
7281         (rb_library_source_edit_profile_clicked_cb),
7282         (impl_get_config_widget), (rb_library_source_preferences_sync),
7283         (impl_receive_drag), (rb_library_source_path_changed_cb),
7284         (rb_library_source_filename_changed_cb),
7285         (rb_library_source_format_changed_cb), (sanitize_path),
7286         (filepath_parse_pattern), (layout_example_label_update),
7287         (rb_library_source_layout_path_changed),
7288         (rb_library_source_layout_filename_changed), (build_filename),
7289         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7290         entries to the library. Large chunks of code for determining the
7291         destination file name stolen from Sound-Juicer.
7293         * sources/rb-sourcelist-model.c: (path_is_droppable):
7294         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7295         * sources/rb-static-playlist-source.c:
7296         (rb_static_playlist_source_class_init):
7297         * sources/rb-removable-media-source.c:
7298         (rb_removable_media_source_class_init):
7299         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7300         (rb_source_can_paste):
7301         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7302         than _can_copy) to determine whether we can paste into the source.
7305 2006-03-31  Steve Frécinaux  <steve@istique.net>
7307         * plugins/rb-python-module.c: allow import of python modules with a '.'
7308         (gedit's bug 336403). Patch by Johan Dahlin.
7310 2006-03-31  James Livingston  <doclivingston@gmail.com>
7312         * sources/rb-library-source.c: 
7313         * sources/rb-library-source.h:
7314         * sources/rb-browser-source.c:
7315         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7316         RBBrowserSource now contains all the stuff for having a source which
7317         views a particular entry type (including browsers and searching).
7318         RBLibrarySource derives from this, and includes the library-specific
7319         stuff, like importing and library watching. Fixes some issues where
7320         library-derived sources were doing things that should be
7321         library-specific. Fixes bug 335185.
7323         * data/ui/rhythmbox-ui.xml:
7324         * sources/Makefile.am: modifications for the above
7326         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7327         (rb_daap_source_get_paned_key):
7328         * sources/rb-daap-source.h:
7329         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7330         * sources/rb-removable-media-source.c:
7331         (rb_removable_media_source_class_init):
7332         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7333         instead of RBLibrarySource.
7335 2006-03-31  James Livingston  <doclivingston@gmail.com>
7337         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7338         I buggered up when changing from GnomeVFSFileSize.
7340 2006-03-30  James Livingston  <doclivingston@gmail.com>
7342         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7343         for "-Wno-error".
7345         * bindings/python/rb.override:
7346         * bindings/python/Makefile.am: make the RB python bindings depend on
7347         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7348         code sometimes emits warnings.
7350         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7351         (rb_shell_player_error_get_type):
7352         * shell/rb-shell-player.h:
7353         * bindings/python/rb.defs: add bindings for RBShellPlayer
7355         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7356         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7357         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7358         * rhythmdb/rhythmdb.h:
7359         * shell/rb-shell.c: (rb_shell_get_song_properties):
7360         * widgets/rb-entry-view.c: (propid_from_name):
7361         * widgets/rb-property-view.c: (rb_property_view_class_init):
7362         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7363         than just plain GPtrArray, and add bindings for it.
7365         * bindings/python/rhythmdb.override: wrap some functions that use
7366         GValues
7368 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7370         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7371         Only watch directories from which entries of type SONG have been
7372         added.
7374 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7376         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7377         No need to restore the selection after rebuilding the child model,
7378         since that can't have changed the selection.
7380 2006-03-29  James Livingston  <doclivingston@gmail.com>
7382         * bindings/python/override_common.c:
7383         * bindings/python/override_common.h: add some for missing files to
7384         cvs.
7386 2006-03-29  James Livingston  <doclivingston@gmail.com>
7388         * configure.ac:
7389         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7390         copied from gedit's autofoo and we don't need it
7392         * bindings/python/rhythmdb.defs:
7393         * bindings/python/rhythmdb.override: add missing files to cvs
7395 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7397         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7398         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7399         before running any of the debug/test modes.
7400         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7401         Make plugin loading work when running uninstalled from the shell/
7402         directory.
7404 2006-03-29  James Livingston  <doclivingston@gmail.com>
7406         * rhythmdb/rhythmdb-property-model.c:
7407         (rhythmdb_property_model_sync),
7408         (rhythmdb_property_model_column_get_type):
7409         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7411         * rhythmdb/rhythmdb-private.h:
7412         * rhythmdb/rhythmdb-query-model.c:
7413         (rhythmdb_query_model_class_init):
7414         * rhythmdb/rhythmdb-query-model.h:
7415         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7416         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7417         (rhythmdb_entry_get_type):
7418         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7420         * widgets/rb-query-creator-properties.c:
7421         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7422         was missing.
7424         * bindings/python/Makefile.am:
7425         * bindings/python/rb.defs:
7426         * bindings/python/rb.override:
7427         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7428         Python bindings for RhythmDB.
7430 2006-03-29  James Livingston  <doclivingston@gmail.com>
7432         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7433         sharing when using --no-registration
7435 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7437         * rhythmdb/rhythmdb-query-model.c:
7438         (rhythmdb_query_model_reapply_query):
7439         Don't remove entries while iterating, as it breaks the sequence
7440         nodes.  Instead, collect a list of removed entries and process it
7441         after iterating the sequence.  Fixes #334642.
7443 2006-03-29  James Livingston  <doclivingston@gmail.com>
7445         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7446         (row_activated_cb), (plugin_manager_toggle_all):
7447         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7448         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7449         (button_press_cb), (source_name_edited_cb):
7450         * widgets/rb-property-view.c: (rb_property_view_set_property),
7451         (rb_property_view_post_row_deleted_cb),
7452         (rb_property_view_row_activated_cb),
7453         (rb_property_view_selection_changed_cb),
7454         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7455         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7457 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7459         * rhythmdb/rhythmdb-query-model.c:
7460         (rhythmdb_query_model_drag_data_received):
7461         Increment the reference count for entries added by drag and drop.
7462         Fixes #336045.
7464 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7466         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7467         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7468         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7470 2006-03-27  James Livingston  <doclivingston@gmail.com>
7472         * shell/rb-shell.c: (rb_shell_constructor),
7473         (rb_shell_sync_window_state): fix a maximise-realise race that would
7474         cause some widgets to be resized after we had explicity set theri
7475         size. Hopefully fixes bug 331927.
7477 2006-03-27  James Livingston  <doclivingston@gmail.com>
7479         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7480         (row_activated_cb), (plugin_manager_set_active),
7481         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7482         configure button sensitivity when a plugin is enabled/disabled.
7484 2006-03-27  James Livingston  <doclivingston@gmail.com>
7486         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7487         stop warnings, only the vbos is used anyway
7489         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7490         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7491         collection every now an then.
7493         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7494         if we are finalising because the python object couldn't be created.
7496         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7497         NULL if the python-side object couldn't be created. Stops crashes when
7498         the object is later used when it doesn't exist in Python.
7500         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7501         (rb_python_shutdown): do better garbage collection when shutting down.
7502         Fixes the problem where Python was holding a reference to the shell,
7503         causing RB not to exit.
7505 2006-03-27  James Livingston  <doclivingston@gmail.com>
7507         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7508         336131.
7510 2006-03-27  James Livingston  <doclivingston@gmail.com>
7512         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7513         From bug 334829.
7515 2006-03-26  James Livingston  <doclivingston@gmail.com>
7517         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7518         library location list to NULL after we free it. Fixes bug 336047.
7520 2006-03-26  James Livingston  <doclivingston@gmail.com>
7522         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7524         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7525         supplies. Fixes bug 335947.
7527 2006-03-25  James Livingston  <doclivingston@gmail.com>
7529         * data/glade/audioscrobbler-prefs.glade:
7530         * shell/rb-audioscrobbler.c:
7531         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7532         "submit songs" checkbox, and make it not disable username/password
7533         entry. This will be needed when we support other last.fm stuff
7534         (profile access, radio, etc).
7536 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7538         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7539         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7540         335777.
7542 2006-03-24  James Livingston  <doclivingston@gmail.com>
7544         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7545         (rb_shell_player_sync_play_order),
7546         (rb_shell_player_play_order_update_cb),
7547         (actually_set_playing_source): update the next/previous availablility
7548         in places where it was missing. Fixes bug 335490.
7550 2006-03-24  James Livingston  <doclivingston@gmail.com>
7552         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7553         can't find the widget
7555         * lib/rb-util.c: (rb_uri_list_parse):
7556         * lib/rb-util.h: add function for parsing a URI list into strings.
7558         * metadata/Makefile.am: make the metdata helper build when linking
7559         with --as-needed
7561         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7562         g_mkdir_with_parents instead of coding our own.
7564         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7565         <itunes:author> over <generator>, instead of using whichever comes
7566         last.
7568         * rhythmdb/rhythmdb-private.h:
7569         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7570         field, as we don't ever check it (to detect corruption). Saves a bit
7571         of memory.
7573 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7575         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7576         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7577         Escape '&' and '=' in the paths we get back from
7578         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7580 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7582         * shell/rb-shell.c: (rb_shell_constructor):
7583         Issue startup notification after creating the main window, so
7584         notification is issued whether the window is visible or not.
7585         Fixes #335086.
7587 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7589         * sources/rb-auto-playlist-source.c: (impl_search),
7590         (rb_auto_playlist_source_query_complete_cb),
7591         (rb_auto_playlist_source_do_query):
7592         * sources/rb-library-source.c: (impl_search),
7593         (rb_library_source_query_complete_cb),
7594         (rb_library_source_do_query):
7595         Defer subset searches (where text is appended to an existing search)
7596         until the original query is complete.
7598 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7600         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7602         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7603         (rb_refstring_get_sort_key): fixes for strict-aliasing
7605 2006-03-21  James Livingston  <jrl@ids.org.au>
7607         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7608         importing a single file. Fixes bug 335307.
7610 2006-03-21  James Livingston  <jrl@ids.org.au>
7612         * shell/Makefile.am: remove the reference to backends/ that I
7613         accidently included.
7615 2006-03-21  James Livingston  <jrl@ids.org.au>
7617         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7618         with Forte (on Solaris). Closes bug 335318.
7620         * configure.ac:
7621         * lib/Makefile.am:
7622         * player/rb-recorder-gst.c:
7623         * podcast/rb-podcast-parse.c:
7624         * remote/bonobo/Makefile.am:
7625         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7626         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7627         (rhythmdb_query_model_add_entry),
7628         (rhythmdb_query_model_add_results):
7629         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7630         * rhythmdb/rhythmdb.h:
7631         * shell/Makefile.am:
7632         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7633         (update_speed_combobox):
7634         * sources/rb-sourcelist-model.c:
7636 2006-03-21  James Livingston  <jrl@ids.org.au>
7638         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7640         * player/Makefile.am:
7641         * shell/Makefile.am: work correctly with a separate build root.
7643 2006-03-21  James Livingston  <jrl@ids.org.au>
7645         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7646         get handed NULL.
7648 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7650         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7651         Only create ignore entries when importing into the library.  
7652         Ignore entries for files in removable media sources don't help.
7654 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7656         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7657         * shell/rb-source-header.h:
7658         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7659         * widgets/rb-search-entry.h:
7660         Add functions to make the search box grab focus.
7662         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7663         Focus the search box after handling the 'view all' action.
7665 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7667         * rhythmdb/rhythmdb.h:
7668         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7669         (rhythmdb_execute_multi_stat_info_cb),
7670         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7671         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7672         (action_thread_main):
7673         Collect all the get_file_info requests on startup into one gnome-vfs
7674         job to reduce overhead and avoid contention for the rhythmdb lock.
7675         Add a new method to call when all initial query models are set up.
7676         
7677         * shell/rb-shell.c: (idle_handle_load_complete):
7678         Call rhythmdb startup complete function when we've loaded all the
7679         playlists.  Fixes #334106.
7681 2006-03-20  James Livingston  <jrl@ids.org.au>
7683         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7684         (rb_entry_view_selection_changed_cb),
7685         (rb_entry_view_have_complete_selection): make has_complete_selection
7686         not slow. Fixes a performance issue I added a week or so ago.
7688 2006-03-20  James Livingston  <jrl@ids.org.au>
7690         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7691         before passing to strcmp. From bug 334559.
7693 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7695         * configure.ac:
7696         * lib/Makefile.am:
7697         * lib/rb-proxy-config.c:
7698         * lib/rb-proxy-config.h:
7699         Add a new object to watch the HTTP proxy configuration and emit
7700         signals when it changes.
7702         * shell/rb-audioscrobbler.c:
7703         * shell/rb-audioscrobbler.h:
7704         Use rb-proxy-config to watch HTTP proxy configuration.
7706         * shell/rb-shell.c:
7707         Construct rb-proxy-config object on startup, and remove all
7708         audioscrobbler references.
7710         * shell/Makefile.am:
7711         * plugins/audioscrobbler/Makefile.am:
7712         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7713         Move all audioscrobbler code into the plugin.  We should move
7714         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7715         point.  Don't use a private data structure in the plugin, since the
7716         class definition isn't in a header file.  Fixes #335091.
7718 2006-03-20  James Livingston  <jrl@ids.org.au>
7720         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7721         don't enable Next if the source has an EOS type other than
7722         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7724 2006-03-20  James Livingston  <jrl@ids.org.au>
7726         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7727         (rb_song_info_forward_clicked_cb): deal with there being no
7728         next/previous entry.
7730         (rb_song_info_query_model_inserted_cb),
7731         (rb_song_info_query_model_deleted_cb),
7732         (rb_song_info_query_model_reordered_cb),
7733         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7734         to update the button status. Fixes bug 333293.
7736 2006-03-20  James Livingston  <jrl@ids.org.au>
7738         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7739         caused by my last commit
7741 2006-03-20  James Livingston  <jrl@ids.org.au>
7743         * bindings/python/Makefile.am:
7744         * bindings/python/rb.defs:
7745         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7747         * shell/rb-shell.c: (rb_shell_constructor),
7748         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7749         tray-icon detection slightly
7751 2006-03-19  Steve Frécinaux  <steve@istique.net>
7753         * data/ui/rhythmbox-ui.xml:
7754         * shell/rb-shell.c:
7756         Add an empty Tool Menu (hidden by default) containing placeholders for
7757         plugins.
7759         * configure.ac:
7760         * plugins/Makefile.am:
7761         * plugins/pythonconsole/Makefile.am:
7762         * plugins/pythonconsole/pythonconsole.py:
7763         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7764         
7765         Python Console plugin
7767 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7769         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7770         Extra step to encode '&' and '=' to match what gnome-vfs does
7771         internally.
7772         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7773         (rhythmdb_tree_save):
7774         Increment rhythmdb xml version to 1.2, and force another uri
7775         re-canonicalisation when loading v1.1 databases.
7776         Fixes bug #333998.
7778 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7780         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7781         (avahi_client_init), (browse_cb):
7782         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7783         (avahi_client_init):
7784         Fix compilation with Avahi 0.5.x (bug #334551).
7786 2006-03-19  James Livingston  <jrl@ids.org.au>
7788         Add Increase/Decrease Volume menu items and keybindings. From bug
7789         123383.
7791         * data/ui/rhythmbox-ui.xml:
7792         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7793         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7794         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7796 2006-03-19  James Livingston  <jrl@ids.org.au>
7798         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7800         * shell/Makefile.am: fix the link order, so that we compile with
7801         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7803 2006-03-19  James Livingston  <jrl@ids.org.au>
7805         patch by: Adam Petaccia  <adam@tpetaccia.com>
7807         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7808         plugins". Fixes bug 335037.
7810 2006-03-18  James Livingston  <jrl@ids.org.au>
7812         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7813         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7814         332992.
7816         * widgets/rb-header.c: don't make artist/album info in the header the
7817         small size, since it's hard to read.
7819 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7821         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7822         (rhythmdb_finalize): Don't leak the hash tables.
7823         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7824         (rhythmdb_commit_internal): Make sure to process the deletions.
7825         (rhythmdb_entry_delete): Use a hash.
7827         * podcast/rb-podcast-manager.c: Random analness about char*
7828         (rb_podcast_manager_remove_feed): Add debugging.
7829         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7830         the result of gnome_vfs_unlink.  Don't leak a uri.
7832         Fixes #334786
7834 2006-03-18  James Livingston  <jrl@ids.org.au>
7836         * NEWS: update NEWS file
7838 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7840         * rhythmdb/rhythmdb-property-model.c:
7841         (rhythmdb_property_model_prop_changed_cb):
7842         Remove entries from the hash table after processing visible->hidden
7843         changes.
7845 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7847         * sources/rb-daap-source.c (connection_connected_cb) 
7848         (connection_disconnected_cb): Add debug.
7849         (rb_daap_source_get_headers): Check for NULL connection.
7851         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7852         Check return value of rb_daap_source_get_headers.
7854         Fixes #332089
7856 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7858         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7859         Restore the selection after rebuilding the child model, so the
7860         selection is shown correctly after using the 'browse this
7861         album/artist/genre' menu items.
7863 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7865         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7866         Clear the selection before changing the active model.
7867         Fixes crash reported in bug 334549.
7869 2006-03-15  James Livingston  <jrl@ids.org.au>
7871         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7872         (rb_tray_icon_sync_action):
7873         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7874         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7875         for non-libnotify notification bubbles. Fixes bug 331721.
7877 2006-03-15  James Livingston  <jrl@ids.org.au>
7879         Add search-bar options to playlists. Fixes bug 334407.
7881         * sources/rb-auto-playlist-source.c:
7882         (rb_auto_playlist_source_class_init),
7883         (rb_auto_playlist_source_constructor),
7884         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7885         (search_action_to_prop), (search_action_changed):
7886         * sources/rb-static-playlist-source.c:
7887         (rb_static_playlist_source_class_init),
7888         (rb_static_playlist_source_constructor),
7889         (construct_query_from_selection), (impl_get_search_actions),
7890         (search_action_to_prop), (search_action_changed):
7892 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7894         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7895         Remove broken attempt at making the search bar buttons not
7896         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7898 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7900         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7901         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7903 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7905         * widgets/rb-header.c (rb_header_sync): Escape album and
7906         artist before adding to markup.
7908 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7910         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7911         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7912         (rb_header_set_property), (rb_header_get_property),
7913         (rb_header_sync):
7914         Remove the GnomeUrl song links until we can do it properly.
7915         Fixes #334453.
7917 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7919         * shell/rb-source-header.c: (rb_source_header_clear_search):
7920         Remove the stored search text from the hash table, so it doesn't
7921         reappear after switching to another source and back.
7923         * sources/rb-auto-playlist-source.c: (impl_search):
7924         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7925         * sources/rb-static-playlist-source.c: (impl_search):
7926         Make sure all sources treat impl_search(NULL) and impl_search("") the
7927         same.  Fixes #334525.
7929 2006-03-14  James Livingston  <jrl@ids.org.au>
7931         Store which thread created new entries, and make rhythmdb_commit only
7932         insert the entries for the thread that calls it. This stops one thread
7933         calling rhythmdb_commit inserting entries that are half-way through
7934         construction by another thread (as happens with audio cds). From bug
7935         330226.
7937         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7938         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7939         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7940         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7941         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7942         (rhythmdb_process_metadata_load),
7943         (rhythmdb_process_queued_entry_set_event),
7944         (rhythmdb_prop_get_type):
7946 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7948         * rhythmdb/rhythmdb-query-model.c:
7949         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7950         (rhythmdb_query_model_finalize):
7951         Move object unrefs from _finalize into _dispose.
7952         
7953         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7954         Remove extra g_object_ref that was causing query model leaks.
7955         
7956         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7957         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7958         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7959         Remove the cached 'all' query, since it doesn't really help and it
7960         makes the code more complicated.  Attach the genre property view to
7961         the query model build from the search text, so only genres for
7962         stations matching the search terms are displayed.  Preserve the genre
7963         selection across searches.
7965         * widgets/rb-library-browser.c: 
7966         (rb_library_browser_class_init), (rb_library_browser_get_property):
7967         Add properties for the input and output models for the browser, and
7968         remove the 'changed' signal as we can just use notify::output-model.
7969         (ignore_selection_changes),
7970         (selection_restore_data_destroy), (query_complete_cb),
7971         (restore_selection): Helper functions for preserving selections across
7972         query model rebuilds.
7973         (rebuild_output_model):  New function for creating a query model to
7974         use as the display model for a source using the browser.
7975         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7976         g_object_unrefs, reuse the parent's query model when there's no
7977         selection, and use ignore_selection_changes and restore_selection.
7978         (rb_library_browser_set_selection): rebuild_child_model emits the
7979         changed signal, so no need to do it here.
7980         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7981         ignore_selection_changes and restore_selection. 
7982         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7983         flag to rb_library_browser_set_model indicating whether the query is
7984         asynchronous.
7986         * sources/rb-static-playlist-source.c:
7987         (rb_static_playlist_source_class_init),
7988         (rb_static_playlist_source_dispose):
7989         (rb_static_playlist_source_constructor):  Add an extra reference on
7990         the base model, so it doesn't vanish when we set a new display model
7991         based on a search or browser selection.
7992         (impl_search): Ensure the search_text field in the source is NULL if
7993         the search box is empty.
7994         (construct_query_from_selection),
7995         (rb_static_playlist_source_do_query): Use the query model constructed
7996         from the search as the input model for the browser.
7997         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7998         output model as the query model for the source.
8000         * sources/rb-auto-playlist-source.c:
8001         (rb_auto_playlist_source_finalize): Free more stuff.
8002         (rb_auto_playlist_source_constructor),
8003         (rb_auto_playlist_source_browser_changed_cb):
8004         Update for rb-library-browser changes, use the browser's output query
8005         model as the query model for the source.
8006         (impl_reset_filters), (impl_search), 
8007         (rb_auto_playlist_source_do_query),
8008         (rb_auto_playlist_source_set_query):
8009         Use the query model constructed from the search text as the input to
8010         the library browser, and when adding text to an existing search, apply
8011         the new query to the existing query model.
8012         
8013         * sources/rb-library-source.c: (rb_library_source_dispose):
8014         (rb_library_source_finalize): Chain dispose up to the parent class.
8015         (rb_library_source_constructor): Update for rb-library-browser
8016         changes. 
8017         (impl_search): Ensure search_text is NULL if the search box is empty,
8018         and use the subset flag to _do_query if text has been appended to an
8019         existing search.
8020         (search_action_changed), (impl_reset_filters):
8021         (rb_library_source_browser_changed_cb),
8022         (rb_library_source_do_query): Use the browser's output model as the
8023         query model for the source.
8025         Rework library and playlist sources to use a single query chain,
8026         and to limit the entries shown in property views based on the search
8027         terms.  Fixes bug #322787.
8029 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8031         * configure.ac:  Enable metadata helper by default, and fix a typo.
8033 2006-03-13  James Livingston  <jrl@ids.org.au>
8035         Make RBRefStrings lazily create the folded and sort-key strings when
8036         they are first used. This will same some memory by not creating ones
8037         that are never used, and delaying some of the others to when the user
8038         resorts or performs a similar action. Fixes bug 332992.
8040         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8041         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8042         (rb_refstring_get), (rb_refstring_get_folded),
8043         (rb_refstring_get_sort_key), (rb_refstring_hash),
8044         (rb_refstring_equal):
8045         * rhythmdb/rb-refstring.h:
8046         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8048 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8050         * data/ui/rhythmbox-ui.xml:
8051         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8052         * lib/rb-stock-icons.h:
8053         * shell/rb-shell-player.c:
8054         * shell/rb-shell.c: (rb_shell_constructor):
8055         * shell/rb-source-header.c: (force_no_shadow),
8056         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8057         (rb_source_header_class_init), (rb_source_header_init),
8058         (merge_source_ui_cb), (toolbar_set_homogeneous),
8059         (rb_source_header_set_source_internal),
8060         (rb_source_header_set_property), (rb_source_header_get_property),
8061         (rb_source_header_set_source), (rb_source_header_new),
8062         (rb_source_header_filter_changed_cb):
8063         * shell/rb-source-header.h:
8064         * sources/rb-library-source.c: (rb_library_source_class_init),
8065         (rb_library_source_init), (search_action_to_prop),
8066         (search_action_changed), (rb_library_source_constructor),
8067         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8068         (construct_query_from_selection):
8069         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8070         (rb_podcast_source_init), (search_action_to_prop),
8071         (search_action_changed), (rb_podcast_source_constructor),
8072         (construct_query_from_selection), (impl_get_ui_actions),
8073         (impl_get_search_actions):
8074         * sources/rb-source.c: (rb_source_class_init),
8075         (rb_source_get_ui_actions), (default_get_search_actions),
8076         (rb_source_get_search_actions):
8077         * sources/rb-source.h:
8079         Add a search bar.  Fixes #328618
8081 2006-03-12  James Livingston  <jrl@ids.org.au>
8083         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8084         * shell/main.c: (main): make --no-update not stat files checking for
8085         changes, instead of doing nothing. Fixes bug 125177.
8087 2006-03-12  James Livingston  <jrl@ids.org.au>
8089         * podcast/rb-podcast-manager.c:
8090         (rb_podcast_manager_thread_parse_feed):
8091         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8092         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8093         having an invalid mime-type. Fixed bug 329813.
8095 2006-03-12  James Livingston  <jrl@ids.org.au>
8097         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8098         Finally lets us close bug 309609.
8100         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8101         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8102         0.10
8104         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8105         inverted logic of the editable check.
8107 2006-03-12  James Livingston  <jrl@ids.org.au>
8109         Make API doc generation work again. Fixes bug 334276.
8111         * doc/reference/Makefile.am:
8112         * doc/reference/tmpl/rb-debug.sgml:
8113         * doc/reference/tmpl/rb-druid.sgml:
8114         * doc/reference/tmpl/rb-entry-view.sgml:
8115         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8116         * doc/reference/tmpl/rb-metadata.sgml:
8117         * doc/reference/tmpl/rb-shell.sgml:
8118         * doc/reference/tmpl/rhythmbox-unused.sgml:
8119         * doc/reference/tmpl/rhythmdb.sgml:
8121 2006-03-12  James Livingston  <jrl@ids.org.au>
8123         * shell/rb-shell-clipboard.c:
8124         (rb_shell_clipboard_set_source_internal),
8125         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8126         it doesn't have one. Fixes bug 331673.
8128         * sources/rb-source.c: (rb_source_class_init): provide a default
8129         have_url implementation that returns FALSE.
8131 2006-03-12  James Livingston  <jrl@ids.org.au>
8133         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8134         doing a distclean. Fixes bug 334221.
8137         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8139         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8141 2006-03-11  James Livingston  <jrl@ids.org.au>
8143         * shell/rb-shell.c: (rb_shell_window_state_cb),
8144         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8145         update the window width/height when iconified. Stops the window
8146         changing size when it is restored from the tray, fixing bug 333824. 
8148 2006-03-11  James Livingston  <jrl@ids.org.au>
8150         Try to get cvs to actually add the necessary files for plugin support
8152 2006-03-11  James Livingston  <jrl@ids.org.au>
8154         Add a plugin framework, with basic support for Python plugins (based
8155         on gedit's). Closes bug 330523.
8157         * Makefile.am:
8158         * shell/Makefile.am:
8159         * configure.ac: necessary autofoo.
8161         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8163         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8164         * lib/rb-file-helpers.h:
8166         * data/glade/plugins/glade:
8167         * lib/rb-preferences.h:
8168         * plugins/*:
8169         * bindings/*: plugin framework
8171         * plugins/sample/*:
8172         * plugins/sample-python/*: sample plugins
8174         * plugins/audioscrobbler/*:
8175         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8176         (rb_audioscrobbler_set_property),
8177         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8178         submission into a plugin. shell/audioscrobbler.* should really be
8179         moved, but that sucks with cvs.
8181         * shell/rb-shell.h:
8182         * shell/rb-shell.c: (rb_shell_constructor),
8183         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8184         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8185         (rb_shell_quit): start and stop plugin framework.
8187 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8189         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8190         (rhythmdb_entry_delete):
8191         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8192         immediately, so we can't get change notifications afterwards.  
8193         Fixes #331732.
8194         (rhythmdb_process_metadata_load): Add a commit after removing an
8195         entry so we can recreate it with a different type without getting
8196         confused.
8198 2006-03-11  James Livingston  <jrl@ids.org.au>
8200         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8201         use the drive name for audio CDs, use "Unknown CD".
8203 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8205         patch by:  James Henstridge  <james@jamesh.id.au>
8207         * sources/rb-removable-media-source.c:
8208         (rb_removable_media_source_constructor):
8209         Get the device name from the GnomeVFSDrive if possible,
8210         since this is usually a more descriptive name.  Fixes #333080.
8212 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8214         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8216         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8217         Don't automatically download episodes when configured for manual
8218         updating.  Fixes #331564.
8220 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8222         * rhythmdb/rhythmdb-property-model.c:
8223         (rhythmdb_property_model_iter_from_string):
8224         Return an iterator for the 'all' property when name == NULL,
8225         and don't write to *iter if iter == NULL.
8227 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8229         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8230         When switching to the play queue, still call _go_next on the normal
8231         play order, so self-emptying auto playlists ("play count = 0" etc.)
8232         don't restart once the queue is empty.
8234         * shell/rb-tray-icon.c:
8235         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8236         with 'next'.
8238 2006-03-05  James Livingston  <jrl@ids.org.au>
8240         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8241         don't submit tracks which could not be played. Fixed bug 333013.
8243         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8244         tracks which could not be played.
8246 2006-03-05  James Livingston  <jrl@ids.org.au>
8248         Sync musicbrainz lookup code from Sound-Juicer cvs.
8250         * metadata/sj-metadata-musicbrainz.c:
8251         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8252         (get_offline_track_listing), (artist_and_title_from_title),
8253         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8254         (mb_list_albums), (mb_get_submit_url):
8255         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8256         * metadata/sj-metadata.h:
8257         * metadata/sj-structures.c: (track_details_free),
8258         (album_details_free):
8259         * metadata/sj-structures.h:
8261 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8263         * lib/rb-debug.h:
8264         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8265         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8266         (rb_profiler_reset), (rb_profiler_free):
8267         Filter debug output by matching the file and function names against a
8268         match string.
8270         * shell/main.c: (main):
8271         Add -D command line option to specify the debug match string.
8273         * shell/rb-removable-media-manager.c:
8274         (rb_removable_media_manager_mount_volume):
8275         Fix some typos in debug output.
8277 2006-03-03  James Livingston  <jrl@ids.org.au>
8279         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8280         * shell/rb-shell.c: (rb_shell_load_uri):
8281         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8282         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8283         use the new "recurse" property from totem-plparser, if present. Stop
8284         RB hanging for new users who don't have a 'net connection. From bug
8285         331508.
8287 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8289         * shell/rb-removable-media-manager.c:
8290         (rb_removable_media_manager_mount_volume):
8291         * sources/Makefile.am:
8292         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8293         Fix missing files on make dist (conditional files), only build the
8294         N770 support if there's HAL support, as we have no other ways of
8295         detecting it
8297 2006-03-03  James Livingston  <jrl@ids.org.au>
8299         * shell/rb-shell-clipboard.c:
8300         (rb_shell_clipboard_set_source_internal): really fix it this time.
8301         hopefully.
8303 2006-03-03  James Livingston  <jrl@ids.org.au>
8305         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8306         with the idle function not being removed.
8308 2006-03-02  James Livingston  <jrl@ids.org.au>
8310         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8311         * widgets/rb-entry-view.h: add function for determining whether all
8312         entries are selected.
8314         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8315         (rb_shell_clipboard_set_source_internal),
8316         (rb_shell_clipboard_finalize),
8317         (rb_shell_clipboard_idle_poll_deletions),
8318         (rb_shell_clipboard_entryview_changed_cb),
8319         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8320         removals, to update things.
8322         (rb_shell_clipboard_sync): update the Select All and Select None
8323         sensitivity, based on what is selected. Fixed bug 172220.
8325 2006-03-02  James Livingston  <jrl@ids.org.au>
8327         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8328         restore the selections of later models. This means that selecting the
8329         artist for the selected album does not reset the album selection.
8331 2006-03-02  James Livingston  <jrl@ids.org.au>
8333         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8334         Stops it emitting critical warnings.
8336 2006-03-02  James Livingston  <jrl@ids.org.au>
8338         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8339         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8340         second fragment is already escaped.
8342         * sources/rb-generic-player-source.c:
8343         (rb_generic_player_source_class_init),
8344         (rb_generic_player_source_constructor), (impl_show_popup),
8345         (rb_generic_player_source_load_playlists),
8346         (rb_generic_player_source_transform_playlist_uri),
8347         (handle_playlist_entry_cb), (visit_playlist_dirs),
8348         (default_load_playlists), (default_transform_playlist_uri):
8349         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8350         the device. Allow subclasses to override the playlist loading, and
8351         (playlist uri)->(actual uri) mapping. A lot of devices which have
8352         playlists won't work right now, but people will see them and hopefully
8353         file bugs.
8355         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8356         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8357         
8358         * sources/Makefile.am:
8359         + sources/rb-nokia770-source.{c,h}:
8360         * shell/rb-removable-media-manager.c:
8361         (rb_removable_media_manager_mount_volume): Add support for reading
8362         playlists of Nokia 770s.
8364 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8366         * data/glade/podcast-properties.glade:
8367         * podcast/rb-podcast-properties-dialog.c:
8368         (rb_podcast_properties_dialog_init),
8369         (rb_podcast_properties_dialog_update),
8370         (rb_podcast_properties_dialog_update_location),
8371         (rb_podcast_properties_dialog_update_download_location):
8372         Add 'download location' field showing the path to the downloaded copy.
8373         Fixes #330696.
8375 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8377         * configure.ac: simplify HAVE_HAL define
8379 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8381         * configure.ac:
8382         * lib/rb-file-helpers.c: (rb_uri_append_path):
8383         * lib/rb-file-helpers.h:
8384         * shell/rb-removable-media-manager.c:
8385         (rb_removable_media_manager_mount_volume):
8386         * sources/Makefile.am:
8387         * sources/rb-ipod-source.c:
8388         * sources/rb-psp-source.*:
8389         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8390         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8392 2006-03-02  James Livingston  <jrl@ids.org.au>
8394         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8395         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8396         (swap_playing_source), (rb_shell_player_playpause),
8397         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8398         (rb_shell_player_set_playing_source_internal): check for the entry
8399         view being NULL before trying to use it. Lets us support sources which
8400         don't have an entry view. From bug 331673.
8402 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8404         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8405         use gnome_vfs_read_entire_file with a URI, not a local filename
8407 2006-03-01  James Livingston  <jrl@ids.org.au>
8409         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8410         first-seen and last-seen when merging duplicate entries.
8412 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8414         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8415         * widgets/rb-property-view.h:  New function, allowing custom 
8416         interactive search functions for property views.
8417         
8418         * sources/rb-podcast-source.c: 
8419         (feed_select_change_cb): Only do a new query when the selection
8420         actually changes.
8421         (rb_podcast_source_constructor),
8422         (rb_podcast_source_feed_title_search_func):
8423         Interactive search function for podcast feed titles.  Fixes #327451.
8425 2006-03-01  James Livingston  <jrl@ids.org.au>
8427         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8428         the uri in the callback, since it causes symbols to not be escaped.
8429         Fixes bug 332976.
8431         * data/ui/rhythmbox-ui.xml:
8432         * sources/rb-import-errors-source.c:
8433         (rb_import_errors_source_class_init),
8434         (rb_import_errors_source_constructor), (impl_get_status),
8435         (impl_move_to_trash),
8436         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8437         import errors source
8438         
8439         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8440         (rb_entry_view_append_column): unescape the URI for display.
8442 2006-03-01  James Livingston  <jrl@ids.org.au>
8444         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8445         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8446         function fails.
8448 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8450         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8451         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8452         * sources/rb-play-queue-source.c:
8453         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8454         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8455         of "Queued Songs".
8457         Fixes #331637.
8459 2006-03-01  James Livingston  <jrl@ids.org.au>
8461         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8462         Fixes bug 332913.
8464 2006-03-01  James Livingston  <jrl@ids.org.au>
8466         * daapsharing/rb-daap-mdns-browser-howl.c:
8467         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8468         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8469         (rb_daap_mdns_publisher_class_init),
8470         (rb_daap_mdns_publisher_finalize):
8471         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8472         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8473         (rb_recorder_finalize):
8474         * rhythmdb/rhythmdb-query-model.c:
8475         (rhythmdb_query_model_constructor):
8476         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8477         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8478         * sources/rb-playlist-source-recorder.c:
8479         (rb_playlist_source_recorder_style_set),
8480         (rb_playlist_source_recorder_class_init),
8481         (rb_playlist_source_recorder_finalize):
8482         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8483         other classes in the same way, so they don't break when derived from.
8485 2006-03-01  James Livingston  <jrl@ids.org.au>
8487         * sources/rb-generic-player-source.c:
8488         (rb_generic_player_source_constructor): don't get the parent class in
8489         a dumb way, and it breaks when the class is derived from.
8491 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8493         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8495 2006-03-01  James Livingston  <jrl@ids.org.au>
8497         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8498         not work in glib 2.8 systems.
8500 2006-03-01  James Livingston  <jrl@ids.org.au>
8502         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8503         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8504         say it is crap.
8506         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8507         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8508         podcasts on ion-local places
8510         * rhythmdb/gsequence.c: (g_sequence_node_new),
8511         (g_sequence_node_free): use gslice if we are building against glib
8512         2.10.
8514         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8515         local files too, so it doesn't block.
8517 2006-02-28  James Livingston  <jrl@ids.org.au>
8519         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8520         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8521         stats the file. Stops the UI blocking while stats are done.
8523 2006-02-28  James Livingston  <jrl@ids.org.au>
8525         * sources/rb-static-playlist-source.c:
8526         (rb_static_playlist_source_class_init),
8527         (rb_static_playlist_source_constructor), (impl_reset_filters),
8528         (impl_get_property_views), (impl_browser_toggled),
8529         (rb_static_playlist_source_do_query),
8530         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8531         playlists. From bug 118862.
8533         * sources/rb-play-queue-source.c:
8534         (rb_play_queue_source_class_init): disable them for the play queue.
8536 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8538         * data/glade/library-prefs.glade:  Add a mnemonic.
8539         * sources/rb-library-source.c:
8540         (rb_library_source_location_button_clicked_cb):  Use title
8541         capitalization for window title.
8543 2006-02-28  James Livingston  <jrl@ids.org.au>
8545         * sources/rb-auto-playlist-source.c:
8546         (construct_query_from_selection): don't create a subquery for only one
8547         criteria, as it's a silly effifiency degredation.
8549 2006-02-28  James Livingston  <jrl@ids.org.au>
8551         * rhythmdb/rhythmdb.h:
8552         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8553         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8554         saved to disk
8556         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8557         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8558         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8559         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8560         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8561         This will make importing files quicker as we don't need to try files
8562         that we know are not going to be interesting - especially useful when
8563         using the library watching facility.
8565         Fixes bug 323179.
8567 2006-02-28  James Livingston  <jrl@ids.org.au>
8569         * shell/rb-shell.c: (rb_shell_constructor),
8570         (rb_shell_set_visibility): fix browser and source-list pane
8571         positioning, that I broke with the "remember visibility" patch.
8573 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8575         * metadata/rb-metadata-dbus-service.c: (main):
8576         Change argument handling so you can use --debug with the --load and
8577         --can-save test modes.
8578         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8579         Use a separate GMainContext, not the default one.  Probably fixes
8580         #332344.
8582 2006-02-27  James Livingston  <jrl@ids.org.au>
8584         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8585         first starting up. Fixes bug 330342.
8587 2006-02-27  James Livingston  <jrl@ids.org.au>
8589         * sources/rb-sourcelist-model.c:
8590         (rb_sourcelist_model_set_dnd_targets):
8591         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8592         COPY action for draging sources and tracks, not MOVE as well. Stops
8593         Nautilus moving file away, and fixes bug 332488.
8595 2006-02-27  James Livingston  <jrl@ids.org.au>
8597         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8599         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8600         and Last Played metadata off iPods. Closes bug 324648.
8602 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8604         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8605         Disable audioscrobbler when run with the --no-registration flag, since
8606         last.fm doesn't allow multiple concurrent clients per user.
8608 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8610         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8611         Rename renamable sources when F2 is pressed when the sourcelist has
8612         focus.  Fixes #330700.
8614 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8616         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8617         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8618         (rb_playlist_manager_cmd_edit_automatic_playlist):
8619         Fix various crashes when deleting auto playlists previously edited
8620         by disconnecting signal handlers when the query editor is closed or
8621         the playlist is deleted.
8623 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8625         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8626         removed load failure dialog, and actually use the friendly file type
8627         name in error messages.
8629 2006-02-24  James Livingston  <jrl@ids.org.au>
8631         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8633         * sources/rb-library-source.c:
8634         (rb_library_source_location_button_clicked_cb),
8635         (rb_library_source_preferences_sync),
8636         (rb_library_source_library_location_cb): convert the library URI to
8637         for display, and back again. Fixes bug 332356.
8639 2006-02-23  James Livingston  <jrl@ids.org.au>
8641         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8642         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8643         (rhythmdb_sync_library_location): don't monitor files at all if
8644         watching is turned off. From bug 323096.
8646 2006-02-23  James Livingston  <jrl@ids.org.au>
8648         * data/rhythmbox.schemas:
8649         * lib/rb-preferences.h:
8650         * shell/rb-shell.c: (rb_shell_constructor),
8651         (rb_shell_set_visibility): remember main window visibility between
8652         sessions. Fixes bug 127320.
8654 2006-02-23  James Livingston  <jrl@ids.org.au>
8656         * data/glade/library-prefs.glade:
8657         * sources/rb-library-source.c: (impl_get_config_widget),
8658         (rb_library_source_location_button_clicked_cb),
8659         (rb_library_source_preferences_sync),
8660         (rb_library_source_library_location_cb),
8661         (rb_library_source_watch_toggled_cb): change the library-location
8662         widgets from the file-chooser drop menu to a text entry and Browse
8663         button. This is needed to prevent the location from chaning if the
8664         directory cannot be found. Fixes bug 328414.
8666 2006-02-23  James Livingston  <jrl@ids.org.au>
8668         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8669         item. Fixes bug 329042.
8671 2006-02-23  James Livingston  <jrl@ids.org.au>
8673         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8675         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8676         comma in some podcast feeds. Fixes bug 332194.
8678 2006-02-23  James Livingston  <jrl@ids.org.au>
8680         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8681         lower priority.
8683         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8684         the internal audio cd URIs from "cdda://device:track" to
8685         "cdda://track#device" as it makes processing much easier.
8687         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8688         * player/rb-player-gst.c: don't have the shell close the player
8689         between songs, as doing that should be backend-specific. Make the
8690         gstreamer backend close before starting a new track, unless the old
8691         and new ones are both tracks on the same audio cd. Just seek in that
8692         case.
8694 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8696         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8698 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8700         * configure.ac: Enable more warnings in my stupid setup too.
8701         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8702         #332210.
8704 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8706         * sources/rb-missing-files-source.h,
8707         * sources/rb-missing-files-source.c,
8708         * sources/rb-import-errors-source.h,
8709         * sources/rb-import-errors-source.c:
8710         Add library meta-sources, showing missing files and import errors.
8711         Fixes #167763, #142322.
8713         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8714         * sources/rb-sourcelist-model.h:
8715         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8716         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8717         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8718         (visibility_notify_cb):
8719         Store source visibility in the sourcelist model, so we can determine
8720         child source counts correctly and get the sourcelist expander column
8721         right.
8722         
8723         * widgets/rb-entry-view.h:
8724         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8725         (rb_entry_view_append_column), (set_column_visibility):
8726         Allow the creator of the entry view to specify which columns are
8727         always visible.
8729         * sources/rb-source.h:
8730         * sources/rb-source.c: (_autohide_update_visibility),
8731         (_rb_autohide_source_row_deleted_cb),
8732         (_rb_autohide_source_row_inserted_cb),
8733         (_rb_source_hide_when_empty):
8734         Allow sources to automatically hide themselves when empty.
8735         
8736         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8737         * sources/rb-library-source.c: (rb_library_source_constructor):
8738         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8739         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8740         Explicitly specify which columns are always visible.
8741         
8742         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8743         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8744         Remove load error signal handling and load failure dialog.
8745         Create missing files and import errors sources for the library.
8747         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8748         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8749         Create DB entries for import errors rather than emitting the 'load
8750         error' signal; mark loaded entries visible.
8751         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8752         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8753         (rhythmdb_prop_get_type): Store string form of last seen time for
8754         hidden entries, since it's used in the missing files source.
8755         (rhythmdb_entry_import_error_get_type): 
8756         Add entry type for import errors.
8757         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8758         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8759         (rhythmdb_entry_move_to_trash_set_error),
8760         (rhythmdb_entry_move_to_trash):  
8761         Correct spelling, add missing rhythmdb_commit.
8762         * rhythmdb/rhythmdb.h:  
8763         Add import error entry type and last seen string property.
8764         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8765         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8766         (save_entry):  Ignore string form of 'last seen' property.
8768         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8769         Don't try to play hidden entries or import error entries.
8771         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8772         * sources/Makefile.am: Add meta-source files
8773         * widgets/Makefile.am: Remove load failure dialog files
8775 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8777         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8778         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8779         few bits and pieces.
8781 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8783         * metadata/test-metadata.c: (load_metadata_cb):
8784         Fix compile warning for ignoring return value from getcwd, #332064.
8786 2006-02-21  James Livingston  <jrl@ids.org.au>
8788         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8789         (edit_auto_playlist_deleted_cb),
8790         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8791         playlist editor non-modal. Fixes bug 320030.
8793 2006-02-21  James Livingston  <jrl@ids.org.au>
8795         * shell/rb-shell.c: (rb_shell_constructor):
8796         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8797         (rb_header_set_show_artist_album):
8798         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8799         (rb_song_display_box_sync): make the queue sidebar and song display
8800         not get affected by gtk_widget_show_all. Fixes bug 332001.
8802 2006-02-21  James Livingston  <jrl@ids.org.au>
8804         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8806         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8807         feeds which use timezone names instead of offsets. Doesn't actually
8808         parse the timezone name since they are not standardised. Fixes bug
8809         331691.
8811 2006-02-21  James Livingston  <jrl@ids.org.au>
8813         * help/C/figures/rb-notification-area.png:
8814         * help/C/figures/rb-sidebar.png:
8815         * help/C/quick-reference.xml: remove obsolete files from CVS.
8817         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8818         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8819         (rhythmdb_query_free), (rhythmdb_query_serialize),
8820         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8821         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8823         * widgets/rb-query-creator-properties.c: add prefix and suffix
8824         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8825         doesn't escape the ':' separator in uris.
8827 2006-02-21  James Livingston  <jrl@ids.org.au>
8829         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8830         on startup.
8832 2006-02-21  James Livingston  <jrl@ids.org.au>
8834         * NEWS: update with recent changes
8836 2006-02-21  James Livingston  <jrl@ids.org.au>
8838         * shell/rb-shell.c: (rb_shell_constructor),
8839         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8840         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8841         (rb_druid_browse_clicked_cb), (do_response):
8842         * widgets/rb-druid.h: Make running the druid not block RBShell
8843         starting up. This is required so that bonobo registration doesn't time
8844         out. Fixed bug 318766.
8846 2006-02-21  James Livingston  <jrl@ids.org.au>
8848         * rhythmdb/rhythmdb-property-model.c:
8849         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8850         hash table after using it, not before. Fixed bug 331922.
8852 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8854         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8855         (rb_shell_view_queue_as_sidebar_changed_cb):
8856         When playing from the queue, only attempt to highlight the queue
8857         source in the source list if it's actually visible there.  Otherwise,
8858         leave the preempted source highlighted.  Mostly fixes #330819.
8860 2006-02-20  James Livingston  <jrl@ids.org.au>
8862         * rhythmdb/rhythmdb-property-model.c:
8863         (rhythmdb_property_model_row_inserted_cb),
8864         (rhythmdb_property_model_prop_changed_cb),
8865         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8866         store the roperty value in the entry-mapping table, so that receiving
8867         the remove signal from a query model before we get notified of a
8868         change doesn't cause a crash. Fixes bug 331770.
8870 2006-02-20  James Livingston  <jrl@ids.org.au>
8872         * data/ui/rhythmbox-ui.xml:
8873         * sources/rb-play-queue-source.c:
8874         (rb_play_queue_source_class_init),
8875         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8876         playlist things in the queue popup source. From 330490.
8878         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8879         previous commit
8881 2006-02-20  James Livingston  <jrl@ids.org.au>
8883         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8884         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8885         attempt to sync data for non-editable entries when using
8886         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8887         331762.
8889 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8891         * .cvsignore:
8892         * Makefile.am:
8893         * autogen.sh:
8894         * configure.ac:
8895         * help/.cvsignore:
8896         * help/Makefile.am: ported to gnome-doc-utils
8897         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8898         * help/ChangeLog: added, for translators
8899         * help/C/rhytmbox-C.omf: removed, no longer used
8900         Know issue: figures are installed, but some are not showed; manual
8901         description added, but not showed in Yelp while browsing. I'll
8902         investigate, maybe are needed some little changes to
8903         help/C/rhythmbox.xml.
8905 2006-02-20  James Livingston  <jrl@ids.org.au>
8907         * data/ui/rhythmbox-ui.xml:
8908         * help/C/figures/rb-adv.png:
8909         * help/C/figures/rb-asst-finish.png:
8910         * help/C/figures/rb-asst-library.png:
8911         * help/C/figures/rb-asst-start.png:
8912         * help/C/figures/rb-basic.png:
8913         * help/C/figures/rb-browser.png:
8914         * help/C/figures/rb-context-menu.png:
8915         * help/C/figures/rb-empty.png:
8916         * help/C/figures/rb-full-play.png:
8917         * help/C/figures/rb-group-auto.png:
8918         * help/C/figures/rb-group-create.png:
8919         * help/C/figures/rb-group.png:
8920         * help/C/figures/rb-imported.png:
8921         * help/C/figures/rb-iradio-add.png:
8922         * help/C/figures/rb-iradio.png:
8923         * help/C/figures/rb-nextprev.png:
8924         * help/C/figures/rb-nobrowse-play.png:
8925         * help/C/figures/rb-notification-area-menu.png:
8926         * help/C/figures/rb-player.png:
8927         * help/C/figures/rb-prefs-general.png:
8928         * help/C/figures/rb-prefs-ipod.png:
8929         * help/C/figures/rb-prefs-library.png:
8930         * help/C/figures/rb-prefs.png:
8931         * help/C/figures/rb-repeat.png:
8932         * help/C/figures/rb-search.png:
8933         * help/C/figures/rb-shuffle.png:
8934         * help/C/figures/rb-stats.png:
8935         * help/C/figures/rb-toolbar-editor.png:
8936         * help/C/figures/rb-volume-mute.png:
8937         * help/C/figures/rhythmbox-group.png:
8938         * help/C/figures/rhythmbox-tray-icon.png:
8939         * help/C/user-guide.xml: remove old stuff from cvs
8941 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8943         * metadata/rb-metadata-dbus-client.c: 
8944         * metadata/rb-metadata-dbus-service.c:
8945         * metadata/rb-metadata-dbus.c:
8946         * metadata/rb-metadata-dbus.h:
8947         New files, adding an external service for reading and writing
8948         metadata, and an implementation of the RBMetaData interface that uses
8949         dbus to communicate with it.
8950         
8951         * metadata/rb-metadata.h,
8952         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8953         (rb_metadata_get_field_name): Put metadata details in a static array
8954         instead of using a hash table, and add a field for language code (not
8955         used for anything)
8956         * metadata/rb-metadata-gst.c: Updates for changes in
8957         rb-metadata-common.c, fix signal handler closure leak for the typefind
8958         element's have-type signal, and add XML to the list of types we ignore.
8959         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8960         Update for changes to rb_metadata_get_field_type
8961         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8962         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8963         here and there.
8964         
8965         * configure.ac: Add --enable-metadata-helper option (not enabled by
8966         default) to use the external metadata service
8967         * metadata/Makefile.am: Add new files
8968         * metadata/test-metadata.c:  Test program for the metadata service
8970         Fixes #329597. 
8972 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8974         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8975         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8976         (rb_podcast_source_cmd_new_podcast):
8977         Move 'new podcast' action to the podcast source, and add it to the
8978         toolbar.  Fixes #331562.
8980 2006-02-19  James Livingston  <jrl@ids.org.au>
8982         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8983         menus, and away from move-to-trash. Fixes bug 331013.
8985 2006-02-19  James Livingston  <jrl@ids.org.au>
8987         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8988         when deleting last entry. Fixes bug 331712.
8990 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8992         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8993         (rb_entry_view_button_press_cb):
8994         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8995         anywhere, and include a flag indicating whether the click was over an
8996         entry or not.
8997         
8998         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8999         (rb_playlist_source_songs_show_popup_cb):
9000         * sources/rb-playlist-source.h:
9001         Add the 'over entry' flag to the class show popup method, and in the
9002         default handler, ignore right clicks when not over an entry.
9003         
9004         * sources/rb-iradio-source.c:
9005         (rb_iradio_source_songs_show_popup_cb):
9006         * sources/rb-library-source.c:
9007         (rb_library_source_songs_show_popup_cb):
9008         * sources/rb-podcast-source.c:
9009         (rb_podcast_source_songs_show_popup_cb):
9010         Show the source list popup menu when right clicked while not over an
9011         entry.
9013         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9014         For the queue sidebar, always display the popup so the 'clear queue'
9015         action is available regardless of where you click.  For the queue
9016         source, only display the popup when right clicked over an entry.
9017         Fixes #331392.
9019 2006-02-19  James Livingston  <jrl@ids.org.au>
9021         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9022         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9023         entry view, when we're not even using it
9025         * rhythmdb/rhythmdb-property-model.c:
9026         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9027         function, rather than a copy of the code.
9029         * shell/rb-playlist-manager.c:
9030         (rb_playlist_manager_playlist_row_inserted_cb),
9031         (rb_playlist_manager_set_source_internal),
9032         (rb_playlist_manager_playlist_entries_changed): use the query-model
9033         directly, rather than the source's entry view.
9035         * shell/rb-source-header.c: don't use the entry view, just select the
9036         source widget.
9038 2006-02-18  James Livingston  <jrl@ids.org.au>
9040         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9042         * help/C/figures/rb-iradio-main.png:
9043         * help/C/figures/rb-notification-area-menu.png:
9044         * help/C/figures/rb-notification-window.png:
9045         * help/C/figures/rb-notification-zone.png:
9046         * help/C/figures/rb-podcast-main.png:
9047         * help/C/figures/rb-statusbar.png:
9048         * help/C/figures/rb-toolbar-prevplaynext.png:
9049         * help/C/figures/rb-toolbar-repeat.png:
9050         * help/C/figures/rb-toolbar-shuffle.png:
9051         * help/C/figures/rb-toolbar.png:
9052         * help/C/figures/rb-volume-changer.png:
9053         * help/C/figures/rb-window-small.png:
9054         * help/C/figures/rb-window.png:
9055         * help/C/rhythmbox.xml: Update user guide with some of the changes
9056         that have occurred after 0.8.8. From bug 314001.
9058 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9060         * rhythmdb/rhythmdb-query-results.h,
9061           rhythmdb/rhythmdb-query-results.c:
9062         New interface for objects that accept query results from RhythmDB.
9064         * rhythmdb/rhythmdb-query-model.c:
9065         (rhythmdb_query_model_query_results_init),
9066         (rhythmdb_query_model_set_query),
9067         (rhythmdb_query_model_add_results),
9068         (rhythmdb_query_model_query_complete):
9069         * rhythmdb/rhythmdb-query-model.h:
9070         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9072         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9073         (rhythmdb_tree_do_full_query):
9074         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9075         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9076         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9077         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9078         * rhythmdb/rhythmdb.h:
9079         Pass query results through the RhythmDBQueryResults interface, rather
9080         than directly to a RhythmDBQueryModel.
9082         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9083         (rb_podcast_manager_db_entry_deleted_cb):
9084         * sources/rb-auto-playlist-source.c:
9085         (rb_auto_playlist_source_do_query),
9086         (rb_auto_playlist_source_set_query):
9087         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9088         * sources/rb-library-source.c: (rb_library_source_constructor),
9089         (rb_library_source_do_query):
9090         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9091         (rb_podcast_source_do_query):
9092         * rhythmdb/rhythmdb-property-model.c:
9093         (rhythmdb_property_model_drag_data_get):
9094         Cast the query model to RhythmDBQueryResults when passing to one of
9095         the RhythmDB query methods.
9097         * rhythmdb/Makefile.am: Add new files.
9099 2006-02-18  James Livingston  <jrl@ids.org.au>
9101         * data/ui/rhythmbox-ui.xml:
9102         * shell/rb-playlist-manager.c:
9103         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9104         "queue playlist" item to source context menu. Fixes bug 330490.
9106 2006-02-18  James Livingston  <jrl@ids.org.au>
9108         * data/glade/general-prefs.glade:
9109         * shell/rb-shell-preferences.c:
9110         (rb_shell_preferences_column_check_changed_cb),
9111         (rb_shell_preferences_sync):
9112         * sources/rb-library-source.c: (rb_library_source_constructor):
9113         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9114         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9115         (rb_entry_view_append_column): Add a "quality" colume which indicates
9116         the bitrate of media. Part of bug 167659.
9118 2006-02-18  James Livingston  <jrl@ids.org.au>
9120         * shell/rb-play-order.c: (do_next_idle_cb),
9121         (default_playing_entry_removed): move to next track when playing entry
9122         is deleted. Fixes bug 131150.
9124         * shell/rb-shell-player.h: remove ancient stuff
9126 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9128         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9129         (rb_shell_clipboard_set_property): 
9130         * shell/rb-shell.c (rb_shell_sync_party_mode):
9131         Trigger a resync of the clipboard properties when changing party mode.
9133 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9135         * sources/rb-static-playlist-source.c: Fix includes.
9137         * sources/rb-source.c (rb_source_can_rename) 
9138         (rb_source_can_delete, rb_source_can_move_to_trash):
9139         Return FALSE if in party mode.
9141         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9142         Replace fullscreen with party mode.
9143         (rb_shell_window_delete_cb): Don't quit if in party mode.
9144         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9145         (window_state_event_cb): Try to deiconify shell when iconified
9146         in party mode.
9147         (rb_shell_sync_party_mode): Sync party mode properties.
9148         Currently, that means [de]sensitizing close, quit, and small-display,
9149         going into fullscreen mode with window stuck and kept above, and
9150         toggling queue-only for the shell player.
9151         (rb_shell_sync_smalldisplay): Sensitive party mode.
9152         (rb_shell_get_party_mode): Get party mode setting.
9154         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9155         (rb_shell_player_set_property, rb_shell_player_get_property):
9156         Add queue-only property.
9157         (rb_shell_player_entry_activated_cb): If in party mode
9158         only queue the entry on activation.
9160         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9161         Break out from set_properties.  Desensitize some actions when
9162         in party mode.
9163         (rb_playlist_manager_set_property): Break out set_source_internal.
9165         * data/rhythmbox.schemas: Remove fullscreen mode.
9167         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9168         action with party mode.
9170         Partial fix for #323933
9172 2006-02-17  James Livingston  <jrl@ids.org.au>
9174         * configure.ac:
9175         * shell/rb-removable-media-manager.c:
9176         (get_nautilus_burn_drive_for_path),
9177         (rb_removable_media_manager_playing_uri_changed_cb): only use
9178         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9179         over the list when it doesn't.
9181 2006-02-17  James Livingston  <jrl@ids.org.au>
9183         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9184         (rb_iradio_source_first_time_changed): Only do the import on the
9185         first change from FALSE to TRUE.
9187         * sources/rb-library-source.c:
9188         (rb_library_source_preferences_sync),
9189         (rb_library_source_library_location_cb): set the first-run done flag
9190         if the user presses close and then sets their watches library
9191         location. Fixes bug 325997.
9193 2006-02-17  James Livingston  <jrl@ids.org.au>
9195         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9196         removable media manager gobject properties
9198         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9199         (split_drive_from_cdda_uri),
9200         (rb_removable_media_manager_playing_uri_changed_cb),
9201         (rb_removable_media_manager_load_media): stop polling a cd drive
9202         when we are playing from it. Part of bug 330716.
9204 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9206         * rhythmdb/rhythmdb-query-model.c:
9207         (rhythmdb_query_model_set_property),
9208         (rhythmdb_query_model_finalize),
9209         (rhythmdb_query_model_base_entry_removed):
9210         Propagate entry removal from base models out to attached property
9211         models.  Fixes the rest of #331165.
9213 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9215         * rhythmdb/rhythmdb-property-model.c:
9216         (rhythmdb_property_model_row_inserted_cb),
9217         (rhythmdb_property_model_prop_changed_cb),
9218         (rhythmdb_property_model_insert):
9219         Don't store NULL as a hash table value if we want to use
9220         g_hash_table_lookup to check if a key exists, and get the checks for
9221         how and whether to handle entry changes the right way around.
9222         Fixes #331211 and half of #331165.
9224 2006-02-16  James Livingston  <jrl@ids.org.au>
9226         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9227         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9228         Fixes bug 329942.
9230 2006-02-16  James Livingston  <jrl@ids.org.au>
9232         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9233         actually reset the browsers.
9235 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9237         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9238         Escape the strings we pass into libnotify so we don't get blank
9239         notifications when the song name contains '&' etc.  Fixes #330784.
9241 2006-02-16  James Livingston  <jrl@ids.org.au>
9243         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9244         enable "View All" when there is only a search box and no browser.
9245         Fixes bug 331395.
9247 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9249         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9250         popup menu, which I forgot to commit with the patch for bug #330014.
9252 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9254         * shell/rb-shell-player.c: (open_location_thread):
9255         Sync button and entry view state once we've started the player, so the
9256         entry view gets into the playing state for iradio.
9258 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9260         * shell/rb-shell-player.c: (open_location_thread):
9261         Take GDK lock before doing anything UI-related.
9263 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9265         * shell/rb-shell.c: Move 'new iradio station' action to
9266         iradio source.
9268         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9269         (rb_iradio_source_init), (rb_iradio_source_finalize),
9270         (rb_iradio_source_constructor):
9271         Remove some unused stuff.
9273         (guess_uri_scheme), (rb_iradio_source_add_station),
9274         (rb_iradio_source_add_from_playlist),
9275         (impl_get_ui_actions), (new_station_location_added),
9276         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9277         action, include it in the toolbar, and make sure the URI we add has a
9278         scheme.  Fixes #327059, more or less.
9280 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9282         * sources/rb-play-queue-source.c:
9283         (rb_play_queue_source_class_init),
9284         (rb_play_queue_source_constructor),
9285         (rb_play_queue_source_update_count),
9286         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9287         Add a toolbar button to clear the play queue, and make it sensitive
9288         only when there are entries in the queue.  Fixes #330014.
9290         * sources/rb-source.c: (_rb_source_register_action_group):
9291         * sources/rb-source.h:  Add helper function to register an
9292         action group for a source.
9294         * sources/rb-library-source.c: (rb_library_source_constructor):
9295         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9296         (register_action_group):  Use _rb_source_register_action_group.
9298 2006-02-15  James Livingston  <jrl@ids.org.au>
9300         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9301         (rb_song_info_constructor), (rb_song_info_set_property): make
9302         tag-editing completion work for albums too.
9304 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9306         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9307         Check the 'limit' checkbox for time-limited playlists.
9309 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9311         * widgets/rb-song-info.c: Prove text-completion when editing title,
9312         artist or album
9314 2006-02-14  James Livingston  <jrl@ids.org.au>
9316         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9317         tray icon popup menu. Fixes bug 331026.
9319 2006-02-14  James Livingston  <jrl@ids.org.au>
9321         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9322         Ogg Vorbis streams, instead of the MP3 ones.
9324 2006-02-14  James Livingston  <jrl@ids.org.au>
9326         * rhythmdb/rhythmdb-property-model.c:
9327         (rhythmdb_property_model_class_init),
9328         (rhythmdb_property_model_drag_data_get):
9329         * rhythmdb/rhythmdb-query-model.c:
9330         (rhythmdb_query_model_title_sort_func):
9331         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9332         LOCATION as the key. Fixes bug 330601.
9334 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9336         * sources/rb-playlist-source.c: (playlist_iter_func):
9337         Make it compile with older versions of totem-plparser too.      
9339 2006-02-13  James Livingston  <jrl@ids.org.au>
9341         * rhythmdb/rhythmdb.h:
9342         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9343         structure private, since things should use the accessor functions
9344         rather than manipulating it directly - Only RhythmDB and the
9345         implementation classes should access it directly. Part of the RhythmDB
9346         cleanup of bug 330226.
9348         * iradio/rb-station-properties-dialog.c:
9349         (rb_station_properties_dialog_update_title),
9350         (rb_station_properties_dialog_update_title_entry),
9351         (rb_station_properties_dialog_update_genre),
9352         (rb_station_properties_dialog_update_location),
9353         (rb_station_properties_dialog_update_play_count),
9354         (rb_station_properties_dialog_update_bitrate),
9355         (rb_station_properties_dialog_update_last_played),
9356         (rb_station_properties_dialog_update_rating),
9357         (rb_station_properties_dialog_update_playback_error),
9358         (rb_station_properties_dialog_sync_entries):
9359         * podcast/rb-feed-podcast-properties-dialog.c:
9360         (rb_feed_podcast_properties_dialog_update_title),
9361         (rb_feed_podcast_properties_dialog_update_title_label),
9362         (rb_feed_podcast_properties_dialog_update_author),
9363         (rb_feed_podcast_properties_dialog_update_location),
9364         (rb_feed_podcast_properties_dialog_update_copyright),
9365         (rb_feed_podcast_properties_dialog_update_language),
9366         (rb_feed_podcast_properties_dialog_update_summary):
9367         * podcast/rb-podcast-manager.c:
9368         (rb_podcast_manager_entry_downloaded),
9369         (rb_podcast_manager_db_entry_added_cb),
9370         (download_progress_update_cb),
9371         (rb_podcast_manager_db_entry_deleted_cb):
9372         * podcast/rb-podcast-properties-dialog.c:
9373         (rb_podcast_properties_dialog_update_title),
9374         (rb_podcast_properties_dialog_update_title_label),
9375         (rb_podcast_properties_dialog_update_feed),
9376         (rb_podcast_properties_dialog_update_location),
9377         (rb_podcast_properties_dialog_update_play_count),
9378         (rb_podcast_properties_dialog_update_bitrate),
9379         (rb_podcast_properties_dialog_update_last_played),
9380         (rb_podcast_properties_dialog_update_rating),
9381         (rb_podcast_properties_dialog_update_date),
9382         (rb_podcast_properties_dialog_update_description):
9383         * rhythmdb/rhythmdb-query-model.c:
9384         (rhythmdb_query_model_entry_changed_cb),
9385         (rhythmdb_query_model_remove_from_main_list),
9386         (rhythmdb_query_model_update_limited_entries),
9387         (rhythmdb_query_model_drag_data_get),
9388         (rhythmdb_query_model_album_sort_func):
9389         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9390         (save_entry):
9391         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9392         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9393         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9394         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9395         (rhythmdb_entry_get_double):
9396         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9397         * shell/rb-play-order-random-by-age-and-rating.c:
9398         (rb_random_by_age_and_rating_get_entry_weight):
9399         * shell/rb-play-order-random-by-age.c:
9400         (rb_random_by_age_get_entry_weight):
9401         * shell/rb-play-order-random-by-rating.c:
9402         (rb_random_by_rating_get_entry_weight):
9403         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9404         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9405         (rb_shell_player_set_playing_entry),
9406         (rb_shell_player_sync_replaygain),
9407         (rb_shell_player_sync_with_source),
9408         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9409         * sources/rb-playlist-source.c: (playlist_iter_func),
9410         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9411         (rb_playlist_source_entry_added_cb):
9412         * sources/rb-podcast-source.c:
9413         (rb_podcast_source_post_status_cell_data_func):
9414         * sources/rb-source.c: (rb_source_update_play_statistics):
9415         * sources/rb-sourcelist-model.c:
9416         (rb_sourcelist_model_drag_data_get):
9417         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9418         (rb_static_playlist_source_add_entry),
9419         (rb_static_playlist_source_remove_entry):
9420         * widgets/rb-entry-view.c: (type_ahead_search_func),
9421         (rb_entry_view_playing_cell_data_func),
9422         (rb_entry_view_rating_cell_data_func),
9423         (rb_entry_view_pixbuf_clicked_cb):
9424         * widgets/rb-header.c: (rb_header_get_duration):
9425         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9426         (rb_song_info_populate_dialog),
9427         (rb_song_info_update_playback_error),
9428         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9429         (rb_song_info_update_location), (rb_song_info_update_play_count),
9430         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9431         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9432         (rb_song_info_sync_entry_single): fix the huge number of times that
9433         the internals got accessed directly.
9435 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9437         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9438         trash' are grouped together.
9439         * shell/main.c: (main): Pass no-registration flag in to RBShell
9440         constructor, rather than mysteriously always passing TRUE.
9441         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9442         Set dirty flag when entries are removed from the model, so the play
9443         queue is marked dirty appropriately.
9444         * AUTHORS: update my email address
9446 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9448         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9450         * widgets/rb-druid.c: (path_dialog_response_cb):
9451         If the URI is local, don't display the 'file://' prefix.  
9452         Fixes #330919.
9454 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9456         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9457         Attach the notification to the tray icon widget, so libnotify
9458         positions it less badly.  Fixes #330876.
9460 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9462         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9463         Reverse the selection list before returning it, so we get it in the
9464         right order.  Fixes #330283 and some other weirdness.
9466 2006-02-11  James Livingston  <jrl@ids.org.au>
9468         * shell/rb-shell.c: (rb_shell_constructor),
9469         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9470         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9471         make small-mode and fullscreen mutually exclusive, since they don't
9472         work together
9474         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9475         Mode.
9477 2006-02-10  James Livingston  <jrl@ids.org.au>
9479         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9480         since it can cause it to be slower than real-time. Should fix bug
9481         322270.
9483 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9485         * rhythmdb/rhythmdb-query-model.c:
9486         (rhythmdb_query_model_set_property):
9487         Think just a little bit harder about that last commit.
9489 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9491         * rhythmdb/rhythmdb-query-model.c:
9492         (rhythmdb_query_model_set_property):
9493         Get the check for hidden entries the right way around.
9494         Fixes #330527, #330514.
9496         (rhythmdb_query_model_set_sort_order):
9497         Ignore no-op sort order changes, so we don't get critical
9498         messages when selecting 'all' in auto playlist browsers.
9500 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9502         Patch by: Christophe Fergeau  <teuf@gnome.org>
9504         * sources/rb-removable-media-source.c:
9505         (rb_removable_media_source_init),
9506         (rb_removable_media_source_constructor):
9507         Move icon setup code to the constructor, as the volume property
9508         haven't been set yet when _init is called.
9510 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9512         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9513         Make the source pixbuf a dynamic property.
9515         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9516         (rb_source_set_pixbuf, rb_source_set_property) 
9517         (rb_source_get_property): Add icon property.
9519         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9520         (rb_auto_playlist_source_init):
9521         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9522         (rb_static_playlist_source_init):
9523         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9524         (rb_removable_media_source_init): 
9525         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9526         (rb_podcast_source_init): 
9527         * sources/rb-library-source.c (rb_library_source_class_init) 
9528         (rb_library_source_set_property, rb_library_source_get_property): 
9529         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9530         (rb_iradio_source_init): Remove impl_get_pixbuf and
9531         set icon property on source base class.
9533         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9534         a different icon for when the share is password protected
9535         and locked.
9536         (rb_daap_source_new): Set icon property.
9537         (composite_icons): Composite an emblem on a pixbuf.
9538         (create_pixbufs): Load global pixbufs.
9539         (destroy_pixbufs): unref global pixbufs.
9540         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9541         (connection_auth_cb, connection_connected_cb) 
9542         (connection_disconnected_cb): Update icon when connection
9543         status changes.
9544         (rb_daap_source_activate): Connect signals.
9546         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9547         dialog with parent.
9549         * daapsharing/rb-daap-marshal.list: Add new signal.
9551         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9552         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9554         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9555         Add authenticate, connected, and disconnected signals.
9556         (connection_get_password): emit authenticate signal instead
9557         of running dialog directly.
9558         (connection_connected, connection_disconnected): Emit signals.
9559         (handle_login): Emit connected signal.
9560         (handle_logout): Emit disconnected signal.
9561         (rb_daap_connection_do_something): Fix leak.
9563         Fixes #330291
9565 2006-02-09  James Livingston  <jrl@ids.org.au>
9567         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9568         entries from the base model if we don't have show-hidden set. Fixes
9569         bug 330514.
9571 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9573         * daapsharing/rb-daap-share.c (message_get_session_id):
9574         Ugh. Use strtoul instead of atoi.
9575         (session_id_validate): Add debug statements.
9577 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9579         * daapsharing/rb-daap-connection.c (http_response_handler):
9580         Report the actual uri from the message in debug statements.
9582 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9584         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9585         Add context argument.
9586         (message_get_session_id): New function to parse session id from
9587         the message.
9588         (message_get_revision_number): Break out function to parse
9589         revision number from the message.
9590         (session_id_validate): New function to validate given session id
9591         is valid for given context (ie. client address).
9592         (session_id_generate): Generate a random session id.
9593         (session_id_create): Create a unique session id and store it.
9594         (session_id_remove): Remove a session id from the store.
9595         (login_cb): Create a session id instead of using a constant one.
9596         (logout_cb): Validate session id.
9597         (update_cb): Use new message_get_revision_number function.
9598         (databases_cb): Validate session id.
9599         (server_cb): Add server context to argument list for callbacks.  It
9600         is needed to look up the remote host.
9601         (db_entry_changed_cb): Use braces.
9602         (soup_auth_callback): Remove FIXME.
9603         (rb_daap_share_server_start): Create session id store.
9604         (rb_daap_share_server_stop): Destroy session id store.
9606         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9607         Don't base64-encode password here since it needs to be
9608         combined with the username first.
9610         * daapsharing/rb-daap-connection.c (build_message):
9611         Add username to Authorization token.
9612         (handle_login, handle_song_listing) 
9613         (rb_daap_connection_do_something): Session id
9614         must be an unsigned int.
9616         Fixes #329814
9618 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9620         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9621         Don't check if we've got a playing entry, ask the player object (duh).
9622         Might actually fix #329993.     
9624 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9626         * sources/rb-static-playlist-source.c:
9627         (rb_static_playlist_source_add_list_uri):
9628         Canonicalise URIs before trying to add them to the playlist, and 
9629         don't try to add files to the database for which there is 
9630         already an entry.
9632 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9634         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9635         Don't ask the entry view if we're playing, just check if we've got a
9636         playing entry.  Fixes #329993.
9638 2006-02-08  James Livingston  <jrl@ids.org.au>
9640         * rhythmdb/rhythmdb-query-model.c:
9641         (rhythmdb_query_model_set_property),
9642         (rhythmdb_query_model_finalize),
9643         (rhythmdb_query_model_base_complete): remove
9644         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9645         don't get emitted for entry changes. Fixes bug 330301.
9647         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9648         (rb_library_browser_init), (rb_library_browser_constructor),
9649         (rb_library_browser_new): do stuff in the constructor, not the init
9650         function, so that the db property gets set on RBPropertyViews
9651         correctly. Fixes a crash when dragging properties to a playlist.
9653 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9655         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9656         Actually stop soup server.  Fixes #329816.
9658 2006-02-07  James Livingston  <jrl@ids.org.au>
9660         * lib/rb-util.h:
9661         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9662         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9663         (collate_values_cb), (rb_collate_hash_table_keys),
9664         (rb_collate_hash_table_values): add functions to compare, copy and
9665         free string-lists. add functions to collate the keys or values of a
9666         hash table into a list.
9668         * rhythmdb/rhythmdb-property-model.c:
9669         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9670         (_remove_entry_cb), (_add_entry_cb),
9671         (rhythmdb_property_model_set_property),
9672         (rhythmdb_property_model_get_property),
9673         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9674         (rhythmdb_property_model_row_inserted_cb),
9675         (rhythmdb_property_model_prop_changed_cb),
9676         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9677         that are hidden, storing those that we have counted in a hash-table.
9679         * shell/Makefile.am: fix build order issue
9681         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9682         * sources/rb-source.h:
9683         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9684         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9685         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9686         browser-toggled method, rename _get_exta_views to _get_property_views,
9687         since several things depend on returning only that.
9689         * sources/rb-source.c: (rb_source_class_init),
9690         (rb_source_browser_toggled), (default_get_property_views),
9691         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9692         (rb_source_gather_hash_keys),
9693         (rb_source_gather_selected_properties): above changes, and move some
9694         utility functions up from RBLibraryView
9696         * widgets/rb-property-view.c:
9697         (rb_property_view_selection_changed_cb): fix leak.
9699         * rhythmdb/rhythmdb-query-model.c:
9700         (rhythmdb_query_model_set_property),
9701         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9702         (rhythmdb_query_model_set_sort_order),
9703         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9704         query model being resorted.
9706         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9707         NULL query.
9709         * rhythmdb/rhythmdb.h:
9710         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9711         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9712         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9713         two queries. Add a function to append "property={X,Y,Z,...}" to a
9714         query.
9716         * sources/rb-library-source.c: (rb_library_source_class_init),
9717         (rb_library_source_finalize), (rb_library_source_constructor),
9718         (rb_library_source_cmd_choose_genre),
9719         (rb_library_source_cmd_choose_artist),
9720         (rb_library_source_cmd_choose_album), (impl_search),
9721         (impl_get_property_views), (impl_reset_filters),
9722         (rb_library_source_preferences_sync),
9723         (rb_library_source_browser_views_activated_cb),
9724         (rb_library_source_state_prefs_sync),
9725         (construct_query_from_selection), (rb_library_source_do_query),
9726         (rb_library_source_browser_changed_cb):
9727         * widgets/Makefile.am:
9728         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9729         browser" widgets, which contains several property views, based on the
9730         code from RBLibrarySource. Make RBLibrarySource use it.
9732         * sources/rb-auto-playlist-source.c:
9733         (rb_auto_playlist_source_class_init),
9734         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9735         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9736         (impl_get_property_views), (impl_browser_toggled),
9737         (construct_query_from_selection),
9738         (rb_auto_playlist_source_do_query),
9739         (rb_auto_playlist_source_set_query),
9740         (rb_auto_playlist_source_browser_changed_cb): Use the new
9741         library-browser widget to add browsers to automatic playlists.
9743 2006-02-07  James Livingston  <jrl@ids.org.au>
9745         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9746         properly.
9747         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9748         type of the source is taken into account. Fixes bug 329621.
9750 2006-02-07  James Livingston  <jrl@ids.org.au>
9752         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9753         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9754         1.1, and perform URI canonicalistion when first upgrading. This should
9755         fix our remaining canonicalisation issues, such as bug 329988.
9757 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9759         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9760         Track the playing entry when the entry view isn't in the playing
9761         state, so we don't have to get the state changes exactly right.
9762         Fixes #330135.
9764 2006-02-06  James Livingston  <jrl@ids.org.au>
9766         * shell/rb-shell-player.c: (open_location_thread),
9767         (rb_shell_player_open_location): fix several iradio issues: having to
9768         press play after double-clicking on a station, not working correctly
9769         without a http:// prefix, and ignoring totem-plparser results other
9770         than success or error (e.g. IGNORE).
9772 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9774         Addition of dbus methods for dealing with static playlists and the
9775         play queue.  Fixes #329958.
9777         * shell/Makefile.am:
9778         * shell/rb-playlist-manager.h:
9779         * shell/rb-playlist-manager.xml:
9780         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9781         (rb_playlist_manager_get_playlists),
9782         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9783         (rb_playlist_manager_create_static_playlist),
9784         (rb_playlist_manager_delete_playlist),
9785         (rb_playlist_manager_add_to_playlist),
9786         (rb_playlist_manager_remove_from_playlist),
9787         (rb_playlist_manager_export_playlist):
9788         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9789         to create, delete, list, modify, export, and import  static playlists.
9790         
9791         * shell/main.c: (main): Register playlist manager object with dbus.
9793         * shell/rb-shell.h:
9794         * shell/rb-shell.xml:
9795         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9796         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9797         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9798         object, and implement the addToQueue and removeFromQueue methods.
9799         
9800         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9801         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9802         formats.
9804 2006-02-05  James Livingston  <jrl@ids.org.au>
9806         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9807         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9808         (save_entry): allow storage of booleans in the on-disk db, and
9809         save/load the HIDDEN property.
9811         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9812         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9813         to the state it was when RB shutdown. This makes RB appear to start
9814         faster, as tracks can appear before the stat is done. Remote files
9815         still start hidden. From bug 325215.
9817 2006-02-05  James Livingston  <jrl@ids.org.au>
9819         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9820         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9821         really cares about the difference from "entry-added", and it isn't
9822         emitted by the tree backend anyway.
9824         * rhythmdb/rhythmdb-query-model.c:
9825         (rhythmdb_query_model_constructor):
9826         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9827         remove the references to the entry-restored signal.
9829 2006-02-05  James Livingston  <jrl@ids.org.au>
9831         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9832         issue.
9834 2006-02-05  James Livingston  <jrl@ids.org.au>
9836         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9837         things are NULL before using g_object_unref. Fixes bug 327452.
9839         * player/rb-recorder-gst.c: (rb_recorder_construct):
9840         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9841         rather than assertion.
9843         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9844         emit a warning, rather than asserting if an unknown playlist type is
9845         encountered.
9847 2006-02-05  James Livingston  <jrl@ids.org.au>
9849         * widgets/Makefile.am:
9850         * widgets/rb-simple-view.c:
9851         * widgets/rb-simple-view.h: Move the two features that this class
9852         provides into RBPropertyView, and remove this class. Closes bug
9853         327500.
9855         * podcast/rb-feed-podcast-properties-dialog.c:
9856         * podcast/rb-feed-podcast-properties-dialog.h:
9857         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9858         (rb_podcast_source_feeds_show_popup_cb):
9859         * sources/rb-podcast-source.h:
9860         * widgets/rb-property-view.c: (rb_property_view_class_init),
9861         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9862         (rb_property_view_append_column_custom),
9863         (rb_property_view_button_press_cb):
9864         * widgets/rb-property-view.h: Updated for the above change.
9866 2006-02-04  James Livingston  <jrl@ids.org.au>
9868         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9869         too close to Move to Trash and people aren't likely to use it often.
9871 2006-02-04  James Livingston  <jrl@ids.org.au>
9873         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9875 2006-02-04  James Livingston  <jrl@ids.org.au>
9877         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9878         passed a path instead of a URI.
9880         * sources/rb-generic-player-source.c: (default_get_mount_path):
9881         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9882         the path. This fixes bug 329723.
9884 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9886         * daapsharing/rb-daap-structure.c:
9887         (rb_daap_content_code_string_as_int32):
9888         Use network byte order.
9890 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9892         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9893         Use a hash for source lookup.
9894         (mdns_service_added, mdns_service_removed): Handle
9895         service-added and service-removed signals from RBDaapMdnsBrowser.
9896         (remove_source): GDestroyNotify function for when sources
9897         are removed from the hash.
9898         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9899         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9900         (rb_daap_sources_shutdown): Update.
9901         (source_host_find): GHRFunc for finding a source by ip.
9902         (rb_daap_source_find_for_uri): Use the hash source lookup.
9904         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9905         Namespace keys.
9906         (password_check_button_toggled_cb): Handle password enabled.
9907         (share_name_entry_focus_out_event_cb): Namespace keys.
9908         Handle changes more robustly.
9909         (share_password_entry_focus_out_event_cb): Handle password entry.
9910         (add_daap_preferences): Connect to password signals.
9912         * lib/rb-preferences.h: Add DAAP keys.
9914         * data/glade/daap-prefs.glade: Add password UI.
9916         * data/rhythmbox.schemas: Add password keys.
9918         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9919         assert with warning.
9921         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9922         gconf keys to lib/rb-preferences.h.  Namespace
9923         the gconf keys.
9924         (create_share): Add password support.
9925         (enable_sharing_changed_cb): Namespaced keys.
9926         (require_password_changed_cb): Handle key change.
9927         (share_name_changed_cb): Namespaced keys.
9928         (share_password_changed_cb): Handle key change.
9929         (rb_daap_sharing_init): Namespaced keys.
9930         (rb_daap_sharing_shutdown): Ditto.
9932         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9933         Add password property.
9934         (rb_daap_share_set_name): Break out prop set function.
9935         (published_cb): New RBDaapMdnsPublisher signal handler.
9936         (name_collision_cb): Ditto.
9937         (rb_daap_share_init): Create publisher object and
9938         connect to signals.
9939         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9940         (rb_daap_share_set_property): Break out prop set functions.
9941         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9942         Unref publisher.
9943         (rb_daap_share_new): Add password argument.  Start
9944         publishing and DAAP server.
9945         (message_set_from_rb_daap_structure): Change print to debug.
9946         (server_info_cb): Set auth method to publish.
9947         (logout_cb): Handle DAAP client logout.
9948         (update_cb): Remove C++ comments.
9949         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9950         (server_cb): Add debug.
9951         (soup_auth_callback): Handle auth requests.
9952         (rb_daap_share_server_start): Split up functions for starting
9953         server and publishing.  Add auth handling to server.
9954         (rb_daap_share_server_stop): Split stop server and publish.
9955         No C++ comments.
9956         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9957         Start and stop publishing.
9958         (rb_daap_share_restart): Restart server and publishing.
9959         (rb_daap_share_maybe_restart): Conditionally restart.
9961         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9962         (rb_daap_collision_dialog_new_run): Don't use
9963         separators in dialogs.
9965         * daapsharing/rb-daap-connection.h: Add private
9966         data to class structure.
9968         * daapsharing/rb-daap-connection.c: Move
9969         some includes to top of file.  Make private
9970         data struct name consistent with others.
9971         (rb_daap_connection_class_init): Rename
9972         private.
9973         (rb_daap_connection_init): Get and store the pointer
9974         to the private data once instead of in every
9975         function.  Create a username value "Rhythmbox_VERSION".
9976         (connection_get_password): Don't get private.
9977         (build_message): Ditto.
9978         (http_response_handler): Don't init variables in
9979         declaration.  Add debug.  Spacing.
9980         (http_get, entry_set_string_prop, handle_server_info) 
9981         (handle_login, handle_update, handle_database_info) 
9982         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9983         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9984         (rb_daap_connection_state_done): Don't get private.
9985         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9986         spacing.  Correctly base64 encode the Authentication token.
9987         Add username to auth token.
9988         (rb_daap_connection_get_playlists): Don't get private.
9989         (rb_daap_connection_dispose): Ditto.  Free username.
9990         (rb_daap_connection_set_property) 
9991         (rb_daap_connection_get_property): Don't get private.
9993         * daapsharing/Makefile.am: Conditionally
9994         compile MDNS backends.  Add marshall stuff.
9996         * daapsharing/.cvsignore: Update.
9998         * configure.ac: Add conditional to see which
9999         MDNS backend we should use.
10001         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10003         * daapsharing/rb-daap-marshal.list:
10004         * daapsharing/rb-daap-mdns-browser-avahi.c:
10005         * daapsharing/rb-daap-mdns-browser-howl.c:
10006         * daapsharing/rb-daap-mdns-browser.h:
10007         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10008         * daapsharing/rb-daap-mdns-publisher-howl.c:
10009         * daapsharing/rb-daap-mdns-publisher.h:
10010         Split rb-daap-mdns.c into two classes.  One for
10011         publishing and one for browsing.  Split out
10012         the avahi and howl backends into different files.
10014         Fixes #322966
10015         
10016 2006-02-04  James Livingston  <jrl@ids.org.au>
10018         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10020         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10021         crash if metadata reader gives us NULL for strings.
10023 2006-02-03  James Livingston  <jrl@ids.org.au>
10025         * shell/rb-shell-player.c: (open_location_thread),
10026         (rb_shell_player_open_location):
10027         retrieve iradio playlists files in a thread, so that with GStreamer
10028         0.10 the UI doesn't block while connecting to stations. The streamer
10029         connection is synchronous with 0.8, so that will still block (a bit).
10030         Fixed bug 128106.
10032         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10033         because _open_entry does that automatically when it is ready to.
10035 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10037         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10038         (rb_podcast_source_post_status_cell_data_func):
10039         Leave the podcast status column blank for episodes that have not been
10040         downloaded.
10042 2006-02-03  James Livingston  <jrl@ids.org.au>
10044         Add support for source-specific toolbar items, and make the Burn
10045         Playlist item only available for playlists. Also add Update All
10046         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10048         * data/ui/rhythmbox-ui.xml:
10049         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10050         (impl_get_ui_actions): make the Burn CD toolbar item only for
10051         playlists
10053         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10054         * lib/rb-stock-icons.h: load the Eject icon as stock.
10056         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10057         action
10059         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10060         (rb_shell_select_source):
10061         * sources/rb-source.c: (rb_source_class_init),
10062         (rb_source_disconnect), (default_get_ui_actions),
10063         (rb_source_get_ui_actions):
10064         * sources/rb-source.h: add support for source-specific toolbar items
10066         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10067         Eject and Rip toolbar items
10069         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10070         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10071         item.
10073 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10075         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10076         * shell/main.c: (main):
10077         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10078         Replace all g_critical calls with g_warning, since none of them are
10079         the sort of thing the process should die over.  Fixes #329398.
10081 2006-02-03  James Livingston  <jrl@ids.org.au>
10083         * configure.ac: mention gst-plugins-base in the error message for not
10084         finding GStreamer 0.10, since not having that will cause it to fail.
10086 2006-02-03  James Livingston  <jrl@ids.org.au>
10088         * configure.ac: fix typo that means you get the wrong error message if
10089         you explicity request a particular playback engine, and it can't be
10090         found.
10092 2006-02-03  James Livingston  <jrl@ids.org.au>
10094         * data/glade/library-prefs.glade: allow the watched library location
10095         to be a non-local place.
10097 ============ Version 0.9.3
10100 2006-02-02  James Livingston  <jrl@ids.org.au>
10102         * NEWS: update NEWS
10103         * configure.ac: bump version to 0.9.3
10105         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10106         <caillon@redhat.com>, fixed bug 329517. 
10108 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10110         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10112         * widgets/rb-song-info.c: (rb_song_info_constructor):
10113         Make year and disc number fields non-editable if tag editing
10114         is disabled.  Fixes #329463.
10116 2006-02-01  James Livingston  <jrl@ids.org.au>
10118         * rhythmdb/rhythmdb-property-model.c:
10119         (rhythmdb_property_model_row_inserted_cb),
10120         (rhythmdb_property_model_prop_changed_cb),
10121         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10122         correctly. Fixes bug 327061.
10124         * rhythmdb/rhythmdb-query-model.c:
10125         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10126         the HIDDEN property when an entry is removed for being hidden.
10128         * rhythmdb/rhythmdb-query-model.h:
10129         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10130         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10131         models's "connected" property. Whatever it was needed for seems to
10132         have gone.
10134 2006-02-01  James Livingston  <jrl@ids.org.au>
10136         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10138         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10139         (rb_shell_player_playing_changed_cb): block the signal to prevent
10140         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10141         button pausing.
10143 2006-02-01  James Livingston  <jrl@ids.org.au>
10145         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10146         /should/ now work, if the neccessary plugins get ported.
10148 2006-01-30  James Livingston  <jrl@ids.org.au>
10150         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10151         string properties to "Unknown" is the string is empty. Kind of fixes
10152         bug 327495.
10154         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10155         gettext calls once, rather than once per time the function is used.
10156         This stops us making tens of thousands of gettext calls on startup,
10157         which reduces the cpu-time of startup by 10-20%
10159 2006-01-29  James Livingston  <jrl@ids.org.au>
10161         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10162         (rhythmdb_add_uri):
10163         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10164         for files containing known video streams.
10167 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10169         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10170         required.
10172 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10174         * INSTALL.quick: More random updates
10176         * rhythmdb/rhythmdb-query-model.c:
10177         (rhythmdb_query_model_class_init),
10178         (rhythmdb_query_model_set_property),
10179         (rhythmdb_query_model_get_property),
10180         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10181         Remove user sort data handling, take a property ID and a reverse
10182         flag instead.
10183         (rhythmdb_query_model_insert_into_main_list),
10184         (rhythmdb_query_model_insert_into_limited_list),
10185         (rhythmdb_query_model_do_reorder),
10186         (_reverse_sorting_func):
10187         Handle reverse sorting by calling _reverse_sorting_func, which
10188         calls the real sort function and reverses the result.
10189         (rhythmdb_query_model_set_sort_order):
10190         Allow this to be called to set the initial sort order for limited
10191         queries, and handle reverse sorting when reordering.
10192         (rhythmdb_query_model_location_sort_func),
10193         (rhythmdb_query_model_album_sort_func),
10194         (rhythmdb_query_model_artist_sort_func),
10195         (rhythmdb_query_model_genre_sort_func),
10196         (rhythmdb_query_model_track_sort_func),
10197         (rhythmdb_query_model_double_ceiling_sort_func),
10198         (rhythmdb_query_model_ulong_sort_func),
10199         (rhythmdb_query_model_date_sort_func),
10200         (rhythmdb_query_model_string_sort_func):
10201         Sort functions moved from rb-entry-view.c.
10202         * rhythmdb/rhythmdb-query-model.h:
10203         Add the sort functions, and update the changed functions.
10204         
10205         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10206         Just call _resort_model when the query model is set, since it
10207         does all the same things.
10208         (rb_entry_view_append_column):
10209         Rework bits so the rating column doesn't have to be so much of a
10210         special case.
10211         (rb_entry_view_append_column_custom):
10212         Take a property ID to sort on, rather than arbitrary custom data.
10213         (rb_entry_view_resort_model):
10214         Query model does all the reverse sort handling now.
10215         * widgets/rb-entry-view.h: Update _append_column_custom.
10217         * sources/rb-play-queue-source.c:
10218         (rb_play_queue_source_constructor):
10219         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10220         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10221         (rb_podcast_source_post_date_cell_sort_func),
10222         (rb_podcast_source_post_status_cell_sort_func),
10223         (rb_podcast_source_post_feed_cell_sort_func):
10224         Updates required by all the other changes.
10226         * rhythmdb/rhythmdb-property-model.c:
10227         (rhythmdb_property_model_drag_data_get):
10228         Sort the query results on the selected property,
10229         so they arrive in the expected order.  All the other changes were made
10230         to make this possible.  Fixes bug #327494.
10232 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10233         
10234         * shell/rb-shell-clipboard.c:
10235         Use GTK_STOCK_REMOVE icon for the remove action in
10236         the play queue too.
10238 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10240         * sources/rb-play-queue-source.c:
10241         (rb_play_queue_source_constructor),
10242         (rb_play_queue_source_update_count):
10243         Don't make the 'queued songs' column clickable,
10244         and add the queued song count to the column title.
10246 2006-01-29  James Livingston  <jrl@ids.org.au>
10248         * configure.ac: remove "experimental" marking from DAAP, and enable by
10249         default if the dependencies are found.
10251 2006-01-29  James Livingston  <jrl@ids.org.au>
10253         * NEWS: update NEWS
10255 2006-01-29  James Livingston  <jrl@ids.org.au>
10257         patch by: William Jon McCann  <mccann@jhu.edu>
10259         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10260         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10261         property used for the feed list. Fixes problem with feeds with no
10262         episodes not showing up.
10264 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10265         
10266         * shell/rb-play-order-random-by-age-and-rating.c:
10267         (rb_random_by_age_and_rating_get_entry_weight):
10268         Fix compile errors, bug #328978.
10270 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10272         * INSTALL.quick, README: Random updates
10273         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10275 2006-01-28  James Livingston  <jrl@ids.org.au>
10277         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10278         default rating back to 0 (from 2.5, which was needed for autorating).
10280         * shell/rb-play-order-random-by-age-and-rating.c:
10281         (rb_random_by_age_and_rating_get_entry_weight):
10282         * shell/rb-play-order-random-by-rating.c:
10283         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10284         2.5 for the purposes of weighting entries.
10286 2006-01-28  James Livingston  <jrl@ids.org.au>
10288         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10289         translator comments, to make it clearer what the "friendly time"
10290         formatting strings mean.
10292 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10294         * daapsharing/rb-daap-connection.c: (http_response_handler):
10295         Fix the sense of the overflow check so it'll accept valid input.
10297 2006-01-27  James Livingston  <jrl@ids.org.au>
10299         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10301         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10302         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10304 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10306         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10307         
10308         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10309         Don't include the artist field in the window title if it's blank.
10310         Fixes #325973.
10312 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10314         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10315         Use stock delete icon for move to trash and stock remove
10316         for remove menu item.
10318 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10320         * shell/rb-shell.c: (rb_shell_constructor),
10321         (idle_handle_load_complete):  Don't start the playlist save
10322         timeout until we've loaded the playlists, otherwise we'll
10323         write an empty playlist file if startup takes too long.
10325 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10327         * shell/rb-shell.c: Make view toolbar toggle use
10328         shift+ctrl+t.  Fixes #327585.
10330 2006-01-25  James Livingston  <jrl@ids.org.au>
10332         patch by: Christope Fergeau  <teuf@gnome.org>
10334         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10335         (http_response_handler): fix a potential buffer overflow issue.
10337 2006-01-25  James Livingston  <jrl@ids.org.au>
10339         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10340         Year column wide enough to display "Unknown"
10342 2006-01-25  James Livingston  <jrl@ids.org.au>
10344         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10345         (rb_podcast_source_post_status_cell_data_func): make the episode
10346         status wording better. Part of bug 321607.
10348 2006-01-25  James Livingston  <jrl@ids.org.au>
10350         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10351         others with a separator.
10353         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10354         stock Delete icon.
10356 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10358         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10360 2006-01-23  James Livingston  <jrl@ids.org.au>
10362         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10363         0.3.2. Fixed bug 328158.
10365 2006-01-23  James Livingston  <jrl@ids.org.au>
10367         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10368         (gulong_gst_date_transform), (rb_metadata_class_init):
10369         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10371 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10373         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10374         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10375         (record_entry_change): Protect added_entries and changed_entries with
10376         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10378 2006-01-23  James Livingston  <jrl@ids.org.au>
10380         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10381         the browser for audio CDs.
10383 2006-01-22  James Livingston  <jrl@ids.org.au>
10385         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10386         NEVER_FAIL as it causes the daemon-not-running error to never be
10387         reported, resulting in bug 319438 re-occurring.
10389 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10391         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10392         Just call the podcast manager's update method.  Unbreaks the 'update
10393         all feeds' command.
10395 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10397         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10399 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10401         * configure.ac: Don't disable DAAP with gstreamer 0.10
10403         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10404         (rb_daap_src_class_init), (rb_daap_src_init),
10405         (rb_daap_src_finalize), (rb_daap_src_set_property),
10406         (rb_daap_src_get_property), (rb_daap_src_write),
10407         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10408         (_split_uri), (rb_daap_src_open):
10409         * daapsharing/rb-daap-src.h:
10410         Mostly fix seeking, handle chunked transfer encoding, and port to
10411         gstreamer 0.10.
10412         
10413         * player/rb-player-gst.c:
10414         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10415         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10417         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10418         being fixed.
10420 2006-01-21  James Livingston  <jrl@ids.org.au>
10422         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10423         for Year metadata in DAAP sources. Fixes bug 327700.
10425         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10427 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10429         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10430         enum values instead of magic numbers.
10432         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10433         Add number of songs that match each property title into
10434         the cell.  Also show the number of properties that match
10435         in the All entry.
10436         (rb_property_view_constructor): Use enum values instead of
10437         magic numbers.
10439         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10440         Query podcast posts instead of feeds for browser.  Use
10441         post SUBTITLE which is the location for the property view.
10442         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10443         (construct_query_from_selection) 
10444         (rb_podcast_source_cmd_delete_feed) 
10445         (rb_podcast_source_cmd_properties_feed) 
10446         (rb_podcast_source_cmd_update_feed): Use variable to make
10447         it clear what the selection data represents.
10448         (rb_podcast_source_feed_title_cell_data_func): Add number
10449         of posts that belong to each feed in the browser.
10451         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10452         (rhythmdb_property_model_delete_prop): Decrement the refcount
10453         for the All entry.
10454         (rhythmdb_property_model_get_column_type): Use column enum
10455         values instead of magic numbers.  Add NUMBER column.
10456         (rhythmdb_property_model_get_value): Use enum.
10457         Add NUMBER column that represents the refcount for
10458         the title of that property.
10459         (rhythmdb_property_model_perform_sync): Don't fake up
10460         a title for All here.
10462         Fixes #327372.
10463         
10464 2006-01-21  James Livingston  <jrl@ids.org.au>
10466         Make Rhythmbox start faster by not blocking the UI while database
10467         initialisation and loading occurs. Closes bug 323348.
10469         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10470         start 10 seconds later instead of immediately.
10471         
10472         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10473         safe to call from any thread.
10475         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10476         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10477         so the UI doesn't block.
10479 2006-01-18  James Livingston  <jrl@ids.org.au>
10481         * sources/rb-static-playlist-source.c:
10482         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10483         cause crashes. Oops. fixes bug 327477.
10485 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10487         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10488         Set GST element state to NULL before unreffing.
10489         Fixes #327422.
10491 2006-01-18  James Livingston  <jrl@ids.org.au>
10493         * sources/rb-static-playlist-source.c:
10494         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10495         type, since the playlists can contain non-song entries. Fixes bug
10496         327448.
10498         * sources/rb-play-queue-source.c:
10499         (rb_play_queue_source_class_init): disable the search box for the
10500         queue.
10502 2006-01-18  James Livingston  <jrl@ids.org.au>
10504         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10505         dragging of podcast episodes. Fixed bug 327450.
10507 2006-01-18  James Livingston  <jrl@ids.org.au>
10509         * rhythmdb/rhythmdb-query-model.c:
10510         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10511         dragging to an emoty playlist.
10513 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10515         * sources/rb-playlist-source-recorder.c:
10516         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10518 2006-01-17  James Livingston  <jrl@ids.org.au>
10520         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10522         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10523         different number of tracks than exist on the cd, since that happens
10524         with audio+data hybrid CDs. Part of bug 325046.
10526 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10528         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10529         Remove useless call to gtk_tree_view_column_set_clickable().
10531         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10532         Don't store sort data for columns if the sort function is NULL,
10533         so only sortable columns will be in the column sort data map.
10534         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10535         on clickable.
10536         (rb_entry_view_constructor):  The 'playing icon' column is never
10537         clickable, so don't connect a signal handler for it.
10539         Fixes bug 326811.
10541 2006-01-17  James Livingston  <jrl@ids.org.au>
10543         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10544         are 0.8 only. Fix element detection.
10546         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10547         saving the new metadata failed
10549 2006-01-17  James Livingston  <jrl@ids.org.au>
10551         * shell/rb-shell-player.c: (do_next_idle),
10552         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10553         (eos_cb): release audio device when a playlist finishes. Fixes bug
10554         323679.
10556 2006-01-17  James Livingston  <jrl@ids.org.au>
10558         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10559         canonicalise the URIs when things are added via library watching.
10561 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10563         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10564         Off by one error in default speed index.
10566 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10568         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10569         (update_speed_combobox, update_speed_combobox):
10570         Get a list of the actually supported write speeds from
10571         n-c-b >= 2.13.90.  Otherwise use fallback list.
10573 2006-01-17  James Livingston  <jrl@ids.org.au>
10575         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10576         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10577         don't get stuck on recursive symlinks. Fixed bug 125452.
10579 2006-01-17  James Livingston  <jrl@ids.org.au>
10581         Add support for mass-storage audio players. Players are detected via
10582         either the HAL "audio_player" capability, or a ".is_audio_player" file
10583         in the root of the volume. Closes bug 325602.
10585         * configure.ac: separate using HAL from ipod support.
10587         * lib/rb-file-helpers.c: (rb_uri_is_local):
10588         * lib/rb-file-helpers.h: add function to determine whether a URI is
10589         local.
10591         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10592         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10593         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10594         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10595         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10596         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10597         directories can be scanned for files to add as  non-SONG entries.
10599         * shell/rb-removable-media-manager.c:
10600         (rb_removable_media_manager_mount_volume): add checking for
10601         mass-storage players.
10603         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10604         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10605         (hal_udi_is_ipod):
10606         * sources/rb-removable-media-source.c:
10607         (rb_removable_media_source_class_init),
10608         (rb_removable_media_source_constructor): move some things up to the
10609         RBRemovableMediaSource, rather than making subclasses do it.
10611         * sources/Makefile.am:
10612         * sources/rb-generic-player-source.c:
10613         * sources/rb-generic-player-source.h: add mass-storage player source.
10615 2006-01-16  James Livingston  <jrl@ids.org.au>
10617         patch by: William Jon McCann  <mccann@jhu.edu>
10619         * rhythmdb/rhythmdb-query-model.c:
10620         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10621         commit.
10623 2006-01-16  James Livingston  <jrl@ids.org.au>
10625         Patch to add support for "chained queries" and putting hidden tracks
10626         in query models. Use chained queries to add search box support to
10627         normal playlists, and to make hidden entries not get lost. Fixes bug
10628         319278.
10630         * rhythmdb/rhythmdb-query-model.h:
10631         * rhythmdb/rhythmdb-query-model.c:
10632         (rhythmdb_query_model_class_init),
10633         (rhythmdb_query_model_set_property),
10634         (rhythmdb_query_model_get_property):
10635         (rhythmdb_query_model_finalize): add "show-hidden" and
10636         "base-model" properties.
10638         (rhythmdb_query_model_set_connected),
10639         (rhythmdb_query_model_has_pending_changes),     
10640         (rhythmdb_query_model_entry_added_cb),
10641         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10642         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10643         (rhythmdb_query_model_remove_entry),
10644         (rhythmdb_query_model_drag_data_received),
10645         (rhythmdb_query_model_base_row_inserted),
10646         (rhythmdb_query_model_base_row_deleted),
10647         (rhythmdb_query_model_base_non_entry_dropped),
10648         (rhythmdb_query_model_base_complete),
10649         (rhythmdb_query_model_base_entry_prop_changed),
10650         (rhythmdb_query_model_base_rows_reordered),
10651         (rhythmdb_query_model_row_drop_possible): handle base-model by
10652         chaining events and operations where necessary. Make hidden entries
10653         not get added only if "show-hidden" is false.
10655         (rhythmdb_query_model_child_index_to_base_index),
10656         (rhythmdb_query_model_base_index_to_child_index),
10657         (rhythmdb_query_model_get_entry_index): utility functions for handling
10658         base-model entries.
10660         (rhythmdb_query_model_reapply_query): apply the current query, and
10661         remove entries that don't match it.
10663         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10664         empty queries.
10666         * sources/rb-source.c: (rb_source_set_property): move the unref later
10667         to fix problem if it is the last reference.
10669         * sources/rb-static-playlist-source.c:
10670         (rb_static_playlist_source_class_init),
10671         (rb_static_playlist_source_init),
10672         (rb_static_playlist_source_finalize),
10673         (rb_static_playlist_source_constructor), (impl_reset_filters),
10674         (impl_search), (rb_static_playlist_source_do_query),
10675         (impl_save_contents_to_xml),
10676         (rb_static_playlist_source_add_location_internal): use a chained query
10677         model to filter out hidden entries and implement the search box.
10679 2006-01-15  James Livingston  <jrl@ids.org.au>
10681         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10682         the default playlist loading, which I broke earlier.
10684 2006-01-15  James Livingston  <jrl@ids.org.au>
10686         patch by: William Jon McCann  <mccann@jhu.edu>
10688         * sources/rb-playlist-source.c: (playlist_iter_func): use
10689         totem-plparser's new API version macros to check for API changes.
10690         Handle the recent API change.
10692 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10694         * sources/rb-library-source.c: (impl_get_config_widget):
10695         Ref the preferences object to match the unref in the
10696         finalizer.  Fixes some portion of #323505.
10698 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10700         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10701         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10702         Fix valgrind warnings about accessing uninitialised values.
10704 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10706         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10708 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10710         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10711         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10712         Stops the 'now playing' icon from being displayed after the play
10713         order finishes.
10715 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10717         * podcast/rb-podcast-manager.c:
10718         (rb_podcast_manager_db_entry_deleted_cb):
10719         Don't try to delete files we never downloaded, and cancel downloads
10720         for deleted episodes.  Fixes bug #326862.
10721         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10722         Don't complain about NULL data items in the selection list.
10724 2006-01-14  James Livingston  <jrl@ids.org.au>
10726         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10727         Make the name ofthe queue non editable. Fixes bug 326918.
10729 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10731         * sources/rb-playlist-source-recorder.c (burn_cd) 
10732         (ask_rewrite_disc): Don't use our locally copied functions
10733         if we have at least 2.13.
10735 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10737         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10738         Correct the argument type for the process_error signal.
10739         May fix bug #323154.
10741 2006-01-13  James Livingston  <jrl@ids.org.au>
10743         save the queue to disk when exiting, and reload on startup. Fixed bug
10744         326677 .
10746         * shell/rb-playlist-manager.c:
10747         (rb_playlist_manager_load_playlists),
10748         (rb_playlist_manager_save_playlists_async): don't disable saving of
10749         the queue
10751         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10752         add the queue source as a gobject property.
10754         * sources/rb-play-queue-source.c:
10755         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10756         code to save the queue to xml
10758         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10759         load the queue from xml.
10760         * sources/rb-playlist-xml.h:
10762         * sources/rb-static-playlist-source.c:
10763         (rb_static_playlist_source_load_from_xml),
10764         (rb_static_playlist_source_new_from_xml):
10765         * sources/rb-static-playlist-source.h: split the playlist xml loading
10766         from the static playlist creation function, so the queue can use it.
10768 2006-01-13  James Livingston  <jrl@ids.org.au>
10770         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10771         assertion that should be there. Fixes bug 325923.
10772         
10773         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10774         return NULL if the entry already exists (e.g. as another type).
10775         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10776         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10777         (rb_podcast_manager_insert_feed):
10778         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10779         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10780         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10781         for the above function returning NULL.
10783 2006-01-12  James Livingston  <jrl@ids.org.au>
10785         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10786         is enabled. Fixes bug 326673.
10787         
10788         * doc/reference/tmpl/eggtrayicon.sgml:
10789         * doc/reference/tmpl/rb-daap-src.sgml:
10790         * doc/reference/tmpl/rb-source.sgml:
10791         * doc/reference/tmpl/rb-statusbar.sgml:
10792         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10793         * doc/reference/tmpl/rhythmbox-unused.sgml:
10794         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10796 2006-01-11  James Livingston  <jrl@ids.org.au>
10798         * widgets/rb-song-info.c: (rb_song_info_constructor),
10799         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10800         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10801         the same value for properties. From bug 326054.
10803 2006-01-11  James Livingston  <jrl@ids.org.au>
10805         * sources/rb-source.h:
10806         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10807         (rb_shell_player_set_playing_source_internal), (eos_cb):
10808         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10809         every entry.
10811         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10812         source use this. Closes bug 322077.
10814 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10816         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10817         In order for set_icon_data_from_pixbuf() to be
10818         effective, one must not set an icon in _new().
10820 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10822         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10823         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10824         (egg_tray_icon_notify): Add support for libnotify 0.3.
10825         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10826         * configure.ac: Determine the version of libnotify.
10827         Fixes #326333.
10829 2006-01-08  James Livingston  <jrl@ids.org.au>
10831         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10832         trying to share a track with unknown length.
10834 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10836         * shell/rb-shell-player.c: (rb_shell_player_init):
10837         Sync volume on startup so it doesn't default to 0.
10839 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10841         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10842         (rb_shell_player_get_property), (rb_shell_player_open_location),
10843         (info_available_cb):  Add the iradio streamed song title as a
10844         property, and emit a signal when it changes.
10846         * shell/rb-shell.c: (rb_shell_constructor),
10847         (rb_shell_player_elapsed_changed_cb),
10848         (rb_shell_player_stream_song_changed_cb):
10849         Issue a notification when the iradio song title changes.
10850         Fixes #326166.
10852 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10854         * shell/rb-shell-player.c: (rb_shell_player_init),
10855         (rb_shell_player_finalize), (rb_shell_player_set_property),
10856         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10857         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10858         (rb_shell_player_set_volume_relative),
10859         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10860         (rb_shell_player_get_mute):
10861         * shell/rb-shell-player.h:
10862         * shell/rb-shell-player.xml:
10863         Store volume as a property on RBShellPlayer, rather than in gconf.
10864         Add some methods to control volume via dbus.
10866         * shell/rb-shell.c: (rb_shell_constructor),
10867         (rb_shell_volume_widget_changed_cb),
10868         (rb_shell_player_volume_changed_cb):
10869         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10870         Update volume using player properties rather than gconf, and sync the
10871         volume with the volume control button when something else changes it.
10872         Fixes #323840.
10874 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10876         * shell/rb-tray-icon.c (tray_popup_position_menu):
10877         Make tray menu align with edge of panel.
10879         patch from Jaap A. Haitsma <jaap@haitsma.org>
10880         Fixes #319913
10882 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10883         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10884         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10885         (rb_playlist_manager_new_playlist_from_selection_data):
10886         Make a reasonable default name for playlists created from
10887         dropped data.  Fixes #326116.
10889 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10891         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10892         Use new gconf key.
10893         (burn_cd): Always eject CD after burning.  Too many drives
10894         get confused if we don't.  Save the speed used if the burn
10895         was completed successfully.
10897         * data/rhythmbox.schemas: Use our own speed instead of from
10898         n-c-b. The situation is that the default_speed for n-c-b is most
10899         likely the maximum write speed.  This is fine for n-c-b because it
10900         has burn-proof turned on.  We can't turn it on for audio CDs
10901         because the results are poor in quality.  So we'll just pick a
10902         default that should work for everyone (4).
10904 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10905         
10906         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10907         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10909 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10911         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10912         in my previous commit.  Fixes #326037.
10914 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10916         patch by: Jonathan Matthew
10918         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10919         error on Fedora Rawhide.
10921 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10923         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10924         Assume HTTP URLs ending with .xml or .rss are podcasts.
10925         (rb_shell_add_uri): Handle adding podcast feeds.
10927         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10928         Register as the source for podcast feeds.
10930 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10932         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10933         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10934         (rb_shell_preferences_append_view_page):
10935         * shell/rb-shell-preferences.h:
10936         Fix typo in function name.  Fixes #325992.
10938 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10940         * shell/rb-audioscrobbler.c:
10941         Add '+' to the list of characters to URI-encode, so it doesn't get
10942         interpreted as a space.
10944 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10946         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10947         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10948         goes away while we're still trying to log in.
10950 2006-01-06  James Livingston  <jrl@ids.org.au>
10952         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10954 2006-01-06  James Livingston  <jrl@ids.org.au>
10956         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10957         support for Year to automatic playlists. Closes bug 321341.
10959         * rhythmdb/rhythmdb-query-model.c:
10960         (rhythmdb_query_model_set_property):
10961         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10962         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10963         (rhythmdb_query_free), (rhythmdb_query_serialize),
10964         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10965         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10966         * rhythmdb/rhythmdb.h: Support special
10967         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10968         year in date.
10970         * widgets/rb-query-creator-properties.c:
10971         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10972         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10974 2006-01-06  James Livingston  <jrl@ids.org.au>
10976         * configure.ac: make the playback backend selection work correctly
10978         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10979         (rb_daap_src_class_init), (rb_daap_src_dispose),
10980         (rb_daap_src_change_state), (rb_daap_src_initialize):
10981         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10982         doesn't work for this class. Fixes bug 325934
10984 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10986         * configure.ac: Fix check for libnotify.
10988 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10990         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10991         Get name element for current lang and remove all name nodes
10992         from the XML tree.
10993         (get_playlist_name_from_xml): Try to get name element or
10994         fall back to name attribute.
10995         (rb_playlist_source_new_from_xml): Get name before turning over
10996         to sub-types for parsing so that we can remove name elements
10997         from the tree if necessary.
10999         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11000         Load default playlists file if per user playlists are not found.
11002         * data/playlists.xml.in: 
11003         * data/Makefile.am: 
11004         * data/.cvsignore: Add default set of playlists.
11005         Fixes #323004
11007 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11009         * shell/main.c: (main): Don't use the dbus interface to show the
11010         window if we're also going to use the bonobo interface.
11012 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11014         * shell/rb-history.c: (rb_history_set_playing):
11015         Allow setting the playing song to NULL.
11016         (rb_history_append), (rb_history_delete_link):
11017         Don't randomly change position when entries are added and removed,
11018         it confuses play orders.
11019         
11020         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11021         Random orders always have a next entry if the model is not empty.
11022         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11023         Go back to the start of the history if we're past its end.
11025         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11026         (rb_shuffle_play_order_go_next): Go back to the start of the history
11027         if we're past its end.
11028         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11029         the history if the current entry is removed.
11031         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11032         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11033         the play order when the query has finished. This wasted about 10% CPU
11034         while the query was running.
11036         Fixes #324641: assertion failures when the query model was changed
11037         such that the playing song was no longer present.
11039 2006-01-05  James Livingston  <jrl@ids.org.au>
11041         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11042         (rb_daap_src_dispose), (rb_daap_src_change_state):
11043         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11044         (rhythmdb_gda_finalize):
11045         * widgets/rb-cell-renderer-pixbuf.c:
11046         * widgets/rb-cell-renderer-rating.c:
11047         (rb_cell_renderer_rating_class_init),
11048         (rb_cell_renderer_rating_finalize):
11049         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11050         * widgets/rb-load-failure-dialog.c:
11051         (rb_load_failure_dialog_class_init),
11052         (rb_load_failure_dialog_finalize):
11053         * widgets/rb-rating.c: (rb_rating_class_init),
11054         (rb_rating_finalize):
11055         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11056         (rb_search_entry_finalize): use G_DEFINE_TYPE
11058         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11060 2006-01-05  James Livingston  <jrl@ids.org.au>
11062         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11064         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11065         the tarball.
11067         * shell/rb-history.c: (rb_history_class_init),
11068         (rb_history_finalize):
11069         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11070         (rb_playlist_manager_finalize):
11071         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11072         (rb_remote_init): use G_DEFINE_TYPE.
11074 2006-01-05  James Livingston  <jrl@ids.org.au>
11076         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11077         changes
11079 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11081         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11082         Disable burn action when source is not a playlist.
11083         Fixes #323578.
11085 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11087         Optionally use libnotify to display song change and other
11088         notifications, and provide an option to disable notifications.
11089         Fixes #320355 and innumerable informal complaints.
11091         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11092         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11093         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11094         (egg_tray_icon_notify):
11095         * widgets/eggtrayicon.h:
11096         * configure.ac:
11097         * shell/Makefile.am:
11098         Optionally use libnotify instead of eggnotificationbubble.
11100         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11101         (rb_tray_icon_constructor), 
11102         (rb_tray_icon_show_notifications_changed_cb),
11103         (rb_tray_icon_hide_notify_cb)
11104         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11105         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11106         EggNotificationBubble pointer to eggtrayicon.
11108         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11109         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11110         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11112 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11114         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11115         Request a minimum size for the progress bar so that
11116         the window doesn't shrink too small.
11118 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11120         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11121         (add_db_entry), (db_entry_deleted_cb):
11122         Don't track the number of songs currently present, track the next ID
11123         to assign.  Fixes potential ID conflict problems.
11124         
11125         (db_entry_changed_cb), (rb_daap_share_start_publish),
11126         (rb_daap_share_stop_publish):
11127         Watch for db entry changes, and when songs become non-hidden after
11128         a successful stat, add them to the mapping tables.   Fixes #325178,
11129         making the DAAP server usable again.
11131 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11132         
11133         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11134         (rb_statusbar_construct), (rb_statusbar_init),
11135         (rb_statusbar_finalize), (rb_statusbar_set_property),
11136         (rb_statusbar_get_property), (rb_statusbar_new),
11137         (rb_statusbar_sync_with_source):
11138         * shell/rb-statusbar.h:
11139         Remove visibility management code, stop watching for play order
11140         changes (status bar doesn't show play order any more), remove unused
11141         'player' property, and some other minor cleanup.
11142         
11143         * shell/rb-shell.c: (rb_shell_constructor),
11144         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11145         (rb_shell_sync_statusbar_visibility):
11146         Manage status bar visibility here rather than in the status bar
11147         itself, so we can take small mode into account.  Fixes #323589.
11149 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11151         * widgets/eggnotificationbubble.c: (draw_bubble):
11152         Move the bubble off the visible screen while setting up bevels.  
11153         Fixes #316810.
11155 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11157         * shell/rb-shell-player.c: (rb_shell_player_init),
11158         (rb_shell_player_finalize): 
11159         Remove unused structure members.
11160         
11161         (do_next_idle), (rb_shell_player_error):
11162         Only queue one call to do_next_idle, so we don't skip tracks if we get
11163         two errors for the same song.  Fixes #325216.
11165 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11167         * data/glade/podcast-feed-properties.glade,
11168          podcast/rb-feed-podcast-properties-dialog.c:
11169         (rb_feed_podcast_properties_dialog_init),
11170         (rb_feed_podcast_properties_dialog_update):
11171         Add 'last episode' field to the podcast feed properties dialog.
11173         * podcast/rb-feed-podcast-properties-dialog.c:
11174         (rb_feed_podcast_properties_dialog_update_last_update),
11175         (rb_feed_podcast_properties_dialog_update_last_episode),
11176          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11177         Use last-seen property for the time at which we last updated the feed,
11178         and post-time for the time the last episode was published.
11180         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11181         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11182         feed, use last-seen (which in 0.9.2 was the last post time).
11184         Fixes #323894.
11186 2006-01-01  James Livingston  <jrl@ids.org.au>
11188         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11190         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11191         year from the ipod database.
11193 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11195         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11196         Only set the pipeline back to NULL state for really uninteresting
11197         files.  This was causing deadlocks with various video files.
11198         Fixes #324912.
11200 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11202         * data/glade/song-info-multiple.glade:
11203         Add disc number label and field.
11204         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11205         (rb_song_info_constructor): 
11206         Handle widgets for disc number.
11207         (rb_song_info_sync_entries_multiple):
11208         Set disc number property on selected entries.
11209         Fixes #324777.
11211 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11213         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11214         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11215         Activate the default widget when enter is pressed in these dialogs.
11216         Fixes #322887.
11218 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11220         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11221         Use rb_shell_player_get_playing_entry, so we get the right entry
11222         when playing from the queue.  Fixes #325379.
11224 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11226         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11227         Include podcast posts with no publication date.  Typically
11228         seen in static collections rather than feeds.
11230 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11232         * shell/main.c: (main): Don't attempt to handle
11233         bonobo-only arguments if we couldn't get a bonobo
11234         client proxy.
11236 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11238         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11239         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11240         abort if daap sharing is disabled and then re-enabled.
11242 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11244         * podcast/rb-podcast-parse.c (rb_insert_item):
11245         Add debugging.
11246         (rb_podcast_parser_start_element): Support itunes:image.
11247         Add debugging.  Don't abuse the break statement.  Warn
11248         if state is unknown.
11249         (rb_podcast_parser_end_element): Add debugging.  Warn
11250         if state is unknown.
11251         (rb_podcast_parser_characters): Warn if state is unknown.
11253         Fixes parsing of feeds that use the itunes:image element.
11254         Fixes #324632
11256 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11258         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11259         (stations_view_drag_data_received_cb):
11260         Remove calls to rhythmdb_entry_lookup_by_location, as
11261         rb_iradio_source_add_station does that anyway.
11262         
11263         (rb_iradio_source_add_from_playlist):
11264         If the URL doesn't point to a playlist, add it as the stream
11265         URL instead.
11267 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11269         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11270         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11271         so we don't get an assertion failure.
11272         Fixes #325025.
11274 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11276         * shell/main.c: (load_uri_args): don't compile this in if
11277         neither bonobo nor dbus are enabled.  Fixes #324890.
11279 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11281         * sources/rb-audiocd-source.c:
11282         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11283         so it closes the device.
11285 2005-12-20  James Livingston  <jrl@ids.org.au>
11287         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11288         so that it doesn't spend forever getting stuck on the one file. Don't
11289         report errors for failing to change state on known non-audio files.
11291         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11292         audio sink creation if we can't create the gconfaudiosink. This lets
11293         it work with only gst-plugins-base on 0.10.
11295 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11297         * rhythmdb/rhythmdb-query-model.c:
11298         (rhythmdb_query_model_set_sort_order):
11299         Fix a tiny memory leak in the previous commit.
11301 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11303         * rhythmdb/rhythmdb-query-model.c:
11304         (rhythmdb_query_model_set_sort_order):
11305         Don't try to emit reorders for empty query models, since it doesn't
11306         achieve anything and it results in a few warnings.
11308 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11310         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11311         Make burn dialog non-resizable so that the expander can shrink.
11312         Fixes #308951.
11314 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11316         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11317         add entries without a location, rather than those with one.
11319 2005-12-19  James Livingston  <jrl@ids.org.au>
11321         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11322         the error isn't set.
11324 2005-12-19  James Livingston  <jrl@ids.org.au>
11325         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11326         add entries without a location. Fixes bug 324290.
11328         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11329         without a location.
11331         * shell/main.c: (main): don't crash if dbus initialisation fails
11332         without setting an error
11334 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11336         * sources/rb-library-source.c: Remove unused structure members
11337         (rb_library_source_do_query): Actually use the cached 'all' query.
11338         Fixes #324025.
11339         
11340 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11342         * sources/rb-audiocd-source.c 
11343         (rb_audiocd_get_cd_info): tab
11344         (rb_audiocd_scan_songs): Return boolean success/failure,
11345         fix error messages a bit.
11346         (metadata_cb): Don't crash if we have no tracks
11347         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11348         the CD.
11349         Fixes #324222.
11351 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11353         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11354         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11355         key.
11357         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11358         Fixes #324157
11360 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11362         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11363         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11364         (fullscreen_changed_cb): 
11365         * lib/rb-preferences.h: 
11366         * data/ui/rhythmbox-ui.xml: 
11367         * data/rhythmbox.schemas:
11368         Add fullscreen mode.
11370         Fixes #324075.
11372 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11374         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11375         configure.  It was not working with RPM.
11376         * data/Makefile.am: Switched dbus directory location to use
11377         datadir instead of variable that was not working.
11379 2005-12-13  James Livingston  <jrl@ids.org.au>
11381         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11383         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11384         the podcast browser work again. Closes bug 323856.
11386 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11388         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11389         Remove C99ism.
11391         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11392         (rb_utf_friendly_time):
11393         * lib/rb-cut-and-paste-code.h:
11395         * podcast/rb-feed-podcast-properties-dialog.c:
11396         (rb_feed_podcast_properties_dialog_parse_time):
11397         * podcast/rb-podcast-properties-dialog.c:
11398         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11399         to display the date in a more user friendly way.
11400         For example, if the feed was updated yesterday it will say:
11401         Last updated: Yesterday 10:00 AM
11402         instead of printing the date.
11404 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11406         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11407         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11408         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11409         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11410         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11411         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11412         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11413         (rb_podcast_parse_date): Add support for some real world
11414         date formats.
11415         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11416         (rb_podcast_parse_item_free): Style and no need to check
11417         for NULL before g_free.
11419         May fix #323742
11421 2005-12-12  James Livingston  <jrl@ids.org.au>
11423         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11424         with gstreamer 0.10, which replaced audioscale.
11426         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11427         function to free the SoupSession
11429         * shell/rb-source-header.c: (rb_source_header_set_property),
11430         (rb_source_header_disclosure_toggled_cb),
11431         (rb_source_header_view_browser_changed_cb),
11432         (rb_source_header_sync_control_state):
11433         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11434         * sources/rb-library-source.c: (rb_library_source_class_init):
11435         * sources/rb-source.c: (rb_source_class_init),
11436         (rb_source_get_status), (default_get_browser_key),
11437         (rb_source_get_browser_key), (rb_source_can_browse),
11438         (rb_source_notify_status_changed),
11439         (rb_source_notify_filter_changed):
11440         * sources/rb-source.h: seperate the enabling of browsers from the use
11441         of a gconf key.
11443 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11445         * data/glade/podcast-feed-properties.glade: 
11446         * data/glade/podcast-properties.glade: Use scrolled viewports
11447         for description text.  Fix regression of #320509.
11449 2005-12-11  James Livingston  <jrl@ids.org.au>
11451         * sources/rb-auto-playlist-source.c:
11452         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11453         (impl_search), (rb_auto_playlist_source_do_query),
11454         (rb_auto_playlist_source_set_query),
11455         (rb_auto_playlist_source_get_query): add support for the search box
11456         to automatic playlists.
11458         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11459         memory leak.
11461 2005-12-11  James Livingston  <jrl@ids.org.au>
11463         * NEWS: update NEWS
11465 2005-12-11  James Livingston  <jrl@ids.org.au>
11467         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11468         (rhythmdb_load), (monitor_subdirectory),
11469         (rhythmdb_sync_library_location):  start the library sync and
11470         monitoring in an idle callback.
11472 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11474         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11475         (rb_podcast_source_constructor): Remove unused pixbuf column.
11476         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11477         Use consistent style.
11479         Fixes #322961.
11481 2005-12-11  James Livingston  <jrl@ids.org.au>
11483         * rhythmdb/rhythmdb-property-model.c:
11484         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11485         (rhythmdb_property_model_insert),
11486         (rhythmdb_property_model_delete_prop):
11487         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11488         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11489         (destroy_tree_property):
11490         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11491         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11492         GMemChunks, they are crap and deprecated. Improves startup-time and
11493         memory usage slightly.
11495 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11497         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11498         Added license and website info.
11500         * MAINTAINERS.old: Add Colin.
11501         * MAINTAINERS: Add James.
11502         * AUTHORS: Put back in order.  Add extra space between name and email
11503         to make it easier to read.  Add James and jonathan.
11505         * widgets/rb-song-info.c (rb_song_info_init) 
11506         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11508 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11510         Play queue implementation. Closes bug 107787.
11512         * data/rhythmbox.schemas: add items for whether the queue should be
11513         displayed as a sidebar, and the height of the sourcelist if it is.
11515         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11516         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11517         add popups for queue as source and as sidebar.  We need a separate
11518         popup for the sidebar view because otherwise it's hard to tell which
11519         of the visible entry views the action came from.
11521         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11523         * po/POTFILES.in: Add new file
11525         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11526         Add helper function for deciding if a podcast episode is available for
11527         playback.
11529         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11530         reorder entries in the query model.
11531         (idle_process_update): Handle new update type used to insert entries
11532         at a particular position in the query model.
11533         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11534         parameter to specify the position (-1 meaning 'at the end').
11535         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11536         parameter.
11537         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11538         bad entry removal updates for entries that aren't in the model.
11539         (rhythmdb_query_model_emit_reorder): Add helper function for
11540         reordering rows.
11541         (rhythmdb_query_model_move_entry): New method for moving entries
11542         around in the model
11543         (rhythmdb_query_model_entry_added_cb),
11544         (rhythmdb_query_model_update_limited_entries),
11545         (rhythmdb_query_model_do_reorder),
11546         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11547         use rhythmdb_query_model_emit_reorder where appropriate.
11549         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11550         Don't allow the queue to be deleted.
11551         (handle_playlist_entry_cb): Update for method signature change
11552         (rb_playlist_manager_save_playlists_async),
11553         (rb_playlist_manager_get_playlists): Don't save the play queue,
11554         don't report it as a playlist.
11556         * shell/rb-play-order.c: Include queue play order in the list of
11557         available orders.
11559         * shell/rb-shell.c
11560         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11561         for access to the clipboard object.
11562         (rb_shell_constructor): Handle playing-from-queue signal to update the
11563         sourcelist display; add queue sidebar in to UI, listen for queue
11564         sidebar pane changes, and read initial settings from gconf.
11565         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11566         Only tell the sourcelist the source has changed if the new source is 
11567         not the queue, as we update the sourcelist differently in that case.
11568         (rb_shell_set_window_title): Only use the cached window title if the
11569         playing state was the same when it was created.
11570         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11571         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11572         sourcelist is hidden and the queue is shown as a source.
11573         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11574         mode, since it doesn't make any sense.
11575         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11576         too.
11577         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11578         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11579         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11580         playing from queue shown as sidebar.
11582         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11583         MusicProperties action here from rb-shell-player.c, since it acts like
11584         cut/copy/paste etc.
11585         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11586         (rb_shell_clipboard_get_property): new property for queue source.
11587         Watch for selection changes in the sidebar entry view as well as the
11588         normal one.
11589         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11590         actions and MusicProperties.
11591         (rb_shell_clipboard_cmd_queue_delete),
11592         (rb_shell_clipboard_cmd_add_song_to_queue),
11593         (rb_shell_clipboard_cmd_song_info),
11594         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11596         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11597         actually came from (could be the playing source, or the queue), add a 
11598         new play order object for the queue, add a property for the queue
11599         source, add a signal for when we switch between playing from the
11600         source and from the queue.
11601         (rb_shell_player_set_property): Handle playing directly from the
11602         queue so we stop once the queue is empty.  Create queue play order
11603         when we get the queue source.
11604         (rb_shell_player_get_playing_source): Return the source we're actually
11605         playing from.
11606         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11607         that's where it is.
11608         (rb_shell_player_set_playing_entry): Update the queue play order if 
11609         that's where we're playing from.
11610         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11611         queue into consideration too.
11612         (swap_playing_source): Helper function for switching the playing
11613         source.
11614         (rb_shell_player_do_previous): Check the queue, even though there's
11615         never a previous entry in it (yet), swap playing source if it changed.
11616         (rb_shell_player_do_next): Check the queue for entries to play before
11617         the normal play order, and swap playing source if it changed.
11618         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11619         entries to go to as well.
11620         (rb_shell_player_playpause): Check the queue before the selection and
11621         the play order, and swap playing source if it changed.
11622         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11623         (rb_shell_player_entry_activated_cb): Use
11624         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11625         activating queue entries work properly (move the activated entry to
11626         the start of the queue and then play it); if we were playing from the
11627         queue, clear its playing entry so it'll start again from the start
11628         after the activated entry.
11629         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11630         to rb-shell-clipboard.c
11631         (actually_set_playing_source): Add helper for updating the playing
11632         source.
11633         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11634         signal if we stop or start doing so; use actually_set_playing_source; 
11635         emit playing-source-changed if we actually did change source.
11637         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11638         rb_static_playlist_source_add_location.
11640         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11641         enqueueing of songs from the library.
11643         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11644         enqueueing of sonsg from playlists.
11645         (rb_playlist_source_entry_added_cb): Add extra parameter for
11646         rhythmdb_query_model_add_entry.
11647         
11648         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11649         Implement (can_)add_to_queue for this class.
11650         (rb_podcast_source_entry_activated): Use
11651         rb_podcast_manager_entry_downloaded.
11652         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11653         been downloaded is selected.
11654         (impl_add_to_queue): Only add downloaded entries to the queue.
11656         * sources/rb-source.{c,h}:
11657         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11658         methods.
11659         (rb_source_class_init): Don't allow enqueueing by default; implement 
11660         add_to_queue though.
11661         (default_add_to_queue): Add all selected entries to the queue.
11662         
11663         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11664         would be playing if there wasn't anything in the queue).
11665         (set_source_playing): Helper function for manipulating tree store.
11666         (rb_sourcelist_set_playing_source): Use set_source_playing
11667         (rb_sourcelist_preempt_playing_source): Update preempted source
11668         pointer, manipulate source states.
11670         * sources/rb-static-playlist-source.{c,h}:
11671         (rb_static_playlist_source_add_location_internal),
11672         (rb_static_playlist_source_add_location),
11673         (rb_static_playlist_source_add_entry): Add index parameter for
11674         specifying where in the playlist the new entry goes.
11675         (rb_static_playlist_source_new_from_xml), (impl_paste),
11676         (rb_static_playlist_source_add_list_uri),
11677         (rb_static_playlist_source_add_location_swapped),
11678         (rb_static_playlist_source_add_locations),
11679         (rb_static_playlist_source_non_entry_dropped),
11680         (rb_static_playlist_source_row_inserted):
11681         Handle new index parameter everywhere it appears
11682         (rb_static_playlist_source_move_entry): New method for moving entries
11683         around in the playlist.
11685         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11686         warnings when trying to scroll entry views that have never been
11687         displayed.
11689         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11690         play order that removes the old entry when switching to a new one.
11692         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11693         static playlist subclass that has a second entry view for the sidebar
11694         view using alternate formatting, and that displays the number of
11695         entries it contains in its source list entry.
11697 2005-12-10  James Livingston  <jrl@ids.org.au>
11699         * rhythmdb/rhythmdb-query-model.c:
11700         (rhythmdb_query_model_add_entry),
11701         (rhythmdb_query_model_drag_data_received):
11702         * sources/rb-static-playlist-source.c:
11703         (rb_static_playlist_source_non_entry_dropped): when things are
11704         dropped, ignore any blank lines in the list of uris. Make the source
11705         responsible for adding new items to the db.
11707         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11708         empty string.
11710 2005-12-10  James Livingston  <jrl@ids.org.au>
11712         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11713         (rb_shell_player_sync_buttons),
11714         (rb_shell_player_selection_changed_cb): watch for the
11715         "selection-changed" signal, so that the Song Properties get enabled.
11716         Closes bug 323694.
11718 2005-12-10  James Livingston  <jrl@ids.org.au>
11720         * data/rhythmbox.schemas: fix the gconf schema
11722 2005-12-10  James Livingston  <jrl@ids.org.au>
11724         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11725         the decoded-pad callback with gstreamer 0.8, it causes problems.
11727 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11729         Remove more junk from RBEntryView. Closes bug 323640.
11731         * widgets/rb-entry-view.{c,h}:
11732         Remove unused private structure members, replace 'playing' boolean
11733         with an enum (so we know if we're paused too), and store a pointer to
11734         the RBShellPlayer too.  
11735         (rb_entry_view_class_init), (rb_entry_view_set_property),
11736         (rb_entry_view_get_property):
11737         Remove 'entry-selected' and 'changed' signals and
11738         'playing-entry' property, add 'selection-changed' signal and
11739         'shell-player' and 'playing-state' properties.
11740         (rb_entry_view_new): Take the shell player object reference
11741         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11742         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11743         No longer needed, shell player is the place to get this information.
11744         (rb_entry_view_busy), (rb_entry_view_get_duration),
11745         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11746         (rb_entry_view_get_next_from_entry),
11747         (rb_entry_view_get_previous_from_entry),
11748         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11749         (rb_entry_view_get_num_entries):
11750         Removed, callers should go to the query model directly.
11751         (rb_entry_view_playing_song_changed): Update active query model, emit
11752         row changed signals to update pixbufs, and scroll to the playing song
11753         when the playing song changes, based on a signal from the shell
11754         player.
11755         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11756         (emit_entry_changed): Evil, removed.
11757         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11758         selection-changed signal.
11759         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11760         Remove selection lock.  It didn't work anyway.
11761         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11762         (rb_entry_view_emit_row_changed): Simple helper function to emit
11763         row-changed signals.
11765         * widgets/Makefile.am: Entry view needs headers from the shell/
11766         directory.
11767         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11769         scrolling the entry view to show the entry being displayed.
11770         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11771         'source' property so we can watch for query model changes.
11772         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11773         (rb_song_info_set_property): Watch for query model changes, don't
11774         watch for entry view changes.
11775         (rb_song_info_new): Take source as a parameter, use the source's entry
11776         view unless one was specifically supplied.
11777         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11778         Use query model rather than entry view to move between songs.
11779         (rb_song_info_update_buttons): Use query model.
11780         (rb_song_info_query_model_changed_cb): Handle query model changes.
11782         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11783         Only one copy of the code to enable/disable the CD burning action
11784         (rb_playlist_manager_playlist_entries_changed):
11785         Use the query model to get the number of entries, not the entry view.
11787         * shell/rb-play-order-random-by-age-and-rating.c,
11788         shell/rb-play-order-random-by-age.c,
11789         shell/rb-play-order-random-by-rating.c,
11790         shell/rb-play-order-random-equal-weights.c:
11791         Use G_DEFINE_TYPE
11793         * shell/rb-shell-player.{c,h}:
11794         Remove a few unused entries from the structure.
11795         (rb_shell_player_set_property):
11796         Don't use the 'changed' signal on the entry view (it's evil)
11797         (rb_shell_player_have_first): No longer needed
11798         (rb_shell_player_play): Just tell the entry view it's playing
11799         (rb_shell_player_playpause): Tell the entry view it's paused
11800         when pausing.
11801         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11802         (rb_shell_player_property_row_activated_cb):
11803         Get the entry to play using the query model, not the entry view.
11804         (rb_shell_player_sync_buttons): Update entry view state while we're
11805         here.
11806         (rb_shell_player_set_playing_source_internal): Update entry view state
11807         (rb_shell_player_get_playing): Ask the entry view, not the player.
11808         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11809         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11810         the window title and tray icon tooltip.
11811         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11813         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11814         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11815         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11816         view constructor, pass the source in to the song info widget
11817         constructor.
11819         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11820         Use 'selection-changed' instead of 'changed', since that's what the
11821         clipboard cares about.
11822         (rb_shell_clipboard_set_source): Don't die if source == NULL
11824 2005-12-10  James Livingston  <jrl@ids.org.au>
11826         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11827         * sources/rb-playlist-source-recorder.c:
11828         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11829         stuff not use the deprecated API when compiled against 2.13
11831 2005-12-10  James Livingston  <jrl@ids.org.au>
11833         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11835         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11836         problem where the genre tag was getting set to the artist. Closes bug
11837         323642.
11839 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11841         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11842         Return NULL if can't get first iter.
11844         Fixes #323663
11846 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11848         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11849         updated rb_station_properties_dialog_new API.
11850         (rb_iradio_source_add_from_playlist): New public function.
11851         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11853         * shell/rb-shell.c (new_station_location_added): Handle
11854         iradio location added signal.
11855         (rb_shell_cmd_new_station): Use new iradio station dialog.
11857         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11858         (rb_station_properties_dialog_new): Don't squeeze new
11859         station functionality into this class.
11860         (rb_station_properties_dialog_response_cb): ditto.
11861         (rb_station_properties_dialog_update_title): Make
11862         consistent with other properties dialogs.
11863         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11865         * iradio/rb-new-station-dialog.[ch]: 
11866         * iradio/Makefile.am: Add new station dialog.
11868         * data/glade/station-new.glade: New file based on
11869         new podcast feed dialog.
11870         * data/glade/station-properties.glade: Updated to
11871         be consistent with song properties dialog.
11873         Fixes #323306.
11875 2005-12-10  James Livingston  <jrl@ids.org.au>
11877         patch by: Ståle Lyngaas <staale@lyngaas.com>
11879         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11880         submit songs longer than 30 minutes. Fixes bug 323639.
11882 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11884         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11885         async save function.
11886         (rb_shell_finalize): Remove save timeout sources.  Reorder
11887         steps a bit to make saving db and playlists a bit more
11888         failsafe in case something goes wrong later.
11889         (rb_shell_constructor): Keep track of save timeout source.
11890         (add_to_library_response_cb): Keep track of db save timeout source.
11892         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11893         g_atomic.
11894         (rb_playlist_manager_shutdown): New function to shutdown
11895         threads etc. before exit.
11896         (rb_playlist_manager_finalize): Moved handling outstanding
11897         threads stuff to shutdown since if there are outstanding threads
11898         they hold a ref and finalize is never called.
11899         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11900         of signal which may be required for sync save.
11901         (rb_playlist_manager_save_playlists_async): Renamed old
11902         save_playlists to save_playlists_async.  Use g_atomic.
11903         (rb_playlist_manager_save_playlists): New function to
11904         perform sync saves (symmetric with RhythmDB API).
11905         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11907         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11908         Style consistency anality.
11909         (rhythmdb_finalize): Remove save timeout source.
11910         (rhythmdb_set_property, rhythmdb_get_property) 
11911         (rhythmdb_process_events): More anality and keep track of
11912         save timeout source.
11913         (action_thread_main): No need to call g_thread_exit.
11914         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11915         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11916         (write_encoded_gvalue, read_encoded_property): La la la.
11918         Fixes #322940.
11920 2005-12-10  James Livingston  <jrl@ids.org.au>
11922         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11923         non-audio files.
11925 2005-12-10  James Livingston  <jrl@ids.org.au>
11927         * Makefile.am:
11928         * configure.ac: remove the rpm spec files, so that automake works.
11929         oops
11931         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11932         locking issue
11934 2005-12-09  James Livingston  <jrl@ids.org.au>
11936         * debian/: try to get cvs to actually remove the files
11938 2005-12-09  James Livingston  <jrl@ids.org.au>
11940         * rhythmbox.spec.in:
11941         * debian/: remove the distro package stuff, they are *really* old, and
11942         downstream manage it anyway.
11944 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11946         Rework play orders to work off query models rather than 
11947         entry views, and track the playing entry themselves rather
11948         than relying on the entry view to do it.  This makes the entry
11949         view mostly just a widget. Closes bug 323612.
11951         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11952         Use query model rather than entry view to get the number
11953         of entries in playlists.
11955         * rhythmdb/rhythmdb-query-model.{c.h}
11956         (rhythmdb_query_model_tree_path_to_entry),
11957         (rhythmdb_query_model_iter_to_entry),
11958         (rhythmdb_query_model_get_next_from_entry),
11959         (rhythmdb_query_model_get_previous_from_entry):
11960         New utility functions for iterating through query models.
11961         (rhythmdb_query_model_compute_status_normal):
11962         Have one copy of this code, not four.
11964         * shell/rb-play-order.{c,h}:
11965         Add signals for when next/previous availability changes, and
11966         when the playing entry is removed, and add a property for
11967         the current playing entry.  Add gtkdoc comments too.
11968         (rb_play_order_class_init): Add new property and signals.
11969         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11970         (rb_play_orer_query_model_changed_cb),
11971         (rb_play_order_query_model_changed): 
11972         Use query model rather than entry view.
11973         (rb_play_order_set_property), (rb_play_order_get_property):
11974         Handle new playing-entry property.  Call playing_entry_changed virtual
11975         method so subclasses can do any processing required.
11976         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11977         (rb_play_order_set_playing_entry):
11978         Just use the playing-entry property.
11979         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11980         Utility methods for subclasses.
11981         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11982         Update next/previous availability, check if the playing entry
11983         was removed.
11984         (default_playing_entry_removed):
11985         Keep the current behaviour of just stopping playback when the 
11986         playing entry is deleted.
11987         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11988         these for subclasses that don't have go_next/go_previous, but do
11989         have get_next/get_previous.
11990         (rb_play_order_update_have_next_previous): Emit signal if the
11991         availability of next/previous entries has changed.
11993         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11994         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11995         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11996         methods.
11997         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11998         on the last song in the shuffled order, go back to the start. This
11999         means if you press 'play' again you'll get the whole order again, not
12000         just one song.
12002         * shell/rb-shell-player.c:
12003         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12004         play order rather than the entry view.
12005         (rb_shell_player_set_property): Update the play order when the
12006         selected source changes and we aren't playing anything.
12007         (rb_shell_player_sync_play_order): Copy the playing entry across to
12008         the new play order so playback continues from the same song, and watch
12009         for updates to have_next/have_previous.
12010         (rb_shell_player_play_order_update_cb): Enable/disable the
12011         next/previous actions when next/previous entry availability changes.
12012         (rb_shell_player_jump_to_current): Just use the play order's idea of
12013         what's playing, not the entry view's; if not playing anything, clear
12014         the selection, so when a playlist ends and you hit play again, it'll
12015         start at the start rather than the end.
12016         (rb_shell_player_do_previous): restructure a bit.
12017         (rb_shell_player_do_next): restructure, jump to new playing entry in
12018         an idle handler instead of directly.
12019         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12020         song if there is one.
12021         (rb_shell_player_playpause): Jump to playing song, don't update the
12022         play order if we got the song from the selection.
12023         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12024         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12025         looks after next/previous actions now.  Don't break if called while
12026         there is no selected source.
12027         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12028         (rb_shell_player_set_playing_source_internal),
12029         (rb_shell_player_error): No need to track the attempted playing entry
12030         any more, since the play order does that.
12032         * shell/rb-shell.c:
12033         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12034         rb_shell_player_get_playing_entry rather than going through the entry
12035         view.
12037         * shell/rb-statusbar.c (rb_statusbar_set_property),
12038         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12039         than the entry view for status bar text changes.
12040         (rb_statusbar_sync_status): Ask the query model directly
12042         * sources/rb-source.{c}: Add query model property.
12043         (default_get_status): Get status text from query model, should be
12044         suitable for most sources.
12045         (rb_source_set_property): Listen for changes to the query model 
12046         to update the status text.
12047         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12048         (idle_emit_status_changed): Emit status-changed signals when query
12049         model changes. 
12051         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12052         (impl_get_status): Not needed, RBSource does this now
12053         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12054         Update RBSource's query model reference.
12056         * sources/rb-playlist-source.c:
12057         Remove query-model property, since RBSource has one now
12058         (impl_get_status): Not needed, RBSource does this now
12059         (rb_playlist_source_row_deleted): Use query model iterator helper
12060         function.
12061         (rb_playlist_source_set_query_model): Update RBSource's query model
12062         reference too.
12064         * sources/rb-iradio-source.c:
12065         (impl_get_status): Ask the query model directly.
12066         (rb_iradio_source_do_query): Update RBSource's query model reference
12067         when we create a new query.
12069         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12070         Use query model rather than entry view.
12072         * widgets/rb-entry-view.{c,h}: 
12073         Remove playing_entry_deleted signal (now in play order).
12074         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12075          as RhythmDBQueryModel has equivalent helper functions.
12076         (rb_entry_view_*): Use query model helpers instead of the above two
12077         functions.
12079 2005-12-09  James Livingston  <jrl@ids.org.au>
12081         * configure.ac:
12082         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12083         (rb_recorder_enabled):
12084         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12085         * sources/rb-playlist-source-recorder.c:
12086         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12087         whether libnautilusburn has the _drive_unref function, and if so use
12088         it. Stops it complaining about deprecated API.
12090 2005-12-09  James Livingston  <jrl@ids.org.au>
12092         * configure.ac: drop the minimum gstreamer version back down, it
12093         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12095 2005-12-09  James Livingston  <jrl@ids.org.au>
12097         * widgets/rb-song-info.c: (rb_song_info_class_init),
12098         (rb_song_info_show), (rb_song_info_constructor),
12099         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12100         (rb_song_info_forward_clicked_cb): save metadata changes when the
12101         Next/Previous buttons are pressed (closes bug 320952). use
12102         G_DEFINE_TYPE.
12104 2005-12-09  James Livingston  <jrl@ids.org.au>
12106         Patch by: <jonathan@kaolin.hn.org>
12108         * sources/rb-iradio-source.c:
12109         (stations_view_drag_data_received_cb):
12110         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12111         of urls. Fixes bug 323610.
12113 2005-12-09  James Livingston  <jrl@ids.org.au>
12115          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12116          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12118         * configure.ac:
12119         * metadata/rb-metadata-gst.c:
12120         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12121         (rb_player_construct), (rb_player_new):
12122         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12123         (rb_recorder_gst_signal_error), (pipe_message),
12124         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12125         (rb_recorder_new):
12126         * shell/main.c: (main):
12127         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12128         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12130 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12132         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12134         * shell/rb-playlist-manager.c:
12135           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12136           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12137           (rb_playlist_manager_set_automatic_playlist),
12138           (rb_playlist_manager_cmd_new_automatic_playlist),
12139           (rb_playlist_manager_cmd_edit_automatic_playlist):
12140            Use new playlist subclasses.
12141           (rb_playlist_manager_save_playlists): Only read the dirty flag
12142            for local playlists, minor pointless reformatting
12144         * sources/Makefile.am: add new files
12146         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12147           split lots of stuff out into two
12148           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12149           make RBPlaylistSource abstract, add virtual methods for showing a
12150           popup for the entry view and saving the playlist to XML.
12151           Other stuff is subclass-specific, or already virtual in RBSource.
12153         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12154           in one place, since they're used across three source files now
12156         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12157           Use new static playlist class
12159         * sources/rb-ipod-source.c: (add_rb_playlist):
12160           Use new static playlist class
12162         * sources/rb-static-playlist-source.{c,h},
12163         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12164         files.
12166         * po/POTFILES.in: add new files
12168 2005-12-07  James Livingston  <jrl@ids.org.au>
12170         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12171         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12172         metadata loads not attempt to write changes to disk.
12174 2005-12-07  James Livingston  <jrl@ids.org.au>
12176         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12178         * data/glade/song-info-multiple.glade:
12179         * widgets/rb-song-info.c: (rb_song_info_constructor),
12180         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12181         multiple songs at once.
12183 2005-12-06  James Livingston  <jrl@ids.org.au>
12185         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12186         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12188 2005-12-06  James Livingston  <jrl@ids.org.au>
12190         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12191         names rather than adding a horizontal scroll bar.
12193 2005-12-06  James Livingston  <jrl@ids.org.au>
12195         * rhythmdb/rhythmdb-query-model.c:
12196         (rhythmdb_query_model_update_limited_entries),
12197         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12198         messages
12200         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12201         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12202         always hide rather than remove DB entries, which will make RB not lose
12203         information when tag editing happens or people move files to trash and
12204         then change their mind. Also fix some races where the monitoring code
12205         would notice the temporary files generated by saving metadata.
12207 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12209         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12210         Hide internals and add tooltips.
12211         (rb_song_display_box_size_allocate): Hide internals.
12212         (sanitize_string, info_url): Copied from rb-header.
12213         (rb_song_display_box_sync): New public function.
12215         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12216         (rb_header_init): Use a separate row for the seek bar.
12217         (rb_header_finalize): Don't unref widgets.
12218         (rb_header_sync): Use rb_song_display_box_sync.
12219         (rb_header_set_urldata)
12220         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12221         (rb_header_set_show_position_slider): Set visibility of seek bar.
12222         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12223         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12225         * shell/rb-statusbar.c (rb_statusbar_init)
12226         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12228         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12229         (rb_shell_constructor): Remove hseparator.  Monitor
12230         toolbar visibility settings.  Add toolbar.  Add
12231         volume button to toolbar.  Add tooltips for volume button.
12232         (rb_shell_view_toolbar_changed_cb) 
12233         (rb_shell_sync_toolbar_visibility)
12234         (toolbar_visibility_changed_cb): Set visibility of
12235         toolbar.
12236         (rb_shell_sync_smalldisplay): Set the toolbar style to
12237         icons only when in small display mode.
12238         (rb_shell_volume_widget_changed_cb): Save volume setting.
12240         * shell/rb-shell-player.c (rb_shell_player_constructor):
12241         Remove pause and stop actions.  Make play action "important"
12242         so that text is visible in horizontal toolbar position.
12243         Remove control buttons.
12244         (rb_shell_player_init) 
12245         (rb_shell_player_sync_song_position_slider_visibility):
12246         Set visbibility of seek bar.
12247         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12248         Make play action a toggle.
12249         (rb_shell_player_sync_volume): Volume control moved
12250         to player.
12251         (gconf_song_position_slider_visibility_changed):
12252         Set visbibility of seek bar.
12253         (rb_shell_player_sync_buttons):
12254         Set sensitivity of actions instead of buttons.
12255         (rb_shell_player_playing_changed_cb): Add callback
12256         for player notify::playing changes.
12258         * lib/rb-preferences.h: Add hide toolbar and seek
12259         bar key names.
12261         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12262         seek bar menu items.  Remove pause and stop actions
12263         from the control menu.  Add a toolbar.
12265         * data/rhythmbox.schemas: Add toolbar_hidden
12266         song_position_slider_hidden keys.
12268         Patch by: James Livingston  <jrl@ids.org.au>
12269                   William Jon McCann  <mccann@jhu.edu>
12270         Fixes #316238.
12272 2005-12-05  James Livingston  <jrl@ids.org.au>
12274         * data/glade/library-prefs.glade:
12275         * data/rhythmbox.schemas:
12276         * lib/rb-preferences.h:
12277         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12278         (rhythmdb_sync_library_location):
12279         * sources/rb-library-source.c: (rb_library_source_class_init),
12280         (rb_library_source_finalize), (rb_library_source_constructor),
12281         (impl_get_config_widget), (rb_library_source_preferences_sync),
12282         (rb_library_source_watch_toggled_cb): allow people to disable library
12283         monitoring, because with nothing set the file chooser button selects
12284         the Home folder (and hence that will get monitored).
12286 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12288         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12289         attempt to fix problem with RSS parsing showing invalid feed types.
12290         Fixes bug 323153
12292 2005-12-04  James Livingston  <jrl@ids.org.au>
12294         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12295         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12296         importing a remote directory not block the UI.
12298 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12300         * data/glade/podcast-feed-properties.glade:
12301         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12303 2005-12-04  James Livingston  <jrl@ids.org.au>
12305         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12307         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12308         to && to fix a mistake in the earlier podcast patch.
12310 2005-12-03  James Livingston  <jrl@ids.org.au>
12312         * data/glade/podcast-new.glade:
12313         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12314         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12316         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12317         GValue, which stops occasional errors.
12319         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12320         compile issue.
12322 2005-12-03  James Livingston  <jrl@ids.org.au>
12324         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12326         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12327         crasher with some podcasts feeds.
12329 2005-12-03  James Livingston  <jrl@ids.org.au>
12331         * data/rhythmbox.schemas: fix the gconf schema
12333 2005-12-03  James Livingston  <jrl@ids.org.au>
12335         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12336         add a selection timeout to the sourcelist. This lets you hold a track
12337         over the playlist source, and then have the view switch so you can
12338         insert the track in the middle of the playlist. Closes bug 323044.
12340         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12341         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12342         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12343         (rb_tree_dnd_add_drag_dest_support):
12344         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12345         timeout.
12347         * sources/rb-sourcelist-model.c:
12348         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12349         the source list.
12351 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12353         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12354         links, so that the text doesn't touch the button
12356 2005-12-02  James Livingston  <jrl@ids.org.au>
12358         Add full support for gnome-vfs remote files. Closes bug 140355.
12360         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12361         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12362         for authentication information from the user doesn't block the UI.
12364         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12366         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12367         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12368         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12369         (rhythmdb_process_stat_event), (emit_load_error_idle),
12370         (rhythmdb_process_metadata_load),
12371         (rhythmdb_process_queued_entry_set_event),
12372         (rhythmdb_process_file_created_or_modified),
12373         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12374         (queue_stat_uri), (add_thread_main),
12375         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12376         (rhythmdb_load), (rhythmdb_save_thread_main),
12377         (threadsafe_entry_set), (rhythmdb_query_internal),
12378         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12379         (rhythmdb_do_full_query_internal),
12380         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12381         (rhythmdb_volume_unmounted_cb),
12382         (rhythmdb_check_changed_file): trivial changes to support the
12383         asynchronous stats.
12385         * shell/main.c: (main): activate the authentication manager.
12387         * shell/rb-playlist-manager.c:
12388         (rb_playlist_manager_cmd_load_playlist),
12389         (rb_playlist_manager_cmd_save_playlist):
12390         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12391         (rb_shell_cmd_add_file_to_library):
12392         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12393         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12394         remote files.
12396 2005-12-02  James Livingston  <jrl@ids.org.au>
12398         * shell/rb-playlist-manager.c: makes playlist menu items use the
12399         elipses correctly. Fixes bug 322283.
12401 2005-12-02  James Livingston  <jrl@ids.org.au>
12403         * shell/rb-playlist-manager.c:
12404         (rb_playlist_manager_load_playlists): fix silly mistake
12406 2005-12-02  James Livingston  <jrl@ids.org.au>
12408         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12409         print out metadata-write unless --debug was passed.
12411         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12412         * shell/rb-playlist-manager.c:
12413         (rb_playlist_manager_load_playlists): block writes to disk if they are
12414         still being loaded.
12416 2005-12-02  James Livingston  <jrl@ids.org.au>
12418         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12419         ctrl-T, because Ctrl-D is used by "small mode"
12421 2005-12-02  James Livingston  <jrl@ids.org.au>
12423         * shell/rb-shell-preferences.c:
12424         (rb_shell_preferences_append_view_page):
12425         * sources/rb-library-source.c: (impl_get_config_widget):
12426         * sources/rb-podcast-source.c: (impl_get_config_widget):
12427         * sources/rb-source.c: (rb_source_get_config_widget):
12428         * sources/rb-source.h: Make the preference actually work.
12430         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12431         if Rhythmbox is being run for the first time.
12433 2005-12-02  James Livingston  <jrl@ids.org.au>
12435         Add support for Rhythmbox to watch your library, and automatically add
12436         new tracks. Fixes bug 160159.
12438         * data/glade/library-prefs.glade: add "library location" preference
12439         * data/rhythmbox.schemas: add gconf key for the library location
12441         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12442         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12443         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12444         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12445         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12446         (rhythmdb_load_thread_main), (rhythmdb_load),
12447         (monitor_subdirectory), (monitor_library_directory),
12448         (monitor_entry_file), (rhythmdb_sync_library_location),
12449         (library_location_changed_cb), (rhythmdb_check_changed_file),
12450         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12451         specifiec in the gconf key for new additions. Also fix monitoring code
12452         so that it works properly, and notices deletions.
12454         * lib/rb-preferences.h:
12455         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12456         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12457         * shell/rb-audioscrobbler.h:
12458         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12459         (rb_shell_preferences_append_view_page),
12460         (rb_shell_preferences_new):
12461         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12462         it's preferences pane, so that we don't need #ifdef's through
12463         rb-shell-preferences.
12465         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12466         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12467         "preferences" property, so that sources can acccess it. This is needed
12468         because the library location pref needs to take effect when the window
12469         is closed.
12471         * sources/rb-library-source.c:
12472         (rb_library_source_library_location_changed),
12473         (rb_library_source_dispose), (rb_library_source_finalize),
12474         (rb_library_source_constructor), (impl_get_config_widget),
12475         (rb_library_source_preferences_sync),
12476         (rb_library_source_process_library_location_change),
12477         (rb_library_source_prefs_update),
12478         (rb_library_source_process_library_handle_selection),
12479         (rb_library_source_library_location_cb): set up and control the
12480         "library location" preference.
12482         * sources/rb-audiocd-source.c:(rb_source_class_init):
12483         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12484         code.
12486 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12488         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12489         (rb_feed_podcast_properties_dialog_update_title): 
12490         * data/glade/podcast-feed-properties.glade:
12491         Make the feed properties dialog consistent with the podcast
12492         properties dialog.
12494 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12496         * metadata/.cvsignore: 
12497         * po/.cvsignore: 
12498         * podcast/.cvsignore: Updated.
12500         * shell/main.c (main): Support DBus 0.6 flags.
12502 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12504         * data/ui/rhythmbox-ui.xml:
12505         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12506         (rhythmbd_entry_move_to_trash_set_error),
12507         (rhythmdb_entry_move_to_trash):
12508         * rhythmdb/rhythmdb.h:
12509         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12510         (rb_shell_clipboard_cmd_delete),
12511         (rb_shell_clipboard_cmd_move_to_trash):
12512         * sources/rb-library-source.c: (rb_library_source_class_init),
12513         (impl_delete), (impl_move_to_trash):
12514         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12515         (impl_delete), (impl_move_to_trash):
12516         * sources/rb-removable-media-source.c:
12517         (rb_removable_media_source_class_init):
12518         * sources/rb-source.c: (rb_source_class_init),
12519         (rb_source_can_move_to_trash), (rb_source_delete),
12520         (rb_source_move_to_trash):
12521         * sources/rb-source.h:
12522         Add move_to_trash member for the sources, implement move to trash for
12523         the library and playlists
12524         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12525         local files to the trash, and deleting them from the database
12526         (Closes: #315389)
12528 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12530         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12531         (rb_tray_icon_init, rb_tray_icon_finalize): 
12532         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12533         (rb_statusbar_init, rb_statusbar_finalize): 
12534         * shell/rb-source-header.c (rb_source_header_class_init) 
12535         (rb_source_header_init, rb_source_header_finalize): 
12536         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12537         (rb_shell_finalize): 
12538         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12539         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12540         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12541         (rb_shell_player_init, rb_shell_player_finalize): 
12542         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12543         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12544         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12545         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12546         * shell/rb-play-order.c (rb_play_order_class_init) 
12547         (rb_play_order_init, rb_play_order_finalize): 
12548         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12549         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12550         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12551         (rb_random_play_order_init, rb_random_play_order_finalize): 
12552         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12553         (rb_history_finalize): 
12554         * shell/rb-commander.c (rb_commander_class_init) 
12555         (rb_commander_init, rb_commander_finalize): 
12556         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12557         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12558         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12559         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12560         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12561         (rb_podcast_properties_dialog_init) 
12562         (rb_podcast_properties_dialog_finalize): 
12563         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12564         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12565         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12566         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12567         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12568         (rb_feed_podcast_properties_dialog_init) 
12569         (rb_feed_podcast_properties_dialog_finalize): 
12570         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12571         (rb_metadata_init, rb_metadata_finalize): 
12572         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12573         (rb_station_properties_dialog_init) 
12574         (rb_station_properties_dialog_finalize): 
12575         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12576         (rb_daap_share_init, rb_daap_share_dispose): 
12578         Use g_type_class_add_private in all classes. Closes bug 313688.
12579         
12580 2005-11-30  James Livingston  <jrl@ids.org.au>
12582         patch by: William Jon McCann <mccann@jhu.edu> to use
12583         g_type_class_add_private in all classes. Closes bug 313688.
12585         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12586         (rb_thread_finalize):
12587         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12588         (rb_player_finalize):
12589         * rhythmdb/rhythmdb-property-model.c:
12590         (rhythmdb_property_model_class_init),
12591         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12592         * rhythmdb/rhythmdb-query-model.c:
12593         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12594         (rhythmdb_query_model_finalize):
12595         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12596         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12597         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12598         (rhythmdb_finalize):
12599         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12600         (rb_daap_source_init), (rb_daap_source_dispose):
12601         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12602         (rb_iradio_source_init), (rb_iradio_source_finalize):
12603         * sources/rb-library-source.c: (rb_library_source_class_init),
12604         (rb_library_source_init), (rb_library_source_finalize):
12605         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12606         (rb_playlist_source_init), (rb_playlist_source_dispose):
12607         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12608         (rb_podcast_source_init), (rb_podcast_source_finalize):
12609         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12610         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12611         * sources/rb-sourcelist-model.h:
12612         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12613         (rb_sourcelist_init), (rb_sourcelist_finalize):
12614         * sources/rb-sourcelist.h:
12615         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12616         * widgets/rb-cell-renderer-rating.c:
12617         (rb_cell_renderer_rating_init),
12618         (rb_cell_renderer_rating_class_init),
12619         (rb_cell_renderer_rating_finalize):
12620         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12621         (rb_druid_finalize):
12622         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12623         (rb_entry_view_init), (rb_entry_view_finalize):
12624         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12625         (rb_header_finalize):
12626         * widgets/rb-load-failure-dialog.c:
12627         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12628         (rb_load_failure_dialog_finalize):
12629         * widgets/rb-property-view.c: (rb_property_view_class_init),
12630         (rb_property_view_init), (rb_property_view_finalize):
12631         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12632         (rb_rating_finalize):
12633         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12634         (rb_search_entry_init), (rb_search_entry_finalize):
12635         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12636         (rb_simple_view_init), (rb_simple_view_finalize):
12637         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12638         (rb_song_display_box_init), (rb_song_display_box_finalize):
12639         * widgets/rb-song-info.c: (rb_song_info_class_init),
12640         (rb_song_info_init), (rb_song_info_finalize):
12641         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12642         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12644 2005-11-30  James Livingston  <jrl@ids.org.au>
12646         * iradio/rb-station-properties-dialog.c:
12647         (rb_station_properties_dialog_init),
12648         (rb_station_properties_dialog_new):
12649         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12650         * lib/rb-glade-helpers.h:
12651         * podcast/rb-feed-podcast-properties-dialog.c:
12652         (rb_feed_podcast_properties_dialog_init),
12653         (rb_feed_podcast_properties_dialog_new):
12654         * podcast/rb-podcast-properties-dialog.c:
12655         (rb_podcast_properties_dialog_init),
12656         (rb_podcast_properties_dialog_new):
12657         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12658         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12659         * sources/rb-library-source.c: (impl_get_config_widget):
12660         * sources/rb-playlist-source-recorder.c:
12661         (rb_playlist_source_recorder_init):
12662         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12663         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12664         in rb-glade-helpers, rather than having eight implementation
12665         throughout the code.
12667 2005-11-30  James Livingston  <jrl@ids.org.au>
12669         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12670         * lib/rb-util.h:
12671         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12672         move the duration->string function into rb-utils, as it gets used in a
12673         few places.
12675         patch by: William Jon McCann <mccann@jhu.edu>
12677         * data/glade/podcast-properties.glade:
12678         * podcast/rb-podcast-properties-dialog.c:
12679         (rb_podcast_properties_dialog_init),
12680         (rb_podcast_properties_dialog_update),
12681         (rb_podcast_properties_dialog_update_title),
12682         (rb_podcast_properties_dialog_update_feed),
12683         (rb_podcast_properties_dialog_update_duration),
12684         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12685         info dialog look more like the song info dialog. Use the same "Feed"
12686         value that is displayed in the treeview (ie. the album field), displays
12687         the duration, uses units in the bitrate field, and sort the fields in
12688         the same order.
12690 2005-11-29  James Livingston  <jrl@ids.org.au>
12692         * rhythmdb/rhythmdb-marshal.list:
12693         * rhythmdb/rhythmdb.h:
12694         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12695         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12696         (entry_to_rb_metadata), (emit_save_error_idle),
12697         (action_thread_main): emit error signal when metadata write fails.
12699         * shell/rb-shell.c: (rb_shell_constructor),
12700         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12701         "metadata save" error and display it to the user.
12703 2005-11-29  James Livingston  <jrl@ids.org.au>
12705         * data/ui/rhythmbox-ui.xml:
12706         * sources/rb-podcast-source.c:
12707         (rb_podcast_source_songs_show_popup_cb),
12708         (rb_podcast_source_cmd_download_post),
12709         (rb_podcast_source_cmd_cancel_download): split download and cancel
12710         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12711         321653.
12713 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12715         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12716         title on alert dialogs per the HIG.
12718         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12719         the term Burn.
12720         (free_song_list): Routine to free song list.
12721         (rb_playlist_source_recorder_finalize): Use free_song_list.
12722         (rb_playlist_source_recorder_add_from_model): Return FALSE
12723         if unable to add all songs.  Check that duration of all
12724         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12725         Fixes #321753.
12727         * sources/rb-playlist-source-recorder.c (check_media_length)
12728         (rb_playlist_source_recorder_start): Only check the duration
12729         and current media if the playlist length is longer than a
12730         standard CD (74 min).  Otherwise, just let the Recorder do the
12731         check.
12732         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12733         drive at init.
12734         (rb_recorder_set_device): Don't leak drives.
12735         (rb_recorder_get_media_length): Use drive that was already set.
12736         (rb_recorder_burn): Let the recorder handle checking media type/size.
12737         Fixes bug 321754.
12739 2005-11-29  James Livingston  <jrl@ids.org.au>
12741         * rhythmdb/rhythmdb-query-model.c:
12742         (rhythmdb_query_model_set_sort_order):
12743         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12744         emitting the tree-model "resorted" signal.
12746         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12747         (rb_entry_view_finalize), (rb_entry_view_set_property),
12748         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12749         * widgets/rb-entry-view.h: add a function to resort the entry view,
12750         using the above function.
12752         * sources/rb-iradio-source.c:
12753         (rb_iradio_source_songs_view_sort_order_changed_cb):
12754         * sources/rb-library-source.c: (rb_library_source_finalize),
12755         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12756         * sources/rb-playlist-source.c:
12757         (rb_playlist_source_songs_sort_order_changed_cb):
12758         * sources/rb-podcast-source.c:
12759         (rb_podcast_source_posts_view_sort_order_changed_cb),
12760         (rb_podcast_source_do_query): use the above function instead of
12761         re-creating the query model. This makes changing the sorting an order
12762         of magnitude faster, as it uses a single resorted signal rather than
12763         deleting and re-adding everything (which emits 2N signals). Closes bug
12764         315389.
12766 2005-11-29  James Livingston  <jrl@ids.org.au>
12768         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12769         autosizing, which results in large speedups. Closes bug 312122.
12771         * po/ja.po: change the date format, so that it is a constant width
12773         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12774         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12775         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12776         (rb_entry_view_constructor): make columns use fixed widths,
12777         disable column autosizing, and enable fixed-height mode.
12779         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12780         (rb_entry_view_get_time_date_column_sample):
12781         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12782         and get the canonical date format for the locale.
12784 ============ Version 0.9.2
12786 2005-11-28  James Livingston  <jrl@ids.org.au>
12788         * configure.ac: bump version to 0.9.2
12789         * NEWS: update with changes for 0.9.2
12791 2005-11-28  James Livingston  <jrl@ids.org.au>
12793         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12795         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12796         Disable saving, renaming and delting for DAAP playlists.
12797         Fixes bug 322627.
12799 2005-11-28  James Livingston  <jrl@ids.org.au>
12801         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12802         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12803         prevent bug 322619.
12805         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12806         * sources/rb-removable-media-source.c:
12807         (rb_removable_media_source_class_init): fix ipod browser visibility
12808         problem.
12810 2005-11-28  James Livingston  <jrl@ids.org.au>
12812         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12813         Avahi 0.6 support actually work. Fixes bug 322519.
12815 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12817         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12818         avahi is specified in --with-mdns
12820 2005-11-27  James Livingston  <jrl@ids.org.au>
12822         patch by: Bastien Nocera <hadess@hadess.net>
12824         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12825         not the private one. Fixes bug 322485.
12827 2005-11-26  James Livingston  <jrl@ids.org.au>
12829         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12830         Avahi 0.6, as well as 0.5.
12832         * configure.ac:
12833         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12834         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12835         (add_service):
12837 2005-11-25  James Livingston  <jrl@ids.org.au>
12839         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12840         321926.
12842 2005-11-25  James Livingston  <jrl@ids.org.au>
12844         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12845         correct type for checking the date against 0. Stops a warning when
12846         saving metadata.
12848 2005-11-25  James Livingston  <jrl@ids.org.au>
12850         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12851         adjustment to be inside the element's limits. Without this songs that
12852         have large ReplayGain values will recieve no increase because they are
12853         outside the acceptable range, causing them to remain quiet.
12855 2005-11-25  James Livingston  <jrl@ids.org.au>
12857         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12858         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12859         * sources/rb-ipod-source.c:
12860         * sources/rb-source.h:
12861         * sources/rb-library-source.h:
12862         * sources/rb-library-source.c: (rb_library_source_class_init),
12863         (rb_library_source_constructor),
12864         (rb_library_source_has_first_added_column),
12865         (rb_library_source_has_drop_support):
12866         * sources/rb-removable-media-source.c:
12867         (rb_removable_media_source_class_init): Make library-derived sources
12868         not show the Date Added column, as it doesn't make sense. Fixes bug
12869         322269.
12870         Move some of the feature funcs from the ipod and audio cd sources up to
12871         the removable media source.
12873 2005-11-24  James Livingston  <jrl@ids.org.au>
12875         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12876         errors. oops.
12878 2005-11-24  James Livingston  <jrl@ids.org.au>
12880         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12881         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12882         (rb_iradio_source_constructor): Chain up dispose method and use
12883         G_DEFINE_TYPE
12885 2005-11-24  James Livingston  <jrl@ids.org.au>
12887         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12888         mistake in the last commit that can cause crashes.
12890 2005-11-24  James Livingston  <jrl@ids.org.au>
12892         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12893         instead of g_printerr.
12895         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12896         rb_debug instead of g_warning. The message happens every time for
12897         removable media/daap shares, so it's not unusual.
12899 2005-11-24  James Livingston  <jrl@ids.org.au>
12901         patch by: Tom Parker <palfrey@tevp.net>
12903         * configure.ac: fix libsoup test for enabling daap
12905 2005-11-23  James Livingston  <jrl@ids.org.au>
12907         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12908         (rb_query_creator_init), (rb_query_creator_constructor),
12909         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12910         empty row to queries with no criteria. Fixes bug 322078. use
12911         G_DEFINE_TYPE.
12913 2005-11-23  James Livingston  <jrl@ids.org.au>
12915         patch by:  <baptiste.millemathias@gmail.com>
12917         * help/C/quick-reference.xml: update the quick reference to have the
12918         correct key bindings.
12920 2005-11-22  James Livingston  <jrl@ids.org.au>
12922         * sources/rb-library-source.c: (genres_selection_reset_cb),
12923         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12924         reset the query when all browser selections are removed.
12926 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12928         * podcast/rb-podcast-manager.c:
12929         (rb_podcast_manager_db_entry_deleted_cb):
12930         Use a custom loop to remove podcast posts, rather than
12931         gtk_tree_model_foreach(), as deleting the entries within
12932         that loop causes the iterator to return the first entry
12933         twice.  Instead, we need to find the next entry before
12934         removing the current one. Fixes bug 321956.
12935         (rb_podcast_manager_entry_remove_cb): No longer needed.
12937 2005-11-22  James Livingston  <jrl@ids.org.au>
12939         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12940         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12941         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12943 2005-11-22  James Livingston  <jrl@ids.org.au>
12945         * sources/rb-podcast-source.c:
12946         (rb_podcast_source_post_date_cell_sort_func),
12947         (rb_podcast_source_post_status_cell_sort_func),
12948         (rb_podcast_source_post_feed_cell_sort_func):
12949         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12950         (rb_entry_view_album_sort_func),
12951         (rb_entry_view_double_ceiling_sort_func),
12952         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12953         the entry's location as a last resort when sorting, so the sort order
12954         is stable. This will stop entries moving around when two entries have
12955         the same sorting, and one of them gets played.
12957 2005-11-22  James Livingston  <jrl@ids.org.au>
12959         * daapsharing/rb-daap-connection.c:
12960         (rb_daap_connection_class_init), (rb_daap_connection_init),
12961         (connection_get_password), (build_message),
12962         (http_response_handler), (http_get), (handle_server_info),
12963         (handle_login), (handle_update), (handle_database_info),
12964         (handle_song_listing), (handle_playlists),
12965         (handle_playlist_entries), (rb_daap_connection_new),
12966         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12967         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12968         (rb_daap_connection_get_headers),
12969         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12970         (rb_daap_connection_set_property),
12971         (rb_daap_connection_get_property):
12972         * daapsharing/rb-daap-connection.h:
12973         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12974         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12975         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12976         of destroying the object when it is going to be used by a callback and
12977         fixes a double-free. Fixes bugs 321930 and 322007.
12979 2005-11-22  James Livingston  <jrl@ids.org.au>
12981         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12982         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12983         notification if there aren't any. Fixes bug 321968.
12985 2005-11-22  James Livingston  <jrl@ids.org.au>
12987         * rhythmdb/rhythmdb-property-model.c:
12988         (rhythmdb_property_model_set_property),
12989         (rhythmdb_property_model_finalize),
12990         (rhythmdb_property_model_compare),
12991         (rhythmdb_property_model_insert),
12992         (rhythmdb_property_model_delete_prop): Fix property model sorting
12993         where the display and sort keys are different. Fixes bug 321980.
12995 2005-11-22  James Livingston  <jrl@ids.org.au>
12997         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12998         when import as a file or passed on the command line, and load them as
12999         playlists.
13001 2005-11-22  James Livingston  <jrl@ids.org.au>
13003         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13005         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13006         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13007         a broken daap server. Fixes bug 321919.
13009 2005-11-22  James Livingston  <jrl@ids.org.au>
13011         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13012         drag-and-drop for both the episodes and feeds list.
13013         
13014         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13015         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13016         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13018         * widgets/rb-property-view.c: (rb_property_view_class_init),
13019         (rb_property_view_set_property), (rb_property_view_get_property),
13020         (rb_property_view_new), (rb_property_view_constructor):
13021         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13022         (rb_simple_view_new), (rb_simple_view_constructor):
13023         * widgets/rb-simple-view.h: add a "draggable" property to property
13024         views and set it to false for the feed list. Fixes bug 321284.
13026 2005-11-22  James Livingston  <jrl@ids.org.au>
13028         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13030         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13031         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13032         * sources/rb-ipod-source.c: (add_rb_playlist):
13033         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13034         (rb_playlist_source_set_property),
13035         (rb_playlist_source_get_property), (rb_playlist_source_new),
13036         (impl_receive_drag), (rb_playlist_source_add_location),
13037         (rb_playlist_source_new_from_xml):
13038         * sources/rb-playlist-source.h: give playlists and (optional)
13039         entry-type, and reject entries that don't match. Fixes bug 322006.
13041 2005-11-21  James Livingston  <jrl@ids.org.au>
13043         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13044         (rb_source_header_finalize): remove the weak references when the
13045         source header is finalised. Stops the callbacks being called after the
13046         object is destroyed.
13048 2005-11-21  James Livingston  <jrl@ids.org.au>
13050         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13051         --no-registration was passed. It causes warnings that make it
13052         impossible to run with --no-registration --g-fatal-warnings
13054 2005-11-21  James Livingston  <jrl@ids.org.au>
13056         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13057         of strings when they are still in use. Fixes bug 321547.
13059         (rb_daap_connection_destroy): fix memory leak
13061 2005-11-21  James Livingston  <jrl@ids.org.au>
13063         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13064         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13065         (rb_daap_mdns_resolve_cancel), (publish_cb),
13066         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13067         support.
13069 2005-11-21  James Livingston  <jrl@ids.org.au>
13071         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13072         sorting by genre
13074 2005-11-20  James Livingston  <jrl@ids.org.au>
13076         * podcast/rb-podcast-manager.c:
13077         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13078         that we don't leak thread structures. Fixes bug 321636, and probably
13079         321775.
13081 2005-11-20  James Livingston  <jrl@ids.org.au>
13083         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13084         (lookup_cd):
13085         * podcast/rb-podcast-manager.c: (start_job),
13086         (rb_podcast_manager_db_entry_deleted_cb),
13087         (rb_podcast_manager_entry_remove_cb):
13088         * podcast/rb-podcast-parse.c: (rb_insert_item),
13089         (rb_podcast_parse_load_feed):
13090         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13091         * shell/rb-removable-media-manager.c:
13092         (rb_removable_media_manager_append_media_source):
13093         * shell/rb-shell.c: (add_to_library_response_cb):
13094         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13095         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13096         * sources/rb-iradio-source.c:
13097         (stations_view_drag_data_received_cb):
13098         * sources/rb-library-source.c: (string_list_equal),
13099         (impl_get_extra_views), (impl_receive_drag):
13100         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13101         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13102         (impl_receive_drag):
13103         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13104         (rb_entry_view_append_column_custom), (harvest_entries):
13105         * widgets/rb-property-view.c:
13106         (rb_property_view_selection_changed_cb):
13107         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13108         switch from using g_list_append to g_list_prepend. This changes
13109         operations from O(n^2) to O(n), which in cases like deleting a lot of
13110         tracks can give huge improvements in speed. Closes bug 321696.
13112 2005-11-20  James Livingston  <jrl@ids.org.au>
13114         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13115         (rb_sourcelist_update_expander_visibility): fix indenting of child
13116         sources.
13118 2005-11-20  James Livingston  <jrl@ids.org.au>
13120         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13121         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13122         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13123         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13124         (add_service), (entry_group_cb): dynamically allocate memory, rather
13125         than using static variables.
13127         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13128         re-enable the daap share if the name hasn't changed.
13129         * shell/rb-shell-preferences.c:
13130         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13131         change it's name when the checkbox is disabled. Fixed bug 321748.
13133 2005-11-18  James Livingston  <jrl@ids.org.au>
13135         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13136         as hidden if it is on the current workspace.
13138 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13140         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13141         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13142         (rb_podcast_properties_dialog_parse_time): 
13143         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13144         (rb_feed_podcast_properties_dialog_parse_time):
13145         Rework the way the last mod time strings are created.  It was using
13146         thread unsafe functions, not creating value UTF, and not not checking
13147         the value of the result before modifying it.  This new method fixes
13148         these problems.
13150 2005-11-18  James Livingston  <jrl@ids.org.au>
13152         Don't reset the search box when viewing a different source, because it
13153         will change what is being played. Closes 321593.
13155         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13156         the search box
13158         * shell/rb-source-header.c: (rb_source_header_class_init),
13159         (rb_source_header_init), (rb_source_header_finalize): use
13160         G_DEFINE_TYPE.
13162         (rb_source_header_set_property),
13163         (rb_source_header_source_weak_destroy_cb),
13164         (rb_source_header_search_cb): store the search text when leaving a
13165         source and put it in the search box when viewing it again.
13167 2005-11-18  James Livingston  <jrl@ids.org.au>
13169         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13170         (save_entry):
13171         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13172         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13173         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13174         time stamp.
13176         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13177         last-seen as the timestamp of the last update of the feed. Don't
13178         re-add episodes that have been deleted. Closes 319759.
13180 2005-11-18  James Livingston  <jrl@ids.org.au>
13182         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13183         that don't have the day name at the start. Closes 321645.
13185 2005-11-18  James Livingston  <jrl@ids.org.au>
13187         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13188         (rb_podcast_manager_copy_post),
13189         (rb_podcast_manager_get_podcast_dir):
13190         * podcast/rb-podcast-manager.h:
13191         * sources/rb-podcast-source.c: (impl_get_config_widget),
13192         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13193         download location switching to / if the prefs were opened before
13194         downloading an episode. Closes 321611.
13196 2005-11-18  James Livingston  <jrl@ids.org.au>
13198         * data/glade/podcast-new.glade:
13199         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13200         (rb_new_podcast_dialog_set_property),
13201         (rb_new_podcast_dialog_get_property),
13202         (rb_new_podcast_dialog_response_cb),
13203         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13204         for entering new podcast urls in. Closes bug 321610.
13206 2005-11-18  James Livingston  <jrl@ids.org.au>
13208         * sources/rb-podcast-source.c: (construct_query_from_selection),
13209         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13210         without restarting RB. Closes bug 321612.
13212 2005-11-18  James Livingston  <jrl@ids.org.au>
13214         * widgets/rb-entry-view.c: (set_column_visibility),
13215         (rb_entry_view_sync_columns_visible): when changing visibility of one
13216         column, don't hide and re-show all the others. Makes a show/hide
13217         column operation a lot faster.
13219 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13221         Closes bug 321702.
13223         * iradio/rb-station-properties-dialog.c
13224          (rb_station_properties_dialog_update_bitrate):
13225         Mark the bitrate value as being kbps, using the same
13226         translatable format string as rb-song-info.c
13228         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13229          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13231         * shell/rb-shell-player.c (info_available_cb):
13232          Use RB_METADATA_FIELD_BITRATE to update the iradio
13233          station's bitrate value.
13235 2005-11-17  James Livingston  <jrl@ids.org.au>
13237         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13239         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13240         free a NULL date.
13242 2005-11-17  James Livingston  <jrl@ids.org.au>
13244         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13246         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13247         assertions. Lookup the icon size correctly.
13249 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13251         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13252         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13253         Fix build errors.
13255 2005-11-16  James Livingston  <jrl@ids.org.au>
13257         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13258         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13259         (rb_shell_preferences_sync_column_button): block the toggle signal of
13260         the column checkboxes while setting their initial state. This stops
13261         the visibility being re-set, which causes a lot of time being spent
13262         measuring the columns aagin when opening the prefs window.
13264         Use G_DEFINE_TYPE.
13266 2005-11-16  James Livingston  <jrl@ids.org.au>
13268         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13269         (rb_sourcelist_edit_source_name): don't assume that the editable
13270         source name is in the first column, because it isn't. Fixes bug
13271         320137.
13273 2005-11-16  James Livingston  <jrl@ids.org.au>
13275         * daapsharing/rb-daap-mdns.h:
13276         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13277         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13278         parts can know why operations failed. Avahi can report that the daemon
13279         was not running. Howl doesn't do this (yet).
13280         
13281         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13282         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13283         (browse_cb): don't display mdns errors to the user, if it wa because
13284         the daemon was not running.
13286 2005-11-16  James Livingston  <jrl@ids.org.au>
13288         * rhythmdb/rhythmdb-property-model.c:
13289         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13290         (rhythmdb_property_model_compare),
13291         (rhythmdb_property_model_insert),
13292         (rhythmdb_property_model_insert_prop),
13293         (rhythmdb_property_model_delete),
13294         (rhythmdb_property_model_delete_prop),
13295         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13296         copying the string and re-creating the sort key. Saves a little bit of
13297         memory and time.
13299         (rhythmdb_property_model_perform_sync),
13300         (rhythmdb_property_model_sync): perform the count sync in an idle
13301         callback, so that it doesn't have to be re-run once per value when
13302         loading.
13304 2005-11-16  James Livingston  <jrl@ids.org.au>
13306         * rhythmdb/rhythmdb-query-model.c:
13307         (rhythmdb_query_model_entry_deleted_cb),
13308         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13309         limited list. Stops problems if they are deleted, and then things on
13310         the main list are
13312 2005-11-16  James Livingston  <jrl@ids.org.au>
13314         * NEWS: update NEWS
13316         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13317         button's minimise-to-tray action
13319 2005-11-16  James Livingston  <jrl@ids.org.au>
13321         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13322         leak. Disable adding newly created files for now, because it doesn't
13323         work properly.
13325         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13326         (rb_sourcelist_model_finalize):
13327         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13328         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13330 2005-11-16  James Livingston  <jrl@ids.org.au>
13332         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13333         problem where a GError* wasn't being set to NULL. Actually check the
13334         result.
13336 2005-11-16  James Livingston  <jrl@ids.org.au>
13338         * doc/reference/tmpl/rb-entry-view.sgml:
13339         * doc/reference/tmpl/rhythmbox-unused.sgml:
13340         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13341         * doc/reference/tmpl/rhythmdb.sgml:
13342         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13343         docs, including the patch that was on bug 
13345         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13346         API, because it should only be used by RhythmDB itself.
13348 2005-11-16  James Livingston  <jrl@ids.org.au>
13350         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13351         pausing by middle clicking on the tray icon.
13353 2005-11-15  James Livingston  <jrl@ids.org.au>
13355         * configure.ac: enable audioscrobbler support by default, if libsoup
13356         is present.
13358 2005-11-15  James Livingston  <jrl@ids.org.au>
13360         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13361         Closes bug 321157.
13363         * configure.ac:
13364         * daapsharing/rb-daap-connection.c: (build_message),
13365         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13366         support gzip encoded daap connections.
13368         (handle_song_listing): fix leak
13370 2005-11-15  James Livingston  <jrl@ids.org.au>
13372         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13373         * sources/rb-podcast-source.c:
13374         (rb_podcast_source_post_date_cell_data_func): make the date format
13375         translatable again, so that translators can choose the best format for
13376         their locale (%x is huge in some locales)
13378 2005-11-15  James Livingston  <jrl@ids.org.au>
13380         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13381         (end_job): mark podcast episodes as failed, if the metadata load
13382         fails. This will prevent people playing non-audio enclosures, helping
13383         stop bug 320366.
13385 2005-11-14  James Livingston  <jrl@ids.org.au>
13387         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13388         video sink to fakesink. This will stop problems (potentially crashers)
13389         that will occur if the file contains a video stream.
13391         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13392         rather than using magic numbers everywhere.
13394         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13395         * sources/rb-podcast-source.c:
13396         (rb_podcast_source_songs_show_popup_cb),
13397         (rb_podcast_source_cmd_download_post),
13398         (rb_podcast_source_post_status_cell_data_func),
13399         (rb_podcast_source_entry_activated_cb): use the above constants.
13401         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13402         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13403         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13404         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13405         (cancel_job), (download_progress_cb),
13406         (rb_podcast_manager_cancel_download),
13407         (rb_podcast_manager_insert_feed): use the constants, and fix a
13408         trhead-safety issue.
13410 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13412         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13413         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13414         entry-changed events after stats on startup, fixes entry deleted from
13415         filtered views not disappearing
13417 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13419         Fix rhythmdb query model refcount and polling problems. Closes bug
13420         321410.
13422         * rhythmdb/rhythmdb-property-model.c:
13423         (rhythmdb_property_model_finalize):
13424          Unref the query model if we have one.
13426         * rhythmdb/rhythmdb-query-model.h:
13427          Remove poll and cancel methods.  Query cancellation
13428          never did anything anyway.
13430         * rhythmdb/rhythmdb-query-model.c:
13431         (rhythmdb_query_model_init): Remove GAsyncQueues.
13432          Replace the GAsyncQueue-based update processing
13433          with a simpler g_idle_add approach; still has the
13434          same queueing properties, but now we don't poll the
13435          model forever and updates are processed immediately.
13437         (_unref_entry), (rhythmdb_query_model_finalize):
13438          Unref DB entries when finalized
13440         (rhythmdb_query_model_has_pending_changes):
13441          Use our own counter to decide if there are updates pending
13443         (rhythmdb_query_model_process_update), (idle_process_update):
13444          Process updates using g_idle_add, or directly if possible
13446         (rhythmdb_query_model_signal_complete),
13447         (rhythmdb_query_model_add_entries):
13448          Change to new update processing method
13450         (idle_poll_model), (rhythmdb_query_model_poll):
13451          Remove GAsyncQueue-based update processing.
13453         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13454          No need to poll the model any more - updates are processed
13455          directly for synchronous queries.
13457         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13458          Property model needs to be unref'd here
13460         * sources/rb-library-source.c: (rb_library_source_do_query):
13461          Don't try to cancel the active query (it never worked anyway),
13462          remove obsolete poll call, unref property models as required,
13463          and don't unref the cached 'all' query, since hold on to it.
13464          We unref it when the sort order changes, which forces the query
13465          to be rerun.
13467         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13468          Unref the property model as required
13470         (rb_podcast_source_do_query):
13471          Treat any query with no selected feeds and no search text as
13472          an 'all' query.  Unref query models except for the cached
13473          'all' query, since we hold on to that.
13475         (rb_podcast_source_cmd_update_all):
13476          Unref the property model as required.
13478         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13479          Don't try to cancel the query (it never worked anyway)
13481         (rb_entry_view_poll_model):
13482          No need for this any more.
13484         * widgets/rb-entry-view.h:
13485          Remove obsolete function rb_entry_view_poll_model
13487         * widgets/rb-property-view.c: (rb_property_view_set_property):
13488          Ref and unref the property model as required.
13490 2005-11-14  James Livingston  <jrl@ids.org.au>
13492         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13494         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13495         for error. Closes bug 321416.
13497 2005-11-14  James Livingston  <jrl@ids.org.au>
13499         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13501         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13502         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13504 2005-11-14  James Livingston  <jrl@ids.org.au>
13506         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13507         * shell/rb-removable-media-manager.c:
13508         (rb_removable_media_manager_set_uimanager):
13509         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13510         translation domain for GTK action groups.
13512 2005-11-12  James Livingston  <jrl@ids.org.au>
13514         * po/POTFILES.in: remove the old station-new files
13516 2005-11-12  James Livingston  <jrl@ids.org.au>
13518         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13519         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13520         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13521         when upgrading from a pre-Date-supporting version to a version that
13522         supports Date metadata. Closes bug 320760.
13524 2005-11-12  James Livingston  <jrl@ids.org.au>
13526         Add "update all podcast feeds" command. Closes bug 319954.
13528         * data/ui/rhythmbox-ui.xml: add to source context menu.
13530         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13531         (register_action_group), (rb_podcast_source_cmd_download_post),
13532         (rb_podcast_source_cmd_delete_feed),
13533         (rb_podcast_source_cmd_properties_feed),
13534         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13535         rather than the shell.
13537         (rb_podcast_source_update_feed_func),
13538         (rb_podcast_source_cmd_update_all): update every feed.
13540 2005-11-11  James Livingston  <jrl@ids.org.au>
13542         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13543         (rb_shell_player_constructor), (rb_shell_player_finalize):
13544         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13545         others follow the HIG recommentations.
13547 2005-11-11  James Livingston  <jrl@ids.org.au>
13549         * podcast/rb-podcast-manager.c:
13550         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13551         before trying to use it.
13553 2005-11-11  James Livingston  <jrl@ids.org.au>
13555         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13556         (rb_entry_view_append_column): When sorting by year, sort by album
13557         within a particular year.
13559 2005-11-11  James Livingston  <jrl@ids.org.au>
13561         * NEWS: updates
13563 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13564         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13565         spelling of "Language."
13567 2005-11-11  James Livingston  <jrl@ids.org.au>
13569         * rhythmdb/rhythmdb-property-model.c:
13570         (rhythmdb_property_model_row_inserted_cb),
13571         (rhythmdb_property_model_prop_changed_cb),
13572         (rhythmdb_property_model_entry_removed_cb),
13573         (rhythmdb_property_model_insert_prop),
13574         (rhythmdb_property_model_sync): display the count after the "All"
13575         entry of a property model.
13577         * widgets/rb-property-view.c: (rb_property_view_class_init),
13578         (rb_property_view_finalize), (rb_property_view_constructor): use
13579         G_DEFINE_TYPE
13581 2005-11-10  James Livingston  <jrl@ids.org.au>
13583         * rhythmdb/rhythmdb-query-model.c:
13584         (rhythmdb_query_model_remove_entry):
13585         * rhythmdb/rhythmdb-query-model.h: make
13586         rhythmdb_query_model_remove_entry return whether the entry was in the
13587         model.
13589         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13590         don't add non-SONG entries, as it doesn't really work and can cause
13591         crashes.
13593         (rb_playlist_source_remove_location): assert if the playlist and model
13594         differ on whether the entry is in the playlist
13596 2005-11-10  James Livingston  <jrl@ids.org.au>
13598         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13599         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13600         (rb_podcast_manager_thread_parse_feed),
13601         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13602         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13603         emulating one with a list and mutex. Fixes a couple of threading
13604         issues.
13605         
13606         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13607         updated feeds.
13608         
13609         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13610         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13611         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13612         * podcast/rb-podcast-parse.c: (rb_insert_item),
13613         (rb_podcast_parse_channel_free):
13614         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13615         fix some typos, and make a bit of code clearer.
13617 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13619         Make the "delete podcast" dialog better. Closes bug 320899.
13621         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13622         Add PROP_WINDOW for rb_shell_get_property so we can access the
13623         GtkWindow widget of the main window. 
13624         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13625         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13626         podcast feed delete dialog less confusing as well.
13628 2005-11-09  James Livingston  <jrl@ids.org.au>
13630         * shell/rb-removable-media-manager.c:
13631         (rb_removable_media_manager_mount_volume),
13632         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13633         NULL for a cd volume.
13635 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13637         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13638         method return a gboolean indicating whether the changes
13639         to the entry have already been applied.
13641         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13642         only modify the entry if impl_entry_set returns FALSE.
13644         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13645         When setting the location of an entry, update the
13646         hash table mapping locations to entries.
13648 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13650         * data/glade/Makefile.am:
13651         * iradio/Makefile.am:
13652           Remove 'new station' dialog.
13654         * iradio/rb-station-properties-dialog.h:
13655         * sources/rb-iradio-source.c: (impl_song_properties):
13656         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13657          Add 'new station' mode parameter to
13658          rb_station_properties_dialog_new.
13660         * (rb_station_properties_dialog_response_cb),
13661         (rb_station_properties_dialog_create_station):
13662          When in 'new station' mode, create the station
13663          when OK button is pressed.
13665         * iradio/rb-station-properties-dialog.c:
13666         (rb_station_properties_dialog_location_changed_cb):
13667          Only enable OK button if a location is specified
13668         (rb_station_properties_dialog_init),
13669         (rb_station_properties_dialog_new),
13670         (rb_station_properties_dialog_update),
13671         (rb_station_properties_dialog_update_title),
13672         (rb_station_properties_dialog_rated_cb),
13673         (rb_station_properties_dialog_update_play_count),
13674         (rb_station_properties_dialog_update_bitrate),
13675         (rb_station_properties_dialog_update_last_played),
13676         (rb_station_properties_dialog_update_rating),
13677         (rb_station_properties_dialog_update_playback_error),
13678         (rb_station_properties_dialog_show):
13679          Handle 'new station' mode, where there's no current
13680          station to edit.
13682 2005-11-08  James Livingston  <jrl@ids.org.au>
13684         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13685         keybinding for track columns consistent between library and playlist
13686         sources.
13688 2005-11-07  James Livingston  <jrl@ids.org.au>
13690         * data/ui/rhythmbox-ui.xml:
13691         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13692         "Edit" item to playlist menu. Closes bug 311470.
13694 2005-11-07  James Livingston  <jrl@ids.org.au>
13696         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13698         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13699         confirmation to save dialogs, with gtk 2.8 or higher.
13701 2005-11-07 James Livingston  <jrl@ids.org.au>
13702         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13703         requirement to a general on, because people are going to have it for
13704         the other dependencies.
13706 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13708         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13709         delete dialog less confusing.  Use HIG recommended button order.
13710         Closes bug 320840.
13712 2005-11-06  James Livingston  <jrl@ids.org.au>
13714         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13715         drag-and-drop error.
13716         
13717         * sources/rb-library-source.c: (rb_library_source_constructor): only
13718         add drag-and-drop for the Library itself, subclasses can add support
13719         themselves if they want it.
13721         * sources/rb-removable-media-source.c:
13722         (rb_removable_media_source_class_init): by default removable media
13723         sources do not support dnd
13725 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13727         * data/glade/station-properties.glade:
13728          Add box containing error icon and error message label
13729         * iradio/rb-station-properties-dialog.c:
13730         (rb_station_properties_dialog_class_init),
13731         (rb_station_properties_dialog_finalize):
13732          Change this class to use G_DEFINE_TYPE
13733         (rb_station_properties_dialog_init),
13734         (rb_station_properties_dialog_update),
13735         (rb_station_properties_dialog_update_playback_error):
13736          Display error icon and message when there is one, and hide the error
13737          box otherwise.
13738         (rb_station_properties_dialog_show): Hack widget show
13739          method to update the visibility of the error info box when showing
13740          the widget.  Otherwise the icon is displayed all the time (same thing
13741          is done in rb-song-info). Closes bug 320749.
13743 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13745         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13746         parsing of the duration of podcast episodes from the feed. Closes bug
13747         320748.
13749 2005-11-05  James Livingston  <jrl@ids.org.au>
13751         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13752         release date metadata ("Year"). Closes bug 166093.
13754         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13755         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13756         (rb_metadata_gst_add_tag_data):
13757         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13758         (save_entry):
13759         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13760         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13761         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13762         (rhythmdb_prop_get_type):
13763         * rhythmdb/rhythmdb.h: add support for "date" property
13764         
13765         * data/glade/general-prefs.glade:
13766         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13767         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13768         (rb_entry_view_append_column):
13769         * widgets/rb-entry-view.h:
13770         * sources/rb-library-source.c: (rb_library_source_constructor):
13771         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13772         "Year" colums
13774         * data/glade/song-info.glade:
13775         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13776         (rb_song_info_construct_single), (rb_song_info_constructor),
13777         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13778         (rb_song_info_sync_entry_single): Add "Year" to song info window
13780         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13781         sorted by year.
13783 2005-11-05  James Livingston  <jrl@ids.org.au>
13785         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13786         description if it's very long.
13788 2005-11-05  James Livingston  <jrl@ids.org.au>
13790         pathc by: Artem Baguinski <femistofel@gmail.com>
13792         * help/C/Makefile.am:
13793         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13794         Closes bug 320613.
13796 2005-11-05  James Livingston  <jrl@ids.org.au>
13798         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13800         * daapsharing/rb-daap-share.c: (write_next_chunk),
13801         (message_finished), (databases_cb): Use chunked file loading and
13802         sending in the DAAP server. This should reduce the amount of memory
13803         required to send files to the client.
13805 2005-11-05  James Livingston  <jrl@ids.org.au>
13807         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13808         work better on some systems. Closes 320622.
13810 2005-11-05  James Livingston  <jrl@ids.org.au>
13812         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13813         homepage, so that users can find out what AudioScrobbler is. Add
13814         access keys.
13816         * data/glade/daap-prefs.glade:
13817         * data/glade/general-prefs.glade:
13818         * data/glade/library-prefs.glade: make the indent be more consistent
13820         * data/glade/podcast-prefs.glade: 
13821         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13822         (impl_get_config_widget): move thing out of code into glade, where
13823         they belong
13825 2005-11-05  James Livingston  <jrl@ids.org.au>
13827         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13828         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13830 2005-11-04  James Livingston  <jrl@ids.org.au>
13832         * configure.ac: don't print DAAP configure info twice
13834 2005-11-04  James Livingston  <jrl@ids.org.au>
13836         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13837         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13838         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13839         #ifdefs, since we removed the symbol. Oops
13841 2005-11-04  James Livingston  <jrl@ids.org.au>
13843         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13844         after the connect line, not before. Oops.
13846 2005-11-04  James Livingston  <jrl@ids.org.au>
13848         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13849         fix some warnings
13851 2005-11-03  James Livingston  <jrl@ids.org.au>
13853         * NEWS: update the news file
13855         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13856         "duration" column.
13858         * data/ui/rhythmbox-ui.xml:
13859         * shell/rb-playlist-manager.c:
13860         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13861         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13862         and "delete" for feeds.
13864 2005-11-03  James Livingston  <jrl@ids.org.au>
13866         * sources/rb-podcast-source.c: (impl_delete),
13867         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13868         feed. Closes 319760.
13870 2005-11-03  James Livingston  <jrl@ids.org.au>
13872         Don't start playing from the remote site when a un-downloaded podcast
13873         is activated. Closes 319983.
13874         
13876         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13877         (write_job_data), (download_progress_cb): write the local location as
13878         soon as any data is recieved
13880         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13881         the mountpoint to NULL for podcast episodes that haven't yet been
13882         downloaded.
13883         
13884         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13885         start playing a podcast if it hasn't been downloaded.
13886         
13887         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13888         (rb_podcast_source_entry_activated_cb): begin downloading when the
13889         podcast is activated.
13891 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13893         * data/glade/general-prefs.glade:  Fix capitalization.
13894         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13895         * sources/rb-podcast-source.c:
13896         (rb_podcast_source_songs_show_popup_cb),
13897         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13899 2005-11-03  James Livingston  <jrl@ids.org.au>
13901         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13903         * shell/rb-removable-media-manager.c:
13904         (rb_removable_media_manager_mount_volume): don't check network or
13905         autofs mounts, as they're not going to be removable media. Stops
13906         sending lots of warnings to syslog. Closes 320571.
13908         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13909         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13910         320570.
13912 2005-11-03  James Livingston  <jrl@ids.org.au>
13914         Add support for playing audio CDs. Metadata lookup is done using
13915         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13916         the library when it gets broken out of S-J.
13917         
13918         Add a "rescan media" menu item, and commands for ejecting removable
13919         media.
13921         Move nautilus-cd-burner from optional to required depenency.
13923         * configure.ac:
13924         * data/ui/rhythmbox-ui.xml:
13925         * metadata/Makefile.am:
13926         + metadata/sj-error.c:
13927         + metadata/sj-error.h:
13928         + metadata/sj-metadata-marshal.list:
13929         + metadata/sj-metadata-musicbrainz.c:
13930         + metadata/sj-metadata-musicbrainz.h:
13931         + metadata/sj-metadata.c:
13932         + metadata/sj-metadata.h:
13933         + metadata/sj-structures.c:
13934         + metadata/sj-structures.h:
13935         * player/Makefile.am:
13936         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13937         * po/POTFILES.in:
13938         * shell/Makefile.am:
13939         * shell/rb-removable-media-manager.c:
13940         (rb_removable_media_manager_dispose), (poll_tray_opened),
13941         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13942         (rb_removable_media_manager_load_media),
13943         (rb_removable_media_manager_mount_volume),
13944         (rb_removable_media_manager_cmd_eject_medium),
13945         (rb_removable_media_manager_cmd_scan_media),
13946         (rb_removable_media_manager_check_volume),
13947         (rb_removable_media_manager_unmount_volume_swap),
13948         (rb_removable_media_manager_scan):
13949         * sources/Makefile.am:
13950         + sources/rb-audiocd-source.c:
13951         + sources/rb-audiocd-source.h:
13952         * tests/Makefile.am:
13954 2005-11-02  James Livingston  <jrl@ids.org.au>
13956         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13958         * sources/rb-iradio-source.c:
13959         (stations_view_drag_data_received_cb):
13960         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13961         don't crash when the second uri is missing frm the drop, which
13962         browsers sometimes do.
13964 2005-11-01  James Livingston  <jrl@ids.org.au>
13966         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13967         (rb_podcast_manager_insert_feed):
13968         * podcast/rb-podcast-manager.h:
13969         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13970         (rb_set_item_value), (rb_validate_item_propert),
13971         (rb_podcast_parse_date), (rb_podcast_parse_time):
13972         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13973         from the feed.
13975 2005-10-31  James Livingston  <jrl@ids.org.au>
13977         * ChangeLog:
13978         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13979         huge
13981 2005-10-31  James Livingston  <jrl@ids.org.au>
13983         * sources/rb-podcast-source.c:
13984         (rb_podcast_source_post_date_cell_data_func): generate the date string
13985         in a way that is correct in all locales.
13986         
13987         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13988         (rhythmdb_entry_sync_mirrored): make the last played/date added
13989         columns use the same format.
13991 2005-10-30  James Livingston  <jrl@ids.org.au>
13994         * podcast/rb-podcast-manager.c:
13995         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13996         
13997         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13998         iradio errors better.
14000 2005-10-30  James Livingston  <jrl@ids.org.au>
14002         patch by: Artem Baguinski <femistofel@gmail.com>
14004         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14006 2005-10-30  James Livingston  <jrl@ids.org.au>
14008         * podcast/rb-podcast-manager.c:
14009         (rb_podcast_manager_subscribe_feed),
14010         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14011         already been added, usually as a radio station. Closes 319434.
14013 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14015         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14016         mnemonics & resize issues)
14017         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14018         & mnemonics)
14019         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14020         widget for the "download location" label.
14022         Closes bug 320184.
14024 2005-10-29  James Livingston  <jrl@ids.org.au>
14026         Allow the search box to match words from multiple properties. Closes
14027         bug 139196. Thanks to the person from IRC who did a lot of the initial
14028         work.
14031         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14032         * lib/rb-util.h: Add functions to split a string into words, and one
14033         to perform "search folding" which is currently like casefolding but
14034         also strips punctuation
14035         
14036         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14037         (rhythmdb_query_preprocess):
14038         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14039         against title, artist, album and genre (for the search box)
14040         
14041         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14042         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14043         (save_entry), (search_match_properties),
14044         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14045         splitting into words and matching across multiple properties.
14046         
14047         * sources/rb-library-source.c: (construct_query_from_selection): use
14048         the new SEARCH_MATCH property for the search box
14049         
14050         * widgets/rb-entry-view.c: (type_ahead_search_func):
14052 2005-10-29  James Livingston  <jrl@ids.org.au>
14054         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14055         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14056         
14057         * shell/rb-playlist-manager.c:
14058         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14059         correctly.
14060         
14061         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14062         initial state of the shuffle/repeat menu items correctly. Patch from
14063         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14065 2005-10-29  James Livingston  <jrl@ids.org.au>
14067         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14068         double-free.
14069         
14070         * widgets/rb-cell-renderer-pixbuf.c:
14071         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14072         icon go black when row is not selected
14073         
14074         * doc/reference/tmpl/rb-daap-connection.sgml:
14075         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14077 2005-10-29  James Livingston  <jrl@ids.org.au>
14079         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14080         silly mistake, where it could think partial downloads has been
14081         completed.
14083 2005-10-29  James Livingston  <jrl@ids.org.au>
14085         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14087         * data/glade/song-info.glade:
14088         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14089         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14090         (rb_song_info_sync_entry_single): show the disc number in the song
14091         info window. From bug 311199.
14093 2005-10-29  James Livingston  <jrl@ids.org.au>
14095         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14096         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14097         regularly. Closes 155306.
14099 2005-10-29  James Livingston  <jrl@ids.org.au>
14101         * podcast/rb-podcast-manager.c:
14102         (rb_podcast_manager_download_entry),
14103         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14104         (rb_podcast_manager_insert_feed):
14105         * podcast/rb-podcast-manager.h:
14106         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14107         (rb_podcast_parser_start_element):
14108         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14109         don't download them again. However, it can't resume
14110         partially-downloaded ones.
14112 2005-10-28  James Livingston  <jrl@ids.org.au>
14114         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14115         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14116         work. Don't attempt to write duration as a tag.
14118         Thanks to Artem Baguinski <femistofel@gmail.com>
14120 2005-10-28  James Livingston  <jrl@ids.org.au>
14122         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14123         don't disable the status-bar menu item when the current source doesn't
14124         use the search box.
14126 2005-10-28  James Livingston  <jrl@ids.org.au>
14128         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14129         crash if the file has unknown length
14131 2005-10-27  James Livingston  <jrl@ids.org.au>
14133         * daapsharing/rb-daap-connection.c:
14134         (rb_daap_connection_state_done): don't assert when a daap server
14135         doesn't have any playlists
14137 2005-10-27  James Livingston  <jrl@ids.org.au>
14139         * sources/rb-sourcelist-model.c:
14140         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14141         source for the sourcelist. Closes bug 319817.
14143 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14145         Patch by: Renato Araujo <renatox@gmail.com>
14147         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14148           Fix for a crasher caused by previous patch.
14150 2005-10-26  James Livingston  <jrl@ids.org.au>
14152         * data/glade/podcast-prefs.glade:
14153         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14154         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14155         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14156         * podcast/rb-podcast-manager.c:
14157         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14158         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14159         * shell/rb-shell.c: Change some strings to make them more consistent.
14160         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14161         makes it clearer which is which. "Episode" may not be the best term,
14162         but it seems to be widely used.
14163         
14164         Also fix some strings that weren't marked as translatable.
14165         
14166         * podcast/rb-feed-podcast-properties-dialog.c:
14167         (rb_feed_podcast_properties_dialog_class_init),
14168         (rb_feed_podcast_properties_dialog_finalize):
14169         * podcast/rb-new-podcast-dialog.c:
14170         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14171         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14172         (rb_simple_view_finalize), (rb_simple_view_constructor):
14173         * podcast/rb-podcast-properties-dialog.c:
14174         (rb_podcast_properties_dialog_class_init),
14175         (rb_podcast_properties_dialog_finalize):
14176         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14177         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14178         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14179         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14180         use G_DEFINE_TYPE, instead of doing it manually.
14182 2005-10-26  James Livingston  <jrl@ids.org.au>
14184         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14185         <jrl@ids.org.au>
14187         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14188         (rb_metadata_init): Check that the necessary plugins are present to do
14189         id3 editing.
14190         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14191         corrupted before replacing the original.
14193 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14195         reviewed by: James Livingston <jrl@ids.org.au>
14197         Assign sequential IDs to playlists for DAAP rather than using the
14198         address of the playlist object.  Less flaky, and should work on 64bit
14199         platforms. Closes bug 319304.
14201         * daapsharing/rb-daap-share.c: 
14202         (rb_daap_share_set_property): watch for playlist creation
14203         (_find_by_id), (_find_by_source): playlist list search functions
14204         (rb_daap_share_playlist_created),
14205         (rb_daap_share_process_playlist),
14206         (rb_daap_share_playlist_destroyed):
14207          update playlist list as it changes, use weak refs on 
14208          playlists to get notified on destroy.
14209         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14210          destroy playlist list on shutdown
14211         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14212          DAAP response
14213         (databases_cb): search for playlist ID in list rather than just
14214          converting it to a pointer; return HTTP 404 if playlist not 
14215          found.
14216         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14217          is already used for the main library
14219 2005-10-26  James Livingston  <jrl@ids.org.au>
14221         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14223         * daapsharing/rb-daap-connection.c: (build_message),
14224         (http_response_handler), (http_get), (handle_server_info),
14225         (handle_login), (handle_update), (handle_database_info),
14226         (handle_song_listing), (handle_playlists),
14227         (handle_playlist_entries), (handle_logout),
14228         (rb_daap_connection_new), (rb_daap_connection_logout),
14229         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14230         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14231         * daapsharing/rb-daap-connection.h:
14232         * sources/rb-daap-source.c: (rb_daap_source_activate),
14233         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14234         (rb_daap_source_disconnect): Make connecting to DAAP sources
14235         asynchronous, so that non-responsive servers don't hang the UI. Closes
14236         316225.
14238 2005-10-26  James Livingston  <jrl@ids.org.au>
14240         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14242         * rhythmdb/rhythmdb-query-model.c:
14243         (rhythmdb_query_model_do_reorder): generate the row re-order map
14244         correctly.
14245         
14246         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14247         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14248         Update selection when rows get re-ordered. Closes 319718.
14250 2005-10-26  James Livingston  <jrl@ids.org.au>
14252         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14254         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14255         actually set the db pointer in play orders. Closes 319818.
14257 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14259         Patch by: Renato Araujo <renatox@gmail.com>
14261         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14262         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14263         (rb_podcast_manager_update_synctime),
14264         (rb_podcast_manager_config_changed),
14265         (rb_podcast_manager_insert_feed):
14266         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14267         (save_entry):
14268         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14269         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14270         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14272 2005-10-25  James Livingston  <jrl@ids.org.au>
14274         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14275         (db_entry_deleted_cb): don't share tracks that are hidden because the
14276         file is missing.
14278 2005-10-22  James Livingston  <jrl@ids.org.au>
14280         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14281         crash if an entry couldn't be playerd, without streamer setting an
14282         error.
14284         
14285         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14287         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14288         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14289         is pasted into the dialog.
14290         
14291         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14292         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14293         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14294         (rb_podcast_parse_channel_free):
14295         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14296         feeds
14298 2005-10-22  James Livingston  <jrl@ids.org.au>
14300         * sources/rb-iradio-source.c:
14301         (rb_iradio_source_first_time_changed): Make merging the default
14302         stations actually work.
14303         
14304         * sources/rb-podcast-source.c:
14305         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14306         people weren't seing the percentages in the stats column.
14308 2005-10-21  James Livingston  <jrl@ids.org.au>
14310         Patch from Caio Marcelo <cmarcelo@gmail.com>
14312         * shell/rb-shell.c: (rb_shell_window_state_cb),
14313         (rb_shell_get_visibility), (idle_hide_mainwindow),
14314         (rb_shell_set_visibility): Make the "show window" item in the tray
14315         icon menu show the toggle state correctly. Use a better policy on
14316         deciding whether the window is "visible" or not. Closes bug 308053.
14318 2005-10-21  James Livingston  <jrl@ids.org.au>
14320         * doc/reference/tmpl/rb-shell-preferences.sgml:
14321         * shell/Makefile.am: fix building with gtk-doc
14323         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14324         don't submit podcasts to audioscrobbler
14325         
14326         
14327         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14328         
14329         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14330         (rb_set_item_value): strip spaces surrounding podcast urls
14331         
14333         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14334         
14335         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14337 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14339         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14340          Audioscrobbler/Last.fm support
14342         * configure.ac:
14343         * data/glade/Makefile.am:
14344         * data/glade/audioscrobbler-prefs.glade:
14345         * data/rhythmbox.schemas:
14346         * lib/Makefile.am:
14347         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14348         * lib/md5.h:
14349         * lib/rb-preferences.h:
14350         * po/POTFILES.in:
14351         * shell/Makefile.am:
14352         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14353         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14354         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14355         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14356         (rb_audioscrobbler_timeout_cb), (mkmd5),
14357         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14358         (rb_audioscrobbler_do_handshake),
14359         (rb_audioscrobbler_do_handshake_cb),
14360         (rb_audioscrobbler_submit_queue),
14361         (rb_audioscrobbler_submit_queue_cb),
14362         (rb_audioscrobbler_import_settings),
14363         (rb_audioscrobbler_preferences_sync),
14364         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14365         (rb_audioscrobbler_gconf_changed_cb),
14366         (rb_audioscrobbler_song_changed_cb),
14367         (rb_audioscrobbler_username_entry_changed_cb),
14368         (rb_audioscrobbler_username_entry_activate_cb),
14369         (rb_audioscrobbler_password_entry_changed_cb),
14370         (rb_audioscrobbler_password_entry_activate_cb),
14371         (rb_audioscrobbler_enabled_check_changed_cb),
14372         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14373         (rb_audioscrobbler_load_entry_from_string),
14374         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14375         (rb_audioscrobbler_print_queue),
14376         (rb_audioscrobbler_free_queue_entries):
14377         * shell/rb-audioscrobbler.h:
14378         * shell/rb-shell-preferences.c:
14379         (rb_shell_preferences_append_audioscrobbler_config):
14380         * shell/rb-shell-preferences.h:
14381         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14382         (rb_shell_select_source), (rb_shell_cmd_preferences):
14383         * sources/Makefile.am:
14385 2005-10-21  James Livingston  <jrl@ids.org.au>
14387         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14389         * Makefile.am:
14390         * NEWS:
14391         * configure.ac:
14392         * data/art/Makefile.am:
14393         * data/glade/Makefile.am:
14394         * data/rhythmbox.schemas:
14395         * data/ui/rhythmbox-ui.xml:
14396         * doc/reference/Makefile.am:
14397         * doc/reference/tmpl/rhythmdb.sgml:
14398         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14399         * lib/rb-stock-icons.h:
14400         * po/POTFILES.in:
14401         * podcast/Makefile.am:
14402         + podcast/rb-feed-podcast-properties-dialog.c:
14403         + podcast/rb-feed-podcast-properties-dialog.h:
14404         + podcast/rb-new-podcast-dialog.c:
14405         + podcast/rb-new-podcast-dialog.h:
14406         + podcast/rb-podcast-manager.c:
14407         + podcast/rb-podcast-manager.h:
14408         + podcast/rb-podcast-marshal.list:
14409         + podcast/rb-podcast-parse.c:
14410         + podcast/rb-podcast-parse.h:
14411         + podcast/rb-podcast-properties-dialog.c:
14412         + podcast/rb-podcast-properties-dialog.h:
14413         * rhythmdb/rhythmdb-property-model.c:
14414         (rhythmdb_property_model_set_property),
14415         (rhythmdb_property_model_enable_drag):
14416         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14417         (rhythmdb_tree_parser_end_element), (save_entry),
14418         (rhythmdb_tree_save):
14419         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14420         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14421         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14422         (rhythmdb_entry_podcast_feed_get_type):
14423         * rhythmdb/rhythmdb.h:
14424         * shell/Makefile.am:
14425         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14426         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14427         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14428         (rb_shell_quit):
14429         * sources/Makefile.am:
14430         + sources/rb-podcast-source.c:
14431         + sources/rb-podcast-source.h:
14432         * widgets/Makefile.am:
14433         * widgets/rb-property-view.c: (rb_property_view_class_init),
14434         (rb_property_view_constructor),
14435         (rb_property_view_selection_changed_cb),
14436         (rb_property_view_get_treeview):
14437         * widgets/rb-property-view.h:
14438         + widgets/rb-simple-view.c:
14439         + widgets/rb-simple-view.h:
14441 2005-10-20  James Livingston  <jrl@ids.org.au>
14443         * NEWS: update with changes since 0.9.1
14445         * configure.ac: check whether collate_key_for_filename is available
14446         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14447         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14448         it if it isn't available in glib (i.e. building against 2.6)
14449         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14450         collation to get "natural sorting". Closes bug 158599.
14452 2005-10-20  James Livingston  <jrl@ids.org.au>
14454         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14456         * doc/reference/tmpl/rb-shell-player.sgml:
14457         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14458         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14459         (rb_shell_player_get_playing),
14460         (rb_shell_player_get_playing_time_string),
14461         (rb_shell_player_get_playing_time),
14462         (rb_shell_player_set_playing_time), (tick_cb),
14463         (rb_shell_player_get_playing_path), (filter_mmkeys):
14464         * shell/rb-shell-player.h:
14465         * shell/rb-shell-player.xml:
14466         * shell/rb-shell.c: (rb_shell_constructor),
14467         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14468         (rb_shell_set_window_title), (rb_shell_playing_impl),
14469         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14470         Merge the duration_changed and elapsed_changed DBUS signals into one
14471         elapsed_changed signal. Check that the output argument isn't NULL
14472         before trying to put things in it.
14474 2005-10-20  James Livingston  <jrl@ids.org.au>
14476         * rhythmdb/rhythmdb-query-model.c:
14477         (rhythmdb_query_model_entry_added_cb),
14478         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14479         problem where hidden entries could be shown in playlists.
14480         
14481         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14482         issues when switching in and out of small mode.
14484 2005-10-19  James Livingston  <jrl@ids.org.au>
14486         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14487         (rb_shell_constructor), (rb_shell_window_state_cb),
14488         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14489         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14490         (rb_shell_view_smalldisplay_changed_cb),
14491         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14492         (rb_shell_sync_paned): remove gconf window-state races, prevent
14493         changing small mode too often, fix window event races. Closes 122806.
14495         
14496         Patch from Caio Marcelo <cmarcelo@gmail.com>
14498         * data/rhythmbox.schemas:
14499         * shell/rb-shell.c: (rb_shell_window_state_cb),
14500         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14501         Remember the position of the window. Closes 315289.
14503 2005-10-19  James Livingston  <jrl@ids.org.au>
14505         Patch from Christophe Fergeau  <teuf@gnome.org>
14507         * configure.ac: determine whether libgpod is present when neither
14508         --with-ipod nor --without-ipod is passed
14510 2005-10-19  James Livingston  <jrl@ids.org.au>
14512         Patch from Caio Marcelo <cmarcelo@gmail.com>
14514         * shell/rb-shell-player.c: (do_next_idle),
14515         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14516         (rb_shell_player_do_previous_or_seek),
14517         (rb_shell_player_previous_button_cb),
14518         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14519         (rb_shell_player_cmd_next), (eos_cb):
14520         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14521         end of the playlist is reached.
14523 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14525         * lib/rb-thread.c: fix a few GSource leaks
14527 2005-10-19  James Livingston  <jrl@ids.org.au>
14529         * doc/reference/tmpl/bacon-volume.sgml:
14530         * doc/reference/tmpl/disclosure-widget.sgml:
14531         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14532         * doc/reference/tmpl/eggnotificationbubble.sgml:
14533         * doc/reference/tmpl/eggtrayicon.sgml:
14534         * doc/reference/tmpl/gsequence.sgml:
14535         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14536         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14537         * doc/reference/tmpl/rb-daap-connection.sgml:
14538         * doc/reference/tmpl/rb-daap-dialog.sgml:
14539         * doc/reference/tmpl/rb-daap-mdns.sgml:
14540         * doc/reference/tmpl/rb-daap-share.sgml:
14541         * doc/reference/tmpl/rb-daap-sharing.sgml:
14542         * doc/reference/tmpl/rb-daap-source.sgml:
14543         * doc/reference/tmpl/rb-daap-src.sgml:
14544         * doc/reference/tmpl/rb-daap-structure.sgml:
14545         * doc/reference/tmpl/rb-debug.sgml:
14546         * doc/reference/tmpl/rb-dialog.sgml:
14547         * doc/reference/tmpl/rb-druid.sgml:
14548         * doc/reference/tmpl/rb-entry-view.sgml:
14549         * doc/reference/tmpl/rb-enums.sgml:
14550         * doc/reference/tmpl/rb-file-helpers.sgml:
14551         * doc/reference/tmpl/rb-glade-helpers.sgml:
14552         * doc/reference/tmpl/rb-header.sgml:
14553         * doc/reference/tmpl/rb-history.sgml:
14554         * doc/reference/tmpl/rb-ipod-source.sgml:
14555         * doc/reference/tmpl/rb-iradio-source.sgml:
14556         * doc/reference/tmpl/rb-library-source.sgml:
14557         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14558         * doc/reference/tmpl/rb-metadata.sgml:
14559         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14560         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14561         * doc/reference/tmpl/rb-play-order-linear.sgml:
14562         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14563         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14564         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14565         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14566         * doc/reference/tmpl/rb-play-order-random.sgml:
14567         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14568         * doc/reference/tmpl/rb-play-order.sgml:
14569         * doc/reference/tmpl/rb-player.sgml:
14570         * doc/reference/tmpl/rb-playlist-manager.sgml:
14571         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14572         * doc/reference/tmpl/rb-playlist-source.sgml:
14573         * doc/reference/tmpl/rb-preferences.sgml:
14574         * doc/reference/tmpl/rb-property-view.sgml:
14575         * doc/reference/tmpl/rb-query-creator-private.sgml:
14576         * doc/reference/tmpl/rb-query-creator.sgml:
14577         * doc/reference/tmpl/rb-rating-helper.sgml:
14578         * doc/reference/tmpl/rb-rating.sgml:
14579         * doc/reference/tmpl/rb-recorder.sgml:
14580         * doc/reference/tmpl/rb-refstring.sgml:
14581         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14582         * doc/reference/tmpl/rb-removable-media-source.sgml:
14583         * doc/reference/tmpl/rb-search-entry.sgml:
14584         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14585         * doc/reference/tmpl/rb-shell-glue.sgml:
14586         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14587         * doc/reference/tmpl/rb-shell-player.sgml:
14588         * doc/reference/tmpl/rb-shell-preferences.sgml:
14589         * doc/reference/tmpl/rb-shell.sgml:
14590         * doc/reference/tmpl/rb-song-display-box.sgml:
14591         * doc/reference/tmpl/rb-song-info.sgml:
14592         * doc/reference/tmpl/rb-source-header.sgml:
14593         * doc/reference/tmpl/rb-source.sgml:
14594         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14595         * doc/reference/tmpl/rb-sourcelist.sgml:
14596         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14597         * doc/reference/tmpl/rb-statusbar.sgml:
14598         * doc/reference/tmpl/rb-stock-icons.sgml:
14599         * doc/reference/tmpl/rb-string-helpers.sgml:
14600         * doc/reference/tmpl/rb-thread.sgml:
14601         * doc/reference/tmpl/rb-tray-icon.sgml:
14602         * doc/reference/tmpl/rb-tree-dnd.sgml:
14603         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14604         * doc/reference/tmpl/rb-util.sgml:
14605         * doc/reference/tmpl/rhythmbox-unused.sgml:
14606         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14607         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14608         * doc/reference/tmpl/rhythmdb-tree.sgml:
14609         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14610         
14611         * doc/reference/Makefile.am: make docs build with changed ipod support
14612         
14613         * po/POTFILES.in: remove sources/itunesdb
14615 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14617         * sources/itunesdb.c:
14618         * sources/itunesdb.h: removed now useless files
14620 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14622         * configure.ac:
14623         * shell/Makefile.am:
14624         * sources/Makefile.am:
14625         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14626         code
14627         [1]: http://www.gtkpod.org/libgpod.html
14630 2005-10-18  James Livingston  <jrl@ids.org.au>
14632         patch from Funda Wang <fundawang@linux.net.cn>
14634         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14635         the notification bubble string translatable.
14637 ============ Version 0.9.1
14639 2005-10-16  James Livingston  <jrl@ids.org.au>
14641         * configure.ac: bump version to 0.9.1
14642         * NEWS: update translation credits
14644 2005-10-16  James Livingston  <jrl@ids.org.au>
14646         * rhythmdb/rhythmdb-query-model.c:
14647         (rhythmdb_query_model_class_init),
14648         (rhythmdb_query_model_drag_data_received): 
14649         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14650         notified when things are dropped into the entry view.
14651         
14652         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14653         (rb_playlist_source_add_location_swapped),
14654         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14655         (rb_playlist_source_non_entry_dropped),
14656         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14657         things onto a playlist's entry view work correctly, and doesn't cause
14658         crashes. Allow folders to be dropped as well. (Closes 318308)
14660 2005-10-16  James Livingston  <jrl@ids.org.au>
14662         * NEWS: Update some more
14664         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14665         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14666         with the paned size, so that it doesn't move when the window is
14667         maximised/restored. Closes bug 315852.
14669         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14670         display the playcount column, as it's useless (it never get changed).
14672 2005-10-14  James Livingston  <jrl@ids.org.au>
14674         * Makefile.am:
14675         * data/Makefile.am:
14676         * doc/reference/Makefile.am: get "make distcheck" to pass again
14678 2005-10-11  James Livingston  <jrl@ids.org.au>
14680         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14681         destroy the connection when retrieving the playlists fails, because
14682         tracks have already been added. Closes 318380.
14684 2005-10-11  James Livingston  <jrl@ids.org.au>
14686         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14687         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14688         (source_name_edited_cb): Ask for the columns to be resized when a
14689         source is added, deleted or changes name.
14691 2005-10-11  James Livingston  <jrl@ids.org.au>
14693         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14694         create a thread when processing a directory. This stops up created one
14695         thread for each file in a playlist we're trying to load. Closes
14696         317850.
14698         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14699         typo that made sort-by-artist not work correctly.
14701 2005-10-11  James Livingston  <jrl@ids.org.au>
14703         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14704         support is enabled
14706 2005-10-11  James Livingston  <jrl@ids.org.au>
14708         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14709         * lib/rb-file-helpers.h: add a function to turn uris into our
14710         canonical path-escaped form
14711         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14712         above function when import playlists. This will fix the problem of
14713         duplicate entries due to different representations of the uri (bug
14714         158211).
14716 2005-10-11  James Livingston  <jrl@ids.org.au>
14718         * shell/rb-shell.c: (rb_shell_get_visibility),
14719         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14720         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14721         window hiding so that Alt-F4 works again.
14723         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14724         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14725         (rb_entry_view_string_sort_func): Stop some crashes where a string
14726         property was set to NULL.
14728 2005-10-10  James Livingston  <jrl@ids.org.au>
14730         * doc/reference/rhythmbox.types: fix gtk-doc generation
14732 2005-10-09  James Livingston  <jrl@ids.org.au>
14734         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14735         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14736         accelerators, so that we don't have as many conflicting keys.
14738 2005-10-08  James Livingston  <jrl@ids.org.au>
14740         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14741         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14742         bug 129285.
14744 2005-10-07  James Livingston  <jrl@ids.org.au>
14746         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14747         local path names in the same way as every other URI. This should stop
14748         duplicates occurring due to different escapings. Closes bug 158211.
14750 2005-10-06  James Livingston  <jrl@ids.org.au>
14752         * NEWS: more updates
14753         
14754         patch from Jaap Haitsma <jaap@haitsma.org>:
14756         * configure.ac:
14757         * data/Makefile.am:
14758         * data/art/Makefile.am:
14759         - data/art/rhythmbox-paused.png:
14760         - data/art/rhythmbox-playback-error.png:
14761         - data/art/rhythmbox-playing.png:
14762         - data/art-clearlooks/:
14763         * lib/rb-file-helpers.c: (rb_file):
14764         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14765         * lib/rb-stock-icons.h:
14766         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14767         * widgets/rb-cell-renderer-pixbuf.c:
14768         (rb_cell_renderer_pixbuf_render):
14769         * widgets/rb-entry-view.c: (rb_entry_view_init),
14770         (rb_entry_view_set_playing):
14771         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14772         stock icons instead of custom art. Drop remanents of art-clearlooks.
14774 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14776         * configure.ac: Added ne in ALL_LINGUAS
14778 2005-10-02  James Livingston  <jrl@ids.org.au>
14780         * data/glade/Makefile.am: actually install the daap prefs glade file
14782 2005-09-30  James Livingston  <jrl@ids.org.au>
14784         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14785         translatable files, so that make check works and we don't annoy the
14786         translators.
14787         
14788         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14789         sanity checking, in case a db entry is missing some properties.
14791 2005-09-29  James Livingston  <jrl@ids.org.au>
14793         - lib/rb-string-helpers.c:
14794         - lib/rb-string-helpers.h:
14795         * lib/Makefile.am:
14796         * rhythmdb/rhythmdb-tree.c:
14797         * rhythmdb/rhythmdb.c:
14798         * shell/main.c: (main):
14799         * shell/rb-shell.c:
14800         * widgets/rb-entry-view.c:
14801         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14802         utility functions haven't been used in a while.
14804 2005-09-27  James Livingston  <jrl@ids.org.au>
14806         * data/art-clearlooks/Makefile.am:
14807         - data/art-clearlooks/rhythmbox-album.png:
14808         - data/art-clearlooks/rhythmbox-audiocd.png:
14809         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14810         - data/art-clearlooks/rhythmbox-dnd.png:
14811         - data/art-clearlooks/rhythmbox-ipod.png:
14812         - data/art-clearlooks/rhythmbox-iradio.png:
14813         - data/art-clearlooks/rhythmbox-library.png:
14814         - data/art-clearlooks/rhythmbox-next.png:
14815         - data/art-clearlooks/rhythmbox-pause.png:
14816         - data/art-clearlooks/rhythmbox-play.png:
14817         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14818         - data/art-clearlooks/rhythmbox-playlist.png:
14819         - data/art-clearlooks/rhythmbox-previous.png:
14820         - data/art-clearlooks/rhythmbox-repeat.png:
14821         - data/art-clearlooks/rhythmbox-rewind.png:
14822         - data/art-clearlooks/rhythmbox-shuffle.png:
14823         - data/art-clearlooks/rhythmbox-stop.png:
14824         - data/art-clearlooks/rhythmbox-visuals.png:
14825         - data/art-clearlooks/rhythmbox-volume-max.png:
14826         - data/art-clearlooks/rhythmbox-volume-medium.png:
14827         - data/art-clearlooks/rhythmbox-volume-min.png:
14828         - data/art-clearlooks/rhythmbox-volume-mute.png:
14829         - data/art-clearlooks/rhythmbox-volume-zero.png:
14830         * data/art/Makefile.am:
14831         - data/art/rhythmbox-album.png:
14832         - data/art/rhythmbox-audiocd.png:
14833         - data/art/rhythmbox-automatic-playlist.png:
14834         - data/art/rhythmbox-dnd.png:
14835         - data/art/rhythmbox-ipod.png:
14836         - data/art/rhythmbox-iradio.png:
14837         - data/art/rhythmbox-library.png:
14838         - data/art/rhythmbox-next.png:
14839         - data/art/rhythmbox-pause.png:
14840         - data/art/rhythmbox-play.png:
14841         - data/art/rhythmbox-playlist-menu.png:
14842         - data/art/rhythmbox-playlist.png:
14843         - data/art/rhythmbox-previous.png:
14844         - data/art/rhythmbox-repeat.png:
14845         - data/art/rhythmbox-rewind.png:
14846         - data/art/rhythmbox-shuffle.png:
14847         - data/art/rhythmbox-stop.png:
14848         - data/art/rhythmbox-visuals.png:
14849         - data/art/rhythmbox-volume-max.png:
14850         - data/art/rhythmbox-volume-medium.png:
14851         - data/art/rhythmbox-volume-min.png:
14852         - data/art/rhythmbox-volume-mute.png:
14853         - data/art/rhythmbox-volume-zero.png:
14854         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14855         * lib/rb-stock-icons.h:
14856         * shell/rb-playlist-manager.c:
14857         * shell/rb-shell-player.c:
14858         * sources/rb-daap-source.c: (rb_daap_get_icon):
14859         * sources/rb-ipod-source.c:
14860         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14861         * sources/rb-library-source.c: (rb_library_source_new):
14862         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14863         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14864         that hasn't been used in a LONG time, and also remove art that are
14865         now stock icons.
14867 2005-09-27  James Livingston  <jrl@ids.org.au>
14869         * README: point to the gnome.org web sites, and update the example
14870         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14871         
14872         * rhythmdb/rhythmdb-query-model.c:
14873         (rhythmdb_query_model_set_property),
14874         (rhythmdb_query_model_get_property),
14875         (rhythmdb_query_model_finalize):
14876         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14877         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14878         * rhythmdb/rhythmdb.h:
14879         * sources/rb-iradio-source.c: (impl_search):
14880         * sources/rb-library-source.c: (impl_search): Add query
14881         "preprocessing", which performs operations such as casefolding any
14882         strings that will be compared to any of the *_FOLDED properties.
14883         Closes bug 316039
14885 2005-09-27  James Livingston  <jrl@ids.org.au>
14887         * data/glade/daap-prefs.glade:
14888         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14889         file for the daap preferences pane
14890         
14891         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14892         (rb_sourcelist_append), (rb_sourcelist_remove),
14893         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14894         don't display the column for source expanders unless there is an
14895         expandable source.
14897 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14899         * .cvsignore:
14900         * Makefile.am:
14901         * configure.ac:
14902         * doc/.cvsignore:
14903         * doc/Makefile.am:
14904         * doc/reference/.cvsignore:
14905         * doc/reference/Makefile.am:
14906         * doc/reference/rhythmbox-docs.sgml:
14907         * doc/reference/rhythmbox-sections.txt:
14908         * doc/reference/rhythmbox.types:
14909         * doc/reference/tmpl/bacon-volume.sgml:
14910         * doc/reference/tmpl/disclosure-widget.sgml:
14911         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14912         * doc/reference/tmpl/eggnotificationbubble.sgml:
14913         * doc/reference/tmpl/eggtrayicon.sgml:
14914         * doc/reference/tmpl/gsequence.sgml:
14915         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14916         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14917         * doc/reference/tmpl/rb-daap-connection.sgml:
14918         * doc/reference/tmpl/rb-daap-dialog.sgml:
14919         * doc/reference/tmpl/rb-daap-mdns.sgml:
14920         * doc/reference/tmpl/rb-daap-share.sgml:
14921         * doc/reference/tmpl/rb-daap-sharing.sgml:
14922         * doc/reference/tmpl/rb-daap-source.sgml:
14923         * doc/reference/tmpl/rb-daap-src.sgml:
14924         * doc/reference/tmpl/rb-daap-structure.sgml:
14925         * doc/reference/tmpl/rb-debug.sgml:
14926         * doc/reference/tmpl/rb-dialog.sgml:
14927         * doc/reference/tmpl/rb-druid.sgml:
14928         * doc/reference/tmpl/rb-entry-view.sgml:
14929         * doc/reference/tmpl/rb-enums.sgml:
14930         * doc/reference/tmpl/rb-file-helpers.sgml:
14931         * doc/reference/tmpl/rb-glade-helpers.sgml:
14932         * doc/reference/tmpl/rb-header.sgml:
14933         * doc/reference/tmpl/rb-history.sgml:
14934         * doc/reference/tmpl/rb-ipod-source.sgml:
14935         * doc/reference/tmpl/rb-iradio-source.sgml:
14936         * doc/reference/tmpl/rb-library-source.sgml:
14937         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14938         * doc/reference/tmpl/rb-metadata.sgml:
14939         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14940         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14941         * doc/reference/tmpl/rb-play-order-linear.sgml:
14942         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14943         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14944         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14945         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14946         * doc/reference/tmpl/rb-play-order-random.sgml:
14947         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14948         * doc/reference/tmpl/rb-play-order.sgml:
14949         * doc/reference/tmpl/rb-player.sgml:
14950         * doc/reference/tmpl/rb-playlist-manager.sgml:
14951         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14952         * doc/reference/tmpl/rb-playlist-source.sgml:
14953         * doc/reference/tmpl/rb-preferences.sgml:
14954         * doc/reference/tmpl/rb-property-view.sgml:
14955         * doc/reference/tmpl/rb-query-creator-private.sgml:
14956         * doc/reference/tmpl/rb-query-creator.sgml:
14957         * doc/reference/tmpl/rb-rating-helper.sgml:
14958         * doc/reference/tmpl/rb-rating.sgml:
14959         * doc/reference/tmpl/rb-recorder.sgml:
14960         * doc/reference/tmpl/rb-refstring.sgml:
14961         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14962         * doc/reference/tmpl/rb-removable-media-source.sgml:
14963         * doc/reference/tmpl/rb-search-entry.sgml:
14964         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14965         * doc/reference/tmpl/rb-shell-glue.sgml:
14966         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14967         * doc/reference/tmpl/rb-shell-player.sgml:
14968         * doc/reference/tmpl/rb-shell-preferences.sgml:
14969         * doc/reference/tmpl/rb-shell.sgml:
14970         * doc/reference/tmpl/rb-song-display-box.sgml:
14971         * doc/reference/tmpl/rb-song-info.sgml:
14972         * doc/reference/tmpl/rb-source-header.sgml:
14973         * doc/reference/tmpl/rb-source.sgml:
14974         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14975         * doc/reference/tmpl/rb-sourcelist.sgml:
14976         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14977         * doc/reference/tmpl/rb-statusbar.sgml:
14978         * doc/reference/tmpl/rb-stock-icons.sgml:
14979         * doc/reference/tmpl/rb-string-helpers.sgml:
14980         * doc/reference/tmpl/rb-thread.sgml:
14981         * doc/reference/tmpl/rb-tray-icon.sgml:
14982         * doc/reference/tmpl/rb-tree-dnd.sgml:
14983         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14984         * doc/reference/tmpl/rb-util.sgml:
14985         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14986         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14987         * doc/reference/tmpl/rhythmdb-tree.sgml:
14988         * doc/reference/tmpl/rhythmdb.sgml:
14989         * macros/.cvsignore:
14990         * shell/Makefile.am:
14991         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14992         (rb_source_finalize), (rb_source_set_property),
14993         (rb_source_get_property), (default_get_pixbuf),
14994         (_rb_source_show_popup):
14995         * sources/rb-source.h:
14996         Add support for gtk-doc in rhythmbox.
14997         Convert RBSource to use newer glib functions, such as add_private.
14998         Gives RBSource a default get_pixbuf implementation.
15000 2005-09-25  James Livingston  <jrl@ids.org.au>
15002         * NEWS: Update with about a months worth of changes
15004         * data/glade/song-info-multiple.glade:
15005         * data/glade/song-info.glade:
15006         * data/rhythmbox.schemas:
15007         * lib/rb-preferences.h:
15008         * rhythmdb/rhythmdb.h:
15009         * shell/rb-shell-player.c:
15010         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15011         few remaining parts of autorating.
15013 2005-09-24  James Livingston  <jrl@ids.org.au>
15015         * shell/rb-shell.c: (rb_shell_constructor),
15016         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15017         (rb_shell_window_configure_cb): store window state in the gconf keys,
15018         so that it gets used. Closes bugs 313893 and 137068.
15020 2005-09-20  James Livingston  <jrl@ids.org.au>
15022         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15023         crash if the entry has a NULL string in a property
15024         
15025         * shell/rb-removable-media-manager.c:
15026         (rb_removable_media_manager_load_media): fix some memory leaks
15027         
15028         (rb_removable_media_manager_mount_volume),
15029         (rb_removable_media_manager_eject_medium_cb),
15030         (rb_removable_media_manager_cmd_eject_medium): use
15031         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15032         
15033         * sources/rb-removable-media-source.c:
15034         (rb_removable_media_source_set_property),
15035         (rb_removable_media_source_get_property): use
15036         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15038 2005-09-18  James Livingston  <jrl@ids.org.au>
15040         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15041         column
15043         * data/glade/general-prefs.glade:
15044         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15045         (rb_shell_preferences_column_check_changed_cb),
15046         (rb_shell_preferences_sync): add checkbox to control visibility
15047         of the column
15048         
15049         
15050         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15051         (save_entry):
15052         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15053         (rhythmdb_prop_get_type):
15054         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15055         was as "last played" is handled
15056         
15057         * sources/rb-library-source.c: (rb_library_source_constructor):
15058         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15059         Make the column show in the library and playlists
15060         
15061         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15062         * widgets/rb-entry-view.h: add the column
15063         
15064         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15065         be sorted by the column
15067 2005-09-16  James Livingston  <jrl@ids.org.au>
15069         * shell/rb-shell-player.c: (rb_shell_player_init),
15070         (rb_shell_player_do_previous_or_seek),
15071         (rb_shell_player_previous_button_cb),
15072         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15073         (rb_shell_player_playpause_button_cb): Make the previous button act
15074         the same as the menu item. Fix an inversion of the "previous track or
15075         seek" logic.
15076         
15077         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15078         
15079         (rb_shell_player_playpause): make --play-pause stop source that can't
15080         be paused
15082 2005-09-15  James Livingston  <jrl@ids.org.au>
15084         * configure.ac: increase totem-plparser requirements to 1.1.5
15086         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15087         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15088         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15089         use the newer playlist APIs to save the name of the playlist, and use
15090         the name of a loaded playlist.
15092         Closes bug 309817.
15094 2005-09-15  James Livingston  <jrl@ids.org.au>
15096         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15098         * shell/Makefile.am: stop some linker warnings
15100         * shell/main.c: (main): make --no-registration work with dbus
15102 2005-09-15  James Livingston  <jrl@ids.org.au>
15104         * daapsharing/rb-daap-sharing.c: (create_share):
15105         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15106         reference sinking and counting issues that I caused.
15108 2005-09-15  James Livingston  <jrl@ids.org.au>
15110         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15111         playing" icon in the "now playing" column header.
15113 2005-09-14  James Livingston  <jrl@ids.org.au>
15115         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15116         daap shares, when sharing is turned off.
15118 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15120         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15121         the GConf value's default, especially for badly installed schema
15122         files
15124 2005-09-12  James Livingston  <jrl@ids.org.au>
15126         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15128         Patch from Paolo Borelli <pborelli@katamail.com>
15130         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15131         grip when maximised. Closes bug 316055.
15133 2005-09-11  James Livingston  <jrl@ids.org.au>
15135         Patch from William Jon McCann <mccann@jhu.edu>
15137         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15138         subclass of GtkStatusbar instead of GtkHBox.
15139         (rb_statusbar_construct): Don't set border width.
15140         (rb_statusbar_init): Use resize grip.  Don't use
15141         markup.
15142         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15143         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15144         Connect tooltips for actions.
15145         (rb_statusbar_sync_status): Push new message to statusbar.
15146         (rb_statusbar_set_progress): Don't use markup.
15147         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15148         flag here since it prevents actually showing or hiding.
15149         (rb_statusbar_sync_with_source): Push new message to statusbar.
15151 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15153         * daapsharing/rb-daap-structure.c:
15154         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15155         around debugging definition.
15157 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15158         
15159         * daapsharing/rb-daap-structure.c:
15160         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15161         type = version.
15163         * daapsharing/rb-daap-mdns.c/h:
15164         (resolve_cb): Updated mDNS resolve callback to send service-name &
15165         name (read from Machine Name in the TXT data or equal to service-name
15166         if not in TXT).
15168         * daapsharing/rb-daap-source.c:
15169         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15170         (rb_daap_source_get_property), (rb_daap_source_new),
15171         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15172         (stop_resolver), (start_browsing), (stop_browsing), 
15173         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15174         and added 'host' and 'port' gobject properties.  Updated to use new
15175         mDNS resolve callback sending service-name & name arguments.
15177 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15179         * daapsharing/rb-daap-mdns.c:
15180         (howl_strerror): New function to report errors from Howl
15181         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15182         (get_sw_discovery), (get_avahi_client): Better error reporting from
15183         Howl & Avahi.
15185         * sources/rb-daap-source.:
15186         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15187         not get started or stopped in some situations.
15188         
15189 2005-09-12  James Livingston  <jrl@ids.org.au>
15191         * shell/rb-removable-media-manager.c: add a missing include, that
15192         would stop compilation if ipod support wasn't turned on
15194 2005-09-11  James Livingston  <jrl@ids.org.au>
15196         * daapsharing/rb-daap-dialog.c: (encode_base64),
15197         (rb_daap_password_dialog_new_run),
15198         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15199         it is no broken in to two pieces, and remove a use of a goto
15200         
15201         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15202         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15203         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15204         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15205         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15206         memory leaks, and some code style things.
15207         
15208         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15209         (rb_daap_share_init), (rb_daap_share_set_property),
15210         (rb_daap_share_dispose), (rb_daap_share_new),
15211         (rb_daap_share_get_property): make the DB and the playlist manager
15212         gobject properties.
15213         
15214         (message_add_standard_headers),
15215         (message_set_from_rb_daap_structure), (server_info_cb),
15216         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15217         (server_cb), (add_db_entry), (db_entry_added_cb),
15218         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15219         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15220         style and use CONF_PREFIX in the gconf keys
15221         
15222         * daapsharing/rb-daap-sharing.c: (create_share),
15223         (enable_sharing_changed_cb), (share_name_changed_cb),
15224         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15225         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15226         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15227         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15228         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15229         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15230         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15231         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15232         hasn't actually changed, fix some memory leaks, code style and release
15233         gconf notifications when the object is destroyed.
15234         
15235         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15236         (rb_daap_source_class_init), (rb_daap_source_init),
15237         (rb_daap_source_dispose), (rb_daap_source_set_property),
15238         (rb_daap_source_get_property), (rb_daap_source_new),
15239         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15240         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15241         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15242         (rb_daap_source_activate), (rb_daap_source_disconnect),
15243         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15244         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15245         release gconf notifications, handle gconf callbacks where the key
15246         hasn't changed, make "real name" and "password protected" gobject
15247         properties, fix some code style and fix a memory leak.
15249 2005-09-11  James Livingston  <jrl@ids.org.au>
15251         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15253         * shell/rb-playlist-manager.c:
15254         (rb_playlist_manager_save_playlists),
15255         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15256         when we aren't supposed to. (Closes bug 315886)
15258 2005-09-11  James Livingston  <jrl@ids.org.au>
15260         * shell/rb-removable-media-manager.c:
15261         (rb_removable_media_manager_class_init),
15262         (rb_removable_media_manager_init),
15263         (rb_removable_media_manager_dispose),
15264         (rb_removable_media_manager_set_property),
15265         (rb_removable_media_manager_get_property),
15266         (rb_removable_media_manager_new),
15267         (rb_removable_media_manager_load_media),
15268         (rb_removable_media_manager_volume_mounted_cb),
15269         (rb_removable_media_manager_volume_unmounted_cb),
15270         (rb_removable_media_manager_mount_volume),
15271         (rb_removable_media_manager_unmount_volume),
15272         (rb_removable_media_manager_source_deleted_cb),
15273         (rb_removable_media_manager_append_media_source),
15274         (rb_removable_media_manager_set_uimanager),
15275         (rb_removable_media_manager_eject_medium_cb),
15276         (rb_removable_media_manager_cmd_eject_medium):
15277         * shell/rb-removable-media-manager.h:
15278         * sources/rb-removable-media-source.c:
15279         (rb_removable_media_source_class_init),
15280         (rb_removable_media_source_init),
15281         (rb_removable_media_source_dispose),
15282         (rb_removable_media_source_set_property),
15283         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15284         (impl_delete_thyself):
15285         * sources/rb-removable-media-source.h: Add the four files that I
15286         somehow managed not to add to cvs in the last commit. Oops.
15288 2005-09-11  James Livingston  <jrl@ids.org.au>
15290         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15291         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15292         
15293         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15294         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15295         removable-media-manager on startup, and handle creation of sources.
15296         
15297         * sources/rb-ipod-source.h:
15298         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15299         (rb_ipod_source_init), (rb_ipod_source_constructor),
15300         (rb_ipod_source_dispose), (rb_ipod_source_new),
15301         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15302         the iPod source over to the removable media framework.
15303         
15304         * sources/rb-library-source.c: (paned_size_allocate_cb),
15305         (rb_library_source_get_paned_key): fix a potential bug is a
15306         library-derived source doesn't have a paned-key
15308 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15310         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15311         mp3 when we can't get the suffix of a file (Closes: #315941)
15313 2005-09-10  James Livingston  <jrl@ids.org.au>
15315         * configure.ac: fix the mdns tests, so that it doesn't complain about
15316         not finding one, if daap support isn't being compiled in
15318 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15320         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15322         * daapsharing/rb-daap-dialog.c:
15323         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15324         HIG compliancy & images.
15326         * daapsharing/rb-daap-mdns.c:
15327         (browse_cb), (resolve_cb): Better detection of local services.  
15328         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15329         Howl's limitations.  Fix the way collision handling is done under
15330         Avahi.
15332         * daapsharing/rb-daap-share.c:
15333         (publish_cb): Better name collision handling (at least for Avahi).
15335 2005-09-10  James Livingston  <jrl@ids.org.au>
15337         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15338         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15339         preferences more HIG compliant (Closes #315889)
15340         
15341         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15342         list of files to be translated
15344 2005-09-10  James Livingston  <jrl@ids.org.au>
15346         * configure.ac: fix it so that --enable-daap=no works
15347         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15348         uninstalled
15350 2005-09-10  James Livingston  <jrl@ids.org.au>
15352         Patch from Christophe Fergeau <teuf@gnome.org>
15354         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15355         the ipod code.
15357 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15358         * README.daap: Updating documentation
15360 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15361         * AUTHORS: Added myself.
15363         * daapsharing/rb-daap-connection.c:
15364         (connection_login), (rb_connection_new): Reorganized password
15365         handling.
15367         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15369         * shell/rb-shell.c:
15370         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15372         * sources/rb-daap-source.c:
15373         (rb_daap_source_activate): Better error handling when we are unable to
15374         connect.
15375         
15376 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15377         * README.daap: Fixed some terminology.
15379         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15380         New --with-mdns=auto|howl|avahi flag to specify.
15382         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15383         name collision dialogs.
15385         * daapsharing/rb-daap-connection.c:
15386         (connection_get_password), (build_message), (http_get)
15387         (connection_login): Ask for & use a password if the share demands it.
15389         * daapsharing/rb-daap-connection.h: Changed prototype of
15390         rb_daap_connection_new.
15391         
15392         * daapsharing/rb-daap-mdns.c: 
15393         (resolve_cb): Better detection of your own music share so it doesn't 
15394         appear in the sourcelist.
15396         * daapsharing/rb-daap-share.c:
15397         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15398         that start on any available port.
15400         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15402         * sources/rb-daap-source.c:
15403         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15404         (browse_cb): Handle passworded shares. Resolve the host immediately
15405         instead of when activated.
15406         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15407         (rb_daap_source_new): New GConf keys for UI state.
15408         (rb_daap_source_activate): Use RBPlaylistSource instead of
15409         RBDAAPPlaylistSource
15410         
15411         * sources/rb-daap-playlist-source.c/h: Removed
15413         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15414         if the playlist is local (i.e. not DAAP or iPod).
15415         
15416         * shell/rb-playlist-manager.c:
15417         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15418         wouldn't get saved if the last playlist hadn't changed.  Only save
15419         local playlists.
15420         
15421 2005-09-09  James Livingston  <jrl@ids.org.au>
15423         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15424         iPod preferences pane, as it already uses the browser views as the
15425         library.
15427 2005-09-09  James Livingston  <jrl@ids.org.au>
15429         * sources/rb-library-source.c: (rb_library_source_finalize),
15430         (rb_library_source_constructor): fix gconf monitoring of library
15431         preference keys.
15432         * sources/rb-library-source.h: remove declaration of function that
15433         does not exist
15435 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15437         * player/rb-player-gst.c:
15438         (rb_player_set_time): Fix seeking in daap streams.
15440 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15442         * data/rhythmbox.schemas: Turn music share browsing on by default.
15444 2005-09-07  James Livingston  <jrl@ids.org.au>
15446         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15448 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15449         * player/rb-player-gst.c: 
15450         (rb_player_get_time): Fix for extra << & == that accidentally made
15451         it in.
15453         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15454         
15455 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15456         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15457         it in last time.  Sorry.
15459 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15460         
15461         * player/rb-player-gst.c:
15462         (rb_player_get_time): Fix a small crash appearing when
15463         the uri isn't set in the player, but rb_player_get_time() is
15464         still called.
15466         * configure.ac: Also check for libsoup 2.4, which is what ships with
15467         Gnome 2.12.
15469         * po/POTFILES.in: Added music sharing files that have translatable 
15470         strings.
15472         * README.daap: New file explaining "How Music Sharing Works"  
15474 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15476         * daapsharing/.cvsignore: added
15478 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15480         * daapsharing/*: Music sharing library.
15481         
15482         * sources/rb-daap-source.c/h: Music share RBSource.
15483         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15485         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15486         libsoup and a mutlicast DNS implementation (howl or avahi).
15488         * data/rhythmbox.schemas: New GConf keys for music sharing.
15490         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15491         source right click menu.
15493         * player/rb-player-gst.c: Changes to properly play & seek in remote
15494         music share files.
15496         * shell/rb-playlist-manager.c/h:
15497         (rb_playlist_manager_get_playlists): New function to get a GList * of
15498         the playlists.
15499         (rb_playlist_manager_save_playlists): Don't save music share playlists
15500         and fixed a GObject reference leak.
15502         * shell/rb-shell.c/h:
15503         (rb_shell_append_source): No longer a local function.  Now takes a
15504         parent RBSource * argument, NULL to append a toplevel source.
15505         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15506         source (useful for disconnecting from remote music share,
15507         specifically).
15508         (rb_shell_quit): Stop music sharing/browsing.
15509         (rb_shell_playlist_added_cb): Work with tree source structure.
15510         (rb_shell_get_property): "playlist-manager" property accessor.
15511         (rb_shell_class_init): New "playlist-manager" property.
15512         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15513         daap sharing/browsing.
15514         (rb_shell_select_source): Notify source of activation/deactivation.
15516         * shell/rb-shell-prefernces.c: Music sharing preferences.
15518         * sources/rb-source.c/h: New activate, deactivate and disconnect
15519         class functions.  Activate & deactivate are notification style 
15520         functions that will tell a source when it is selected/unselected.
15521         Disconnect can be hooked up to a UI object to disconnect the source.
15523         * sources/rb-sourcelist-model.c:
15524         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15525         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15526         append a toplevel source.
15528 2005-09-05  James Livingston  <jrl@ids.org.au>
15530         * rhythmdb/rhythmdb-query-model.c:
15531         (rhythmdb_query_model_entry_changed_cb),
15532         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15533         the duration of filesize of an entry changes.  Emit the row-changed
15534         signals that I forgot to put back in, when I was doing query sorting.
15536         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15537         out "0 minutes" or "0 bytes".
15539 2005-09-04  James Livingston  <jrl@ids.org.au>
15541         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15542         remove a leftover bit of the "internal-name" property of sources.
15544 2005-09-03  James Livingston  <jrl@ids.org.au>
15546         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15547         extraneous debug message
15548         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15549         crasher would affect any library-derived sources (which was also a
15550         memory leak).
15552 2005-09-02  Colin Walters  <walters@verbum.org>
15554         * configure.ac: Fix sytnax error.
15556         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15557         code to disable minimization icons - need to figure out
15558         why it doesn't work...
15560 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15562         * data/glade/song-info-multiple.glade:
15563         * data/glade/song-info.glade:
15564         * widgets/rb-song-info.c: (rb_song_info_constructor):
15565         Add a mnemonic to the newly added "Automatically rate" label
15566         in the properties dialog and use a bold typeface like all the 
15567         other labels in the dialog. (Closes bug 315089)
15569 2005-09-03  James Livingston  <jrl@ids.org.au>
15571         * sources/rb-library-source.c: (rb_library_source_class_init),
15572         (rb_library_source_finalize), (rb_library_source_constructor),
15573         (rb_library_source_set_property), (rb_library_source_get_property),
15574         (impl_get_paned_key), (paned_size_allocate_cb),
15575         (rb_library_source_state_prefs_sync), (impl_show_popup),
15576         (rb_library_source_get_paned_key):
15577         * sources/rb-library-source.h: Allow sources derived from
15578         RBLibrarySource to use different gconf keys for sort order, browser
15579         visibility and browser pane position. Fix a crasher if a derived
15580         source overrides _get_pixbuf.
15582 2005-09-02  Colin Walters  <walters@verbum.org>
15584         * shell/rb-shell.c (rb_shell_set_visibility): Move
15585         hint setting which seems to avoid races more.
15586         
15587 2005-09-03  James Livingston  <jrl@ids.org.au>
15589         * shell/rb-shell.c: fix compilation with iPod support enabled
15590         
15591 2005-09-02  Colin Walters  <walters@verbum.org>
15593         * shell/rb-shell.c (struct RBShellPrivate): Add
15594         idle_hide_mainwindow_id.
15595         (rb_shell_constructor): Move taskbar skipping hint into
15596         rb_shell_set_visibility.
15597         (idle_hide_mainwindow): New function.
15598         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15599         racy hack to avoid rb appearing in taskbar when minimized.
15601 2005-09-01  Colin Walters  <walters@verbum.org>
15603         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15605         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15606         from gtkstatusicion.c.
15608         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15610         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15611         TrayShowWindow entry.
15612         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15613         (rb_tray_icon_constructor): Create action group here.
15614         (rb_tray_icon_finalize): Destroy action group.
15615         (rb_tray_icon_set_property): Don't take an action group.
15616         (rb_tray_icon_new): Ditto.
15617         (tray_popup_position_menu): Some mostly boilerplate code
15618         to position menu.
15619         (rb_tray_icon_button_press_event_cb): Position menu.
15620         (rb_tray_icon_get_geom): New function used for the shell
15621         to set minimization hints.
15623         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15625         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15626         (struct RBShellPrivate): Change visible to iconified.
15627         (set_icon_geometry): New function from Søren Sandmann to
15628         tell Metacity where to draw the minimization animiation.
15629         (rb_shell_window_state_cb): Update iconified.
15630         (rb_shell_get_visibility): New function to say whether
15631         or not we're currently visible.
15632         (rb_shell_set_visibility): Update to minimize to
15633         tray or present as appropriate.
15634         (rb_shell_window_delete_cb): On window close, just
15635         minimize to tray if we're deleted.
15636         (rb_shell_set_window_title): Kill old notification code.
15637         (rb_shell_toggle_visibility): Nwe function.
15638         (rb_shell_cmd_toggle_visibility): Call it.
15639         (rb_shell_constructor): Skip the taskbar.
15640         (tray_destroy_cb): Better debugging.
15641         
15642 2005-09-01  Colin Walters  <walters@verbum.org>
15644         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15646         * configure.ac: Enable bonobo by default.
15647         
15648 2005-09-01  Colin Walters  <walters@verbum.org>
15650         * configure.ac: Default to old art.  Add macros subdir.
15652         * Makefile.am (SUBDIRS): Add macros.
15654         * macros/Makefile.am: New.
15655         
15656 2005-09-01  Colin Walters  <walters@verbum.org>
15658         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15659         rb-shell-player.xml.
15661         * remote/dbus/rb-remote-dbus.h: Deleted.
15662         
15663         * remote/dbus/Makefile.am: Delete all the junk, just dist
15664         rb-print-playing.py and rb-set-rating.py.
15666         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15668         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15670 2005-09-02  James Livingston  <jrl@ids.org.au>
15672         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15673         file from cvs
15675         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15676         (rb_shell_constructor): Patches from Jonathan Matthew
15677         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15678         a crash when using "browse this artist".
15680 2005-08-31  Colin Walters  <walters@verbum.org>
15682         * configure.ac: Add --with-old-art configure switch.  Also
15683         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15684         but it doesn't work.
15686         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15687         Don't use eel_create_colorized_pixbuf for new art.
15688         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15690         * data/art-clearlooks: New artwork.
15691         
15692 2005-08-31  Colin Walters  <walters@verbum.org>
15694         * shell/main.c (main): Fix Bastien's commit to continue to focus
15695         the window with GTK+ 2.8 at least.
15696         
15697 2005-08-31  Colin Walters  <walters@verbum.org>
15699         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15700         is already loaded.
15702         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15704 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15706         * README: remove mentions of the xine-lib backend
15707         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15709 2005-08-30  Colin Walters  <walters@verbum.org>
15711         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15712         Make non-visible sources insensitive.
15713         
15714 2005-08-30  Colin Walters  <walters@verbum.org>
15716         * shell/rb-shell.c: Don't use GConf for selected source; it's
15717         confusing to have the selected source change after startup,
15718         and since we don't save other things it's not worth saving this.
15720         * sources/rb-playlist-source.c:
15721         * sources/rb-library-source.c:
15722         * sources/rb-iradio-source.c:
15723         * sources/rb-ipod-source.c: Delete internal-name property usage.
15724         * sources/rb-source.c: Delete internal-name property.
15726         * data/rhythmbox.schemas: Delete selected_source.
15727         
15728 2005-08-30  Colin Walters  <walters@verbum.org>
15730         * sources/rb-sourcelist.c: Make playing source bold instead of
15731         displaying a pixbuf; it's much less ugly.
15732         
15733 2005-08-30  Colin Walters  <walters@verbum.org>
15735         * sources/rb-source.c:
15736         * sources/rb-source.h: New virtual method try_playlist.
15738         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15739         impl_try_playlist.
15740         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15741         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15742         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15743         need to.
15744         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15745         in theory we should though...
15747         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15748         list in rb_shell_construct now.
15749         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15750         RBiPodSource.
15751         (rb_shell_constructor): Create library, iradio, ipod here.
15752         (rb_shell_source_deleted_cb): Use source directly instead of
15753         indirecting through type.
15754         (rb_shell_sync_selected_source): Ditto.
15755         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15756         from the type instead of special-casing.
15757         (rb_shell_guess_type_for_uri) 
15758         (rb_shell_add_uri)
15759         (handle_one_uri_with_possible_metadata): New functions.
15760         (rb_shell_load_uri): Refactor to allow loading playlists again,
15761         also use other URI infrastructure.
15763         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15764         (rb_shell_player_error): Always set entry error on error, instead
15765         of depending on EOF behavior.
15767         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15768         to just invoke rb_shell_add_uri.
15769         (rb_playlist_manager_parse_file): Return error instead of tossing
15770         up dialog box directly.
15771         (load_playlist_response_cb): Display error here.
15772         (add_uri_to_playlist): Delete.
15773         (handle_playlist_entry_into_playlist_cb): Renamed to
15774         handle_playlist_entry_cb.
15776         * shell/rb-playlist-manager.h: Add error, update prototype.
15778         * lib/rb-file-helpers.c:
15779         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15781 2005-08-29  Colin Walters  <walters@verbum.org>
15783         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15784         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15786         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15787         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15788         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15790         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15791         Prototype rb_shell_set_song_property.
15793         * shell/rb-shell.xml: Export setSongProperty.
15795         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15796         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15797         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15799         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15800         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15801         want to notify of the change.
15802         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15804         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15805         logic error; idle functions would be enqueued for each set.
15806         (rhythmdb_entry_set): Fix assertion logic error.
15808         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15809         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15810         Return if the entry already exists.
15811         
15812 2005-08-29  Colin Walters  <walters@verbum.org>
15814         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15815         "inserted" member which we use to keep track of
15816         whether or not an entry is in the DB.  Prototype
15817         rhythmdb_entry_set_uninserted.
15819         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15820         flag.
15821         (rhythmdb_entry_insert): Assert entry is not already inserted.
15822         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15823         just after creating entry.
15824         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15825         (rhythmdb_entry_set_nonotify): Ditto.
15826         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15827         entries.
15828         (rhythmdb_entry_set_internal): Change notify flag to
15829         notify_if_inserted.  Also move notification after assertions.
15831         Update all existing callers of rhythmdb_entry_set_internal
15832         to give TRUE for notify_if_inserted; this should be what
15833         we want but may be an efficiency hit.
15834         
15835 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15837         * shell/rb-shell-player.c: (rb_shell_player_init),
15838         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15839         (rb_shell_player_set_playing_source_internal),
15840         (rb_shell_player_sync_with_selected_source): Notify the player when an
15841         entry has updated the title, album or artist field, and resync the big
15842         display.
15843         
15844         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15845         * sources/rb-library-source.c: (rb_library_source_class_init),
15846         (impl_get_config_widget):
15847         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15848         * sources/rb-source.c:
15849         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15850         get_album functions in rb-source and adapted other sources accordingly.
15851         
15852 2005-08-29  Colin Walters  <walters@verbum.org>
15854         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15855         signal_change member.
15856         (threadsafe_entry_set): New function.
15857         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15858         (rhythmdb_entry_set_nonotify): New function; just call
15859         threadsafe_entry_set with FALSE.
15860         (rhythmdb_entry_set_internal): Take a notify flag; if true
15861         add the change to our pending set.
15863         Also update all internal callers of rhythmdb_entry_set_internal
15864         to pass FALSE.  Some of these may be bugs however and need to
15865         pass TRUE...
15867         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15868         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15869         rhythmdb_entry_set_nonotify.
15871         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15872         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15874         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15876         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15877         * sources/rb-source.c (rb_source_update_play_statistics): 
15878         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15879         * sources/rb-ipod-source.c (entry_set_string_prop) 
15880         (load_ipod_db_idle_cb): 
15881         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15882         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15883         (info_available_cb): 
15884         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15885         (rb_station_properties_dialog_sync_entries): 
15886         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15888         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15889         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15890         
15891 2005-08-29  Colin Walters  <walters@verbum.org>
15893         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15895         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15896         linking insanity.
15898         * widgets/rb-header.c (sanitize_string): New function, extracted
15899         from old info_url.  Be sure to always strip the string.
15900         (info_url): Rewrite to take artist/album, and generate a sane
15901         URL for them from last.fm, which is better than allmusic.com in
15902         that they support Rhythmbox, and have a *SANE* URL scheme.
15903         (artist_info_url, album_info_url): Delete.
15904         (rb_header_sync): Use info_url.
15906 2005-08-29  James Livingston  <jrl@ids.org.au>
15908         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15909         is implemented before calling it. Many sources don't implement the
15910         method.
15912 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15914         * data/glade/create-playlist.glade:  Cleanup the layout,
15915         and add a few more mnemonics.
15916         * shell/rb-playlist-manager.c:
15917         (rb_playlist_manager_cmd_load_playlist),
15918         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15919         capitalization for window titles.
15920         * widgets/rb-query-creator-properties.c: Add mnemonics
15921         to checkbutton labels.
15922         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15923         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15925 2005-08-28  Colin Walters  <walters@verbum.org>
15927         * data/rhythmbox.schemas: Delete search_text for library
15928         and iradio; this isn't a persistent value anymore.
15929         Closes #313757.
15930         
15931         * sources/rb-source.h:
15932         * sources/rb-source.c: Delete impl_can_search.
15934         * sources/rb-iradio-source.c: Delete search_text usage.
15935         * sources/rb-library-source.c: Ditto.
15937         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15938         search when source is set, and just do rb_source_search in
15939         rb_source_header_search_cb.
15941         * shell/rb-shell.c (rb_shell_append_source): Don't
15942         initiate search.
15944         * shell/Makefile.am: Don't dist dashboard.c.
15946 2005-08-28  Colin Walters  <walters@verbum.org>
15948         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15949         
15950 2005-08-28  Colin Walters  <walters@verbum.org>
15952         * data/org.gnome.Rhythmbox.service.in: New.
15954         * data/Makefile.am: Install service file.
15956         * configure.ac: Define DBUS_SERVICES_DIR.
15958         * autogen.sh: Set ACLOCAL_FLAGS.
15960         * macros/acinclude.m4: New.
15961         
15962 2005-08-28  Colin Walters  <walters@verbum.org>
15964         Initial patch from Jonathan Matthew; closes 313684.
15966         * rhythmdb/rhythmdb-tree.c:
15967         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15968         (save_entry): Return on error.
15969         (rhythmdb_tree_save): Handle error when saving the
15970         db; additionally, handle errors from fclose and unlink,
15971         and print error too.
15973 2005-08-28  Colin Walters  <walters@verbum.org>
15975         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15976         extra _.
15977         
15978 2005-08-28  Colin Walters  <walters@verbum.org>
15980         * configure.ac: Change iPod support to --with-ipod;
15981           automatically enable it if we have HAL.  Try to
15982           support both HAL 0.5 and HAL 0.2.  Break out
15983           totem-plparser into its own check so later we
15984           can do version tests there too.
15985           Kill dashboard support.
15986         
15987         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15988         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15989         Closes #310017.
15990         
15991         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15992         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15994         * sources/Makefile.am: Also handle
15995         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15997         * shell/dashboard.c: Delete; someone should just write a little
15998         python shim which lists on the D-BUS interface and writes the
15999         stuff to Dashboard.  Even better Dashboard should be ported
16000         to D-BUS and do the listening itself, perhaps on an abstract
16001         "org.gnome.MusicPlayer" interface or something.
16003         * shell/rb-shell.c: Kill dashboard support.
16005 2005-08-28  Colin Walters  <walters@verbum.org>
16007         * remote/dbus/rb-print-playing.py: New file.
16009 2005-08-28  Colin Walters  <walters@verbum.org>
16011         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16012         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16014         * shell/rb-shell-player.h:
16015         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16016         * shell/rb-shell-player.xml: Export it.
16018         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16019         (rb_shell_error_quark): New.
16021         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16022         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16023         
16024 2005-08-28  Colin Walters  <walters@verbum.org>
16026         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16027         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16028         bonobo_unlock.
16029         (rb_remote_bonobo_preinit): Lock setting moved here.
16030         (rb_remote_bonobo_init): From here.
16032         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16033         Also invoke handle_cmdline in the right place.
16034         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16035         GFunc.
16037 2005-08-28  James Livingston  <jrl@ids.org.au>
16039         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16040         when 0.9.1 comes around.
16042 2005-08-28  James Livingston  <jrl@ids.org.au>
16044         * iradio/rb-new-station-dialog.c:
16045         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16046         bug 314477.
16048 2005-08-28  James Livingston  <jrl@ids.org.au>
16050         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16052         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16053         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16054         is a song is longer than 60 minutes. Closes bug 313311.
16056 2005-08-27  James Livingston  <jrl@ids.org.au>
16058         * data/glade/create-playlist.glade:
16059         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16060         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16061         "minutes" as an option in the playlist limit menu.
16063         * rhythmdb/rhythmdb-query-model.c:
16064         (rhythmdb_query_model_class_init),
16065         (rhythmdb_query_model_set_property),
16066         (rhythmdb_query_model_get_property),
16067         (rhythmdb_query_model_update_limited_entries): Allow query models to
16068         have a time limit
16069         
16070         * shell/rb-playlist-manager.c:
16071         (rb_playlist_manager_set_automatic_playlist),
16072         (rb_playlist_manager_cmd_edit_automatic_playlist):
16073         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16074         (rb_playlist_source_get_query), (impl_receive_drag),
16075         (rb_playlist_source_new_from_xml),
16076         (rb_playlist_source_save_to_xml),
16077         (rb_playlist_source_songs_sort_order_changed_cb),
16078         (rb_playlist_source_do_query):
16079         * sources/rb-playlist-source.h:
16080         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16082 2005-08-27  James Livingston  <jrl@ids.org.au>
16084         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16086         * configure.ac:
16087         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16088         non-standard location. Closes bug 314640.
16090 2005-08-26  Colin Walters  <walters@verbum.org>
16091         
16092         Patch from Olivier Blin <oblin@mandriva.com>
16094         * widgets/eggnotificationbubble.c (draw_bubble): 
16095         Handle extreme-left case as well.
16096         
16097 2005-08-26  Colin Walters  <walters@verbum.org>
16099         * shell/rb-shell.c (idle_save_state): Don't do this.
16100         (rb_shell_construct): Remove idle calls to idle_save_state.
16101         We should save the playlists automatically when they're
16102         modified.
16103         (rb_shell_load_uri): Don't try to re-stat entry if it already
16104         exists.
16106         * shell/rb-shell-player.c: Keep track of entry we are attempting
16107         to play.
16108         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16109         Don't double-free error.
16110         (rb_shell_player_play_entry): Signal errors.
16111         (rb_shell_player_entry_activated_cb): Ditto.
16112         (rb_shell_player_property_row_activated_cb): Ditto.
16113         (rb_shell_player_set_playing_source_internal): Unset attempted
16114         playing entry.
16115         (rb_shell_player_error): Refactor to be usable both sync and
16116         async.  Handle case where displayed entry differs from entry.
16117         (error_cb): Move GDK locking here.
16119         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16120         people can just use dbus-send or python.  We only support focusing
16121         and loading files.
16122         (load_uri_args): New function, extracted from handle_cmdline.
16123         (dbus_load_uri, bonobo_load_uri): New functions.
16125         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16126         appropriate.
16128         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16129         * remote/dbus/rb-remote-dbus.c: Deleted.
16131         * player/rb-player-gst.c: Clear any pending idle handlers when we
16132         close the player.  Signal errors generated during open/play etc
16133         as synchronous errors.
16135         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16136         
16137 2005-08-26  Colin Walters  <walters@verbum.org>
16139         * shell/rb-shell.c (rb_shell_present): Try harder.
16141 2005-08-26  Colin Walters  <walters@verbum.org>
16143         * shell/rb-shell.c (rb_shell_present): Try to handle
16144         GTK_MINOR_VERSION < 8.
16146 2005-08-26  James Livingston  <jrl@ids.org.au>
16148         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16149         <pbrobinson@gmail.com>
16151 2005-08-26  Colin Walters  <walters@verbum.org>
16153         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16155 2005-08-25  Colin Walters  <walters@verbum.org>
16157         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16158         Delete.
16159         (rb_shell_player_do_next_with_rating): Move back into
16160         rb_shell_player_do_next.
16161         (rb_shell_player_entry_activated_cb): Remove call to
16162         rb_shell_player_auto_adjust_rating.
16163         (do_next_idle): Just call rb_shell_player_do_next.
16165         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16167 2005-08-25  Colin Walters  <walters@verbum.org>
16169         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16170         before gtk_window_present_with_time.
16171         
16172 2005-08-25  Colin Walters  <walters@verbum.org>
16174         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16175         default.
16177         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16178         rb_shell_construct.  This is so we only have to do g_object_new.
16179         (rb_shell_get_player): New function.
16180         (rb_shell_get_player_path): Ditto.
16181         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16182         
16183         * shell/rb-shell.h: Prototype them.
16185         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16186         export over D-BUS.
16187         (reemit_playing_signal): New function.
16188         (rb_shell_player_open_playlist_location): Use return values from
16189         rb_player_open, rb_player_close, etc. instead of checking "error".
16190         Return a gboolean on failure.
16191         (rb_shell_player_open_entry): Just open entry location, don't
16192         print to stderr.
16193         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16194         a gboolean.
16195         (do_next_idle): Move logic for handling of end of playlist here.
16196         (rb_shell_player_set_playing_entry): Take a GError, return a
16197         gboolean.  Update to use gboolean return values.
16198         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16199         logic.  Signal an error on end of playlist.  Also signal error if
16200         we're not playing.  Move heuristic for replaying the song into
16201         rb_shell_player_cmd_previous.
16202         (rb_shell_player_do_next_with_rating): Signal error on end of
16203         playlist.
16204         (rb_shell_player_do_next): Return errors.
16205         (rb_shell_player_cmd_previous): Heuristic for restarting song
16206         moved here; the idea is you generally only want that from the GUI.
16207         (rb_shell_player_cmd_play): Handle error.
16208         (rb_shell_player_playpause): Signal errors.
16209         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16210         rb_shell_player_cmd_next in favor of the internal _do functions.
16211         
16212         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16213         errors.  Update prototypes for above changes.
16215         * shell/main.c: More tightly integrate D-BUS; register various
16216         major singleton objects here.  Fix handle_cmdline so we only
16217         process extra arguments, not every argument.
16219         * shell/Makefile.am: Generate D-BUS glue headers.
16221         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16222         into shell/main.c.  Now this file just acts as a client library.
16223         Not heavily tested.
16225         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16226         Moved here.
16227         (rb_remote_bonobo_init): Move long CORBA rant here along with
16228         setting of lock functions.
16230         * player/rb-player-gst.c (rb_player_construct)
16231         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16232         on error.
16234         * player/rb-player.h: Update prototypes.
16236         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16237         rb-remote-bonobo.c.
16238         (rb_threads_init): Don't set gdk lock functions here.
16240 2005-08-25  James Livingston  <jrl@ids.org.au>
16242         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16244         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16245         * lib/rb-tree-dnd.h:
16246         * rhythmdb/rhythmdb-property-model.c:
16247         (rhythmdb_property_model_class_init),
16248         (rhythmdb_property_model_drag_source_init),
16249         (rhythmdb_property_model_iter_parent),
16250         (rhythmdb_property_model_row_draggable),
16251         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16252         (rhythmdb_property_model_drag_data_get),
16253         (rhythmdb_property_model_enable_drag):
16254         * rhythmdb/rhythmdb-property-model.h:
16255         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16256         (rb_playlist_manager_set_property), (append_new_playlist_source),
16257         (rb_playlist_manager_save_playlists):
16258         * shell/rb-shell.c: (rb_shell_construct),
16259         (sourcelist_drag_received_cb):
16260         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16261         * sources/rb-playlist-source.c: (impl_receive_drag):
16262         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16263         (rb_sourcelist_model_drag_dest_init),
16264         (rb_sourcelist_model_set_dnd_targets),
16265         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16266         (rb_sourcelist_model_row_drop_position),
16267         (rb_sourcelist_model_get_drag_target),
16268         (rb_sourcelist_model_drag_data_get):
16269         * sources/rb-sourcelist-model.h:
16270         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16271         (rb_sourcelist_init), (rb_sourcelist_get_property),
16272         (rb_sourcelist_selection_changed_cb):
16273         * sources/rb-sourcelist.h:
16274         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16275         improve drag-n-drop support. Allow dragging of item from property
16276         views to the source list, to create new automatic playlists. Allow
16277         playlist re-ordering. Fix dragging from Rhythmbox to other
16278         applications. (Closes bug 147337)
16280 2005-08-24  Colin Walters  <walters@verbum.org>
16282         Patch from Olivier Blin <oblin@mandriva.com>
16284         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16285         correctly in the case where the window is next to monitor edge.
16287 2005-08-24  James Livingston  <jrl@ids.org.au>
16289         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16290         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16291         a gobject property to get the query model that backs the playlist.
16293 2005-08-24  James Livingston  <jrl@ids.org.au>
16295         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16296         (handle_playlist_entry_into_playlist_cb),
16297         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16298         audio cd" menu item when a non-playlist source is selected, or the
16299         playlist is empty. (Closes Bug 313253)
16301 2005-08-24  James Livingston  <jrl@ids.org.au>
16303         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16304         Fix the playlist length checkso it doesn't report 0 for automatic
16305         playlists. This was stopping automati playlists being burnt to cd.
16307 2005-08-24  James Livingston  <jrl@ids.org.au>
16309         * configure.ac:
16310         * sources/rb-playlist-source-recorder.c: (burn_cd):
16311         * sources/rb-playlist-source.c:
16312         (rb_playlist_source_songs_sort_order_changed_cb):
16313         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16314         more warnings that occur when compiling RPMs on Fedora.
16316 2005-08-24  James Livingston  <jrl@ids.org.au>
16318         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16319         was stopping some distros gcc version compiling.
16321 2005-08-24  James Livingston  <jrl@ids.org.au>
16323         * NEWS:
16324         * data/glade/create-playlist.glade:
16325         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16326         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16327         (rhythmdb_query_free), (rhythmdb_query_serialize),
16328         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16329         * rhythmdb/rhythmdb.h:
16330         * shell/rb-playlist-manager.c:
16331         (rb_playlist_manager_set_automatic_playlist),
16332         (rb_playlist_manager_cmd_edit_automatic_playlist):
16333         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16334         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16335         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16336         (rb_playlist_source_save_to_xml),
16337         (rb_playlist_source_songs_sort_order_changed_cb),
16338         (rb_playlist_source_do_query):
16339         * sources/rb-playlist-source.h:
16340         * widgets/Makefile.am:
16341         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16342         (rb_entry_view_set_sorting_order):
16343         * widgets/rb-query-creator-private.h:
16344         * widgets/rb-query-creator-properties.c:
16345         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16346         (stringCriteriaGetWidgetData),
16347         (escapedStringCriteriaSetWidgetData),
16348         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16349         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16350         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16351         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16352         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16353         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16354         (relativeTimeCriteriaCreateWidget),
16355         (relativeTimeCriteriaSetWidgetData),
16356         (relativeTimeCriteriaGetWidgetData):
16357         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16358         (rb_query_creator_class_init), (rb_query_creator_constructor),
16359         (rb_query_creator_dispose), (rb_query_creator_set_property),
16360         (rb_query_creator_get_property), (rb_query_creator_load_query),
16361         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16362         (get_entry_for_property), (rb_query_creator_get_query),
16363         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16364         (limit_toggled_cb), (lookup_row_by_widget),
16365         (remove_button_click_cb), (append_row),
16366         (get_property_index_from_proptype), (select_criteria_from_value),
16367         (property_option_menu_changed), (create_property_option_menu),
16368         (create_criteria_option_menu), (sort_option_menu_changed),
16369         (setup_sort_option_menu):
16370         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16371         playlists. The two most notable improvements are 1) adding more
16372         properties to the query creator, making it much easier to add more in
16373         the future, and 2) allow playlists to be sorted, from the query editor
16374         if they gave limits, and by clicking on column headers if they don't.
16376         Files added: widgets/rb-query-creator-private.h,
16377         sources/rb-query-creator-properties.c
16379 2005-08-21  James Livingston  <jrl@ids.org.au>
16381         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16382         error=NULL. This stops some crashes.
16384 2005-08-19  Colin Walters  <walters@verbum.org>
16386         Patch from Olivier Blin <oblin@mandriva.com>
16388         * widgets/eggnotificationbubble.c (force_window): Support top
16389         orientation.
16390         * widgets/eggnotificationbubble.h: Remove
16391         egg_notification_bubble_force_window from header.
16392         
16393 2005-08-18  James Livingston  <jrl@ids.org.au>
16395         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16396         with the changes since then.
16398 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16400         * shell/rb-shell-player.c: (rb_shell_player_init),
16401         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16402         (rb_shell_player_volume_widget_changed_cb):
16403         * sources/rb-iradio-source.c:
16404         * sources/rb-library-source.c:
16405         * sources/rb-playlist-source.c:
16406         * widgets/Makefile.am:
16407         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16408         (bacon_volume_button_class_init), (bacon_volume_button_init),
16409         (bacon_volume_button_dispose), (bacon_volume_button_new),
16410         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16411         (bacon_volume_button_scroll), (bacon_volume_button_press),
16412         (cb_button_timeout), (cb_button_press), (cb_button_release),
16413         (bacon_volume_release_grab), (cb_dock_press),
16414         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16415         (bacon_volume_scale_new), (bacon_volume_scale_press),
16416         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16417         * widgets/bacon-volume.h:
16418         * widgets/rb-volume.c:
16419         * widgets/rb-volume.h:
16420           Use BaconVolumeButton (#300867).
16422 2005-08-17  James Livingston  <jrl@ids.org.au>
16424         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16425         (rhythmdb_process_metadata_load): don't reset the First Seen time
16426         whenever we recheck the metadata.
16428 2005-08-17  James Livingston  <jrl@ids.org.au>
16430         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16431         temporary workaround to stop crashes when trying to burn an empty
16432         playlist. Doesn't disable the menu item which is the better solution
16433         (Bug 313253).
16435 2005-08-15  James Livingston  <jrl@ids.org.au>
16437         * shell/rb-source-header.c: (rb_source_header_init),
16438         (rb_source_header_sync_control_state),
16439         (rb_source_header_search_activate_cb):
16440         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16441         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16442         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16443         (rb_search_entry_init), (rb_search_entry_searching),
16444         (rb_search_entry_activate_cb):
16445         * widgets/rb-search-entry.h: Move focus to the entry view when user
16446         presses enter in the search box. Patch from Paolo Borelli
16447         <pborelli@katamail.com> (Closes bug 128110)
16449 2005-08-15  James Livingston  <jrl@ids.org.au>
16451         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16452         (rb_playlist_manager_new_playlist):
16453         * shell/rb-playlist-manager.h:
16454         * shell/rb-shell.c: (rb_shell_construct),
16455         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16456         the source list to be shown when a new playlist is created. (Closes
16457         bug 161935)
16459 2005-08-15  James Livingston  <jrl@ids.org.au>
16461         * widgets/rb-header.c: (rb_header_init),
16462         (rb_header_set_show_timeline): disable the seek slider, rather than
16463         hiding it, which more closely follows the HIG. (Closes bug 139102)
16465 2005-08-13  Colin Walters  <walters@verbum.org>
16467         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16468         rb_shell_hidden_notify.
16469         (rb_shell_hidden_notify): Notify if the shell is hidden.
16470         (rb_shell_set_visibility_impl): Debug goo.
16472         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16474         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16475         when the user clicks on notification.
16477         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16478         CD burn is complete.
16479         (rb_playlist_source_recorder_finalize): Unref shell.
16480         (rb_playlist_source_recorder_new): Take shell.
16482         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16483         Pass shell to RBPlaylistSourceRecorder.
16484         
16485 2005-08-13  Colin Walters  <walters@verbum.org>
16487         * lib/rb-thread.c:
16488         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16489           time to convert.
16491 2005-08-13  Colin Walters  <walters@verbum.org>
16493         * widgets/eggnotificationbubble.h:
16494         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16495         * widgets/eggtrayicon.c:
16496         * widgets/eggtrayicon.h: Add notification API.
16497         * shell/rb-tray-icon.c:
16498         * shell/rb-tray-icon.h: Add notification API.
16499         * shell/rb-shell.c: Notify on song change.
16501 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16503         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16504         Correct an inversion of two lines causing NULL to be unreffed
16506 ============ Version 0.9.0
16508 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16510         * configure.ac: 0.9.0, whee!
16511         * NEWS: badly updated
16512         * remote/bonobo/Makefile.am:
16513         * remote/bonobo/rb-remote-bonobo.h:
16514         * shell/Makefile.am:
16515         * shell/main.c: make distcheck fixes