2006-11-14 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobb28e9662cd1ae69646d174e05374694afae764bb
1 2006-11-14  James Livingston  <doclivingston@gmail.com>
3         patch by: Alex Lancaster
5         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
6         episode dates which are missing the seconds. Fixes #373845
8 2006-11-13  James Livingston  <doclivingston@gmail.com>
10         * bindings/python/rhythmdb.override: bidn a few other pieces of
11         rhythmdb.
13 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
15         * shell/rb-statusbar.c: (rb_statusbar_class_init),
16         (rb_statusbar_dispose), (rb_statusbar_finalize),
17         (rb_statusbar_set_property):
18         Remove idle handler in dispose, rather than finalize.
19         Keep references on all referenced objects (duh?).
20         Fixes #374443.
22 2006-11-12  James Livingston  <doclivingston@gmail.com>
24         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
26         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
27         the status bar smaller, so it isn't too big. Fixes #368757.
29 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
31         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
32         (mdns_service_removed):
33         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
34         disappear.
36 2006-11-12  James Livingston  <doclivingston@gmail.com>
38         * plugins/audioscrobbler/rb-lastfm-source.c:
39         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
40         more supported last.fm radio things. From #373622
42 2006-11-12  James Livingston  <doclivingston@gmail.com>
44         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
45         through the earlier checks. Fixes #373605
47 2006-11-12  James Livingston  <doclivingston@gmail.com>
49         * sources/rb-library-source.c:
50         (rb_library_source_add_child_source): sort the child-library sources
51         the same as the library by default.
53 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
55         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
56         Don't try to report the size if we didn't get one.
57         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
58         work), from #350276.
60 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
62         * daapsharing/rb-daap-sharing.c:
63         (rb_daap_sharing_default_share_name), (create_share),
64         (share_name_changed_cb):
65         * daapsharing/rb-daap-sharing.h:
66         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
67         (make_config_widget), (impl_create_configure_dialog):
68         Update DAAP preferences widget when displaying it, and
69         populate the share name entry with the default if there's nothing
70         there already.  Fixes #340279.
72 2006-11-11  James Livingston  <doclivingston@gmail.com>
74         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
76         * plugins/magnatune/magnatune/MagnatuneSource.py:
77         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
78         Magnatune stuff. From #345783
80 2006-11-10  James Livingston  <doclivingston@gmail.com>
82         * plugins/generic-player/rb-nokia770-source.c:
83         (hal_udi_is_nokia770):
84         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
85         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
86         context if it wasn't inited. Fixes #372824
88 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
90         * plugins/daap/rb-daap-plugin.h:
91         Add the file I missed last time.
93 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
95         * CVS-SURGERY:
96         * backends/gstreamer/Makefile.am:
97         * backends/gstreamer/rb-player-gst.c:
98         * configure.ac:
99         * daapsharing/Makefile.am:
100         * daapsharing/rb-daap-connection.c:
101         (rb_daap_connection_disconnect):
102         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
103         (rb_daap_src_open):
104         * daapsharing/rb-daap-src.h:
105         * data/glade/Makefile.am:
106         * data/rhythmbox.schemas:
107         * data/ui/Makefile.am:
108         * plugins/Makefile.am:
109         * plugins/daap/.cvsignore:
110         * plugins/daap/Makefile.am:
111         * plugins/daap/daap.rb-plugin.desktop.in:
112         * plugins/daap/rb-daap-plugin.c:
113         * shell/Makefile.am:
114         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
115         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
116         * sources/Makefile.am:
117         * sources/rb-daap-source.c: (rb_daap_source_class_init),
118         (rb_daap_source_new), (connection_auth_cb),
119         (connection_connecting_cb), (connection_disconnected_cb),
120         (release_connection), (rb_daap_source_disconnect),
121         (rb_daap_source_show_popup):
122         * sources/rb-daap-source.h:
123         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
124         Fixes #336150.
126 2006-11-09  James Livingston  <doclivingston@gmail.com>
128         * rhythmdb/rhythmdb.c: take the ref before calling the delete
129         implementation, not after. From #372851.
131 2006-11-09  James Livingston  <doclivingston@gmail.com>
133         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
135         * plugins/Makefile.am:
136         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
137         fixes #371178.
139 2006-11-09  James Livingston  <doclivingston@gmail.com>
141         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
142         g_signal_connect_object not g_signal_object, which stops it beign
143         called after the plugin is disposed.
145 2006-11-09  James Livingston  <doclivingston@gmail.com>
147         * plugins/audioscrobbler/rb-audioscrobbler.c:
148         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
149         after we're finalised. Should fix #370513
151 2006-11-08  James Livingston  <doclivingston@gmail.com>
153         patch by: Jerry Tan  <jerry.tan@sun.com>
155         * data/glade/song-info.glade: set more a11y properties on the
156         label-for/labelled-by info. Fixes #368179.
158 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
160         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
161         (rb_entry_view_dispose), (rb_entry_view_finalize):
162         Unref objects and remove idle handlers in dispose rather than
163         finalize.  Should fix #364783.
165 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
167         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
168         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
169         xmlCreateMemoryParserCtxt returning NULL that was previously checking
170         the wrong variable.  Really fixes #336842.
172 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
174         * plugins/iradio/Makefile.am:
175         Actually install the UI file.
177 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
179         * plugins/generic-player/rb-generic-player-source.c:
180         (rb_generic_player_source_constructor),
181         (rb_generic_player_source_dispose),
182         (rb_generic_player_source_load_playlists):
183         Don't crash if the source is destroyed before it gets a chance
184         to load playlists.
186 2006-11-06  James Livingston  <doclivingston@gmail.com>
188         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
189         * rhythmdb/rhythmdb.c: some leak fixes
191 2006-11-06  James Livingston  <doclivingston@gmail.com>
193         * bindings/python/rb.override: change the right function in the last
194         commit.
196 2006-11-06  James Livingston  <doclivingston@gmail.com>
198         * bindings/python/rb.override: unwrap the python string instead of
199         wrapping it. Oops.
201 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
203         * tests/test-utils.c: (test_rhythmdb_setup):
204         Fix build break, #371106.
206 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
208         * tests/Makefile.am:
209         * tests/test-rhythmdb-property-model.c: (_get_property_count),
210         (START_TEST), (rhythmdb_property_model_suite), (main):
211         * tests/test-rhythmdb-query-model.c: (START_TEST),
212         (rhythmdb_query_model_suite), (main):
213         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
214         * tests/test-utils.c: (start_test_case), (end_step),
215         (end_test_case), (mark_signal), (set_waiting_signal),
216         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
217         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
218         * tests/test-utils.h:
219         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
221 2006-11-04  James Livingston  <doclivingston@gmail.com>
223         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
224         we were passed a absolute path, e.g. from the plugin file find
225         function.
227 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
229         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
231         * remote/dbus/rb-client.c: (main):
232         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
233         * shell/rb-shell.h:
234         * shell/rb-shell.xml:
235         Add dbus method to request a notification for the playing song, and
236         an argument to rhythmbox-client to use it.  Fixes #359593.
238 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
240         * remote/dbus/rb-print-playing.py:
241         Revert changes I accidentally committed a while ago.
243 2006-11-03  James Livingston  <doclivingston@gmail.com>
245         * data/glade/song-info.glade: make more labels selectable, from #368641
247 2006-11-03  James Livingston  <doclivingston@gmail.com>
249         * shell/rb-shell-clipboard.c: (get_focussed_widget),
250         (rb_shell_clipboard_cmd_select_all),
251         (rb_shell_clipboard_cmd_select_none): make Select All select text in
252         the focussed widget if it's a text entry. Fixes #364590
254 2006-11-03  James Livingston  <doclivingston@gmail.com>
256         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
257         (bacon_volume_button_init), (bacon_volume_button_dispose),
258         (bacon_volume_button_new), (bacon_volume_button_realize),
259         (bacon_volume_button_press), (bacon_volume_key_release),
260         (bacon_volume_release_grab), (cb_dock_key_release),
261         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
262         (bacon_volume_theme_changed), (bacon_volume_load_icons):
263         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
264         Fixes #369491
266 2006-10-31  James Livingston  <doclivingston@gmail.com>
268         * configure.ac: remove spaces around '=' where they shouldn't be,
269         fixes building when you have libgpod 0.3.x
271 2006-10-31  James Livingston  <doclivingston@gmail.com>
273         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
275         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
276         period is 0. Fixes #351425
278 2006-10-31  James Livingston  <doclivingston@gmail.com>
280         patch by: Luca Ferretti  <elle.uca@libero.it>
282         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
283         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
284         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
285         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
286         * plugins/ipod/ipod.rb-plugin.desktop.in:
287         * plugins/iradio/iradio.rb-plugin.desktop.in:
288         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
289         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
290         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
291         of the plugins. Fixes #365326
293 2006-10-31  James Livingston  <doclivingston@gmail.com>
295         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
297 2006-10-31  James Livingston  <doclivingston@gmail.com>
299         * data/glade/song-info.glade: set the mnemonic target for the labels
300         in the details tab. Fixes #368179.
302 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
304         * configure.ac:
305         When complaining about GStreamer being too old, use the right variable
306         name for the version we want.
308 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
310         * shell/rb-shell.h:
311         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
312         * shell/rb-tray-icon.h:
313         * bindings/python/rb.defs:
314         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
315         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
316         * sources/rb-playlist-source-recorder.c: (burn_cd):
317         * sources/rb-podcast-source.c:
318         (rb_podcast_source_start_download_cb),
319         (rb_podcast_source_finish_download_cb),
320         (rb_podcast_source_feed_updates_avaliable_cb):
321         Change the various notification functions to take a parameter
322         specifying whether the notification was explicitly requested by the
323         user.  Add a function to display a notification for an entry,
324         including streaming song metadata.
326         * shell/rb-shell-player.c: (rb_shell_player_stop):
327         Emit playing-song-changed and playing-uri-changed when stopping
328         playback.
330         * sources/Makefile.am:
331         * sources/rb-streaming-source.c:
332         * sources/rb-streaming-source.h:
333         Add a base class for streaming sources, handling streaming song
334         metadata and buffering messages, emitting notifications on song
335         changes, and updating play count statistics when playback stops.
337         * plugins/audioscrobbler/Makefile.am:
338         * plugins/audioscrobbler/rb-lastfm-source.c:
339         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
340         (rb_lastfm_source_constructor), (impl_get_status),
341         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
342         (rb_lastfm_source_title_from_uri),
343         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
344         (rb_lastfm_song_changed_cb), (impl_activate):
345         * plugins/audioscrobbler/rb-lastfm-source.h:
346         * plugins/iradio/Makefile.am:
347         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
348         (rb_iradio_source_constructor), (impl_get_status),
349         (info_available_cb), (playing_source_changed_cb):
350         * sources/rb-iradio-source.h:
351         Use the new streaming source base class for iradio and last.fm
352         sources.  Fixes #364094.
354 2006-10-30  James Livingston  <doclivingston@gmail.com>
356         * podcast/rb-podcast-manager.c:
357         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
358         any downloads from it before deleting the post entry. Fixes #366567.
360 2006-10-30  James Livingston  <doclivingston@gmail.com>
362         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
363         move-to-trash, since there have been reports of people accidently
364         deleting tracks and it probably isn't a common enough operation to be
365         worth a shortcut.
367 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
369         * backends/gstreamer/rb-player-gst.c:
370         * configure.ac:
371         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
372         Fix GStreamer 0.8 build (and some typos in configure.ac).
374 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
376         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
378         * sources/rb-source.c: (rb_source_class_init),
379         (rb_source_set_property), (rb_source_get_property):
380         Add a property to RBSource for plugin-created sources to have a
381         pointer to the RBPlugin object that created them.
383         * plugins/audiocd/Makefile.am:
384         * plugins/audiocd/multiple-album.glade:
385         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
386         * sources/Makefile.am:
387         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
388         * sources/rb-audiocd-source.h:
389         If musicbrainz returns multiple albums, present the user with a
390         choice between them.  Fixes #333215.
392         * configure.ac:
393         * plugins/Makefile.am:
394         Remove unused old audio CD stuff, only build audiocd plugin if we have
395         libnautilus-burn.  Fixes #367440.
397 2006-10-30  James Livingston  <doclivingston@gmail.com>
399         patch by: Brian McKenna  <puffnfresh@gmail.com>
401         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
402         handle blocks. Fixes #366696.
404 2006-10-30  James Livingston  <doclivingston@gmail.com>
406         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
408 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
410         * shell/rb-shell-player.c: (rb_shell_player_class_init),
411         (rb_shell_player_sync_with_source),
412         (rb_shell_player_get_playing_time_string), (tick_cb):
413         * widgets/rb-header.c: (rb_header_sync_time),
414         (slider_moved_callback), (rb_header_update_elapsed),
415         (rb_header_elapsed_changed_cb):
416         Revert dbus interface breakage introduced in the fix for #365908.
418 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
420         patch by: Luca Ferretti  <elle.uca@libero.it>
422         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
423         Remove the access keys from the podcast-specific column headers.
424         Fixes #360640 again.
426 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
428         patch by: James Livingston <doclivingston@gmail.com>
430         * sources/rb-browser-source.c: (rb_browser_source_constructor):
431         Only register the search actions once.  From #346801.
433 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
435         * shell/rb-shell-player.c: (rb_shell_player_error):
436         When handling an error, try playing the next stream URL if we have
437         one, rather than stopping playback.  From #358140.
439 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
441         * shell/rb-shell.c: (handle_playlist_entry_cb):
442         Don't crash if we can't guess a source for a URI in the playlist.
443         Fixes #366261.
445 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
447         * shell/rb-shell-player.c: (rb_shell_player_class_init),
448         (rb_shell_player_sync_with_source),
449         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
450         (tick_cb):
451         * widgets/rb-header.c: (rb_header_sync_time),
452         (rb_header_elapsed_changed_cb):
453         Treat elapsed time as signed, since rb_player_get_time returns a
454         signed value.  When actually using the value, mostly treat negative
455         values as 0.  Fixes #365908.
457 2006-10-27  James Livingston  <doclivingston@gmail.com>
459         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
461         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
462         returning 0 for the year/month/day. Fixes #364837.
464 2006-10-27  James Livingston  <doclivingston@gmail.com>
466         patch by: Luca Ferretti  <elle.uca@libero.it>
468         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
469         access keys from the entry view columns headers - they cause
470         keybindings conflicts, headaches for translators and the HIG says
471         they are bad. Fixes #360640.
473 2006-10-27  James Livingston  <doclivingston@gmail.com>
475         patch by: Luca Ferretti  <elle.uca@libero.it>
477         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
478         access keys from the entry view columns headers - they cause
479         keybindings conflicts, headaches for translators and the HIG says
480         they are bad. Fixes #360640.
482 2006-10-27  James Livingston  <doclivingston@gmail.com>
484         * rhythmdb/rhythmdb-private.h:
485         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
486         issues
488 2006-10-27  James Livingston  <doclivingston@gmail.com>
490         * plugins/artdisplay/Makefile.am:
491         * plugins/audioscrobbler/Makefile.am:
492         * plugins/iradio/Makefile.am: fix make clean
494 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
496         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
497         Fall back to strtod() if g_ascii_strtod() doesn't work.
499         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
500         Write floating point values using g_ascii_dtostr() to avoid
501         problems with locale-specific representations.  From #353205.
503 2006-10-25  James Livingston  <doclivingston@gmail.com>
505         * plugins/artdisplay/Makefile.am:
506         * plugins/audioscrobbler/Makefile.am:
507         * plugins/iradio/Makefile.am: fix "make distcheck"
509 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
511         patch by: Brian Cameron <brian.cameron@sun.com>
513         * plugins/audiocd/Makefile.am:
514         Link audiocd plugin with libnautilus-burn as required to get it to work
515         on Solaris.  Fixes #363288.
517 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
519         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
521         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
522         Clarify that we don't submit actual songs to last.fm, just information
523         on what you're listening to.  Fixes #364014.
525 2006-10-24  Bastien Nocera  <hadess@hadess.net>
527         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
528         (bacon_volume_button_class_init), (bacon_volume_button_new),
529         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
530         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
531         (bacon_volume_scale_value_changed): update from libbacon, to get
532         better accessibility support (Closes: #364637)
534 2006-10-24  James Livingston  <doclivingston@gmail.com>
536         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
538         * configure.ac: fix some typos and leftovers from disabled->enabled
539         changes. Fixes #364217
541 2006-10-23  William Jon McCann  <mccann@jhu.edu>
543         * shell/rb-source-header.c (rb_source_header_init):
544         Don't require source header cells to be homogeneous.
545         Patch from #359188
547 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
549         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
550         Pause the pipeline while buffering.  Fixes #358290.
552 2006-10-23  Bastien Nocera  <hadess@hadess.net>
554         * configure.ac: update required libgpod version to avoid crashes
555         when starting up with an iPod connect (Closes: #352972)
556         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
557         (hal_udi_is_ipod): remove outdated ifdefs
559 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
561         * plugins/Makefile.am:
562         * plugins/power-manager/rb-power-manager-plugin.c:
563         Don't try to build the power-manager plugin with dbus < 0.35.
565 2006-10-22  James Livingston  <doclivingston@gmail.com>
567         patch by: Ed Catmur  <ed@catmur.co.uk>
569         * plugins/artdisplay/Makefile.am:
570         * plugins/artdisplay/artdisplay/__init__.py:
571         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
572         placeholder art when none is available, to avoid having the widget pop
573         in and out of existance.
575 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
577         * plugins/lyrics/lyrics.py:
578         Set the lyrics window transient for the main window so it can
579         actually be seen in party mode.  Fixes #362981.
581 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
583         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
584         * sources/rb-source.c: (rb_source_class_init),
585         (rb_source_can_show_properties), (rb_source_song_properties):
586         * sources/rb-source.h:
587         Only enable the 'properties' item in the 'music' menu if the selected
588         source implements the show_properties method.  Fixes #356485.
590 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
592         * shell/rb-shell-player.c:
593         (rb_shell_player_property_row_activated_cb):
594         Take the entry to play from the play order, rather than grabbing the
595         first entry in the query model.  Fixes #362042.
597 2006-10-16  James Livingston  <doclivingston@gmail.com>
599         * shell/main.c: (main): save custom menu accelerators before exiting.
600         Fixed #362300
602 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
604         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
605         I HATE adding this patch, but I'm sick of hitting Yes once
606         and hour.  Working around brain-dead podcasts.
608 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
610         * plugins/lyrics/lyrics.py:
611         Disconnect the create-song-info handler when deactivated.
612         Fixes #361882.
614 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
616         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
617         Reset the style when clearing the search text.  Fixes #361295.
619 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
621         * rhythmdb/rhythmdb-query-model.c:
622         (rhythmdb_query_model_entry_changed_cb):
623         Don't emit entry-prop-changed for hidden signals from chained query
624         models, as the model will also propagate the parent model's
625         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
627 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
629         * sources/rb-ipod-source.c: (generate_ipod_filename):
630         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
631         * lib/rb-cut-and-paste-code.h:
632         Move eel_make_valid_utf8 to lib/, make the replacement
633         character a parameter.
635         * rhythmdb/rhythmdb.c: (make_access_failed_error),
636         (rhythmdb_execute_multi_stat_info_cb),
637         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
638         When constructing an error message that includes a URI, make sure the
639         URI is valid utf-8.  Fixes #353588.
641 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
643         * player/rb-recorder-gst.c: (rb_recorder_construct),
644         (acb_wave_time):
645         Add an extra audioconvert element to allow endianness conversion on
646         big-endian machines, and fix a few endianness issues in the .wav
647         reading code.  Fixes #355611.
649 2006-10-09  James Livingston  <doclivingston@gmail.com>
651         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
653         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
654         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
655         Fixes #357553.
657 2006-10-09  James Livingston  <doclivingston@gmail.com>
659         patch by: Luca Ferretti  <elle.uca@libero.it>
661         * data/glade/song-info-multiple.glade:
662         * data/glade/song-info.glade: Fix a few HIG issues.
664 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
666         * plugins/audioscrobbler/rb-lastfm-source.c:
667         (rb_lastfm_source_class_init):
668         Return TRUE from impl_try_playlist so playback starts in a separate
669         thread.
671 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
673         * shell/main.c: (main):
674         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
675         UTF-8 GStreamer messages.  Fixes #357973.
677 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
679         * shell/rb-shell.c: (rb_shell_constructor):
680         Remove a line that accidentally slipped in from some other universe.
682 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
684         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
685         Don't remove sources from the hash table while iterating it on
686         shutdown.  Fixes #359583.
688 2006-10-07  James Livingston  <doclivingston@gmail.com>
690         patch from Alex Lancaster  <alexl@users.sourceforge.net>
692         * shell/rb-shell.c: change the keybinding for "Plugins" to not
693         conflict with others. Fixes #355904
695 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
697         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
698         (rhythmdb_query_model_chain),
699         (rhythmdb_query_model_entry_changed_cb),
700         (rhythmdb_query_model_base_entry_prop_changed),
701         (rhythmdb_query_model_base_entry_removed):
702         For chained models, propagate the parent model's entry-prop-changed
703         signal rather than emitting one from the db entry-changed handler.
704         This ensures that when the change filters the entry out of the parent
705         model, property models attached to the child model get the entry
706         change signal before the post-entry-delete signal, so they can
707         decrement the refcount for the right property value.  Fixes #359083.
709 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
711         * plugins/audioscrobbler/Makefile.am:
712         define NULL
714 2006-10-07  James Livingston  <doclivingston@gmail.com>
716         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
717         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
718         * plugins/audioscrobbler/rb-lastfm-source.c:
719         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
720         hypens in URI schemes.
722 2006-10-06  William Jon McCann  <mccann@jhu.edu>
724         * plugins/iradio/Makefile.am:
725         * plugins/audioscrobbler/Makefile.am:
726         * plugins/cd-recorder/Makefile.am:
727         Don't clean all plugin_DATA.
728         Fixes #360210
730 2006-10-06  James Livingston  <doclivingston@gmail.com>
732         patch from Matt N  <fisxoj@gmail.com>
734         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
735         (rb_player_gst_bus_cb):
736         * backends/rb-player.c: (rb_player_interface_init),
737         (_rb_player_emit_tick), (_rb_player_emit_event):
738         * backends/rb-player.h: let the backend emit named "events", for
739         things that the core shouldn't know about.
741         * rhythmdb/rhythmdb.h:
742         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
743         support for streams containing album metadata.
745         * plugins/audioscrobbler/Makefile.am:
746         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
747         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
748         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
749         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
750         * plugins/audioscrobbler/rb-lastfm-source.c:
751         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
752         of last.fm streams. From #313049.
754 2006-10-06  James Livingston  <doclivingston@gmail.com>
756         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
757         committing. Oops.
759 2006-10-06  James Livingston  <doclivingston@gmail.com>
761         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
763         * configure.ac:
764         * data/rhythmbox.schemas:
765         * plugins/Makefile.am:
766         * plugins/magnatune/Makefile.am:
767         * plugins/magnatune/magnatune-loading.glade:
768         * plugins/magnatune/magnatune-prefs.glade:
769         * plugins/magnatune/magnatune-purchase.glade:
770         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
771         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
772         * plugins/magnatune/magnatune/MagnatuneSource.py:
773         * plugins/magnatune/magnatune/TrackListHandler.py:
774         * plugins/magnatune/magnatune/__init__.py:
775         * plugins/magnatune/magnatune_circle_small.png:
776         * plugins/magnatune/magnatune_logo_color_small.png:
777         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
778         play and download tracks from the MagnaTune online music store. From
779         #345783.
781 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
783         * lib/rb-proxy-config.c: (rb_proxy_config_init),
784         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
785         (check_auto_proxy_config), (get_proxy_config):
786         Don't crash when eel_gconf_get_string returns NULL.
787         Fixes #359974.
789 2006-10-04  James Livingston  <doclivingston@gmail.com>
791         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
793         * plugins/audiocd/Makefile.am: fix the plugin when linking with
794         --as-needed. Fixes #358730
796 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
798         patch by:  William Jon McCann  <mccann@jhu.edu>
800         * sources/rb-iradio-source.c: (playing_source_changed_cb):
801         Fix some stupidity I introduced that caused crashes on shutdown.
802         Fixes #359181.
804 2006-10-02  William Jon McCann  <mccann@jhu.edu>
806         * plugins/audiocd/Makefile.am:
807         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
808         * plugins/iradio/.cvsignore:
809         * plugins/iradio/Makefile.am:
810         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
811         (impl_deactivate):
812         * plugins/power-manager/.cvsignore:
813         Install missing iradio ui file.  Don't leak ui filename.
814         Fix iradio install dir. Fix audiocd install dir.
815         Remove unused code from audio cd plugin.
817         Fixes #359170
819 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
821         * sources/rb-ipod-source.c: (impl_move_to_trash):
822         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
823         commented out while fixing bug 355235.  Oops.
825 2006-10-03  James Livingston  <doclivingston@gmail.com>
827         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
828         non-unicode warnings to debug statements, since they can occur with
829         slightly broken files.
831         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
832         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
833         iradio plugin is disabled and re-enabled.
835 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
838         (rhythmdb_entry_podcast_post_get_type):
839         * rhythmdb/rhythmdb.h:
840         * tests/bench-rhythmdb-load.c: (main):
841         Add definitions for some common extra-metadata fields,
842         remove iradio entry type definition, add the concept of entry type
843         categories, define categories for the core entry types.
844         Categories are used to decide if an entry can be copied to a removable
845         device, if it should be reported to audioscrobbler, etc.
847         * shell/Makefile.am:
848         * shell/rb-shell-player.c: (rb_shell_player_class_init),
849         (rb_shell_player_constructor), (rb_shell_player_init),
850         (rb_shell_player_get_property), (open_location_thread),
851         (rb_shell_player_open_location),
852         (rb_shell_player_sync_with_source),
853         (rb_shell_player_set_playing_source_internal), (tick_cb):
854         * shell/rb-shell.c: (construct_widgets), (construct_sources),
855         (rb_shell_player_elapsed_changed_cb):
856         Remove iradio-specific code, use extra metadata fields for streaming
857         title and artist name.
859         * data/ui/rhythmbox-ui.xml:
860         Add a placeholder for 'new ...' menu items.
862         * Makefile.am:
863         * sources/Makefile.am:
864         * configure.ac:
865         * data/rhythmbox.schemas:
866         * plugins/Makefile.am:
867         * plugins/iradio/Makefile.am:
868         * plugins/iradio/iradio-ui.xml:
869         * plugins/iradio/iradio.rb-plugin.desktop.in:
870         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
871         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
872         (rb_iradio_plugin_class_init):
873         iradio plugin, enabled and hidden by default.
875         * plugins/audioscrobbler/rb-audioscrobbler.c:
876         (rb_audioscrobbler_song_changed_cb):
877         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
878         * sources/rb-daap-source.c: (rb_daap_source_new):
879         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
880         Define entry type categories, and use them where appropriate.
882         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
883         (rb_iradio_source_constructor), (rb_iradio_source_new),
884         (impl_get_status), (impl_want_uri), (buffering_cb),
885         (check_entry_type), (streaming_title_request_cb),
886         (streaming_artist_request_cb), (extra_metadata_gather_cb),
887         (info_available_cb), (playing_entry_changed_cb),
888         (playing_source_changed_cb):
889         Move streaming metadata and buffering handling here from
890         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
891         title or artist changes, and handle request and gather signals for
892         those.
894         * widgets/rb-header.c: (rb_header_class_init),
895         (rb_header_set_property), (rb_header_get_property),
896         (rb_header_new), (append_and_free), (rb_header_sync):
897         * widgets/rb-header.h:
898         Rework to use streaming artist and title extra-metadata.
899         streaming-artist overrides entry artist, and streaming-title means
900         entry title is a stream name, displayed in brackets.
902         * doc/reference/Makefile.am:
903         * doc/reference/rhythmbox.types:
904         Remove iradio stuff from gtk-doc build.
906         Fixed #347097.
908 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
910         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
912         * bindings/python/rhythmdb.defs:
913         * lib/rb-marshal.list:
914         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
915         (rhythmdb_emit_entry_deleted),
916         (rhythmdb_entry_extra_metadata_accumulator),
917         (rhythmdb_entry_request_extra_metadata),
918         (rhythmdb_emit_entry_extra_metadata_notify),
919         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
920         * rhythmdb/rhythmdb.h:
921         Add signals for dealing with transient metadata outside the set stored
922         in RhythmDBEntry:
923         - entry_extra_metadata_request returns a value for the requested
924           metadata field
925         - entry_extra_metadata_notify notifies observers of a change to an
926           extra metadata field
927         - entry_extra_metadata_gather returns the values of all extra metadata
928           fields
930         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
931         (rb_shell_player_extra_metadata_cb):
932         Sync the display on extra metadata changes and emit dbus signals when
933         we can marshal the value.
935         * shell/rb-shell.c: (rb_shell_get_song_properties):
936         Implement rb_shell_song_get_properties using
937         rhythmdb_entry_gather_metadata.
939         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
940         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
941         * configure.ac:
942         Add GValue marshaller for python (until bug 351072 is fixed)
944         From #345592.
946 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
948         * configure.ac:
949         * data/rhythmbox.schemas:
950         * plugins/Makefile.am:
951         * plugins/power-manager/Makefile.am:
952         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
953         * plugins/power-manager/rb-power-manager-plugin.c:
954         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
955         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
956         (playing_changed_cb), (impl_activate), (impl_deactivate):
957         gnome-power-manager integration: inhibit suspend while playing.
958         Fixes #344979.
960 2006-10-02  James Livingston  <doclivingston@gmail.com>
962         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
963         and Alex Lancaster  <alexl@users.sourceforge.net>
965         * help/C/rhythmbox.xml: fix some mispellings and grammer.
966         Fixes #353143, #353146 and #353147.
968 ============ Version 0.9.6
970 2006-10-01  James Livingston  <doclivingston@gmail.com>
972         * configure.ac: bump version to 0.9.6. enable tag-writing and
973         ipod-writing by default
975         * NEWS: update NEWS
977 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
979         patch by:  William Jon McCann  <mccann@jhu.edu>
981         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
982         Use a local GError in case no error pointer pointer is passed in.
983         From bug #358396.
985 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
987         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
988         Don't reference members of freed structures.
990 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
992         patch by:  William Jon McCann  <mccann@jhu.edu>
994         * player/rb-recorder-gst.c: (rb_recorder_burn):
995         Drop GDK lock before entering n-c-b.  Fixes #353894?
997 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
999         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1000         (impl_activate):
1001         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1003 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1005         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1006         Call lirc_init before lirc_readconfig so we don't crash if the user's
1007         .lircrc file has any mode sections. Fixes #357419.
1009 2006-09-24  James Livingston  <doclivingston@gmail.com>
1011         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1012         if we get called twice, as that can happen. Fixes #357214.
1014 2006-09-24  James Livingston  <doclivingston@gmail.com>
1016         * backends/rb-encoder.h: add "file access" error
1018         * lib/rb-file-helpers.c: (rb_dot_dir):
1019         * podcast/rb-podcast-manager.c:
1020         (rb_podcast_manager_download_file_info_cb): remove directory creation
1021         race condition.
1023         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1024         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1025         directory creation. Fixes #347743
1027 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1029         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1030         Strip trailing whitespace
1032 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1034         * rhythmdb/Makefile.am:
1035         * rhythmdb/rhythmdb-private.h:
1036         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1037         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1038         * rhythmdb/rhythmdb-tree.h:
1039         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1040         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1041         * rhythmdb/rhythmdb.h:
1042         Rather than aborting, show an error and refuse to load the database when
1043         it appears to come from the future.  From bug #350304.
1045 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1047         * bindings/python/rhythmdb.override:
1048         Make entry_foreach usable.
1050 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1052         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1053         Scale the icon so it matches the rest of the sources.
1054         Fixes #351410.
1056 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1058         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1059         (rhythmdb_property_model_set_query_model_internal),
1060         (rhythmdb_property_model_row_inserted_cb),
1061         (rhythmdb_property_model_prop_changed_cb),
1062         (rhythmdb_property_model_entry_removed_cb),
1063         (rhythmdb_property_model_delete),
1064         (rhythmdb_property_model_perform_sync):
1065         Use the hash table to track hidden entries, rather than visible
1066         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1068 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1070         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1071         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1073 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1075         * sources/rb-ipod-source.c: (add_rb_playlist),
1076         (impl_move_to_trash), (impl_delete_thyself):
1077         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1079         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1080         Make sure we don't leave the sourcelist thinking a deleted source is
1081         still playing.  Fixes nothing.
1083 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1085         * shell/rb-shell.c:
1086         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1087         'Music->Import Folder' menu item for better icon theme coverage.
1088         Fixes #354575.
1090 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1092         * rhythmdb/rhythmdb-private.h:
1093         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1094         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1095         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1096         (rhythmdb_load), (rhythmdb_save_async):
1097         Use a limited thread pool for adding URIs to the database.
1098         Fixes #352494.
1100 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1102         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1103         Do something like the previous change, but for gstreamer 0.10
1104         this time.  Oops.  Really fixes #349569.
1106 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1108         * backends/gstreamer/rb-player-gst.c: (error_cb):
1109         Ignore 'internal data flow error' messages if we've already got an
1110         error for the file.  Fixes #349569.
1112 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1114         * shell/rb-shell-clipboard.c:
1115         (rb_shell_clipboard_playlist_deleted_cb):
1116         Rebuild 'add to playlist' menu before removing actions for deleted
1117         playlists, and don't unref the action, as we never had a reference on
1118         it to begin with.  Fixes #354599.
1120 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1122         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1123         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1124         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1126 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1128         * daapsharing/rb-daap-connection.c: (handle_playlists):
1129         Reverse the list of playlists on the DAAP server so it ends up in the
1130         right order.  Fixes #353926.
1132 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1134         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1135         Fully process each code so the LIRC client returns to its normal state
1136         when we're done.  Makes LIRC actually work properly for me.
1138 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1140         patch by: Ed Catmur  <ed@catmur.co.uk>
1142         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1143         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1144         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1146 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1148         patch by: James Livingston <doclivingston@gmail.com>
1150         * configure.ac:
1151         * data/rhythmbox.schemas:
1152         * metadata/Makefile.am:
1153         * plugins/Makefile.am:
1154         * plugins/audiocd/.cvsignore:
1155         * plugins/audiocd/Makefile.am:
1156         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1157         * plugins/audiocd/rb-audiocd-plugin.c:
1158         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1159         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1160         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1161         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1162         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1163         (rb_audiocd_plugin_playing_uri_changed_cb),
1164         (nautilus_burn_drive_get_device),
1165         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1166         (impl_activate), (_delete_cb), (impl_deactivate):
1167         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1168         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1169         * shell/main.c: (main):
1170         * shell/rb-removable-media-manager.c:
1171         (rb_removable_media_manager_finalize),
1172         (rb_removable_media_manager_load_media),
1173         (rb_removable_media_manager_mount_volume),
1174         (rb_removable_media_manager_scan):
1175         * sources/Makefile.am:
1176         * sources/rb-audiocd-source.c:
1177         * sources/rb-audiocd-source.h:
1178         Make auto CD support a plugin.
1180         Fixes #349415.
1182 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1184         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1185         Add a final rhythmdb_commit to make sure all songs from the share show
1186         up in the daap source.  Fixes #353913.
1188 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1190         * sources/rb-sourcelist-model.c:
1191         (rb_sourcelist_model_drag_data_received),
1192         (rb_sourcelist_model_row_drop_possible):
1193         Re-enable dragging of a set of tracks to the source list to create a
1194         new static playlist.  Fixes #353893.
1196 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1198         * widgets/bacon-volume.c: (cb_button_timeout):
1199         Actually drop the GDK lock, rather than returning while holding it.
1200         Fixes #353895.
1202 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1204         * plugins/generic-player/rb-generic-player-source.c:
1205         (rb_generic_player_source_constructor),
1206         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1207         (rb_generic_player_source_load_songs), (load_playlist_file),
1208         (default_load_playlists), (get_hal_context):
1209         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1210         Fixes #353483.
1212 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1214         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1215         Canonicalise URIs received from gnome-vfs file monitor.
1216         Fixes #353447.
1218 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1220         * help/C/rhythmbox.xml: unbreak help build
1221         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1222         Unbuffer the IO channel.  Fixes some weirdness for me.
1224 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1226         * help/C/rhythmbox.xml:
1227         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1228         (impl_activate), (impl_deactivate):
1229         Add 'playpause' LIRC command.
1231 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1233         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1234         (rb_source_finalize):
1235         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1236         when disconnecting generic audio players.
1238 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1240         patch by: Paolo Borelli  <pborelli@katamail.com>
1242         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1243         Fix a small leak.
1245 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1247         * backends/gstreamer/rb-player-gst.c:
1248         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1249         Don't actually disable the seek bar for non-seekable songs,
1250         because we can't reliably tell yet.
1252 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1254         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1255         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1256         (db_entry_deleted_cb), (rb_daap_share_server_start),
1257         (rb_daap_share_server_stop):
1258         * rhythmdb/rhythmdb-private.h:
1259         * rhythmdb/rhythmdb-tree.c: (save_entry):
1260         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1261         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1262         (rhythmdb_entry_get_ulong):
1263         * rhythmdb/rhythmdb.h:
1264         Give db entries a numeric ID property, replacing the daap server's
1265         entry->id map.  From #347665.
1267 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1269         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1270         * widgets/rb-header.c: (rb_header_class_init),
1271         (rb_header_set_property), (rb_header_get_property),
1272         (rb_header_set_playing_entry), (rb_header_sync),
1273         (rb_header_sync_time):
1274         * widgets/rb-header.h:
1275         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1276         insensitive when the player backend tells us we can't seek in the
1277         current song.  From #330410.
1279 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1281         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1282         Don't try to unref previous/next entries if they aren't there.
1283         Fixes #351806.
1285 2006-08-15  James Livingston  <doclivingston@gmail.com>
1287         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1288         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1289         mountpoint into a RBRefString and compare equality of those, rather
1290         than doign lots of strcmp()s.
1292         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1293         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1294         status notification as well as the visibility update in an idle
1295         callback. Makes it take much less time to update after a volume
1296         mount/unmount event.
1298 2006-08-15  James Livingston  <doclivingston@gmail.com>
1300         patch by: Christian Becke  <christianbecke@web.de>
1302         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1303         multiple selections in the Import Folder dialog. Fixes #351414.
1305 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1307         * shell/rb-shell.c: (construct_widgets):
1308         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1309         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1310         (rb_statusbar_get_property), (rb_statusbar_new):
1311         * shell/rb-statusbar.h:
1312         Use the connect-proxy signal from the UI manager, which covers all
1313         action groups, rather than just one.  Fixes #351280.
1315 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1317         * widgets/rb-library-browser.c: (rebuild_child_model):
1318         Fix query model reference counts (bug #349601).
1320 2006-08-15  James Livingston  <doclivingston@gmail.com>
1322         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1323         Error signals be non-recursive. Fixes a highly-unlikely issue that
1324         could have caused #322972.
1326 2006-08-14  James Livingston  <doclivingston@gmail.com>
1328         * sources/rb-auto-playlist-source.c:
1329         (rb_auto_playlist_source_init):
1330         * sources/rb-static-playlist-source.c:
1331         (rb_static_playlist_source_init):
1333 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1335         * sources/rb-browser-source.c:
1336         * sources/rb-import-errors-source.c:
1337         * sources/rb-iradio-source.c:
1338         * sources/rb-library-source.c:
1339         * sources/rb-missing-files-source.c:
1340         * sources/rb-play-queue-source.c:
1341         * sources/rb-playlist-source.c:
1342         * sources/rb-podcast-source.c:
1343         * sources/rb-source.c:
1344         Make entry-type a property on RBSource, rather than on most of its
1345         subclasses.  Fixes #347288.
1347 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1349         * remote/dbus/rb-client.c: (parse_pattern),
1350         (create_rb_shell_proxies), (main):
1351         Actually implement %ag and %aG (genre) for --print-playing-format
1353 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1355         * lib/rb-debug.c: (rb_debug_real):
1356         No point allocating a buffer for the timestamp when we can just put it
1357         on the stack.
1359 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1361         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1362         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1364 2006-08-11  James Livingston  <doclivingston@gmail.com>
1366         * podcast/rb-podcast-manager.c:
1367         (rb_podcast_manager_update_synctime): fix accidental commit in the
1368         last, which caused a warning.
1370 2006-08-11  James Livingston  <doclivingston@gmail.com>
1372         * data/rhythmbox.schemas:
1373         * podcast/rb-podcast-manager.c:
1374         (rb_podcast_manager_update_synctime): change the schema's
1375         update-inteval value from 0 to 1, which causes it to update on
1376         startup, rather than never. Should fixs #343818.
1378 2006-08-11  James Livingston  <doclivingston@gmail.com>
1380         * configure.ac:
1381         * data/Makefile.am:
1382         - data/rhythmbox.desktop.in:
1383         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1384         the @VERSION@ can be substituted in. Fix some issues with newer
1385         bug-buddy versions. Fixes #348853.
1387 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1389         * data/rhythmbox.schemas:
1390         * plugins/Makefile.am:
1391         * plugins/artdisplay/Makefile.am:
1392         * plugins/audioscrobbler/Makefile.am:
1393         * plugins/cd-recorder/Makefile.am:
1394         * plugins/generic-player/Makefile.am:
1395         * plugins/ipod/Makefile.am:
1396         * plugins/lirc/Makefile.am:
1397         * plugins/lyrics/Makefile.am:
1398         * plugins/pythonconsole/Makefile.am:
1399         * plugins/rb-module.c:
1400         * plugins/rb-module.h:
1401         * plugins/rb-plugin-manager.c: (configure_button_cb),
1402         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1403         (plugin_manager_populate_lists), (plugin_manager_set_active),
1404         (plugin_manager_toggle_active),
1405         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1406         (rb_plugin_manager_finalize):
1407         * plugins/rb-plugin-manager.h:
1408         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1409         (rb_plugin_find_file):
1410         * plugins/rb-plugin.h:
1411         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1412         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1413         (rb_plugins_engine_init), (rb_plugin_info_free),
1414         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1415         (rb_plugins_engine_deactivate_plugin),
1416         (rb_plugins_engine_plugin_is_active),
1417         (rb_plugins_engine_plugin_is_visible),
1418         (rb_plugins_engine_plugin_is_configurable),
1419         (rb_plugins_engine_configure_plugin),
1420         (rb_plugins_engine_get_plugin_name),
1421         (rb_plugins_engine_get_plugin_description),
1422         (rb_plugins_engine_get_plugin_authors),
1423         (rb_plugins_engine_get_plugin_website),
1424         (rb_plugins_engine_get_plugin_copyright),
1425         (rb_plugins_engine_get_plugin_icon):
1426         * plugins/rb-plugins-engine.h:
1427         * plugins/rb-python-module.c: (rb_python_module_init_python),
1428         (rb_python_module_load), (rb_python_module_unload),
1429         (rb_python_module_class_init), (rb_python_module_new),
1430         (finalise_collect_cb), (rb_python_shutdown):
1431         * plugins/rb-python-module.h:
1432         * plugins/rb-python-plugin.c: (call_python_method),
1433         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1434         (impl_is_configurable), (rb_python_object_get_type):
1435         * plugins/rb-python-plugin.h:
1436         * plugins/rb/Makefile.am:
1438         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1439         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1440         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1441         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1442         special case loading of dirs.  Install plugins to subdirectors of
1443         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1444         not DATADIR.  Fixes #350352
1446 2006-08-10  James Livingston  <doclivingston@gmail.com>
1448         * daapsharing/rb-daap-connection.c: (connection_connected),
1449         (connection_disconnected), (connection_operation_done):
1450         * daapsharing/rb-daap-share.c: (name_collision_cb):
1451         * plugins/generic-player/rb-generic-player-source.c:
1452         (rb_generic_player_source_load_playlists):
1453         * podcast/rb-podcast-manager.c:
1454         (rb_podcast_manager_download_entry),
1455         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1456         (end_job), (rb_podcast_manager_event_loop):
1457         * rhythmdb/rhythmdb-property-model.c:
1458         (rhythmdb_property_model_perform_sync):
1459         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1460         (rhythmdb_query_model_process_update), (idle_process_update),
1461         (rhythmdb_query_model_reapply_query_cb):
1462         * shell/rb-play-order.c: (sync_playing_entry_cb):
1463         * shell/rb-removable-media-manager.c:
1464         (rb_removable_media_manager_load_media):
1465         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1466         (rb_shell_clipboard_sync),
1467         (rb_shell_clipboard_entryview_changed_cb),
1468         (rb_shell_clipboard_entries_changed_cb),
1469         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1470         (rebuild_playlist_menu_idle),
1471         (rb_shell_clipboard_playlist_added_cb):
1472         * shell/rb-shell-player.c: (notify_playing_idle),
1473         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1474         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1475         (rb_shell_quit):
1476         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1477         * sources/rb-library-source.c: (add_child_sources_idle):
1478         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1479         (burn_cd_idle):
1480         * sources/rb-source.c: (update_visibility_idle):
1481         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1482         (cb_button_press):
1483         * widgets/rb-druid.c: (idle_set_sensitive):
1484         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1485         take the GDK lock when we should be, from #348588
1487 2006-08-09  James Livingston  <doclivingston@gmail.com>
1489         * rhythmdb/rhythmdb-property-model.c:
1490         (rhythmdb_property_model_get_path),
1491         (rhythmdb_property_model_get_value),
1492         (rhythmdb_property_model_iter_next): don't attempt to verify the
1493         iterator if it's the All value, since it isn't valid. Fixes a
1494         potential crasher.
1496 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1498         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1499         (rb_podcast_manager_download_file_info_cb),
1500         (rb_podcast_manager_abort_download), (download_info_free),
1501         (download_info_new):
1502         Use gnome_vfs_async_get_file_info to figure out the local filename for
1503         a podcast episode, so we get the filename from the target of any
1504         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1505         the query string, then append it later, to stop gnome-vfs from
1506         converting 'http://' to 'http:/'.  If the local filename ends with the
1507         query string, remove it.  Fixes #330766 and #321991.
1509 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1511         * sources/rb-library-source.c: (impl_want_uri):
1512         * sources/rb-static-playlist-source.c: (impl_want_uri):
1513         Treat sftp:// URIs as likely indicators of songness.
1515 2006-08-07  James Livingston  <doclivingston@gmail.com>
1517         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1518         remote tracks with GStreamer 0.10, and remember their visibility like
1519         local ones.
1521 2006-08-07  James Livingston  <doclivingston@gmail.com>
1523         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1524         apparently it's a borrowed reference. Should fix #347072.
1526 2006-08-06  James Livingston  <doclivingston@gmail.com>
1528         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1529         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1530         (rb_shuffle_play_order_get_previous),
1531         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1532         (remove_from_history), (add_randomly_to_history),
1533         (rb_shuffle_sync_history_with_query_model),
1534         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1535         (query_model_and_history_contents_match): remove the tentatative
1536         history stuff, which is from older code, like we did for -random a few
1537         weeks ago.
1539 2006-08-06  James Livingston  <doclivingston@gmail.com>
1541         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1542         (rb_queue_play_order_get_previous):
1543         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1544         (rb_random_play_order_go_next),
1545         (rb_random_play_order_get_previous), (rb_random_db_changed):
1546         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1547         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1548         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1549         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1550         (rb_shuffle_entry_removed),
1551         (query_model_and_history_contents_match):
1552         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1553         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1554         (default_has_next), (default_has_previous),
1555         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1556         various play orders, after reviewing the code. Should fix #349601.
1558 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1560         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1561         Pass the items_per_notification parameter to
1562         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1563         with some versions of python.
1565 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1567         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1568         Don't try to draw the icon if the drawable area is too small.
1569         Fixes #349838.
1571 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1573         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1575         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1577 2006-08-05  James Livingston  <doclivingston@gmail.com>
1579         * configure.ac: tell libtool not to check for C++/fortran/ etc
1580         compilers
1582         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1583         watch, to fix some gconf warnings.
1585 2006-08-04  James Livingston  <doclivingston@gmail.com>
1587         patch by: William Jon McCann  <mccann@jhu.edu>
1589         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1591 2006-08-04  James Livingston  <doclivingston@gmail.com>
1593         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1594         actually fix #349722 this time
1596 2006-08-04  James Livingston  <doclivingston@gmail.com>
1598         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1599         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1600         know about. Fixes #348571.
1602 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1604         various fixes for valgrind complaints:
1605         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1606         (init_rb_tree_dnd_data):
1607           free the associated target list, too
1608         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1609           initialize allocation.{x,y,width,height} correctly
1610         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1611         (rb_entry_view_constructor):
1612           free strings when no longer needed
1614 2006-08-03  James Livingston  <doclivingston@gmail.com>
1616         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1617         real GtkTreeModel not the filter. Fixes #349722
1619 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1621         * backends/gstreamer/rb-player-gst.c:
1622         Only use DAAP seek hacks for GStreamer 0.8 builds.
1624         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1625         (rb_daap_src_open):
1626         * daapsharing/rb-daap-src.h:
1627         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1629         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1630         (rb_daap_source_get_headers):
1631         * sources/rb-daap-source.h:
1632         Reimplement rb_daap_source_get_headers for the case where we've
1633         already got the byte offset.  Add a small hack to
1634         rb_daap_source_class_init to prevent the linker from dropping
1635         rb-daap-src.o entirely.
1637         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1639 2006-08-02  James Livingston  <doclivingston@gmail.com>
1641         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1642         (handle_song_listing), (handle_playlist_entries),
1643         (rb_daap_connection_dispose):
1644         * sources/rb-daap-source.c: (_add_location_to_playlist),
1645         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1646         for playlist URIs, not pointless duplicate strings. From #347425.
1648 2006-08-02  James Livingston  <doclivingston@gmail.com>
1650         * data/rhythmbox.schemas:
1651         * lib/rb-preferences.h:
1652         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1653         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1654         (plugin_manager_set_active), (plugin_manager_toggle_active),
1655         (plugin_manager_get_selected_plugin), (name_search_cb),
1656         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1657         (rb_plugin_manager_finalize):
1658         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1659         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1660         (rb_plugins_engine_plugin_is_visible),
1661         (rb_plugins_engine_plugin_visible_cb):
1662         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1663         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1665 2006-08-02  James Livingston  <doclivingston@gmail.com>
1667         * sources/rb-sourcelist-model.c:
1668         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1669         drop on a source. Fixes #349580.
1671 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1673         * configure.ac:
1674         * daapsharing/rb-daap-dialog.c:
1675         * daapsharing/rb-daap-dialog.h:
1676         * shell/Makefile.am:
1677         * sources/Makefile.am:
1678         * sources/rb-daap-source.c: (connection_auth_cb),
1679         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1680         Add gnome-keyring support for DAAP passwords and use
1681         gnome-password-dialog instead of our own.  
1682         Patch mostly by James Livingston.  Fixes bug #330346.
1684 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1686         * shell/rb-shell-player.c:
1687         (rb_shell_player_set_playing_source_internal),
1688         (rb_shell_player_sync_with_selected_source):
1689         Remove call to rb_source_have_url, as we never did anything with the
1690         result.
1692         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1693         * sources/rb-import-errors-source.c:
1694         (rb_import_errors_source_class_init):
1695         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1696         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1697         * sources/rb-library-source.c: (rb_library_source_class_init),
1698         (impl_want_uri), (impl_add_uri):
1699         * sources/rb-missing-files-source.c:
1700         (rb_missing_files_source_class_init):
1701         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1702         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1703         (impl_want_uri), (impl_add_uri):
1704         * sources/rb-source.c: (rb_source_class_init),
1705         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1706         * sources/rb-source.h:
1707         * sources/rb-static-playlist-source.c:
1708         (rb_static_playlist_source_class_init), (search_action_changed),
1709         (impl_want_uri):
1710         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1711         When adding a URI, want_uri gets called for each source; the one that
1712         wants it most gets the URI passed to its add_uri method.
1713         
1714         * shell/rb-shell.h:
1715         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1716         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1717         (handle_playlist_entry_cb), (rb_shell_load_uri):
1718         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1719         Use want_uri and add_uri to simplify and make generic
1720         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1722         If a source that returns TRUE from try_playlist wants all the URIs in
1723         the playlist, give it the playlist URI instead.  This retains the
1724         existing behaviour for adding iradio playlists.
1726         * bindings/python/rb.defs: Update for above changes.
1728         From bug #347097.
1730 2006-07-31  James Livingston  <doclivingston@gmail.com>
1732         * data/Makefile.am:
1733         * data/generate-keys.sh: fix the build I broke with the last commit.
1734         Oops.
1736 2006-07-31  James Livingston  <doclivingston@gmail.com>
1738         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1739         in a long time. Fixes #349179.
1741 2006-07-30  James Livingston  <doclivingston@gmail.com>
1743         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1744         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1745         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1747 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1749         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1750         Don't tell the browser the query is still pending when doing a subset
1751         search.  Fixes #348617 again.
1753 2006-07-30  James Livingston  <doclivingston@gmail.com>
1755         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1756         override definition. Fixes #348893.
1758 2006-07-30  James Livingston  <doclivingston@gmail.com>
1760         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1761         rb_error_dialog, as it's above this in the stack.
1763         * lib/rb-util.c: (rb_gvalue_compare):
1764         * lib/rb-util.h: change the return type to int, as we're returning
1765         -1/0/1
1767         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1768         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1769         (rb_query_creator_set_sorting): minor leak fixes
1771 2006-07-28  James Livingston  <doclivingston@gmail.com>
1773         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1774         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1775         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1776         (get_or_create_genre), (remove_entry_from_album),
1777         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1778         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1779         (rhythmdb_tree_entry_lookup_by_location),
1780         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1781         (rhythmdb_hash_tree_foreach),
1782         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1783         threadsafe. Fix a nasty problem if the _foreach callback function
1784         caused the addition/removal of entries.
1786 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1788         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1789         Clear selection before changing our idea of the model.  Fixes crashes
1790         on model changes while playing.
1792 2006-07-27  James Livingston  <doclivingston@gmail.com>
1794         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1795         a missing rb_refstring_unref.
1797         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1798         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1799         oops. should hopefully fix the crash reported on #347425.
1801 2006-07-27  James Livingston  <doclivingston@gmail.com>
1803         * backends/gstreamer/rb-encoder-gst.c:
1804         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1806         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1807         thread-safety issue.
1809 2006-07-27  James Livingston  <doclivingston@gmail.com>
1811         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1812         * rhythmdb/rb-refstring.h: add a new function which returns the
1813         RBRefString that matches a string, but never creates a new one.
1815         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1816         (monitor_entry_file), (rhythmdb_check_changed_file),
1817         (rhythmdb_directory_change_cb):
1818         * rhythmdb/rhythmdb-private.h:
1819         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1820         (unparent_entries), (free_unknown_entries),
1821         (rhythmdb_tree_parser_start_element),
1822         (rhythmdb_tree_parser_end_element), (save_entry),
1823         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1824         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1825         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1826         (rhythmdb_tree_entry_type_registered):
1827         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1828         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1829         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1830         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1831         (rhythmdb_process_metadata_load),
1832         (rhythmdb_process_file_created_or_modified),
1833         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1834         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1835         (action_thread_main), (rhythmdb_entry_set_internal),
1836         (rhythmdb_entry_move_to_trash_set_error),
1837         (rhythmdb_entry_move_to_trash),
1838         (rhythmdb_entry_lookup_by_location),
1839         (rhythmdb_entry_lookup_by_location_refstring),
1840         (default_sync_metadata), (rhythmdb_entry_get_string),
1841         (rhythmdb_entry_get_refstring):
1842         * rhythmdb/rhythmdb.h:
1843         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1844         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1845         (rb_playlist_source_row_deleted),
1846         (rb_playlist_source_entry_added_cb),
1847         (rb_playlist_source_location_in_map),
1848         (rb_playlist_source_add_to_map): Make the LOCATION field of
1849         RhythmDBEntry be a RBRefString instead, which reduces some of the
1850         memory-fragmentation on startup and saves RBStaticPlaylistSource
1851         duplicating all the strings.
1853 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1855         * rhythmdb/rhythmdb-query-model.c:
1856         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1857         * rhythmdb/rhythmdb-query-model.h:
1858         Add function to copy contents from one query model to another,
1859         filtered by the destination model's query.
1861         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1862         Use the above to create a new query model for subset searches, rather
1863         than filtering the existing model. Fixes #348617.
1865 2006-07-25  James Livingston  <doclivingston@gmail.com>
1867         * rhythmdb/rhythmdb-query-model.c:
1868         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1869         lost from static playlists. Yet again. Fixes #323095.
1871         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1872         case for the above, so that we should know if a change will break it
1873         again.
1875 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1877         * data/rhythmbox.schemas: Fix for last commit.
1879         * podcast/rb-podcast-manager.c:
1880         (rb_podcast_manager_download_entry),
1881         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1882         (rb_podcast_manager_db_entry_deleted_cb):
1883         * rhythmdb/rhythmdb-property-model.c:
1884         (rhythmdb_property_model_set_query_model_internal),
1885         (rhythmdb_property_model_set_property),
1886         (rhythmdb_property_model_finalize),
1887         (rhythmdb_property_model_drag_data_get):
1888         * rhythmdb/rhythmdb-query-model.c:
1889         (rhythmdb_query_model_set_query_internal),
1890         (rhythmdb_query_model_set_property),
1891         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1892         * rhythmdb/rhythmdb-query-model.h:
1893         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1894         (rb_browser_source_do_query):
1895         * sources/rb-import-errors-source.c:
1896         (rb_import_errors_source_constructor):
1897         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1898         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1899         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1900         (impl_search), (impl_get_status),
1901         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1902         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1903         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1904         * sources/rb-missing-files-source.c:
1905         (rb_missing_files_source_constructor),
1906         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1907         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1908         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1909         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1910         (rb_playlist_source_save_playlist),
1911         (rb_playlist_source_new_from_xml),
1912         (rb_playlist_source_save_to_xml),
1913         (rb_playlist_source_setup_entry_view),
1914         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1915         (rb_playlist_source_get_query_model),
1916         (rb_playlist_source_mark_dirty),
1917         (rb_playlist_source_location_in_map),
1918         (rb_playlist_source_add_to_map):
1919         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1920         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1921         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1922         (impl_delete), (rb_podcast_source_state_prefs_sync),
1923         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1924         (impl_get_config_widget), (rb_podcast_source_add_feed),
1925         (rb_podcast_source_cmd_download_post),
1926         (rb_podcast_source_cmd_cancel_download),
1927         (rb_podcast_source_cmd_delete_feed),
1928         (rb_podcast_source_cmd_update_feed),
1929         (rb_podcast_source_cmd_update_all),
1930         (rb_podcast_source_cb_interval_changed_cb),
1931         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1932         (rb_podcast_source_entry_activated_cb):
1933         * sources/rb-source.c: (rb_source_finalize),
1934         (rb_source_set_query_model_internal), (rb_source_set_property),
1935         (default_get_status):
1936         * sources/rb-static-playlist-source.c:
1937         (rb_static_playlist_source_dispose),
1938         (rb_static_playlist_source_finalize),
1939         (rb_static_playlist_source_constructor),
1940         (rb_static_playlist_source_do_query):
1941         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1942         (rb_entry_view_set_shell_player_internal),
1943         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1944         (rb_entry_view_set_model), (rb_entry_view_append_column),
1945         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1946         (rb_entry_view_set_state):
1947         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1948         (rb_library_browser_finalize), (rb_library_browser_new),
1949         (update_browser_property_visibilty), (view_selection_reset_cb),
1950         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1951         (restore_selection), (rebuild_child_model),
1952         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1953         * widgets/rb-property-view.c:
1954         (rb_property_view_set_model_internal),
1955         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1956         (rb_property_view_get_model), (rb_property_view_set_model),
1957         (rb_property_view_get_num_properties),
1958         (rb_property_view_set_selection),
1959         (rb_property_view_append_column_custom),
1960         (rb_property_view_set_search_func):
1961         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1962         From #347446
1964 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1966         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1967         Work around a small n-c-b API change.
1969 2006-07-25  James Livingston  <doclivingston@gmail.com>
1971         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1973         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1974         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1975         aborting entry-emission on finalise
1977 2006-07-25  James Livingston  <doclivingston@gmail.com>
1979         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1980         warning when entry is NULL.
1982 2006-07-25  James Livingston  <doclivingston@gmail.com>
1984         * help/sv/.cvsignore:
1985         * lib/.cvsignore:
1986         * plugins/generic-player/.cvsignore:
1987         * remote/.cvsignore:
1988         * remote/dbus/.cvsignore:
1989         * shell/.cvsignore:
1990         * tests/.cvsignore: more .cvsignore updates
1992 2006-07-24  James Livingston  <doclivingston@gmail.com>
1994         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1995         (transparent_expose_event), (make_transparent_again),
1996         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1997         apply a patch for EggTrayIcon so that it handled transparent panels
1998         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1999         Fixes #348208.
2001 2006-07-24  James Livingston  <doclivingston@gmail.com>
2003         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2004         queries rather than taking ownership when parsing a subquery. Fixed a
2005         crash exposed by the recent leak fixes.
2007         * doc/reference/tmpl/disclosure-widget.sgml:
2008         * doc/reference/tmpl/rb-debug.sgml:
2009         * doc/reference/tmpl/rb-metadata.sgml:
2010         * doc/reference/tmpl/rb-play-order.sgml:
2011         * doc/reference/tmpl/rb-playlist-manager.sgml:
2012         * doc/reference/tmpl/rb-playlist-source.sgml:
2013         * doc/reference/tmpl/rb-shell-player.sgml:
2014         * doc/reference/tmpl/rb-shell.sgml:
2015         * doc/reference/tmpl/rb-song-display-box.sgml:
2016         * doc/reference/tmpl/rhythmbox-unused.sgml:
2017         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2019 2006-07-24  James Livingston  <doclivingston@gmail.com>
2021         * lib/.cvsignore:
2022         * plugins/artdisplay/.cvsignore:
2023         * plugins/artdisplay/artdisplay/.cvsignore:
2024         * plugins/lyrics/.cvsignore:
2025         * plugins/pythonconsole/.cvsignore:
2026         * plugins/rb/.cvsignore: add/update various .cvsignore files
2028 2006-07-24  James Livingston  <doclivingston@gmail.com>
2030         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2031         (rb_refstring_ref): don't emit critical warnings when the refstring
2032         is NULL, as that happens often for podcast metadata.
2034         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2035         missing rhythmdb_entry_ref call
2037 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2039         * bindings/python/rb.override:
2040         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2041         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2042         (playlist_row_inserted_cb):
2043         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2044         * plugins/rb-plugin-manager.c:
2045         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2046         (rb_podcast_manager_copy_post),
2047         (rb_podcast_manager_db_entry_deleted_cb),
2048         (rb_podcast_manager_insert_feed):
2049         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2050         (rb_refstring_ref), (rb_refstring_get_sort_key):
2051         * rhythmdb/rhythmdb-private.h:
2052         * rhythmdb/rhythmdb-property-model.c:
2053         (rhythmdb_property_model_set_property),
2054         (rhythmdb_property_model_get_property),
2055         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2056         (rhythmdb_property_model_row_inserted_cb),
2057         (rhythmdb_property_model_prop_changed_cb),
2058         (rhythmdb_property_model_compare),
2059         (rhythmdb_property_model_insert),
2060         (rhythmdb_property_model_iter_from_string),
2061         (rhythmdb_property_model_get_column_type),
2062         (rhythmdb_property_model_get_iter),
2063         (rhythmdb_property_model_get_value),
2064         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2065         (rhythmdb_property_model_enable_drag):
2066         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2067         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2068         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2069         (rhythmdb_query_model_chain),
2070         (rhythmdb_query_model_entry_added_cb),
2071         (rhythmdb_query_model_entry_changed_cb),
2072         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2073         (rhythmdb_query_model_add_entry),
2074         (rhythmdb_query_model_insert_into_main_list),
2075         (rhythmdb_query_model_insert_into_limited_list),
2076         (rhythmdb_query_model_remove_from_main_list),
2077         (rhythmdb_query_model_remove_from_limited_list),
2078         (rhythmdb_query_model_update_limited_entries),
2079         (rhythmdb_query_model_emit_reorder),
2080         (rhythmdb_query_model_do_reorder),
2081         (rhythmdb_query_model_do_insert),
2082         (rhythmdb_query_model_move_entry),
2083         (rhythmdb_query_model_remove_entry),
2084         (rhythmdb_query_model_entry_to_iter),
2085         (rhythmdb_query_model_iter_to_entry),
2086         (rhythmdb_query_model_get_previous_from_entry),
2087         (rhythmdb_query_model_row_draggable),
2088         (rhythmdb_query_model_drag_data_delete),
2089         (rhythmdb_query_model_drag_data_get),
2090         (rhythmdb_query_model_drag_data_received),
2091         (rhythmdb_query_model_row_drop_possible),
2092         (rhythmdb_query_model_row_drop_position),
2093         (rhythmdb_query_model_add_results),
2094         (rhythmdb_query_model_query_complete),
2095         (rhythmdb_query_model_get_column_type),
2096         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2097         (rhythmdb_query_model_iter_nth_child),
2098         (apply_updated_entry_sequence),
2099         (rhythmdb_query_model_child_index_to_base_index),
2100         (rhythmdb_query_model_get_entry_index),
2101         (rhythmdb_query_model_base_row_inserted),
2102         (rhythmdb_query_model_base_row_deleted),
2103         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2104         (rhythmdb_query_model_location_sort_func),
2105         (rhythmdb_query_model_title_sort_func),
2106         (rhythmdb_query_model_album_sort_func),
2107         (rhythmdb_query_model_artist_sort_func),
2108         (rhythmdb_query_model_track_sort_func),
2109         (rhythmdb_query_model_double_ceiling_sort_func),
2110         (rhythmdb_query_model_ulong_sort_func),
2111         (rhythmdb_query_model_date_sort_func),
2112         (rhythmdb_query_model_string_sort_func),
2113         (rhythmdb_query_model_within_limit):
2114         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2115         (rhythmdb_tree_parser_start_element),
2116         (rhythmdb_tree_parser_end_element),
2117         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2118         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2119         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2120         (save_entry_uint64), (save_entry_double), (save_entry),
2121         (set_entry_album), (rhythmdb_tree_entry_new),
2122         (get_genres_hash_for_type), (get_or_create_genre),
2123         (get_or_create_artist), (get_or_create_album), (remove_child),
2124         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2125         (rhythmdb_tree_entry_delete), (remove_one_song),
2126         (rhythmdb_tree_entry_delete_by_type),
2127         (rhythmdb_tree_evaluate_query), (search_match_properties),
2128         (evaluate_conjunctive_subquery), (do_conjunction),
2129         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2130         (conjunctive_query_albums), (conjunctive_query_artists),
2131         (conjunctive_query_genre), (conjunctive_query),
2132         (split_query_by_disjunctions), (do_query_recurse),
2133         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2134         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2135         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2136         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2137         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2138         (extract_gtype_from_enum_entry),
2139         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2140         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2141         (rhythmdb_event_free), (rhythmdb_finalize),
2142         (rhythmdb_set_property), (rhythmdb_get_property),
2143         (rhythmdb_thread_create), (free_entry_changes),
2144         (emit_entry_changed), (sync_entry_changed),
2145         (process_added_entries_cb), (process_deleted_entries_cb),
2146         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2147         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2148         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2149         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2150         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2151         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2152         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2153         (rhythmdb_process_metadata_load),
2154         (rhythmdb_process_file_created_or_modified),
2155         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2156         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2157         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2158         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2159         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2160         (record_entry_change), (rhythmdb_entry_set_internal),
2161         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2162         (rhythmdb_entry_move_to_trash_cb),
2163         (rhythmdb_entry_move_to_trash_set_error),
2164         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2165         (rhythmdb_nice_elt_name_from_propid),
2166         (rhythmdb_propid_from_nice_elt_name),
2167         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2168         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2169         (rhythmdb_compute_status_normal), (default_sync_metadata),
2170         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2171         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2172         (podcast_get_playback_uri), (podcast_data_destroy),
2173         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2174         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2175         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2176         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2177         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2178         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2179         * rhythmdb/rhythmdb.h:
2180         * shell/rb-play-order-linear-loop.c:
2181         (rb_linear_play_order_loop_get_next),
2182         (rb_linear_play_order_loop_get_previous):
2183         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2184         (rb_linear_play_order_get_previous):
2185         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2186         * shell/rb-play-order-random.c: (get_query_model_contents):
2187         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2188         (get_query_model_contents):
2189         * shell/rb-play-order.c: (rb_play_order_constructor),
2190         (rb_play_order_finalize),
2191         (rb_play_order_set_playing_entry_internal),
2192         (rb_play_order_set_property), (rb_play_order_new),
2193         (rb_play_order_get_player), (rb_play_order_get_source),
2194         (rb_play_order_get_db), (rb_play_order_get_query_model),
2195         (rb_play_order_player_is_playing),
2196         (rb_play_order_set_playing_entry),
2197         (rb_play_order_get_playing_entry),
2198         (rb_play_order_playing_source_changed),
2199         (rb_play_order_query_model_changed),
2200         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2201         (default_has_next), (default_has_previous),
2202         (sync_playing_entry_cb), (default_playing_entry_removed),
2203         (rb_play_order_has_next), (rb_play_order_get_next),
2204         (rb_play_order_go_next), (rb_play_order_has_previous),
2205         (rb_play_order_get_previous), (rb_play_order_go_previous),
2206         (rb_play_order_model_not_empty),
2207         (rb_play_order_update_have_next_previous):
2208         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2209         (rb_playlist_manager_save_playlists),
2210         (rb_playlist_manager_set_automatic_playlist),
2211         (rb_playlist_manager_cmd_edit_automatic_playlist),
2212         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2213         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2214         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2215         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2216         (volume_pre_unmount_cb), (reemit_playing_signal),
2217         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2218         (rb_shell_player_handle_eos_unlocked),
2219         (rb_shell_player_handle_eos), (rb_shell_player_init),
2220         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2221         (playlist_entry_cb), (rb_shell_player_open_entry),
2222         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2223         (rb_shell_player_set_play_order),
2224         (rb_shell_player_set_playback_state),
2225         (rb_shell_player_sync_play_order),
2226         (rb_shell_player_play_order_update_cb),
2227         (rb_shell_player_jump_to_current), (swap_playing_source),
2228         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2229         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2230         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2231         (rb_shell_player_entry_activated_cb),
2232         (rb_shell_player_property_row_activated_cb),
2233         (rb_shell_player_entry_changed_cb),
2234         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2235         (rb_shell_player_pause),
2236         (rb_shell_player_get_playing_song_duration),
2237         (rb_shell_player_error), (error_cb), (tick_cb),
2238         (info_available_cb), (buffering_cb),
2239         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2240         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2241         (rb_shell_jump_to_current):
2242         * sources/rb-auto-playlist-source.c:
2243         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2244         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2245         (rb_auto_playlist_source_get_query):
2246         * sources/rb-auto-playlist-source.h:
2247         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2248         * sources/rb-import-errors-source.c:
2249         (rb_import_errors_source_constructor):
2250         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2251         * sources/rb-library-source.c: (filepath_parse_pattern):
2252         * sources/rb-missing-files-source.c:
2253         (rb_missing_files_source_constructor):
2254         * sources/rb-play-queue-source.c:
2255         (rb_play_queue_source_clear_queue),
2256         (rb_play_queue_source_track_info_cell_data_func):
2257         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2258         (rb_playlist_source_get_property), (playlist_iter_func),
2259         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2260         (rb_playlist_source_track_cell_data_func):
2261         * sources/rb-podcast-source.c: (construct_query_from_selection),
2262         (rb_podcast_source_post_status_cell_data_func),
2263         (rb_podcast_source_post_feed_cell_data_func),
2264         (rb_podcast_source_feed_title_search_func),
2265         (rb_podcast_source_post_date_cell_data_func):
2266         * sources/rb-source.c: (default_get_status),
2267         (rb_source_get_status), (rb_source_browser_toggled),
2268         (rb_source_update_play_statistics), (rb_source_search),
2269         (rb_source_get_config_widget), (default_add_to_queue),
2270         (rb_source_add_to_queue), (rb_source_receive_drag),
2271         (rb_source_gather_hash_keys):
2272         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2273         (rb_sourcelist_model_is_row_visible),
2274         (rb_sourcelist_model_row_is_separator),
2275         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2276         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2277         (rb_sourcelist_model_drag_data_get):
2278         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2279         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2280         (rb_sourcelist_visible_source_to_iter),
2281         (rb_sourcelist_edit_source_name), (set_source_playing),
2282         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2283         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2284         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2285         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2286         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2287         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2288         (rb_static_playlist_source_add_location_internal),
2289         (rb_static_playlist_source_row_inserted):
2290         * widgets/rb-entry-view.c: (type_ahead_search_func),
2291         (rb_entry_view_finalize), (rb_entry_view_set_model),
2292         (rb_entry_view_playing_cell_data_func),
2293         (rb_entry_view_rating_cell_data_func),
2294         (rb_entry_view_long_cell_data_func),
2295         (rb_entry_view_play_count_cell_data_func),
2296         (rb_entry_view_duration_cell_data_func),
2297         (rb_entry_view_year_cell_data_func),
2298         (rb_entry_view_quality_cell_data_func),
2299         (rb_entry_view_location_cell_data_func),
2300         (rb_entry_view_string_cell_data_func),
2301         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2302         (rb_entry_view_get_sorting_order),
2303         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2304         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2305         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2306         (rb_entry_view_playing_song_changed), (harvest_entries),
2307         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2308         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2309         (set_column_visibility):
2310         * widgets/rb-entry-view.h:
2311         * widgets/rb-header.c: (rb_header_new),
2312         (rb_header_set_playing_entry), (rb_header_set_title):
2313         * widgets/rb-library-browser.c: (rebuild_child_model),
2314         (rb_library_browser_set_model):
2315         * widgets/rb-property-view.c:
2316         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2317         (rb_property_view_set_property), (rb_property_view_get_property),
2318         (rb_property_view_reset), (rb_property_view_get_model),
2319         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2320         (rb_property_view_button_press_cb):
2321         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2322         (rb_query_creator_get_property), (rb_query_creator_load_query),
2323         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2324         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2325         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2326         (lookup_row_by_widget), (remove_button_click_cb),
2327         (add_button_click_cb), (create_property_option_menu):
2328         * widgets/rb-song-info.c: (rb_song_info_constructor),
2329         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2330         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2331         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2332         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2334 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2336         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2337         (rb_shell_player_get_property):
2338         Add a property providing access to the player backend object.
2340 2006-07-23  James Livingston  <doclivingston@gmail.com>
2342         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2343         (get_history), (rb_random_filter_history),
2344         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2345         remove the tentative history, since it appears to be a remanent from
2346         older play order code. The only thing it was doing was using up
2347         CPU-time and memory. From #345857
2349 2006-07-23  James Livingston  <doclivingston@gmail.com>
2351         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2353         * shell/main.c: (main):
2354         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2355         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2356         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2357         (rb_playlist_manager_load_playlists),
2358         (rb_playlist_manager_save_data):
2359         * shell/rb-playlist-manager.h:
2360         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2361         (rb_shell_get_property), (rb_shell_sync_state),
2362         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2363         (construct_sources), (idle_handle_load_complete):
2364         * shell/rb-shell.h: Add a command-line option for changing the
2365         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2367 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2369         * daapsharing/rb-daap-share.c: (databases_cb):
2370         Make sure we set status codes on HTTP responses.
2372 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2374         * configure.ac:
2375         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2376         (chunked_message_finished), (send_chunked_file),
2377         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2378         Use GMappedFile to send local files to DAAP clients where possible.  
2379         iTunes can't seek properly in files sent using chunked transfer 
2380         encoding.  Also remove the useless bitrate calculation code, as we
2381         never even used the result anyway.  From #330410.
2383 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2385         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2387         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2388         Enable multiple selection for 'import file'.  Fixes #347478.
2390 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2392         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2393         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2394         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2395         Fixes #348098.
2397 2006-07-20  James Livingston  <doclivingston@gmail.com>
2399         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2400         aren't NULL before calling strstr. Fixes #347998.
2402 2006-07-19  James Livingston  <doclivingston@gmail.com>
2404         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2406         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2407         MB that only have years. Fixes #347906.
2409 2006-07-19  James Livingston  <doclivingston@gmail.com>
2411         * rhythmdb/rhythmdb-private.h:
2412         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2413         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2414         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2415         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2416         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2417         (rhythmdb_execute_stat), (queue_stat_uri),
2418         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2419         (rhythmdb_load), (rhythmdb_entry_register_type),
2420         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2421         asynchronous vfs operations, and cancel them when shutting down the
2422         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2424         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2425         (test_rhythmdb_shutdown): wait until the db has been finalised before
2426         continuing on to the next test.
2428 2006-07-19  James Livingston  <doclivingston@gmail.com>
2430         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2431         right thing in the #ifdef. From #347832.
2433 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2435         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2436         Fix compile warning.
2438 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2440         * rhythmdb/rhythmdb-query-model.c:
2441         (rhythmdb_query_model_set_property),
2442         (rhythmdb_query_model_reapply_query_cb):
2443         Ignore old query == new query case.
2444         Fixes auto playlists with time-relative queries.
2446         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2447         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2448         (rhythmdb_query_to_string):
2449         * rhythmdb/rhythmdb.h:
2450         Add debug helper for printing queries in case someone needs it again.
2452 2006-07-18  James Livingston  <doclivingston@gmail.com>
2454         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2455         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2456         Fixes #347832
2458         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2459         write then into files.
2461 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2463         * daapsharing/rb-daap-connection.c:
2464         (rb_daap_connection_set_property):
2465         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2466         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2467         (add_playlist_to_mlcl), (databases_cb):
2468         * daapsharing/rb-daap-sharing.c: (create_share):
2469         * iradio/rb-new-station-dialog.c:
2470         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2471         * iradio/rb-station-properties-dialog.c:
2472         (rb_station_properties_dialog_finalize),
2473         (rb_station_properties_dialog_set_property),
2474         (rb_station_properties_dialog_get_current_entry):
2475         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2476         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2477         * plugins/generic-player/rb-generic-player-source.c:
2478         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2479         (handle_playlist_entry_cb):
2480         * plugins/generic-player/rb-nokia770-source.c:
2481         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2482         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2483         (visit_playlist_dirs), (hal_udi_is_psp):
2484         * podcast/rb-podcast-manager.c:
2485         * podcast/rb-podcast-properties-dialog.c:
2486         (rb_podcast_properties_dialog_finalize),
2487         (rb_podcast_properties_dialog_set_entry_view),
2488         (rb_podcast_properties_dialog_set_property):
2489         * rhythmdb/rhythmdb-property-model.c:
2490         * rhythmdb/rhythmdb-query-model.c:
2491         (rhythmdb_query_model_set_property),
2492         (rhythmdb_query_model_reapply_query_cb):
2493         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2494         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2495         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2496         (rhythmdb_event_free), (rhythmdb_shutdown),
2497         (rhythmdb_thread_create), (action_thread_main),
2498         (rhythmdb_do_full_query_async_parsed),
2499         (rhythmdb_do_full_query_internal):
2500         * shell/main.c: (main):
2501         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2502         * shell/rb-play-order.c: (rb_play_order_finalize),
2503         (rb_play_order_set_player),
2504         (rb_play_order_set_playing_entry_internal),
2505         (rb_play_order_set_property),
2506         (rb_play_order_playing_source_changed),
2507         (rb_play_order_query_model_changed):
2508         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2509         (rb_playlist_manager_set_source),
2510         (rb_playlist_manager_set_shell_internal),
2511         (rb_playlist_manager_set_property):
2512         * shell/rb-removable-media-manager.c:
2513         (rb_removable_media_manager_set_property),
2514         (rb_removable_media_manager_set_uimanager),
2515         (rb_removable_media_manager_cmd_eject_medium),
2516         (rb_removable_media_manager_cmd_copy_tracks):
2517         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2518         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2519         (rb_shell_clipboard_set),
2520         (rb_shell_clipboard_cmd_add_to_playlist_new),
2521         (rb_shell_clipboard_playlist_add_cb),
2522         (rb_shell_clipboard_playlist_renamed_cb),
2523         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2524         (rebuild_playlist_menu):
2525         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2526         (rb_shell_player_set_queue_source_internal),
2527         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2528         (rb_shell_player_entry_activated_cb),
2529         (rb_shell_player_property_row_activated_cb),
2530         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2531         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2532         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2533         (rb_shell_finalize), (construct_widgets),
2534         (rb_shell_playing_from_queue_cb),
2535         (rb_shell_player_stream_song_changed_cb),
2536         (rb_shell_player_volume_changed_cb):
2537         * shell/rb-statusbar.c: (rb_statusbar_new):
2538         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2539         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2540         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2541         * sources/rb-auto-playlist-source.c:
2542         (rb_auto_playlist_source_class_init),
2543         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2544         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2545         (rb_auto_playlist_source_do_query),
2546         (rb_auto_playlist_source_set_query),
2547         (rb_auto_playlist_source_browser_changed_cb),
2548         (search_action_changed):
2549         * sources/rb-auto-playlist-source.h:
2550         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2551         (search_action_changed), (rb_browser_source_constructor),
2552         (rb_browser_source_cmd_choose_artist), (impl_delete),
2553         (rb_browser_source_browser_changed_cb),
2554         (rb_browser_source_do_query):
2555         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2556         (rb_daap_source_finalize), (rb_daap_source_class_init),
2557         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2558         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2559         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2560         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2561         (rb_daap_source_get_headers):
2562         * sources/rb-import-errors-source.c:
2563         (rb_import_errors_source_constructor),
2564         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2565         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2566         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2567         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2568         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2569         (impl_paste), (impl_receive_drag):
2570         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2571         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2572         (impl_song_properties):
2573         * sources/rb-library-source.c: (rb_library_source_constructor),
2574         (rb_library_source_new), (impl_paste),
2575         (rb_library_source_add_child_source):
2576         * sources/rb-missing-files-source.c: (impl_delete),
2577         (impl_get_status):
2578         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2579         (rb_play_queue_source_class_init),
2580         (rb_play_queue_source_constructor):
2581         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2582         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2583         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2584         (rb_playlist_source_new_from_xml),
2585         (rb_playlist_source_save_to_xml):
2586         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2587         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2588         (search_action_changed), (rb_podcast_source_constructor),
2589         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2590         (construct_query_from_selection),
2591         (rb_podcast_source_cmd_download_post),
2592         (rb_podcast_source_cmd_cancel_download),
2593         (rb_podcast_source_cmd_delete_feed),
2594         (rb_podcast_source_start_download_cb),
2595         (rb_podcast_source_finish_download_cb),
2596         (rb_podcast_source_feed_updates_avaliable_cb),
2597         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2598         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2599         (impl_get_status):
2600         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2601         * sources/rb-source.c: (rb_source_get_property),
2602         (default_add_to_queue), (default_move_to_trash),
2603         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2604         (_rb_source_register_action_group):
2605         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2606         (rb_sourcelist_model_is_row_visible),
2607         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2608         (rb_sourcelist_model_row_draggable),
2609         (rb_sourcelist_model_drag_data_get):
2610         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2611         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2612         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2613         (visibility_notify_cb):
2614         * sources/rb-static-playlist-source.c:
2615         (rb_static_playlist_source_class_init),
2616         (rb_static_playlist_source_init),
2617         (rb_static_playlist_source_finalize),
2618         (rb_static_playlist_source_constructor), (impl_delete),
2619         (rb_static_playlist_source_browser_changed_cb),
2620         (rb_static_playlist_source_add_location_internal),
2621         (search_action_changed):
2622         * sources/rb-static-playlist-source.h:
2623         * widgets/rb-druid.c:
2624         * widgets/rb-entry-view.c:
2625         (rb_entry_view_set_shell_player_internal),
2626         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2627         (rb_entry_view_get_property), (rb_entry_view_new),
2628         (rb_entry_view_button_press_cb):
2629         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2630         (rb_library_browser_set_property),
2631         (rb_library_browser_get_property):
2632         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2633         (get_entry_for_property), (get_property_index_from_proptype):
2634         * widgets/rb-song-info.c: (rb_song_info_constructor),
2635         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2636         (rb_song_info_set_property), (rb_song_info_get_property):
2638         More leak and reference counting fixes.  From bug #347446.
2640 2006-07-17  James Livingston  <doclivingston@gmail.com>
2642         * sources/rb-auto-playlist-source.c:
2643         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2644         rather than setting the base model, as that lets us not import all the
2645         entries from the base model. This fixes some issues whether the search
2646         box wasn't filting automatic playlists.
2648 2006-07-17  James Livingston  <doclivingston@gmail.com>
2650         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2651         error, which caused blacklist creation to fail.
2653 2006-07-17  James Livingston  <doclivingston@gmail.com>
2655         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2656         running with -n, because we don't start it then. Fixes a crash on
2657         exit.
2659 2006-07-17  James Livingston  <doclivingston@gmail.com>
2661         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2663         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2664         Save not Open for the button. Fixes #345816
2666 2006-07-17  James Livingston  <doclivingston@gmail.com>
2668         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2670         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2671         when track transfer is disabled. Fixes #347705
2673 2006-07-17  James Livingston  <doclivingston@gmail.com>
2675         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2677         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2678         with track transfer disabled. Fixes #347705
2680 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2682         * rhythmdb/rhythmdb-query-model.c:
2683         (rhythmdb_query_model_set_property):
2684         * shell/main.c: (main):
2685         * shell/rb-shell-clipboard.c: (unset_source_internal),
2686         (rb_shell_clipboard_finalize),
2687         (rb_shell_clipboard_set_source_internal),
2688         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2689         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2690         (rb_shell_player_set_db_internal),
2691         (rb_shell_player_set_queue_source_internal),
2692         (rb_shell_player_finalize), (rb_shell_player_set_property):
2693         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2694         * sources/rb-auto-playlist-source.c:
2695         (rb_auto_playlist_source_constructor),
2696         (rb_auto_playlist_source_new_from_xml):
2697         * sources/rb-daap-source.c: (create_pixbufs):
2698         * sources/rb-ipod-source.c:
2699         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2700         * sources/rb-library-source.c:
2701         (rb_library_source_add_child_source):
2702         * sources/rb-play-queue-source.c:
2703         (rb_play_queue_sync_playing_state),
2704         (rb_play_queue_source_track_info_cell_data_func):
2705         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2706         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2707         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2708         (impl_can_add_to_queue), (impl_add_to_queue):
2709         * sources/rb-source.c: (rb_source_set_property):
2710         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2711         * sources/rb-static-playlist-source.c:
2712         (rb_static_playlist_source_constructor),
2713         (rb_static_playlist_source_load_from_xml):
2714         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2715         * widgets/rb-entry-view.c: (rb_entry_view_init),
2716         (rb_entry_view_finalize), (rb_entry_view_append_column),
2717         (rb_entry_view_constructor):
2718         * widgets/rb-song-info.c: (rb_song_info_set_property):
2719         Fix leaks.  From bug #347446.
2721 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2723         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2724         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2725         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2726         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2727         (add_decoding_pipeline), (profile_bin_find_encoder),
2728         (get_profile_from_mime_type), (extract_track), (transcode_track),
2729         (rb_encoder_gst_encode):
2730         * backends/gstreamer/rb-encoder-gst.h:
2731         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2732         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2733         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2734         (rb_player_gst_construct):
2735         * backends/gstreamer/rb-player-gst.h:
2736         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2737         * backends/rb-encoder.h:
2738         * backends/rb-player.c: (_rb_player_emit_tick):
2739         * backends/rb-player.h:
2740         * daapsharing/rb-daap-connection.c: (build_message),
2741         (actual_http_response_handler), (http_response_handler),
2742         (http_get), (entry_set_string_prop), (emit_progress_idle),
2743         (handle_server_info), (handle_database_info),
2744         (handle_song_listing), (handle_playlists),
2745         (handle_playlist_entries), (rb_daap_connection_new),
2746         (connected_cb), (rb_daap_connection_do_something),
2747         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2748         (rb_daap_connection_get_property):
2749         * daapsharing/rb-daap-connection.h:
2750         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2751         (rb_daap_collision_dialog_new_run):
2752         * daapsharing/rb-daap-dialog.h:
2753         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2754         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2755         (DigestToString), (rb_daap_hash_generate):
2756         * daapsharing/rb-daap-hash.h:
2757         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2758         (resolve_cb), (browse_cb):
2759         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2760         (resolve_cb), (rb_daap_mdns_browser_resolve),
2761         (rb_daap_mdns_browser_start), (resolver_free):
2762         * daapsharing/rb-daap-mdns-browser.h:
2763         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2764         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2765         (publish_cb):
2766         * daapsharing/rb-daap-mdns-publisher.h:
2767         * daapsharing/rb-daap-share.c: (name_collision_cb),
2768         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2769         (message_set_from_rb_daap_structure), (content_codes_cb),
2770         (session_id_validate), (logout_cb), (update_cb),
2771         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2772         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2773         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2774         (rb_daap_share_publish_start):
2775         * daapsharing/rb-daap-share.h:
2776         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2777         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2778         * daapsharing/rb-daap-sharing.h:
2779         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2780         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2781         (rb_daap_src_open):
2782         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2783         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2784         (rb_daap_structure_parse_container_buffer),
2785         (rb_daap_structure_parse), (gnode_find_node),
2786         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2787         (print_rb_daap_item):
2788         * daapsharing/rb-daap-structure.h:
2789         * iradio/rb-new-station-dialog.c:
2790         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2791         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2792         (rb_new_station_dialog_text_changed):
2793         * iradio/rb-station-properties-dialog.c:
2794         (rb_station_properties_dialog_init),
2795         (rb_station_properties_dialog_new),
2796         (rb_station_properties_dialog_response_cb),
2797         (rb_station_properties_dialog_get_current_entry),
2798         (rb_station_properties_dialog_rated_cb),
2799         (rb_station_properties_dialog_update_rating),
2800         (rb_station_properties_dialog_update_playback_error),
2801         (rb_station_properties_dialog_sync_entries):
2802         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2803         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2804         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2805         (rb_metadata_can_save), (rb_metadata_save):
2806         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2807         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2808         (_handle_message), (_new_connection), (main):
2809         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2810         (rb_metadata_dbus_read_from_message):
2811         * metadata/rb-metadata-dbus.h:
2812         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2813         (rb_add_id3_tagger), (rb_metadata_init),
2814         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2815         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2816         (rb_metadata_gst_new_decoded_pad_cb),
2817         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2818         * metadata/sj-error.c: (sj_error_quark):
2819         * metadata/sj-error.h:
2820         * metadata/sj-metadata-musicbrainz.c:
2821         (sj_metadata_musicbrainz_instance_init),
2822         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2823         (get_rdf), (lookup_cd):
2824         * metadata/sj-metadata.c: (sj_metadata_get_type):
2825         * metadata/sj-structures.c:
2826         * metadata/sj-structures.h:
2827         * metadata/test-metadata.c: (load_metadata_cb), (main):
2828         * podcast/rb-feed-podcast-properties-dialog.c:
2829         (rb_feed_podcast_properties_dialog_init),
2830         (rb_feed_podcast_properties_dialog_update_title):
2831         * podcast/rb-feed-podcast-properties-dialog.h:
2832         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2833         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2834         (rb_new_podcast_dialog_text_changed):
2835         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2836         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2837         (rb_podcast_manager_set_property),
2838         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2839         (rb_podcast_manager_download_entry),
2840         (rb_podcast_manager_update_feeds),
2841         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2842         (rb_podcast_manager_copy_post),
2843         (rb_podcast_manager_thread_parse_feed),
2844         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2845         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2846         (download_info_free), (download_info_new), (start_job),
2847         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2848         (download_progress_cb), (download_progress_update_cb),
2849         (rb_podcast_manager_remove_feed),
2850         (rb_podcast_manager_db_entry_deleted_cb),
2851         (rb_podcast_manager_cancel_download),
2852         (rb_podcast_manager_update_synctime),
2853         (rb_podcast_manager_set_remove_files),
2854         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2855         (rb_podcast_manager_abort_subscribe),
2856         (rb_podcast_manager_get_podcast_dir):
2857         * podcast/rb-podcast-manager.h:
2858         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2859         (rb_validate_channel_propert), (rb_validate_item_propert),
2860         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2861         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2862         (rb_podcast_parse_date), (rb_podcast_parse_time),
2863         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2864         * podcast/rb-podcast-parse.h:
2865         * podcast/rb-podcast-properties-dialog.c:
2866         (rb_podcast_properties_dialog_init),
2867         (rb_podcast_properties_dialog_get_current_entry),
2868         (rb_podcast_properties_dialog_update_title),
2869         (rb_podcast_properties_dialog_update_duration),
2870         (rb_podcast_properties_dialog_update_date):
2871         * podcast/rb-podcast-properties-dialog.h:
2872         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2873         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2874         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2875         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2876         (g_sequence_search), (g_sequence_set_aggregate_data),
2877         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2878         (find_min), (g_sequence_node_find_by_pos),
2879         (g_sequence_node_find_closest), (g_sequence_node_free),
2880         (g_sequence_node_split), (g_sequence_node_insert_before),
2881         (g_sequence_node_get_length), (g_sequence_node_remove),
2882         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2883         (g_sequence_calc_tree_height):
2884         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2885         (rb_refstring_get):
2886         * rhythmdb/rb-refstring.h:
2887         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2888         (rhythmdb_gda_init), (dump_model), (execute_query),
2889         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2890         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2891         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2892         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2893         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2894         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2895         * rhythmdb/rhythmdb-gda.h:
2896         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2897         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2898         (monitor_library_directory), (rhythmdb_check_changed_file),
2899         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2900         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2901         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2902         * rhythmdb/rhythmdb-private.h:
2903         * rhythmdb/rhythmdb-property-model.c:
2904         (rhythmdb_property_model_set_property),
2905         (rhythmdb_property_model_row_inserted_cb),
2906         (rhythmdb_property_model_prop_changed_cb),
2907         (rhythmdb_property_model_compare),
2908         (rhythmdb_property_model_get_value),
2909         (rhythmdb_property_model_iter_nth_child),
2910         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2911         (rhythmdb_property_model_drag_data_get),
2912         (rhythmdb_property_model_enable_drag),
2913         (rhythmdb_property_model_column_get_type):
2914         * rhythmdb/rhythmdb-property-model.h:
2915         * rhythmdb/rhythmdb-query-model.c:
2916         (rhythmdb_query_model_class_init),
2917         (rhythmdb_query_model_set_property),
2918         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2919         (rhythmdb_query_model_has_pending_changes),
2920         (rhythmdb_query_model_entry_changed_cb),
2921         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2922         (rhythmdb_query_model_add_entry),
2923         (rhythmdb_query_model_remove_from_main_list),
2924         (rhythmdb_query_model_remove_entry),
2925         (rhythmdb_query_model_drag_data_received),
2926         (rhythmdb_query_model_row_drop_possible),
2927         (rhythmdb_query_model_compute_status_normal),
2928         (rhythmdb_query_model_set_sort_order),
2929         (rhythmdb_query_model_get_entry_index),
2930         (rhythmdb_query_model_base_row_inserted),
2931         (rhythmdb_query_model_base_row_deleted),
2932         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2933         (rhythmdb_query_model_date_sort_func),
2934         (rhythmdb_query_model_within_limit):
2935         * rhythmdb/rhythmdb-query-model.h:
2936         * rhythmdb/rhythmdb-query-results.c:
2937         (rhythmdb_query_results_query_complete):
2938         * rhythmdb/rhythmdb-query-results.h:
2939         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2940         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2941         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2942         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2943         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2944         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2945         (rhythmdb_tree_parser_start_element),
2946         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2947         (save_entry), (save_entry_type), (save_unknown_entry_type),
2948         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2949         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2950         (get_or_create_genre), (remove_entry_from_album),
2951         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2952         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2953         (search_match_properties), (evaluate_conjunctive_subquery),
2954         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2955         (conjunctive_query_artists), (conjunctive_query_genre),
2956         (conjunctive_query), (split_query_by_disjunctions),
2957         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2958         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2959         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2960         (rhythmdb_hash_tree_foreach),
2961         (rhythmdb_tree_entry_type_registered):
2962         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2963         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2964         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2965         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2966         (rhythmdb_shutdown), (rhythmdb_finalize),
2967         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2968         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2969         (rhythmdb_entry_example_new),
2970         (set_metadata_string_default_unknown), (is_ghost_entry),
2971         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2972         (rhythmdb_process_metadata_load),
2973         (rhythmdb_process_queued_entry_set_event),
2974         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2975         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2976         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2977         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2978         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2979         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2980         (rhythmdb_entry_delete_by_type),
2981         (rhythmdb_propid_from_nice_elt_name),
2982         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2983         (rhythmdb_compute_status_normal),
2984         (rhythmdb_entry_register_type_alias),
2985         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2986         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2987         (rhythmdb_entry_import_error_get_type),
2988         (rhythmdb_entry_podcast_post_get_type),
2989         (rhythmdb_entry_podcast_feed_get_type),
2990         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2991         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2992         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2993         * rhythmdb/rhythmdb.h:
2994         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2995         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2996         (rb_history_limit_size):
2997         * shell/rb-history.h:
2998         * shell/rb-play-order-linear-loop.c:
2999         (rb_linear_play_order_loop_get_next):
3000         * shell/rb-play-order-linear-loop.h:
3001         * shell/rb-play-order-linear.c:
3002         * shell/rb-play-order-linear.h:
3003         * shell/rb-play-order-queue.c:
3004         (rb_queue_play_order_playing_entry_removed):
3005         * shell/rb-play-order-queue.h:
3006         * shell/rb-play-order-random-by-age-and-rating.c:
3007         * shell/rb-play-order-random-by-age-and-rating.h:
3008         * shell/rb-play-order-random-by-age.c:
3009         (rb_random_by_age_get_entry_weight):
3010         * shell/rb-play-order-random-by-age.h:
3011         * shell/rb-play-order-random-by-rating.c:
3012         * shell/rb-play-order-random-by-rating.h:
3013         * shell/rb-play-order-random-equal-weights.c:
3014         * shell/rb-play-order-random-equal-weights.h:
3015         * shell/rb-play-order-random.c: (rb_random_filter_history),
3016         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3017         (rb_random_db_changed), (rb_random_playing_entry_changed),
3018         (rb_random_db_entry_deleted):
3019         * shell/rb-play-order-shuffle.c: (remove_from_history),
3020         (add_randomly_to_history), (get_query_model_contents),
3021         (rb_shuffle_playing_entry_changed):
3022         * shell/rb-play-order-shuffle.h:
3023         * shell/rb-play-order.c: (rb_play_order_class_init),
3024         (rb_play_order_set_property),
3025         (rb_play_order_playing_source_changed),
3026         (rb_play_order_query_model_changed_cb),
3027         (rb_play_order_query_model_changed),
3028         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3029         * shell/rb-play-order.h:
3030         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3031         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3032         (rb_playlist_manager_set_property),
3033         (rb_playlist_manager_parse_file),
3034         (rb_playlist_manager_load_playlists),
3035         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3036         (rb_playlist_manager_save_playlists),
3037         (rb_playlist_manager_new_playlist),
3038         (rb_playlist_manager_new_playlist_from_selection_data),
3039         (rb_playlist_manager_cmd_new_automatic_playlist),
3040         (rb_playlist_manager_cmd_edit_automatic_playlist),
3041         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3042         (save_playlist_response_cb), (export_set_extension_cb),
3043         (filter_get_export_filter_label), (setup_format_menu),
3044         (rb_playlist_manager_cmd_save_playlist),
3045         (rb_playlist_manager_get_playlists),
3046         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3047         (rb_playlist_manager_delete_playlist),
3048         (rb_playlist_manager_export_playlist):
3049         * shell/rb-playlist-manager.h:
3050         * shell/rb-removable-media-manager.c:
3051         (rb_removable_media_manager_class_init),
3052         (rb_removable_media_manager_dispose),
3053         (rb_removable_media_manager_finalize),
3054         (rb_removable_media_manager_set_property),
3055         (split_drive_from_cdda_uri),
3056         (rb_removable_media_manager_playing_uri_changed_cb),
3057         (rb_removable_media_manager_load_media),
3058         (rb_removable_media_manager_volume_mounted_cb),
3059         (remove_volume_by_source),
3060         (rb_removable_media_manager_source_deleted_cb),
3061         (rb_removable_media_manager_volume_unmounted_cb),
3062         (rb_removable_media_manager_mount_volume),
3063         (rb_removable_media_manager_set_uimanager),
3064         (rb_removable_media_manager_scan), (do_transfer),
3065         (rb_removable_media_manager_cmd_copy_tracks):
3066         * shell/rb-removable-media-manager.h:
3067         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3068         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3069         (rb_shell_clipboard_sync),
3070         (rb_shell_clipboard_idle_poll_deletions),
3071         (rb_shell_clipboard_cmd_add_to_playlist_new),
3072         (rb_shell_clipboard_playlist_add_cb),
3073         (rb_shell_clipboard_playlist_deleted_cb),
3074         (rb_shell_clipboard_playlist_renamed_cb),
3075         (rb_shell_clipboard_playlist_visible_cb),
3076         (rb_shell_clipboard_playlist_added_cb):
3077         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3078         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3079         (rb_shell_player_init), (rb_shell_player_set_property),
3080         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3081         (rb_shell_player_open_location),
3082         (rb_shell_player_set_playing_entry),
3083         (rb_shell_player_play_order_update_cb),
3084         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3085         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3086         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3087         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3088         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3089         (gconf_song_position_slider_visibility_changed),
3090         (rb_shell_player_entry_activated_cb),
3091         (rb_shell_player_property_row_activated_cb),
3092         (rb_shell_player_entry_changed_cb),
3093         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3094         (actually_set_playing_source),
3095         (rb_shell_player_set_playing_source_internal),
3096         (rb_shell_player_get_playing_song_duration), (eos_cb),
3097         (rb_shell_player_error), (error_cb), (info_available_cb),
3098         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3099         (rb_shell_player_error_get_type):
3100         * shell/rb-shell-player.h:
3101         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3102         (rb_shell_preferences_append_page),
3103         (share_check_button_toggled_cb),
3104         (password_check_button_toggled_cb), (add_daap_preferences),
3105         (rb_shell_preferences_column_check_changed_cb),
3106         (rb_shell_preferences_sync_column_button),
3107         (rb_shell_preferences_sync),
3108         (rb_shell_preferences_browser_views_activated_cb):
3109         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3110         (rb_shell_set_property), (rb_shell_get_property),
3111         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3112         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3113         (rb_shell_get_visibility), (rb_shell_set_visibility),
3114         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3115         (rb_shell_register_entry_type_for_source),
3116         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3117         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3118         (rb_shell_player_stream_song_changed_cb),
3119         (rb_shell_set_window_title),
3120         (rb_shell_view_smalldisplay_changed_cb),
3121         (rb_shell_view_queue_as_sidebar_changed_cb),
3122         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3123         (rb_shell_cmd_add_folder_to_library),
3124         (rb_shell_cmd_add_file_to_library),
3125         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3126         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3127         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3128         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3129         (handle_playlist_entry_cb), (rb_shell_load_uri),
3130         (rb_shell_add_to_queue), (rb_shell_present),
3131         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3132         (rb_shell_volume_widget_changed_cb),
3133         (rb_shell_player_volume_changed_cb),
3134         (rb_shell_ui_location_get_type):
3135         * shell/rb-shell.h:
3136         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3137         (rb_source_header_init), (rb_source_header_set_source_internal),
3138         (rb_source_state_sync), (rb_source_header_clear_search),
3139         (rb_source_header_view_browser_changed_cb):
3140         * shell/rb-source-header.h:
3141         * shell/rb-statusbar.c: (rb_statusbar_construct),
3142         (rb_statusbar_init), (rb_statusbar_finalize),
3143         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3144         (rb_statusbar_source_status_changed_cb):
3145         * shell/rb-statusbar.h:
3146         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3147         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3148         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3149         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3150         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3151         (rb_audiocd_create_track_entry):
3152         * sources/rb-auto-playlist-source.c:
3153         (rb_auto_playlist_source_class_init),
3154         (rb_auto_playlist_source_constructor),
3155         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3156         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3157         (rb_auto_playlist_source_query_complete_cb),
3158         (rb_auto_playlist_source_do_query),
3159         (rb_auto_playlist_source_set_query),
3160         (rb_auto_playlist_source_browser_changed_cb),
3161         (search_action_to_prop):
3162         * sources/rb-auto-playlist-source.h:
3163         * sources/rb-browser-source.c: (rb_browser_source_init),
3164         (rb_browser_source_dispose), (search_action_to_prop),
3165         (rb_browser_source_constructor),
3166         (rb_browser_source_cmd_choose_genre),
3167         (rb_browser_source_cmd_choose_artist),
3168         (rb_browser_source_cmd_choose_album), (impl_search),
3169         (rb_browser_source_browser_changed_cb),
3170         (rb_browser_source_do_query):
3171         * sources/rb-browser-source.h:
3172         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3173         (rb_daap_source_init), (rb_daap_source_dispose),
3174         (rb_daap_source_set_property), (start_browsing),
3175         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3176         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3177         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3178         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3179         * sources/rb-daap-source.h:
3180         * sources/rb-import-errors-source.h:
3181         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3182         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3183         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3184         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3185         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3186         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3187         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3188         (generate_ipod_filename), (ipod_path_from_unix_path),
3189         (impl_delete_thyself):
3190         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3191         (rb_iradio_source_init), (rb_iradio_source_constructor),
3192         (rb_iradio_source_new), (guess_uri_scheme),
3193         (rb_iradio_source_add_station),
3194         (rb_iradio_source_async_update_play_statistics),
3195         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3196         (stations_view_drag_data_received_cb),
3197         (rb_iradio_source_cmd_new_station):
3198         * sources/rb-iradio-source.h:
3199         * sources/rb-library-source.c: (rb_library_source_dispose),
3200         (rb_library_source_constructor),
3201         (rb_library_source_location_button_clicked_cb),
3202         (impl_get_config_widget), (rb_library_source_library_location_cb),
3203         (sanitize_path), (filepath_parse_pattern),
3204         (layout_example_label_update),
3205         (rb_library_source_layout_filename_changed), (build_filename),
3206         (impl_can_paste), (impl_paste),
3207         (rb_library_source_add_child_source),
3208         (rb_library_source_sync_child_sources):
3209         * sources/rb-library-source.h:
3210         * sources/rb-missing-files-source.h:
3211         * sources/rb-play-queue-source.c:
3212         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3213         * sources/rb-play-queue-source.h:
3214         * sources/rb-playlist-source-recorder.c:
3215         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3216         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3217         (rb_playlist_source_recorder_init),
3218         (rb_playlist_source_recorder_new):
3219         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3220         (rb_playlist_source_save_playlist),
3221         (rb_playlist_source_entry_added_cb),
3222         (rb_playlist_source_set_query_model),
3223         (rb_playlist_source_add_to_map):
3224         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3225         (rb_podcast_source_init), (rb_podcast_source_dispose),
3226         (rb_podcast_source_finalize), (search_action_to_prop),
3227         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3228         (rb_podcast_source_get_property), (rb_podcast_source_new),
3229         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3230         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3231         (rb_podcast_source_show_browser), (construct_query_from_selection),
3232         (rb_podcast_source_do_query), (impl_get_config_widget),
3233         (rb_podcast_source_btn_file_change_cb),
3234         (posts_view_drag_data_received_cb),
3235         (rb_podcast_source_cmd_download_post),
3236         (rb_podcast_source_cmd_cancel_download),
3237         (rb_podcast_source_cmd_delete_feed),
3238         (rb_podcast_source_cmd_properties_feed),
3239         (rb_podcast_source_cmd_update_feed),
3240         (rb_podcast_source_post_status_cell_data_func),
3241         (rb_podcast_source_post_feed_cell_data_func),
3242         (rb_podcast_source_post_date_cell_data_func),
3243         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3244         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3245         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3246         (impl_get_status):
3247         * sources/rb-podcast-source.h:
3248         * sources/rb-removable-media-source.c:
3249         (rb_removable_media_source_constructor):
3250         * sources/rb-removable-media-source.h:
3251         * sources/rb-source.h:
3252         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3253         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3254         (rb_sourcelist_model_row_is_separator),
3255         (rb_sourcelist_model_drag_data_received),
3256         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3257         (rb_sourcelist_model_row_drop_position),
3258         (rb_sourcelist_model_get_drag_target),
3259         (rb_sourcelist_model_row_draggable),
3260         (rb_sourcelist_model_drag_data_get),
3261         (rb_sourcelist_model_row_inserted_cb),
3262         (rb_sourcelist_model_get_group_path):
3263         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3264         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3265         (rb_sourcelist_visible_source_to_iter),
3266         (rb_sourcelist_edit_source_name),
3267         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3268         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3269         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3270         * sources/rb-static-playlist-source.c:
3271         (rb_static_playlist_source_class_init),
3272         (rb_static_playlist_source_constructor),
3273         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3274         (impl_search), (rb_static_playlist_source_do_query),
3275         (rb_static_playlist_source_browser_changed_cb),
3276         (impl_receive_drag), (impl_save_contents_to_xml),
3277         (rb_static_playlist_source_add_location_swapped),
3278         (search_action_to_prop):
3279         * sources/rb-static-playlist-source.h:
3280         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3281         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3282         (egg_tray_icon_get_orientation_property),
3283         (egg_tray_icon_send_manager_message),
3284         (egg_tray_icon_update_manager_window),
3285         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3286         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3287         * widgets/eggtrayicon.h:
3288         * widgets/rb-cell-renderer-pixbuf.c:
3289         (rb_cell_renderer_pixbuf_get_property),
3290         (rb_cell_renderer_pixbuf_set_property),
3291         (rb_cell_renderer_pixbuf_get_size),
3292         (rb_cell_renderer_pixbuf_render),
3293         (rb_cell_renderer_pixbuf_activate):
3294         * widgets/rb-cell-renderer-rating.c:
3295         (rb_cell_renderer_rating_class_init),
3296         (rb_cell_renderer_rating_get_property),
3297         (rb_cell_renderer_rating_set_property),
3298         (rb_cell_renderer_rating_get_size),
3299         (rb_cell_renderer_rating_render),
3300         (rb_cell_renderer_rating_activate):
3301         * widgets/rb-dialog.c:
3302         * widgets/rb-dialog.h:
3303         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3304         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3305         (rb_druid_page3_finish_cb):
3306         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3307         (rb_entry_view_init), (rb_entry_view_set_property),
3308         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3309         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3310         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3311         (rb_entry_view_set_sorting_order),
3312         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3313         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3314         (rb_entry_view_playing_song_changed),
3315         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3316         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3317         (rb_entry_view_set_fixed_column_width),
3318         (rb_entry_view_get_time_date_column_sample),
3319         (rb_entry_view_state_get_type):
3320         * widgets/rb-entry-view.h:
3321         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3322         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3323         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3324         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3325         (update_browser_property_visibilty),
3326         (rb_library_browser_construct_query), (restore_selection),
3327         (rebuild_child_model), (rb_library_browser_set_selection),
3328         (rb_library_browser_set_model):
3329         * widgets/rb-library-browser.h:
3330         * widgets/rb-property-view.c: (rb_property_view_class_init),
3331         (rb_property_view_set_property), (rb_property_view_reset),
3332         (rb_property_view_get_model), (rb_property_view_constructor),
3333         (rb_property_view_set_selection),
3334         (rb_property_view_selection_changed_cb),
3335         (rb_property_view_button_press_cb),
3336         (rb_property_view_set_search_func):
3337         * widgets/rb-query-creator-private.h:
3338         * widgets/rb-query-creator-properties.c:
3339         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3340         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3341         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3342         (relativeTimeCriteriaCreateWidget),
3343         (relativeTimeCriteriaSetWidgetData):
3344         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3345         (rb_query_creator_dispose), (rb_query_creator_load_query),
3346         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3347         (get_property_index_from_proptype), (select_criteria_from_value),
3348         (create_property_option_menu), (create_criteria_option_menu),
3349         (sort_option_menu_changed), (setup_sort_option_menu):
3350         * widgets/rb-query-creator.h:
3351         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3352         (rb_rating_render_stars):
3353         * widgets/rb-rating-helper.h:
3354         * widgets/rb-rating.c: (rb_rating_expose):
3355         * widgets/rb-rating.h:
3356         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3357         (rb_search_entry_timeout_cb):
3358         * widgets/rb-search-entry.h:
3359         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3360         (rb_song_info_constructor), (rb_song_info_new),
3361         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3362         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3363         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3364         (rb_song_info_query_model_changed_cb),
3365         (rb_song_info_sync_entries_multiple),
3366         (rb_song_info_sync_entry_single):
3367         Strip all trailing whitespace.  Fixes #344293.
3369 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3371         * doc/reference/Makefile.am: Fix GTK Doc Build
3373 2006-07-13  James Livingston  <doclivingston@gmail.com>
3375         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3377         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3378         instead of the LOCATION, and don't try to get the directory listing
3379         for http URI schemes
3381         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3382         invalid utf8 in the error message, since apparently it can happen.
3384 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3386         * sources/rb-import-errors-source.c:
3387         (rb_import_errors_source_class_init),
3388         (rb_import_errors_source_init),
3389         (rb_import_errors_source_constructor),
3390         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3391         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3392         * sources/rb-missing-files-source.c:
3393         (rb_missing_files_source_class_init),
3394         (rb_missing_files_source_init),
3395         (rb_missing_files_source_constructor),
3396         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3397         (rb_missing_files_source_songs_sort_order_changed_cb),
3398         (impl_get_status):
3399         * sources/rb-source.c: (rb_source_class_init),
3400         (rb_source_finalize), (update_visibility_idle),
3401         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3402         (rb_source_set_property), (rb_source_get_property),
3403         (default_get_status), (rb_source_update_play_statistics),
3404         (default_add_to_queue), (_rb_source_show_popup),
3405         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3406         (rb_source_gather_selected_properties),
3407         (_rb_source_register_action_group):
3408         * sources/rb-source.h:
3409         * sources/rb-sourcelist.c: (visibility_notify_cb):
3410         Don't use a fake model for import-errors and missing-files
3411         sources.  Add a new source property "hidden-when-empty".
3412         Update source visibility in an idle.  Clean up some whitespace.
3413         From bug #346800
3415 2006-07-12  James Livingston  <doclivingston@gmail.com>
3417         * bindings/python/rb.defs:
3418         * bindings/python/rb.override: bind rb_error_dialog
3420         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3421         the current working directory for uninstalled plugins, and add the
3422         class name to the method name.
3424 2006-07-12  James Livingston  <doclivingston@gmail.com>
3426         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3427         the sources EOF type if it's NULL. Fixes #346284.
3429 2006-07-12  James Livingston  <doclivingston@gmail.com>
3431         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3432         I accidently committed. Nothing to see here, move along...
3434 2006-07-11  James Livingston  <doclivingston@gmail.com>
3436         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3437         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3438         Unknown.
3440 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3442         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3444 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3446         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3447         Don't try to set mtime if we've deleted the entry.
3449 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3451         * bindings/python/rhythmdb.defs:
3452         * rhythmdb/rhythmdb.c:
3453         * rhythmdb/rhythmdb.h:
3454         * rhythmdb/rhythmdb-private.h:
3455         * rhythmdb/rhythmdb-query.c:
3456         Move data structures holding registered entry types inside the
3457         RhythmDB object, and add a vfunc called when new types are registered.
3458         Add a flag to RhythmDBEntryType specifying whether entries of the type
3459         should be saved to the on-disk database.
3461         * sources/rb-audiocd-source.c:
3462         * sources/rb-daap-source.c:
3463         * sources/rb-ipod-source.c:
3464         * plugins/generic-player/rb-generic-player-source.c:
3465         * plugins/generic-player/rb-nokia770-source.c:
3466         * plugins/generic-player/rb-psp-source.c:
3467         Adjust to the above changes.
3469         * rhythmdb/rhythmdb-tree.c:
3470         If the type for an entry hasn't been registered yet, store the entry's
3471         properties as-is, and convert them to a real entry when the type is
3472         registered.  If the type doesn't get registered, save the entry back
3473         to the database unmodified.  From #330226.
3475 2006-07-10  James Livingston  <doclivingston@gmail.com>
3477         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3478         os.path.unlink to os.unlink, so removing stuff works.
3480 2006-07-10  James Livingston  <doclivingston@gmail.com>
3482         patch by: Ed Catmur  <ed@catmur.co.uk>
3483               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3485         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3486         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3487         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3488         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3489         internals of the cover database and Amazon lookup engine, and add
3490         support for loading art from the local file system. Fixes #345688.
3492         * plugins/rb/Coroutine.py:
3493         * plugins/rb/Makefile.am:
3494         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3495         plugin classes.
3497 2006-07-10  James Livingston  <doclivingston@gmail.com>
3499         * tests/Makefile.am: don't run the benchmark when doing "make check"
3501         * po/POTFILES.in: more build fixes, from Matti Lindell
3502         <feenixx@hotmail.com>. Fixes #347049.
3505 2006-07-10  James Livingston  <doclivingston@gmail.com>
3507         * plugins/cd-recorder/Makefile.am: build fixes
3509         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3510         attempt to change properties if we couldn't create an entry.
3512         * shell/rb-source-header.c: (rb_source_header_init),
3513         (rb_source_header_view_browser_changed_cb),
3514         (rb_source_header_sync_control_state):
3515         * shell/rb-tray-icon.c:
3516         * widgets/Makefile.am:
3517         * widgets/disclosure-widget.c:
3518         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3519         widget, as it hasn't been used for a while.
3521 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3523         * Makefile.am:
3524         * configure.ac:
3525         * data/ui/rhythmbox-ui.xml:
3526         * plugins/Makefile.am:
3527         * plugins/cd-recorder/.cvsignore:
3528         * plugins/cd-recorder/Makefile.am:
3529         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3530         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3531         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3532         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3533         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3534         (playlist_row_inserted_cb), (update_source),
3535         (shell_selected_source_notify_cb), (impl_activate),
3536         (impl_deactivate):
3537         * shell/Makefile.am:
3538         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3539         (rb_playlist_manager_cmd_save_playlist):
3540         * shell/rb-shell.c: (rb_shell_select_source):
3541         * sources/Makefile.am:
3542         * sources/rb-playlist-source-recorder.c:
3543         (rb_playlist_source_recorder_new):
3544         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3545         (rb_playlist_source_add_to_map):
3546         * sources/rb-playlist-source.h:
3547         Move cd burning into a plugin.  Fixes #344300.
3549 2006-07-10  James Livingston  <doclivingston@gmail.com>
3551         * lib/eel-gconf-extensions.c:
3552         * shell/rb-shell.c: remove some ununsed gnomeui includes
3554         * widgets/Makefile.am:
3555         * widgets/rb-song-display-box.c:
3556         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3557         since it isn't acutally used anywhere. Fixes #346926
3559 2006-07-09  James Livingston  <doclivingston@gmail.com>
3561         * bindings/python/rb.defs:
3562         * bindings/python/rb.override:
3563         * lib/rb-debug.c: (rb_debug_real):
3564         * lib/rb-debug.h:
3565         * plugins/rb/__init__.py: don't print out an extra newline when
3566         diverting python print statements to RB's debug log.
3568 2006-07-09  James Livingston  <doclivingston@gmail.com>
3570         * rhythmdb/rhythmdb-property-model.c:
3571         (rhythmdb_property_model_drag_data_get):
3572         * sources/rb-sourcelist-model.c:
3573         (rb_sourcelist_model_row_draggable),
3574         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3575         from the row reference is still valid. Fixes #346709.
3577 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3579         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3581         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3582         If all selected entries have the same rating, use that as the initial
3583         rating for the multiple song info dialog.  Fixes #345970.
3585 2006-07-09  James Livingston  <doclivingston@gmail.com>
3587         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3588         to prevent #343345:
3589                 - don't ever scale to 1x1, just hide the image in that case
3590                 - don't fade when the window is minimised
3591                 - use the last-good allocation width, not the current one - as
3592                   it sometimes get weird values.
3594 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3596         * data/ui/rhythmbox-ui.xml:
3597         * shell/rb-shell.c:
3598         Remove Import audio CD from menu.  Fixes #339732
3600 2006-07-08  James Livingston  <doclivingston@gmail.com>
3602         * metadata/test-metadata.c: (print_metadata_string),
3603         (load_metadata_cb): print out all the metadata we have read, not just
3604         a few.
3606         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3607         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3609 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3611         * plugins/lyrics/lyrics.py:
3612         Change the lyrics cache location to match Quod Libet's,
3613         and fix the '&' -> 'and' substitution to require spaces.
3615 2006-07-08  James Livingston  <doclivingston@gmail.com>
3617         * bindings/python/rb.defs:
3618         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3620         * configure.ac:
3621         * plugins/Makefile.am:
3622         * plugins/rb-python-module.c: (rb_python_module_init_python):
3623         * plugins/rb/Makefile.am: add a place to put common python classes.
3624         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3625         rb module/
3627         * plugins/lyrics/Makefile.am:
3628         * plugins/lyrics/Loader.py:
3629         * plugins/artdisplay/artdisplay/Makefile.am:
3630         * plugins/artdisplay/artdisplay/Loader.py:
3631         * plugins/rb/Loader.py: move the loader class to rb.Loader
3633         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3634         "print ...") to rb_debug. error output (e.g. exceptions) are still
3635         printed on stderr.
3637         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3638         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3639         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3640         instead of Loader.
3642         Fixes #346895.
3644 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3646         * shell/rb-shell-player.xml:
3647         * shell/rb-shell-player.h:
3648         Correct the details of the playing-song-property-changed signal.
3650 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3652         * lib/rb-marshal.list:
3653         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3654         (rb_shell_player_entry_changed_cb):
3655         * shell/rb-shell-player.h:
3656         * shell/rb-shell-player.xml:
3657         Emit a dbus signal when a property is changed on the playing entry.
3658         Fixes #332461.
3660 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3662         * rhythmdb/rhythmdb-private.h:
3663         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3664         Fix build break with gcc 4.1 by changing RBRefString pointers into
3665         gpointers.
3667 2006-07-07  James Livingston  <doclivingston@gmail.com>
3669         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3670         remove an extraneous !, which caused it not to monitor folders in the
3671         library with no tracks in them. Fixes #346759.
3673 2006-07-07  James Livingston  <doclivingston@gmail.com>
3675         * rhythmdb/rhythmdb-private.h:
3676         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3677         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3678         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3679         (rhythmdb_entry_get_string):
3680         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3681         flags for the affected properties. _sync_mirrored will get run
3682         automatically when a dirty property is accessed, which improves
3683         performance a bit (especially during startup) as we don't need to sync
3684         every time they change. From #325215.
3686         * tests/bench-rhythmdb-load.c
3687         * tests/Makefile.am: add a RhythmDB loading benchmark.
3689 2006-07-06  James Livingston  <doclivingston@gmail.com>
3691         * bindings/python/rb.defs:
3692         * bindings/python/rb.override: some more fixes, so that
3693         python classes derived from RBSource work correctly.
3695 2006-07-06  James Livingston  <doclivingston@gmail.com>
3697         * configure.ac: bump pygtk requirements to 2.8, since we're already
3698         using some features of it, and weird things will happen if people are
3699         actually trying to use pygtk 2.6.
3701         * bindings/python/rb.override:
3702         * bindings/python/rhythmdb.defs:
3703         * bindings/python/rhythmdb.override: allow python to set
3704         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3706         * sources/rb-browser-source.c: remove some left over member variables
3708 2006-07-06  James Livingston  <doclivingston@gmail.com>
3710         * rhythmdb/rhythmdb.c:
3711         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3712         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3713         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3714         former is pointless (as rhythmdb already knows which it should use)
3715         and the latter doesn't seem useful at all, and possibly bad. From
3716         #330226.
3718         * bindings/python/rhythmdb.defs:
3719         * bindings/python/rhythmdb.override:
3720         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3721         (handle_song_listing):
3722         * podcast/rb-podcast-manager.c:
3723         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3724         (rb_podcast_manager_insert_feed):
3725         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3726         (rb_audiocd_create_track_entry):
3727         * sources/rb-ipod-source.c: (entry_set_string_prop),
3728         (add_ipod_song_to_db):
3729         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3730         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3732 2006-07-05  James Livingston  <doclivingston@gmail.com>
3734         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3735         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3736         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3737         totem-plparser gives us, or the file name if it doesn't give us
3738         anything. Set the default file name when saving too. Fixes #345261
3740 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3742         patch by: Ed Catmur  <ed@catmur.co.uk>
3744         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3745         Skip all hidden directories, not just trash, and skip unreadable
3746         files.  Fixes #346322.
3748 2006-07-04  James Livingston  <doclivingston@gmail.com>
3750         * plugins/rb-module.h:
3751         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3752         (rb_module_new):
3753         * plugins/rb-plugin.h:
3754         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3755         (rb_plugin_finalise), (rb_plugin_set_property),
3756         (rb_plugin_get_property), (rb_plugin_activate),
3757         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3758         (rb_plugin_find_file):
3759         * plugins/rb-plugins-engine.c: (load_plugin_module):
3760         * plugins/rb-python-module.c: (rb_python_module_new_object),
3761         (rb_python_module_new):
3762         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3763         rb_plugin_find_file method for locating plugin-specific data. Fixes
3764         346473.
3766         * bindings/python/rb.defs:
3767         * plugins/Makefile.am:
3768         * plugins/generic-player/rb-generic-player-plugin.c:
3769         (create_source_cb):
3770         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3772 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3774         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3775         (rb_metadata_can_save), (rb_metadata_save):
3776         Protect the dbus connection with a mutex.
3778 2006-07-03  James Livingston  <doclivingston@gmail.com>
3780         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3781         case of the parser/tagger not being able to be created.
3783 2006-07-03  James Livingston  <doclivingston@gmail.com>
3785         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3787         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3788         window resizable, as it used to be. Fixes #345940.
3790 2006-07-01  James Livingston  <doclivingston@gmail.com>
3792         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3794         * rhythmdb/rhythmdb.h:
3795         * rhythmdb/rhythmdb-private.h:
3796         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3797         (rhythmdb_tree_parser_end_element), (save_entry):
3798         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3799         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3800         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3801         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3802         MusicBrainz track IDs in the database, and bump the on-disk version
3803         number to trigger a metadata reload.
3805         * backends/gstreamer/rb-player-gst.c: (process_tag):
3806         * metadata/rb-metadata-common.c:
3807         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3808         (rb_metadata_gst_field_to_gst_tag):
3809         * metadata/rb-metadata.h: grab MB track IDs and use them.
3811         * plugins/audioscrobbler/rb-audioscrobbler.c:
3812         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3813         (rb_audioscrobbler_timeout_cb),
3814         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3815         the other metadata. Fixes #343491.
3817 2006-06-30  James Livingston  <doclivingston@gmail.com>
3819         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3820         method.
3822 2006-06-30  James Livingston  <doclivingston@gmail.com>
3824         * bindings/python/rb.defs:
3825         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3826         (rb_browser_source_songs_show_popup_cb),
3827         (default_show_entry_popup):
3828         * sources/rb-browser-source.h:
3829         * sources/rb-library-source.c: (rb_library_source_class_init),
3830         (rb_library_source_constructor), (impl_show_popup): allow
3831         RBBrowserSource-derived sources to override the entry context menu
3832         properly - by making it a virtual function, rather than relying on
3833         signal handler order (which doesn't really work).
3835 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3837         * rhythmdb/rhythmdb-query-model.c:
3838         (rhythmdb_query_model_reapply_query_cb):
3839         Use the original query, not the preprocessed query, when redoing
3840         the query to pick up entries that previously didn't match.
3841         Preprocessing the query twice is bad.  Fixes #346186.
3843 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3845         * plugins/audioscrobbler/rb-audioscrobbler.c:
3846         (rb_audioscrobbler_song_changed_cb):
3847         Just check if the elapsed time has been reset, rather
3848         than checking if it's a different track.  Fixes #344827.
3850 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3852         * backends/gstreamer/rb-player-gst.c:
3853         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3854         drive spins up, #344576.
3856 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3858         * plugins/audioscrobbler/rb-audioscrobbler.c:
3859         (rb_audioscrobbler_perform):
3860         Use HTTP/1.1.  Fixes #345895.
3862 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3864         * lib/rb-preferences.h:
3865         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3866         (check_auto_proxy_config), (get_proxy_config):
3867         Don't try to use a HTTP proxy if no proxy host is specified.
3868         Alert the user to the fact that we don't support automatic proxy
3869         configuration as infrequently as possible.  From #345712.
3871 2006-06-25  James Livingston  <doclivingston@gmail.com>
3873         * rhythmdb/rhythmdb-property-model.c:
3874         (rhythmdb_property_model_set_property): connect to the
3875         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3876         things get removed correctly, fixes #338183.
3878 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3880         * rhythmdb/rhythmdb-query-model.c:
3881         (rhythmdb_query_model_drag_data_received):
3882         Fix build break.
3884 2006-06-25  James Livingston  <doclivingston@gmail.com>
3886         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3888         * widgets/rb-search-entry.c: (rb_search_entry_init),
3889         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3890         search box have a pale yellow background when it's in use, except for
3891         when the user has an "accessability" theme. Code based heavily on
3892         Epiphany's. Fixes #344416.
3894 2006-06-25  James Livingston  <doclivingston@gmail.com>
3896         * plugins/lyrics/lyrics.py:
3897         * plugins/pythonconsole/pythonconsole.py:
3898         * plugins/sample-python/sample-python.py: don't import gettext stuff
3899         as _, as the C code does this for us. Fixes i18n for python plugins,
3900         #343081
3902 2006-06-25  James Livingston  <doclivingston@gmail.com>
3904         * rhythmdb/rhythmdb-query-model.c:
3905         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3906         a model use a reorder rather then deleting and re-adding the entry.
3907         This means it does do weird things like stop playback of a track that
3908         is dragged, fixing #337657.
3910 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3912         * metadata/rb-metadata-dbus-service.c:
3913         Add missing #include <glib/gi18n.h> from previous commit.
3915 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3917         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3919         * metadata/rb-metadata-dbus-service.c: (main):
3920         Initialize gettext in the metadata helper.
3921         * metadata/rb-metadata-gst.c:
3922         Make some strings translatable.  Fixes #345286.
3924 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3926         * configure.ac:
3927         * lib/Makefile.am:
3928         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3929         Inline the custom icons so they can always be loaded, but are still
3930         themable.  Fixes #345796.
3932 2006-06-23  James Livingston  <doclivingston@gmail.com>
3934         * sources/rb-auto-playlist-source.c:
3935         (rb_auto_playlist_source_do_query): stop the search box being applied
3936         for limits in auto playlists. Fixes #345307.
3938 2006-06-23  James Livingston  <doclivingston@gmail.com>
3940         * shell/rb-shell-clipboard.c:
3941         (rb_shell_clipboard_set_source_internal),
3942         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3943         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3944         non-library tracks, as we don't supprot it yet. From #345248.
3946 2006-06-23  James Livingston  <doclivingston@gmail.com>
3948         patch by: Brian Cameron  <brian.cameron@sun.com>
3950         * plugins/generic-player/rb-generic-player-plugin.c:
3951         * plugins/generic-player/rb-generic-player-source.c:
3952         * plugins/generic-player/rb-nokia770-source.c:
3953         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3954         Fixes 345673.
3956 2006-06-22  James Livingston  <doclivingston@gmail.com>
3958         * backends/rb-player.c: (rb_player_interface_init):
3959         * lib/rb-marshal.list:
3960         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3961         * rhythmdb/rhythmdb-query-model.c:
3962         (rhythmdb_query_model_class_init):
3963         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3964         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3965         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3966         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3967         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3968         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3969         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3970         possible not.
3972 2006-06-20  James Livingston  <doclivingston@gmail.com>
3974         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3976         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3977         metadata to clients. Fixes #345276.
3979 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3981         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3982         (rb_add_id3_tagger):
3983         Fix plugin/element version detection for id3v2mux.
3985 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3987         * sources/rb-source.c: (rb_source_finalize),
3988         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3989         (_autohide_update_visibility),
3990         (_rb_autohide_source_post_entry_deleted_cb),
3991         (_rb_autohide_source_row_inserted_cb),
3992         (_rb_source_hide_when_empty):
3993         Use post-entry-delete signal to update status and autohide sources.
3995 2006-06-20  James Livingston  <doclivingston@gmail.com>
3997         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3998         "selection changed" idle callback, if present.
4000 2006-06-19  James Livingston  <doclivingston@gmail.com>
4002         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4004         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4005         don't try to translate the empty string. Fixes #345285.
4007 2006-06-19  James Livingston  <doclivingston@gmail.com>
4009         * bindings/python/rhythmdb.override: more python binding fixes
4011 2006-06-19  James Livingston  <doclivingston@gmail.com>
4013         * lib/rb-util.c: (rb_copy_function):
4014         * lib/rb-util.h: add a function that returns the same pointer it was
4015         passed.
4017         * rhythmdb/rhythmdb.h:
4018         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4019         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4020         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4021         and RhythmDBEntryType into boxed types. This allows them to be used
4022         from python. Note that entry-types aren't actually reference counted
4023         (yet).
4025         * bindings/python/rb.defs:
4026         * bindings/python/rhythmdb.defs:
4027         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4028         return types of some bindings.
4030         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4031         (process_added_entries_cb), (rhythmdb_entry_finalize),
4032         (rhythmdb_entry_delete):
4033         * daapsharing/rb-daap-connection.c:
4034         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4035         (rb_daap_connection_get_property):
4036         * plugins/generic-player/rb-generic-player-source.c:
4037         (rb_generic_player_source_load_songs), (load_playlist_file):
4038         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4039         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4040         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4041         (idle_process_update), (rhythmdb_query_model_add_entry),
4042         (rhythmdb_query_model_insert_into_main_list),
4043         (rhythmdb_query_model_insert_into_limited_list),
4044         (rhythmdb_query_model_remove_from_main_list),
4045         (rhythmdb_query_model_remove_from_limited_list),
4046         (rhythmdb_query_model_drag_data_received),
4047         (rhythmdb_query_model_add_results),
4048         (rhythmdb_query_model_get_column_type),
4049         (rhythmdb_query_model_get_value):
4050         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4051         (rhythmdb_tree_entry_delete), (remove_one_song):
4052         * shell/rb-play-order-linear-loop.c:
4053         (rb_linear_play_order_loop_get_next),
4054         (rb_linear_play_order_loop_get_previous):
4055         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4056         (rb_linear_play_order_get_previous):
4057         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4058         (rb_queue_play_order_get_previous):
4059         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4060         (rb_random_filter_history), (rb_random_play_order_get_next),
4061         (rb_random_play_order_go_next), (rb_random_db_changed),
4062         (rb_random_playing_entry_changed):
4063         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4064         (remove_from_history), (add_randomly_to_history),
4065         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4066         * shell/rb-play-order.c: (rb_play_order_class_init),
4067         (rb_play_order_set_property), (rb_play_order_get_property),
4068         (rb_play_order_update_have_next_previous):
4069         * shell/rb-play-order.h:
4070         * shell/rb-shell-clipboard.c:
4071         (rb_shell_clipboard_process_deletions),
4072         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4073         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4074         * sources/rb-auto-playlist-source.c:
4075         (rb_auto_playlist_source_constructor):
4076         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4077         (rb_browser_source_set_property), (rb_browser_source_get_property),
4078         (rb_browser_source_do_query):
4079         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4080         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4081         * sources/rb-ipod-source.c: (add_rb_playlist),
4082         (add_ipod_song_to_db), (impl_paste):
4083         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4084         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4085         * sources/rb-library-source.c: (layout_example_label_update):
4086         * sources/rb-missing-files-source.c:
4087         (rb_missing_files_source_class_init),
4088         (rb_missing_files_source_set_property),
4089         (rb_missing_files_source_get_property),
4090         (rb_missing_files_source_new):
4091         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4092         (rb_playlist_source_set_property),
4093         (rb_playlist_source_get_property):
4094         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4095         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4096         (construct_query_from_selection):
4097         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4098         * sources/rb-static-playlist-source.c:
4099         (rb_static_playlist_source_constructor),
4100         (rb_static_playlist_source_add_location_internal):
4101         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4102         * widgets/rb-header.c: (rb_header_class_init),
4103         (rb_header_set_property), (rb_header_get_property):
4104         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4105         (rb_library_browser_set_property),
4106         (rb_library_browser_get_property):
4107         * widgets/rb-song-info.c: (rb_song_info_class_init),
4108         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4109         change, do s/pointer/boxed/ in many places and free entry-types
4110         properly.
4112 2006-06-18  James Livingston  <doclivingston@gmail.com>
4114         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4115         unushed GThreadPool non-exclusive threads every now and then.
4117         * rhythmdb/rhythmdb-private.h:
4118         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4119         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4120         threads. Fixes #341593
4122 2006-06-19  James Livingston  <doclivingston@gmail.com>
4124         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4125         the "Track number" checkbox actually work for playlists. From #329986.
4127 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4129         * plugins/generic-player/rb-generic-player-source.c:
4130         Get playlist and audio folder information from HAL.  Fixes #333845.
4132 2006-06-18  James Livingston  <doclivingston@gmail.com>
4134         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4136         * widgets/rb-entry-view.h:
4137         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4138         (rb_entry_view_append_column_custom),
4139         (rb_entry_view_insert_column_custom): add support for inserting custom
4140         columns at arbitrary locations, rather than just appending to the end.
4142         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4143         the playlists "track number" column go at the start, and add a normal
4144         track number column. Fixes #329986.
4146 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4148         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4149         a mnemonic conflict.  Add ellipses to the edit button.
4150         * sources/rb-library-source.c:
4151         (rb_library_source_edit_profile_clicked_cb),
4152         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4153         mnemonic widget to the labels. Fixes #344114.
4155 2006-06-18  James Livingston  <doclivingston@gmail.com>
4157         * configure.ac: bump version
4158         * NEWS: add NEWS for 0.9.5
4160 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4162         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4163         (rb_uri_handle_recursively):
4164         Don't attempt to recurse into directories we can't open.  
4165         Fixes #341485.
4167 2006-06-18  James Livingston  <doclivingston@gmail.com>
4169         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4171         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4172         #344610.
4174 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4176         * bindings/python/rb.defs:
4177         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4178         * shell/rb-shell-player.h:
4179         * shell/rb-shell.c: (rb_shell_play_entry):
4180         Add source parameter to rb_shell_player_play_entry, using the selected
4181         source if not specified.
4183         * shell/rb-play-order.c: (rb_play_order_class_init),
4184         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4185         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4186         (default_playing_entry_removed):
4187         * shell/rb-play-order.h:
4188         Move entry removal handling back to the row-deleted signal, as we need
4189         the entry to be present in the model.  When changing to the next entry
4190         after the playing entry is deleted, set the new entry as the playing
4191         entry and then sync it to the player in an idle handler, so we don't
4192         end up playing it if it was removed too.
4193         * shell/rb-play-order-queue.c:
4194         (rb_queue_play_order_playing_entry_changed),
4195         (rb_queue_play_order_playing_entry_removed):
4196         Use the playing-entry-removed handler from the play order class,
4197         setting a flag so we don't try to remove the already-removed entry
4198         from the model.
4200         This makes removal of the playing entry from playlists etc. work more
4201         or less correctly for all play orders.  Fixes #344627.
4203 2006-06-17  James Livingston  <doclivingston@gmail.com>
4205         patch by: Elijah Newren  <newren@gmail.com>
4207         * tests/test-rhythmdb.c: fix the build with older versions of check
4208         (again). Fixes #343718.
4210 2006-06-17  James Livingston  <doclivingston@gmail.com>
4212         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4213         name for capsfilter's "caps" property. Fixes #344968.
4215 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4217         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4218         Don't leak the selected entry list when finding an entry to play.
4220 2006-06-17  James Livingston  <doclivingston@gmail.com>
4222         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4223         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4224         as a O(1) one works fine, and it will get called often when the user
4225         deleted multiple tracks. Part of #344922.
4227 2006-06-17  James Livingston  <doclivingston@gmail.com>
4229         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4230         rb_shell_player_stop and rb_shell_player_playpause not mutually
4231         recursive. Fixed #336912.
4233 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4235         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4236         Treat nested elements inside properties as unknown.  Fixes parsing of
4237         podcast feeds with unescaped HTML in description tags, bug #344532.
4239 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4241         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4242         when quitting.  Fixes #344875.
4244 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4246         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4247         Move the playing-entry-removed handling to after the normal entry
4248         delete handling, since we're called after the entry has been removed
4249         from the query model now.  Fixes crashes described in #344627.
4251 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4253         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4254         (rb_rating_get_rating_from_widget):
4255         * widgets/rb-rating.c: (rb_rating_class_init),
4256         (rb_rating_finalize), (rb_rating_get_property),
4257         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4258         (rb_rating_button_press_cb):
4259         Don't crash when ratings icons can't be found.  Fixes #344533.
4261 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4263         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4265 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4267         * Makefile.am:
4268         * configure.ac:
4269         * remote/Makefile.am:
4270         * remote/dbus/Makefile.am:
4271         * remote/dbus/rb-client.c:
4272         * shell/Makefile.am:
4273         New dbus client program providing --play/--next etc. arguments.
4274         Fixes #340863, #155763.
4276 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4278         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4279         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4281 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4283         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4285         * rhythmdb/rhythmdb-query-model.c:
4286         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4287         to Library incorrectly
4289 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4291         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4292         Return input string untouched if gnome_vfs_uri_new returns NULL.
4293         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4294         (rb_static_playlist_source_add_list_uri):
4295         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4296         URIs don't break it.  Fixes #339033.
4298 2006-06-08  James Livingston  <doclivingston@gmail.com>
4300         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4301         for sources on the edge (i.e. the queue). Fixes #328409.
4303         * sources/rb-ipod-source.c: fix typo
4305 2006-06-08  James Livingston  <doclivingston@gmail.com>
4307         * configure.ac:
4308         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4309         --enable-ipod-writing to enable the ipod syncing code.
4311 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4313         * sources/rb-library-source.c: (layout_example_label_update):
4314         add missing comma so we don't generate broken markup.
4316 2006-06-08  James Livingston  <doclivingston@gmail.com>
4318         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4319         tag-merging with id3v2mux as well as id3mux. From #342330.
4321 2006-06-07  James Livingston  <doclivingston@gmail.com>
4323         * tests/test-rhythmdb.c: #define fail_if for old version of check
4324         which don't have it. Hopefully fixes #343718.
4326 2006-06-07  James Livingston  <doclivingston@gmail.com>
4328         * shell/rb-playlist-manager.c:
4329         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4330         g_value_array_free with NULL. Fixes #341053.
4332 2006-06-07  James Livingston  <doclivingston@gmail.com>
4334         * shell/rb-playlist-manager.c:
4335         (rb_playlist_manager_playlist_entries_changed),
4336         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4337         instead of "row-removed", which fixes updating "burn playlist"
4338         sensitivity. Fixes #331119.
4340 2006-06-07  James Livingston  <doclivingston@gmail.com>
4342         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4343         rather than restarting if the source uses _RETRY and there is an
4344         actual error (like an undecodable stream) rather than it just dropping
4345         out and causing EOS.
4347 2006-06-07  James Livingston  <doclivingston@gmail.com>
4349         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4350         free the pixbufs if they couldn't be loaded. Fixed #343852.
4352 2006-06-07  James Livingston  <doclivingston@gmail.com>
4354         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4355         the close button on the dialog work. Fixes #335346.
4357 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4359         * sources/rb-sourcelist-model.c: (path_is_droppable),
4360         (path_is_reorderable):
4361         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4362         (row_activated_cb), (emit_show_popup), (key_release_cb),
4363         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4364         Ignore group marker rows in the source list.  Fixes #344089, a couple
4365         of other crashers, and some weird UI glitches too.
4367 2006-06-07  James Livingston  <doclivingston@gmail.com>
4369         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4370         the seeking query fails. This is needed because many gst elements
4371         don't implement the seeking query yet. Should fix 329977.
4373 2006-06-06  James Livingston  <doclivingston@gmail.com>
4375         * configure.ac: bump version for a prerelease, turn on track transfer
4376         by default.
4378         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4379         ipod transfer stuff, since it has big issues and we'll hopefully land
4380         real support (bug 310774) after 0.9.5
4382 2006-06-06  James Livingston  <doclivingston@gmail.com>
4384         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4385         id3v2mux once we've detected it.
4387 2006-06-06  James Livingston  <doclivingston@gmail.com>
4389         * lib/Makefile.am:
4390         * tests/test-rhythmdb.c: undo accidental commit which caused
4391         rb-thread.c to be built (which it isn't normally)
4393 2006-06-06  James Livingston  <doclivingston@gmail.com>
4395         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4396         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4397         fail_{if/unless} calls, as some versions of check need them (they are
4398         optional in others). Should fix bug 343718.
4400 2006-06-06  James Livingston  <doclivingston@gmail.com>
4402         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4403         343836.
4404         
4405         * lib/Makefile.am:
4406         * lib/rb-thread.c: (process_actions):
4407         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4408         tests that don't pass.
4410 2006-06-05  James Livingston  <doclivingston@gmail.com>
4412         * data/glade/Makefile.am:
4413         * data/glade/load-failure.glade:
4414         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4415         dialog.
4417 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4419         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4420         checked in.
4422 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4424         * bindings/python/rb.defs:
4425         * sources/rb-source.h:
4426         * sources/rb-source.c: (rb_source_class_init),
4427         (rb_source_set_property), (rb_source_get_property),
4428         (rb_sourcelist_group_get_type):
4429         Add 'sourcelist-group' property on the RBSource class, describing how
4430         sources should be grouped in the source list.
4432         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4433         (rb_sourcelist_model_new), (real_row_is_separator),
4434         (rb_sourcelist_model_is_row_visible),
4435         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4436         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4437         (rb_sourcelist_model_row_draggable),
4438         (rb_sourcelist_model_row_inserted_cb),
4439         (rb_sourcelist_model_row_deleted_cb),
4440         (rb_sourcelist_model_get_group_path):
4441         * sources/rb-sourcelist-model.h:
4442         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4443         (rb_sourcelist_append):
4444         Add group marker rows for each sourcelist group, and use these to
4445         insert sources in the right place.  Sort transient sources (DAAP
4446         shares) by name.  Show the group marker rows as separators when the
4447         next visible row is a source.  Make persistant sources (playlists) and
4448         removable sources reorderable using drag and drop, restricting them
4449         within the source groups.
4450         
4451         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4452         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4453         * sources/rb-daap-source.c: (rb_daap_source_new):
4454         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4455         * sources/rb-static-playlist-source.c:
4456         (rb_static_playlist_source_new):
4457         * plugins/generic-player/rb-generic-player-source.c:
4458         (rb_generic_player_source_new):
4459         * plugins/generic-player/rb-nokia770-source.c:
4460         (rb_nokia770_source_new):
4461         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4462         Add source list group information to existing source classes.
4464         Fixes #318754 and #336492.
4466 2006-06-04  James Livingston  <doclivingston@gmail.com>
4468         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4469         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4470         win32 build fixes.
4472 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4474         * rhythmdb/rhythmdb-query-model.c:
4475         (rhythmdb_query_model_class_init),
4476         (rhythmdb_query_model_remove_from_main_list):
4477         * rhythmdb/rhythmdb-query-model.h:
4478         Add a new 'post-entry-delete' signal, emitted when the entry has been
4479         removed from the model's data structures.
4481         * shell/rb-play-order.c: (rb_play_order_finalize),
4482         (rb_play_order_query_model_changed),
4483         (rb_play_order_post_entry_delete_cb):
4484         Use the new signal to update the play order, so the queue play order
4485         doesn't try to scroll to entries that don't exist in a way that causes
4486         the tree view to crash.  Fixes #340216.
4488 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4490         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4491         Fix rb_debug call I missed previously.
4493 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4495         * metadata/rb-metadata-gst.c:
4496         Don't use NULL as the error message for ignored files, as it crashes
4497         with some C libraries.  Fixes #343713.
4499 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4501         * widgets/rb-dialog.c: (rb_error_dialog):
4502         * widgets/rb-dialog.h:
4503         Mark rb_error_dialog as taking printf-like arguments, and use a format
4504         string for the primary message rather than passing in the message
4505         directly.
4507         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4508         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4509         (info_available_cb):
4510         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4511         * shell/rb-removable-media-manager.c:
4512         (rb_removable_media_manager_eject_medium_cb):
4513         Make sure all calls to rb_error_dialog use string constants for the
4514         format string rather than passing the error message directly.  Remove
4515         an extra %s from the message used when playback fails.  Fixes #343562.
4517         * lib/rb-debug.h:
4518         * sources/rb-audiocd-source.c:
4519         * plugins/audioscrobbler/rb-audioscrobbler.c:
4520         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4521         Mark rb_debug as taking printf-like arguments and fix a few resulting
4522         warnings.
4524 2006-06-02  James Livingston  <doclivingston@gmail.com>
4526         * configure.ac:
4527         + macros/check.m4: add support for using check for unit tests, the .m4
4528         files is so autogen can run without check being installed
4530         * tests/Makefile.am:
4531         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4532         some of the old tests, and add some new ones. Currently
4533         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4534         yet (the query doesn't return any entries).
4536         - tests/deserialization-test1.xml:
4537         - tests/deserialization-test2.xml:
4538         - tests/deserialization-test3.xml:
4539         - tests/test-rhythmdb-indexing.c:
4540         - tests/test-rhythmdb-simple.c:
4541         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4542         have been ported
4544         - tests/test-cd.c:
4545         - tests/test-cmdline.c: remove obsolete tests
4547 2006-06-02  James Livingston  <doclivingston@gmail.com>
4549         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4550         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4551         id3v2mux, and check whether we are using a version of id3mux that has
4552         the correct merge-mode behaviour.
4554         * plugins/sample-python/Makefile.am: fix distcheck.
4556         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4557         the changed-files source was added before trying to remove it.
4559         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4560         *old* bug which would crash if a query with top-level disjunctions
4561         tried to check later disjunctive parts. Hooray for unit-testing.
4563 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4565         * player/rb-recorder-gst.c (rb_recorder_set_device):
4566         Check for a null drive.
4568 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4570         * lib/Makefile.am:
4571         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4572         Register the app icon as a builtin if the icon theme can't find it.
4574 2006-05-31  James Livingston  <doclivingston@gmail.com>
4576         * player/rb-recorder-gst.c: add missing include.
4578 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4580         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4581         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4582         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4583         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4584         (rb_recorder_set_device), (rb_recorder_get_default_device):
4585         * shell/main.c: (main):
4586         * shell/rb-removable-media-manager.c:
4587         (rb_removable_media_manager_finalize),
4588         (get_nautilus_burn_drive_for_path),
4589         (rb_removable_media_manager_playing_uri_changed_cb),
4590         (rb_removable_media_manager_load_media),
4591         (nautilus_burn_drive_get_device),
4592         (rb_removable_media_manager_scan):
4593         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4595         Update for libnautilus-burn 2.15.3 API changes.
4596         Fixes #342604
4598 2006-05-30  James Livingston  <doclivingston@gmail.com>
4600         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4601         "return" to that it asks for the password again if it was wrong.
4603 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4605         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4606         typefind element.
4608 2006-05-30  James Livingston  <doclivingston@gmail.com>
4610         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4611         (download_progress_cb): don't do wonky things if the transfer
4612         "suceeds" without transferring any data.
4614 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4616         * sources/rb-library-source.c: (layout_example_label_update),
4617         (build_filename):  Fix crash when no audio profile is selected.
4618         Fixes #341447.
4620 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4622         * shell/rb-shell.c: (rb_shell_clear_queue):
4623         * shell/rb-shell.h:
4624         * shell/rb-shell.xml:
4625         * sources/rb-play-queue-source.c:
4626         (rb_play_queue_source_clear_queue),
4627         (rb_play_queue_source_cmd_clear):
4628         * sources/rb-play-queue-source.h:
4629         Add clearQueue dbus method.
4631 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4633         * shell/main.c: (main):  Implement --quit option.
4635 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4637         * rhythmdb/rhythmdb-private.h:
4638         * rhythmdb/rhythmdb-tree.h:
4639         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4640         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4641         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4642         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4643         (rhythmdb_entry_get_boolean):
4644         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4645         bitmask, giving the db backend anything past the first 16 bits for 
4646         its own private use.
4648         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4649         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4650         Add a 'loading' flag to indicate that an entry is being loaded from
4651         disk, and use that to ignore entry_set operations on such entries
4652         rather than the 'inserted' flag, which doesn't quite mean the same
4653         thing.  Fixes #342694.
4655 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4657         * shell/rb-shell.xml: Remove visibility property, since it causes
4658         crashes (dbus bug 7057) and doesn't do much else.
4660 2006-05-28  James Livingston  <doclivingston@gmail.com>
4662         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4664         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4665         * po/POTFILES.in: fix some more i18n issues.
4667 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4669         * bindings/python/rb.defs:
4670         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4671         (filter_mmkeys):
4672         * shell/rb-shell-player.h:
4673         Deprecate the useless 'ignore_stop' parameter to
4674         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4675         API.  From bug #334829.
4677 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4679         * plugins/generic-player/rb-generic-player-source.c:
4680         (visit_playlist_dirs), (default_transform_playlist_uri):
4681         When playlist parsing fails, unref the playlist, not the parent
4682         source.  Fix memory leak in playlist uri transform.
4683         * plugins/generic-player/rb-nokia770-source.c:
4684         (impl_transform_playlist_uri):
4685         Fix memory leak in playlist uri transform.
4687 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4689         * doc/reference/Makefile.am: fix grk-doc build
4691 2006-05-27  James Livingston  <doclivingston@gmail.com>
4693         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4695         * plugins/lyrics/lyrics.py:
4696         * po/POTFILES.in: Make strings in plugins translatable. From bug
4697         343081.
4699 2006-05-27  James Livingston  <doclivingston@gmail.com>
4701         * backends/Makefile.am:
4702         * backends/gstreamer/Makefile.am:
4703         * lib/Makefile.am:
4704         * plugins/audioscrobbler/Makefile.am:
4705         * plugins/generic-player/Makefile.am:
4706         * po/POTFILES.in:
4707         * rhythmdb/rhythmdb-monitor.c:
4708         * rhythmdb/rhythmdb.c:
4709         * sources/Makefile.am:
4710         * widgets/Makefile.am: fix compilation after some CVS surgery was
4711         done.
4713 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4715         * bindings/python/rhythmdb.defs:
4716         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4717         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4718         (rhythmdb_query_deserialize):
4719         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4720         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4721         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4722         (rhythmdb_entry_register_type_alias),
4723         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4724         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4725         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4726         (rhythmdb_entry_podcast_feed_get_type),
4727         (rhythmdb_entry_import_error_get_type),
4728         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4729         * rhythmdb/rhythmdb.h:
4730         Allocate a specified amount of extra memory for each db entry, to be
4731         used to store fields specific to the entry type.  Optionally associate
4732         a name with each entry type, to be used when saving entries and
4733         auto playlists to disk.  Allow entry types to have multiple names
4734         to handle older playlist files that used '0' to represent 'song'.
4735         Use private data to store podcast fields.
4737         * rhythmdb/rhythmdb-private.h:
4738         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4739         (rhythmdb_tree_parser_end_element), (save_entry),
4740         (rhythmdb_tree_entry_set):
4741         Simplify property handling by using existing code to convert
4742         properties from strings to GValues and to set properties on entries.
4743         Other assorted changes due to the above.
4745         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4746         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4747         * sources/rb-generic-player-source.c:
4748         (rb_generic_player_source_new):
4749         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4750         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4751         * sources/rb-psp-source.c: (rb_psp_source_new):
4752         Update for changes to rhythmdb_entry_register_type.  None of these
4753         entry types need names or use private data.
4755         Fixes #337429.
4757 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4759         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4760         Fix creation of ignored-file db entries - need to check for
4761         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4763 2006-05-25  James Livingston  <doclivingston@gmail.com>
4765         * AUTHORS:
4766         * MAINTAINERS: update my email address
4768 2006-05-25  James Livingston  <doclivingston@gmail.com>
4770         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4771         "(... mix)" when searching for lyrics. Cache the lyrics under
4772         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4774 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4776         * sources/rb-import-errors-source.c:
4777         (rb_import_errors_source_class_init):
4778         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4779         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4780         * sources/rb-source.c: (rb_source_class_init),
4781         (default_move_to_trash):
4782         Implement the basic move-to-trash operation once in rb-source.c, 
4783         rather than in each source type that supports it.
4785         * plugins/ipod/rb-ipod-plugin.c:
4786         * shell/rb-removable-media-manager.c:
4787         * shell/rb-shell.c: (rb_shell_constructor):
4788         Only scan removable media once after loading plugins.  Add a flag
4789         plugins can use to check if the initial scan has been done.
4791         * data/rhythmbox.schemas:
4792         Enable ipod and generic-player plugins by default.
4793         
4794         * configure.ac:
4795         * data/ui/Makefile.am:
4796         * data/ui/generic-player-ui.xml:
4797         * data/ui/rhythmbox-ui.xml:
4798         * plugins/Makefile.am:
4799         * plugins/generic-player/Makefile.am:
4800         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4801         * plugins/generic-player/rb-generic-player-plugin.c:
4802         * sources/Makefile.am:
4803         * sources/rb-generic-player-source.c:
4804         * sources/rb-generic-player-source.h:
4805         * sources/rb-nokia770-source.c:
4806         * sources/rb-nokia770-source.h:
4807         * sources/rb-psp-source.c: (visit_playlist_dirs):
4808         * sources/rb-psp-source.h:
4809         Pluginise generic player (and nokia770 and PSP) support and add
4810         move-to-trash for players not mounted read-only.
4811         Fixes #342868.
4813 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4815         * daapsharing/rb-daap-connection.c (handle_song_listing):
4816         Lower bound check for batch commit.  Fixes #342848
4818         * sources/rb-daap-source.c (rb_daap_source_get_status):
4819         Always set output variables if provided.
4821 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4823         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4824         (rhythmdb_tree_entry_delete), (remove_one_song):
4825         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4826         Fix two db entry reference counting problems.
4827         The initial reference on the entry is held by the db backend, but it
4828         was never being dropped.  The reference count was incremented when
4829         adding an entry to the deleted_entries map and to the
4830         deleted_entries_to_emit list, but only decremented for one of those.
4832 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4834         * daapsharing/rb-daap-connection.c (http_response_handler) 
4835         (rb_daap_connection_dispose):
4836         Call soup_session_abort to make sure there are no outstanding
4837         requests when we dispose of the connection.  Ignore cancelled
4838         messages in the callback.
4840 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4842         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4843         (rb_daap_source_disconnect): Set a flag when disconnecting
4844         the source.  Check this flag in connection callback
4845         to see if we should release the connection.
4847 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4849         * daapsharing/Makefile.am:
4850         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4851         (rb_daap_connection_class_init), (connection_connected),
4852         (connection_disconnected), (connection_operation_done),
4853         (build_message), (connection_set_error_message),
4854         (actual_http_response_handler), (http_get),
4855         (entry_set_string_prop), (emit_progress_idle),
4856         (handle_server_info), (handle_login), (handle_update),
4857         (handle_database_info), (handle_song_listing), (handle_playlists),
4858         (handle_playlist_entries), (handle_logout),
4859         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4860         (connection_response_data_free), (connected_cb),
4861         (rb_daap_connection_connect), (disconnected_cb),
4862         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4863         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4864         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4865         (rb_daap_connection_get_property):
4866         * daapsharing/rb-daap-connection.h:
4867         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4868         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4869         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4870         (rb_daap_hash_generate):
4871         * daapsharing/rb-daap-hash.h:
4872         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4873         (rb_daap_get_icon), (remove_source), (stop_browsing),
4874         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4875         (connection_connecting_cb), (connection_disconnected_cb),
4876         (release_connection), (rb_daap_source_connection_cb),
4877         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4878         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4880         Adds a better async API for connect and disconnect.  Doesn't share
4881         callback data for every async call.  Adds a connect signal.  Uses
4882         an operation-done signal to trigger the callbacks.  Displays an
4883         error when connections fail.  A few refcounting fixes to fix
4884         crashes.  Uses a weak pointer to set the connection to NULL so we
4885         don't clobber references.  Wait for each disconnect when shutting
4886         down sources.  Split out DAAP hash stuff into its own file.  Fix
4887         typo in header.
4889         Fixes #342643
4890         
4891 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4893         * sources/rb-auto-playlist-source.c:
4894         (rb_auto_playlist_source_new_from_xml):
4895         Initialize the gvalue used to hold the size limit correctly.
4896         Fixes #342744.
4898 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4900         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4901         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4902         * shell/rb-shell.h:
4903         * shell/rb-shell.xml:
4904         Convert rb_shell_quit into a dbus method, and add visibility dbus
4905         property.
4907 2006-05-22  James Livingston  <doclivingston@gmail.com>
4909         * rhythmdb/rhythmdb.h:
4910         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4911         (rhythmdb_entry_is_editable), (action_thread_main),
4912         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4913         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4914         false, and syncing into the file.
4916         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4917         (rhythmdb_entry_iradio_get_type),
4918         (rhythmdb_entry_import_error_get_type):
4919         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4920         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4921         change the DB.
4923 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4925         * rhythmdb/Makefile.am:
4926         * rhythmdb/rhythmdb-monitor.c:
4927         * rhythmdb/rhythmdb-private.h:
4928         * rhythmdb/rhythmdb-query.c:
4929         * rhythmdb/rhythmdb.c:
4930         Split up rhythmdb.c a bit.
4932 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4934         * data/glade/audioscrobbler-prefs.glade:
4935         Add a link to the last.fm server status page.
4937 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4939         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4940         Capitalization fix.
4941         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4942         (impl_create_configure_dialog):  UI layout fixes, remove
4943         dialog separator, and capitalization fix for window title.
4944         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4945         and remove dialog separator.
4946         * data/glade/plugins.glade:  UI layout fixes.
4947         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4948         and capitalization fix.  Fixes #342438.
4950 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4952         * data/glade/podcast-properties.glade:  Fix layout of the download 
4953         location.  Fixes #342431.
4955 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4957         * data/ui/rhythmbox-ui.xml:
4958         We only need one copy of the 'add to queue' action in the edit menu.
4960 2006-05-20  James Livingston  <doclivingston@gmail.com>
4962         * data/ui/rhythmbox-ui.xml:
4963         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4964         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4965         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4966         (rb_shell_clipboard_sync),
4967         (rb_shell_clipboard_cmd_add_to_playlist_new),
4968         (rb_shell_clipboard_cmd_queue_song_info),
4969         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4970         (rb_shell_clipboard_playlist_deleted_cb),
4971         (rb_shell_clipboard_playlist_renamed_cb),
4972         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4973         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4974         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4975         dynamically generated with all the static playlists. Fixes bug 323364.
4977         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4978         right child, so it doesn't go weird when art appears and disappears.
4980 2006-05-20  James Livingston  <doclivingston@gmail.com>
4982         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4984         * rhythmdb/rhythmdb-query-model.c:
4985         (rhythmdb_query_model_set_property),
4986         (rhythmdb_query_model_finalize),
4987         (rhythmdb_query_model_reapply_query_cb):
4988         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4989         (rhythmdb_query_append_prop_multiple),
4990         (rhythmdb_query_is_time_relative):
4991         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4992         time-based criteria, fixes bug 341131.
4994 2006-05-20  James Livingston  <doclivingston@gmail.com>
4996         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4997         we have already changed playing entries. Interpolate the art size so
4998         it doesn't jump when the old and new images have different aspect
4999         ratios.
5001 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5003         * rhythmdb/rhythmdb-private.h:
5004         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5005         (save_entry):
5006         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5007         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5008         (rhythmdb_entry_get_ulong):
5009         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5010         and elsewhere, use them on the stack rather than allocating on 
5011         the heap.  From bug #342333.
5013 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5015         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5016         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5017         (add_track), (eos_cb), (error_signal_idle),
5018         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5019         (rb_recorder_construct), (recorder_track_free),
5020         (rb_recorder_finalize):
5021         * sources/rb-playlist-source-recorder.c:
5022         Support libnautilus-burn size -> capacity API change.  Add
5023         some braces to blocks.
5025 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5027         * metadata/sj-metadata-musicbrainz.c:
5028         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5029         Sync with sound-juicer in CVS.  Fixes #342177
5030         * sources/rb-audiocd-source.c: Don't declare variables
5031         in the middle of a block (c99ism).  Fix order of #includes.
5032         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5033         one variable per line.  Update copyright date.
5035 2006-05-19  James Livingston  <doclivingston@gmail.com>
5037         patch by: Hendrik Richter  <hendi@gnome-de.org>
5039         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5040         "translator_credits" to a hyphen, so it doesn't cause problems for
5041         tools that check access keys. Fixes bug 341832.
5043 2006-05-19  James Livingston  <doclivingston@gmail.com>
5045         * po/POTFILES.in: remove references to files that don't exist any more
5046         (fixes make distcheck).
5048 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5050         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5051         Song Lyrics dialog. Fixes bug 342322.
5053 2006-05-19  James Livingston  <doclivingston@gmail.com>
5055         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5057         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5058         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5059         version checks not break when libnotify goes to 1.0.0. Fixes bug
5060         342244.
5062 2006-05-18  James Livingston  <doclivingston@gmail.com>
5064         * shell/rb-shell-clipboard.c:
5065         * shell/rb-shell.c:
5066         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5068 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5070         * sources/rb-playlist-source-recorder.c (get_song_description):
5071         Reverse artist and title in song description.  This
5072         is useful because at least the title will be visible
5073         when there is limited space.
5075 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5077         * daapsharing/rb-daap-connection.c: (connection_get_password):
5078         Take gdk lock before emitting authenticate signal.
5079         * sources/rb-daap-source.c: (connection_connecting_cb):
5080         Get rid of the unnecessary idle handler (it's already called from one)
5081         Fixes #342047 once more.
5083 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5085         * shell/rb-shell.c: (rb_shell_class_init):
5086         * shell/rb-shell.h:
5087         * widgets/rb-song-info.c: (rb_song_info_class_init),
5088         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5089         (rb_song_info_constructor), (rb_song_info_get_property),
5090         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5091         (rb_song_info_forward_clicked_cb):
5092         * widgets/rb-song-info.h:
5093         * data/glade/song-info-multiple.glade:
5094         * lib/rb-marshal.list:
5095         * bindings/python/Makefile.am:
5096         * bindings/python/rb.defs:
5097         * bindings/python/rb.override:
5098         Allow plugins to add pages to the notebooks used in song info windows,
5099         and to track the current song displayed in single-entry windows.
5100         
5101         * configure.ac:
5102         * plugins/Makefile.am:
5103         * plugins/lyrics/Loader.py:
5104         * plugins/lyrics/Makefile.am:
5105         * plugins/lyrics/lyrics.py:
5106         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5107         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5108         as a separate window (for the playing song) or as a page in the song
5109         info window.  A few TODO items left, but this fixes #319320.
5111 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5113         Patch by:  Roozbeh Pournader
5115         * configure.ac:
5116         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5117         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5119 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5120         
5121         * sources/rb-daap-source.c: (update_connection_status):
5122         Correct return value.  Fixes #342047 again.
5124 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5126         * sources/rb-daap-source.c: (update_connection_status),
5127         (connection_connecting_cb):
5128         Update status in an idle handler so we don't rely on the gdk lock
5129         being recursive (because it isn't any more).  Fixes #342047.
5131 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5133         * lib/rb-util.c: (rb_make_duration_string),
5134         (rb_make_elapsed_time_string):
5135         * lib/rb-util.h:
5136         Add a function for formatting an elapsed time string.
5138         * shell/rb-shell-player.c: (rb_shell_player_init),
5139         (rb_shell_player_sync_with_source),
5140         (rb_shell_player_get_playing_time_string), (tick_cb):
5141         Store elapsed time in the private data structure, and use the above
5142         function.
5143         
5144         * widgets/rb-header.c:
5145         * widgets/rb-header.h:
5146         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5147         object, so everything has the same idea of the elapsed time.
5148         Fixes #339693.
5150 2006-05-16  James Livingston  <doclivingston@gmail.com>
5152         * bindings/python/rhythmdb.defs:
5153         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5154         some parametre defaults, so you don't have to pass None, False for the
5155         sorting order.
5157 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5159         * bindings/python/rhythmdb.defs:
5160         * rhythmdb/rhythmdb-query-model.c:
5161         (rhythmdb_query_model_compute_status_normal):
5162         * rhythmdb/rhythmdb-query-model.h:
5163         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5164         * rhythmdb/rhythmdb.h:
5165         Change the various compute_status methods to accept a singular/plural
5166         pair to use in the status string.
5167         
5168         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5169         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5170         * sources/rb-source.c: (default_get_status):
5171         Call entries 'songs' by default, and 'episodes' in the podcast source.
5172         Fixes #340227.
5174 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5176         patch by:  Paul Drain
5178         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5179         Fixes #341817.
5181 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5183         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5184         Generate reorder maps correctly.
5185         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5186         Scroll to the first entry from the old selection.
5187         Fixes #322992.
5189 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5191         * data/ui/rhythmbox-ui.xml:
5192         * lib/rb-preferences.h:
5193         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5194         (rb_shell_playlist_created_cb),
5195         (rb_shell_view_sidepane_changed_cb),
5196         (rb_shell_sync_sidepane_visibility),
5197         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5198         (sidepane_visibility_changed_cb):
5199         * sources/rb-podcast-source.c:
5200         Convert sourcelist visibility to side-pane visbility.
5201         Fixes #339733
5203 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5205         * widgets/rb-header.c:
5206         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5207         'player', and make it use the private data structure allocated for it.
5209 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5211         * configure.ac: enable metadata helper with dbus < 0.35.
5213 2006-05-15  James Livingston  <doclivingston@gmail.com>
5215         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5217         * data/glade/song-info.glade:
5218         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5219         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5220         (rb_song_info_update_filesize): Add the file size into the song info
5221         window. Fixes bug 340861.
5223 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5225         * bindings/python/rhythmdb.defs:
5226         * rhythmdb/rhythmdb-query-model.c:
5227         (rhythmdb_query_model_set_property),
5228         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5229         * rhythmdb/rhythmdb-query-model.h:
5230         Add a new method to chain query models without importing entries from
5231         the parent into the child.  This is useful when the subset of entries
5232         in the child can be more easily determined by running a query than by
5233         filtering entries from the parent.
5235         * bindings/python/rb.defs:
5236         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5237         (rb_library_browser_set_property),
5238         (rb_library_browser_get_property), (rb_library_browser_new),
5239         (rebuild_child_model):
5240         * widgets/rb-library-browser.h:
5241         * sources/rb-auto-playlist-source.c:
5242         (rb_auto_playlist_source_constructor):
5243         * sources/rb-static-playlist-source.c:
5244         (rb_static_playlist_source_constructor):
5245         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5246         Use more efficient queries for constructing the browser query model
5247         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5248         backend to optimise the query) and run new queries rather than
5249         filtering entries from the parent.  Fixes #341402.
5251         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5253 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5255         * configure.ac:
5256         * shell/Makefile.am:
5257         * shell/main.c: (main), (load_uri_args), (send_present_message),
5258         (unregister_dbus_handler), (handle_dbus_message),
5259         (register_dbus_handler):
5260         Add minimal support for dbus 0.31 - 0.35.
5262         * doc/reference/Makefile.am:
5263         * doc/reference/rhythmbox.types:
5264         * data/Makefile.am:
5265         * data/GNOME_Rhythmbox.server.in:
5266         * data/rhythmbox.pc.in:
5267         * remote/*:
5268         * remote/bonobo/*:
5269         Remove remaining bonobo and generic remote interface files.
5271 2006-05-14  James Livingston  <doclivingston@gmail.com>
5273         * shell/rb-shell.c: (construct_widgets):
5274         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5275         resize the browser and queue-sidebar section of their panes, unless
5276         the other section is below the minimum size. Fixes bug 331927.
5278 2006-05-13  James Livingston  <doclivingston@gmail.com>
5280         * rhythmdb/rhythmdb-query-model.c:
5281         (rhythmdb_query_model_class_init),
5282         (rhythmdb_query_model_set_property),
5283         (rhythmdb_query_model_get_property),
5284         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5285         (rhythmdb_query_model_insert_into_main_list),
5286         (rhythmdb_query_model_insert_into_limited_list),
5287         (rhythmdb_query_model_do_reorder),
5288         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5289         (rhythmdb_query_model_location_sort_func),
5290         (rhythmdb_query_model_title_sort_func),
5291         (rhythmdb_query_model_album_sort_func),
5292         (rhythmdb_query_model_artist_sort_func),
5293         (rhythmdb_query_model_genre_sort_func),
5294         (rhythmdb_query_model_track_sort_func),
5295         (rhythmdb_query_model_double_ceiling_sort_func),
5296         (rhythmdb_query_model_ulong_sort_func),
5297         (rhythmdb_query_model_date_sort_func),
5298         (rhythmdb_query_model_string_sort_func):
5299         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5300         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5301         "data destroy" property. Fixed bug 341543.
5303         * bindings/python/rhythmdb.defs:
5304         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5305         rhythmdb_query_model_set_sorting_order
5307         * rhythmdb/rhythmdb-property-model.c:
5308         (rhythmdb_property_model_drag_data_get):
5309         * sources/rb-import-errors-source.c:
5310         (rb_import_errors_source_constructor):
5311         * sources/rb-missing-files-source.c:
5312         (rb_missing_files_source_constructor):
5313         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5314         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5315         * widgets/rb-entry-view.h: adapt to the above change.
5317 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5319         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5320         (rhythmdb_tree_load):
5321         Commit loaded entries in batches, rather than individually.  
5322         More startup time reduction.
5324 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5326         * doc/reference/Makefile.am: fix gtk-doc compilation
5328 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5330         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5331         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5332         * plugins/artdisplay/artdisplay/Loader.py:
5333         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5334         Only call the first artist the best match when album==Unknown.
5335         Don't perform each query twice if album doesn't include "Vol N".
5336         Fix searching for compilations.  Fix blacklisting.
5337         Part of bug #307848
5339 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5341         * Makefile.am:
5342         * bindings/python/Makefile.am:
5343         * bindings/python/rb.defs:
5344         * bindings/python/rb.override:
5345         * configure.ac:
5346         * doc/reference/Makefile.am:
5347         * plugins/Makefile.am:
5348         * plugins/audioscrobbler/Makefile.am:
5349         * plugins/ipod/Makefile.am:
5350         * plugins/lirc/Makefile.am:
5351         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5352         (impl_activate), (impl_deactivate):
5353         * plugins/sample/Makefile.am:
5354         * remote/Makefile.am:
5355         * shell/Makefile.am:
5356         * shell/main.c: (main), (main_shell_weak_ref_cb):
5357         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5358         (rb_shell_get_property), (rb_shell_window_state_cb),
5359         (idle_hide_mainwindow), (rb_shell_set_visibility),
5360         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5361         (rb_shell_set_song_property):
5362         * shell/rb-shell.h:
5363         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5364         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5365         (rb_tray_icon_get_property), (rb_tray_icon_new),
5366         (rb_tray_icon_button_press_event_cb),
5367         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5368         (rb_tray_icon_show_window_changed_cb):
5369         * shell/rb-tray-icon.h:
5371         Remove bonobo, require DBUS.
5372         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5373         Fixes #339720
5375 2006-05-13  James Livingston  <doclivingston@gmail.com>
5377         * bindings/python/rb.override: fix some pointer-type warnings
5379 2006-05-12  James Livingston  <doclivingston@gmail.com>
5381         * lib/rb-util.c: (rb_value_free):
5382         * lib/rb-util.h: Add function to unset and free a GValue* that was
5383         allocated in the heap.
5385         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5386         the metadata hastable values
5387         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5388         leak the metadata hashtable structure
5389         * metadata/rb-metadata-dbus.c:
5390         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5391         using g_strdup and then _take_string
5393         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5394         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5395         stat something.
5397         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5398         leak the encoded string
5400         * widgets/rb-property-view.c:
5401         (rb_property_view_selection_changed_cb): set some variables to have
5402         inital values, because some code paths may not set them before we use
5403         them.
5405         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5406         don't have python warning into a debug message".
5408 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5410         * data/rhythmbox.schemas: Use zero instead of null for
5411         default burn speed.  Fixes #341283.
5413 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5415         * bindings/python/rb.defs:
5416         * widgets/rb-library-browser.c:
5417         (rb_library_browser_get_property_view):
5418         * widgets/rb-library-browser.h:
5419         Add a method to get the property view for a given property.
5421         * sources/rb-browser-source.c:
5422         (rb_browser_source_cmd_choose_genre),
5423         (rb_browser_source_cmd_choose_artist),
5424         (rb_browser_source_cmd_choose_album):
5425         Change the browser selection by changing the property view selection. 
5426         Makes the selection change visible, fixing #331740.
5428 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5430         * bindings/python/rb.defs:
5431         * bindings/python/rb.override:
5432         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5433         * shell/rb-statusbar.c: (*),
5434         * sources/rb-import-errors-source.c: (impl_get_status):
5435         * sources/rb-iradio-source.c: (impl_get_status):
5436         * sources/rb-missing-files-source.c: (impl_get_status):
5437         * sources/rb-source.c: (default_get_status),
5438         (rb_source_get_status):
5439         * sources/rb-source.h:
5440         Allow sources to provide a progress value for the status bar.
5441         Simplify status bar processing (much less polling).
5442         Consider rhythmdb busy while it's still loading the database.
5444         * daapsharing/rb-daap-connection.c: (*)
5445         * daapsharing/rb-daap-connection.h:
5446         * lib/rb-marshal.list:
5447         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5448         (rb_daap_source_init), (connection_connecting_cb),
5449         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5450         (rb_daap_source_get_status):
5451         Provide status information for DAAP connections, and move processing
5452         of large responses into a separate thread.
5453         Fixes bugs #322020 and #338978.
5455 2006-05-09  James Livingston  <doclivingston@gmail.com>
5457         Split the artdisplay plugin into several files.
5458         Fix loader and amazon-search re-use issues.
5459         Add some better search heuristics.
5461         * configure.ac:
5462         * plugins/artdisplay/Makefile.am:
5463         * plugins/artdisplay/artdisplay.py:
5464         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5465         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5466         * plugins/artdisplay/artdisplay/Loader.py:
5467         * plugins/artdisplay/artdisplay/Makefile.am:
5468         * plugins/artdisplay/artdisplay/__init__.py:
5470 2006-05-09  James Livingston  <doclivingston@gmail.com>
5472         * sources/rb-browser-source.h: remove the _has_first_added_column
5473         stuff since it isn't actually used anywhere. Sources that want it
5474         should just add it themselves, as the library already does
5476         * bindings/python/rb.defs:
5477         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5478         * sources/rb-library-source.c: (rb_library_source_class_init):
5479         * sources/rb-removable-media-source.c:
5480         (rb_removable_media_source_class_init): Remove the remanants of the
5481         above.
5483 2006-05-09  James Livingston  <doclivingston@gmail.com>
5485         * bindings/python/rb.defs:
5486         * sources/rb-browser-source.h: remove a function that was declared in
5487         the header, but not defined anywhere.
5489 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5491         * plugins/artdisplay/.cvsignore:
5492         * plugins/ipod/.cvsignore: Added.
5494 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5496         * sources/rb-auto-playlist-source.c:
5497         (rb_auto_playlist_source_new_from_xml):
5498         Fix reading of older playlist files where all three limits were
5499         specified so we take the first nonzero limit.  From #341053.
5501 2006-05-09  James Livingston  <doclivingston@gmail.com>
5503         * bindings/python/Makefile.am:
5504         * bindings/python/rb.defs:
5505         * bindings/python/rb.override: bind RBBrowserSource,
5506         RBRemovableMediaSource and RBRemovableMediamanager.
5508 2006-05-09  James Livingston  <doclivingston@gmail.com>
5510         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5512         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5513         Fixes bug 339221.
5515 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5517         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5518         Don't explode when trying to edit a query with no limit set.
5520 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5522         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5523         Clear the should_queue flag when switching to a non-submittable entry,
5524         so we don't submit songs that played for three seconds before
5525         switching to a podcast episode.
5527         * rhythmdb/rhythmdb-query-model.c
5528         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5529         in the drag data list.
5531 2006-05-08  James Livingston  <doclivingston@gmail.com>
5533         * lib/rb-util.c: (rb_value_array_append_data):
5534         * lib/rb-util.h: add function which is basically a combination of
5535         G_VALUE_COLLECT and g_value_array_append.
5537         * rhythmdb/rhythmdb-query-model.h:
5538         * rhythmdb/rhythmdb-query-model.c:
5539         (rhythmdb_query_model_class_init),
5540         (rhythmdb_query_model_set_property),
5541         (rhythmdb_query_model_get_property),
5542         (rhythmdb_query_model_finalize),
5543         (rhythmdb_query_model_update_limited_entries),
5544         (rhythmdb_query_model_set_sort_order),
5545         (rhythmdb_query_model_within_limit),
5546         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5547         saner. Rather than having <count=N, time=N, size=N> we now have a
5548         <type, value> pair. This will also make it much easier to add new
5549         limit types in the future.
5551         * shell/rb-playlist-manager.c:
5552         (rb_playlist_manager_set_automatic_playlist),
5553         (rb_playlist_manager_cmd_edit_automatic_playlist):
5554         * sources/rb-auto-playlist-source.c:
5555         (rb_auto_playlist_source_finalize),
5556         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5557         (_save_write_ulong), (_save_write_uint64),
5558         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5559         (rb_auto_playlist_source_set_query),
5560         (rb_auto_playlist_source_get_query):
5561         * sources/rb-auto-playlist-source.h:
5562         * sources/rb-library-source.c:
5563         (rb_library_source_add_child_source):
5564         * sources/rb-psp-source.c: (visit_playlist_dirs):
5565         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5566         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5567         * widgets/rb-query-creator.h: Adapt to the above change.
5569 2006-05-08  James Livingston  <doclivingston@gmail.com>
5571         * shell/rb-playlist-manager.c:
5572         (rb_playlist_manager_cmd_edit_automatic_playlist):
5573         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5574         (rb_auto_playlist_source_set_query),
5575         (rb_auto_playlist_source_get_query): copy the query in the _get method
5576         and free it in things calling that. Fixes a crasher.
5578 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5580         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5581         Make entries on newly mounted volumes visible immediately, hiding them
5582         later if they turn out to be missing.  Fixes #340068.
5584 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5586         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5587         Ignore zip files and ignore errors for files we've decided to ignore.
5589 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5591         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5592         Add missing }, should fix #340844.
5594 2006-05-06  James Livingston  <doclivingston@gmail.com>
5596         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5597         typo.
5599 2006-05-06  James Livingston  <doclivingston@gmail.com>
5601         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5602         that we work with libnotify >= 0.4
5604 2006-05-06  James Livingston  <doclivingston@gmail.com>
5606         patch by: Joe Barnett  <thejoe@gmail.com>
5608         * configure.ac: check if we're using a version of libgpod that
5609         supports the Motorola ROKR
5611         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5612         for the db path, if we using the newer version.
5614         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5616 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5618         * rhythmdb/rhythmdb-query-model.c:
5619         (rhythmdb_query_model_drag_data_get):
5620         Use playback URI, not location, for drag data.  Fixes #322597.
5622 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5624         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5626 2006-05-03  James Livingston  <doclivingston@gmail.com>
5628         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5629         (rb_add_id3_tagger), (rb_metadata_save):
5630         Set the tags on the tagging element when it is
5631         created, not during pipeline creation - which is required for
5632         dynamically created elements.
5634         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5635         support for using the "vorbistag" element to re-tag ogg vorbis files.
5636         Fixes bug 339878.
5638 2006-05-03  James Livingston  <doclivingston@gmail.com>
5640         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5642         * plugins/artdisplay/artdisplay.py:
5643         - Fix small bug callback of data loader getting overwritten on fast
5644         connections.
5645         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5646         Jonathan Matthew)
5647         - Fix Rhythmbox UI blocking while loading/searching cover art
5648         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5649         - Initial approach to allow additional "art search engines"
5650         - Further modularization in a couple of places
5651         - Minor fixes for empty entries (iradio, album, artist etc.)
5653 2006-05-03  James Livingston  <doclivingston@gmail.com>
5655         * shell/rb-playlist-manager.c:
5656         (rb_playlist_manager_playlist_entries_changed),
5657         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5658         options for non-local sources, rather than showing disabled ones.
5660         * sources/rb-library-source.c: (add_child_sources_idle),
5661         (rb_library_source_constructor), (rb_library_source_new),
5662         (rb_library_source_library_location_changed),
5663         (rb_library_source_add_child_source),
5664         (rb_library_source_sync_child_sources): Create "child library" sources
5665         when the user has multiple library locations set. Fixes bug 100552.
5667 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5669         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5670         * plugins/sample/sample.rb-plugin.desktop.in:
5671         Finish changing 'Author' to 'Authors'
5672         
5673         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5674         (rhythmdb_entry_import_error_get_type):
5675         Implement get_playback_uri for import errors (returns NULL)
5677         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5678         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5679         entry, rather than doing entry type checks.
5681 2006-05-02  James Livingston  <doclivingston@gmail.com>
5683         patch from Alessandro Decina  <alessandro@nnva.org>
5685         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5686         the signal emission in the case of fatal-on-init errors. From bug
5687         322268.
5689 2006-05-02  James Livingston  <doclivingston@gmail.com>
5691         * rhythmdb/rhythmdb.h:
5692         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5693         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5694         (rhythmdb_entry_podcast_post_get_type),
5695         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5696         virtual function to entry-types for getting the playback URI. From bug
5697         330226.
5699         * backends/gstreamer/rb-encoder-gst.c:
5700         (create_pipeline_and_source), (extract_track):
5701         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5702         to get the URI.
5704 2006-05-02  James Livingston  <doclivingston@gmail.com>
5706         patch by: Brian Cameron  <brian.cameron@sun.com>
5708         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5709         340337.
5711 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5713         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5714         instead of clear.  Use regex matching to strip "disc N"
5715         from album.  Match titles in ProductName.  Perform
5716         fallback queries including various artist compilations.
5717         Include "us" locale.  Improve queries when artist or album
5718         is unknown.  Use medium size image if large is unavailable.
5720         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5721         William Jon McCann  <mccann@jhu.edu>
5722         
5723 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5725         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5726         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5727         (conjunctive_query): Sanity check.
5728         (evaluate_conjunctive_subquery): 
5729         Don't return TRUE immediately when a relative-time query criterion
5730         matches.  Fixes #339972.
5732 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5734         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5735         Don't crash if primary or secondary are NULL.
5737 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5739         * doc/reference/Makefile.am: fix gtk-doc build yet again
5741 2006-04-28  James Livingston  <doclivingston@gmail.com>
5743         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5744         python console. Fixes bug 339934.
5746 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5748         * rhythmdb/rhythmdb-property-model.c:
5749         (rhythmdb_property_model_drag_data_get):
5750         When creating uri list drag data, create a new query model based on
5751         the query model the property model is attached to.  Makes the
5752         resulting query use the right entry type and include the upstream
5753         query criteria.  Fixes half of #327540.
5755 2006-04-27  James Livingston  <doclivingston@gmail.com>
5757         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5758         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5759         build fixes.
5761 2006-04-27  James Livingston  <doclivingston@gmail.com>
5763         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5765 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5767         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5768         (rb_playlist_manager_save_data),
5769         (rb_playlist_manager_save_playlists):
5770         * shell/rb-playlist-manager.h:
5771         * shell/rb-shell.c: (rb_shell_sync_state),
5772         (idle_save_playlist_manager):
5773         Remove a bit more threading insanity from the playlist manager.
5775 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5777         * shell/rb-playlist-manager.c: 
5778         * shell/rb-playlist-manager.h:
5779         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5780         
5781         * shell/rb-shell.c: (rb_shell_sync_state),
5782         (idle_save_playlist_manager), (construct_sources),
5783         (rb_shell_select_source), (rb_shell_sync_party_mode):
5784         Adjustments for above changes.
5786 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5788         * sources/rb-browser-source.c (impl_browser_toggled):
5789         Reset browser when hidden.  Fixes #339617.
5791 2006-04-26  James Livingston  <doclivingston@gmail.com>
5793         * backends/Makefile.am:
5794         * backends/gstreamer/Makefile.am: work again with separated
5795         built-roots
5797 2006-04-26  James Livingston  <doclivingston@gmail.com>
5799         * shell/rb-removable-media-manager.c:
5800         (rb_removable_media_manager_set_uimanager): fix compilation with
5801         -Werror and --enable-track-transfer.
5803 2006-04-26  James Livingston  <doclivingston@gmail.com>
5805         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5806         implementing class. In theory allows alternate player implementations
5807         to be selected at run-time rather than compile-time. Fixes bug 338667.
5809         * Makefile.am:
5810         * backends/Makefile.am:
5811         * backends/gstreamer/Makefile.am:
5812         * backends/gstreamer/rb-player-gst.h:
5813         * backends/rb-player.c: (rb_player_interface_init),
5814         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5815         (rb_player_close), (rb_player_play), (rb_player_pause),
5816         (rb_player_playing), (rb_player_set_volume),
5817         (rb_player_get_volume), (rb_player_set_replaygain),
5818         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5819         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5820         (_rb_player_emit_buffering), (_rb_player_emit_error),
5821         (_rb_player_emit_tick), (rb_player_error_quark):
5822         * player/Makefile.am:
5823         * player/rb-player-gst.c: (rb_player_gst_class_init),
5824         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5825         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5826         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5827         (process_tag), (found_tag_cb), (buffering_cb),
5828         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5829         (rb_player_gst_new):
5830         * player/rb-player.h:
5831         * shell/Makefile.am:
5832         * sources/rb-audiocd-source.c:
5833         * widgets/Makefile.am:
5834         * widgets/rb-header.c: (rb_header_class_init):
5836 2006-04-26  James Livingston  <doclivingston@gmail.com>
5838         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5839         don't try to download an episode if it couldn't be parsed. Fixes bug
5840         339712.
5842         * shell/rb-removable-media-manager.c:
5843         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5844         Library" option when track transfer is disabled. Fixes bug 339728.
5846 2006-04-26  James Livingston  <doclivingston@gmail.com>
5848         * data/ui/Makefile.am:
5849         * data/ui/daap-ui.xml:
5850         * data/ui/rhythmbox-ui.xml:
5851         * sources/rb-daap-source.c: (rb_daap_sources_init),
5852         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5853         way that the ipod ui is. Fixes bug 339743.
5855 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5857         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5858         (process_added_entries_cb), (process_deleted_entries_cb),
5859         (rhythmdb_commit_internal): 
5860         Combine the idle functions to emit entry-added and entry-deleted,
5861         and combine as many invocations of same as possible.  Another
5862         significant reduction in startup time.
5863         
5864         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5865         Delay the next call to rhythmdb_process_events if the queue is
5866         empty or if we can't process any of the events in the queue because
5867         the database is read only.
5869         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5871 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5873         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5875         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5876         Don't special case errors quite so much.
5878 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5880         * data/rhythmbox.schemas: Remove default speed.
5882         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5883         Add n-c-b 2.15 support.  Make the default speed to slowest since
5884         that is all that works reliably.
5886 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5888         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5889         Fix compiler error from last commit.
5891 2006-04-25  James Livingston  <doclivingston@gmail.com>
5893         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5894         transcoding-related issues. From bug 322268.
5896         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5897         don't emit the signal, since the object is being finalised, which os a
5898         Bad Thing To Do.
5900         (profile_bin_find_encoder), (get_profile_from_mime_type),
5901         (transcode_track): find the encoding element by iterating looking for
5902         element in the class Codec/Encoder/Audio rather than the one named
5903         "enc".
5905 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5907         * shell/rb-shell-player.xml:
5908         * shell/rb-shell.xml:
5909         Add signal argument information.  
5910         Patch by Tim Moloney  <t.moloney@verizon.net>
5912         * shell/rb-shell.c: (rb_shell_window_state_cb):
5913         Use the right value for the visibility_changed signal.  Most of the
5914         time, anyway.
5916 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5918         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5919         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5920         (impl_create_configure_dialog):
5921         * data/glade/audioscrobbler-prefs.glade:
5922         * shell/rb-audioscrobbler.c (*):
5923         * lib/rb-preferences.h:
5924         * data/rhythmbox.schemas:
5925         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5926         Add status information (# tracks submitted, # queued, last submit
5927         time, result of last submission) to the plugin config window.
5928         Remove 'enabled' setting, since it's easier to just disable the
5929         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5930         nonexistant (so far) 'last.fm streaming' plugin.
5931         
5932         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5933         plugin
5935         Fixes some of #325848.  We still don't provide a way to view the
5936         submission queue.
5938 2006-04-25  James Livingston  <doclivingston@gmail.com>
5940         patch by: Anders Petersson  <demitar@worldforge.org>
5942         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5943         the YY-MM-DD format.
5945 2006-04-23  James Livingston  <doclivingston@gmail.com>
5947         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5948         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5949         * bindings/python/override_common.h:
5950         * bindings/python/rb.override: python binding fixes
5952 2006-04-23  James Livingston  <doclivingston@gmail.com>
5954         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5955         (rb_statusbar_sync_with_source),
5956         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5957         callback, rather than immediately every time. Takes ~5% off my warm-cache
5958         startup time.
5960         * bindings/python/rhythmdb.defs: fix the types using for
5961         RhythmDBEntryTypes.
5963 2006-04-22  James Livingston  <doclivingston@gmail.com>
5965         * data/ui/rhythmbox-ui.xml:
5966         * shell/rb-shell.c:
5967         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5968         (remove_source), (rb_daap_sources_init),
5969         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5970         (rb_daap_source_disconnect):
5971         * sources/rb-source.c: (rb_source_class_init),
5972         (rb_source_deactivate):
5973         * sources/rb-source.h: move the "disconnect" functionality from into
5974         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5976 2006-04-22  James Livingston  <doclivingston@gmail.com>
5978         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5979         actually get the translated strings for browser headers (they were
5980         already marked as translatable). Fixes bug 339380.
5982 2006-04-22  James Livingston  <doclivingston@gmail.com>
5984         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5985         submission timeout when the object is finalised.
5987         * bindings/python/Makefile.am:
5988         * bindings/python/rb.defs:
5989         * bindings/python/rb.override:
5990         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5992         * widgets/rb-library-browser.c:
5993         (rb_library_browser_construct_query), (rebuild_output_model),
5994         (rebuild_child_model):
5995         * widgets/rb-library-browser.h: change from GPtrArray to
5996         RhythmDBQuery (which in C is the same thing).
5998 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6000         * shell/rb-shell.c: (rb_shell_get_song_properties):
6001         Don't try to include entry-type (or anything else not easily
6002         marshallable) in the song properties hash table.
6004         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6006         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6007         (rb_playlist_source_constructor): Fix entry-type initialization as
6008         with previous commit.
6010 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6012         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6013         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6014         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6015         (rb_podcast_source_constructor):
6016         Set default values for entry-type after base class construction,
6017         rather than in _init, because gobject will set the entry-type property
6018         to NULL after _init if no value is provided.  Fixes #339206.
6020 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6022         patch by: Gunnar Steinn Magnusson
6024         * COPYING:
6025         * backends/gstreamer/rb-encoder-gst.c:
6026         * backends/gstreamer/rb-encoder-gst.h:
6027         * backends/rb-encoder.c:
6028         * backends/rb-encoder.h:
6029         * bindings/python/override_common.c:
6030         * bindings/python/override_common.h:
6031         * daapsharing/rb-daap-connection.c:
6032         * daapsharing/rb-daap-connection.h:
6033         * daapsharing/rb-daap-dialog.c:
6034         * daapsharing/rb-daap-dialog.h:
6035         * daapsharing/rb-daap-mdns-browser-avahi.c:
6036         * daapsharing/rb-daap-mdns-browser-howl.c:
6037         * daapsharing/rb-daap-mdns-browser.h:
6038         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6039         * daapsharing/rb-daap-mdns-publisher-howl.c:
6040         * daapsharing/rb-daap-mdns-publisher.h:
6041         * daapsharing/rb-daap-share.c:
6042         * daapsharing/rb-daap-share.h:
6043         * daapsharing/rb-daap-sharing.c:
6044         * daapsharing/rb-daap-sharing.h:
6045         * daapsharing/rb-daap-src.c:
6046         * daapsharing/rb-daap-src.h:
6047         * daapsharing/rb-daap-structure.c:
6048         * daapsharing/rb-daap-structure.h:
6049         * help/C/fdl-appendix.xml:
6050         * help/es/es.po:
6051         * help/ja/fdl-appendix.xml:
6052         * iradio/rb-new-station-dialog.c:
6053         * iradio/rb-new-station-dialog.h:
6054         * iradio/rb-station-properties-dialog.c:
6055         * iradio/rb-station-properties-dialog.h:
6056         * lib/mkdtemp.c:
6057         * lib/mkdtemp.h:
6058         * lib/rb-cut-and-paste-code.c:
6059         * lib/rb-cut-and-paste-code.h:
6060         * lib/rb-debug.c:
6061         * lib/rb-debug.h:
6062         * lib/rb-file-helpers.c:
6063         * lib/rb-file-helpers.h:
6064         * lib/rb-glade-helpers.c:
6065         * lib/rb-glade-helpers.h:
6066         * lib/rb-preferences.h:
6067         * lib/rb-proxy-config.c:
6068         * lib/rb-stock-icons.c:
6069         * lib/rb-stock-icons.h:
6070         * lib/rb-thread.c:
6071         * lib/rb-thread.h:
6072         * lib/rb-tree-dnd.c:
6073         * lib/rb-tree-dnd.h:
6074         * lib/rb-util.c:
6075         * lib/rb-util.h:
6076         * metadata/rb-metadata-common.c:
6077         * metadata/rb-metadata-dbus-client.c:
6078         * metadata/rb-metadata-dbus-service.c:
6079         * metadata/rb-metadata-dbus.c:
6080         * metadata/rb-metadata-dbus.h:
6081         * metadata/rb-metadata-gst.c:
6082         * metadata/rb-metadata.h:
6083         * metadata/sj-error.c:
6084         * metadata/sj-error.h:
6085         * metadata/sj-metadata-musicbrainz.c:
6086         * metadata/sj-metadata-musicbrainz.h:
6087         * metadata/sj-metadata.c:
6088         * metadata/sj-metadata.h:
6089         * metadata/sj-structures.c:
6090         * metadata/sj-structures.h:
6091         * metadata/test-metadata.c:
6092         * player/rb-player-gst.c:
6093         * player/rb-player.h:
6094         * player/rb-recorder-gst.c:
6095         * player/rb-recorder.h:
6096         * plugins/artdisplay/artdisplay.py:
6097         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6098         * plugins/ipod/rb-ipod-plugin.c:
6099         * plugins/lirc/rb-lirc-plugin.c:
6100         * plugins/pythonconsole/pythonconsole.py:
6101         * plugins/rb-module.c:
6102         * plugins/rb-module.h:
6103         * plugins/rb-plugin-manager.c:
6104         * plugins/rb-plugin-manager.h:
6105         * plugins/rb-plugin.c:
6106         * plugins/rb-plugin.h:
6107         * plugins/rb-plugins-engine.c:
6108         * plugins/rb-plugins-engine.h:
6109         * plugins/rb-python-module.c:
6110         * plugins/rb-python-module.h:
6111         * plugins/rb-python-plugin.c:
6112         * plugins/rb-python-plugin.h:
6113         * plugins/sample/rb-sample-plugin.c:
6114         * po/de.po:
6115         * po/el.po:
6116         * po/en_CA.po:
6117         * po/eu.po:
6118         * po/fi.po:
6119         * po/fr.po:
6120         * po/it.po:
6121         * po/ja.po:
6122         * po/mk.po:
6123         * po/pt_BR.po:
6124         * po/ru.po:
6125         * podcast/rb-feed-podcast-properties-dialog.c:
6126         * podcast/rb-feed-podcast-properties-dialog.h:
6127         * podcast/rb-new-podcast-dialog.c:
6128         * podcast/rb-new-podcast-dialog.h:
6129         * podcast/rb-podcast-manager.c:
6130         * podcast/rb-podcast-manager.h:
6131         * podcast/rb-podcast-parse.c:
6132         * podcast/rb-podcast-parse.h:
6133         * podcast/rb-podcast-properties-dialog.c:
6134         * podcast/rb-podcast-properties-dialog.h:
6135         * remote/bonobo/libmain.c:
6136         * remote/bonobo/rb-nautilus-context-menu.c:
6137         * remote/bonobo/rb-nautilus-context-menu.h:
6138         * remote/bonobo/rb-remote-bonobo.c:
6139         * remote/bonobo/rb-remote-bonobo.h:
6140         * remote/rb-remote-client-proxy.c:
6141         * remote/rb-remote-client-proxy.h:
6142         * remote/rb-remote-common.c:
6143         * remote/rb-remote-common.h:
6144         * remote/rb-remote-proxy.c:
6145         * remote/rb-remote-proxy.h:
6146         * rhythmdb/gsequence.c:
6147         * rhythmdb/gsequence.h:
6148         * rhythmdb/rb-refstring.c:
6149         * rhythmdb/rb-refstring.h:
6150         * rhythmdb/rhythmdb-gda.c:
6151         * rhythmdb/rhythmdb-gda.h:
6152         * rhythmdb/rhythmdb-private.h:
6153         * rhythmdb/rhythmdb-property-model.c:
6154         * rhythmdb/rhythmdb-property-model.h:
6155         * rhythmdb/rhythmdb-query-model.c:
6156         * rhythmdb/rhythmdb-query-model.h:
6157         * rhythmdb/rhythmdb-query-results.c:
6158         * rhythmdb/rhythmdb-query-results.h:
6159         * rhythmdb/rhythmdb-tree.c:
6160         * rhythmdb/rhythmdb-tree.h:
6161         * rhythmdb/rhythmdb.c:
6162         * rhythmdb/rhythmdb.h:
6163         * shell/main.c:
6164         * shell/rb-audioscrobbler.c:
6165         * shell/rb-audioscrobbler.h:
6166         * shell/rb-history.c:
6167         * shell/rb-history.h:
6168         * shell/rb-play-order-linear-loop.c:
6169         * shell/rb-play-order-linear-loop.h:
6170         * shell/rb-play-order-linear.c:
6171         * shell/rb-play-order-linear.h:
6172         * shell/rb-play-order-queue.c:
6173         * shell/rb-play-order-queue.h:
6174         * shell/rb-play-order-random-by-age-and-rating.c:
6175         * shell/rb-play-order-random-by-age-and-rating.h:
6176         * shell/rb-play-order-random-by-age.c:
6177         * shell/rb-play-order-random-by-age.h:
6178         * shell/rb-play-order-random-by-rating.c:
6179         * shell/rb-play-order-random-by-rating.h:
6180         * shell/rb-play-order-random-equal-weights.c:
6181         * shell/rb-play-order-random-equal-weights.h:
6182         * shell/rb-play-order-random.c:
6183         * shell/rb-play-order-random.h:
6184         * shell/rb-play-order-shuffle.c:
6185         * shell/rb-play-order-shuffle.h:
6186         * shell/rb-play-order.c:
6187         * shell/rb-play-order.h:
6188         * shell/rb-playlist-manager.c:
6189         * shell/rb-playlist-manager.h:
6190         * shell/rb-removable-media-manager.c:
6191         * shell/rb-removable-media-manager.h:
6192         * shell/rb-shell-clipboard.c:
6193         * shell/rb-shell-clipboard.h:
6194         * shell/rb-shell-player.c:
6195         * shell/rb-shell-player.h:
6196         * shell/rb-shell-preferences.c:
6197         * shell/rb-shell-preferences.h:
6198         * shell/rb-shell.c:
6199         * shell/rb-shell.h:
6200         * shell/rb-source-header.c:
6201         * shell/rb-source-header.h:
6202         * shell/rb-statusbar.c:
6203         * shell/rb-statusbar.h:
6204         * shell/rb-tray-icon.c:
6205         * shell/rb-tray-icon.h:
6206         * sources/rb-audiocd-source.c:
6207         * sources/rb-audiocd-source.h:
6208         * sources/rb-auto-playlist-source.c:
6209         * sources/rb-auto-playlist-source.h:
6210         * sources/rb-browser-source.c:
6211         * sources/rb-browser-source.h:
6212         * sources/rb-daap-source.c:
6213         * sources/rb-daap-source.h:
6214         * sources/rb-generic-player-source.c:
6215         * sources/rb-generic-player-source.h:
6216         * sources/rb-import-errors-source.c:
6217         * sources/rb-import-errors-source.h:
6218         * sources/rb-ipod-source.c:
6219         * sources/rb-ipod-source.h:
6220         * sources/rb-iradio-source.c:
6221         * sources/rb-iradio-source.h:
6222         * sources/rb-library-source.c:
6223         * sources/rb-library-source.h:
6224         * sources/rb-missing-files-source.c:
6225         * sources/rb-missing-files-source.h:
6226         * sources/rb-nokia770-source.c:
6227         * sources/rb-nokia770-source.h:
6228         * sources/rb-play-queue-source.c:
6229         * sources/rb-play-queue-source.h:
6230         * sources/rb-playlist-source-recorder.c:
6231         * sources/rb-playlist-source-recorder.h:
6232         * sources/rb-playlist-source.c:
6233         * sources/rb-playlist-source.h:
6234         * sources/rb-playlist-xml.h:
6235         * sources/rb-podcast-source.c:
6236         * sources/rb-podcast-source.h:
6237         * sources/rb-psp-source.c:
6238         * sources/rb-psp-source.h:
6239         * sources/rb-removable-media-source.c:
6240         * sources/rb-removable-media-source.h:
6241         * sources/rb-source.c:
6242         * sources/rb-source.h:
6243         * sources/rb-sourcelist-model.c:
6244         * sources/rb-sourcelist-model.h:
6245         * sources/rb-sourcelist.c:
6246         * sources/rb-sourcelist.h:
6247         * sources/rb-static-playlist-source.c:
6248         * sources/rb-static-playlist-source.h:
6249         * tests/test-cd.c:
6250         * tests/test-cmdline.c:
6251         * tests/test-rhythmdb-indexing.c:
6252         * tests/test-rhythmdb-query.c:
6253         * tests/test-rhythmdb-simple.c:
6254         * tests/test-rhythmdb-tree-deserialization.c:
6255         * tests/test-rhythmdb-tree-serialization.c:
6256         * tests/test-rhythmdb-view.c:
6257         * widgets/bacon-volume.c:
6258         * widgets/bacon-volume.h:
6259         * widgets/disclosure-widget.c:
6260         * widgets/disclosure-widget.h:
6261         * widgets/eel-gconf-extensions.c:
6262         * widgets/eel-gconf-extensions.h:
6263         * widgets/eggtrayicon.c:
6264         * widgets/eggtrayicon.h:
6265         * widgets/libsexy/sexy-icon-entry.c:
6266         * widgets/libsexy/sexy-icon-entry.h:
6267         * widgets/rb-cell-renderer-pixbuf.c:
6268         * widgets/rb-cell-renderer-pixbuf.h:
6269         * widgets/rb-cell-renderer-rating.c:
6270         * widgets/rb-cell-renderer-rating.h:
6271         * widgets/rb-dialog.c:
6272         * widgets/rb-dialog.h:
6273         * widgets/rb-druid.c:
6274         * widgets/rb-druid.h:
6275         * widgets/rb-entry-view.c:
6276         * widgets/rb-entry-view.h:
6277         * widgets/rb-header.c:
6278         * widgets/rb-header.h:
6279         * widgets/rb-library-browser.c:
6280         * widgets/rb-library-browser.h:
6281         * widgets/rb-property-view.c:
6282         * widgets/rb-property-view.h:
6283         * widgets/rb-query-creator-private.h:
6284         * widgets/rb-query-creator-properties.c:
6285         * widgets/rb-query-creator.c:
6286         * widgets/rb-query-creator.h:
6287         * widgets/rb-rating-helper.c:
6288         * widgets/rb-rating-helper.h:
6289         * widgets/rb-rating.c:
6290         * widgets/rb-rating.h:
6291         * widgets/rb-search-entry.c:
6292         * widgets/rb-search-entry.h:
6293         * widgets/rb-song-display-box.c:
6294         * widgets/rb-song-display-box.h:
6295         * widgets/rb-song-info.c:
6296         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6298 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6300         patch by: Gareth Murphy, James Livingston
6302         * bindings/python/rb.defs:
6303         * configure.ac:
6304         * plugins/Makefile.am:
6305         * plugins/artdisplay/Makefile.am:
6306         * plugins/artdisplay/artdisplay.py:
6307         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6308         * plugins/rb-python-module.c: (rb_python_module_init_python):
6309         * shell/rb-shell.c: (construct_widgets),
6310         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6311         (rb_shell_add_widget), (rb_shell_remove_widget),
6312         (rb_shell_ui_location_get_type):
6313         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6315 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6317         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6318         Fix build failure caused by the combination of the previous two
6319         commits.
6321 2006-04-20  James Livingston  <doclivingston@gmail.com>
6323         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6324         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6325         table to the entry types, which will allow us to get rid of some of
6326         the "if entry type == WHATEVER" code everywhere. From bug 
6328         * bindings/python/rb.defs:
6329         * bindings/python/rb.override:
6330         * bindings/python/rhythmdb.defs:
6331         * bindings/python/rhythmdb.override:
6332         * daapsharing/rb-daap-connection.c:
6333         (rb_daap_connection_class_init), (rb_daap_connection_init),
6334         (rb_daap_connection_set_property),
6335         (rb_daap_connection_get_property):
6336         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6337         * podcast/rb-podcast-manager.c:
6338         (rb_podcast_manager_entry_downloaded),
6339         (rb_podcast_manager_subscribe_feed),
6340         (rb_podcast_manager_db_entry_added_cb),
6341         (rb_podcast_manager_db_entry_deleted_cb),
6342         (rb_podcast_manager_insert_feed):
6343         * rhythmdb/rhythmdb-private.h:
6344         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6345         (conjunctive_query):
6346         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6347         (process_added_entries_cb), (rhythmdb_entry_allocate),
6348         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6349         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6350         (rhythmdb_process_metadata_load),
6351         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6352         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6353         (write_encoded_gvalue), (read_encoded_property),
6354         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6355         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6356         (rhythmdb_entry_iradio_get_type),
6357         (rhythmdb_entry_podcast_post_get_type),
6358         (rhythmdb_entry_podcast_feed_get_type),
6359         (rhythmdb_entry_import_error_get_type),
6360         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6361         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6362         (rhythmdb_entry_type_get_type):
6363         * rhythmdb/rhythmdb.h:
6364         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6365         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6366         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6367         (rb_shell_player_entry_activated_cb), (info_available_cb):
6368         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6369         (rb_shell_register_entry_type_for_source),
6370         (rb_shell_playing_from_queue_cb),
6371         (rb_shell_playing_entry_changed_cb),
6372         (rb_shell_player_stream_song_changed_cb),
6373         (rb_shell_jump_to_entry_with_source),
6374         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6375         (handle_playlist_entry_cb), (rb_shell_load_uri):
6376         * shell/rb-shell.h:
6377         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6378         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6379         (rb_browser_source_init), (rb_browser_source_set_property),
6380         (rb_browser_source_get_property):
6381         * sources/rb-ipod-source.c: (impl_paste):
6382         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6383         (rb_iradio_source_init), (rb_iradio_source_set_property),
6384         (rb_iradio_source_get_property):
6385         * sources/rb-library-source.c: (impl_paste):
6386         * sources/rb-missing-files-source.c:
6387         (rb_missing_files_source_class_init),
6388         (rb_missing_files_source_init),
6389         (rb_missing_files_source_set_property),
6390         (rb_missing_files_source_get_property):
6391         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6392         (rb_playlist_source_init), (rb_playlist_source_set_property),
6393         (rb_playlist_source_get_property):
6394         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6395         (rb_podcast_source_init), (rb_podcast_source_set_property),
6396         (rb_podcast_source_get_property):
6397         * sources/rb-static-playlist-source.c:
6398         (rb_static_playlist_source_add_location_internal):
6400 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6402         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6403         (rhythmdb_add_import_error_entry),
6404         (entry_volume_mounted_or_unmounted),
6405         (rhythmdb_volume_unmounted_cb):
6406         When a volume is unmounted, delete import errors for files stored on
6407         it.  When a volume is mounted, stat all tracks stored on it, rather
6408         than assuming they're present.  Fixes #339023.
6410 2006-04-20  James Livingston  <doclivingston@gmail.com>
6412         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6413         browser visibility for non-gconf-using sources (like playlists). Part
6414         of bug 118862.
6416         * shell/rb-source-header.c: (sourcestate_free),
6417         (rb_source_header_init), (rb_source_header_finalize),
6418         (rb_source_header_source_weak_destroy_cb): switch from storing the
6419         search string to storing a "source state" structure
6421         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6422         (rb_source_header_search_cb), (rb_source_header_clear_search),
6423         (rb_source_header_disclosure_toggled_cb): as well as storing the
6424         string, stop the visibility of the source's browser.
6426 2006-04-20  James Livingston  <doclivingston@gmail.com>
6428         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6429         library entries back into the library. Fixes bug 339065.
6431 2006-04-20  James Livingston  <doclivingston@gmail.com>
6433         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6434         only exists in glib 2.10.
6436 2006-04-20  James Livingston  <doclivingston@gmail.com>
6438         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6439         Solaris. From bug 335318.
6441         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6442         * shell/rb-audioscrobbler.c:
6443         * sources/rb-psp-source.c:
6445 2006-04-20  James Livingston  <doclivingston@gmail.com>
6447         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6448         issues for some people.
6450         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6451         accidental s/suffix/prefix/
6453         * sources/rb-auto-playlist-source.c:
6454         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6455         you from sorting playlists which aren't limited by time.
6457 2006-04-19  James Livingston  <doclivingston@gmail.com>
6459         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6460         duration or bitrate back to the file, since they are properties of the
6461         audio data, not tags we can set.
6463 2006-04-19  James Livingston  <doclivingston@gmail.com>
6465         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6466         of libtool, to fix builds which are using a different version. Fixes
6467         bug 338996.
6469         * shell/Makefile.am:
6471 2006-04-19  James Livingston  <doclivingston@gmail.com>
6473         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6474         to sync data to a file which is uneditable.
6476 2006-04-19  James Livingston  <doclivingston@gmail.com>
6478         patch by: Gavin Stewart  <gavin@brokentrain.net>
6480         * data/glade/playlist-save.glade:
6481         * data/glade/Makefile.am:
6482         * po/POTFILES.in: add the playlist saving dialog.
6484         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6485         (export_set_extension_cb), (filter_get_export_filter_label),
6486         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6487         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6488         formats (PLS and M3U at the moment). Fixes bug 316295.
6490 2006-04-19  James Livingston  <doclivingston@gmail.com>
6492         * shell/rb-playlist-manager.c:
6493         (rb_playlist_manager_set_source_internal): don't let you edit remove
6494         auto playlists.
6496         * sources/rb-auto-playlist-source.c:
6497         (rb_auto_playlist_source_set_query): correctly handle time-limited
6498         playlists.
6500 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6502         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6504         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6505         Don't crash if the queue file contains no newlines.
6506         Fixes #338924.
6508 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6510         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6511         condition
6513 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6515         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6516         case. Moreover, they may not exist yet, so take that into account when
6517         generating the iPod filename.
6519 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6521         * sources/rb-ipod-source.c: added support for drag and drop from the
6522         library to the iPod (only enabled if --enable-track-transfer was
6523         passed to configure)
6525 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6527         * configure.ac:
6528         * lib/rb-marshal.list:
6529         * lib/rb-util.c: 
6530         * lib/rb-util.h:
6531         * plugins/Makefile.am:
6532         * plugins/ipod/Makefile.am:
6533         * plugins/ipod/ipod.rb-plugin.desktop.in:
6534         * plugins/ipod/rb-ipod-plugin.c: 
6535         * plugins/rb-plugin.h:
6536         * shell/Makefile.am:
6537         * shell/rb-removable-media-manager.c:
6538         * shell/rb-removable-media-manager.h:
6539         * shell/rb-shell.c: 
6540         * sources/Makefile.am:
6541         * sources/rb-ipod-source.c: 
6542         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6543         various iPod related files should be moved to plugins/ipod/ now...
6545 2006-04-17  James Livingston  <doclivingston@gmail.com>
6547         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6548         and "vic".
6550         * help/C/figures/rb-iradio-main.png:
6551         * help/C/figures/rb-notification-area-menu.png:
6552         * help/C/figures/rb-notification-window.png:
6553         * help/C/figures/rb-notification-zone.png:
6554         * help/C/figures/rb-podcast-main.png:
6555         * help/C/figures/rb-statusbar.png:
6556         * help/C/figures/rb-volume-changer.png:
6557         * help/C/figures/rb-window-small.png:
6558         * help/C/figures/rb-window.png:
6559         * help/C/rhythmbox.xml:
6561 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6563         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6564         more obviously.
6566         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6567         (make_undecodable_error), (rb_metadata_gst_error_cb),
6568         (rb_metadata_gst_new_decoded_pad_cb),
6569         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6570         Ignore really small files (<4kB) for which typefinding fails.
6571         Always link decoded pads from decodebin to fakesink.
6572         Shut the pipeline down by posting an error on the bus when decodebin
6573         emits unknown-type signals.  Fixes bug #338062.
6575 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6577         * shell/rb-shell.c: (rb_shell_load_uri):
6578         Fix glaring mistakes in previous commit: actually pass arguments to
6579         rb_debug, and specify the right entry type when adding a new iradio
6580         station so we don't try to add local playlist files to the library.
6582 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6584         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6585         before trying to add them, as iradio streams often fail rb_uri_exists().
6587         * shell/rb-shell-player.c: (notify_playing_idle),
6588         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6589         (open_location_thread), (rb_shell_player_open_location),
6590         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6591         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6592         of all the stream URLs, and try them in turn.  If we get through the
6593         whole playlist too quickly, error out.  Various other fixes that make
6594         iradio work a lot better.
6596         * shell/rb-shell.c: (add_to_library_response_cb),
6597         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6598         (handle_playlist_entry_cb), (rb_shell_load_uri):
6599         Add playlists containing streams as iradio stations.  If the playlist
6600         is local, add each stream URL, but if the playlist is remote, just add
6601         the playlist URL.
6602         
6603         * sources/rb-iradio-source.c: (new_station_location_added):
6604         Add new station URLs as-is, rather than parsing the playlist and
6605         adding the streams.
6606         
6607         * rhythmdb/rhythmdb-query-model.c:
6608         (rhythmdb_query_model_entry_changed_cb),
6609         (rhythmdb_query_model_emit_reorder),
6610         (rhythmdb_query_model_do_reorder):
6611         Emit row-changed notifications when an entry changes but is not
6612         reordered.
6614         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6615         Display the playback error icon when the entry has an error and
6616         there's nothing else to display.
6617         
6618         Fixes bug #320336 and some of #324402.
6619         
6620 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6622         * sources/rb-ipod-source.c: use a GHashTable for the
6623         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6624         time, this fixes compilation breakage for people not having libgpod
6625         CVS HEAD
6627 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6629         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6631         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6632         (rb_podcast_manager_insert_feed):
6633         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6634         fixes bug 321945
6636 2006-04-16  James Livingston  <doclivingston@gmail.com>
6638         * sources/rb-library-source.c:
6639         (rb_library_source_library_location_cb): return FALSE like we are
6640         supposed to, not void.
6642         patch by: FreeBSD GNOME Project
6643         * configure.ac: fix some bash-isms.
6645         patch by: Pawel Worach  <pawel.worach@gmail.com>
6646         * metadata/rb-metadata-dbus-client.c:
6647         * rhythmdb/rhythmdb-query-model.c:
6648         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6651 2006-04-16  James Livingston  <doclivingston@gmail.com>
6653         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6654         for transcoding to RBEncoderGst.
6656         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6657         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6658         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6659         (add_decoding_pipeline), (encoder_match_mime),
6660         (get_profile_from_mime_type), (extract_track), (transcode_track),
6661         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6663 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6665         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6666         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6667         load_ipod_db_idle_cb to a new separate function
6669 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6671         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6672         source
6674 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6676         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6677         variables
6679 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6681         * data/ui/Makefile.am:
6682         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6683         menu
6684         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6685         NULL before using it as a popup menu
6686         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6687         'eject' an iPod
6689 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6691         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6692         iPod, check if it contains an iPod database before using it (in case
6693         the iPod was repartitionned somehow). Should fix bug #325034
6695 2006-04-16  Steve Frécinaux  <steve@istique.net>
6697         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6699         * data/Makefile.am: install application icon into the default theme.
6701         * data/rhythmbox.desktop.in: don't specify icon file extension.
6702         
6703         * shell/main.c: (main): set default window icon from theme.
6704         
6705         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6706         code concerning window icon, and fix leak by unreferencing the about
6707         logo pixbuf once it's not used anymore.
6709 2006-04-16  James Livingston  <doclivingston@gmail.com>
6711         * configure.ac: bump version to 0.9.4
6712         * NEWS: update NEWS and 0.9.4 insert translations
6714 2006-04-16  James Livingston  <doclivingston@gmail.com>
6716         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6717         namespace automatically.
6719 2006-04-16  James Livingston  <doclivingston@gmail.com>
6721         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6723         * doc/reference/Makefile.am:
6724         * doc/reference/rhythmbox.types: make distcheck work again
6726         * doc/reference/tmpl/eggnotificationbubble.sgml:
6727         * doc/reference/tmpl/eggtrayicon.sgml:
6728         * doc/reference/tmpl/rb-debug.sgml:
6729         * doc/reference/tmpl/rb-entry-view.sgml:
6730         * doc/reference/tmpl/rb-enums.sgml:
6731         * doc/reference/tmpl/rb-metadata.sgml:
6732         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6733         * doc/reference/tmpl/rb-playlist-manager.sgml:
6734         * doc/reference/tmpl/rb-refstring.sgml:
6735         * doc/reference/tmpl/rb-shell-player.sgml:
6736         * doc/reference/tmpl/rb-shell-preferences.sgml:
6737         * doc/reference/tmpl/rb-shell.sgml:
6738         * doc/reference/tmpl/rb-song-info.sgml:
6739         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6740         * doc/reference/tmpl/rb-statusbar.sgml:
6741         * doc/reference/tmpl/rhythmbox-unused.sgml:
6742         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6743         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6745 2006-04-16  James Livingston  <doclivingston@gmail.com>
6747         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6749         * po/LINGUAS: don't split the variable across two lines, as it breaks
6750         the build. Fixes bug 338625.
6752 2006-04-15  James Livingston  <doclivingston@gmail.com>
6754         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6755         add a "sourcelist-model" gobject property.
6757 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6759         * .cvsignore:
6760         * backends/.cvsignore:
6761         * backends/gstreamer/.cvsignore:
6762         * bindings/.cvsignore:
6763         * bindings/python/.cvsignore:
6764         * help/es/.cvsignore:
6765         * metadata/.cvsignore:
6766         * plugins/.cvsignore:
6767         * plugins/audioscrobbler/.cvsignore:
6768         * plugins/lirc/.cvsignore:
6769         * plugins/pythonconsole/.cvsignore:
6770         * plugins/sample-python/.cvsignore:
6771         * plugins/sample/.cvsignore:
6772         * shell/.cvsignore:
6773         * widgets/libsexy/.cvsignore:
6774         Make CVS ignore files.
6776 2006-04-14  James Livingston  <doclivingston@gmail.com>
6778         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6779         the track-loading thread hold a reference on the source, so it doesn't
6780         explode if the cd is removed before it is done. Fixes bug 337237.
6782 2006-04-14  James Livingston  <doclivingston@gmail.com>
6784         * bindings/python/override_common.c:
6785         (_helper_unwrap_pointer_pylist):
6786         * bindings/python/override_common.h:
6787         * bindings/python/rb.override:
6788         * bindings/python/rhythmdb.override: Bind some more functions and
6789         virtual functions.
6791         * shell/rb-shell.c: (rb_shell_select_source):
6792         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6793         * sources/rb-audiocd-source.c:
6794         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6795         * sources/rb-browser-source.c: (impl_get_search_actions):
6796         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6797         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6798         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6799         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6800         (impl_get_search_actions):
6801         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6802         the impl_get_ui_actions and impl_get_search_actions functions return
6803         lists that contain copies of the strings, instead of constant ones.
6804         Needed to bindings
6806 2006-04-14  James Livingston  <doclivingston@gmail.com>
6808         * bindings/python/rhythmdb.defs:
6809         * bindings/python/rhythmdb.override: fix the method argument format
6810         specifiers.
6812 2006-04-14  James Livingston  <doclivingston@gmail.com>
6814         * bindings/python/rhythmdb.defs:
6815         * bindings/python/rhythmdb.override:
6816         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6817         (entry_to_rb_metadata), (record_entry_change),
6818         (rhythmdb_entry_set_visibility):
6819         * rhythmdb/rhythmdb.h:
6820         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6821         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6822         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6823         since they are used in too many places, and not in the Python
6824         bindings.
6826 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6828         * lib/rb-debug.c: (_rb_profile_log):
6829         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6830         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6831         * shell/main.c: (main):
6832         * shell/rb-shell.c: (rb_shell_constructor),
6833         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6834         (rb_shell_present):
6835         Fix profile output indentation.  Add more profiling points.
6836         Fixes part of #338114
6838 2006-04-13  James Livingston  <doclivingston@gmail.com>
6840         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6841         library source being deleted, by setting the active source to NULL.
6842         From bug 338116.
6844 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6846         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6847         Update the last-seen string when hiddenness changes.
6849 2006-04-12  James Livingston  <doclivingston@gmail.com>
6851         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6852         which caused the first-seen time to be reset when a metadata load was
6853         done. Fixes bug 336874.
6855         * shell/rb-shell.h: remove old function declaration.
6857         * bindings/python/rhythmdb.defs:
6858         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6860 2006-04-11  James Livingston  <doclivingston@gmail.com>
6862         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6863         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6864         interaction. Fixes bug 337999.
6866 2006-04-11  James Livingston  <doclivingston@gmail.com>
6868         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6869         track transfer. Fixes bug 338056.
6871         * shell/Makefile.am:
6873 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6875         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6877 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6879         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6880         (_rb_profile_log):
6881         * lib/rb-debug.h:
6882         * shell/rb-shell.c: (construct_db), (construct_widgets),
6883         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6884         Add profiling.  Fixes #337387
6886 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6888         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6889         * widgets/rb-header.c:
6890         Use italics for artist and album. Fixes #336748
6892 2006-04-10  James Livingston  <doclivingston@gmail.com>
6894         * Makefile.am:
6895         * backends/gstreamer/Makefile.am:
6896         * configure.ac:
6897         * data/glade/library-prefs.glade:
6898         * shell/Makefile.am:
6899         * shell/rb-removable-media-manager.c:
6900         * shell/rb-removable-media-manager.h:
6901         * sources/Makefile.am:
6902         * sources/rb-audiocd-source.c:
6903         * sources/rb-library-source.c: (rb_library_source_class_init),
6904         (rb_library_source_finalize), (impl_get_config_widget),
6905         (rb_library_source_preferences_sync), (impl_can_paste): add a
6906         --enable-track-transfer configure option, abd make cd ripping disabled
6907         by default.
6909         * shell/rb-source-header.c:
6910         * sources/rb-source.c: (rb_source_class_init),
6911         (rb_source_delete_thyself), (default_get_entry_view):
6912         * lib/rb-glade-helpers.c:
6913         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6914         some compiler warnings, and also bug 337427.
6916 2006-04-10  James Livingston  <doclivingston@gmail.com>
6918         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6919         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6920         if the gconf key is missing. Fixes bug 337742.
6922 2006-04-10  James Livingston  <doclivingston@gmail.com>
6924         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6925         to fix build problems I caused with a commit yesterday. Fixed bug
6926         337806.
6928         * daapsharing/rb-daap-mdns-browser-howl.c:
6929         (rb_daap_mdns_browser_class_init):
6930         * podcast/Makefile.am:
6931         * rhythmdb/Makefile.am:
6932         * widgets/eggtrayicon.h:
6934 2006-04-09  Steve Frécinaux  <steve@istique.net>
6936         * configure.ac:
6937         * po/LINGUAS:
6938         
6939         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6940         translators' life easier.
6942 2006-04-09  James Livingston  <doclivingston@gmail.com>
6944         * bindings/python/rb.defs:
6945         * bindings/python/rb.override: add bindings for most RBSource virtual
6946         functions.
6948         * sources/rb-source.h:
6949         * sources/rb-source.c: (rb_source_class_init): make
6950         impl_get_browser_key return a non-consht string, since Python can't
6951         really give us constant strings.
6953         * shell/rb-source-header.c: (rb_source_header_finalize),
6954         (rb_source_header_set_source_internal):
6955         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6956         * sources/rb-iradio-source.c: (impl_get_browser_key):
6957         * sources/rb-library-source.c: (impl_get_browser_key):
6958         * sources/rb-playlist-source.c:
6959         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6960         (rb_browser_source_state_prefs_sync):
6961         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6962         above change.
6964         * plugins/sample-python/sample-python.py: show how to add a new
6965         source.
6967 2006-04-09  James Livingston  <doclivingston@gmail.com>
6969         * daapsharing/Makefile.am:
6970         * daapsharing/rb-daap-connection.c:
6971         (rb_daap_connection_class_init):
6972         * daapsharing/rb-daap-marshal.list:
6973         * daapsharing/rb-daap-mdns-browser-avahi.c:
6974         (rb_daap_mdns_browser_class_init):
6975         * lib/rb-marshal.list:
6976         * player/Makefile.am:
6977         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6978         * player/rb-recorder-marshal.list:
6979         * podcast/Makefile.am:
6980         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6981         * podcast/rb-podcast-marshal.list:
6982         * rhythmdb/Makefile.am:
6983         * rhythmdb/rhythmdb-marshal.list:
6984         * rhythmdb/rhythmdb-query-model.c:
6985         (rhythmdb_query_model_class_init):
6986         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6987         into one file, as there is no point having several of them.
6989 2006-04-09  James Livingston  <doclivingston@gmail.com>
6991         * lib/Makefile.am:
6992         * lib/rb-enums.h:
6993         * widgets/Makefile.am:
6994         * widgets/eggnotificationbubble.c:
6995         * widgets/eggnotificationbubble.h:
6996         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6997         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6999         * rhythmdb/rhythmdb-property-model.h:
7000         * rhythmdb/rhythmdb-query-model.h:
7001         * rhythmdb/rhythmdb.h:
7002         * shell/rb-playlist-manager.h:
7003         * widgets/rb-cell-renderer-pixbuf.h:
7004         * widgets/rb-cell-renderer-rating.h:
7005         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7007 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7009         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7010         so we can build without a system-wide installed copy.
7012 2006-04-09  James Livingston  <doclivingston@gmail.com>
7014         * data/glade/general-prefs.glade:
7015         * data/rhythmbox.schemas:
7016         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7017         (rb_combo_box_hyphen_separator_func):
7018         * lib/rb-glade-helpers.h:
7019         * lib/rb-preferences.h:
7020         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7021         (rb_shell_preferences_sync),
7022         (rb_shell_preferences_toolbar_style_cb),
7023         (rb_shell_preferences_browser_views_activated_cb):
7024         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7025         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7026         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7028 2006-04-09  James Livingston  <doclivingston@gmail.com>
7030         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7031         data that MusicBrainz returns to us. Last part of bug 334167.
7033 2006-04-09  James Livingston  <doclivingston@gmail.com>
7035         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7036         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7038 2006-04-09  James Livingston  <doclivingston@gmail.com>
7040         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7041         the entry view properly when the rows are reordered. Fixes bug 337019.
7043 2006-04-09  James Livingston  <doclivingston@gmail.com>
7045         * configure.ac:
7046         * widgets/Makefile.am:
7047         * widgets/libsexy/Makefile.am:
7048         * widgets/libsexy/sexy-icon-entry.c:
7049         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7050         libsexy, and allow building against it or a system-wide installed
7051         copy.
7054         * widgets/rb-search-entry.c: (rb_search_entry_init),
7055         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7056         search box. Fixes bug 128109.
7058 2006-04-09  James Livingston  <doclivingston@gmail.com>
7060         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7062         * widgets/rb-entry-view.c: (rb_entry_view_init),
7063         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7064         and Pause icons rather than the volume ones in the Now Playing column.
7065         Closes bug 336482.
7067 2006-04-08  James Livingston  <doclivingston@gmail.com>
7069         * bindings/python/override_common.h:
7070         * bindings/python/rb.override:
7071         * bindings/python/rhythmdb.override: bind some more functions 
7073 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7075         * metadata/rb-metadata-dbus-service.c: (_send_error):
7076         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7077         are sent properly and we don't get 'method doesn't exist' messages
7078         from dbus instead.
7080 2006-04-08  James Livingston  <doclivingston@gmail.com>
7082         * bindings/python/override_common.h:
7083         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7084         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7085         more utility functions for C<->Python conversions
7087         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7088         (rb_entry_view_state_get_type):
7089         * widgets/rb-entry-view.h: make the colume type and entry view state
7090         GTypes
7092         * bindings/python/Makefile.am:
7093         * bindings/python/rb.defs:
7094         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7095         RBSource.
7097 2006-04-08  James Livingston  <doclivingston@gmail.com>
7099         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7100         initialiser for a GError
7102         * sources/rb-source.c: (rb_source_eof_type_get_type):
7103         * sources/rb-source.h: add a GType for RBSourceEOFType
7105         * bindings/python/Makefile.am:
7106         * bindings/python/rb.defs:
7107         * bindings/python/rb.override: bind RBSource and RBSourceList
7109 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7111         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7112         (rb_shell_player_get_property),
7113         (rb_shell_player_get_active_source),
7114         (rb_shell_player_set_playing_source_internal):
7115         * shell/rb-shell-player.h:
7116         Change 'playing-from-queue' from being a signal to being a property.
7118         * shell/rb-shell.c: (rb_shell_constructor),
7119         (rb_shell_playing_from_queue_cb),
7120         (rb_shell_view_queue_as_sidebar_changed_cb),
7121         (rb_shell_jump_to_entry_with_source):
7122         When the queue side pane is used, make 'jump to current' jump to the
7123         entry in the registered source for its type, rather than in the queue,
7124         and show it as playing in that source.
7125         
7126         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7127         * sources/rb-sourcelist.h:
7128         Remove the 'preempted source' stuff, since it wasn't doing anything
7129         anyway.
7131 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7133         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7134         (download_progress_cb): Canonicalise downloaded file location before
7135         setting the mountpoint property of the corresponding entry.
7136         Fixes #337287 and a couple of memory leaks.
7138 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7140         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7141         (test_load), (main): Call g_set_prgname, report errors more
7142         usefully in test mode.
7143         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7144         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7145         files.  Run the event loop when the state change fails so we get the
7146         error messages from the bus.  Fixes #336921.
7148 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7150         * data/art/Makefile.am: Install media-eject.
7152         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7153         return value of rb_file.
7155         Fixes #337209
7157 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7159         Patch by: William Jon McCann  <mccann@jhu.edu>
7161         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7162         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7163         Fix GError leak.
7165 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7167         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7168         Don't try to add a date when we don't have one.  Fixes #336741.
7170         Also fix variable declaration in middle of block.
7172 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7174         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7175         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7177 2006-04-02  James Livingston  <doclivingston@gmail.com>
7179         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7180         inverted logic causing imports to fail.
7182 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7184         * shell/main.c: (main): Fix dbusless build.
7186 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7188         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7189         wav header for non-gcc compilers (not tested much, was only written
7190         according to docs)
7192 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7194         * shell/main.c: (main): Check if we got a dbus connection before
7195         trying to create a proxy for the shell object.  Fixes #336634.
7197 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7199         * doc/reference/Makefile.am:
7200         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7201         * shell/rb-source-header.c:
7202         * sources/rb-generic-player-source.c:
7203         (default_transform_playlist_uri):
7204         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7205         <alexl@users.sourceforge.net>
7207 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7209         * configure.ac: Detect LIRC.
7210         
7211         * plugins/Makefile.am:
7212         * plugins/lirc/Makefile.am:
7213         * plugins/lirc/lirc.rb-plugin.desktop.in:
7214         * plugins/lirc/rb-lirc-plugin.c:
7215         LIRC plugin.
7217         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7218         Remove obsolete files.
7220 2006-04-02  James Livingston  <doclivingston@gmail.com>
7222         * sources/rb-generic-player-source.c:
7223         (default_transform_playlist_uri): consider playlist paths as relative
7224         to the volume root by default, since that is what most players use.
7226 2006-04-02  James Livingston  <doclivingston@gmail.com>
7228         * lib/rb-util.c: (rb_mime_get_friendly_name):
7229         * lib/rb-util.h: add helper function to get the "friendly" name for a
7230         mime-type
7232         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7233         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7234         the user better error messages about undecodable streams, using the
7235         "friendly" name if possible. Fixes bug 128109.
7237 2006-04-02  James Livingston  <doclivingston@gmail.com>
7239         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7240         (start_pipeline): fix building with gstreamer 0.8
7242 2006-04-02  James Livingston  <doclivingston@gmail.com>
7244         * sources/rb-podcast-source.c: (impl_delete),
7245         (rb_podcast_source_cmd_delete_feed),
7246         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7247         it, since it may change during traversal. Fixes bug 336204.
7249 2006-04-01  James Livingston  <doclivingston@gmail.com>
7251         * data/art/media-eject.png: add the media-eject icon from Banshee
7252         (BSD-licensed), for use when the user's icon theme doesn't have one.
7254         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7255         bug 334897.
7257 2006-04-01  James Livingston  <doclivingston@gmail.com>
7259         * shell/rb-shell-player.h:
7260         * shell/rb-shell-player.c: (rb_shell_player_play),
7261         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7262         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7263         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7265         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7266         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7267         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7269         * bindings/python/rb.defs: bind the above to Python, and remove some
7270         useless stuff from the bindings.
7272 2006-04-01  James Livingston  <doclivingston@gmail.com>
7274         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7275         number tag.
7277         * shell/rb-shell.c:
7278         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7280         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7281         to true.
7283         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7284         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7285         method assigning, so it's understandable
7287         * sources/rb-library-source.c: (rb_library_source_class_init),
7288         (impl_paste): rather than hard-coding the types to ignore, use
7289         rb_source_can_copy.
7291 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7293         * sources/rb-library-source.c:
7294         (rb_library_source_preferences_sync):
7295         Don't crash if no audio profile is selected and the gconf schemas are 
7296         not installed.
7298 2006-03-31  James Livingston  <doclivingston@gmail.com>
7300         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7301         "*" which caused compilation to fail
7303 2006-03-31  James Livingston  <doclivingston@gmail.com>
7305         * configure.ac:
7306         * Makefile.am:
7307         * backends/Makefile.am:
7308         * backends/gstreamer/Makefile.am:
7309         * backends/gstreamer/rb-encoder-gst.c:
7310         * backends/gstreamer/rb-encoder-gst.h:
7311         * backends/rb-encoder.c:
7312         * backends/rb-encoder.h: add a interface for transcoding, and a
7313         GStreamer implementation of it (based on Sound-Juicer's code).
7315         * shell/Makefile.am:
7316         * shell/rb-removable-media-manager.c:
7317         (rb_removable_media_manager_class_init),
7318         (rb_removable_media_manager_init),
7319         (rb_removable_media_manager_dispose),
7320         (rb_removable_media_manager_finalize),
7321         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7322         (progress_cb), (completed_cb), (do_transfer),
7323         (rb_removable_media_manager_queue_transfer), (copy_entry),
7324         (rb_removable_media_manager_cmd_copy_tracks):
7325         * shell/rb-removable-media-manager.h: use the encoder interface to
7326         perform transfers of entries to other locations
7328         * shell/rb-shell-player.c: (open_location_thread):
7329         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7330         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7331         (rb_shell_quit):
7332         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7333         progress in the status bar.
7335         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7336         (rb_shell_preferences_sync),
7337         (rb_shell_preferences_browser_views_activated_cb):
7338         * data/glade/general-prefs.glade: move the browser views setting from
7339         the library tab to the general one.
7341         * data/glade/library-prefs.glade: add settings for the layout of the
7342         user's library, and their preferred encoding format (e.g. for CD
7343         ripping).
7345         * lib/rb-preferences.h:
7346         * data/rhythmbox.schemas: add keys for the above options (and a few
7347         other minor ones)
7349         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7350         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7351         entry, that isn't inserted into the database.
7353         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7354         (rb_audiocd_create_track_entry):
7355         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7356         cds, and set the mime-type of audio cd tracks correctly.
7358         * sources/rb-library-source.c: (rb_library_source_class_init),
7359         (rb_library_source_finalize),
7360         (rb_library_source_edit_profile_clicked_cb),
7361         (impl_get_config_widget), (rb_library_source_preferences_sync),
7362         (impl_receive_drag), (rb_library_source_path_changed_cb),
7363         (rb_library_source_filename_changed_cb),
7364         (rb_library_source_format_changed_cb), (sanitize_path),
7365         (filepath_parse_pattern), (layout_example_label_update),
7366         (rb_library_source_layout_path_changed),
7367         (rb_library_source_layout_filename_changed), (build_filename),
7368         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7369         entries to the library. Large chunks of code for determining the
7370         destination file name stolen from Sound-Juicer.
7372         * sources/rb-sourcelist-model.c: (path_is_droppable):
7373         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7374         * sources/rb-static-playlist-source.c:
7375         (rb_static_playlist_source_class_init):
7376         * sources/rb-removable-media-source.c:
7377         (rb_removable_media_source_class_init):
7378         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7379         (rb_source_can_paste):
7380         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7381         than _can_copy) to determine whether we can paste into the source.
7384 2006-03-31  Steve Frécinaux  <steve@istique.net>
7386         * plugins/rb-python-module.c: allow import of python modules with a '.'
7387         (gedit's bug 336403). Patch by Johan Dahlin.
7389 2006-03-31  James Livingston  <doclivingston@gmail.com>
7391         * sources/rb-library-source.c: 
7392         * sources/rb-library-source.h:
7393         * sources/rb-browser-source.c:
7394         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7395         RBBrowserSource now contains all the stuff for having a source which
7396         views a particular entry type (including browsers and searching).
7397         RBLibrarySource derives from this, and includes the library-specific
7398         stuff, like importing and library watching. Fixes some issues where
7399         library-derived sources were doing things that should be
7400         library-specific. Fixes bug 335185.
7402         * data/ui/rhythmbox-ui.xml:
7403         * sources/Makefile.am: modifications for the above
7405         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7406         (rb_daap_source_get_paned_key):
7407         * sources/rb-daap-source.h:
7408         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7409         * sources/rb-removable-media-source.c:
7410         (rb_removable_media_source_class_init):
7411         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7412         instead of RBLibrarySource.
7414 2006-03-31  James Livingston  <doclivingston@gmail.com>
7416         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7417         I buggered up when changing from GnomeVFSFileSize.
7419 2006-03-30  James Livingston  <doclivingston@gmail.com>
7421         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7422         for "-Wno-error".
7424         * bindings/python/rb.override:
7425         * bindings/python/Makefile.am: make the RB python bindings depend on
7426         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7427         code sometimes emits warnings.
7429         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7430         (rb_shell_player_error_get_type):
7431         * shell/rb-shell-player.h:
7432         * bindings/python/rb.defs: add bindings for RBShellPlayer
7434         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7435         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7436         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7437         * rhythmdb/rhythmdb.h:
7438         * shell/rb-shell.c: (rb_shell_get_song_properties):
7439         * widgets/rb-entry-view.c: (propid_from_name):
7440         * widgets/rb-property-view.c: (rb_property_view_class_init):
7441         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7442         than just plain GPtrArray, and add bindings for it.
7444         * bindings/python/rhythmdb.override: wrap some functions that use
7445         GValues
7447 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7449         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7450         Only watch directories from which entries of type SONG have been
7451         added.
7453 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7455         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7456         No need to restore the selection after rebuilding the child model,
7457         since that can't have changed the selection.
7459 2006-03-29  James Livingston  <doclivingston@gmail.com>
7461         * bindings/python/override_common.c:
7462         * bindings/python/override_common.h: add some for missing files to
7463         cvs.
7465 2006-03-29  James Livingston  <doclivingston@gmail.com>
7467         * configure.ac:
7468         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7469         copied from gedit's autofoo and we don't need it
7471         * bindings/python/rhythmdb.defs:
7472         * bindings/python/rhythmdb.override: add missing files to cvs
7474 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7476         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7477         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7478         before running any of the debug/test modes.
7479         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7480         Make plugin loading work when running uninstalled from the shell/
7481         directory.
7483 2006-03-29  James Livingston  <doclivingston@gmail.com>
7485         * rhythmdb/rhythmdb-property-model.c:
7486         (rhythmdb_property_model_sync),
7487         (rhythmdb_property_model_column_get_type):
7488         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7490         * rhythmdb/rhythmdb-private.h:
7491         * rhythmdb/rhythmdb-query-model.c:
7492         (rhythmdb_query_model_class_init):
7493         * rhythmdb/rhythmdb-query-model.h:
7494         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7495         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7496         (rhythmdb_entry_get_type):
7497         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7499         * widgets/rb-query-creator-properties.c:
7500         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7501         was missing.
7503         * bindings/python/Makefile.am:
7504         * bindings/python/rb.defs:
7505         * bindings/python/rb.override:
7506         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7507         Python bindings for RhythmDB.
7509 2006-03-29  James Livingston  <doclivingston@gmail.com>
7511         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7512         sharing when using --no-registration
7514 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7516         * rhythmdb/rhythmdb-query-model.c:
7517         (rhythmdb_query_model_reapply_query):
7518         Don't remove entries while iterating, as it breaks the sequence
7519         nodes.  Instead, collect a list of removed entries and process it
7520         after iterating the sequence.  Fixes #334642.
7522 2006-03-29  James Livingston  <doclivingston@gmail.com>
7524         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7525         (row_activated_cb), (plugin_manager_toggle_all):
7526         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7527         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7528         (button_press_cb), (source_name_edited_cb):
7529         * widgets/rb-property-view.c: (rb_property_view_set_property),
7530         (rb_property_view_post_row_deleted_cb),
7531         (rb_property_view_row_activated_cb),
7532         (rb_property_view_selection_changed_cb),
7533         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7534         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7536 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7538         * rhythmdb/rhythmdb-query-model.c:
7539         (rhythmdb_query_model_drag_data_received):
7540         Increment the reference count for entries added by drag and drop.
7541         Fixes #336045.
7543 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7545         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7546         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7547         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7549 2006-03-27  James Livingston  <doclivingston@gmail.com>
7551         * shell/rb-shell.c: (rb_shell_constructor),
7552         (rb_shell_sync_window_state): fix a maximise-realise race that would
7553         cause some widgets to be resized after we had explicity set theri
7554         size. Hopefully fixes bug 331927.
7556 2006-03-27  James Livingston  <doclivingston@gmail.com>
7558         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7559         (row_activated_cb), (plugin_manager_set_active),
7560         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7561         configure button sensitivity when a plugin is enabled/disabled.
7563 2006-03-27  James Livingston  <doclivingston@gmail.com>
7565         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7566         stop warnings, only the vbos is used anyway
7568         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7569         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7570         collection every now an then.
7572         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7573         if we are finalising because the python object couldn't be created.
7575         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7576         NULL if the python-side object couldn't be created. Stops crashes when
7577         the object is later used when it doesn't exist in Python.
7579         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7580         (rb_python_shutdown): do better garbage collection when shutting down.
7581         Fixes the problem where Python was holding a reference to the shell,
7582         causing RB not to exit.
7584 2006-03-27  James Livingston  <doclivingston@gmail.com>
7586         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7587         336131.
7589 2006-03-27  James Livingston  <doclivingston@gmail.com>
7591         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7592         From bug 334829.
7594 2006-03-26  James Livingston  <doclivingston@gmail.com>
7596         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7597         library location list to NULL after we free it. Fixes bug 336047.
7599 2006-03-26  James Livingston  <doclivingston@gmail.com>
7601         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7603         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7604         supplies. Fixes bug 335947.
7606 2006-03-25  James Livingston  <doclivingston@gmail.com>
7608         * data/glade/audioscrobbler-prefs.glade:
7609         * shell/rb-audioscrobbler.c:
7610         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7611         "submit songs" checkbox, and make it not disable username/password
7612         entry. This will be needed when we support other last.fm stuff
7613         (profile access, radio, etc).
7615 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7617         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7618         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7619         335777.
7621 2006-03-24  James Livingston  <doclivingston@gmail.com>
7623         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7624         (rb_shell_player_sync_play_order),
7625         (rb_shell_player_play_order_update_cb),
7626         (actually_set_playing_source): update the next/previous availablility
7627         in places where it was missing. Fixes bug 335490.
7629 2006-03-24  James Livingston  <doclivingston@gmail.com>
7631         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7632         can't find the widget
7634         * lib/rb-util.c: (rb_uri_list_parse):
7635         * lib/rb-util.h: add function for parsing a URI list into strings.
7637         * metadata/Makefile.am: make the metdata helper build when linking
7638         with --as-needed
7640         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7641         g_mkdir_with_parents instead of coding our own.
7643         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7644         <itunes:author> over <generator>, instead of using whichever comes
7645         last.
7647         * rhythmdb/rhythmdb-private.h:
7648         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7649         field, as we don't ever check it (to detect corruption). Saves a bit
7650         of memory.
7652 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7654         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7655         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7656         Escape '&' and '=' in the paths we get back from
7657         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7659 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7661         * shell/rb-shell.c: (rb_shell_constructor):
7662         Issue startup notification after creating the main window, so
7663         notification is issued whether the window is visible or not.
7664         Fixes #335086.
7666 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7668         * sources/rb-auto-playlist-source.c: (impl_search),
7669         (rb_auto_playlist_source_query_complete_cb),
7670         (rb_auto_playlist_source_do_query):
7671         * sources/rb-library-source.c: (impl_search),
7672         (rb_library_source_query_complete_cb),
7673         (rb_library_source_do_query):
7674         Defer subset searches (where text is appended to an existing search)
7675         until the original query is complete.
7677 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7679         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7681         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7682         (rb_refstring_get_sort_key): fixes for strict-aliasing
7684 2006-03-21  James Livingston  <jrl@ids.org.au>
7686         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7687         importing a single file. Fixes bug 335307.
7689 2006-03-21  James Livingston  <jrl@ids.org.au>
7691         * shell/Makefile.am: remove the reference to backends/ that I
7692         accidently included.
7694 2006-03-21  James Livingston  <jrl@ids.org.au>
7696         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7697         with Forte (on Solaris). Closes bug 335318.
7699         * configure.ac:
7700         * lib/Makefile.am:
7701         * player/rb-recorder-gst.c:
7702         * podcast/rb-podcast-parse.c:
7703         * remote/bonobo/Makefile.am:
7704         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7705         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7706         (rhythmdb_query_model_add_entry),
7707         (rhythmdb_query_model_add_results):
7708         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7709         * rhythmdb/rhythmdb.h:
7710         * shell/Makefile.am:
7711         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7712         (update_speed_combobox):
7713         * sources/rb-sourcelist-model.c:
7715 2006-03-21  James Livingston  <jrl@ids.org.au>
7717         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7719         * player/Makefile.am:
7720         * shell/Makefile.am: work correctly with a separate build root.
7722 2006-03-21  James Livingston  <jrl@ids.org.au>
7724         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7725         get handed NULL.
7727 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7729         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7730         Only create ignore entries when importing into the library.  
7731         Ignore entries for files in removable media sources don't help.
7733 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7735         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7736         * shell/rb-source-header.h:
7737         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7738         * widgets/rb-search-entry.h:
7739         Add functions to make the search box grab focus.
7741         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7742         Focus the search box after handling the 'view all' action.
7744 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7746         * rhythmdb/rhythmdb.h:
7747         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7748         (rhythmdb_execute_multi_stat_info_cb),
7749         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7750         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7751         (action_thread_main):
7752         Collect all the get_file_info requests on startup into one gnome-vfs
7753         job to reduce overhead and avoid contention for the rhythmdb lock.
7754         Add a new method to call when all initial query models are set up.
7755         
7756         * shell/rb-shell.c: (idle_handle_load_complete):
7757         Call rhythmdb startup complete function when we've loaded all the
7758         playlists.  Fixes #334106.
7760 2006-03-20  James Livingston  <jrl@ids.org.au>
7762         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7763         (rb_entry_view_selection_changed_cb),
7764         (rb_entry_view_have_complete_selection): make has_complete_selection
7765         not slow. Fixes a performance issue I added a week or so ago.
7767 2006-03-20  James Livingston  <jrl@ids.org.au>
7769         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7770         before passing to strcmp. From bug 334559.
7772 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7774         * configure.ac:
7775         * lib/Makefile.am:
7776         * lib/rb-proxy-config.c:
7777         * lib/rb-proxy-config.h:
7778         Add a new object to watch the HTTP proxy configuration and emit
7779         signals when it changes.
7781         * shell/rb-audioscrobbler.c:
7782         * shell/rb-audioscrobbler.h:
7783         Use rb-proxy-config to watch HTTP proxy configuration.
7785         * shell/rb-shell.c:
7786         Construct rb-proxy-config object on startup, and remove all
7787         audioscrobbler references.
7789         * shell/Makefile.am:
7790         * plugins/audioscrobbler/Makefile.am:
7791         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7792         Move all audioscrobbler code into the plugin.  We should move
7793         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7794         point.  Don't use a private data structure in the plugin, since the
7795         class definition isn't in a header file.  Fixes #335091.
7797 2006-03-20  James Livingston  <jrl@ids.org.au>
7799         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7800         don't enable Next if the source has an EOS type other than
7801         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7803 2006-03-20  James Livingston  <jrl@ids.org.au>
7805         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7806         (rb_song_info_forward_clicked_cb): deal with there being no
7807         next/previous entry.
7809         (rb_song_info_query_model_inserted_cb),
7810         (rb_song_info_query_model_deleted_cb),
7811         (rb_song_info_query_model_reordered_cb),
7812         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7813         to update the button status. Fixes bug 333293.
7815 2006-03-20  James Livingston  <jrl@ids.org.au>
7817         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7818         caused by my last commit
7820 2006-03-20  James Livingston  <jrl@ids.org.au>
7822         * bindings/python/Makefile.am:
7823         * bindings/python/rb.defs:
7824         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7826         * shell/rb-shell.c: (rb_shell_constructor),
7827         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7828         tray-icon detection slightly
7830 2006-03-19  Steve Frécinaux  <steve@istique.net>
7832         * data/ui/rhythmbox-ui.xml:
7833         * shell/rb-shell.c:
7835         Add an empty Tool Menu (hidden by default) containing placeholders for
7836         plugins.
7838         * configure.ac:
7839         * plugins/Makefile.am:
7840         * plugins/pythonconsole/Makefile.am:
7841         * plugins/pythonconsole/pythonconsole.py:
7842         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7843         
7844         Python Console plugin
7846 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7848         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7849         Extra step to encode '&' and '=' to match what gnome-vfs does
7850         internally.
7851         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7852         (rhythmdb_tree_save):
7853         Increment rhythmdb xml version to 1.2, and force another uri
7854         re-canonicalisation when loading v1.1 databases.
7855         Fixes bug #333998.
7857 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7859         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7860         (avahi_client_init), (browse_cb):
7861         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7862         (avahi_client_init):
7863         Fix compilation with Avahi 0.5.x (bug #334551).
7865 2006-03-19  James Livingston  <jrl@ids.org.au>
7867         Add Increase/Decrease Volume menu items and keybindings. From bug
7868         123383.
7870         * data/ui/rhythmbox-ui.xml:
7871         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7872         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7873         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7875 2006-03-19  James Livingston  <jrl@ids.org.au>
7877         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7879         * shell/Makefile.am: fix the link order, so that we compile with
7880         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7882 2006-03-19  James Livingston  <jrl@ids.org.au>
7884         patch by: Adam Petaccia  <adam@tpetaccia.com>
7886         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7887         plugins". Fixes bug 335037.
7889 2006-03-18  James Livingston  <jrl@ids.org.au>
7891         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7892         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7893         332992.
7895         * widgets/rb-header.c: don't make artist/album info in the header the
7896         small size, since it's hard to read.
7898 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7900         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7901         (rhythmdb_finalize): Don't leak the hash tables.
7902         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7903         (rhythmdb_commit_internal): Make sure to process the deletions.
7904         (rhythmdb_entry_delete): Use a hash.
7906         * podcast/rb-podcast-manager.c: Random analness about char*
7907         (rb_podcast_manager_remove_feed): Add debugging.
7908         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7909         the result of gnome_vfs_unlink.  Don't leak a uri.
7911         Fixes #334786
7913 2006-03-18  James Livingston  <jrl@ids.org.au>
7915         * NEWS: update NEWS file
7917 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7919         * rhythmdb/rhythmdb-property-model.c:
7920         (rhythmdb_property_model_prop_changed_cb):
7921         Remove entries from the hash table after processing visible->hidden
7922         changes.
7924 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7926         * sources/rb-daap-source.c (connection_connected_cb) 
7927         (connection_disconnected_cb): Add debug.
7928         (rb_daap_source_get_headers): Check for NULL connection.
7930         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7931         Check return value of rb_daap_source_get_headers.
7933         Fixes #332089
7935 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7937         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7938         Restore the selection after rebuilding the child model, so the
7939         selection is shown correctly after using the 'browse this
7940         album/artist/genre' menu items.
7942 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7944         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7945         Clear the selection before changing the active model.
7946         Fixes crash reported in bug 334549.
7948 2006-03-15  James Livingston  <jrl@ids.org.au>
7950         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7951         (rb_tray_icon_sync_action):
7952         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7953         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7954         for non-libnotify notification bubbles. Fixes bug 331721.
7956 2006-03-15  James Livingston  <jrl@ids.org.au>
7958         Add search-bar options to playlists. Fixes bug 334407.
7960         * sources/rb-auto-playlist-source.c:
7961         (rb_auto_playlist_source_class_init),
7962         (rb_auto_playlist_source_constructor),
7963         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7964         (search_action_to_prop), (search_action_changed):
7965         * sources/rb-static-playlist-source.c:
7966         (rb_static_playlist_source_class_init),
7967         (rb_static_playlist_source_constructor),
7968         (construct_query_from_selection), (impl_get_search_actions),
7969         (search_action_to_prop), (search_action_changed):
7971 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7973         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7974         Remove broken attempt at making the search bar buttons not
7975         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7977 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7979         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7980         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7982 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7984         * widgets/rb-header.c (rb_header_sync): Escape album and
7985         artist before adding to markup.
7987 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7989         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7990         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7991         (rb_header_set_property), (rb_header_get_property),
7992         (rb_header_sync):
7993         Remove the GnomeUrl song links until we can do it properly.
7994         Fixes #334453.
7996 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7998         * shell/rb-source-header.c: (rb_source_header_clear_search):
7999         Remove the stored search text from the hash table, so it doesn't
8000         reappear after switching to another source and back.
8002         * sources/rb-auto-playlist-source.c: (impl_search):
8003         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8004         * sources/rb-static-playlist-source.c: (impl_search):
8005         Make sure all sources treat impl_search(NULL) and impl_search("") the
8006         same.  Fixes #334525.
8008 2006-03-14  James Livingston  <jrl@ids.org.au>
8010         Store which thread created new entries, and make rhythmdb_commit only
8011         insert the entries for the thread that calls it. This stops one thread
8012         calling rhythmdb_commit inserting entries that are half-way through
8013         construction by another thread (as happens with audio cds). From bug
8014         330226.
8016         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8017         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8018         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8019         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8020         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8021         (rhythmdb_process_metadata_load),
8022         (rhythmdb_process_queued_entry_set_event),
8023         (rhythmdb_prop_get_type):
8025 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8027         * rhythmdb/rhythmdb-query-model.c:
8028         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8029         (rhythmdb_query_model_finalize):
8030         Move object unrefs from _finalize into _dispose.
8031         
8032         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8033         Remove extra g_object_ref that was causing query model leaks.
8034         
8035         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8036         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8037         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8038         Remove the cached 'all' query, since it doesn't really help and it
8039         makes the code more complicated.  Attach the genre property view to
8040         the query model build from the search text, so only genres for
8041         stations matching the search terms are displayed.  Preserve the genre
8042         selection across searches.
8044         * widgets/rb-library-browser.c: 
8045         (rb_library_browser_class_init), (rb_library_browser_get_property):
8046         Add properties for the input and output models for the browser, and
8047         remove the 'changed' signal as we can just use notify::output-model.
8048         (ignore_selection_changes),
8049         (selection_restore_data_destroy), (query_complete_cb),
8050         (restore_selection): Helper functions for preserving selections across
8051         query model rebuilds.
8052         (rebuild_output_model):  New function for creating a query model to
8053         use as the display model for a source using the browser.
8054         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8055         g_object_unrefs, reuse the parent's query model when there's no
8056         selection, and use ignore_selection_changes and restore_selection.
8057         (rb_library_browser_set_selection): rebuild_child_model emits the
8058         changed signal, so no need to do it here.
8059         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8060         ignore_selection_changes and restore_selection. 
8061         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8062         flag to rb_library_browser_set_model indicating whether the query is
8063         asynchronous.
8065         * sources/rb-static-playlist-source.c:
8066         (rb_static_playlist_source_class_init),
8067         (rb_static_playlist_source_dispose):
8068         (rb_static_playlist_source_constructor):  Add an extra reference on
8069         the base model, so it doesn't vanish when we set a new display model
8070         based on a search or browser selection.
8071         (impl_search): Ensure the search_text field in the source is NULL if
8072         the search box is empty.
8073         (construct_query_from_selection),
8074         (rb_static_playlist_source_do_query): Use the query model constructed
8075         from the search as the input model for the browser.
8076         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8077         output model as the query model for the source.
8079         * sources/rb-auto-playlist-source.c:
8080         (rb_auto_playlist_source_finalize): Free more stuff.
8081         (rb_auto_playlist_source_constructor),
8082         (rb_auto_playlist_source_browser_changed_cb):
8083         Update for rb-library-browser changes, use the browser's output query
8084         model as the query model for the source.
8085         (impl_reset_filters), (impl_search), 
8086         (rb_auto_playlist_source_do_query),
8087         (rb_auto_playlist_source_set_query):
8088         Use the query model constructed from the search text as the input to
8089         the library browser, and when adding text to an existing search, apply
8090         the new query to the existing query model.
8091         
8092         * sources/rb-library-source.c: (rb_library_source_dispose):
8093         (rb_library_source_finalize): Chain dispose up to the parent class.
8094         (rb_library_source_constructor): Update for rb-library-browser
8095         changes. 
8096         (impl_search): Ensure search_text is NULL if the search box is empty,
8097         and use the subset flag to _do_query if text has been appended to an
8098         existing search.
8099         (search_action_changed), (impl_reset_filters):
8100         (rb_library_source_browser_changed_cb),
8101         (rb_library_source_do_query): Use the browser's output model as the
8102         query model for the source.
8104         Rework library and playlist sources to use a single query chain,
8105         and to limit the entries shown in property views based on the search
8106         terms.  Fixes bug #322787.
8108 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8110         * configure.ac:  Enable metadata helper by default, and fix a typo.
8112 2006-03-13  James Livingston  <jrl@ids.org.au>
8114         Make RBRefStrings lazily create the folded and sort-key strings when
8115         they are first used. This will same some memory by not creating ones
8116         that are never used, and delaying some of the others to when the user
8117         resorts or performs a similar action. Fixes bug 332992.
8119         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8120         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8121         (rb_refstring_get), (rb_refstring_get_folded),
8122         (rb_refstring_get_sort_key), (rb_refstring_hash),
8123         (rb_refstring_equal):
8124         * rhythmdb/rb-refstring.h:
8125         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8127 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8129         * data/ui/rhythmbox-ui.xml:
8130         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8131         * lib/rb-stock-icons.h:
8132         * shell/rb-shell-player.c:
8133         * shell/rb-shell.c: (rb_shell_constructor):
8134         * shell/rb-source-header.c: (force_no_shadow),
8135         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8136         (rb_source_header_class_init), (rb_source_header_init),
8137         (merge_source_ui_cb), (toolbar_set_homogeneous),
8138         (rb_source_header_set_source_internal),
8139         (rb_source_header_set_property), (rb_source_header_get_property),
8140         (rb_source_header_set_source), (rb_source_header_new),
8141         (rb_source_header_filter_changed_cb):
8142         * shell/rb-source-header.h:
8143         * sources/rb-library-source.c: (rb_library_source_class_init),
8144         (rb_library_source_init), (search_action_to_prop),
8145         (search_action_changed), (rb_library_source_constructor),
8146         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8147         (construct_query_from_selection):
8148         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8149         (rb_podcast_source_init), (search_action_to_prop),
8150         (search_action_changed), (rb_podcast_source_constructor),
8151         (construct_query_from_selection), (impl_get_ui_actions),
8152         (impl_get_search_actions):
8153         * sources/rb-source.c: (rb_source_class_init),
8154         (rb_source_get_ui_actions), (default_get_search_actions),
8155         (rb_source_get_search_actions):
8156         * sources/rb-source.h:
8158         Add a search bar.  Fixes #328618
8160 2006-03-12  James Livingston  <jrl@ids.org.au>
8162         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8163         * shell/main.c: (main): make --no-update not stat files checking for
8164         changes, instead of doing nothing. Fixes bug 125177.
8166 2006-03-12  James Livingston  <jrl@ids.org.au>
8168         * podcast/rb-podcast-manager.c:
8169         (rb_podcast_manager_thread_parse_feed):
8170         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8171         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8172         having an invalid mime-type. Fixed bug 329813.
8174 2006-03-12  James Livingston  <jrl@ids.org.au>
8176         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8177         Finally lets us close bug 309609.
8179         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8180         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8181         0.10
8183         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8184         inverted logic of the editable check.
8186 2006-03-12  James Livingston  <jrl@ids.org.au>
8188         Make API doc generation work again. Fixes bug 334276.
8190         * doc/reference/Makefile.am:
8191         * doc/reference/tmpl/rb-debug.sgml:
8192         * doc/reference/tmpl/rb-druid.sgml:
8193         * doc/reference/tmpl/rb-entry-view.sgml:
8194         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8195         * doc/reference/tmpl/rb-metadata.sgml:
8196         * doc/reference/tmpl/rb-shell.sgml:
8197         * doc/reference/tmpl/rhythmbox-unused.sgml:
8198         * doc/reference/tmpl/rhythmdb.sgml:
8200 2006-03-12  James Livingston  <jrl@ids.org.au>
8202         * shell/rb-shell-clipboard.c:
8203         (rb_shell_clipboard_set_source_internal),
8204         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8205         it doesn't have one. Fixes bug 331673.
8207         * sources/rb-source.c: (rb_source_class_init): provide a default
8208         have_url implementation that returns FALSE.
8210 2006-03-12  James Livingston  <jrl@ids.org.au>
8212         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8213         doing a distclean. Fixes bug 334221.
8216         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8218         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8220 2006-03-11  James Livingston  <jrl@ids.org.au>
8222         * shell/rb-shell.c: (rb_shell_window_state_cb),
8223         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8224         update the window width/height when iconified. Stops the window
8225         changing size when it is restored from the tray, fixing bug 333824. 
8227 2006-03-11  James Livingston  <jrl@ids.org.au>
8229         Try to get cvs to actually add the necessary files for plugin support
8231 2006-03-11  James Livingston  <jrl@ids.org.au>
8233         Add a plugin framework, with basic support for Python plugins (based
8234         on gedit's). Closes bug 330523.
8236         * Makefile.am:
8237         * shell/Makefile.am:
8238         * configure.ac: necessary autofoo.
8240         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8242         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8243         * lib/rb-file-helpers.h:
8245         * data/glade/plugins/glade:
8246         * lib/rb-preferences.h:
8247         * plugins/*:
8248         * bindings/*: plugin framework
8250         * plugins/sample/*:
8251         * plugins/sample-python/*: sample plugins
8253         * plugins/audioscrobbler/*:
8254         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8255         (rb_audioscrobbler_set_property),
8256         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8257         submission into a plugin. shell/audioscrobbler.* should really be
8258         moved, but that sucks with cvs.
8260         * shell/rb-shell.h:
8261         * shell/rb-shell.c: (rb_shell_constructor),
8262         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8263         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8264         (rb_shell_quit): start and stop plugin framework.
8266 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8268         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8269         (rhythmdb_entry_delete):
8270         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8271         immediately, so we can't get change notifications afterwards.  
8272         Fixes #331732.
8273         (rhythmdb_process_metadata_load): Add a commit after removing an
8274         entry so we can recreate it with a different type without getting
8275         confused.
8277 2006-03-11  James Livingston  <jrl@ids.org.au>
8279         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8280         use the drive name for audio CDs, use "Unknown CD".
8282 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8284         patch by:  James Henstridge  <james@jamesh.id.au>
8286         * sources/rb-removable-media-source.c:
8287         (rb_removable_media_source_constructor):
8288         Get the device name from the GnomeVFSDrive if possible,
8289         since this is usually a more descriptive name.  Fixes #333080.
8291 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8293         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8295         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8296         Don't automatically download episodes when configured for manual
8297         updating.  Fixes #331564.
8299 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8301         * rhythmdb/rhythmdb-property-model.c:
8302         (rhythmdb_property_model_iter_from_string):
8303         Return an iterator for the 'all' property when name == NULL,
8304         and don't write to *iter if iter == NULL.
8306 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8308         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8309         When switching to the play queue, still call _go_next on the normal
8310         play order, so self-emptying auto playlists ("play count = 0" etc.)
8311         don't restart once the queue is empty.
8313         * shell/rb-tray-icon.c:
8314         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8315         with 'next'.
8317 2006-03-05  James Livingston  <jrl@ids.org.au>
8319         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8320         don't submit tracks which could not be played. Fixed bug 333013.
8322         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8323         tracks which could not be played.
8325 2006-03-05  James Livingston  <jrl@ids.org.au>
8327         Sync musicbrainz lookup code from Sound-Juicer cvs.
8329         * metadata/sj-metadata-musicbrainz.c:
8330         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8331         (get_offline_track_listing), (artist_and_title_from_title),
8332         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8333         (mb_list_albums), (mb_get_submit_url):
8334         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8335         * metadata/sj-metadata.h:
8336         * metadata/sj-structures.c: (track_details_free),
8337         (album_details_free):
8338         * metadata/sj-structures.h:
8340 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8342         * lib/rb-debug.h:
8343         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8344         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8345         (rb_profiler_reset), (rb_profiler_free):
8346         Filter debug output by matching the file and function names against a
8347         match string.
8349         * shell/main.c: (main):
8350         Add -D command line option to specify the debug match string.
8352         * shell/rb-removable-media-manager.c:
8353         (rb_removable_media_manager_mount_volume):
8354         Fix some typos in debug output.
8356 2006-03-03  James Livingston  <jrl@ids.org.au>
8358         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8359         * shell/rb-shell.c: (rb_shell_load_uri):
8360         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8361         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8362         use the new "recurse" property from totem-plparser, if present. Stop
8363         RB hanging for new users who don't have a 'net connection. From bug
8364         331508.
8366 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8368         * shell/rb-removable-media-manager.c:
8369         (rb_removable_media_manager_mount_volume):
8370         * sources/Makefile.am:
8371         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8372         Fix missing files on make dist (conditional files), only build the
8373         N770 support if there's HAL support, as we have no other ways of
8374         detecting it
8376 2006-03-03  James Livingston  <jrl@ids.org.au>
8378         * shell/rb-shell-clipboard.c:
8379         (rb_shell_clipboard_set_source_internal): really fix it this time.
8380         hopefully.
8382 2006-03-03  James Livingston  <jrl@ids.org.au>
8384         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8385         with the idle function not being removed.
8387 2006-03-02  James Livingston  <jrl@ids.org.au>
8389         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8390         * widgets/rb-entry-view.h: add function for determining whether all
8391         entries are selected.
8393         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8394         (rb_shell_clipboard_set_source_internal),
8395         (rb_shell_clipboard_finalize),
8396         (rb_shell_clipboard_idle_poll_deletions),
8397         (rb_shell_clipboard_entryview_changed_cb),
8398         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8399         removals, to update things.
8401         (rb_shell_clipboard_sync): update the Select All and Select None
8402         sensitivity, based on what is selected. Fixed bug 172220.
8404 2006-03-02  James Livingston  <jrl@ids.org.au>
8406         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8407         restore the selections of later models. This means that selecting the
8408         artist for the selected album does not reset the album selection.
8410 2006-03-02  James Livingston  <jrl@ids.org.au>
8412         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8413         Stops it emitting critical warnings.
8415 2006-03-02  James Livingston  <jrl@ids.org.au>
8417         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8418         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8419         second fragment is already escaped.
8421         * sources/rb-generic-player-source.c:
8422         (rb_generic_player_source_class_init),
8423         (rb_generic_player_source_constructor), (impl_show_popup),
8424         (rb_generic_player_source_load_playlists),
8425         (rb_generic_player_source_transform_playlist_uri),
8426         (handle_playlist_entry_cb), (visit_playlist_dirs),
8427         (default_load_playlists), (default_transform_playlist_uri):
8428         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8429         the device. Allow subclasses to override the playlist loading, and
8430         (playlist uri)->(actual uri) mapping. A lot of devices which have
8431         playlists won't work right now, but people will see them and hopefully
8432         file bugs.
8434         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8435         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8436         
8437         * sources/Makefile.am:
8438         + sources/rb-nokia770-source.{c,h}:
8439         * shell/rb-removable-media-manager.c:
8440         (rb_removable_media_manager_mount_volume): Add support for reading
8441         playlists of Nokia 770s.
8443 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8445         * data/glade/podcast-properties.glade:
8446         * podcast/rb-podcast-properties-dialog.c:
8447         (rb_podcast_properties_dialog_init),
8448         (rb_podcast_properties_dialog_update),
8449         (rb_podcast_properties_dialog_update_location),
8450         (rb_podcast_properties_dialog_update_download_location):
8451         Add 'download location' field showing the path to the downloaded copy.
8452         Fixes #330696.
8454 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8456         * configure.ac: simplify HAVE_HAL define
8458 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8460         * configure.ac:
8461         * lib/rb-file-helpers.c: (rb_uri_append_path):
8462         * lib/rb-file-helpers.h:
8463         * shell/rb-removable-media-manager.c:
8464         (rb_removable_media_manager_mount_volume):
8465         * sources/Makefile.am:
8466         * sources/rb-ipod-source.c:
8467         * sources/rb-psp-source.*:
8468         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8469         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8471 2006-03-02  James Livingston  <jrl@ids.org.au>
8473         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8474         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8475         (swap_playing_source), (rb_shell_player_playpause),
8476         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8477         (rb_shell_player_set_playing_source_internal): check for the entry
8478         view being NULL before trying to use it. Lets us support sources which
8479         don't have an entry view. From bug 331673.
8481 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8483         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8484         use gnome_vfs_read_entire_file with a URI, not a local filename
8486 2006-03-01  James Livingston  <jrl@ids.org.au>
8488         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8489         first-seen and last-seen when merging duplicate entries.
8491 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8493         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8494         * widgets/rb-property-view.h:  New function, allowing custom 
8495         interactive search functions for property views.
8496         
8497         * sources/rb-podcast-source.c: 
8498         (feed_select_change_cb): Only do a new query when the selection
8499         actually changes.
8500         (rb_podcast_source_constructor),
8501         (rb_podcast_source_feed_title_search_func):
8502         Interactive search function for podcast feed titles.  Fixes #327451.
8504 2006-03-01  James Livingston  <jrl@ids.org.au>
8506         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8507         the uri in the callback, since it causes symbols to not be escaped.
8508         Fixes bug 332976.
8510         * data/ui/rhythmbox-ui.xml:
8511         * sources/rb-import-errors-source.c:
8512         (rb_import_errors_source_class_init),
8513         (rb_import_errors_source_constructor), (impl_get_status),
8514         (impl_move_to_trash),
8515         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8516         import errors source
8517         
8518         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8519         (rb_entry_view_append_column): unescape the URI for display.
8521 2006-03-01  James Livingston  <jrl@ids.org.au>
8523         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8524         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8525         function fails.
8527 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8529         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8530         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8531         * sources/rb-play-queue-source.c:
8532         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8533         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8534         of "Queued Songs".
8536         Fixes #331637.
8538 2006-03-01  James Livingston  <jrl@ids.org.au>
8540         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8541         Fixes bug 332913.
8543 2006-03-01  James Livingston  <jrl@ids.org.au>
8545         * daapsharing/rb-daap-mdns-browser-howl.c:
8546         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8547         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8548         (rb_daap_mdns_publisher_class_init),
8549         (rb_daap_mdns_publisher_finalize):
8550         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8551         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8552         (rb_recorder_finalize):
8553         * rhythmdb/rhythmdb-query-model.c:
8554         (rhythmdb_query_model_constructor):
8555         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8556         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8557         * sources/rb-playlist-source-recorder.c:
8558         (rb_playlist_source_recorder_style_set),
8559         (rb_playlist_source_recorder_class_init),
8560         (rb_playlist_source_recorder_finalize):
8561         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8562         other classes in the same way, so they don't break when derived from.
8564 2006-03-01  James Livingston  <jrl@ids.org.au>
8566         * sources/rb-generic-player-source.c:
8567         (rb_generic_player_source_constructor): don't get the parent class in
8568         a dumb way, and it breaks when the class is derived from.
8570 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8572         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8574 2006-03-01  James Livingston  <jrl@ids.org.au>
8576         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8577         not work in glib 2.8 systems.
8579 2006-03-01  James Livingston  <jrl@ids.org.au>
8581         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8582         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8583         say it is crap.
8585         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8586         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8587         podcasts on ion-local places
8589         * rhythmdb/gsequence.c: (g_sequence_node_new),
8590         (g_sequence_node_free): use gslice if we are building against glib
8591         2.10.
8593         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8594         local files too, so it doesn't block.
8596 2006-02-28  James Livingston  <jrl@ids.org.au>
8598         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8599         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8600         stats the file. Stops the UI blocking while stats are done.
8602 2006-02-28  James Livingston  <jrl@ids.org.au>
8604         * sources/rb-static-playlist-source.c:
8605         (rb_static_playlist_source_class_init),
8606         (rb_static_playlist_source_constructor), (impl_reset_filters),
8607         (impl_get_property_views), (impl_browser_toggled),
8608         (rb_static_playlist_source_do_query),
8609         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8610         playlists. From bug 118862.
8612         * sources/rb-play-queue-source.c:
8613         (rb_play_queue_source_class_init): disable them for the play queue.
8615 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8617         * data/glade/library-prefs.glade:  Add a mnemonic.
8618         * sources/rb-library-source.c:
8619         (rb_library_source_location_button_clicked_cb):  Use title
8620         capitalization for window title.
8622 2006-02-28  James Livingston  <jrl@ids.org.au>
8624         * sources/rb-auto-playlist-source.c:
8625         (construct_query_from_selection): don't create a subquery for only one
8626         criteria, as it's a silly effifiency degredation.
8628 2006-02-28  James Livingston  <jrl@ids.org.au>
8630         * rhythmdb/rhythmdb.h:
8631         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8632         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8633         saved to disk
8635         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8636         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8637         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8638         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8639         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8640         This will make importing files quicker as we don't need to try files
8641         that we know are not going to be interesting - especially useful when
8642         using the library watching facility.
8644         Fixes bug 323179.
8646 2006-02-28  James Livingston  <jrl@ids.org.au>
8648         * shell/rb-shell.c: (rb_shell_constructor),
8649         (rb_shell_set_visibility): fix browser and source-list pane
8650         positioning, that I broke with the "remember visibility" patch.
8652 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8654         * metadata/rb-metadata-dbus-service.c: (main):
8655         Change argument handling so you can use --debug with the --load and
8656         --can-save test modes.
8657         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8658         Use a separate GMainContext, not the default one.  Probably fixes
8659         #332344.
8661 2006-02-27  James Livingston  <jrl@ids.org.au>
8663         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8664         first starting up. Fixes bug 330342.
8666 2006-02-27  James Livingston  <jrl@ids.org.au>
8668         * sources/rb-sourcelist-model.c:
8669         (rb_sourcelist_model_set_dnd_targets):
8670         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8671         COPY action for draging sources and tracks, not MOVE as well. Stops
8672         Nautilus moving file away, and fixes bug 332488.
8674 2006-02-27  James Livingston  <jrl@ids.org.au>
8676         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8678         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8679         and Last Played metadata off iPods. Closes bug 324648.
8681 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8683         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8684         Disable audioscrobbler when run with the --no-registration flag, since
8685         last.fm doesn't allow multiple concurrent clients per user.
8687 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8689         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8690         Rename renamable sources when F2 is pressed when the sourcelist has
8691         focus.  Fixes #330700.
8693 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8695         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8696         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8697         (rb_playlist_manager_cmd_edit_automatic_playlist):
8698         Fix various crashes when deleting auto playlists previously edited
8699         by disconnecting signal handlers when the query editor is closed or
8700         the playlist is deleted.
8702 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8704         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8705         removed load failure dialog, and actually use the friendly file type
8706         name in error messages.
8708 2006-02-24  James Livingston  <jrl@ids.org.au>
8710         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8712         * sources/rb-library-source.c:
8713         (rb_library_source_location_button_clicked_cb),
8714         (rb_library_source_preferences_sync),
8715         (rb_library_source_library_location_cb): convert the library URI to
8716         for display, and back again. Fixes bug 332356.
8718 2006-02-23  James Livingston  <jrl@ids.org.au>
8720         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8721         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8722         (rhythmdb_sync_library_location): don't monitor files at all if
8723         watching is turned off. From bug 323096.
8725 2006-02-23  James Livingston  <jrl@ids.org.au>
8727         * data/rhythmbox.schemas:
8728         * lib/rb-preferences.h:
8729         * shell/rb-shell.c: (rb_shell_constructor),
8730         (rb_shell_set_visibility): remember main window visibility between
8731         sessions. Fixes bug 127320.
8733 2006-02-23  James Livingston  <jrl@ids.org.au>
8735         * data/glade/library-prefs.glade:
8736         * sources/rb-library-source.c: (impl_get_config_widget),
8737         (rb_library_source_location_button_clicked_cb),
8738         (rb_library_source_preferences_sync),
8739         (rb_library_source_library_location_cb),
8740         (rb_library_source_watch_toggled_cb): change the library-location
8741         widgets from the file-chooser drop menu to a text entry and Browse
8742         button. This is needed to prevent the location from chaning if the
8743         directory cannot be found. Fixes bug 328414.
8745 2006-02-23  James Livingston  <jrl@ids.org.au>
8747         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8748         item. Fixes bug 329042.
8750 2006-02-23  James Livingston  <jrl@ids.org.au>
8752         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8754         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8755         comma in some podcast feeds. Fixes bug 332194.
8757 2006-02-23  James Livingston  <jrl@ids.org.au>
8759         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8760         lower priority.
8762         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8763         the internal audio cd URIs from "cdda://device:track" to
8764         "cdda://track#device" as it makes processing much easier.
8766         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8767         * player/rb-player-gst.c: don't have the shell close the player
8768         between songs, as doing that should be backend-specific. Make the
8769         gstreamer backend close before starting a new track, unless the old
8770         and new ones are both tracks on the same audio cd. Just seek in that
8771         case.
8773 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8775         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8777 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8779         * configure.ac: Enable more warnings in my stupid setup too.
8780         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8781         #332210.
8783 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8785         * sources/rb-missing-files-source.h,
8786         * sources/rb-missing-files-source.c,
8787         * sources/rb-import-errors-source.h,
8788         * sources/rb-import-errors-source.c:
8789         Add library meta-sources, showing missing files and import errors.
8790         Fixes #167763, #142322.
8792         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8793         * sources/rb-sourcelist-model.h:
8794         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8795         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8796         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8797         (visibility_notify_cb):
8798         Store source visibility in the sourcelist model, so we can determine
8799         child source counts correctly and get the sourcelist expander column
8800         right.
8801         
8802         * widgets/rb-entry-view.h:
8803         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8804         (rb_entry_view_append_column), (set_column_visibility):
8805         Allow the creator of the entry view to specify which columns are
8806         always visible.
8808         * sources/rb-source.h:
8809         * sources/rb-source.c: (_autohide_update_visibility),
8810         (_rb_autohide_source_row_deleted_cb),
8811         (_rb_autohide_source_row_inserted_cb),
8812         (_rb_source_hide_when_empty):
8813         Allow sources to automatically hide themselves when empty.
8814         
8815         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8816         * sources/rb-library-source.c: (rb_library_source_constructor):
8817         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8818         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8819         Explicitly specify which columns are always visible.
8820         
8821         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8822         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8823         Remove load error signal handling and load failure dialog.
8824         Create missing files and import errors sources for the library.
8826         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8827         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8828         Create DB entries for import errors rather than emitting the 'load
8829         error' signal; mark loaded entries visible.
8830         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8831         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8832         (rhythmdb_prop_get_type): Store string form of last seen time for
8833         hidden entries, since it's used in the missing files source.
8834         (rhythmdb_entry_import_error_get_type): 
8835         Add entry type for import errors.
8836         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8837         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8838         (rhythmdb_entry_move_to_trash_set_error),
8839         (rhythmdb_entry_move_to_trash):  
8840         Correct spelling, add missing rhythmdb_commit.
8841         * rhythmdb/rhythmdb.h:  
8842         Add import error entry type and last seen string property.
8843         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8844         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8845         (save_entry):  Ignore string form of 'last seen' property.
8847         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8848         Don't try to play hidden entries or import error entries.
8850         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8851         * sources/Makefile.am: Add meta-source files
8852         * widgets/Makefile.am: Remove load failure dialog files
8854 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8856         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8857         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8858         few bits and pieces.
8860 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8862         * metadata/test-metadata.c: (load_metadata_cb):
8863         Fix compile warning for ignoring return value from getcwd, #332064.
8865 2006-02-21  James Livingston  <jrl@ids.org.au>
8867         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8868         (edit_auto_playlist_deleted_cb),
8869         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8870         playlist editor non-modal. Fixes bug 320030.
8872 2006-02-21  James Livingston  <jrl@ids.org.au>
8874         * shell/rb-shell.c: (rb_shell_constructor):
8875         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8876         (rb_header_set_show_artist_album):
8877         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8878         (rb_song_display_box_sync): make the queue sidebar and song display
8879         not get affected by gtk_widget_show_all. Fixes bug 332001.
8881 2006-02-21  James Livingston  <jrl@ids.org.au>
8883         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8885         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8886         feeds which use timezone names instead of offsets. Doesn't actually
8887         parse the timezone name since they are not standardised. Fixes bug
8888         331691.
8890 2006-02-21  James Livingston  <jrl@ids.org.au>
8892         * help/C/figures/rb-notification-area.png:
8893         * help/C/figures/rb-sidebar.png:
8894         * help/C/quick-reference.xml: remove obsolete files from CVS.
8896         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8897         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8898         (rhythmdb_query_free), (rhythmdb_query_serialize),
8899         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8900         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8902         * widgets/rb-query-creator-properties.c: add prefix and suffix
8903         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8904         doesn't escape the ':' separator in uris.
8906 2006-02-21  James Livingston  <jrl@ids.org.au>
8908         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8909         on startup.
8911 2006-02-21  James Livingston  <jrl@ids.org.au>
8913         * NEWS: update with recent changes
8915 2006-02-21  James Livingston  <jrl@ids.org.au>
8917         * shell/rb-shell.c: (rb_shell_constructor),
8918         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8919         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8920         (rb_druid_browse_clicked_cb), (do_response):
8921         * widgets/rb-druid.h: Make running the druid not block RBShell
8922         starting up. This is required so that bonobo registration doesn't time
8923         out. Fixed bug 318766.
8925 2006-02-21  James Livingston  <jrl@ids.org.au>
8927         * rhythmdb/rhythmdb-property-model.c:
8928         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8929         hash table after using it, not before. Fixed bug 331922.
8931 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8933         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8934         (rb_shell_view_queue_as_sidebar_changed_cb):
8935         When playing from the queue, only attempt to highlight the queue
8936         source in the source list if it's actually visible there.  Otherwise,
8937         leave the preempted source highlighted.  Mostly fixes #330819.
8939 2006-02-20  James Livingston  <jrl@ids.org.au>
8941         * rhythmdb/rhythmdb-property-model.c:
8942         (rhythmdb_property_model_row_inserted_cb),
8943         (rhythmdb_property_model_prop_changed_cb),
8944         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8945         store the roperty value in the entry-mapping table, so that receiving
8946         the remove signal from a query model before we get notified of a
8947         change doesn't cause a crash. Fixes bug 331770.
8949 2006-02-20  James Livingston  <jrl@ids.org.au>
8951         * data/ui/rhythmbox-ui.xml:
8952         * sources/rb-play-queue-source.c:
8953         (rb_play_queue_source_class_init),
8954         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8955         playlist things in the queue popup source. From 330490.
8957         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8958         previous commit
8960 2006-02-20  James Livingston  <jrl@ids.org.au>
8962         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8963         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8964         attempt to sync data for non-editable entries when using
8965         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8966         331762.
8968 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8970         * .cvsignore:
8971         * Makefile.am:
8972         * autogen.sh:
8973         * configure.ac:
8974         * help/.cvsignore:
8975         * help/Makefile.am: ported to gnome-doc-utils
8976         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8977         * help/ChangeLog: added, for translators
8978         * help/C/rhytmbox-C.omf: removed, no longer used
8979         Know issue: figures are installed, but some are not showed; manual
8980         description added, but not showed in Yelp while browsing. I'll
8981         investigate, maybe are needed some little changes to
8982         help/C/rhythmbox.xml.
8984 2006-02-20  James Livingston  <jrl@ids.org.au>
8986         * data/ui/rhythmbox-ui.xml:
8987         * help/C/figures/rb-adv.png:
8988         * help/C/figures/rb-asst-finish.png:
8989         * help/C/figures/rb-asst-library.png:
8990         * help/C/figures/rb-asst-start.png:
8991         * help/C/figures/rb-basic.png:
8992         * help/C/figures/rb-browser.png:
8993         * help/C/figures/rb-context-menu.png:
8994         * help/C/figures/rb-empty.png:
8995         * help/C/figures/rb-full-play.png:
8996         * help/C/figures/rb-group-auto.png:
8997         * help/C/figures/rb-group-create.png:
8998         * help/C/figures/rb-group.png:
8999         * help/C/figures/rb-imported.png:
9000         * help/C/figures/rb-iradio-add.png:
9001         * help/C/figures/rb-iradio.png:
9002         * help/C/figures/rb-nextprev.png:
9003         * help/C/figures/rb-nobrowse-play.png:
9004         * help/C/figures/rb-notification-area-menu.png:
9005         * help/C/figures/rb-player.png:
9006         * help/C/figures/rb-prefs-general.png:
9007         * help/C/figures/rb-prefs-ipod.png:
9008         * help/C/figures/rb-prefs-library.png:
9009         * help/C/figures/rb-prefs.png:
9010         * help/C/figures/rb-repeat.png:
9011         * help/C/figures/rb-search.png:
9012         * help/C/figures/rb-shuffle.png:
9013         * help/C/figures/rb-stats.png:
9014         * help/C/figures/rb-toolbar-editor.png:
9015         * help/C/figures/rb-volume-mute.png:
9016         * help/C/figures/rhythmbox-group.png:
9017         * help/C/figures/rhythmbox-tray-icon.png:
9018         * help/C/user-guide.xml: remove old stuff from cvs
9020 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9022         * metadata/rb-metadata-dbus-client.c: 
9023         * metadata/rb-metadata-dbus-service.c:
9024         * metadata/rb-metadata-dbus.c:
9025         * metadata/rb-metadata-dbus.h:
9026         New files, adding an external service for reading and writing
9027         metadata, and an implementation of the RBMetaData interface that uses
9028         dbus to communicate with it.
9029         
9030         * metadata/rb-metadata.h,
9031         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9032         (rb_metadata_get_field_name): Put metadata details in a static array
9033         instead of using a hash table, and add a field for language code (not
9034         used for anything)
9035         * metadata/rb-metadata-gst.c: Updates for changes in
9036         rb-metadata-common.c, fix signal handler closure leak for the typefind
9037         element's have-type signal, and add XML to the list of types we ignore.
9038         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9039         Update for changes to rb_metadata_get_field_type
9040         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9041         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9042         here and there.
9043         
9044         * configure.ac: Add --enable-metadata-helper option (not enabled by
9045         default) to use the external metadata service
9046         * metadata/Makefile.am: Add new files
9047         * metadata/test-metadata.c:  Test program for the metadata service
9049         Fixes #329597. 
9051 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9053         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9054         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9055         (rb_podcast_source_cmd_new_podcast):
9056         Move 'new podcast' action to the podcast source, and add it to the
9057         toolbar.  Fixes #331562.
9059 2006-02-19  James Livingston  <jrl@ids.org.au>
9061         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9062         menus, and away from move-to-trash. Fixes bug 331013.
9064 2006-02-19  James Livingston  <jrl@ids.org.au>
9066         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9067         when deleting last entry. Fixes bug 331712.
9069 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9071         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9072         (rb_entry_view_button_press_cb):
9073         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9074         anywhere, and include a flag indicating whether the click was over an
9075         entry or not.
9076         
9077         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9078         (rb_playlist_source_songs_show_popup_cb):
9079         * sources/rb-playlist-source.h:
9080         Add the 'over entry' flag to the class show popup method, and in the
9081         default handler, ignore right clicks when not over an entry.
9082         
9083         * sources/rb-iradio-source.c:
9084         (rb_iradio_source_songs_show_popup_cb):
9085         * sources/rb-library-source.c:
9086         (rb_library_source_songs_show_popup_cb):
9087         * sources/rb-podcast-source.c:
9088         (rb_podcast_source_songs_show_popup_cb):
9089         Show the source list popup menu when right clicked while not over an
9090         entry.
9092         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9093         For the queue sidebar, always display the popup so the 'clear queue'
9094         action is available regardless of where you click.  For the queue
9095         source, only display the popup when right clicked over an entry.
9096         Fixes #331392.
9098 2006-02-19  James Livingston  <jrl@ids.org.au>
9100         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9101         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9102         entry view, when we're not even using it
9104         * rhythmdb/rhythmdb-property-model.c:
9105         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9106         function, rather than a copy of the code.
9108         * shell/rb-playlist-manager.c:
9109         (rb_playlist_manager_playlist_row_inserted_cb),
9110         (rb_playlist_manager_set_source_internal),
9111         (rb_playlist_manager_playlist_entries_changed): use the query-model
9112         directly, rather than the source's entry view.
9114         * shell/rb-source-header.c: don't use the entry view, just select the
9115         source widget.
9117 2006-02-18  James Livingston  <jrl@ids.org.au>
9119         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9121         * help/C/figures/rb-iradio-main.png:
9122         * help/C/figures/rb-notification-area-menu.png:
9123         * help/C/figures/rb-notification-window.png:
9124         * help/C/figures/rb-notification-zone.png:
9125         * help/C/figures/rb-podcast-main.png:
9126         * help/C/figures/rb-statusbar.png:
9127         * help/C/figures/rb-toolbar-prevplaynext.png:
9128         * help/C/figures/rb-toolbar-repeat.png:
9129         * help/C/figures/rb-toolbar-shuffle.png:
9130         * help/C/figures/rb-toolbar.png:
9131         * help/C/figures/rb-volume-changer.png:
9132         * help/C/figures/rb-window-small.png:
9133         * help/C/figures/rb-window.png:
9134         * help/C/rhythmbox.xml: Update user guide with some of the changes
9135         that have occurred after 0.8.8. From bug 314001.
9137 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9139         * rhythmdb/rhythmdb-query-results.h,
9140           rhythmdb/rhythmdb-query-results.c:
9141         New interface for objects that accept query results from RhythmDB.
9143         * rhythmdb/rhythmdb-query-model.c:
9144         (rhythmdb_query_model_query_results_init),
9145         (rhythmdb_query_model_set_query),
9146         (rhythmdb_query_model_add_results),
9147         (rhythmdb_query_model_query_complete):
9148         * rhythmdb/rhythmdb-query-model.h:
9149         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9151         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9152         (rhythmdb_tree_do_full_query):
9153         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9154         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9155         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9156         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9157         * rhythmdb/rhythmdb.h:
9158         Pass query results through the RhythmDBQueryResults interface, rather
9159         than directly to a RhythmDBQueryModel.
9161         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9162         (rb_podcast_manager_db_entry_deleted_cb):
9163         * sources/rb-auto-playlist-source.c:
9164         (rb_auto_playlist_source_do_query),
9165         (rb_auto_playlist_source_set_query):
9166         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9167         * sources/rb-library-source.c: (rb_library_source_constructor),
9168         (rb_library_source_do_query):
9169         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9170         (rb_podcast_source_do_query):
9171         * rhythmdb/rhythmdb-property-model.c:
9172         (rhythmdb_property_model_drag_data_get):
9173         Cast the query model to RhythmDBQueryResults when passing to one of
9174         the RhythmDB query methods.
9176         * rhythmdb/Makefile.am: Add new files.
9178 2006-02-18  James Livingston  <jrl@ids.org.au>
9180         * data/ui/rhythmbox-ui.xml:
9181         * shell/rb-playlist-manager.c:
9182         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9183         "queue playlist" item to source context menu. Fixes bug 330490.
9185 2006-02-18  James Livingston  <jrl@ids.org.au>
9187         * data/glade/general-prefs.glade:
9188         * shell/rb-shell-preferences.c:
9189         (rb_shell_preferences_column_check_changed_cb),
9190         (rb_shell_preferences_sync):
9191         * sources/rb-library-source.c: (rb_library_source_constructor):
9192         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9193         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9194         (rb_entry_view_append_column): Add a "quality" colume which indicates
9195         the bitrate of media. Part of bug 167659.
9197 2006-02-18  James Livingston  <jrl@ids.org.au>
9199         * shell/rb-play-order.c: (do_next_idle_cb),
9200         (default_playing_entry_removed): move to next track when playing entry
9201         is deleted. Fixes bug 131150.
9203         * shell/rb-shell-player.h: remove ancient stuff
9205 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9207         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9208         (rb_shell_clipboard_set_property): 
9209         * shell/rb-shell.c (rb_shell_sync_party_mode):
9210         Trigger a resync of the clipboard properties when changing party mode.
9212 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9214         * sources/rb-static-playlist-source.c: Fix includes.
9216         * sources/rb-source.c (rb_source_can_rename) 
9217         (rb_source_can_delete, rb_source_can_move_to_trash):
9218         Return FALSE if in party mode.
9220         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9221         Replace fullscreen with party mode.
9222         (rb_shell_window_delete_cb): Don't quit if in party mode.
9223         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9224         (window_state_event_cb): Try to deiconify shell when iconified
9225         in party mode.
9226         (rb_shell_sync_party_mode): Sync party mode properties.
9227         Currently, that means [de]sensitizing close, quit, and small-display,
9228         going into fullscreen mode with window stuck and kept above, and
9229         toggling queue-only for the shell player.
9230         (rb_shell_sync_smalldisplay): Sensitive party mode.
9231         (rb_shell_get_party_mode): Get party mode setting.
9233         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9234         (rb_shell_player_set_property, rb_shell_player_get_property):
9235         Add queue-only property.
9236         (rb_shell_player_entry_activated_cb): If in party mode
9237         only queue the entry on activation.
9239         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9240         Break out from set_properties.  Desensitize some actions when
9241         in party mode.
9242         (rb_playlist_manager_set_property): Break out set_source_internal.
9244         * data/rhythmbox.schemas: Remove fullscreen mode.
9246         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9247         action with party mode.
9249         Partial fix for #323933
9251 2006-02-17  James Livingston  <jrl@ids.org.au>
9253         * configure.ac:
9254         * shell/rb-removable-media-manager.c:
9255         (get_nautilus_burn_drive_for_path),
9256         (rb_removable_media_manager_playing_uri_changed_cb): only use
9257         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9258         over the list when it doesn't.
9260 2006-02-17  James Livingston  <jrl@ids.org.au>
9262         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9263         (rb_iradio_source_first_time_changed): Only do the import on the
9264         first change from FALSE to TRUE.
9266         * sources/rb-library-source.c:
9267         (rb_library_source_preferences_sync),
9268         (rb_library_source_library_location_cb): set the first-run done flag
9269         if the user presses close and then sets their watches library
9270         location. Fixes bug 325997.
9272 2006-02-17  James Livingston  <jrl@ids.org.au>
9274         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9275         removable media manager gobject properties
9277         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9278         (split_drive_from_cdda_uri),
9279         (rb_removable_media_manager_playing_uri_changed_cb),
9280         (rb_removable_media_manager_load_media): stop polling a cd drive
9281         when we are playing from it. Part of bug 330716.
9283 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9285         * rhythmdb/rhythmdb-query-model.c:
9286         (rhythmdb_query_model_set_property),
9287         (rhythmdb_query_model_finalize),
9288         (rhythmdb_query_model_base_entry_removed):
9289         Propagate entry removal from base models out to attached property
9290         models.  Fixes the rest of #331165.
9292 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9294         * rhythmdb/rhythmdb-property-model.c:
9295         (rhythmdb_property_model_row_inserted_cb),
9296         (rhythmdb_property_model_prop_changed_cb),
9297         (rhythmdb_property_model_insert):
9298         Don't store NULL as a hash table value if we want to use
9299         g_hash_table_lookup to check if a key exists, and get the checks for
9300         how and whether to handle entry changes the right way around.
9301         Fixes #331211 and half of #331165.
9303 2006-02-16  James Livingston  <jrl@ids.org.au>
9305         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9306         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9307         Fixes bug 329942.
9309 2006-02-16  James Livingston  <jrl@ids.org.au>
9311         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9312         actually reset the browsers.
9314 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9316         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9317         Escape the strings we pass into libnotify so we don't get blank
9318         notifications when the song name contains '&' etc.  Fixes #330784.
9320 2006-02-16  James Livingston  <jrl@ids.org.au>
9322         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9323         enable "View All" when there is only a search box and no browser.
9324         Fixes bug 331395.
9326 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9328         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9329         popup menu, which I forgot to commit with the patch for bug #330014.
9331 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9333         * shell/rb-shell-player.c: (open_location_thread):
9334         Sync button and entry view state once we've started the player, so the
9335         entry view gets into the playing state for iradio.
9337 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9339         * shell/rb-shell-player.c: (open_location_thread):
9340         Take GDK lock before doing anything UI-related.
9342 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9344         * shell/rb-shell.c: Move 'new iradio station' action to
9345         iradio source.
9347         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9348         (rb_iradio_source_init), (rb_iradio_source_finalize),
9349         (rb_iradio_source_constructor):
9350         Remove some unused stuff.
9352         (guess_uri_scheme), (rb_iradio_source_add_station),
9353         (rb_iradio_source_add_from_playlist),
9354         (impl_get_ui_actions), (new_station_location_added),
9355         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9356         action, include it in the toolbar, and make sure the URI we add has a
9357         scheme.  Fixes #327059, more or less.
9359 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9361         * sources/rb-play-queue-source.c:
9362         (rb_play_queue_source_class_init),
9363         (rb_play_queue_source_constructor),
9364         (rb_play_queue_source_update_count),
9365         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9366         Add a toolbar button to clear the play queue, and make it sensitive
9367         only when there are entries in the queue.  Fixes #330014.
9369         * sources/rb-source.c: (_rb_source_register_action_group):
9370         * sources/rb-source.h:  Add helper function to register an
9371         action group for a source.
9373         * sources/rb-library-source.c: (rb_library_source_constructor):
9374         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9375         (register_action_group):  Use _rb_source_register_action_group.
9377 2006-02-15  James Livingston  <jrl@ids.org.au>
9379         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9380         (rb_song_info_constructor), (rb_song_info_set_property): make
9381         tag-editing completion work for albums too.
9383 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9385         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9386         Check the 'limit' checkbox for time-limited playlists.
9388 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9390         * widgets/rb-song-info.c: Prove text-completion when editing title,
9391         artist or album
9393 2006-02-14  James Livingston  <jrl@ids.org.au>
9395         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9396         tray icon popup menu. Fixes bug 331026.
9398 2006-02-14  James Livingston  <jrl@ids.org.au>
9400         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9401         Ogg Vorbis streams, instead of the MP3 ones.
9403 2006-02-14  James Livingston  <jrl@ids.org.au>
9405         * rhythmdb/rhythmdb-property-model.c:
9406         (rhythmdb_property_model_class_init),
9407         (rhythmdb_property_model_drag_data_get):
9408         * rhythmdb/rhythmdb-query-model.c:
9409         (rhythmdb_query_model_title_sort_func):
9410         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9411         LOCATION as the key. Fixes bug 330601.
9413 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9415         * sources/rb-playlist-source.c: (playlist_iter_func):
9416         Make it compile with older versions of totem-plparser too.      
9418 2006-02-13  James Livingston  <jrl@ids.org.au>
9420         * rhythmdb/rhythmdb.h:
9421         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9422         structure private, since things should use the accessor functions
9423         rather than manipulating it directly - Only RhythmDB and the
9424         implementation classes should access it directly. Part of the RhythmDB
9425         cleanup of bug 330226.
9427         * iradio/rb-station-properties-dialog.c:
9428         (rb_station_properties_dialog_update_title),
9429         (rb_station_properties_dialog_update_title_entry),
9430         (rb_station_properties_dialog_update_genre),
9431         (rb_station_properties_dialog_update_location),
9432         (rb_station_properties_dialog_update_play_count),
9433         (rb_station_properties_dialog_update_bitrate),
9434         (rb_station_properties_dialog_update_last_played),
9435         (rb_station_properties_dialog_update_rating),
9436         (rb_station_properties_dialog_update_playback_error),
9437         (rb_station_properties_dialog_sync_entries):
9438         * podcast/rb-feed-podcast-properties-dialog.c:
9439         (rb_feed_podcast_properties_dialog_update_title),
9440         (rb_feed_podcast_properties_dialog_update_title_label),
9441         (rb_feed_podcast_properties_dialog_update_author),
9442         (rb_feed_podcast_properties_dialog_update_location),
9443         (rb_feed_podcast_properties_dialog_update_copyright),
9444         (rb_feed_podcast_properties_dialog_update_language),
9445         (rb_feed_podcast_properties_dialog_update_summary):
9446         * podcast/rb-podcast-manager.c:
9447         (rb_podcast_manager_entry_downloaded),
9448         (rb_podcast_manager_db_entry_added_cb),
9449         (download_progress_update_cb),
9450         (rb_podcast_manager_db_entry_deleted_cb):
9451         * podcast/rb-podcast-properties-dialog.c:
9452         (rb_podcast_properties_dialog_update_title),
9453         (rb_podcast_properties_dialog_update_title_label),
9454         (rb_podcast_properties_dialog_update_feed),
9455         (rb_podcast_properties_dialog_update_location),
9456         (rb_podcast_properties_dialog_update_play_count),
9457         (rb_podcast_properties_dialog_update_bitrate),
9458         (rb_podcast_properties_dialog_update_last_played),
9459         (rb_podcast_properties_dialog_update_rating),
9460         (rb_podcast_properties_dialog_update_date),
9461         (rb_podcast_properties_dialog_update_description):
9462         * rhythmdb/rhythmdb-query-model.c:
9463         (rhythmdb_query_model_entry_changed_cb),
9464         (rhythmdb_query_model_remove_from_main_list),
9465         (rhythmdb_query_model_update_limited_entries),
9466         (rhythmdb_query_model_drag_data_get),
9467         (rhythmdb_query_model_album_sort_func):
9468         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9469         (save_entry):
9470         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9471         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9472         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9473         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9474         (rhythmdb_entry_get_double):
9475         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9476         * shell/rb-play-order-random-by-age-and-rating.c:
9477         (rb_random_by_age_and_rating_get_entry_weight):
9478         * shell/rb-play-order-random-by-age.c:
9479         (rb_random_by_age_get_entry_weight):
9480         * shell/rb-play-order-random-by-rating.c:
9481         (rb_random_by_rating_get_entry_weight):
9482         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9483         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9484         (rb_shell_player_set_playing_entry),
9485         (rb_shell_player_sync_replaygain),
9486         (rb_shell_player_sync_with_source),
9487         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9488         * sources/rb-playlist-source.c: (playlist_iter_func),
9489         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9490         (rb_playlist_source_entry_added_cb):
9491         * sources/rb-podcast-source.c:
9492         (rb_podcast_source_post_status_cell_data_func):
9493         * sources/rb-source.c: (rb_source_update_play_statistics):
9494         * sources/rb-sourcelist-model.c:
9495         (rb_sourcelist_model_drag_data_get):
9496         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9497         (rb_static_playlist_source_add_entry),
9498         (rb_static_playlist_source_remove_entry):
9499         * widgets/rb-entry-view.c: (type_ahead_search_func),
9500         (rb_entry_view_playing_cell_data_func),
9501         (rb_entry_view_rating_cell_data_func),
9502         (rb_entry_view_pixbuf_clicked_cb):
9503         * widgets/rb-header.c: (rb_header_get_duration):
9504         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9505         (rb_song_info_populate_dialog),
9506         (rb_song_info_update_playback_error),
9507         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9508         (rb_song_info_update_location), (rb_song_info_update_play_count),
9509         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9510         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9511         (rb_song_info_sync_entry_single): fix the huge number of times that
9512         the internals got accessed directly.
9514 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9516         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9517         trash' are grouped together.
9518         * shell/main.c: (main): Pass no-registration flag in to RBShell
9519         constructor, rather than mysteriously always passing TRUE.
9520         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9521         Set dirty flag when entries are removed from the model, so the play
9522         queue is marked dirty appropriately.
9523         * AUTHORS: update my email address
9525 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9527         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9529         * widgets/rb-druid.c: (path_dialog_response_cb):
9530         If the URI is local, don't display the 'file://' prefix.  
9531         Fixes #330919.
9533 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9535         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9536         Attach the notification to the tray icon widget, so libnotify
9537         positions it less badly.  Fixes #330876.
9539 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9541         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9542         Reverse the selection list before returning it, so we get it in the
9543         right order.  Fixes #330283 and some other weirdness.
9545 2006-02-11  James Livingston  <jrl@ids.org.au>
9547         * shell/rb-shell.c: (rb_shell_constructor),
9548         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9549         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9550         make small-mode and fullscreen mutually exclusive, since they don't
9551         work together
9553         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9554         Mode.
9556 2006-02-10  James Livingston  <jrl@ids.org.au>
9558         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9559         since it can cause it to be slower than real-time. Should fix bug
9560         322270.
9562 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9564         * rhythmdb/rhythmdb-query-model.c:
9565         (rhythmdb_query_model_set_property):
9566         Think just a little bit harder about that last commit.
9568 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9570         * rhythmdb/rhythmdb-query-model.c:
9571         (rhythmdb_query_model_set_property):
9572         Get the check for hidden entries the right way around.
9573         Fixes #330527, #330514.
9575         (rhythmdb_query_model_set_sort_order):
9576         Ignore no-op sort order changes, so we don't get critical
9577         messages when selecting 'all' in auto playlist browsers.
9579 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9581         Patch by: Christophe Fergeau  <teuf@gnome.org>
9583         * sources/rb-removable-media-source.c:
9584         (rb_removable_media_source_init),
9585         (rb_removable_media_source_constructor):
9586         Move icon setup code to the constructor, as the volume property
9587         haven't been set yet when _init is called.
9589 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9591         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9592         Make the source pixbuf a dynamic property.
9594         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9595         (rb_source_set_pixbuf, rb_source_set_property) 
9596         (rb_source_get_property): Add icon property.
9598         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9599         (rb_auto_playlist_source_init):
9600         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9601         (rb_static_playlist_source_init):
9602         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9603         (rb_removable_media_source_init): 
9604         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9605         (rb_podcast_source_init): 
9606         * sources/rb-library-source.c (rb_library_source_class_init) 
9607         (rb_library_source_set_property, rb_library_source_get_property): 
9608         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9609         (rb_iradio_source_init): Remove impl_get_pixbuf and
9610         set icon property on source base class.
9612         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9613         a different icon for when the share is password protected
9614         and locked.
9615         (rb_daap_source_new): Set icon property.
9616         (composite_icons): Composite an emblem on a pixbuf.
9617         (create_pixbufs): Load global pixbufs.
9618         (destroy_pixbufs): unref global pixbufs.
9619         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9620         (connection_auth_cb, connection_connected_cb) 
9621         (connection_disconnected_cb): Update icon when connection
9622         status changes.
9623         (rb_daap_source_activate): Connect signals.
9625         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9626         dialog with parent.
9628         * daapsharing/rb-daap-marshal.list: Add new signal.
9630         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9631         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9633         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9634         Add authenticate, connected, and disconnected signals.
9635         (connection_get_password): emit authenticate signal instead
9636         of running dialog directly.
9637         (connection_connected, connection_disconnected): Emit signals.
9638         (handle_login): Emit connected signal.
9639         (handle_logout): Emit disconnected signal.
9640         (rb_daap_connection_do_something): Fix leak.
9642         Fixes #330291
9644 2006-02-09  James Livingston  <jrl@ids.org.au>
9646         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9647         entries from the base model if we don't have show-hidden set. Fixes
9648         bug 330514.
9650 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9652         * daapsharing/rb-daap-share.c (message_get_session_id):
9653         Ugh. Use strtoul instead of atoi.
9654         (session_id_validate): Add debug statements.
9656 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9658         * daapsharing/rb-daap-connection.c (http_response_handler):
9659         Report the actual uri from the message in debug statements.
9661 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9663         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9664         Add context argument.
9665         (message_get_session_id): New function to parse session id from
9666         the message.
9667         (message_get_revision_number): Break out function to parse
9668         revision number from the message.
9669         (session_id_validate): New function to validate given session id
9670         is valid for given context (ie. client address).
9671         (session_id_generate): Generate a random session id.
9672         (session_id_create): Create a unique session id and store it.
9673         (session_id_remove): Remove a session id from the store.
9674         (login_cb): Create a session id instead of using a constant one.
9675         (logout_cb): Validate session id.
9676         (update_cb): Use new message_get_revision_number function.
9677         (databases_cb): Validate session id.
9678         (server_cb): Add server context to argument list for callbacks.  It
9679         is needed to look up the remote host.
9680         (db_entry_changed_cb): Use braces.
9681         (soup_auth_callback): Remove FIXME.
9682         (rb_daap_share_server_start): Create session id store.
9683         (rb_daap_share_server_stop): Destroy session id store.
9685         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9686         Don't base64-encode password here since it needs to be
9687         combined with the username first.
9689         * daapsharing/rb-daap-connection.c (build_message):
9690         Add username to Authorization token.
9691         (handle_login, handle_song_listing) 
9692         (rb_daap_connection_do_something): Session id
9693         must be an unsigned int.
9695         Fixes #329814
9697 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9699         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9700         Don't check if we've got a playing entry, ask the player object (duh).
9701         Might actually fix #329993.     
9703 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9705         * sources/rb-static-playlist-source.c:
9706         (rb_static_playlist_source_add_list_uri):
9707         Canonicalise URIs before trying to add them to the playlist, and 
9708         don't try to add files to the database for which there is 
9709         already an entry.
9711 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9713         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9714         Don't ask the entry view if we're playing, just check if we've got a
9715         playing entry.  Fixes #329993.
9717 2006-02-08  James Livingston  <jrl@ids.org.au>
9719         * rhythmdb/rhythmdb-query-model.c:
9720         (rhythmdb_query_model_set_property),
9721         (rhythmdb_query_model_finalize),
9722         (rhythmdb_query_model_base_complete): remove
9723         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9724         don't get emitted for entry changes. Fixes bug 330301.
9726         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9727         (rb_library_browser_init), (rb_library_browser_constructor),
9728         (rb_library_browser_new): do stuff in the constructor, not the init
9729         function, so that the db property gets set on RBPropertyViews
9730         correctly. Fixes a crash when dragging properties to a playlist.
9732 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9734         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9735         Actually stop soup server.  Fixes #329816.
9737 2006-02-07  James Livingston  <jrl@ids.org.au>
9739         * lib/rb-util.h:
9740         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9741         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9742         (collate_values_cb), (rb_collate_hash_table_keys),
9743         (rb_collate_hash_table_values): add functions to compare, copy and
9744         free string-lists. add functions to collate the keys or values of a
9745         hash table into a list.
9747         * rhythmdb/rhythmdb-property-model.c:
9748         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9749         (_remove_entry_cb), (_add_entry_cb),
9750         (rhythmdb_property_model_set_property),
9751         (rhythmdb_property_model_get_property),
9752         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9753         (rhythmdb_property_model_row_inserted_cb),
9754         (rhythmdb_property_model_prop_changed_cb),
9755         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9756         that are hidden, storing those that we have counted in a hash-table.
9758         * shell/Makefile.am: fix build order issue
9760         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9761         * sources/rb-source.h:
9762         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9763         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9764         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9765         browser-toggled method, rename _get_exta_views to _get_property_views,
9766         since several things depend on returning only that.
9768         * sources/rb-source.c: (rb_source_class_init),
9769         (rb_source_browser_toggled), (default_get_property_views),
9770         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9771         (rb_source_gather_hash_keys),
9772         (rb_source_gather_selected_properties): above changes, and move some
9773         utility functions up from RBLibraryView
9775         * widgets/rb-property-view.c:
9776         (rb_property_view_selection_changed_cb): fix leak.
9778         * rhythmdb/rhythmdb-query-model.c:
9779         (rhythmdb_query_model_set_property),
9780         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9781         (rhythmdb_query_model_set_sort_order),
9782         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9783         query model being resorted.
9785         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9786         NULL query.
9788         * rhythmdb/rhythmdb.h:
9789         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9790         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9791         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9792         two queries. Add a function to append "property={X,Y,Z,...}" to a
9793         query.
9795         * sources/rb-library-source.c: (rb_library_source_class_init),
9796         (rb_library_source_finalize), (rb_library_source_constructor),
9797         (rb_library_source_cmd_choose_genre),
9798         (rb_library_source_cmd_choose_artist),
9799         (rb_library_source_cmd_choose_album), (impl_search),
9800         (impl_get_property_views), (impl_reset_filters),
9801         (rb_library_source_preferences_sync),
9802         (rb_library_source_browser_views_activated_cb),
9803         (rb_library_source_state_prefs_sync),
9804         (construct_query_from_selection), (rb_library_source_do_query),
9805         (rb_library_source_browser_changed_cb):
9806         * widgets/Makefile.am:
9807         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9808         browser" widgets, which contains several property views, based on the
9809         code from RBLibrarySource. Make RBLibrarySource use it.
9811         * sources/rb-auto-playlist-source.c:
9812         (rb_auto_playlist_source_class_init),
9813         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9814         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9815         (impl_get_property_views), (impl_browser_toggled),
9816         (construct_query_from_selection),
9817         (rb_auto_playlist_source_do_query),
9818         (rb_auto_playlist_source_set_query),
9819         (rb_auto_playlist_source_browser_changed_cb): Use the new
9820         library-browser widget to add browsers to automatic playlists.
9822 2006-02-07  James Livingston  <jrl@ids.org.au>
9824         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9825         properly.
9826         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9827         type of the source is taken into account. Fixes bug 329621.
9829 2006-02-07  James Livingston  <jrl@ids.org.au>
9831         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9832         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9833         1.1, and perform URI canonicalistion when first upgrading. This should
9834         fix our remaining canonicalisation issues, such as bug 329988.
9836 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9838         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9839         Track the playing entry when the entry view isn't in the playing
9840         state, so we don't have to get the state changes exactly right.
9841         Fixes #330135.
9843 2006-02-06  James Livingston  <jrl@ids.org.au>
9845         * shell/rb-shell-player.c: (open_location_thread),
9846         (rb_shell_player_open_location): fix several iradio issues: having to
9847         press play after double-clicking on a station, not working correctly
9848         without a http:// prefix, and ignoring totem-plparser results other
9849         than success or error (e.g. IGNORE).
9851 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9853         Addition of dbus methods for dealing with static playlists and the
9854         play queue.  Fixes #329958.
9856         * shell/Makefile.am:
9857         * shell/rb-playlist-manager.h:
9858         * shell/rb-playlist-manager.xml:
9859         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9860         (rb_playlist_manager_get_playlists),
9861         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9862         (rb_playlist_manager_create_static_playlist),
9863         (rb_playlist_manager_delete_playlist),
9864         (rb_playlist_manager_add_to_playlist),
9865         (rb_playlist_manager_remove_from_playlist),
9866         (rb_playlist_manager_export_playlist):
9867         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9868         to create, delete, list, modify, export, and import  static playlists.
9869         
9870         * shell/main.c: (main): Register playlist manager object with dbus.
9872         * shell/rb-shell.h:
9873         * shell/rb-shell.xml:
9874         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9875         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9876         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9877         object, and implement the addToQueue and removeFromQueue methods.
9878         
9879         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9880         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9881         formats.
9883 2006-02-05  James Livingston  <jrl@ids.org.au>
9885         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9886         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9887         (save_entry): allow storage of booleans in the on-disk db, and
9888         save/load the HIDDEN property.
9890         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9891         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9892         to the state it was when RB shutdown. This makes RB appear to start
9893         faster, as tracks can appear before the stat is done. Remote files
9894         still start hidden. From bug 325215.
9896 2006-02-05  James Livingston  <jrl@ids.org.au>
9898         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9899         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9900         really cares about the difference from "entry-added", and it isn't
9901         emitted by the tree backend anyway.
9903         * rhythmdb/rhythmdb-query-model.c:
9904         (rhythmdb_query_model_constructor):
9905         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9906         remove the references to the entry-restored signal.
9908 2006-02-05  James Livingston  <jrl@ids.org.au>
9910         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9911         issue.
9913 2006-02-05  James Livingston  <jrl@ids.org.au>
9915         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9916         things are NULL before using g_object_unref. Fixes bug 327452.
9918         * player/rb-recorder-gst.c: (rb_recorder_construct):
9919         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9920         rather than assertion.
9922         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9923         emit a warning, rather than asserting if an unknown playlist type is
9924         encountered.
9926 2006-02-05  James Livingston  <jrl@ids.org.au>
9928         * widgets/Makefile.am:
9929         * widgets/rb-simple-view.c:
9930         * widgets/rb-simple-view.h: Move the two features that this class
9931         provides into RBPropertyView, and remove this class. Closes bug
9932         327500.
9934         * podcast/rb-feed-podcast-properties-dialog.c:
9935         * podcast/rb-feed-podcast-properties-dialog.h:
9936         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9937         (rb_podcast_source_feeds_show_popup_cb):
9938         * sources/rb-podcast-source.h:
9939         * widgets/rb-property-view.c: (rb_property_view_class_init),
9940         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9941         (rb_property_view_append_column_custom),
9942         (rb_property_view_button_press_cb):
9943         * widgets/rb-property-view.h: Updated for the above change.
9945 2006-02-04  James Livingston  <jrl@ids.org.au>
9947         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9948         too close to Move to Trash and people aren't likely to use it often.
9950 2006-02-04  James Livingston  <jrl@ids.org.au>
9952         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9954 2006-02-04  James Livingston  <jrl@ids.org.au>
9956         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9957         passed a path instead of a URI.
9959         * sources/rb-generic-player-source.c: (default_get_mount_path):
9960         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9961         the path. This fixes bug 329723.
9963 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9965         * daapsharing/rb-daap-structure.c:
9966         (rb_daap_content_code_string_as_int32):
9967         Use network byte order.
9969 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9971         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9972         Use a hash for source lookup.
9973         (mdns_service_added, mdns_service_removed): Handle
9974         service-added and service-removed signals from RBDaapMdnsBrowser.
9975         (remove_source): GDestroyNotify function for when sources
9976         are removed from the hash.
9977         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9978         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9979         (rb_daap_sources_shutdown): Update.
9980         (source_host_find): GHRFunc for finding a source by ip.
9981         (rb_daap_source_find_for_uri): Use the hash source lookup.
9983         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9984         Namespace keys.
9985         (password_check_button_toggled_cb): Handle password enabled.
9986         (share_name_entry_focus_out_event_cb): Namespace keys.
9987         Handle changes more robustly.
9988         (share_password_entry_focus_out_event_cb): Handle password entry.
9989         (add_daap_preferences): Connect to password signals.
9991         * lib/rb-preferences.h: Add DAAP keys.
9993         * data/glade/daap-prefs.glade: Add password UI.
9995         * data/rhythmbox.schemas: Add password keys.
9997         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9998         assert with warning.
10000         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10001         gconf keys to lib/rb-preferences.h.  Namespace
10002         the gconf keys.
10003         (create_share): Add password support.
10004         (enable_sharing_changed_cb): Namespaced keys.
10005         (require_password_changed_cb): Handle key change.
10006         (share_name_changed_cb): Namespaced keys.
10007         (share_password_changed_cb): Handle key change.
10008         (rb_daap_sharing_init): Namespaced keys.
10009         (rb_daap_sharing_shutdown): Ditto.
10011         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10012         Add password property.
10013         (rb_daap_share_set_name): Break out prop set function.
10014         (published_cb): New RBDaapMdnsPublisher signal handler.
10015         (name_collision_cb): Ditto.
10016         (rb_daap_share_init): Create publisher object and
10017         connect to signals.
10018         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10019         (rb_daap_share_set_property): Break out prop set functions.
10020         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10021         Unref publisher.
10022         (rb_daap_share_new): Add password argument.  Start
10023         publishing and DAAP server.
10024         (message_set_from_rb_daap_structure): Change print to debug.
10025         (server_info_cb): Set auth method to publish.
10026         (logout_cb): Handle DAAP client logout.
10027         (update_cb): Remove C++ comments.
10028         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10029         (server_cb): Add debug.
10030         (soup_auth_callback): Handle auth requests.
10031         (rb_daap_share_server_start): Split up functions for starting
10032         server and publishing.  Add auth handling to server.
10033         (rb_daap_share_server_stop): Split stop server and publish.
10034         No C++ comments.
10035         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10036         Start and stop publishing.
10037         (rb_daap_share_restart): Restart server and publishing.
10038         (rb_daap_share_maybe_restart): Conditionally restart.
10040         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10041         (rb_daap_collision_dialog_new_run): Don't use
10042         separators in dialogs.
10044         * daapsharing/rb-daap-connection.h: Add private
10045         data to class structure.
10047         * daapsharing/rb-daap-connection.c: Move
10048         some includes to top of file.  Make private
10049         data struct name consistent with others.
10050         (rb_daap_connection_class_init): Rename
10051         private.
10052         (rb_daap_connection_init): Get and store the pointer
10053         to the private data once instead of in every
10054         function.  Create a username value "Rhythmbox_VERSION".
10055         (connection_get_password): Don't get private.
10056         (build_message): Ditto.
10057         (http_response_handler): Don't init variables in
10058         declaration.  Add debug.  Spacing.
10059         (http_get, entry_set_string_prop, handle_server_info) 
10060         (handle_login, handle_update, handle_database_info) 
10061         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10062         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10063         (rb_daap_connection_state_done): Don't get private.
10064         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10065         spacing.  Correctly base64 encode the Authentication token.
10066         Add username to auth token.
10067         (rb_daap_connection_get_playlists): Don't get private.
10068         (rb_daap_connection_dispose): Ditto.  Free username.
10069         (rb_daap_connection_set_property) 
10070         (rb_daap_connection_get_property): Don't get private.
10072         * daapsharing/Makefile.am: Conditionally
10073         compile MDNS backends.  Add marshall stuff.
10075         * daapsharing/.cvsignore: Update.
10077         * configure.ac: Add conditional to see which
10078         MDNS backend we should use.
10080         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10082         * daapsharing/rb-daap-marshal.list:
10083         * daapsharing/rb-daap-mdns-browser-avahi.c:
10084         * daapsharing/rb-daap-mdns-browser-howl.c:
10085         * daapsharing/rb-daap-mdns-browser.h:
10086         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10087         * daapsharing/rb-daap-mdns-publisher-howl.c:
10088         * daapsharing/rb-daap-mdns-publisher.h:
10089         Split rb-daap-mdns.c into two classes.  One for
10090         publishing and one for browsing.  Split out
10091         the avahi and howl backends into different files.
10093         Fixes #322966
10094         
10095 2006-02-04  James Livingston  <jrl@ids.org.au>
10097         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10099         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10100         crash if metadata reader gives us NULL for strings.
10102 2006-02-03  James Livingston  <jrl@ids.org.au>
10104         * shell/rb-shell-player.c: (open_location_thread),
10105         (rb_shell_player_open_location):
10106         retrieve iradio playlists files in a thread, so that with GStreamer
10107         0.10 the UI doesn't block while connecting to stations. The streamer
10108         connection is synchronous with 0.8, so that will still block (a bit).
10109         Fixed bug 128106.
10111         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10112         because _open_entry does that automatically when it is ready to.
10114 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10116         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10117         (rb_podcast_source_post_status_cell_data_func):
10118         Leave the podcast status column blank for episodes that have not been
10119         downloaded.
10121 2006-02-03  James Livingston  <jrl@ids.org.au>
10123         Add support for source-specific toolbar items, and make the Burn
10124         Playlist item only available for playlists. Also add Update All
10125         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10127         * data/ui/rhythmbox-ui.xml:
10128         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10129         (impl_get_ui_actions): make the Burn CD toolbar item only for
10130         playlists
10132         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10133         * lib/rb-stock-icons.h: load the Eject icon as stock.
10135         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10136         action
10138         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10139         (rb_shell_select_source):
10140         * sources/rb-source.c: (rb_source_class_init),
10141         (rb_source_disconnect), (default_get_ui_actions),
10142         (rb_source_get_ui_actions):
10143         * sources/rb-source.h: add support for source-specific toolbar items
10145         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10146         Eject and Rip toolbar items
10148         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10149         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10150         item.
10152 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10154         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10155         * shell/main.c: (main):
10156         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10157         Replace all g_critical calls with g_warning, since none of them are
10158         the sort of thing the process should die over.  Fixes #329398.
10160 2006-02-03  James Livingston  <jrl@ids.org.au>
10162         * configure.ac: mention gst-plugins-base in the error message for not
10163         finding GStreamer 0.10, since not having that will cause it to fail.
10165 2006-02-03  James Livingston  <jrl@ids.org.au>
10167         * configure.ac: fix typo that means you get the wrong error message if
10168         you explicity request a particular playback engine, and it can't be
10169         found.
10171 2006-02-03  James Livingston  <jrl@ids.org.au>
10173         * data/glade/library-prefs.glade: allow the watched library location
10174         to be a non-local place.
10176 ============ Version 0.9.3
10179 2006-02-02  James Livingston  <jrl@ids.org.au>
10181         * NEWS: update NEWS
10182         * configure.ac: bump version to 0.9.3
10184         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10185         <caillon@redhat.com>, fixed bug 329517. 
10187 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10189         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10191         * widgets/rb-song-info.c: (rb_song_info_constructor):
10192         Make year and disc number fields non-editable if tag editing
10193         is disabled.  Fixes #329463.
10195 2006-02-01  James Livingston  <jrl@ids.org.au>
10197         * rhythmdb/rhythmdb-property-model.c:
10198         (rhythmdb_property_model_row_inserted_cb),
10199         (rhythmdb_property_model_prop_changed_cb),
10200         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10201         correctly. Fixes bug 327061.
10203         * rhythmdb/rhythmdb-query-model.c:
10204         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10205         the HIDDEN property when an entry is removed for being hidden.
10207         * rhythmdb/rhythmdb-query-model.h:
10208         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10209         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10210         models's "connected" property. Whatever it was needed for seems to
10211         have gone.
10213 2006-02-01  James Livingston  <jrl@ids.org.au>
10215         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10217         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10218         (rb_shell_player_playing_changed_cb): block the signal to prevent
10219         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10220         button pausing.
10222 2006-02-01  James Livingston  <jrl@ids.org.au>
10224         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10225         /should/ now work, if the neccessary plugins get ported.
10227 2006-01-30  James Livingston  <jrl@ids.org.au>
10229         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10230         string properties to "Unknown" is the string is empty. Kind of fixes
10231         bug 327495.
10233         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10234         gettext calls once, rather than once per time the function is used.
10235         This stops us making tens of thousands of gettext calls on startup,
10236         which reduces the cpu-time of startup by 10-20%
10238 2006-01-29  James Livingston  <jrl@ids.org.au>
10240         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10241         (rhythmdb_add_uri):
10242         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10243         for files containing known video streams.
10246 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10248         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10249         required.
10251 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10253         * INSTALL.quick: More random updates
10255         * rhythmdb/rhythmdb-query-model.c:
10256         (rhythmdb_query_model_class_init),
10257         (rhythmdb_query_model_set_property),
10258         (rhythmdb_query_model_get_property),
10259         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10260         Remove user sort data handling, take a property ID and a reverse
10261         flag instead.
10262         (rhythmdb_query_model_insert_into_main_list),
10263         (rhythmdb_query_model_insert_into_limited_list),
10264         (rhythmdb_query_model_do_reorder),
10265         (_reverse_sorting_func):
10266         Handle reverse sorting by calling _reverse_sorting_func, which
10267         calls the real sort function and reverses the result.
10268         (rhythmdb_query_model_set_sort_order):
10269         Allow this to be called to set the initial sort order for limited
10270         queries, and handle reverse sorting when reordering.
10271         (rhythmdb_query_model_location_sort_func),
10272         (rhythmdb_query_model_album_sort_func),
10273         (rhythmdb_query_model_artist_sort_func),
10274         (rhythmdb_query_model_genre_sort_func),
10275         (rhythmdb_query_model_track_sort_func),
10276         (rhythmdb_query_model_double_ceiling_sort_func),
10277         (rhythmdb_query_model_ulong_sort_func),
10278         (rhythmdb_query_model_date_sort_func),
10279         (rhythmdb_query_model_string_sort_func):
10280         Sort functions moved from rb-entry-view.c.
10281         * rhythmdb/rhythmdb-query-model.h:
10282         Add the sort functions, and update the changed functions.
10283         
10284         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10285         Just call _resort_model when the query model is set, since it
10286         does all the same things.
10287         (rb_entry_view_append_column):
10288         Rework bits so the rating column doesn't have to be so much of a
10289         special case.
10290         (rb_entry_view_append_column_custom):
10291         Take a property ID to sort on, rather than arbitrary custom data.
10292         (rb_entry_view_resort_model):
10293         Query model does all the reverse sort handling now.
10294         * widgets/rb-entry-view.h: Update _append_column_custom.
10296         * sources/rb-play-queue-source.c:
10297         (rb_play_queue_source_constructor):
10298         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10299         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10300         (rb_podcast_source_post_date_cell_sort_func),
10301         (rb_podcast_source_post_status_cell_sort_func),
10302         (rb_podcast_source_post_feed_cell_sort_func):
10303         Updates required by all the other changes.
10305         * rhythmdb/rhythmdb-property-model.c:
10306         (rhythmdb_property_model_drag_data_get):
10307         Sort the query results on the selected property,
10308         so they arrive in the expected order.  All the other changes were made
10309         to make this possible.  Fixes bug #327494.
10311 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10312         
10313         * shell/rb-shell-clipboard.c:
10314         Use GTK_STOCK_REMOVE icon for the remove action in
10315         the play queue too.
10317 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10319         * sources/rb-play-queue-source.c:
10320         (rb_play_queue_source_constructor),
10321         (rb_play_queue_source_update_count):
10322         Don't make the 'queued songs' column clickable,
10323         and add the queued song count to the column title.
10325 2006-01-29  James Livingston  <jrl@ids.org.au>
10327         * configure.ac: remove "experimental" marking from DAAP, and enable by
10328         default if the dependencies are found.
10330 2006-01-29  James Livingston  <jrl@ids.org.au>
10332         * NEWS: update NEWS
10334 2006-01-29  James Livingston  <jrl@ids.org.au>
10336         patch by: William Jon McCann  <mccann@jhu.edu>
10338         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10339         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10340         property used for the feed list. Fixes problem with feeds with no
10341         episodes not showing up.
10343 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10344         
10345         * shell/rb-play-order-random-by-age-and-rating.c:
10346         (rb_random_by_age_and_rating_get_entry_weight):
10347         Fix compile errors, bug #328978.
10349 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10351         * INSTALL.quick, README: Random updates
10352         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10354 2006-01-28  James Livingston  <jrl@ids.org.au>
10356         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10357         default rating back to 0 (from 2.5, which was needed for autorating).
10359         * shell/rb-play-order-random-by-age-and-rating.c:
10360         (rb_random_by_age_and_rating_get_entry_weight):
10361         * shell/rb-play-order-random-by-rating.c:
10362         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10363         2.5 for the purposes of weighting entries.
10365 2006-01-28  James Livingston  <jrl@ids.org.au>
10367         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10368         translator comments, to make it clearer what the "friendly time"
10369         formatting strings mean.
10371 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10373         * daapsharing/rb-daap-connection.c: (http_response_handler):
10374         Fix the sense of the overflow check so it'll accept valid input.
10376 2006-01-27  James Livingston  <jrl@ids.org.au>
10378         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10380         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10381         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10383 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10385         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10386         
10387         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10388         Don't include the artist field in the window title if it's blank.
10389         Fixes #325973.
10391 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10393         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10394         Use stock delete icon for move to trash and stock remove
10395         for remove menu item.
10397 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10399         * shell/rb-shell.c: (rb_shell_constructor),
10400         (idle_handle_load_complete):  Don't start the playlist save
10401         timeout until we've loaded the playlists, otherwise we'll
10402         write an empty playlist file if startup takes too long.
10404 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10406         * shell/rb-shell.c: Make view toolbar toggle use
10407         shift+ctrl+t.  Fixes #327585.
10409 2006-01-25  James Livingston  <jrl@ids.org.au>
10411         patch by: Christope Fergeau  <teuf@gnome.org>
10413         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10414         (http_response_handler): fix a potential buffer overflow issue.
10416 2006-01-25  James Livingston  <jrl@ids.org.au>
10418         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10419         Year column wide enough to display "Unknown"
10421 2006-01-25  James Livingston  <jrl@ids.org.au>
10423         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10424         (rb_podcast_source_post_status_cell_data_func): make the episode
10425         status wording better. Part of bug 321607.
10427 2006-01-25  James Livingston  <jrl@ids.org.au>
10429         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10430         others with a separator.
10432         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10433         stock Delete icon.
10435 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10437         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10439 2006-01-23  James Livingston  <jrl@ids.org.au>
10441         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10442         0.3.2. Fixed bug 328158.
10444 2006-01-23  James Livingston  <jrl@ids.org.au>
10446         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10447         (gulong_gst_date_transform), (rb_metadata_class_init):
10448         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10450 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10452         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10453         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10454         (record_entry_change): Protect added_entries and changed_entries with
10455         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10457 2006-01-23  James Livingston  <jrl@ids.org.au>
10459         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10460         the browser for audio CDs.
10462 2006-01-22  James Livingston  <jrl@ids.org.au>
10464         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10465         NEVER_FAIL as it causes the daemon-not-running error to never be
10466         reported, resulting in bug 319438 re-occurring.
10468 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10470         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10471         Just call the podcast manager's update method.  Unbreaks the 'update
10472         all feeds' command.
10474 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10476         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10478 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10480         * configure.ac: Don't disable DAAP with gstreamer 0.10
10482         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10483         (rb_daap_src_class_init), (rb_daap_src_init),
10484         (rb_daap_src_finalize), (rb_daap_src_set_property),
10485         (rb_daap_src_get_property), (rb_daap_src_write),
10486         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10487         (_split_uri), (rb_daap_src_open):
10488         * daapsharing/rb-daap-src.h:
10489         Mostly fix seeking, handle chunked transfer encoding, and port to
10490         gstreamer 0.10.
10491         
10492         * player/rb-player-gst.c:
10493         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10494         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10496         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10497         being fixed.
10499 2006-01-21  James Livingston  <jrl@ids.org.au>
10501         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10502         for Year metadata in DAAP sources. Fixes bug 327700.
10504         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10506 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10508         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10509         enum values instead of magic numbers.
10511         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10512         Add number of songs that match each property title into
10513         the cell.  Also show the number of properties that match
10514         in the All entry.
10515         (rb_property_view_constructor): Use enum values instead of
10516         magic numbers.
10518         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10519         Query podcast posts instead of feeds for browser.  Use
10520         post SUBTITLE which is the location for the property view.
10521         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10522         (construct_query_from_selection) 
10523         (rb_podcast_source_cmd_delete_feed) 
10524         (rb_podcast_source_cmd_properties_feed) 
10525         (rb_podcast_source_cmd_update_feed): Use variable to make
10526         it clear what the selection data represents.
10527         (rb_podcast_source_feed_title_cell_data_func): Add number
10528         of posts that belong to each feed in the browser.
10530         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10531         (rhythmdb_property_model_delete_prop): Decrement the refcount
10532         for the All entry.
10533         (rhythmdb_property_model_get_column_type): Use column enum
10534         values instead of magic numbers.  Add NUMBER column.
10535         (rhythmdb_property_model_get_value): Use enum.
10536         Add NUMBER column that represents the refcount for
10537         the title of that property.
10538         (rhythmdb_property_model_perform_sync): Don't fake up
10539         a title for All here.
10541         Fixes #327372.
10542         
10543 2006-01-21  James Livingston  <jrl@ids.org.au>
10545         Make Rhythmbox start faster by not blocking the UI while database
10546         initialisation and loading occurs. Closes bug 323348.
10548         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10549         start 10 seconds later instead of immediately.
10550         
10551         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10552         safe to call from any thread.
10554         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10555         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10556         so the UI doesn't block.
10558 2006-01-18  James Livingston  <jrl@ids.org.au>
10560         * sources/rb-static-playlist-source.c:
10561         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10562         cause crashes. Oops. fixes bug 327477.
10564 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10566         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10567         Set GST element state to NULL before unreffing.
10568         Fixes #327422.
10570 2006-01-18  James Livingston  <jrl@ids.org.au>
10572         * sources/rb-static-playlist-source.c:
10573         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10574         type, since the playlists can contain non-song entries. Fixes bug
10575         327448.
10577         * sources/rb-play-queue-source.c:
10578         (rb_play_queue_source_class_init): disable the search box for the
10579         queue.
10581 2006-01-18  James Livingston  <jrl@ids.org.au>
10583         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10584         dragging of podcast episodes. Fixed bug 327450.
10586 2006-01-18  James Livingston  <jrl@ids.org.au>
10588         * rhythmdb/rhythmdb-query-model.c:
10589         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10590         dragging to an emoty playlist.
10592 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10594         * sources/rb-playlist-source-recorder.c:
10595         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10597 2006-01-17  James Livingston  <jrl@ids.org.au>
10599         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10601         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10602         different number of tracks than exist on the cd, since that happens
10603         with audio+data hybrid CDs. Part of bug 325046.
10605 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10607         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10608         Remove useless call to gtk_tree_view_column_set_clickable().
10610         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10611         Don't store sort data for columns if the sort function is NULL,
10612         so only sortable columns will be in the column sort data map.
10613         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10614         on clickable.
10615         (rb_entry_view_constructor):  The 'playing icon' column is never
10616         clickable, so don't connect a signal handler for it.
10618         Fixes bug 326811.
10620 2006-01-17  James Livingston  <jrl@ids.org.au>
10622         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10623         are 0.8 only. Fix element detection.
10625         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10626         saving the new metadata failed
10628 2006-01-17  James Livingston  <jrl@ids.org.au>
10630         * shell/rb-shell-player.c: (do_next_idle),
10631         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10632         (eos_cb): release audio device when a playlist finishes. Fixes bug
10633         323679.
10635 2006-01-17  James Livingston  <jrl@ids.org.au>
10637         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10638         canonicalise the URIs when things are added via library watching.
10640 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10642         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10643         Off by one error in default speed index.
10645 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10647         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10648         (update_speed_combobox, update_speed_combobox):
10649         Get a list of the actually supported write speeds from
10650         n-c-b >= 2.13.90.  Otherwise use fallback list.
10652 2006-01-17  James Livingston  <jrl@ids.org.au>
10654         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10655         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10656         don't get stuck on recursive symlinks. Fixed bug 125452.
10658 2006-01-17  James Livingston  <jrl@ids.org.au>
10660         Add support for mass-storage audio players. Players are detected via
10661         either the HAL "audio_player" capability, or a ".is_audio_player" file
10662         in the root of the volume. Closes bug 325602.
10664         * configure.ac: separate using HAL from ipod support.
10666         * lib/rb-file-helpers.c: (rb_uri_is_local):
10667         * lib/rb-file-helpers.h: add function to determine whether a URI is
10668         local.
10670         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10671         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10672         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10673         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10674         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10675         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10676         directories can be scanned for files to add as  non-SONG entries.
10678         * shell/rb-removable-media-manager.c:
10679         (rb_removable_media_manager_mount_volume): add checking for
10680         mass-storage players.
10682         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10683         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10684         (hal_udi_is_ipod):
10685         * sources/rb-removable-media-source.c:
10686         (rb_removable_media_source_class_init),
10687         (rb_removable_media_source_constructor): move some things up to the
10688         RBRemovableMediaSource, rather than making subclasses do it.
10690         * sources/Makefile.am:
10691         * sources/rb-generic-player-source.c:
10692         * sources/rb-generic-player-source.h: add mass-storage player source.
10694 2006-01-16  James Livingston  <jrl@ids.org.au>
10696         patch by: William Jon McCann  <mccann@jhu.edu>
10698         * rhythmdb/rhythmdb-query-model.c:
10699         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10700         commit.
10702 2006-01-16  James Livingston  <jrl@ids.org.au>
10704         Patch to add support for "chained queries" and putting hidden tracks
10705         in query models. Use chained queries to add search box support to
10706         normal playlists, and to make hidden entries not get lost. Fixes bug
10707         319278.
10709         * rhythmdb/rhythmdb-query-model.h:
10710         * rhythmdb/rhythmdb-query-model.c:
10711         (rhythmdb_query_model_class_init),
10712         (rhythmdb_query_model_set_property),
10713         (rhythmdb_query_model_get_property):
10714         (rhythmdb_query_model_finalize): add "show-hidden" and
10715         "base-model" properties.
10717         (rhythmdb_query_model_set_connected),
10718         (rhythmdb_query_model_has_pending_changes),     
10719         (rhythmdb_query_model_entry_added_cb),
10720         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10721         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10722         (rhythmdb_query_model_remove_entry),
10723         (rhythmdb_query_model_drag_data_received),
10724         (rhythmdb_query_model_base_row_inserted),
10725         (rhythmdb_query_model_base_row_deleted),
10726         (rhythmdb_query_model_base_non_entry_dropped),
10727         (rhythmdb_query_model_base_complete),
10728         (rhythmdb_query_model_base_entry_prop_changed),
10729         (rhythmdb_query_model_base_rows_reordered),
10730         (rhythmdb_query_model_row_drop_possible): handle base-model by
10731         chaining events and operations where necessary. Make hidden entries
10732         not get added only if "show-hidden" is false.
10734         (rhythmdb_query_model_child_index_to_base_index),
10735         (rhythmdb_query_model_base_index_to_child_index),
10736         (rhythmdb_query_model_get_entry_index): utility functions for handling
10737         base-model entries.
10739         (rhythmdb_query_model_reapply_query): apply the current query, and
10740         remove entries that don't match it.
10742         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10743         empty queries.
10745         * sources/rb-source.c: (rb_source_set_property): move the unref later
10746         to fix problem if it is the last reference.
10748         * sources/rb-static-playlist-source.c:
10749         (rb_static_playlist_source_class_init),
10750         (rb_static_playlist_source_init),
10751         (rb_static_playlist_source_finalize),
10752         (rb_static_playlist_source_constructor), (impl_reset_filters),
10753         (impl_search), (rb_static_playlist_source_do_query),
10754         (impl_save_contents_to_xml),
10755         (rb_static_playlist_source_add_location_internal): use a chained query
10756         model to filter out hidden entries and implement the search box.
10758 2006-01-15  James Livingston  <jrl@ids.org.au>
10760         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10761         the default playlist loading, which I broke earlier.
10763 2006-01-15  James Livingston  <jrl@ids.org.au>
10765         patch by: William Jon McCann  <mccann@jhu.edu>
10767         * sources/rb-playlist-source.c: (playlist_iter_func): use
10768         totem-plparser's new API version macros to check for API changes.
10769         Handle the recent API change.
10771 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10773         * sources/rb-library-source.c: (impl_get_config_widget):
10774         Ref the preferences object to match the unref in the
10775         finalizer.  Fixes some portion of #323505.
10777 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10779         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10780         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10781         Fix valgrind warnings about accessing uninitialised values.
10783 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10785         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10787 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10789         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10790         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10791         Stops the 'now playing' icon from being displayed after the play
10792         order finishes.
10794 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10796         * podcast/rb-podcast-manager.c:
10797         (rb_podcast_manager_db_entry_deleted_cb):
10798         Don't try to delete files we never downloaded, and cancel downloads
10799         for deleted episodes.  Fixes bug #326862.
10800         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10801         Don't complain about NULL data items in the selection list.
10803 2006-01-14  James Livingston  <jrl@ids.org.au>
10805         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10806         Make the name ofthe queue non editable. Fixes bug 326918.
10808 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10810         * sources/rb-playlist-source-recorder.c (burn_cd) 
10811         (ask_rewrite_disc): Don't use our locally copied functions
10812         if we have at least 2.13.
10814 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10816         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10817         Correct the argument type for the process_error signal.
10818         May fix bug #323154.
10820 2006-01-13  James Livingston  <jrl@ids.org.au>
10822         save the queue to disk when exiting, and reload on startup. Fixed bug
10823         326677 .
10825         * shell/rb-playlist-manager.c:
10826         (rb_playlist_manager_load_playlists),
10827         (rb_playlist_manager_save_playlists_async): don't disable saving of
10828         the queue
10830         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10831         add the queue source as a gobject property.
10833         * sources/rb-play-queue-source.c:
10834         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10835         code to save the queue to xml
10837         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10838         load the queue from xml.
10839         * sources/rb-playlist-xml.h:
10841         * sources/rb-static-playlist-source.c:
10842         (rb_static_playlist_source_load_from_xml),
10843         (rb_static_playlist_source_new_from_xml):
10844         * sources/rb-static-playlist-source.h: split the playlist xml loading
10845         from the static playlist creation function, so the queue can use it.
10847 2006-01-13  James Livingston  <jrl@ids.org.au>
10849         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10850         assertion that should be there. Fixes bug 325923.
10851         
10852         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10853         return NULL if the entry already exists (e.g. as another type).
10854         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10855         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10856         (rb_podcast_manager_insert_feed):
10857         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10858         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10859         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10860         for the above function returning NULL.
10862 2006-01-12  James Livingston  <jrl@ids.org.au>
10864         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10865         is enabled. Fixes bug 326673.
10866         
10867         * doc/reference/tmpl/eggtrayicon.sgml:
10868         * doc/reference/tmpl/rb-daap-src.sgml:
10869         * doc/reference/tmpl/rb-source.sgml:
10870         * doc/reference/tmpl/rb-statusbar.sgml:
10871         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10872         * doc/reference/tmpl/rhythmbox-unused.sgml:
10873         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10875 2006-01-11  James Livingston  <jrl@ids.org.au>
10877         * widgets/rb-song-info.c: (rb_song_info_constructor),
10878         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10879         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10880         the same value for properties. From bug 326054.
10882 2006-01-11  James Livingston  <jrl@ids.org.au>
10884         * sources/rb-source.h:
10885         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10886         (rb_shell_player_set_playing_source_internal), (eos_cb):
10887         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10888         every entry.
10890         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10891         source use this. Closes bug 322077.
10893 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10895         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10896         In order for set_icon_data_from_pixbuf() to be
10897         effective, one must not set an icon in _new().
10899 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10901         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10902         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10903         (egg_tray_icon_notify): Add support for libnotify 0.3.
10904         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10905         * configure.ac: Determine the version of libnotify.
10906         Fixes #326333.
10908 2006-01-08  James Livingston  <jrl@ids.org.au>
10910         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10911         trying to share a track with unknown length.
10913 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10915         * shell/rb-shell-player.c: (rb_shell_player_init):
10916         Sync volume on startup so it doesn't default to 0.
10918 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10920         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10921         (rb_shell_player_get_property), (rb_shell_player_open_location),
10922         (info_available_cb):  Add the iradio streamed song title as a
10923         property, and emit a signal when it changes.
10925         * shell/rb-shell.c: (rb_shell_constructor),
10926         (rb_shell_player_elapsed_changed_cb),
10927         (rb_shell_player_stream_song_changed_cb):
10928         Issue a notification when the iradio song title changes.
10929         Fixes #326166.
10931 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10933         * shell/rb-shell-player.c: (rb_shell_player_init),
10934         (rb_shell_player_finalize), (rb_shell_player_set_property),
10935         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10936         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10937         (rb_shell_player_set_volume_relative),
10938         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10939         (rb_shell_player_get_mute):
10940         * shell/rb-shell-player.h:
10941         * shell/rb-shell-player.xml:
10942         Store volume as a property on RBShellPlayer, rather than in gconf.
10943         Add some methods to control volume via dbus.
10945         * shell/rb-shell.c: (rb_shell_constructor),
10946         (rb_shell_volume_widget_changed_cb),
10947         (rb_shell_player_volume_changed_cb):
10948         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10949         Update volume using player properties rather than gconf, and sync the
10950         volume with the volume control button when something else changes it.
10951         Fixes #323840.
10953 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10955         * shell/rb-tray-icon.c (tray_popup_position_menu):
10956         Make tray menu align with edge of panel.
10958         patch from Jaap A. Haitsma <jaap@haitsma.org>
10959         Fixes #319913
10961 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10962         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10963         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10964         (rb_playlist_manager_new_playlist_from_selection_data):
10965         Make a reasonable default name for playlists created from
10966         dropped data.  Fixes #326116.
10968 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10970         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10971         Use new gconf key.
10972         (burn_cd): Always eject CD after burning.  Too many drives
10973         get confused if we don't.  Save the speed used if the burn
10974         was completed successfully.
10976         * data/rhythmbox.schemas: Use our own speed instead of from
10977         n-c-b. The situation is that the default_speed for n-c-b is most
10978         likely the maximum write speed.  This is fine for n-c-b because it
10979         has burn-proof turned on.  We can't turn it on for audio CDs
10980         because the results are poor in quality.  So we'll just pick a
10981         default that should work for everyone (4).
10983 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10984         
10985         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10986         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10988 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10990         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10991         in my previous commit.  Fixes #326037.
10993 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10995         patch by: Jonathan Matthew
10997         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10998         error on Fedora Rawhide.
11000 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11002         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11003         Assume HTTP URLs ending with .xml or .rss are podcasts.
11004         (rb_shell_add_uri): Handle adding podcast feeds.
11006         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11007         Register as the source for podcast feeds.
11009 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11011         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11012         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11013         (rb_shell_preferences_append_view_page):
11014         * shell/rb-shell-preferences.h:
11015         Fix typo in function name.  Fixes #325992.
11017 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11019         * shell/rb-audioscrobbler.c:
11020         Add '+' to the list of characters to URI-encode, so it doesn't get
11021         interpreted as a space.
11023 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11025         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11026         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11027         goes away while we're still trying to log in.
11029 2006-01-06  James Livingston  <jrl@ids.org.au>
11031         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11033 2006-01-06  James Livingston  <jrl@ids.org.au>
11035         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11036         support for Year to automatic playlists. Closes bug 321341.
11038         * rhythmdb/rhythmdb-query-model.c:
11039         (rhythmdb_query_model_set_property):
11040         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11041         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11042         (rhythmdb_query_free), (rhythmdb_query_serialize),
11043         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11044         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11045         * rhythmdb/rhythmdb.h: Support special
11046         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11047         year in date.
11049         * widgets/rb-query-creator-properties.c:
11050         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11051         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11053 2006-01-06  James Livingston  <jrl@ids.org.au>
11055         * configure.ac: make the playback backend selection work correctly
11057         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11058         (rb_daap_src_class_init), (rb_daap_src_dispose),
11059         (rb_daap_src_change_state), (rb_daap_src_initialize):
11060         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11061         doesn't work for this class. Fixes bug 325934
11063 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11065         * configure.ac: Fix check for libnotify.
11067 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11069         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11070         Get name element for current lang and remove all name nodes
11071         from the XML tree.
11072         (get_playlist_name_from_xml): Try to get name element or
11073         fall back to name attribute.
11074         (rb_playlist_source_new_from_xml): Get name before turning over
11075         to sub-types for parsing so that we can remove name elements
11076         from the tree if necessary.
11078         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11079         Load default playlists file if per user playlists are not found.
11081         * data/playlists.xml.in: 
11082         * data/Makefile.am: 
11083         * data/.cvsignore: Add default set of playlists.
11084         Fixes #323004
11086 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11088         * shell/main.c: (main): Don't use the dbus interface to show the
11089         window if we're also going to use the bonobo interface.
11091 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11093         * shell/rb-history.c: (rb_history_set_playing):
11094         Allow setting the playing song to NULL.
11095         (rb_history_append), (rb_history_delete_link):
11096         Don't randomly change position when entries are added and removed,
11097         it confuses play orders.
11098         
11099         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11100         Random orders always have a next entry if the model is not empty.
11101         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11102         Go back to the start of the history if we're past its end.
11104         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11105         (rb_shuffle_play_order_go_next): Go back to the start of the history
11106         if we're past its end.
11107         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11108         the history if the current entry is removed.
11110         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11111         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11112         the play order when the query has finished. This wasted about 10% CPU
11113         while the query was running.
11115         Fixes #324641: assertion failures when the query model was changed
11116         such that the playing song was no longer present.
11118 2006-01-05  James Livingston  <jrl@ids.org.au>
11120         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11121         (rb_daap_src_dispose), (rb_daap_src_change_state):
11122         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11123         (rhythmdb_gda_finalize):
11124         * widgets/rb-cell-renderer-pixbuf.c:
11125         * widgets/rb-cell-renderer-rating.c:
11126         (rb_cell_renderer_rating_class_init),
11127         (rb_cell_renderer_rating_finalize):
11128         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11129         * widgets/rb-load-failure-dialog.c:
11130         (rb_load_failure_dialog_class_init),
11131         (rb_load_failure_dialog_finalize):
11132         * widgets/rb-rating.c: (rb_rating_class_init),
11133         (rb_rating_finalize):
11134         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11135         (rb_search_entry_finalize): use G_DEFINE_TYPE
11137         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11139 2006-01-05  James Livingston  <jrl@ids.org.au>
11141         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11143         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11144         the tarball.
11146         * shell/rb-history.c: (rb_history_class_init),
11147         (rb_history_finalize):
11148         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11149         (rb_playlist_manager_finalize):
11150         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11151         (rb_remote_init): use G_DEFINE_TYPE.
11153 2006-01-05  James Livingston  <jrl@ids.org.au>
11155         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11156         changes
11158 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11160         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11161         Disable burn action when source is not a playlist.
11162         Fixes #323578.
11164 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11166         Optionally use libnotify to display song change and other
11167         notifications, and provide an option to disable notifications.
11168         Fixes #320355 and innumerable informal complaints.
11170         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11171         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11172         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11173         (egg_tray_icon_notify):
11174         * widgets/eggtrayicon.h:
11175         * configure.ac:
11176         * shell/Makefile.am:
11177         Optionally use libnotify instead of eggnotificationbubble.
11179         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11180         (rb_tray_icon_constructor), 
11181         (rb_tray_icon_show_notifications_changed_cb),
11182         (rb_tray_icon_hide_notify_cb)
11183         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11184         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11185         EggNotificationBubble pointer to eggtrayicon.
11187         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11188         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11189         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11191 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11193         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11194         Request a minimum size for the progress bar so that
11195         the window doesn't shrink too small.
11197 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11199         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11200         (add_db_entry), (db_entry_deleted_cb):
11201         Don't track the number of songs currently present, track the next ID
11202         to assign.  Fixes potential ID conflict problems.
11203         
11204         (db_entry_changed_cb), (rb_daap_share_start_publish),
11205         (rb_daap_share_stop_publish):
11206         Watch for db entry changes, and when songs become non-hidden after
11207         a successful stat, add them to the mapping tables.   Fixes #325178,
11208         making the DAAP server usable again.
11210 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11211         
11212         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11213         (rb_statusbar_construct), (rb_statusbar_init),
11214         (rb_statusbar_finalize), (rb_statusbar_set_property),
11215         (rb_statusbar_get_property), (rb_statusbar_new),
11216         (rb_statusbar_sync_with_source):
11217         * shell/rb-statusbar.h:
11218         Remove visibility management code, stop watching for play order
11219         changes (status bar doesn't show play order any more), remove unused
11220         'player' property, and some other minor cleanup.
11221         
11222         * shell/rb-shell.c: (rb_shell_constructor),
11223         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11224         (rb_shell_sync_statusbar_visibility):
11225         Manage status bar visibility here rather than in the status bar
11226         itself, so we can take small mode into account.  Fixes #323589.
11228 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11230         * widgets/eggnotificationbubble.c: (draw_bubble):
11231         Move the bubble off the visible screen while setting up bevels.  
11232         Fixes #316810.
11234 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11236         * shell/rb-shell-player.c: (rb_shell_player_init),
11237         (rb_shell_player_finalize): 
11238         Remove unused structure members.
11239         
11240         (do_next_idle), (rb_shell_player_error):
11241         Only queue one call to do_next_idle, so we don't skip tracks if we get
11242         two errors for the same song.  Fixes #325216.
11244 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11246         * data/glade/podcast-feed-properties.glade,
11247          podcast/rb-feed-podcast-properties-dialog.c:
11248         (rb_feed_podcast_properties_dialog_init),
11249         (rb_feed_podcast_properties_dialog_update):
11250         Add 'last episode' field to the podcast feed properties dialog.
11252         * podcast/rb-feed-podcast-properties-dialog.c:
11253         (rb_feed_podcast_properties_dialog_update_last_update),
11254         (rb_feed_podcast_properties_dialog_update_last_episode),
11255          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11256         Use last-seen property for the time at which we last updated the feed,
11257         and post-time for the time the last episode was published.
11259         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11260         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11261         feed, use last-seen (which in 0.9.2 was the last post time).
11263         Fixes #323894.
11265 2006-01-01  James Livingston  <jrl@ids.org.au>
11267         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11269         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11270         year from the ipod database.
11272 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11274         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11275         Only set the pipeline back to NULL state for really uninteresting
11276         files.  This was causing deadlocks with various video files.
11277         Fixes #324912.
11279 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11281         * data/glade/song-info-multiple.glade:
11282         Add disc number label and field.
11283         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11284         (rb_song_info_constructor): 
11285         Handle widgets for disc number.
11286         (rb_song_info_sync_entries_multiple):
11287         Set disc number property on selected entries.
11288         Fixes #324777.
11290 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11292         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11293         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11294         Activate the default widget when enter is pressed in these dialogs.
11295         Fixes #322887.
11297 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11299         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11300         Use rb_shell_player_get_playing_entry, so we get the right entry
11301         when playing from the queue.  Fixes #325379.
11303 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11305         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11306         Include podcast posts with no publication date.  Typically
11307         seen in static collections rather than feeds.
11309 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11311         * shell/main.c: (main): Don't attempt to handle
11312         bonobo-only arguments if we couldn't get a bonobo
11313         client proxy.
11315 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11317         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11318         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11319         abort if daap sharing is disabled and then re-enabled.
11321 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11323         * podcast/rb-podcast-parse.c (rb_insert_item):
11324         Add debugging.
11325         (rb_podcast_parser_start_element): Support itunes:image.
11326         Add debugging.  Don't abuse the break statement.  Warn
11327         if state is unknown.
11328         (rb_podcast_parser_end_element): Add debugging.  Warn
11329         if state is unknown.
11330         (rb_podcast_parser_characters): Warn if state is unknown.
11332         Fixes parsing of feeds that use the itunes:image element.
11333         Fixes #324632
11335 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11337         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11338         (stations_view_drag_data_received_cb):
11339         Remove calls to rhythmdb_entry_lookup_by_location, as
11340         rb_iradio_source_add_station does that anyway.
11341         
11342         (rb_iradio_source_add_from_playlist):
11343         If the URL doesn't point to a playlist, add it as the stream
11344         URL instead.
11346 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11348         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11349         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11350         so we don't get an assertion failure.
11351         Fixes #325025.
11353 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11355         * shell/main.c: (load_uri_args): don't compile this in if
11356         neither bonobo nor dbus are enabled.  Fixes #324890.
11358 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11360         * sources/rb-audiocd-source.c:
11361         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11362         so it closes the device.
11364 2005-12-20  James Livingston  <jrl@ids.org.au>
11366         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11367         so that it doesn't spend forever getting stuck on the one file. Don't
11368         report errors for failing to change state on known non-audio files.
11370         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11371         audio sink creation if we can't create the gconfaudiosink. This lets
11372         it work with only gst-plugins-base on 0.10.
11374 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11376         * rhythmdb/rhythmdb-query-model.c:
11377         (rhythmdb_query_model_set_sort_order):
11378         Fix a tiny memory leak in the previous commit.
11380 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11382         * rhythmdb/rhythmdb-query-model.c:
11383         (rhythmdb_query_model_set_sort_order):
11384         Don't try to emit reorders for empty query models, since it doesn't
11385         achieve anything and it results in a few warnings.
11387 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11389         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11390         Make burn dialog non-resizable so that the expander can shrink.
11391         Fixes #308951.
11393 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11395         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11396         add entries without a location, rather than those with one.
11398 2005-12-19  James Livingston  <jrl@ids.org.au>
11400         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11401         the error isn't set.
11403 2005-12-19  James Livingston  <jrl@ids.org.au>
11404         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11405         add entries without a location. Fixes bug 324290.
11407         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11408         without a location.
11410         * shell/main.c: (main): don't crash if dbus initialisation fails
11411         without setting an error
11413 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11415         * sources/rb-library-source.c: Remove unused structure members
11416         (rb_library_source_do_query): Actually use the cached 'all' query.
11417         Fixes #324025.
11418         
11419 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11421         * sources/rb-audiocd-source.c 
11422         (rb_audiocd_get_cd_info): tab
11423         (rb_audiocd_scan_songs): Return boolean success/failure,
11424         fix error messages a bit.
11425         (metadata_cb): Don't crash if we have no tracks
11426         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11427         the CD.
11428         Fixes #324222.
11430 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11432         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11433         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11434         key.
11436         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11437         Fixes #324157
11439 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11441         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11442         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11443         (fullscreen_changed_cb): 
11444         * lib/rb-preferences.h: 
11445         * data/ui/rhythmbox-ui.xml: 
11446         * data/rhythmbox.schemas:
11447         Add fullscreen mode.
11449         Fixes #324075.
11451 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11453         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11454         configure.  It was not working with RPM.
11455         * data/Makefile.am: Switched dbus directory location to use
11456         datadir instead of variable that was not working.
11458 2005-12-13  James Livingston  <jrl@ids.org.au>
11460         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11462         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11463         the podcast browser work again. Closes bug 323856.
11465 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11467         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11468         Remove C99ism.
11470         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11471         (rb_utf_friendly_time):
11472         * lib/rb-cut-and-paste-code.h:
11474         * podcast/rb-feed-podcast-properties-dialog.c:
11475         (rb_feed_podcast_properties_dialog_parse_time):
11476         * podcast/rb-podcast-properties-dialog.c:
11477         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11478         to display the date in a more user friendly way.
11479         For example, if the feed was updated yesterday it will say:
11480         Last updated: Yesterday 10:00 AM
11481         instead of printing the date.
11483 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11485         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11486         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11487         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11488         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11489         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11490         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11491         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11492         (rb_podcast_parse_date): Add support for some real world
11493         date formats.
11494         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11495         (rb_podcast_parse_item_free): Style and no need to check
11496         for NULL before g_free.
11498         May fix #323742
11500 2005-12-12  James Livingston  <jrl@ids.org.au>
11502         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11503         with gstreamer 0.10, which replaced audioscale.
11505         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11506         function to free the SoupSession
11508         * shell/rb-source-header.c: (rb_source_header_set_property),
11509         (rb_source_header_disclosure_toggled_cb),
11510         (rb_source_header_view_browser_changed_cb),
11511         (rb_source_header_sync_control_state):
11512         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11513         * sources/rb-library-source.c: (rb_library_source_class_init):
11514         * sources/rb-source.c: (rb_source_class_init),
11515         (rb_source_get_status), (default_get_browser_key),
11516         (rb_source_get_browser_key), (rb_source_can_browse),
11517         (rb_source_notify_status_changed),
11518         (rb_source_notify_filter_changed):
11519         * sources/rb-source.h: seperate the enabling of browsers from the use
11520         of a gconf key.
11522 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11524         * data/glade/podcast-feed-properties.glade: 
11525         * data/glade/podcast-properties.glade: Use scrolled viewports
11526         for description text.  Fix regression of #320509.
11528 2005-12-11  James Livingston  <jrl@ids.org.au>
11530         * sources/rb-auto-playlist-source.c:
11531         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11532         (impl_search), (rb_auto_playlist_source_do_query),
11533         (rb_auto_playlist_source_set_query),
11534         (rb_auto_playlist_source_get_query): add support for the search box
11535         to automatic playlists.
11537         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11538         memory leak.
11540 2005-12-11  James Livingston  <jrl@ids.org.au>
11542         * NEWS: update NEWS
11544 2005-12-11  James Livingston  <jrl@ids.org.au>
11546         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11547         (rhythmdb_load), (monitor_subdirectory),
11548         (rhythmdb_sync_library_location):  start the library sync and
11549         monitoring in an idle callback.
11551 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11553         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11554         (rb_podcast_source_constructor): Remove unused pixbuf column.
11555         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11556         Use consistent style.
11558         Fixes #322961.
11560 2005-12-11  James Livingston  <jrl@ids.org.au>
11562         * rhythmdb/rhythmdb-property-model.c:
11563         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11564         (rhythmdb_property_model_insert),
11565         (rhythmdb_property_model_delete_prop):
11566         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11567         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11568         (destroy_tree_property):
11569         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11570         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11571         GMemChunks, they are crap and deprecated. Improves startup-time and
11572         memory usage slightly.
11574 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11576         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11577         Added license and website info.
11579         * MAINTAINERS.old: Add Colin.
11580         * MAINTAINERS: Add James.
11581         * AUTHORS: Put back in order.  Add extra space between name and email
11582         to make it easier to read.  Add James and jonathan.
11584         * widgets/rb-song-info.c (rb_song_info_init) 
11585         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11587 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11589         Play queue implementation. Closes bug 107787.
11591         * data/rhythmbox.schemas: add items for whether the queue should be
11592         displayed as a sidebar, and the height of the sourcelist if it is.
11594         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11595         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11596         add popups for queue as source and as sidebar.  We need a separate
11597         popup for the sidebar view because otherwise it's hard to tell which
11598         of the visible entry views the action came from.
11600         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11602         * po/POTFILES.in: Add new file
11604         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11605         Add helper function for deciding if a podcast episode is available for
11606         playback.
11608         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11609         reorder entries in the query model.
11610         (idle_process_update): Handle new update type used to insert entries
11611         at a particular position in the query model.
11612         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11613         parameter to specify the position (-1 meaning 'at the end').
11614         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11615         parameter.
11616         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11617         bad entry removal updates for entries that aren't in the model.
11618         (rhythmdb_query_model_emit_reorder): Add helper function for
11619         reordering rows.
11620         (rhythmdb_query_model_move_entry): New method for moving entries
11621         around in the model
11622         (rhythmdb_query_model_entry_added_cb),
11623         (rhythmdb_query_model_update_limited_entries),
11624         (rhythmdb_query_model_do_reorder),
11625         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11626         use rhythmdb_query_model_emit_reorder where appropriate.
11628         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11629         Don't allow the queue to be deleted.
11630         (handle_playlist_entry_cb): Update for method signature change
11631         (rb_playlist_manager_save_playlists_async),
11632         (rb_playlist_manager_get_playlists): Don't save the play queue,
11633         don't report it as a playlist.
11635         * shell/rb-play-order.c: Include queue play order in the list of
11636         available orders.
11638         * shell/rb-shell.c
11639         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11640         for access to the clipboard object.
11641         (rb_shell_constructor): Handle playing-from-queue signal to update the
11642         sourcelist display; add queue sidebar in to UI, listen for queue
11643         sidebar pane changes, and read initial settings from gconf.
11644         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11645         Only tell the sourcelist the source has changed if the new source is 
11646         not the queue, as we update the sourcelist differently in that case.
11647         (rb_shell_set_window_title): Only use the cached window title if the
11648         playing state was the same when it was created.
11649         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11650         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11651         sourcelist is hidden and the queue is shown as a source.
11652         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11653         mode, since it doesn't make any sense.
11654         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11655         too.
11656         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11657         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11658         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11659         playing from queue shown as sidebar.
11661         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11662         MusicProperties action here from rb-shell-player.c, since it acts like
11663         cut/copy/paste etc.
11664         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11665         (rb_shell_clipboard_get_property): new property for queue source.
11666         Watch for selection changes in the sidebar entry view as well as the
11667         normal one.
11668         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11669         actions and MusicProperties.
11670         (rb_shell_clipboard_cmd_queue_delete),
11671         (rb_shell_clipboard_cmd_add_song_to_queue),
11672         (rb_shell_clipboard_cmd_song_info),
11673         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11675         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11676         actually came from (could be the playing source, or the queue), add a 
11677         new play order object for the queue, add a property for the queue
11678         source, add a signal for when we switch between playing from the
11679         source and from the queue.
11680         (rb_shell_player_set_property): Handle playing directly from the
11681         queue so we stop once the queue is empty.  Create queue play order
11682         when we get the queue source.
11683         (rb_shell_player_get_playing_source): Return the source we're actually
11684         playing from.
11685         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11686         that's where it is.
11687         (rb_shell_player_set_playing_entry): Update the queue play order if 
11688         that's where we're playing from.
11689         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11690         queue into consideration too.
11691         (swap_playing_source): Helper function for switching the playing
11692         source.
11693         (rb_shell_player_do_previous): Check the queue, even though there's
11694         never a previous entry in it (yet), swap playing source if it changed.
11695         (rb_shell_player_do_next): Check the queue for entries to play before
11696         the normal play order, and swap playing source if it changed.
11697         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11698         entries to go to as well.
11699         (rb_shell_player_playpause): Check the queue before the selection and
11700         the play order, and swap playing source if it changed.
11701         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11702         (rb_shell_player_entry_activated_cb): Use
11703         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11704         activating queue entries work properly (move the activated entry to
11705         the start of the queue and then play it); if we were playing from the
11706         queue, clear its playing entry so it'll start again from the start
11707         after the activated entry.
11708         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11709         to rb-shell-clipboard.c
11710         (actually_set_playing_source): Add helper for updating the playing
11711         source.
11712         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11713         signal if we stop or start doing so; use actually_set_playing_source; 
11714         emit playing-source-changed if we actually did change source.
11716         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11717         rb_static_playlist_source_add_location.
11719         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11720         enqueueing of songs from the library.
11722         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11723         enqueueing of sonsg from playlists.
11724         (rb_playlist_source_entry_added_cb): Add extra parameter for
11725         rhythmdb_query_model_add_entry.
11726         
11727         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11728         Implement (can_)add_to_queue for this class.
11729         (rb_podcast_source_entry_activated): Use
11730         rb_podcast_manager_entry_downloaded.
11731         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11732         been downloaded is selected.
11733         (impl_add_to_queue): Only add downloaded entries to the queue.
11735         * sources/rb-source.{c,h}:
11736         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11737         methods.
11738         (rb_source_class_init): Don't allow enqueueing by default; implement 
11739         add_to_queue though.
11740         (default_add_to_queue): Add all selected entries to the queue.
11741         
11742         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11743         would be playing if there wasn't anything in the queue).
11744         (set_source_playing): Helper function for manipulating tree store.
11745         (rb_sourcelist_set_playing_source): Use set_source_playing
11746         (rb_sourcelist_preempt_playing_source): Update preempted source
11747         pointer, manipulate source states.
11749         * sources/rb-static-playlist-source.{c,h}:
11750         (rb_static_playlist_source_add_location_internal),
11751         (rb_static_playlist_source_add_location),
11752         (rb_static_playlist_source_add_entry): Add index parameter for
11753         specifying where in the playlist the new entry goes.
11754         (rb_static_playlist_source_new_from_xml), (impl_paste),
11755         (rb_static_playlist_source_add_list_uri),
11756         (rb_static_playlist_source_add_location_swapped),
11757         (rb_static_playlist_source_add_locations),
11758         (rb_static_playlist_source_non_entry_dropped),
11759         (rb_static_playlist_source_row_inserted):
11760         Handle new index parameter everywhere it appears
11761         (rb_static_playlist_source_move_entry): New method for moving entries
11762         around in the playlist.
11764         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11765         warnings when trying to scroll entry views that have never been
11766         displayed.
11768         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11769         play order that removes the old entry when switching to a new one.
11771         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11772         static playlist subclass that has a second entry view for the sidebar
11773         view using alternate formatting, and that displays the number of
11774         entries it contains in its source list entry.
11776 2005-12-10  James Livingston  <jrl@ids.org.au>
11778         * rhythmdb/rhythmdb-query-model.c:
11779         (rhythmdb_query_model_add_entry),
11780         (rhythmdb_query_model_drag_data_received):
11781         * sources/rb-static-playlist-source.c:
11782         (rb_static_playlist_source_non_entry_dropped): when things are
11783         dropped, ignore any blank lines in the list of uris. Make the source
11784         responsible for adding new items to the db.
11786         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11787         empty string.
11789 2005-12-10  James Livingston  <jrl@ids.org.au>
11791         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11792         (rb_shell_player_sync_buttons),
11793         (rb_shell_player_selection_changed_cb): watch for the
11794         "selection-changed" signal, so that the Song Properties get enabled.
11795         Closes bug 323694.
11797 2005-12-10  James Livingston  <jrl@ids.org.au>
11799         * data/rhythmbox.schemas: fix the gconf schema
11801 2005-12-10  James Livingston  <jrl@ids.org.au>
11803         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11804         the decoded-pad callback with gstreamer 0.8, it causes problems.
11806 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11808         Remove more junk from RBEntryView. Closes bug 323640.
11810         * widgets/rb-entry-view.{c,h}:
11811         Remove unused private structure members, replace 'playing' boolean
11812         with an enum (so we know if we're paused too), and store a pointer to
11813         the RBShellPlayer too.  
11814         (rb_entry_view_class_init), (rb_entry_view_set_property),
11815         (rb_entry_view_get_property):
11816         Remove 'entry-selected' and 'changed' signals and
11817         'playing-entry' property, add 'selection-changed' signal and
11818         'shell-player' and 'playing-state' properties.
11819         (rb_entry_view_new): Take the shell player object reference
11820         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11821         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11822         No longer needed, shell player is the place to get this information.
11823         (rb_entry_view_busy), (rb_entry_view_get_duration),
11824         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11825         (rb_entry_view_get_next_from_entry),
11826         (rb_entry_view_get_previous_from_entry),
11827         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11828         (rb_entry_view_get_num_entries):
11829         Removed, callers should go to the query model directly.
11830         (rb_entry_view_playing_song_changed): Update active query model, emit
11831         row changed signals to update pixbufs, and scroll to the playing song
11832         when the playing song changes, based on a signal from the shell
11833         player.
11834         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11835         (emit_entry_changed): Evil, removed.
11836         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11837         selection-changed signal.
11838         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11839         Remove selection lock.  It didn't work anyway.
11840         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11841         (rb_entry_view_emit_row_changed): Simple helper function to emit
11842         row-changed signals.
11844         * widgets/Makefile.am: Entry view needs headers from the shell/
11845         directory.
11846         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11848         scrolling the entry view to show the entry being displayed.
11849         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11850         'source' property so we can watch for query model changes.
11851         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11852         (rb_song_info_set_property): Watch for query model changes, don't
11853         watch for entry view changes.
11854         (rb_song_info_new): Take source as a parameter, use the source's entry
11855         view unless one was specifically supplied.
11856         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11857         Use query model rather than entry view to move between songs.
11858         (rb_song_info_update_buttons): Use query model.
11859         (rb_song_info_query_model_changed_cb): Handle query model changes.
11861         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11862         Only one copy of the code to enable/disable the CD burning action
11863         (rb_playlist_manager_playlist_entries_changed):
11864         Use the query model to get the number of entries, not the entry view.
11866         * shell/rb-play-order-random-by-age-and-rating.c,
11867         shell/rb-play-order-random-by-age.c,
11868         shell/rb-play-order-random-by-rating.c,
11869         shell/rb-play-order-random-equal-weights.c:
11870         Use G_DEFINE_TYPE
11872         * shell/rb-shell-player.{c,h}:
11873         Remove a few unused entries from the structure.
11874         (rb_shell_player_set_property):
11875         Don't use the 'changed' signal on the entry view (it's evil)
11876         (rb_shell_player_have_first): No longer needed
11877         (rb_shell_player_play): Just tell the entry view it's playing
11878         (rb_shell_player_playpause): Tell the entry view it's paused
11879         when pausing.
11880         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11881         (rb_shell_player_property_row_activated_cb):
11882         Get the entry to play using the query model, not the entry view.
11883         (rb_shell_player_sync_buttons): Update entry view state while we're
11884         here.
11885         (rb_shell_player_set_playing_source_internal): Update entry view state
11886         (rb_shell_player_get_playing): Ask the entry view, not the player.
11887         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11888         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11889         the window title and tray icon tooltip.
11890         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11892         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11893         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11894         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11895         view constructor, pass the source in to the song info widget
11896         constructor.
11898         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11899         Use 'selection-changed' instead of 'changed', since that's what the
11900         clipboard cares about.
11901         (rb_shell_clipboard_set_source): Don't die if source == NULL
11903 2005-12-10  James Livingston  <jrl@ids.org.au>
11905         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11906         * sources/rb-playlist-source-recorder.c:
11907         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11908         stuff not use the deprecated API when compiled against 2.13
11910 2005-12-10  James Livingston  <jrl@ids.org.au>
11912         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11914         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11915         problem where the genre tag was getting set to the artist. Closes bug
11916         323642.
11918 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11920         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11921         Return NULL if can't get first iter.
11923         Fixes #323663
11925 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11927         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11928         updated rb_station_properties_dialog_new API.
11929         (rb_iradio_source_add_from_playlist): New public function.
11930         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11932         * shell/rb-shell.c (new_station_location_added): Handle
11933         iradio location added signal.
11934         (rb_shell_cmd_new_station): Use new iradio station dialog.
11936         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11937         (rb_station_properties_dialog_new): Don't squeeze new
11938         station functionality into this class.
11939         (rb_station_properties_dialog_response_cb): ditto.
11940         (rb_station_properties_dialog_update_title): Make
11941         consistent with other properties dialogs.
11942         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11944         * iradio/rb-new-station-dialog.[ch]: 
11945         * iradio/Makefile.am: Add new station dialog.
11947         * data/glade/station-new.glade: New file based on
11948         new podcast feed dialog.
11949         * data/glade/station-properties.glade: Updated to
11950         be consistent with song properties dialog.
11952         Fixes #323306.
11954 2005-12-10  James Livingston  <jrl@ids.org.au>
11956         patch by: Ståle Lyngaas <staale@lyngaas.com>
11958         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11959         submit songs longer than 30 minutes. Fixes bug 323639.
11961 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11963         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11964         async save function.
11965         (rb_shell_finalize): Remove save timeout sources.  Reorder
11966         steps a bit to make saving db and playlists a bit more
11967         failsafe in case something goes wrong later.
11968         (rb_shell_constructor): Keep track of save timeout source.
11969         (add_to_library_response_cb): Keep track of db save timeout source.
11971         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11972         g_atomic.
11973         (rb_playlist_manager_shutdown): New function to shutdown
11974         threads etc. before exit.
11975         (rb_playlist_manager_finalize): Moved handling outstanding
11976         threads stuff to shutdown since if there are outstanding threads
11977         they hold a ref and finalize is never called.
11978         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11979         of signal which may be required for sync save.
11980         (rb_playlist_manager_save_playlists_async): Renamed old
11981         save_playlists to save_playlists_async.  Use g_atomic.
11982         (rb_playlist_manager_save_playlists): New function to
11983         perform sync saves (symmetric with RhythmDB API).
11984         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11986         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11987         Style consistency anality.
11988         (rhythmdb_finalize): Remove save timeout source.
11989         (rhythmdb_set_property, rhythmdb_get_property) 
11990         (rhythmdb_process_events): More anality and keep track of
11991         save timeout source.
11992         (action_thread_main): No need to call g_thread_exit.
11993         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11994         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11995         (write_encoded_gvalue, read_encoded_property): La la la.
11997         Fixes #322940.
11999 2005-12-10  James Livingston  <jrl@ids.org.au>
12001         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12002         non-audio files.
12004 2005-12-10  James Livingston  <jrl@ids.org.au>
12006         * Makefile.am:
12007         * configure.ac: remove the rpm spec files, so that automake works.
12008         oops
12010         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12011         locking issue
12013 2005-12-09  James Livingston  <jrl@ids.org.au>
12015         * debian/: try to get cvs to actually remove the files
12017 2005-12-09  James Livingston  <jrl@ids.org.au>
12019         * rhythmbox.spec.in:
12020         * debian/: remove the distro package stuff, they are *really* old, and
12021         downstream manage it anyway.
12023 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12025         Rework play orders to work off query models rather than 
12026         entry views, and track the playing entry themselves rather
12027         than relying on the entry view to do it.  This makes the entry
12028         view mostly just a widget. Closes bug 323612.
12030         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12031         Use query model rather than entry view to get the number
12032         of entries in playlists.
12034         * rhythmdb/rhythmdb-query-model.{c.h}
12035         (rhythmdb_query_model_tree_path_to_entry),
12036         (rhythmdb_query_model_iter_to_entry),
12037         (rhythmdb_query_model_get_next_from_entry),
12038         (rhythmdb_query_model_get_previous_from_entry):
12039         New utility functions for iterating through query models.
12040         (rhythmdb_query_model_compute_status_normal):
12041         Have one copy of this code, not four.
12043         * shell/rb-play-order.{c,h}:
12044         Add signals for when next/previous availability changes, and
12045         when the playing entry is removed, and add a property for
12046         the current playing entry.  Add gtkdoc comments too.
12047         (rb_play_order_class_init): Add new property and signals.
12048         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12049         (rb_play_orer_query_model_changed_cb),
12050         (rb_play_order_query_model_changed): 
12051         Use query model rather than entry view.
12052         (rb_play_order_set_property), (rb_play_order_get_property):
12053         Handle new playing-entry property.  Call playing_entry_changed virtual
12054         method so subclasses can do any processing required.
12055         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12056         (rb_play_order_set_playing_entry):
12057         Just use the playing-entry property.
12058         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12059         Utility methods for subclasses.
12060         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12061         Update next/previous availability, check if the playing entry
12062         was removed.
12063         (default_playing_entry_removed):
12064         Keep the current behaviour of just stopping playback when the 
12065         playing entry is deleted.
12066         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12067         these for subclasses that don't have go_next/go_previous, but do
12068         have get_next/get_previous.
12069         (rb_play_order_update_have_next_previous): Emit signal if the
12070         availability of next/previous entries has changed.
12072         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12073         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12074         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12075         methods.
12076         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12077         on the last song in the shuffled order, go back to the start. This
12078         means if you press 'play' again you'll get the whole order again, not
12079         just one song.
12081         * shell/rb-shell-player.c:
12082         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12083         play order rather than the entry view.
12084         (rb_shell_player_set_property): Update the play order when the
12085         selected source changes and we aren't playing anything.
12086         (rb_shell_player_sync_play_order): Copy the playing entry across to
12087         the new play order so playback continues from the same song, and watch
12088         for updates to have_next/have_previous.
12089         (rb_shell_player_play_order_update_cb): Enable/disable the
12090         next/previous actions when next/previous entry availability changes.
12091         (rb_shell_player_jump_to_current): Just use the play order's idea of
12092         what's playing, not the entry view's; if not playing anything, clear
12093         the selection, so when a playlist ends and you hit play again, it'll
12094         start at the start rather than the end.
12095         (rb_shell_player_do_previous): restructure a bit.
12096         (rb_shell_player_do_next): restructure, jump to new playing entry in
12097         an idle handler instead of directly.
12098         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12099         song if there is one.
12100         (rb_shell_player_playpause): Jump to playing song, don't update the
12101         play order if we got the song from the selection.
12102         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12103         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12104         looks after next/previous actions now.  Don't break if called while
12105         there is no selected source.
12106         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12107         (rb_shell_player_set_playing_source_internal),
12108         (rb_shell_player_error): No need to track the attempted playing entry
12109         any more, since the play order does that.
12111         * shell/rb-shell.c:
12112         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12113         rb_shell_player_get_playing_entry rather than going through the entry
12114         view.
12116         * shell/rb-statusbar.c (rb_statusbar_set_property),
12117         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12118         than the entry view for status bar text changes.
12119         (rb_statusbar_sync_status): Ask the query model directly
12121         * sources/rb-source.{c}: Add query model property.
12122         (default_get_status): Get status text from query model, should be
12123         suitable for most sources.
12124         (rb_source_set_property): Listen for changes to the query model 
12125         to update the status text.
12126         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12127         (idle_emit_status_changed): Emit status-changed signals when query
12128         model changes. 
12130         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12131         (impl_get_status): Not needed, RBSource does this now
12132         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12133         Update RBSource's query model reference.
12135         * sources/rb-playlist-source.c:
12136         Remove query-model property, since RBSource has one now
12137         (impl_get_status): Not needed, RBSource does this now
12138         (rb_playlist_source_row_deleted): Use query model iterator helper
12139         function.
12140         (rb_playlist_source_set_query_model): Update RBSource's query model
12141         reference too.
12143         * sources/rb-iradio-source.c:
12144         (impl_get_status): Ask the query model directly.
12145         (rb_iradio_source_do_query): Update RBSource's query model reference
12146         when we create a new query.
12148         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12149         Use query model rather than entry view.
12151         * widgets/rb-entry-view.{c,h}: 
12152         Remove playing_entry_deleted signal (now in play order).
12153         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12154          as RhythmDBQueryModel has equivalent helper functions.
12155         (rb_entry_view_*): Use query model helpers instead of the above two
12156         functions.
12158 2005-12-09  James Livingston  <jrl@ids.org.au>
12160         * configure.ac:
12161         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12162         (rb_recorder_enabled):
12163         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12164         * sources/rb-playlist-source-recorder.c:
12165         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12166         whether libnautilusburn has the _drive_unref function, and if so use
12167         it. Stops it complaining about deprecated API.
12169 2005-12-09  James Livingston  <jrl@ids.org.au>
12171         * configure.ac: drop the minimum gstreamer version back down, it
12172         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12174 2005-12-09  James Livingston  <jrl@ids.org.au>
12176         * widgets/rb-song-info.c: (rb_song_info_class_init),
12177         (rb_song_info_show), (rb_song_info_constructor),
12178         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12179         (rb_song_info_forward_clicked_cb): save metadata changes when the
12180         Next/Previous buttons are pressed (closes bug 320952). use
12181         G_DEFINE_TYPE.
12183 2005-12-09  James Livingston  <jrl@ids.org.au>
12185         Patch by: <jonathan@kaolin.hn.org>
12187         * sources/rb-iradio-source.c:
12188         (stations_view_drag_data_received_cb):
12189         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12190         of urls. Fixes bug 323610.
12192 2005-12-09  James Livingston  <jrl@ids.org.au>
12194          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12195          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12197         * configure.ac:
12198         * metadata/rb-metadata-gst.c:
12199         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12200         (rb_player_construct), (rb_player_new):
12201         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12202         (rb_recorder_gst_signal_error), (pipe_message),
12203         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12204         (rb_recorder_new):
12205         * shell/main.c: (main):
12206         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12207         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12209 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12211         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12213         * shell/rb-playlist-manager.c:
12214           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12215           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12216           (rb_playlist_manager_set_automatic_playlist),
12217           (rb_playlist_manager_cmd_new_automatic_playlist),
12218           (rb_playlist_manager_cmd_edit_automatic_playlist):
12219            Use new playlist subclasses.
12220           (rb_playlist_manager_save_playlists): Only read the dirty flag
12221            for local playlists, minor pointless reformatting
12223         * sources/Makefile.am: add new files
12225         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12226           split lots of stuff out into two
12227           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12228           make RBPlaylistSource abstract, add virtual methods for showing a
12229           popup for the entry view and saving the playlist to XML.
12230           Other stuff is subclass-specific, or already virtual in RBSource.
12232         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12233           in one place, since they're used across three source files now
12235         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12236           Use new static playlist class
12238         * sources/rb-ipod-source.c: (add_rb_playlist):
12239           Use new static playlist class
12241         * sources/rb-static-playlist-source.{c,h},
12242         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12243         files.
12245         * po/POTFILES.in: add new files
12247 2005-12-07  James Livingston  <jrl@ids.org.au>
12249         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12250         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12251         metadata loads not attempt to write changes to disk.
12253 2005-12-07  James Livingston  <jrl@ids.org.au>
12255         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12257         * data/glade/song-info-multiple.glade:
12258         * widgets/rb-song-info.c: (rb_song_info_constructor),
12259         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12260         multiple songs at once.
12262 2005-12-06  James Livingston  <jrl@ids.org.au>
12264         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12265         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12267 2005-12-06  James Livingston  <jrl@ids.org.au>
12269         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12270         names rather than adding a horizontal scroll bar.
12272 2005-12-06  James Livingston  <jrl@ids.org.au>
12274         * rhythmdb/rhythmdb-query-model.c:
12275         (rhythmdb_query_model_update_limited_entries),
12276         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12277         messages
12279         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12280         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12281         always hide rather than remove DB entries, which will make RB not lose
12282         information when tag editing happens or people move files to trash and
12283         then change their mind. Also fix some races where the monitoring code
12284         would notice the temporary files generated by saving metadata.
12286 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12288         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12289         Hide internals and add tooltips.
12290         (rb_song_display_box_size_allocate): Hide internals.
12291         (sanitize_string, info_url): Copied from rb-header.
12292         (rb_song_display_box_sync): New public function.
12294         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12295         (rb_header_init): Use a separate row for the seek bar.
12296         (rb_header_finalize): Don't unref widgets.
12297         (rb_header_sync): Use rb_song_display_box_sync.
12298         (rb_header_set_urldata)
12299         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12300         (rb_header_set_show_position_slider): Set visibility of seek bar.
12301         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12302         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12304         * shell/rb-statusbar.c (rb_statusbar_init)
12305         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12307         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12308         (rb_shell_constructor): Remove hseparator.  Monitor
12309         toolbar visibility settings.  Add toolbar.  Add
12310         volume button to toolbar.  Add tooltips for volume button.
12311         (rb_shell_view_toolbar_changed_cb) 
12312         (rb_shell_sync_toolbar_visibility)
12313         (toolbar_visibility_changed_cb): Set visibility of
12314         toolbar.
12315         (rb_shell_sync_smalldisplay): Set the toolbar style to
12316         icons only when in small display mode.
12317         (rb_shell_volume_widget_changed_cb): Save volume setting.
12319         * shell/rb-shell-player.c (rb_shell_player_constructor):
12320         Remove pause and stop actions.  Make play action "important"
12321         so that text is visible in horizontal toolbar position.
12322         Remove control buttons.
12323         (rb_shell_player_init) 
12324         (rb_shell_player_sync_song_position_slider_visibility):
12325         Set visbibility of seek bar.
12326         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12327         Make play action a toggle.
12328         (rb_shell_player_sync_volume): Volume control moved
12329         to player.
12330         (gconf_song_position_slider_visibility_changed):
12331         Set visbibility of seek bar.
12332         (rb_shell_player_sync_buttons):
12333         Set sensitivity of actions instead of buttons.
12334         (rb_shell_player_playing_changed_cb): Add callback
12335         for player notify::playing changes.
12337         * lib/rb-preferences.h: Add hide toolbar and seek
12338         bar key names.
12340         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12341         seek bar menu items.  Remove pause and stop actions
12342         from the control menu.  Add a toolbar.
12344         * data/rhythmbox.schemas: Add toolbar_hidden
12345         song_position_slider_hidden keys.
12347         Patch by: James Livingston  <jrl@ids.org.au>
12348                   William Jon McCann  <mccann@jhu.edu>
12349         Fixes #316238.
12351 2005-12-05  James Livingston  <jrl@ids.org.au>
12353         * data/glade/library-prefs.glade:
12354         * data/rhythmbox.schemas:
12355         * lib/rb-preferences.h:
12356         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12357         (rhythmdb_sync_library_location):
12358         * sources/rb-library-source.c: (rb_library_source_class_init),
12359         (rb_library_source_finalize), (rb_library_source_constructor),
12360         (impl_get_config_widget), (rb_library_source_preferences_sync),
12361         (rb_library_source_watch_toggled_cb): allow people to disable library
12362         monitoring, because with nothing set the file chooser button selects
12363         the Home folder (and hence that will get monitored).
12365 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12367         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12368         attempt to fix problem with RSS parsing showing invalid feed types.
12369         Fixes bug 323153
12371 2005-12-04  James Livingston  <jrl@ids.org.au>
12373         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12374         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12375         importing a remote directory not block the UI.
12377 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12379         * data/glade/podcast-feed-properties.glade:
12380         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12382 2005-12-04  James Livingston  <jrl@ids.org.au>
12384         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12386         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12387         to && to fix a mistake in the earlier podcast patch.
12389 2005-12-03  James Livingston  <jrl@ids.org.au>
12391         * data/glade/podcast-new.glade:
12392         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12393         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12395         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12396         GValue, which stops occasional errors.
12398         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12399         compile issue.
12401 2005-12-03  James Livingston  <jrl@ids.org.au>
12403         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12405         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12406         crasher with some podcasts feeds.
12408 2005-12-03  James Livingston  <jrl@ids.org.au>
12410         * data/rhythmbox.schemas: fix the gconf schema
12412 2005-12-03  James Livingston  <jrl@ids.org.au>
12414         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12415         add a selection timeout to the sourcelist. This lets you hold a track
12416         over the playlist source, and then have the view switch so you can
12417         insert the track in the middle of the playlist. Closes bug 323044.
12419         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12420         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12421         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12422         (rb_tree_dnd_add_drag_dest_support):
12423         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12424         timeout.
12426         * sources/rb-sourcelist-model.c:
12427         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12428         the source list.
12430 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12432         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12433         links, so that the text doesn't touch the button
12435 2005-12-02  James Livingston  <jrl@ids.org.au>
12437         Add full support for gnome-vfs remote files. Closes bug 140355.
12439         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12440         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12441         for authentication information from the user doesn't block the UI.
12443         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12445         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12446         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12447         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12448         (rhythmdb_process_stat_event), (emit_load_error_idle),
12449         (rhythmdb_process_metadata_load),
12450         (rhythmdb_process_queued_entry_set_event),
12451         (rhythmdb_process_file_created_or_modified),
12452         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12453         (queue_stat_uri), (add_thread_main),
12454         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12455         (rhythmdb_load), (rhythmdb_save_thread_main),
12456         (threadsafe_entry_set), (rhythmdb_query_internal),
12457         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12458         (rhythmdb_do_full_query_internal),
12459         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12460         (rhythmdb_volume_unmounted_cb),
12461         (rhythmdb_check_changed_file): trivial changes to support the
12462         asynchronous stats.
12464         * shell/main.c: (main): activate the authentication manager.
12466         * shell/rb-playlist-manager.c:
12467         (rb_playlist_manager_cmd_load_playlist),
12468         (rb_playlist_manager_cmd_save_playlist):
12469         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12470         (rb_shell_cmd_add_file_to_library):
12471         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12472         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12473         remote files.
12475 2005-12-02  James Livingston  <jrl@ids.org.au>
12477         * shell/rb-playlist-manager.c: makes playlist menu items use the
12478         elipses correctly. Fixes bug 322283.
12480 2005-12-02  James Livingston  <jrl@ids.org.au>
12482         * shell/rb-playlist-manager.c:
12483         (rb_playlist_manager_load_playlists): fix silly mistake
12485 2005-12-02  James Livingston  <jrl@ids.org.au>
12487         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12488         print out metadata-write unless --debug was passed.
12490         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12491         * shell/rb-playlist-manager.c:
12492         (rb_playlist_manager_load_playlists): block writes to disk if they are
12493         still being loaded.
12495 2005-12-02  James Livingston  <jrl@ids.org.au>
12497         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12498         ctrl-T, because Ctrl-D is used by "small mode"
12500 2005-12-02  James Livingston  <jrl@ids.org.au>
12502         * shell/rb-shell-preferences.c:
12503         (rb_shell_preferences_append_view_page):
12504         * sources/rb-library-source.c: (impl_get_config_widget):
12505         * sources/rb-podcast-source.c: (impl_get_config_widget):
12506         * sources/rb-source.c: (rb_source_get_config_widget):
12507         * sources/rb-source.h: Make the preference actually work.
12509         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12510         if Rhythmbox is being run for the first time.
12512 2005-12-02  James Livingston  <jrl@ids.org.au>
12514         Add support for Rhythmbox to watch your library, and automatically add
12515         new tracks. Fixes bug 160159.
12517         * data/glade/library-prefs.glade: add "library location" preference
12518         * data/rhythmbox.schemas: add gconf key for the library location
12520         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12521         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12522         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12523         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12524         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12525         (rhythmdb_load_thread_main), (rhythmdb_load),
12526         (monitor_subdirectory), (monitor_library_directory),
12527         (monitor_entry_file), (rhythmdb_sync_library_location),
12528         (library_location_changed_cb), (rhythmdb_check_changed_file),
12529         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12530         specifiec in the gconf key for new additions. Also fix monitoring code
12531         so that it works properly, and notices deletions.
12533         * lib/rb-preferences.h:
12534         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12535         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12536         * shell/rb-audioscrobbler.h:
12537         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12538         (rb_shell_preferences_append_view_page),
12539         (rb_shell_preferences_new):
12540         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12541         it's preferences pane, so that we don't need #ifdef's through
12542         rb-shell-preferences.
12544         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12545         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12546         "preferences" property, so that sources can acccess it. This is needed
12547         because the library location pref needs to take effect when the window
12548         is closed.
12550         * sources/rb-library-source.c:
12551         (rb_library_source_library_location_changed),
12552         (rb_library_source_dispose), (rb_library_source_finalize),
12553         (rb_library_source_constructor), (impl_get_config_widget),
12554         (rb_library_source_preferences_sync),
12555         (rb_library_source_process_library_location_change),
12556         (rb_library_source_prefs_update),
12557         (rb_library_source_process_library_handle_selection),
12558         (rb_library_source_library_location_cb): set up and control the
12559         "library location" preference.
12561         * sources/rb-audiocd-source.c:(rb_source_class_init):
12562         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12563         code.
12565 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12567         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12568         (rb_feed_podcast_properties_dialog_update_title): 
12569         * data/glade/podcast-feed-properties.glade:
12570         Make the feed properties dialog consistent with the podcast
12571         properties dialog.
12573 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12575         * metadata/.cvsignore: 
12576         * po/.cvsignore: 
12577         * podcast/.cvsignore: Updated.
12579         * shell/main.c (main): Support DBus 0.6 flags.
12581 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12583         * data/ui/rhythmbox-ui.xml:
12584         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12585         (rhythmbd_entry_move_to_trash_set_error),
12586         (rhythmdb_entry_move_to_trash):
12587         * rhythmdb/rhythmdb.h:
12588         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12589         (rb_shell_clipboard_cmd_delete),
12590         (rb_shell_clipboard_cmd_move_to_trash):
12591         * sources/rb-library-source.c: (rb_library_source_class_init),
12592         (impl_delete), (impl_move_to_trash):
12593         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12594         (impl_delete), (impl_move_to_trash):
12595         * sources/rb-removable-media-source.c:
12596         (rb_removable_media_source_class_init):
12597         * sources/rb-source.c: (rb_source_class_init),
12598         (rb_source_can_move_to_trash), (rb_source_delete),
12599         (rb_source_move_to_trash):
12600         * sources/rb-source.h:
12601         Add move_to_trash member for the sources, implement move to trash for
12602         the library and playlists
12603         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12604         local files to the trash, and deleting them from the database
12605         (Closes: #315389)
12607 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12609         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12610         (rb_tray_icon_init, rb_tray_icon_finalize): 
12611         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12612         (rb_statusbar_init, rb_statusbar_finalize): 
12613         * shell/rb-source-header.c (rb_source_header_class_init) 
12614         (rb_source_header_init, rb_source_header_finalize): 
12615         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12616         (rb_shell_finalize): 
12617         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12618         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12619         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12620         (rb_shell_player_init, rb_shell_player_finalize): 
12621         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12622         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12623         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12624         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12625         * shell/rb-play-order.c (rb_play_order_class_init) 
12626         (rb_play_order_init, rb_play_order_finalize): 
12627         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12628         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12629         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12630         (rb_random_play_order_init, rb_random_play_order_finalize): 
12631         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12632         (rb_history_finalize): 
12633         * shell/rb-commander.c (rb_commander_class_init) 
12634         (rb_commander_init, rb_commander_finalize): 
12635         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12636         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12637         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12638         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12639         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12640         (rb_podcast_properties_dialog_init) 
12641         (rb_podcast_properties_dialog_finalize): 
12642         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12643         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12644         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12645         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12646         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12647         (rb_feed_podcast_properties_dialog_init) 
12648         (rb_feed_podcast_properties_dialog_finalize): 
12649         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12650         (rb_metadata_init, rb_metadata_finalize): 
12651         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12652         (rb_station_properties_dialog_init) 
12653         (rb_station_properties_dialog_finalize): 
12654         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12655         (rb_daap_share_init, rb_daap_share_dispose): 
12657         Use g_type_class_add_private in all classes. Closes bug 313688.
12658         
12659 2005-11-30  James Livingston  <jrl@ids.org.au>
12661         patch by: William Jon McCann <mccann@jhu.edu> to use
12662         g_type_class_add_private in all classes. Closes bug 313688.
12664         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12665         (rb_thread_finalize):
12666         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12667         (rb_player_finalize):
12668         * rhythmdb/rhythmdb-property-model.c:
12669         (rhythmdb_property_model_class_init),
12670         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12671         * rhythmdb/rhythmdb-query-model.c:
12672         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12673         (rhythmdb_query_model_finalize):
12674         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12675         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12676         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12677         (rhythmdb_finalize):
12678         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12679         (rb_daap_source_init), (rb_daap_source_dispose):
12680         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12681         (rb_iradio_source_init), (rb_iradio_source_finalize):
12682         * sources/rb-library-source.c: (rb_library_source_class_init),
12683         (rb_library_source_init), (rb_library_source_finalize):
12684         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12685         (rb_playlist_source_init), (rb_playlist_source_dispose):
12686         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12687         (rb_podcast_source_init), (rb_podcast_source_finalize):
12688         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12689         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12690         * sources/rb-sourcelist-model.h:
12691         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12692         (rb_sourcelist_init), (rb_sourcelist_finalize):
12693         * sources/rb-sourcelist.h:
12694         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12695         * widgets/rb-cell-renderer-rating.c:
12696         (rb_cell_renderer_rating_init),
12697         (rb_cell_renderer_rating_class_init),
12698         (rb_cell_renderer_rating_finalize):
12699         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12700         (rb_druid_finalize):
12701         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12702         (rb_entry_view_init), (rb_entry_view_finalize):
12703         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12704         (rb_header_finalize):
12705         * widgets/rb-load-failure-dialog.c:
12706         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12707         (rb_load_failure_dialog_finalize):
12708         * widgets/rb-property-view.c: (rb_property_view_class_init),
12709         (rb_property_view_init), (rb_property_view_finalize):
12710         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12711         (rb_rating_finalize):
12712         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12713         (rb_search_entry_init), (rb_search_entry_finalize):
12714         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12715         (rb_simple_view_init), (rb_simple_view_finalize):
12716         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12717         (rb_song_display_box_init), (rb_song_display_box_finalize):
12718         * widgets/rb-song-info.c: (rb_song_info_class_init),
12719         (rb_song_info_init), (rb_song_info_finalize):
12720         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12721         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12723 2005-11-30  James Livingston  <jrl@ids.org.au>
12725         * iradio/rb-station-properties-dialog.c:
12726         (rb_station_properties_dialog_init),
12727         (rb_station_properties_dialog_new):
12728         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12729         * lib/rb-glade-helpers.h:
12730         * podcast/rb-feed-podcast-properties-dialog.c:
12731         (rb_feed_podcast_properties_dialog_init),
12732         (rb_feed_podcast_properties_dialog_new):
12733         * podcast/rb-podcast-properties-dialog.c:
12734         (rb_podcast_properties_dialog_init),
12735         (rb_podcast_properties_dialog_new):
12736         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12737         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12738         * sources/rb-library-source.c: (impl_get_config_widget):
12739         * sources/rb-playlist-source-recorder.c:
12740         (rb_playlist_source_recorder_init):
12741         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12742         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12743         in rb-glade-helpers, rather than having eight implementation
12744         throughout the code.
12746 2005-11-30  James Livingston  <jrl@ids.org.au>
12748         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12749         * lib/rb-util.h:
12750         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12751         move the duration->string function into rb-utils, as it gets used in a
12752         few places.
12754         patch by: William Jon McCann <mccann@jhu.edu>
12756         * data/glade/podcast-properties.glade:
12757         * podcast/rb-podcast-properties-dialog.c:
12758         (rb_podcast_properties_dialog_init),
12759         (rb_podcast_properties_dialog_update),
12760         (rb_podcast_properties_dialog_update_title),
12761         (rb_podcast_properties_dialog_update_feed),
12762         (rb_podcast_properties_dialog_update_duration),
12763         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12764         info dialog look more like the song info dialog. Use the same "Feed"
12765         value that is displayed in the treeview (ie. the album field), displays
12766         the duration, uses units in the bitrate field, and sort the fields in
12767         the same order.
12769 2005-11-29  James Livingston  <jrl@ids.org.au>
12771         * rhythmdb/rhythmdb-marshal.list:
12772         * rhythmdb/rhythmdb.h:
12773         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12774         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12775         (entry_to_rb_metadata), (emit_save_error_idle),
12776         (action_thread_main): emit error signal when metadata write fails.
12778         * shell/rb-shell.c: (rb_shell_constructor),
12779         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12780         "metadata save" error and display it to the user.
12782 2005-11-29  James Livingston  <jrl@ids.org.au>
12784         * data/ui/rhythmbox-ui.xml:
12785         * sources/rb-podcast-source.c:
12786         (rb_podcast_source_songs_show_popup_cb),
12787         (rb_podcast_source_cmd_download_post),
12788         (rb_podcast_source_cmd_cancel_download): split download and cancel
12789         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12790         321653.
12792 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12794         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12795         title on alert dialogs per the HIG.
12797         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12798         the term Burn.
12799         (free_song_list): Routine to free song list.
12800         (rb_playlist_source_recorder_finalize): Use free_song_list.
12801         (rb_playlist_source_recorder_add_from_model): Return FALSE
12802         if unable to add all songs.  Check that duration of all
12803         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12804         Fixes #321753.
12806         * sources/rb-playlist-source-recorder.c (check_media_length)
12807         (rb_playlist_source_recorder_start): Only check the duration
12808         and current media if the playlist length is longer than a
12809         standard CD (74 min).  Otherwise, just let the Recorder do the
12810         check.
12811         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12812         drive at init.
12813         (rb_recorder_set_device): Don't leak drives.
12814         (rb_recorder_get_media_length): Use drive that was already set.
12815         (rb_recorder_burn): Let the recorder handle checking media type/size.
12816         Fixes bug 321754.
12818 2005-11-29  James Livingston  <jrl@ids.org.au>
12820         * rhythmdb/rhythmdb-query-model.c:
12821         (rhythmdb_query_model_set_sort_order):
12822         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12823         emitting the tree-model "resorted" signal.
12825         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12826         (rb_entry_view_finalize), (rb_entry_view_set_property),
12827         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12828         * widgets/rb-entry-view.h: add a function to resort the entry view,
12829         using the above function.
12831         * sources/rb-iradio-source.c:
12832         (rb_iradio_source_songs_view_sort_order_changed_cb):
12833         * sources/rb-library-source.c: (rb_library_source_finalize),
12834         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12835         * sources/rb-playlist-source.c:
12836         (rb_playlist_source_songs_sort_order_changed_cb):
12837         * sources/rb-podcast-source.c:
12838         (rb_podcast_source_posts_view_sort_order_changed_cb),
12839         (rb_podcast_source_do_query): use the above function instead of
12840         re-creating the query model. This makes changing the sorting an order
12841         of magnitude faster, as it uses a single resorted signal rather than
12842         deleting and re-adding everything (which emits 2N signals). Closes bug
12843         315389.
12845 2005-11-29  James Livingston  <jrl@ids.org.au>
12847         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12848         autosizing, which results in large speedups. Closes bug 312122.
12850         * po/ja.po: change the date format, so that it is a constant width
12852         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12853         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12854         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12855         (rb_entry_view_constructor): make columns use fixed widths,
12856         disable column autosizing, and enable fixed-height mode.
12858         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12859         (rb_entry_view_get_time_date_column_sample):
12860         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12861         and get the canonical date format for the locale.
12863 ============ Version 0.9.2
12865 2005-11-28  James Livingston  <jrl@ids.org.au>
12867         * configure.ac: bump version to 0.9.2
12868         * NEWS: update with changes for 0.9.2
12870 2005-11-28  James Livingston  <jrl@ids.org.au>
12872         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12874         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12875         Disable saving, renaming and delting for DAAP playlists.
12876         Fixes bug 322627.
12878 2005-11-28  James Livingston  <jrl@ids.org.au>
12880         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12881         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12882         prevent bug 322619.
12884         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12885         * sources/rb-removable-media-source.c:
12886         (rb_removable_media_source_class_init): fix ipod browser visibility
12887         problem.
12889 2005-11-28  James Livingston  <jrl@ids.org.au>
12891         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12892         Avahi 0.6 support actually work. Fixes bug 322519.
12894 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12896         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12897         avahi is specified in --with-mdns
12899 2005-11-27  James Livingston  <jrl@ids.org.au>
12901         patch by: Bastien Nocera <hadess@hadess.net>
12903         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12904         not the private one. Fixes bug 322485.
12906 2005-11-26  James Livingston  <jrl@ids.org.au>
12908         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12909         Avahi 0.6, as well as 0.5.
12911         * configure.ac:
12912         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12913         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12914         (add_service):
12916 2005-11-25  James Livingston  <jrl@ids.org.au>
12918         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12919         321926.
12921 2005-11-25  James Livingston  <jrl@ids.org.au>
12923         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12924         correct type for checking the date against 0. Stops a warning when
12925         saving metadata.
12927 2005-11-25  James Livingston  <jrl@ids.org.au>
12929         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12930         adjustment to be inside the element's limits. Without this songs that
12931         have large ReplayGain values will recieve no increase because they are
12932         outside the acceptable range, causing them to remain quiet.
12934 2005-11-25  James Livingston  <jrl@ids.org.au>
12936         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12937         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12938         * sources/rb-ipod-source.c:
12939         * sources/rb-source.h:
12940         * sources/rb-library-source.h:
12941         * sources/rb-library-source.c: (rb_library_source_class_init),
12942         (rb_library_source_constructor),
12943         (rb_library_source_has_first_added_column),
12944         (rb_library_source_has_drop_support):
12945         * sources/rb-removable-media-source.c:
12946         (rb_removable_media_source_class_init): Make library-derived sources
12947         not show the Date Added column, as it doesn't make sense. Fixes bug
12948         322269.
12949         Move some of the feature funcs from the ipod and audio cd sources up to
12950         the removable media source.
12952 2005-11-24  James Livingston  <jrl@ids.org.au>
12954         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12955         errors. oops.
12957 2005-11-24  James Livingston  <jrl@ids.org.au>
12959         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12960         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12961         (rb_iradio_source_constructor): Chain up dispose method and use
12962         G_DEFINE_TYPE
12964 2005-11-24  James Livingston  <jrl@ids.org.au>
12966         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12967         mistake in the last commit that can cause crashes.
12969 2005-11-24  James Livingston  <jrl@ids.org.au>
12971         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12972         instead of g_printerr.
12974         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12975         rb_debug instead of g_warning. The message happens every time for
12976         removable media/daap shares, so it's not unusual.
12978 2005-11-24  James Livingston  <jrl@ids.org.au>
12980         patch by: Tom Parker <palfrey@tevp.net>
12982         * configure.ac: fix libsoup test for enabling daap
12984 2005-11-23  James Livingston  <jrl@ids.org.au>
12986         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12987         (rb_query_creator_init), (rb_query_creator_constructor),
12988         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12989         empty row to queries with no criteria. Fixes bug 322078. use
12990         G_DEFINE_TYPE.
12992 2005-11-23  James Livingston  <jrl@ids.org.au>
12994         patch by:  <baptiste.millemathias@gmail.com>
12996         * help/C/quick-reference.xml: update the quick reference to have the
12997         correct key bindings.
12999 2005-11-22  James Livingston  <jrl@ids.org.au>
13001         * sources/rb-library-source.c: (genres_selection_reset_cb),
13002         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13003         reset the query when all browser selections are removed.
13005 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13007         * podcast/rb-podcast-manager.c:
13008         (rb_podcast_manager_db_entry_deleted_cb):
13009         Use a custom loop to remove podcast posts, rather than
13010         gtk_tree_model_foreach(), as deleting the entries within
13011         that loop causes the iterator to return the first entry
13012         twice.  Instead, we need to find the next entry before
13013         removing the current one. Fixes bug 321956.
13014         (rb_podcast_manager_entry_remove_cb): No longer needed.
13016 2005-11-22  James Livingston  <jrl@ids.org.au>
13018         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13019         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13020         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13022 2005-11-22  James Livingston  <jrl@ids.org.au>
13024         * sources/rb-podcast-source.c:
13025         (rb_podcast_source_post_date_cell_sort_func),
13026         (rb_podcast_source_post_status_cell_sort_func),
13027         (rb_podcast_source_post_feed_cell_sort_func):
13028         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13029         (rb_entry_view_album_sort_func),
13030         (rb_entry_view_double_ceiling_sort_func),
13031         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13032         the entry's location as a last resort when sorting, so the sort order
13033         is stable. This will stop entries moving around when two entries have
13034         the same sorting, and one of them gets played.
13036 2005-11-22  James Livingston  <jrl@ids.org.au>
13038         * daapsharing/rb-daap-connection.c:
13039         (rb_daap_connection_class_init), (rb_daap_connection_init),
13040         (connection_get_password), (build_message),
13041         (http_response_handler), (http_get), (handle_server_info),
13042         (handle_login), (handle_update), (handle_database_info),
13043         (handle_song_listing), (handle_playlists),
13044         (handle_playlist_entries), (rb_daap_connection_new),
13045         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13046         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13047         (rb_daap_connection_get_headers),
13048         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13049         (rb_daap_connection_set_property),
13050         (rb_daap_connection_get_property):
13051         * daapsharing/rb-daap-connection.h:
13052         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13053         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13054         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13055         of destroying the object when it is going to be used by a callback and
13056         fixes a double-free. Fixes bugs 321930 and 322007.
13058 2005-11-22  James Livingston  <jrl@ids.org.au>
13060         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13061         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13062         notification if there aren't any. Fixes bug 321968.
13064 2005-11-22  James Livingston  <jrl@ids.org.au>
13066         * rhythmdb/rhythmdb-property-model.c:
13067         (rhythmdb_property_model_set_property),
13068         (rhythmdb_property_model_finalize),
13069         (rhythmdb_property_model_compare),
13070         (rhythmdb_property_model_insert),
13071         (rhythmdb_property_model_delete_prop): Fix property model sorting
13072         where the display and sort keys are different. Fixes bug 321980.
13074 2005-11-22  James Livingston  <jrl@ids.org.au>
13076         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13077         when import as a file or passed on the command line, and load them as
13078         playlists.
13080 2005-11-22  James Livingston  <jrl@ids.org.au>
13082         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13084         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13085         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13086         a broken daap server. Fixes bug 321919.
13088 2005-11-22  James Livingston  <jrl@ids.org.au>
13090         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13091         drag-and-drop for both the episodes and feeds list.
13092         
13093         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13094         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13095         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13097         * widgets/rb-property-view.c: (rb_property_view_class_init),
13098         (rb_property_view_set_property), (rb_property_view_get_property),
13099         (rb_property_view_new), (rb_property_view_constructor):
13100         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13101         (rb_simple_view_new), (rb_simple_view_constructor):
13102         * widgets/rb-simple-view.h: add a "draggable" property to property
13103         views and set it to false for the feed list. Fixes bug 321284.
13105 2005-11-22  James Livingston  <jrl@ids.org.au>
13107         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13109         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13110         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13111         * sources/rb-ipod-source.c: (add_rb_playlist):
13112         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13113         (rb_playlist_source_set_property),
13114         (rb_playlist_source_get_property), (rb_playlist_source_new),
13115         (impl_receive_drag), (rb_playlist_source_add_location),
13116         (rb_playlist_source_new_from_xml):
13117         * sources/rb-playlist-source.h: give playlists and (optional)
13118         entry-type, and reject entries that don't match. Fixes bug 322006.
13120 2005-11-21  James Livingston  <jrl@ids.org.au>
13122         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13123         (rb_source_header_finalize): remove the weak references when the
13124         source header is finalised. Stops the callbacks being called after the
13125         object is destroyed.
13127 2005-11-21  James Livingston  <jrl@ids.org.au>
13129         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13130         --no-registration was passed. It causes warnings that make it
13131         impossible to run with --no-registration --g-fatal-warnings
13133 2005-11-21  James Livingston  <jrl@ids.org.au>
13135         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13136         of strings when they are still in use. Fixes bug 321547.
13138         (rb_daap_connection_destroy): fix memory leak
13140 2005-11-21  James Livingston  <jrl@ids.org.au>
13142         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13143         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13144         (rb_daap_mdns_resolve_cancel), (publish_cb),
13145         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13146         support.
13148 2005-11-21  James Livingston  <jrl@ids.org.au>
13150         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13151         sorting by genre
13153 2005-11-20  James Livingston  <jrl@ids.org.au>
13155         * podcast/rb-podcast-manager.c:
13156         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13157         that we don't leak thread structures. Fixes bug 321636, and probably
13158         321775.
13160 2005-11-20  James Livingston  <jrl@ids.org.au>
13162         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13163         (lookup_cd):
13164         * podcast/rb-podcast-manager.c: (start_job),
13165         (rb_podcast_manager_db_entry_deleted_cb),
13166         (rb_podcast_manager_entry_remove_cb):
13167         * podcast/rb-podcast-parse.c: (rb_insert_item),
13168         (rb_podcast_parse_load_feed):
13169         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13170         * shell/rb-removable-media-manager.c:
13171         (rb_removable_media_manager_append_media_source):
13172         * shell/rb-shell.c: (add_to_library_response_cb):
13173         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13174         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13175         * sources/rb-iradio-source.c:
13176         (stations_view_drag_data_received_cb):
13177         * sources/rb-library-source.c: (string_list_equal),
13178         (impl_get_extra_views), (impl_receive_drag):
13179         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13180         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13181         (impl_receive_drag):
13182         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13183         (rb_entry_view_append_column_custom), (harvest_entries):
13184         * widgets/rb-property-view.c:
13185         (rb_property_view_selection_changed_cb):
13186         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13187         switch from using g_list_append to g_list_prepend. This changes
13188         operations from O(n^2) to O(n), which in cases like deleting a lot of
13189         tracks can give huge improvements in speed. Closes bug 321696.
13191 2005-11-20  James Livingston  <jrl@ids.org.au>
13193         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13194         (rb_sourcelist_update_expander_visibility): fix indenting of child
13195         sources.
13197 2005-11-20  James Livingston  <jrl@ids.org.au>
13199         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13200         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13201         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13202         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13203         (add_service), (entry_group_cb): dynamically allocate memory, rather
13204         than using static variables.
13206         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13207         re-enable the daap share if the name hasn't changed.
13208         * shell/rb-shell-preferences.c:
13209         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13210         change it's name when the checkbox is disabled. Fixed bug 321748.
13212 2005-11-18  James Livingston  <jrl@ids.org.au>
13214         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13215         as hidden if it is on the current workspace.
13217 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13219         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13220         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13221         (rb_podcast_properties_dialog_parse_time): 
13222         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13223         (rb_feed_podcast_properties_dialog_parse_time):
13224         Rework the way the last mod time strings are created.  It was using
13225         thread unsafe functions, not creating value UTF, and not not checking
13226         the value of the result before modifying it.  This new method fixes
13227         these problems.
13229 2005-11-18  James Livingston  <jrl@ids.org.au>
13231         Don't reset the search box when viewing a different source, because it
13232         will change what is being played. Closes 321593.
13234         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13235         the search box
13237         * shell/rb-source-header.c: (rb_source_header_class_init),
13238         (rb_source_header_init), (rb_source_header_finalize): use
13239         G_DEFINE_TYPE.
13241         (rb_source_header_set_property),
13242         (rb_source_header_source_weak_destroy_cb),
13243         (rb_source_header_search_cb): store the search text when leaving a
13244         source and put it in the search box when viewing it again.
13246 2005-11-18  James Livingston  <jrl@ids.org.au>
13248         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13249         (save_entry):
13250         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13251         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13252         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13253         time stamp.
13255         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13256         last-seen as the timestamp of the last update of the feed. Don't
13257         re-add episodes that have been deleted. Closes 319759.
13259 2005-11-18  James Livingston  <jrl@ids.org.au>
13261         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13262         that don't have the day name at the start. Closes 321645.
13264 2005-11-18  James Livingston  <jrl@ids.org.au>
13266         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13267         (rb_podcast_manager_copy_post),
13268         (rb_podcast_manager_get_podcast_dir):
13269         * podcast/rb-podcast-manager.h:
13270         * sources/rb-podcast-source.c: (impl_get_config_widget),
13271         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13272         download location switching to / if the prefs were opened before
13273         downloading an episode. Closes 321611.
13275 2005-11-18  James Livingston  <jrl@ids.org.au>
13277         * data/glade/podcast-new.glade:
13278         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13279         (rb_new_podcast_dialog_set_property),
13280         (rb_new_podcast_dialog_get_property),
13281         (rb_new_podcast_dialog_response_cb),
13282         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13283         for entering new podcast urls in. Closes bug 321610.
13285 2005-11-18  James Livingston  <jrl@ids.org.au>
13287         * sources/rb-podcast-source.c: (construct_query_from_selection),
13288         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13289         without restarting RB. Closes bug 321612.
13291 2005-11-18  James Livingston  <jrl@ids.org.au>
13293         * widgets/rb-entry-view.c: (set_column_visibility),
13294         (rb_entry_view_sync_columns_visible): when changing visibility of one
13295         column, don't hide and re-show all the others. Makes a show/hide
13296         column operation a lot faster.
13298 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13300         Closes bug 321702.
13302         * iradio/rb-station-properties-dialog.c
13303          (rb_station_properties_dialog_update_bitrate):
13304         Mark the bitrate value as being kbps, using the same
13305         translatable format string as rb-song-info.c
13307         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13308          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13310         * shell/rb-shell-player.c (info_available_cb):
13311          Use RB_METADATA_FIELD_BITRATE to update the iradio
13312          station's bitrate value.
13314 2005-11-17  James Livingston  <jrl@ids.org.au>
13316         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13318         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13319         free a NULL date.
13321 2005-11-17  James Livingston  <jrl@ids.org.au>
13323         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13325         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13326         assertions. Lookup the icon size correctly.
13328 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13330         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13331         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13332         Fix build errors.
13334 2005-11-16  James Livingston  <jrl@ids.org.au>
13336         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13337         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13338         (rb_shell_preferences_sync_column_button): block the toggle signal of
13339         the column checkboxes while setting their initial state. This stops
13340         the visibility being re-set, which causes a lot of time being spent
13341         measuring the columns aagin when opening the prefs window.
13343         Use G_DEFINE_TYPE.
13345 2005-11-16  James Livingston  <jrl@ids.org.au>
13347         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13348         (rb_sourcelist_edit_source_name): don't assume that the editable
13349         source name is in the first column, because it isn't. Fixes bug
13350         320137.
13352 2005-11-16  James Livingston  <jrl@ids.org.au>
13354         * daapsharing/rb-daap-mdns.h:
13355         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13356         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13357         parts can know why operations failed. Avahi can report that the daemon
13358         was not running. Howl doesn't do this (yet).
13359         
13360         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13361         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13362         (browse_cb): don't display mdns errors to the user, if it wa because
13363         the daemon was not running.
13365 2005-11-16  James Livingston  <jrl@ids.org.au>
13367         * rhythmdb/rhythmdb-property-model.c:
13368         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13369         (rhythmdb_property_model_compare),
13370         (rhythmdb_property_model_insert),
13371         (rhythmdb_property_model_insert_prop),
13372         (rhythmdb_property_model_delete),
13373         (rhythmdb_property_model_delete_prop),
13374         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13375         copying the string and re-creating the sort key. Saves a little bit of
13376         memory and time.
13378         (rhythmdb_property_model_perform_sync),
13379         (rhythmdb_property_model_sync): perform the count sync in an idle
13380         callback, so that it doesn't have to be re-run once per value when
13381         loading.
13383 2005-11-16  James Livingston  <jrl@ids.org.au>
13385         * rhythmdb/rhythmdb-query-model.c:
13386         (rhythmdb_query_model_entry_deleted_cb),
13387         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13388         limited list. Stops problems if they are deleted, and then things on
13389         the main list are
13391 2005-11-16  James Livingston  <jrl@ids.org.au>
13393         * NEWS: update NEWS
13395         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13396         button's minimise-to-tray action
13398 2005-11-16  James Livingston  <jrl@ids.org.au>
13400         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13401         leak. Disable adding newly created files for now, because it doesn't
13402         work properly.
13404         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13405         (rb_sourcelist_model_finalize):
13406         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13407         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13409 2005-11-16  James Livingston  <jrl@ids.org.au>
13411         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13412         problem where a GError* wasn't being set to NULL. Actually check the
13413         result.
13415 2005-11-16  James Livingston  <jrl@ids.org.au>
13417         * doc/reference/tmpl/rb-entry-view.sgml:
13418         * doc/reference/tmpl/rhythmbox-unused.sgml:
13419         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13420         * doc/reference/tmpl/rhythmdb.sgml:
13421         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13422         docs, including the patch that was on bug 
13424         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13425         API, because it should only be used by RhythmDB itself.
13427 2005-11-16  James Livingston  <jrl@ids.org.au>
13429         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13430         pausing by middle clicking on the tray icon.
13432 2005-11-15  James Livingston  <jrl@ids.org.au>
13434         * configure.ac: enable audioscrobbler support by default, if libsoup
13435         is present.
13437 2005-11-15  James Livingston  <jrl@ids.org.au>
13439         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13440         Closes bug 321157.
13442         * configure.ac:
13443         * daapsharing/rb-daap-connection.c: (build_message),
13444         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13445         support gzip encoded daap connections.
13447         (handle_song_listing): fix leak
13449 2005-11-15  James Livingston  <jrl@ids.org.au>
13451         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13452         * sources/rb-podcast-source.c:
13453         (rb_podcast_source_post_date_cell_data_func): make the date format
13454         translatable again, so that translators can choose the best format for
13455         their locale (%x is huge in some locales)
13457 2005-11-15  James Livingston  <jrl@ids.org.au>
13459         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13460         (end_job): mark podcast episodes as failed, if the metadata load
13461         fails. This will prevent people playing non-audio enclosures, helping
13462         stop bug 320366.
13464 2005-11-14  James Livingston  <jrl@ids.org.au>
13466         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13467         video sink to fakesink. This will stop problems (potentially crashers)
13468         that will occur if the file contains a video stream.
13470         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13471         rather than using magic numbers everywhere.
13473         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13474         * sources/rb-podcast-source.c:
13475         (rb_podcast_source_songs_show_popup_cb),
13476         (rb_podcast_source_cmd_download_post),
13477         (rb_podcast_source_post_status_cell_data_func),
13478         (rb_podcast_source_entry_activated_cb): use the above constants.
13480         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13481         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13482         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13483         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13484         (cancel_job), (download_progress_cb),
13485         (rb_podcast_manager_cancel_download),
13486         (rb_podcast_manager_insert_feed): use the constants, and fix a
13487         trhead-safety issue.
13489 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13491         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13492         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13493         entry-changed events after stats on startup, fixes entry deleted from
13494         filtered views not disappearing
13496 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13498         Fix rhythmdb query model refcount and polling problems. Closes bug
13499         321410.
13501         * rhythmdb/rhythmdb-property-model.c:
13502         (rhythmdb_property_model_finalize):
13503          Unref the query model if we have one.
13505         * rhythmdb/rhythmdb-query-model.h:
13506          Remove poll and cancel methods.  Query cancellation
13507          never did anything anyway.
13509         * rhythmdb/rhythmdb-query-model.c:
13510         (rhythmdb_query_model_init): Remove GAsyncQueues.
13511          Replace the GAsyncQueue-based update processing
13512          with a simpler g_idle_add approach; still has the
13513          same queueing properties, but now we don't poll the
13514          model forever and updates are processed immediately.
13516         (_unref_entry), (rhythmdb_query_model_finalize):
13517          Unref DB entries when finalized
13519         (rhythmdb_query_model_has_pending_changes):
13520          Use our own counter to decide if there are updates pending
13522         (rhythmdb_query_model_process_update), (idle_process_update):
13523          Process updates using g_idle_add, or directly if possible
13525         (rhythmdb_query_model_signal_complete),
13526         (rhythmdb_query_model_add_entries):
13527          Change to new update processing method
13529         (idle_poll_model), (rhythmdb_query_model_poll):
13530          Remove GAsyncQueue-based update processing.
13532         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13533          No need to poll the model any more - updates are processed
13534          directly for synchronous queries.
13536         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13537          Property model needs to be unref'd here
13539         * sources/rb-library-source.c: (rb_library_source_do_query):
13540          Don't try to cancel the active query (it never worked anyway),
13541          remove obsolete poll call, unref property models as required,
13542          and don't unref the cached 'all' query, since hold on to it.
13543          We unref it when the sort order changes, which forces the query
13544          to be rerun.
13546         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13547          Unref the property model as required
13549         (rb_podcast_source_do_query):
13550          Treat any query with no selected feeds and no search text as
13551          an 'all' query.  Unref query models except for the cached
13552          'all' query, since we hold on to that.
13554         (rb_podcast_source_cmd_update_all):
13555          Unref the property model as required.
13557         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13558          Don't try to cancel the query (it never worked anyway)
13560         (rb_entry_view_poll_model):
13561          No need for this any more.
13563         * widgets/rb-entry-view.h:
13564          Remove obsolete function rb_entry_view_poll_model
13566         * widgets/rb-property-view.c: (rb_property_view_set_property):
13567          Ref and unref the property model as required.
13569 2005-11-14  James Livingston  <jrl@ids.org.au>
13571         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13573         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13574         for error. Closes bug 321416.
13576 2005-11-14  James Livingston  <jrl@ids.org.au>
13578         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13580         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13581         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13583 2005-11-14  James Livingston  <jrl@ids.org.au>
13585         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13586         * shell/rb-removable-media-manager.c:
13587         (rb_removable_media_manager_set_uimanager):
13588         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13589         translation domain for GTK action groups.
13591 2005-11-12  James Livingston  <jrl@ids.org.au>
13593         * po/POTFILES.in: remove the old station-new files
13595 2005-11-12  James Livingston  <jrl@ids.org.au>
13597         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13598         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13599         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13600         when upgrading from a pre-Date-supporting version to a version that
13601         supports Date metadata. Closes bug 320760.
13603 2005-11-12  James Livingston  <jrl@ids.org.au>
13605         Add "update all podcast feeds" command. Closes bug 319954.
13607         * data/ui/rhythmbox-ui.xml: add to source context menu.
13609         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13610         (register_action_group), (rb_podcast_source_cmd_download_post),
13611         (rb_podcast_source_cmd_delete_feed),
13612         (rb_podcast_source_cmd_properties_feed),
13613         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13614         rather than the shell.
13616         (rb_podcast_source_update_feed_func),
13617         (rb_podcast_source_cmd_update_all): update every feed.
13619 2005-11-11  James Livingston  <jrl@ids.org.au>
13621         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13622         (rb_shell_player_constructor), (rb_shell_player_finalize):
13623         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13624         others follow the HIG recommentations.
13626 2005-11-11  James Livingston  <jrl@ids.org.au>
13628         * podcast/rb-podcast-manager.c:
13629         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13630         before trying to use it.
13632 2005-11-11  James Livingston  <jrl@ids.org.au>
13634         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13635         (rb_entry_view_append_column): When sorting by year, sort by album
13636         within a particular year.
13638 2005-11-11  James Livingston  <jrl@ids.org.au>
13640         * NEWS: updates
13642 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13643         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13644         spelling of "Language."
13646 2005-11-11  James Livingston  <jrl@ids.org.au>
13648         * rhythmdb/rhythmdb-property-model.c:
13649         (rhythmdb_property_model_row_inserted_cb),
13650         (rhythmdb_property_model_prop_changed_cb),
13651         (rhythmdb_property_model_entry_removed_cb),
13652         (rhythmdb_property_model_insert_prop),
13653         (rhythmdb_property_model_sync): display the count after the "All"
13654         entry of a property model.
13656         * widgets/rb-property-view.c: (rb_property_view_class_init),
13657         (rb_property_view_finalize), (rb_property_view_constructor): use
13658         G_DEFINE_TYPE
13660 2005-11-10  James Livingston  <jrl@ids.org.au>
13662         * rhythmdb/rhythmdb-query-model.c:
13663         (rhythmdb_query_model_remove_entry):
13664         * rhythmdb/rhythmdb-query-model.h: make
13665         rhythmdb_query_model_remove_entry return whether the entry was in the
13666         model.
13668         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13669         don't add non-SONG entries, as it doesn't really work and can cause
13670         crashes.
13672         (rb_playlist_source_remove_location): assert if the playlist and model
13673         differ on whether the entry is in the playlist
13675 2005-11-10  James Livingston  <jrl@ids.org.au>
13677         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13678         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13679         (rb_podcast_manager_thread_parse_feed),
13680         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13681         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13682         emulating one with a list and mutex. Fixes a couple of threading
13683         issues.
13684         
13685         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13686         updated feeds.
13687         
13688         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13689         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13690         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13691         * podcast/rb-podcast-parse.c: (rb_insert_item),
13692         (rb_podcast_parse_channel_free):
13693         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13694         fix some typos, and make a bit of code clearer.
13696 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13698         Make the "delete podcast" dialog better. Closes bug 320899.
13700         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13701         Add PROP_WINDOW for rb_shell_get_property so we can access the
13702         GtkWindow widget of the main window. 
13703         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13704         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13705         podcast feed delete dialog less confusing as well.
13707 2005-11-09  James Livingston  <jrl@ids.org.au>
13709         * shell/rb-removable-media-manager.c:
13710         (rb_removable_media_manager_mount_volume),
13711         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13712         NULL for a cd volume.
13714 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13716         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13717         method return a gboolean indicating whether the changes
13718         to the entry have already been applied.
13720         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13721         only modify the entry if impl_entry_set returns FALSE.
13723         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13724         When setting the location of an entry, update the
13725         hash table mapping locations to entries.
13727 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13729         * data/glade/Makefile.am:
13730         * iradio/Makefile.am:
13731           Remove 'new station' dialog.
13733         * iradio/rb-station-properties-dialog.h:
13734         * sources/rb-iradio-source.c: (impl_song_properties):
13735         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13736          Add 'new station' mode parameter to
13737          rb_station_properties_dialog_new.
13739         * (rb_station_properties_dialog_response_cb),
13740         (rb_station_properties_dialog_create_station):
13741          When in 'new station' mode, create the station
13742          when OK button is pressed.
13744         * iradio/rb-station-properties-dialog.c:
13745         (rb_station_properties_dialog_location_changed_cb):
13746          Only enable OK button if a location is specified
13747         (rb_station_properties_dialog_init),
13748         (rb_station_properties_dialog_new),
13749         (rb_station_properties_dialog_update),
13750         (rb_station_properties_dialog_update_title),
13751         (rb_station_properties_dialog_rated_cb),
13752         (rb_station_properties_dialog_update_play_count),
13753         (rb_station_properties_dialog_update_bitrate),
13754         (rb_station_properties_dialog_update_last_played),
13755         (rb_station_properties_dialog_update_rating),
13756         (rb_station_properties_dialog_update_playback_error),
13757         (rb_station_properties_dialog_show):
13758          Handle 'new station' mode, where there's no current
13759          station to edit.
13761 2005-11-08  James Livingston  <jrl@ids.org.au>
13763         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13764         keybinding for track columns consistent between library and playlist
13765         sources.
13767 2005-11-07  James Livingston  <jrl@ids.org.au>
13769         * data/ui/rhythmbox-ui.xml:
13770         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13771         "Edit" item to playlist menu. Closes bug 311470.
13773 2005-11-07  James Livingston  <jrl@ids.org.au>
13775         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13777         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13778         confirmation to save dialogs, with gtk 2.8 or higher.
13780 2005-11-07 James Livingston  <jrl@ids.org.au>
13781         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13782         requirement to a general on, because people are going to have it for
13783         the other dependencies.
13785 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13787         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13788         delete dialog less confusing.  Use HIG recommended button order.
13789         Closes bug 320840.
13791 2005-11-06  James Livingston  <jrl@ids.org.au>
13793         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13794         drag-and-drop error.
13795         
13796         * sources/rb-library-source.c: (rb_library_source_constructor): only
13797         add drag-and-drop for the Library itself, subclasses can add support
13798         themselves if they want it.
13800         * sources/rb-removable-media-source.c:
13801         (rb_removable_media_source_class_init): by default removable media
13802         sources do not support dnd
13804 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13806         * data/glade/station-properties.glade:
13807          Add box containing error icon and error message label
13808         * iradio/rb-station-properties-dialog.c:
13809         (rb_station_properties_dialog_class_init),
13810         (rb_station_properties_dialog_finalize):
13811          Change this class to use G_DEFINE_TYPE
13812         (rb_station_properties_dialog_init),
13813         (rb_station_properties_dialog_update),
13814         (rb_station_properties_dialog_update_playback_error):
13815          Display error icon and message when there is one, and hide the error
13816          box otherwise.
13817         (rb_station_properties_dialog_show): Hack widget show
13818          method to update the visibility of the error info box when showing
13819          the widget.  Otherwise the icon is displayed all the time (same thing
13820          is done in rb-song-info). Closes bug 320749.
13822 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13824         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13825         parsing of the duration of podcast episodes from the feed. Closes bug
13826         320748.
13828 2005-11-05  James Livingston  <jrl@ids.org.au>
13830         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13831         release date metadata ("Year"). Closes bug 166093.
13833         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13834         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13835         (rb_metadata_gst_add_tag_data):
13836         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13837         (save_entry):
13838         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13839         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13840         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13841         (rhythmdb_prop_get_type):
13842         * rhythmdb/rhythmdb.h: add support for "date" property
13843         
13844         * data/glade/general-prefs.glade:
13845         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13846         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13847         (rb_entry_view_append_column):
13848         * widgets/rb-entry-view.h:
13849         * sources/rb-library-source.c: (rb_library_source_constructor):
13850         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13851         "Year" colums
13853         * data/glade/song-info.glade:
13854         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13855         (rb_song_info_construct_single), (rb_song_info_constructor),
13856         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13857         (rb_song_info_sync_entry_single): Add "Year" to song info window
13859         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13860         sorted by year.
13862 2005-11-05  James Livingston  <jrl@ids.org.au>
13864         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13865         description if it's very long.
13867 2005-11-05  James Livingston  <jrl@ids.org.au>
13869         pathc by: Artem Baguinski <femistofel@gmail.com>
13871         * help/C/Makefile.am:
13872         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13873         Closes bug 320613.
13875 2005-11-05  James Livingston  <jrl@ids.org.au>
13877         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13879         * daapsharing/rb-daap-share.c: (write_next_chunk),
13880         (message_finished), (databases_cb): Use chunked file loading and
13881         sending in the DAAP server. This should reduce the amount of memory
13882         required to send files to the client.
13884 2005-11-05  James Livingston  <jrl@ids.org.au>
13886         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13887         work better on some systems. Closes 320622.
13889 2005-11-05  James Livingston  <jrl@ids.org.au>
13891         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13892         homepage, so that users can find out what AudioScrobbler is. Add
13893         access keys.
13895         * data/glade/daap-prefs.glade:
13896         * data/glade/general-prefs.glade:
13897         * data/glade/library-prefs.glade: make the indent be more consistent
13899         * data/glade/podcast-prefs.glade: 
13900         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13901         (impl_get_config_widget): move thing out of code into glade, where
13902         they belong
13904 2005-11-05  James Livingston  <jrl@ids.org.au>
13906         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13907         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13909 2005-11-04  James Livingston  <jrl@ids.org.au>
13911         * configure.ac: don't print DAAP configure info twice
13913 2005-11-04  James Livingston  <jrl@ids.org.au>
13915         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13916         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13917         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13918         #ifdefs, since we removed the symbol. Oops
13920 2005-11-04  James Livingston  <jrl@ids.org.au>
13922         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13923         after the connect line, not before. Oops.
13925 2005-11-04  James Livingston  <jrl@ids.org.au>
13927         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13928         fix some warnings
13930 2005-11-03  James Livingston  <jrl@ids.org.au>
13932         * NEWS: update the news file
13934         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13935         "duration" column.
13937         * data/ui/rhythmbox-ui.xml:
13938         * shell/rb-playlist-manager.c:
13939         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13940         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13941         and "delete" for feeds.
13943 2005-11-03  James Livingston  <jrl@ids.org.au>
13945         * sources/rb-podcast-source.c: (impl_delete),
13946         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13947         feed. Closes 319760.
13949 2005-11-03  James Livingston  <jrl@ids.org.au>
13951         Don't start playing from the remote site when a un-downloaded podcast
13952         is activated. Closes 319983.
13953         
13955         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13956         (write_job_data), (download_progress_cb): write the local location as
13957         soon as any data is recieved
13959         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13960         the mountpoint to NULL for podcast episodes that haven't yet been
13961         downloaded.
13962         
13963         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13964         start playing a podcast if it hasn't been downloaded.
13965         
13966         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13967         (rb_podcast_source_entry_activated_cb): begin downloading when the
13968         podcast is activated.
13970 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13972         * data/glade/general-prefs.glade:  Fix capitalization.
13973         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13974         * sources/rb-podcast-source.c:
13975         (rb_podcast_source_songs_show_popup_cb),
13976         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13978 2005-11-03  James Livingston  <jrl@ids.org.au>
13980         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13982         * shell/rb-removable-media-manager.c:
13983         (rb_removable_media_manager_mount_volume): don't check network or
13984         autofs mounts, as they're not going to be removable media. Stops
13985         sending lots of warnings to syslog. Closes 320571.
13987         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13988         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13989         320570.
13991 2005-11-03  James Livingston  <jrl@ids.org.au>
13993         Add support for playing audio CDs. Metadata lookup is done using
13994         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13995         the library when it gets broken out of S-J.
13996         
13997         Add a "rescan media" menu item, and commands for ejecting removable
13998         media.
14000         Move nautilus-cd-burner from optional to required depenency.
14002         * configure.ac:
14003         * data/ui/rhythmbox-ui.xml:
14004         * metadata/Makefile.am:
14005         + metadata/sj-error.c:
14006         + metadata/sj-error.h:
14007         + metadata/sj-metadata-marshal.list:
14008         + metadata/sj-metadata-musicbrainz.c:
14009         + metadata/sj-metadata-musicbrainz.h:
14010         + metadata/sj-metadata.c:
14011         + metadata/sj-metadata.h:
14012         + metadata/sj-structures.c:
14013         + metadata/sj-structures.h:
14014         * player/Makefile.am:
14015         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14016         * po/POTFILES.in:
14017         * shell/Makefile.am:
14018         * shell/rb-removable-media-manager.c:
14019         (rb_removable_media_manager_dispose), (poll_tray_opened),
14020         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14021         (rb_removable_media_manager_load_media),
14022         (rb_removable_media_manager_mount_volume),
14023         (rb_removable_media_manager_cmd_eject_medium),
14024         (rb_removable_media_manager_cmd_scan_media),
14025         (rb_removable_media_manager_check_volume),
14026         (rb_removable_media_manager_unmount_volume_swap),
14027         (rb_removable_media_manager_scan):
14028         * sources/Makefile.am:
14029         + sources/rb-audiocd-source.c:
14030         + sources/rb-audiocd-source.h:
14031         * tests/Makefile.am:
14033 2005-11-02  James Livingston  <jrl@ids.org.au>
14035         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14037         * sources/rb-iradio-source.c:
14038         (stations_view_drag_data_received_cb):
14039         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14040         don't crash when the second uri is missing frm the drop, which
14041         browsers sometimes do.
14043 2005-11-01  James Livingston  <jrl@ids.org.au>
14045         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14046         (rb_podcast_manager_insert_feed):
14047         * podcast/rb-podcast-manager.h:
14048         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14049         (rb_set_item_value), (rb_validate_item_propert),
14050         (rb_podcast_parse_date), (rb_podcast_parse_time):
14051         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14052         from the feed.
14054 2005-10-31  James Livingston  <jrl@ids.org.au>
14056         * ChangeLog:
14057         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14058         huge
14060 2005-10-31  James Livingston  <jrl@ids.org.au>
14062         * sources/rb-podcast-source.c:
14063         (rb_podcast_source_post_date_cell_data_func): generate the date string
14064         in a way that is correct in all locales.
14065         
14066         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14067         (rhythmdb_entry_sync_mirrored): make the last played/date added
14068         columns use the same format.
14070 2005-10-30  James Livingston  <jrl@ids.org.au>
14073         * podcast/rb-podcast-manager.c:
14074         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14075         
14076         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14077         iradio errors better.
14079 2005-10-30  James Livingston  <jrl@ids.org.au>
14081         patch by: Artem Baguinski <femistofel@gmail.com>
14083         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14085 2005-10-30  James Livingston  <jrl@ids.org.au>
14087         * podcast/rb-podcast-manager.c:
14088         (rb_podcast_manager_subscribe_feed),
14089         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14090         already been added, usually as a radio station. Closes 319434.
14092 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14094         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14095         mnemonics & resize issues)
14096         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14097         & mnemonics)
14098         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14099         widget for the "download location" label.
14101         Closes bug 320184.
14103 2005-10-29  James Livingston  <jrl@ids.org.au>
14105         Allow the search box to match words from multiple properties. Closes
14106         bug 139196. Thanks to the person from IRC who did a lot of the initial
14107         work.
14110         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14111         * lib/rb-util.h: Add functions to split a string into words, and one
14112         to perform "search folding" which is currently like casefolding but
14113         also strips punctuation
14114         
14115         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14116         (rhythmdb_query_preprocess):
14117         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14118         against title, artist, album and genre (for the search box)
14119         
14120         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14121         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14122         (save_entry), (search_match_properties),
14123         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14124         splitting into words and matching across multiple properties.
14125         
14126         * sources/rb-library-source.c: (construct_query_from_selection): use
14127         the new SEARCH_MATCH property for the search box
14128         
14129         * widgets/rb-entry-view.c: (type_ahead_search_func):
14131 2005-10-29  James Livingston  <jrl@ids.org.au>
14133         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14134         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14135         
14136         * shell/rb-playlist-manager.c:
14137         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14138         correctly.
14139         
14140         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14141         initial state of the shuffle/repeat menu items correctly. Patch from
14142         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14144 2005-10-29  James Livingston  <jrl@ids.org.au>
14146         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14147         double-free.
14148         
14149         * widgets/rb-cell-renderer-pixbuf.c:
14150         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14151         icon go black when row is not selected
14152         
14153         * doc/reference/tmpl/rb-daap-connection.sgml:
14154         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14156 2005-10-29  James Livingston  <jrl@ids.org.au>
14158         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14159         silly mistake, where it could think partial downloads has been
14160         completed.
14162 2005-10-29  James Livingston  <jrl@ids.org.au>
14164         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14166         * data/glade/song-info.glade:
14167         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14168         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14169         (rb_song_info_sync_entry_single): show the disc number in the song
14170         info window. From bug 311199.
14172 2005-10-29  James Livingston  <jrl@ids.org.au>
14174         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14175         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14176         regularly. Closes 155306.
14178 2005-10-29  James Livingston  <jrl@ids.org.au>
14180         * podcast/rb-podcast-manager.c:
14181         (rb_podcast_manager_download_entry),
14182         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14183         (rb_podcast_manager_insert_feed):
14184         * podcast/rb-podcast-manager.h:
14185         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14186         (rb_podcast_parser_start_element):
14187         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14188         don't download them again. However, it can't resume
14189         partially-downloaded ones.
14191 2005-10-28  James Livingston  <jrl@ids.org.au>
14193         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14194         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14195         work. Don't attempt to write duration as a tag.
14197         Thanks to Artem Baguinski <femistofel@gmail.com>
14199 2005-10-28  James Livingston  <jrl@ids.org.au>
14201         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14202         don't disable the status-bar menu item when the current source doesn't
14203         use the search box.
14205 2005-10-28  James Livingston  <jrl@ids.org.au>
14207         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14208         crash if the file has unknown length
14210 2005-10-27  James Livingston  <jrl@ids.org.au>
14212         * daapsharing/rb-daap-connection.c:
14213         (rb_daap_connection_state_done): don't assert when a daap server
14214         doesn't have any playlists
14216 2005-10-27  James Livingston  <jrl@ids.org.au>
14218         * sources/rb-sourcelist-model.c:
14219         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14220         source for the sourcelist. Closes bug 319817.
14222 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14224         Patch by: Renato Araujo <renatox@gmail.com>
14226         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14227           Fix for a crasher caused by previous patch.
14229 2005-10-26  James Livingston  <jrl@ids.org.au>
14231         * data/glade/podcast-prefs.glade:
14232         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14233         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14234         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14235         * podcast/rb-podcast-manager.c:
14236         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14237         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14238         * shell/rb-shell.c: Change some strings to make them more consistent.
14239         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14240         makes it clearer which is which. "Episode" may not be the best term,
14241         but it seems to be widely used.
14242         
14243         Also fix some strings that weren't marked as translatable.
14244         
14245         * podcast/rb-feed-podcast-properties-dialog.c:
14246         (rb_feed_podcast_properties_dialog_class_init),
14247         (rb_feed_podcast_properties_dialog_finalize):
14248         * podcast/rb-new-podcast-dialog.c:
14249         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14250         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14251         (rb_simple_view_finalize), (rb_simple_view_constructor):
14252         * podcast/rb-podcast-properties-dialog.c:
14253         (rb_podcast_properties_dialog_class_init),
14254         (rb_podcast_properties_dialog_finalize):
14255         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14256         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14257         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14258         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14259         use G_DEFINE_TYPE, instead of doing it manually.
14261 2005-10-26  James Livingston  <jrl@ids.org.au>
14263         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14264         <jrl@ids.org.au>
14266         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14267         (rb_metadata_init): Check that the necessary plugins are present to do
14268         id3 editing.
14269         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14270         corrupted before replacing the original.
14272 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14274         reviewed by: James Livingston <jrl@ids.org.au>
14276         Assign sequential IDs to playlists for DAAP rather than using the
14277         address of the playlist object.  Less flaky, and should work on 64bit
14278         platforms. Closes bug 319304.
14280         * daapsharing/rb-daap-share.c: 
14281         (rb_daap_share_set_property): watch for playlist creation
14282         (_find_by_id), (_find_by_source): playlist list search functions
14283         (rb_daap_share_playlist_created),
14284         (rb_daap_share_process_playlist),
14285         (rb_daap_share_playlist_destroyed):
14286          update playlist list as it changes, use weak refs on 
14287          playlists to get notified on destroy.
14288         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14289          destroy playlist list on shutdown
14290         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14291          DAAP response
14292         (databases_cb): search for playlist ID in list rather than just
14293          converting it to a pointer; return HTTP 404 if playlist not 
14294          found.
14295         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14296          is already used for the main library
14298 2005-10-26  James Livingston  <jrl@ids.org.au>
14300         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14302         * daapsharing/rb-daap-connection.c: (build_message),
14303         (http_response_handler), (http_get), (handle_server_info),
14304         (handle_login), (handle_update), (handle_database_info),
14305         (handle_song_listing), (handle_playlists),
14306         (handle_playlist_entries), (handle_logout),
14307         (rb_daap_connection_new), (rb_daap_connection_logout),
14308         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14309         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14310         * daapsharing/rb-daap-connection.h:
14311         * sources/rb-daap-source.c: (rb_daap_source_activate),
14312         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14313         (rb_daap_source_disconnect): Make connecting to DAAP sources
14314         asynchronous, so that non-responsive servers don't hang the UI. Closes
14315         316225.
14317 2005-10-26  James Livingston  <jrl@ids.org.au>
14319         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14321         * rhythmdb/rhythmdb-query-model.c:
14322         (rhythmdb_query_model_do_reorder): generate the row re-order map
14323         correctly.
14324         
14325         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14326         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14327         Update selection when rows get re-ordered. Closes 319718.
14329 2005-10-26  James Livingston  <jrl@ids.org.au>
14331         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14333         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14334         actually set the db pointer in play orders. Closes 319818.
14336 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14338         Patch by: Renato Araujo <renatox@gmail.com>
14340         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14341         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14342         (rb_podcast_manager_update_synctime),
14343         (rb_podcast_manager_config_changed),
14344         (rb_podcast_manager_insert_feed):
14345         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14346         (save_entry):
14347         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14348         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14349         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14351 2005-10-25  James Livingston  <jrl@ids.org.au>
14353         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14354         (db_entry_deleted_cb): don't share tracks that are hidden because the
14355         file is missing.
14357 2005-10-22  James Livingston  <jrl@ids.org.au>
14359         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14360         crash if an entry couldn't be playerd, without streamer setting an
14361         error.
14363         
14364         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14366         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14367         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14368         is pasted into the dialog.
14369         
14370         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14371         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14372         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14373         (rb_podcast_parse_channel_free):
14374         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14375         feeds
14377 2005-10-22  James Livingston  <jrl@ids.org.au>
14379         * sources/rb-iradio-source.c:
14380         (rb_iradio_source_first_time_changed): Make merging the default
14381         stations actually work.
14382         
14383         * sources/rb-podcast-source.c:
14384         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14385         people weren't seing the percentages in the stats column.
14387 2005-10-21  James Livingston  <jrl@ids.org.au>
14389         Patch from Caio Marcelo <cmarcelo@gmail.com>
14391         * shell/rb-shell.c: (rb_shell_window_state_cb),
14392         (rb_shell_get_visibility), (idle_hide_mainwindow),
14393         (rb_shell_set_visibility): Make the "show window" item in the tray
14394         icon menu show the toggle state correctly. Use a better policy on
14395         deciding whether the window is "visible" or not. Closes bug 308053.
14397 2005-10-21  James Livingston  <jrl@ids.org.au>
14399         * doc/reference/tmpl/rb-shell-preferences.sgml:
14400         * shell/Makefile.am: fix building with gtk-doc
14402         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14403         don't submit podcasts to audioscrobbler
14404         
14405         
14406         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14407         
14408         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14409         (rb_set_item_value): strip spaces surrounding podcast urls
14410         
14412         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14413         
14414         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14416 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14418         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14419          Audioscrobbler/Last.fm support
14421         * configure.ac:
14422         * data/glade/Makefile.am:
14423         * data/glade/audioscrobbler-prefs.glade:
14424         * data/rhythmbox.schemas:
14425         * lib/Makefile.am:
14426         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14427         * lib/md5.h:
14428         * lib/rb-preferences.h:
14429         * po/POTFILES.in:
14430         * shell/Makefile.am:
14431         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14432         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14433         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14434         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14435         (rb_audioscrobbler_timeout_cb), (mkmd5),
14436         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14437         (rb_audioscrobbler_do_handshake),
14438         (rb_audioscrobbler_do_handshake_cb),
14439         (rb_audioscrobbler_submit_queue),
14440         (rb_audioscrobbler_submit_queue_cb),
14441         (rb_audioscrobbler_import_settings),
14442         (rb_audioscrobbler_preferences_sync),
14443         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14444         (rb_audioscrobbler_gconf_changed_cb),
14445         (rb_audioscrobbler_song_changed_cb),
14446         (rb_audioscrobbler_username_entry_changed_cb),
14447         (rb_audioscrobbler_username_entry_activate_cb),
14448         (rb_audioscrobbler_password_entry_changed_cb),
14449         (rb_audioscrobbler_password_entry_activate_cb),
14450         (rb_audioscrobbler_enabled_check_changed_cb),
14451         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14452         (rb_audioscrobbler_load_entry_from_string),
14453         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14454         (rb_audioscrobbler_print_queue),
14455         (rb_audioscrobbler_free_queue_entries):
14456         * shell/rb-audioscrobbler.h:
14457         * shell/rb-shell-preferences.c:
14458         (rb_shell_preferences_append_audioscrobbler_config):
14459         * shell/rb-shell-preferences.h:
14460         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14461         (rb_shell_select_source), (rb_shell_cmd_preferences):
14462         * sources/Makefile.am:
14464 2005-10-21  James Livingston  <jrl@ids.org.au>
14466         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14468         * Makefile.am:
14469         * NEWS:
14470         * configure.ac:
14471         * data/art/Makefile.am:
14472         * data/glade/Makefile.am:
14473         * data/rhythmbox.schemas:
14474         * data/ui/rhythmbox-ui.xml:
14475         * doc/reference/Makefile.am:
14476         * doc/reference/tmpl/rhythmdb.sgml:
14477         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14478         * lib/rb-stock-icons.h:
14479         * po/POTFILES.in:
14480         * podcast/Makefile.am:
14481         + podcast/rb-feed-podcast-properties-dialog.c:
14482         + podcast/rb-feed-podcast-properties-dialog.h:
14483         + podcast/rb-new-podcast-dialog.c:
14484         + podcast/rb-new-podcast-dialog.h:
14485         + podcast/rb-podcast-manager.c:
14486         + podcast/rb-podcast-manager.h:
14487         + podcast/rb-podcast-marshal.list:
14488         + podcast/rb-podcast-parse.c:
14489         + podcast/rb-podcast-parse.h:
14490         + podcast/rb-podcast-properties-dialog.c:
14491         + podcast/rb-podcast-properties-dialog.h:
14492         * rhythmdb/rhythmdb-property-model.c:
14493         (rhythmdb_property_model_set_property),
14494         (rhythmdb_property_model_enable_drag):
14495         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14496         (rhythmdb_tree_parser_end_element), (save_entry),
14497         (rhythmdb_tree_save):
14498         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14499         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14500         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14501         (rhythmdb_entry_podcast_feed_get_type):
14502         * rhythmdb/rhythmdb.h:
14503         * shell/Makefile.am:
14504         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14505         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14506         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14507         (rb_shell_quit):
14508         * sources/Makefile.am:
14509         + sources/rb-podcast-source.c:
14510         + sources/rb-podcast-source.h:
14511         * widgets/Makefile.am:
14512         * widgets/rb-property-view.c: (rb_property_view_class_init),
14513         (rb_property_view_constructor),
14514         (rb_property_view_selection_changed_cb),
14515         (rb_property_view_get_treeview):
14516         * widgets/rb-property-view.h:
14517         + widgets/rb-simple-view.c:
14518         + widgets/rb-simple-view.h:
14520 2005-10-20  James Livingston  <jrl@ids.org.au>
14522         * NEWS: update with changes since 0.9.1
14524         * configure.ac: check whether collate_key_for_filename is available
14525         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14526         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14527         it if it isn't available in glib (i.e. building against 2.6)
14528         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14529         collation to get "natural sorting". Closes bug 158599.
14531 2005-10-20  James Livingston  <jrl@ids.org.au>
14533         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14535         * doc/reference/tmpl/rb-shell-player.sgml:
14536         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14537         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14538         (rb_shell_player_get_playing),
14539         (rb_shell_player_get_playing_time_string),
14540         (rb_shell_player_get_playing_time),
14541         (rb_shell_player_set_playing_time), (tick_cb),
14542         (rb_shell_player_get_playing_path), (filter_mmkeys):
14543         * shell/rb-shell-player.h:
14544         * shell/rb-shell-player.xml:
14545         * shell/rb-shell.c: (rb_shell_constructor),
14546         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14547         (rb_shell_set_window_title), (rb_shell_playing_impl),
14548         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14549         Merge the duration_changed and elapsed_changed DBUS signals into one
14550         elapsed_changed signal. Check that the output argument isn't NULL
14551         before trying to put things in it.
14553 2005-10-20  James Livingston  <jrl@ids.org.au>
14555         * rhythmdb/rhythmdb-query-model.c:
14556         (rhythmdb_query_model_entry_added_cb),
14557         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14558         problem where hidden entries could be shown in playlists.
14559         
14560         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14561         issues when switching in and out of small mode.
14563 2005-10-19  James Livingston  <jrl@ids.org.au>
14565         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14566         (rb_shell_constructor), (rb_shell_window_state_cb),
14567         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14568         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14569         (rb_shell_view_smalldisplay_changed_cb),
14570         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14571         (rb_shell_sync_paned): remove gconf window-state races, prevent
14572         changing small mode too often, fix window event races. Closes 122806.
14574         
14575         Patch from Caio Marcelo <cmarcelo@gmail.com>
14577         * data/rhythmbox.schemas:
14578         * shell/rb-shell.c: (rb_shell_window_state_cb),
14579         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14580         Remember the position of the window. Closes 315289.
14582 2005-10-19  James Livingston  <jrl@ids.org.au>
14584         Patch from Christophe Fergeau  <teuf@gnome.org>
14586         * configure.ac: determine whether libgpod is present when neither
14587         --with-ipod nor --without-ipod is passed
14589 2005-10-19  James Livingston  <jrl@ids.org.au>
14591         Patch from Caio Marcelo <cmarcelo@gmail.com>
14593         * shell/rb-shell-player.c: (do_next_idle),
14594         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14595         (rb_shell_player_do_previous_or_seek),
14596         (rb_shell_player_previous_button_cb),
14597         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14598         (rb_shell_player_cmd_next), (eos_cb):
14599         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14600         end of the playlist is reached.
14602 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14604         * lib/rb-thread.c: fix a few GSource leaks
14606 2005-10-19  James Livingston  <jrl@ids.org.au>
14608         * doc/reference/tmpl/bacon-volume.sgml:
14609         * doc/reference/tmpl/disclosure-widget.sgml:
14610         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14611         * doc/reference/tmpl/eggnotificationbubble.sgml:
14612         * doc/reference/tmpl/eggtrayicon.sgml:
14613         * doc/reference/tmpl/gsequence.sgml:
14614         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14615         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14616         * doc/reference/tmpl/rb-daap-connection.sgml:
14617         * doc/reference/tmpl/rb-daap-dialog.sgml:
14618         * doc/reference/tmpl/rb-daap-mdns.sgml:
14619         * doc/reference/tmpl/rb-daap-share.sgml:
14620         * doc/reference/tmpl/rb-daap-sharing.sgml:
14621         * doc/reference/tmpl/rb-daap-source.sgml:
14622         * doc/reference/tmpl/rb-daap-src.sgml:
14623         * doc/reference/tmpl/rb-daap-structure.sgml:
14624         * doc/reference/tmpl/rb-debug.sgml:
14625         * doc/reference/tmpl/rb-dialog.sgml:
14626         * doc/reference/tmpl/rb-druid.sgml:
14627         * doc/reference/tmpl/rb-entry-view.sgml:
14628         * doc/reference/tmpl/rb-enums.sgml:
14629         * doc/reference/tmpl/rb-file-helpers.sgml:
14630         * doc/reference/tmpl/rb-glade-helpers.sgml:
14631         * doc/reference/tmpl/rb-header.sgml:
14632         * doc/reference/tmpl/rb-history.sgml:
14633         * doc/reference/tmpl/rb-ipod-source.sgml:
14634         * doc/reference/tmpl/rb-iradio-source.sgml:
14635         * doc/reference/tmpl/rb-library-source.sgml:
14636         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14637         * doc/reference/tmpl/rb-metadata.sgml:
14638         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14639         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14640         * doc/reference/tmpl/rb-play-order-linear.sgml:
14641         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14642         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14643         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14644         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14645         * doc/reference/tmpl/rb-play-order-random.sgml:
14646         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14647         * doc/reference/tmpl/rb-play-order.sgml:
14648         * doc/reference/tmpl/rb-player.sgml:
14649         * doc/reference/tmpl/rb-playlist-manager.sgml:
14650         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14651         * doc/reference/tmpl/rb-playlist-source.sgml:
14652         * doc/reference/tmpl/rb-preferences.sgml:
14653         * doc/reference/tmpl/rb-property-view.sgml:
14654         * doc/reference/tmpl/rb-query-creator-private.sgml:
14655         * doc/reference/tmpl/rb-query-creator.sgml:
14656         * doc/reference/tmpl/rb-rating-helper.sgml:
14657         * doc/reference/tmpl/rb-rating.sgml:
14658         * doc/reference/tmpl/rb-recorder.sgml:
14659         * doc/reference/tmpl/rb-refstring.sgml:
14660         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14661         * doc/reference/tmpl/rb-removable-media-source.sgml:
14662         * doc/reference/tmpl/rb-search-entry.sgml:
14663         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14664         * doc/reference/tmpl/rb-shell-glue.sgml:
14665         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14666         * doc/reference/tmpl/rb-shell-player.sgml:
14667         * doc/reference/tmpl/rb-shell-preferences.sgml:
14668         * doc/reference/tmpl/rb-shell.sgml:
14669         * doc/reference/tmpl/rb-song-display-box.sgml:
14670         * doc/reference/tmpl/rb-song-info.sgml:
14671         * doc/reference/tmpl/rb-source-header.sgml:
14672         * doc/reference/tmpl/rb-source.sgml:
14673         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14674         * doc/reference/tmpl/rb-sourcelist.sgml:
14675         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14676         * doc/reference/tmpl/rb-statusbar.sgml:
14677         * doc/reference/tmpl/rb-stock-icons.sgml:
14678         * doc/reference/tmpl/rb-string-helpers.sgml:
14679         * doc/reference/tmpl/rb-thread.sgml:
14680         * doc/reference/tmpl/rb-tray-icon.sgml:
14681         * doc/reference/tmpl/rb-tree-dnd.sgml:
14682         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14683         * doc/reference/tmpl/rb-util.sgml:
14684         * doc/reference/tmpl/rhythmbox-unused.sgml:
14685         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14686         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14687         * doc/reference/tmpl/rhythmdb-tree.sgml:
14688         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14689         
14690         * doc/reference/Makefile.am: make docs build with changed ipod support
14691         
14692         * po/POTFILES.in: remove sources/itunesdb
14694 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14696         * sources/itunesdb.c:
14697         * sources/itunesdb.h: removed now useless files
14699 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14701         * configure.ac:
14702         * shell/Makefile.am:
14703         * sources/Makefile.am:
14704         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14705         code
14706         [1]: http://www.gtkpod.org/libgpod.html
14709 2005-10-18  James Livingston  <jrl@ids.org.au>
14711         patch from Funda Wang <fundawang@linux.net.cn>
14713         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14714         the notification bubble string translatable.
14716 ============ Version 0.9.1
14718 2005-10-16  James Livingston  <jrl@ids.org.au>
14720         * configure.ac: bump version to 0.9.1
14721         * NEWS: update translation credits
14723 2005-10-16  James Livingston  <jrl@ids.org.au>
14725         * rhythmdb/rhythmdb-query-model.c:
14726         (rhythmdb_query_model_class_init),
14727         (rhythmdb_query_model_drag_data_received): 
14728         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14729         notified when things are dropped into the entry view.
14730         
14731         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14732         (rb_playlist_source_add_location_swapped),
14733         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14734         (rb_playlist_source_non_entry_dropped),
14735         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14736         things onto a playlist's entry view work correctly, and doesn't cause
14737         crashes. Allow folders to be dropped as well. (Closes 318308)
14739 2005-10-16  James Livingston  <jrl@ids.org.au>
14741         * NEWS: Update some more
14743         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14744         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14745         with the paned size, so that it doesn't move when the window is
14746         maximised/restored. Closes bug 315852.
14748         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14749         display the playcount column, as it's useless (it never get changed).
14751 2005-10-14  James Livingston  <jrl@ids.org.au>
14753         * Makefile.am:
14754         * data/Makefile.am:
14755         * doc/reference/Makefile.am: get "make distcheck" to pass again
14757 2005-10-11  James Livingston  <jrl@ids.org.au>
14759         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14760         destroy the connection when retrieving the playlists fails, because
14761         tracks have already been added. Closes 318380.
14763 2005-10-11  James Livingston  <jrl@ids.org.au>
14765         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14766         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14767         (source_name_edited_cb): Ask for the columns to be resized when a
14768         source is added, deleted or changes name.
14770 2005-10-11  James Livingston  <jrl@ids.org.au>
14772         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14773         create a thread when processing a directory. This stops up created one
14774         thread for each file in a playlist we're trying to load. Closes
14775         317850.
14777         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14778         typo that made sort-by-artist not work correctly.
14780 2005-10-11  James Livingston  <jrl@ids.org.au>
14782         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14783         support is enabled
14785 2005-10-11  James Livingston  <jrl@ids.org.au>
14787         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14788         * lib/rb-file-helpers.h: add a function to turn uris into our
14789         canonical path-escaped form
14790         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14791         above function when import playlists. This will fix the problem of
14792         duplicate entries due to different representations of the uri (bug
14793         158211).
14795 2005-10-11  James Livingston  <jrl@ids.org.au>
14797         * shell/rb-shell.c: (rb_shell_get_visibility),
14798         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14799         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14800         window hiding so that Alt-F4 works again.
14802         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14803         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14804         (rb_entry_view_string_sort_func): Stop some crashes where a string
14805         property was set to NULL.
14807 2005-10-10  James Livingston  <jrl@ids.org.au>
14809         * doc/reference/rhythmbox.types: fix gtk-doc generation
14811 2005-10-09  James Livingston  <jrl@ids.org.au>
14813         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14814         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14815         accelerators, so that we don't have as many conflicting keys.
14817 2005-10-08  James Livingston  <jrl@ids.org.au>
14819         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14820         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14821         bug 129285.
14823 2005-10-07  James Livingston  <jrl@ids.org.au>
14825         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14826         local path names in the same way as every other URI. This should stop
14827         duplicates occurring due to different escapings. Closes bug 158211.
14829 2005-10-06  James Livingston  <jrl@ids.org.au>
14831         * NEWS: more updates
14832         
14833         patch from Jaap Haitsma <jaap@haitsma.org>:
14835         * configure.ac:
14836         * data/Makefile.am:
14837         * data/art/Makefile.am:
14838         - data/art/rhythmbox-paused.png:
14839         - data/art/rhythmbox-playback-error.png:
14840         - data/art/rhythmbox-playing.png:
14841         - data/art-clearlooks/:
14842         * lib/rb-file-helpers.c: (rb_file):
14843         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14844         * lib/rb-stock-icons.h:
14845         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14846         * widgets/rb-cell-renderer-pixbuf.c:
14847         (rb_cell_renderer_pixbuf_render):
14848         * widgets/rb-entry-view.c: (rb_entry_view_init),
14849         (rb_entry_view_set_playing):
14850         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14851         stock icons instead of custom art. Drop remanents of art-clearlooks.
14853 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14855         * configure.ac: Added ne in ALL_LINGUAS
14857 2005-10-02  James Livingston  <jrl@ids.org.au>
14859         * data/glade/Makefile.am: actually install the daap prefs glade file
14861 2005-09-30  James Livingston  <jrl@ids.org.au>
14863         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14864         translatable files, so that make check works and we don't annoy the
14865         translators.
14866         
14867         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14868         sanity checking, in case a db entry is missing some properties.
14870 2005-09-29  James Livingston  <jrl@ids.org.au>
14872         - lib/rb-string-helpers.c:
14873         - lib/rb-string-helpers.h:
14874         * lib/Makefile.am:
14875         * rhythmdb/rhythmdb-tree.c:
14876         * rhythmdb/rhythmdb.c:
14877         * shell/main.c: (main):
14878         * shell/rb-shell.c:
14879         * widgets/rb-entry-view.c:
14880         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14881         utility functions haven't been used in a while.
14883 2005-09-27  James Livingston  <jrl@ids.org.au>
14885         * data/art-clearlooks/Makefile.am:
14886         - data/art-clearlooks/rhythmbox-album.png:
14887         - data/art-clearlooks/rhythmbox-audiocd.png:
14888         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14889         - data/art-clearlooks/rhythmbox-dnd.png:
14890         - data/art-clearlooks/rhythmbox-ipod.png:
14891         - data/art-clearlooks/rhythmbox-iradio.png:
14892         - data/art-clearlooks/rhythmbox-library.png:
14893         - data/art-clearlooks/rhythmbox-next.png:
14894         - data/art-clearlooks/rhythmbox-pause.png:
14895         - data/art-clearlooks/rhythmbox-play.png:
14896         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14897         - data/art-clearlooks/rhythmbox-playlist.png:
14898         - data/art-clearlooks/rhythmbox-previous.png:
14899         - data/art-clearlooks/rhythmbox-repeat.png:
14900         - data/art-clearlooks/rhythmbox-rewind.png:
14901         - data/art-clearlooks/rhythmbox-shuffle.png:
14902         - data/art-clearlooks/rhythmbox-stop.png:
14903         - data/art-clearlooks/rhythmbox-visuals.png:
14904         - data/art-clearlooks/rhythmbox-volume-max.png:
14905         - data/art-clearlooks/rhythmbox-volume-medium.png:
14906         - data/art-clearlooks/rhythmbox-volume-min.png:
14907         - data/art-clearlooks/rhythmbox-volume-mute.png:
14908         - data/art-clearlooks/rhythmbox-volume-zero.png:
14909         * data/art/Makefile.am:
14910         - data/art/rhythmbox-album.png:
14911         - data/art/rhythmbox-audiocd.png:
14912         - data/art/rhythmbox-automatic-playlist.png:
14913         - data/art/rhythmbox-dnd.png:
14914         - data/art/rhythmbox-ipod.png:
14915         - data/art/rhythmbox-iradio.png:
14916         - data/art/rhythmbox-library.png:
14917         - data/art/rhythmbox-next.png:
14918         - data/art/rhythmbox-pause.png:
14919         - data/art/rhythmbox-play.png:
14920         - data/art/rhythmbox-playlist-menu.png:
14921         - data/art/rhythmbox-playlist.png:
14922         - data/art/rhythmbox-previous.png:
14923         - data/art/rhythmbox-repeat.png:
14924         - data/art/rhythmbox-rewind.png:
14925         - data/art/rhythmbox-shuffle.png:
14926         - data/art/rhythmbox-stop.png:
14927         - data/art/rhythmbox-visuals.png:
14928         - data/art/rhythmbox-volume-max.png:
14929         - data/art/rhythmbox-volume-medium.png:
14930         - data/art/rhythmbox-volume-min.png:
14931         - data/art/rhythmbox-volume-mute.png:
14932         - data/art/rhythmbox-volume-zero.png:
14933         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14934         * lib/rb-stock-icons.h:
14935         * shell/rb-playlist-manager.c:
14936         * shell/rb-shell-player.c:
14937         * sources/rb-daap-source.c: (rb_daap_get_icon):
14938         * sources/rb-ipod-source.c:
14939         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14940         * sources/rb-library-source.c: (rb_library_source_new):
14941         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14942         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14943         that hasn't been used in a LONG time, and also remove art that are
14944         now stock icons.
14946 2005-09-27  James Livingston  <jrl@ids.org.au>
14948         * README: point to the gnome.org web sites, and update the example
14949         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14950         
14951         * rhythmdb/rhythmdb-query-model.c:
14952         (rhythmdb_query_model_set_property),
14953         (rhythmdb_query_model_get_property),
14954         (rhythmdb_query_model_finalize):
14955         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14956         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14957         * rhythmdb/rhythmdb.h:
14958         * sources/rb-iradio-source.c: (impl_search):
14959         * sources/rb-library-source.c: (impl_search): Add query
14960         "preprocessing", which performs operations such as casefolding any
14961         strings that will be compared to any of the *_FOLDED properties.
14962         Closes bug 316039
14964 2005-09-27  James Livingston  <jrl@ids.org.au>
14966         * data/glade/daap-prefs.glade:
14967         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14968         file for the daap preferences pane
14969         
14970         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14971         (rb_sourcelist_append), (rb_sourcelist_remove),
14972         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14973         don't display the column for source expanders unless there is an
14974         expandable source.
14976 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14978         * .cvsignore:
14979         * Makefile.am:
14980         * configure.ac:
14981         * doc/.cvsignore:
14982         * doc/Makefile.am:
14983         * doc/reference/.cvsignore:
14984         * doc/reference/Makefile.am:
14985         * doc/reference/rhythmbox-docs.sgml:
14986         * doc/reference/rhythmbox-sections.txt:
14987         * doc/reference/rhythmbox.types:
14988         * doc/reference/tmpl/bacon-volume.sgml:
14989         * doc/reference/tmpl/disclosure-widget.sgml:
14990         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14991         * doc/reference/tmpl/eggnotificationbubble.sgml:
14992         * doc/reference/tmpl/eggtrayicon.sgml:
14993         * doc/reference/tmpl/gsequence.sgml:
14994         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14995         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14996         * doc/reference/tmpl/rb-daap-connection.sgml:
14997         * doc/reference/tmpl/rb-daap-dialog.sgml:
14998         * doc/reference/tmpl/rb-daap-mdns.sgml:
14999         * doc/reference/tmpl/rb-daap-share.sgml:
15000         * doc/reference/tmpl/rb-daap-sharing.sgml:
15001         * doc/reference/tmpl/rb-daap-source.sgml:
15002         * doc/reference/tmpl/rb-daap-src.sgml:
15003         * doc/reference/tmpl/rb-daap-structure.sgml:
15004         * doc/reference/tmpl/rb-debug.sgml:
15005         * doc/reference/tmpl/rb-dialog.sgml:
15006         * doc/reference/tmpl/rb-druid.sgml:
15007         * doc/reference/tmpl/rb-entry-view.sgml:
15008         * doc/reference/tmpl/rb-enums.sgml:
15009         * doc/reference/tmpl/rb-file-helpers.sgml:
15010         * doc/reference/tmpl/rb-glade-helpers.sgml:
15011         * doc/reference/tmpl/rb-header.sgml:
15012         * doc/reference/tmpl/rb-history.sgml:
15013         * doc/reference/tmpl/rb-ipod-source.sgml:
15014         * doc/reference/tmpl/rb-iradio-source.sgml:
15015         * doc/reference/tmpl/rb-library-source.sgml:
15016         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15017         * doc/reference/tmpl/rb-metadata.sgml:
15018         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15019         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15020         * doc/reference/tmpl/rb-play-order-linear.sgml:
15021         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15022         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15023         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15024         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15025         * doc/reference/tmpl/rb-play-order-random.sgml:
15026         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15027         * doc/reference/tmpl/rb-play-order.sgml:
15028         * doc/reference/tmpl/rb-player.sgml:
15029         * doc/reference/tmpl/rb-playlist-manager.sgml:
15030         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15031         * doc/reference/tmpl/rb-playlist-source.sgml:
15032         * doc/reference/tmpl/rb-preferences.sgml:
15033         * doc/reference/tmpl/rb-property-view.sgml:
15034         * doc/reference/tmpl/rb-query-creator-private.sgml:
15035         * doc/reference/tmpl/rb-query-creator.sgml:
15036         * doc/reference/tmpl/rb-rating-helper.sgml:
15037         * doc/reference/tmpl/rb-rating.sgml:
15038         * doc/reference/tmpl/rb-recorder.sgml:
15039         * doc/reference/tmpl/rb-refstring.sgml:
15040         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15041         * doc/reference/tmpl/rb-removable-media-source.sgml:
15042         * doc/reference/tmpl/rb-search-entry.sgml:
15043         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15044         * doc/reference/tmpl/rb-shell-glue.sgml:
15045         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15046         * doc/reference/tmpl/rb-shell-player.sgml:
15047         * doc/reference/tmpl/rb-shell-preferences.sgml:
15048         * doc/reference/tmpl/rb-shell.sgml:
15049         * doc/reference/tmpl/rb-song-display-box.sgml:
15050         * doc/reference/tmpl/rb-song-info.sgml:
15051         * doc/reference/tmpl/rb-source-header.sgml:
15052         * doc/reference/tmpl/rb-source.sgml:
15053         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15054         * doc/reference/tmpl/rb-sourcelist.sgml:
15055         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15056         * doc/reference/tmpl/rb-statusbar.sgml:
15057         * doc/reference/tmpl/rb-stock-icons.sgml:
15058         * doc/reference/tmpl/rb-string-helpers.sgml:
15059         * doc/reference/tmpl/rb-thread.sgml:
15060         * doc/reference/tmpl/rb-tray-icon.sgml:
15061         * doc/reference/tmpl/rb-tree-dnd.sgml:
15062         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15063         * doc/reference/tmpl/rb-util.sgml:
15064         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15065         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15066         * doc/reference/tmpl/rhythmdb-tree.sgml:
15067         * doc/reference/tmpl/rhythmdb.sgml:
15068         * macros/.cvsignore:
15069         * shell/Makefile.am:
15070         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15071         (rb_source_finalize), (rb_source_set_property),
15072         (rb_source_get_property), (default_get_pixbuf),
15073         (_rb_source_show_popup):
15074         * sources/rb-source.h:
15075         Add support for gtk-doc in rhythmbox.
15076         Convert RBSource to use newer glib functions, such as add_private.
15077         Gives RBSource a default get_pixbuf implementation.
15079 2005-09-25  James Livingston  <jrl@ids.org.au>
15081         * NEWS: Update with about a months worth of changes
15083         * data/glade/song-info-multiple.glade:
15084         * data/glade/song-info.glade:
15085         * data/rhythmbox.schemas:
15086         * lib/rb-preferences.h:
15087         * rhythmdb/rhythmdb.h:
15088         * shell/rb-shell-player.c:
15089         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15090         few remaining parts of autorating.
15092 2005-09-24  James Livingston  <jrl@ids.org.au>
15094         * shell/rb-shell.c: (rb_shell_constructor),
15095         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15096         (rb_shell_window_configure_cb): store window state in the gconf keys,
15097         so that it gets used. Closes bugs 313893 and 137068.
15099 2005-09-20  James Livingston  <jrl@ids.org.au>
15101         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15102         crash if the entry has a NULL string in a property
15103         
15104         * shell/rb-removable-media-manager.c:
15105         (rb_removable_media_manager_load_media): fix some memory leaks
15106         
15107         (rb_removable_media_manager_mount_volume),
15108         (rb_removable_media_manager_eject_medium_cb),
15109         (rb_removable_media_manager_cmd_eject_medium): use
15110         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15111         
15112         * sources/rb-removable-media-source.c:
15113         (rb_removable_media_source_set_property),
15114         (rb_removable_media_source_get_property): use
15115         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15117 2005-09-18  James Livingston  <jrl@ids.org.au>
15119         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15120         column
15122         * data/glade/general-prefs.glade:
15123         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15124         (rb_shell_preferences_column_check_changed_cb),
15125         (rb_shell_preferences_sync): add checkbox to control visibility
15126         of the column
15127         
15128         
15129         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15130         (save_entry):
15131         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15132         (rhythmdb_prop_get_type):
15133         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15134         was as "last played" is handled
15135         
15136         * sources/rb-library-source.c: (rb_library_source_constructor):
15137         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15138         Make the column show in the library and playlists
15139         
15140         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15141         * widgets/rb-entry-view.h: add the column
15142         
15143         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15144         be sorted by the column
15146 2005-09-16  James Livingston  <jrl@ids.org.au>
15148         * shell/rb-shell-player.c: (rb_shell_player_init),
15149         (rb_shell_player_do_previous_or_seek),
15150         (rb_shell_player_previous_button_cb),
15151         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15152         (rb_shell_player_playpause_button_cb): Make the previous button act
15153         the same as the menu item. Fix an inversion of the "previous track or
15154         seek" logic.
15155         
15156         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15157         
15158         (rb_shell_player_playpause): make --play-pause stop source that can't
15159         be paused
15161 2005-09-15  James Livingston  <jrl@ids.org.au>
15163         * configure.ac: increase totem-plparser requirements to 1.1.5
15165         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15166         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15167         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15168         use the newer playlist APIs to save the name of the playlist, and use
15169         the name of a loaded playlist.
15171         Closes bug 309817.
15173 2005-09-15  James Livingston  <jrl@ids.org.au>
15175         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15177         * shell/Makefile.am: stop some linker warnings
15179         * shell/main.c: (main): make --no-registration work with dbus
15181 2005-09-15  James Livingston  <jrl@ids.org.au>
15183         * daapsharing/rb-daap-sharing.c: (create_share):
15184         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15185         reference sinking and counting issues that I caused.
15187 2005-09-15  James Livingston  <jrl@ids.org.au>
15189         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15190         playing" icon in the "now playing" column header.
15192 2005-09-14  James Livingston  <jrl@ids.org.au>
15194         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15195         daap shares, when sharing is turned off.
15197 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15199         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15200         the GConf value's default, especially for badly installed schema
15201         files
15203 2005-09-12  James Livingston  <jrl@ids.org.au>
15205         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15207         Patch from Paolo Borelli <pborelli@katamail.com>
15209         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15210         grip when maximised. Closes bug 316055.
15212 2005-09-11  James Livingston  <jrl@ids.org.au>
15214         Patch from William Jon McCann <mccann@jhu.edu>
15216         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15217         subclass of GtkStatusbar instead of GtkHBox.
15218         (rb_statusbar_construct): Don't set border width.
15219         (rb_statusbar_init): Use resize grip.  Don't use
15220         markup.
15221         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15222         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15223         Connect tooltips for actions.
15224         (rb_statusbar_sync_status): Push new message to statusbar.
15225         (rb_statusbar_set_progress): Don't use markup.
15226         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15227         flag here since it prevents actually showing or hiding.
15228         (rb_statusbar_sync_with_source): Push new message to statusbar.
15230 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15232         * daapsharing/rb-daap-structure.c:
15233         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15234         around debugging definition.
15236 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15237         
15238         * daapsharing/rb-daap-structure.c:
15239         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15240         type = version.
15242         * daapsharing/rb-daap-mdns.c/h:
15243         (resolve_cb): Updated mDNS resolve callback to send service-name &
15244         name (read from Machine Name in the TXT data or equal to service-name
15245         if not in TXT).
15247         * daapsharing/rb-daap-source.c:
15248         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15249         (rb_daap_source_get_property), (rb_daap_source_new),
15250         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15251         (stop_resolver), (start_browsing), (stop_browsing), 
15252         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15253         and added 'host' and 'port' gobject properties.  Updated to use new
15254         mDNS resolve callback sending service-name & name arguments.
15256 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15258         * daapsharing/rb-daap-mdns.c:
15259         (howl_strerror): New function to report errors from Howl
15260         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15261         (get_sw_discovery), (get_avahi_client): Better error reporting from
15262         Howl & Avahi.
15264         * sources/rb-daap-source.:
15265         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15266         not get started or stopped in some situations.
15267         
15268 2005-09-12  James Livingston  <jrl@ids.org.au>
15270         * shell/rb-removable-media-manager.c: add a missing include, that
15271         would stop compilation if ipod support wasn't turned on
15273 2005-09-11  James Livingston  <jrl@ids.org.au>
15275         * daapsharing/rb-daap-dialog.c: (encode_base64),
15276         (rb_daap_password_dialog_new_run),
15277         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15278         it is no broken in to two pieces, and remove a use of a goto
15279         
15280         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15281         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15282         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15283         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15284         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15285         memory leaks, and some code style things.
15286         
15287         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15288         (rb_daap_share_init), (rb_daap_share_set_property),
15289         (rb_daap_share_dispose), (rb_daap_share_new),
15290         (rb_daap_share_get_property): make the DB and the playlist manager
15291         gobject properties.
15292         
15293         (message_add_standard_headers),
15294         (message_set_from_rb_daap_structure), (server_info_cb),
15295         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15296         (server_cb), (add_db_entry), (db_entry_added_cb),
15297         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15298         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15299         style and use CONF_PREFIX in the gconf keys
15300         
15301         * daapsharing/rb-daap-sharing.c: (create_share),
15302         (enable_sharing_changed_cb), (share_name_changed_cb),
15303         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15304         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15305         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15306         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15307         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15308         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15309         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15310         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15311         hasn't actually changed, fix some memory leaks, code style and release
15312         gconf notifications when the object is destroyed.
15313         
15314         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15315         (rb_daap_source_class_init), (rb_daap_source_init),
15316         (rb_daap_source_dispose), (rb_daap_source_set_property),
15317         (rb_daap_source_get_property), (rb_daap_source_new),
15318         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15319         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15320         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15321         (rb_daap_source_activate), (rb_daap_source_disconnect),
15322         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15323         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15324         release gconf notifications, handle gconf callbacks where the key
15325         hasn't changed, make "real name" and "password protected" gobject
15326         properties, fix some code style and fix a memory leak.
15328 2005-09-11  James Livingston  <jrl@ids.org.au>
15330         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15332         * shell/rb-playlist-manager.c:
15333         (rb_playlist_manager_save_playlists),
15334         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15335         when we aren't supposed to. (Closes bug 315886)
15337 2005-09-11  James Livingston  <jrl@ids.org.au>
15339         * shell/rb-removable-media-manager.c:
15340         (rb_removable_media_manager_class_init),
15341         (rb_removable_media_manager_init),
15342         (rb_removable_media_manager_dispose),
15343         (rb_removable_media_manager_set_property),
15344         (rb_removable_media_manager_get_property),
15345         (rb_removable_media_manager_new),
15346         (rb_removable_media_manager_load_media),
15347         (rb_removable_media_manager_volume_mounted_cb),
15348         (rb_removable_media_manager_volume_unmounted_cb),
15349         (rb_removable_media_manager_mount_volume),
15350         (rb_removable_media_manager_unmount_volume),
15351         (rb_removable_media_manager_source_deleted_cb),
15352         (rb_removable_media_manager_append_media_source),
15353         (rb_removable_media_manager_set_uimanager),
15354         (rb_removable_media_manager_eject_medium_cb),
15355         (rb_removable_media_manager_cmd_eject_medium):
15356         * shell/rb-removable-media-manager.h:
15357         * sources/rb-removable-media-source.c:
15358         (rb_removable_media_source_class_init),
15359         (rb_removable_media_source_init),
15360         (rb_removable_media_source_dispose),
15361         (rb_removable_media_source_set_property),
15362         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15363         (impl_delete_thyself):
15364         * sources/rb-removable-media-source.h: Add the four files that I
15365         somehow managed not to add to cvs in the last commit. Oops.
15367 2005-09-11  James Livingston  <jrl@ids.org.au>
15369         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15370         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15371         
15372         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15373         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15374         removable-media-manager on startup, and handle creation of sources.
15375         
15376         * sources/rb-ipod-source.h:
15377         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15378         (rb_ipod_source_init), (rb_ipod_source_constructor),
15379         (rb_ipod_source_dispose), (rb_ipod_source_new),
15380         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15381         the iPod source over to the removable media framework.
15382         
15383         * sources/rb-library-source.c: (paned_size_allocate_cb),
15384         (rb_library_source_get_paned_key): fix a potential bug is a
15385         library-derived source doesn't have a paned-key
15387 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15389         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15390         mp3 when we can't get the suffix of a file (Closes: #315941)
15392 2005-09-10  James Livingston  <jrl@ids.org.au>
15394         * configure.ac: fix the mdns tests, so that it doesn't complain about
15395         not finding one, if daap support isn't being compiled in
15397 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15399         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15401         * daapsharing/rb-daap-dialog.c:
15402         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15403         HIG compliancy & images.
15405         * daapsharing/rb-daap-mdns.c:
15406         (browse_cb), (resolve_cb): Better detection of local services.  
15407         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15408         Howl's limitations.  Fix the way collision handling is done under
15409         Avahi.
15411         * daapsharing/rb-daap-share.c:
15412         (publish_cb): Better name collision handling (at least for Avahi).
15414 2005-09-10  James Livingston  <jrl@ids.org.au>
15416         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15417         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15418         preferences more HIG compliant (Closes #315889)
15419         
15420         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15421         list of files to be translated
15423 2005-09-10  James Livingston  <jrl@ids.org.au>
15425         * configure.ac: fix it so that --enable-daap=no works
15426         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15427         uninstalled
15429 2005-09-10  James Livingston  <jrl@ids.org.au>
15431         Patch from Christophe Fergeau <teuf@gnome.org>
15433         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15434         the ipod code.
15436 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15437         * README.daap: Updating documentation
15439 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15440         * AUTHORS: Added myself.
15442         * daapsharing/rb-daap-connection.c:
15443         (connection_login), (rb_connection_new): Reorganized password
15444         handling.
15446         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15448         * shell/rb-shell.c:
15449         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15451         * sources/rb-daap-source.c:
15452         (rb_daap_source_activate): Better error handling when we are unable to
15453         connect.
15454         
15455 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15456         * README.daap: Fixed some terminology.
15458         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15459         New --with-mdns=auto|howl|avahi flag to specify.
15461         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15462         name collision dialogs.
15464         * daapsharing/rb-daap-connection.c:
15465         (connection_get_password), (build_message), (http_get)
15466         (connection_login): Ask for & use a password if the share demands it.
15468         * daapsharing/rb-daap-connection.h: Changed prototype of
15469         rb_daap_connection_new.
15470         
15471         * daapsharing/rb-daap-mdns.c: 
15472         (resolve_cb): Better detection of your own music share so it doesn't 
15473         appear in the sourcelist.
15475         * daapsharing/rb-daap-share.c:
15476         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15477         that start on any available port.
15479         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15481         * sources/rb-daap-source.c:
15482         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15483         (browse_cb): Handle passworded shares. Resolve the host immediately
15484         instead of when activated.
15485         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15486         (rb_daap_source_new): New GConf keys for UI state.
15487         (rb_daap_source_activate): Use RBPlaylistSource instead of
15488         RBDAAPPlaylistSource
15489         
15490         * sources/rb-daap-playlist-source.c/h: Removed
15492         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15493         if the playlist is local (i.e. not DAAP or iPod).
15494         
15495         * shell/rb-playlist-manager.c:
15496         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15497         wouldn't get saved if the last playlist hadn't changed.  Only save
15498         local playlists.
15499         
15500 2005-09-09  James Livingston  <jrl@ids.org.au>
15502         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15503         iPod preferences pane, as it already uses the browser views as the
15504         library.
15506 2005-09-09  James Livingston  <jrl@ids.org.au>
15508         * sources/rb-library-source.c: (rb_library_source_finalize),
15509         (rb_library_source_constructor): fix gconf monitoring of library
15510         preference keys.
15511         * sources/rb-library-source.h: remove declaration of function that
15512         does not exist
15514 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15516         * player/rb-player-gst.c:
15517         (rb_player_set_time): Fix seeking in daap streams.
15519 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15521         * data/rhythmbox.schemas: Turn music share browsing on by default.
15523 2005-09-07  James Livingston  <jrl@ids.org.au>
15525         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15527 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15528         * player/rb-player-gst.c: 
15529         (rb_player_get_time): Fix for extra << & == that accidentally made
15530         it in.
15532         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15533         
15534 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15535         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15536         it in last time.  Sorry.
15538 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15539         
15540         * player/rb-player-gst.c:
15541         (rb_player_get_time): Fix a small crash appearing when
15542         the uri isn't set in the player, but rb_player_get_time() is
15543         still called.
15545         * configure.ac: Also check for libsoup 2.4, which is what ships with
15546         Gnome 2.12.
15548         * po/POTFILES.in: Added music sharing files that have translatable 
15549         strings.
15551         * README.daap: New file explaining "How Music Sharing Works"  
15553 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15555         * daapsharing/.cvsignore: added
15557 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15559         * daapsharing/*: Music sharing library.
15560         
15561         * sources/rb-daap-source.c/h: Music share RBSource.
15562         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15564         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15565         libsoup and a mutlicast DNS implementation (howl or avahi).
15567         * data/rhythmbox.schemas: New GConf keys for music sharing.
15569         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15570         source right click menu.
15572         * player/rb-player-gst.c: Changes to properly play & seek in remote
15573         music share files.
15575         * shell/rb-playlist-manager.c/h:
15576         (rb_playlist_manager_get_playlists): New function to get a GList * of
15577         the playlists.
15578         (rb_playlist_manager_save_playlists): Don't save music share playlists
15579         and fixed a GObject reference leak.
15581         * shell/rb-shell.c/h:
15582         (rb_shell_append_source): No longer a local function.  Now takes a
15583         parent RBSource * argument, NULL to append a toplevel source.
15584         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15585         source (useful for disconnecting from remote music share,
15586         specifically).
15587         (rb_shell_quit): Stop music sharing/browsing.
15588         (rb_shell_playlist_added_cb): Work with tree source structure.
15589         (rb_shell_get_property): "playlist-manager" property accessor.
15590         (rb_shell_class_init): New "playlist-manager" property.
15591         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15592         daap sharing/browsing.
15593         (rb_shell_select_source): Notify source of activation/deactivation.
15595         * shell/rb-shell-prefernces.c: Music sharing preferences.
15597         * sources/rb-source.c/h: New activate, deactivate and disconnect
15598         class functions.  Activate & deactivate are notification style 
15599         functions that will tell a source when it is selected/unselected.
15600         Disconnect can be hooked up to a UI object to disconnect the source.
15602         * sources/rb-sourcelist-model.c:
15603         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15604         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15605         append a toplevel source.
15607 2005-09-05  James Livingston  <jrl@ids.org.au>
15609         * rhythmdb/rhythmdb-query-model.c:
15610         (rhythmdb_query_model_entry_changed_cb),
15611         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15612         the duration of filesize of an entry changes.  Emit the row-changed
15613         signals that I forgot to put back in, when I was doing query sorting.
15615         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15616         out "0 minutes" or "0 bytes".
15618 2005-09-04  James Livingston  <jrl@ids.org.au>
15620         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15621         remove a leftover bit of the "internal-name" property of sources.
15623 2005-09-03  James Livingston  <jrl@ids.org.au>
15625         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15626         extraneous debug message
15627         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15628         crasher would affect any library-derived sources (which was also a
15629         memory leak).
15631 2005-09-02  Colin Walters  <walters@verbum.org>
15633         * configure.ac: Fix sytnax error.
15635         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15636         code to disable minimization icons - need to figure out
15637         why it doesn't work...
15639 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15641         * data/glade/song-info-multiple.glade:
15642         * data/glade/song-info.glade:
15643         * widgets/rb-song-info.c: (rb_song_info_constructor):
15644         Add a mnemonic to the newly added "Automatically rate" label
15645         in the properties dialog and use a bold typeface like all the 
15646         other labels in the dialog. (Closes bug 315089)
15648 2005-09-03  James Livingston  <jrl@ids.org.au>
15650         * sources/rb-library-source.c: (rb_library_source_class_init),
15651         (rb_library_source_finalize), (rb_library_source_constructor),
15652         (rb_library_source_set_property), (rb_library_source_get_property),
15653         (impl_get_paned_key), (paned_size_allocate_cb),
15654         (rb_library_source_state_prefs_sync), (impl_show_popup),
15655         (rb_library_source_get_paned_key):
15656         * sources/rb-library-source.h: Allow sources derived from
15657         RBLibrarySource to use different gconf keys for sort order, browser
15658         visibility and browser pane position. Fix a crasher if a derived
15659         source overrides _get_pixbuf.
15661 2005-09-02  Colin Walters  <walters@verbum.org>
15663         * shell/rb-shell.c (rb_shell_set_visibility): Move
15664         hint setting which seems to avoid races more.
15665         
15666 2005-09-03  James Livingston  <jrl@ids.org.au>
15668         * shell/rb-shell.c: fix compilation with iPod support enabled
15669         
15670 2005-09-02  Colin Walters  <walters@verbum.org>
15672         * shell/rb-shell.c (struct RBShellPrivate): Add
15673         idle_hide_mainwindow_id.
15674         (rb_shell_constructor): Move taskbar skipping hint into
15675         rb_shell_set_visibility.
15676         (idle_hide_mainwindow): New function.
15677         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15678         racy hack to avoid rb appearing in taskbar when minimized.
15680 2005-09-01  Colin Walters  <walters@verbum.org>
15682         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15684         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15685         from gtkstatusicion.c.
15687         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15689         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15690         TrayShowWindow entry.
15691         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15692         (rb_tray_icon_constructor): Create action group here.
15693         (rb_tray_icon_finalize): Destroy action group.
15694         (rb_tray_icon_set_property): Don't take an action group.
15695         (rb_tray_icon_new): Ditto.
15696         (tray_popup_position_menu): Some mostly boilerplate code
15697         to position menu.
15698         (rb_tray_icon_button_press_event_cb): Position menu.
15699         (rb_tray_icon_get_geom): New function used for the shell
15700         to set minimization hints.
15702         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15704         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15705         (struct RBShellPrivate): Change visible to iconified.
15706         (set_icon_geometry): New function from Søren Sandmann to
15707         tell Metacity where to draw the minimization animiation.
15708         (rb_shell_window_state_cb): Update iconified.
15709         (rb_shell_get_visibility): New function to say whether
15710         or not we're currently visible.
15711         (rb_shell_set_visibility): Update to minimize to
15712         tray or present as appropriate.
15713         (rb_shell_window_delete_cb): On window close, just
15714         minimize to tray if we're deleted.
15715         (rb_shell_set_window_title): Kill old notification code.
15716         (rb_shell_toggle_visibility): Nwe function.
15717         (rb_shell_cmd_toggle_visibility): Call it.
15718         (rb_shell_constructor): Skip the taskbar.
15719         (tray_destroy_cb): Better debugging.
15720         
15721 2005-09-01  Colin Walters  <walters@verbum.org>
15723         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15725         * configure.ac: Enable bonobo by default.
15726         
15727 2005-09-01  Colin Walters  <walters@verbum.org>
15729         * configure.ac: Default to old art.  Add macros subdir.
15731         * Makefile.am (SUBDIRS): Add macros.
15733         * macros/Makefile.am: New.
15734         
15735 2005-09-01  Colin Walters  <walters@verbum.org>
15737         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15738         rb-shell-player.xml.
15740         * remote/dbus/rb-remote-dbus.h: Deleted.
15741         
15742         * remote/dbus/Makefile.am: Delete all the junk, just dist
15743         rb-print-playing.py and rb-set-rating.py.
15745         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15747         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15749 2005-09-02  James Livingston  <jrl@ids.org.au>
15751         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15752         file from cvs
15754         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15755         (rb_shell_constructor): Patches from Jonathan Matthew
15756         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15757         a crash when using "browse this artist".
15759 2005-08-31  Colin Walters  <walters@verbum.org>
15761         * configure.ac: Add --with-old-art configure switch.  Also
15762         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15763         but it doesn't work.
15765         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15766         Don't use eel_create_colorized_pixbuf for new art.
15767         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15769         * data/art-clearlooks: New artwork.
15770         
15771 2005-08-31  Colin Walters  <walters@verbum.org>
15773         * shell/main.c (main): Fix Bastien's commit to continue to focus
15774         the window with GTK+ 2.8 at least.
15775         
15776 2005-08-31  Colin Walters  <walters@verbum.org>
15778         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15779         is already loaded.
15781         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15783 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15785         * README: remove mentions of the xine-lib backend
15786         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15788 2005-08-30  Colin Walters  <walters@verbum.org>
15790         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15791         Make non-visible sources insensitive.
15792         
15793 2005-08-30  Colin Walters  <walters@verbum.org>
15795         * shell/rb-shell.c: Don't use GConf for selected source; it's
15796         confusing to have the selected source change after startup,
15797         and since we don't save other things it's not worth saving this.
15799         * sources/rb-playlist-source.c:
15800         * sources/rb-library-source.c:
15801         * sources/rb-iradio-source.c:
15802         * sources/rb-ipod-source.c: Delete internal-name property usage.
15803         * sources/rb-source.c: Delete internal-name property.
15805         * data/rhythmbox.schemas: Delete selected_source.
15806         
15807 2005-08-30  Colin Walters  <walters@verbum.org>
15809         * sources/rb-sourcelist.c: Make playing source bold instead of
15810         displaying a pixbuf; it's much less ugly.
15811         
15812 2005-08-30  Colin Walters  <walters@verbum.org>
15814         * sources/rb-source.c:
15815         * sources/rb-source.h: New virtual method try_playlist.
15817         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15818         impl_try_playlist.
15819         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15820         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15821         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15822         need to.
15823         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15824         in theory we should though...
15826         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15827         list in rb_shell_construct now.
15828         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15829         RBiPodSource.
15830         (rb_shell_constructor): Create library, iradio, ipod here.
15831         (rb_shell_source_deleted_cb): Use source directly instead of
15832         indirecting through type.
15833         (rb_shell_sync_selected_source): Ditto.
15834         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15835         from the type instead of special-casing.
15836         (rb_shell_guess_type_for_uri) 
15837         (rb_shell_add_uri)
15838         (handle_one_uri_with_possible_metadata): New functions.
15839         (rb_shell_load_uri): Refactor to allow loading playlists again,
15840         also use other URI infrastructure.
15842         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15843         (rb_shell_player_error): Always set entry error on error, instead
15844         of depending on EOF behavior.
15846         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15847         to just invoke rb_shell_add_uri.
15848         (rb_playlist_manager_parse_file): Return error instead of tossing
15849         up dialog box directly.
15850         (load_playlist_response_cb): Display error here.
15851         (add_uri_to_playlist): Delete.
15852         (handle_playlist_entry_into_playlist_cb): Renamed to
15853         handle_playlist_entry_cb.
15855         * shell/rb-playlist-manager.h: Add error, update prototype.
15857         * lib/rb-file-helpers.c:
15858         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15860 2005-08-29  Colin Walters  <walters@verbum.org>
15862         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15863         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15865         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15866         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15867         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15869         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15870         Prototype rb_shell_set_song_property.
15872         * shell/rb-shell.xml: Export setSongProperty.
15874         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15875         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15876         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15878         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15879         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15880         want to notify of the change.
15881         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15883         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15884         logic error; idle functions would be enqueued for each set.
15885         (rhythmdb_entry_set): Fix assertion logic error.
15887         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15888         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15889         Return if the entry already exists.
15890         
15891 2005-08-29  Colin Walters  <walters@verbum.org>
15893         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15894         "inserted" member which we use to keep track of
15895         whether or not an entry is in the DB.  Prototype
15896         rhythmdb_entry_set_uninserted.
15898         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15899         flag.
15900         (rhythmdb_entry_insert): Assert entry is not already inserted.
15901         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15902         just after creating entry.
15903         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15904         (rhythmdb_entry_set_nonotify): Ditto.
15905         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15906         entries.
15907         (rhythmdb_entry_set_internal): Change notify flag to
15908         notify_if_inserted.  Also move notification after assertions.
15910         Update all existing callers of rhythmdb_entry_set_internal
15911         to give TRUE for notify_if_inserted; this should be what
15912         we want but may be an efficiency hit.
15913         
15914 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15916         * shell/rb-shell-player.c: (rb_shell_player_init),
15917         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15918         (rb_shell_player_set_playing_source_internal),
15919         (rb_shell_player_sync_with_selected_source): Notify the player when an
15920         entry has updated the title, album or artist field, and resync the big
15921         display.
15922         
15923         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15924         * sources/rb-library-source.c: (rb_library_source_class_init),
15925         (impl_get_config_widget):
15926         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15927         * sources/rb-source.c:
15928         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15929         get_album functions in rb-source and adapted other sources accordingly.
15930         
15931 2005-08-29  Colin Walters  <walters@verbum.org>
15933         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15934         signal_change member.
15935         (threadsafe_entry_set): New function.
15936         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15937         (rhythmdb_entry_set_nonotify): New function; just call
15938         threadsafe_entry_set with FALSE.
15939         (rhythmdb_entry_set_internal): Take a notify flag; if true
15940         add the change to our pending set.
15942         Also update all internal callers of rhythmdb_entry_set_internal
15943         to pass FALSE.  Some of these may be bugs however and need to
15944         pass TRUE...
15946         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15947         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15948         rhythmdb_entry_set_nonotify.
15950         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15951         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15953         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15955         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15956         * sources/rb-source.c (rb_source_update_play_statistics): 
15957         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15958         * sources/rb-ipod-source.c (entry_set_string_prop) 
15959         (load_ipod_db_idle_cb): 
15960         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15961         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15962         (info_available_cb): 
15963         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15964         (rb_station_properties_dialog_sync_entries): 
15965         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15967         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15968         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15969         
15970 2005-08-29  Colin Walters  <walters@verbum.org>
15972         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15974         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15975         linking insanity.
15977         * widgets/rb-header.c (sanitize_string): New function, extracted
15978         from old info_url.  Be sure to always strip the string.
15979         (info_url): Rewrite to take artist/album, and generate a sane
15980         URL for them from last.fm, which is better than allmusic.com in
15981         that they support Rhythmbox, and have a *SANE* URL scheme.
15982         (artist_info_url, album_info_url): Delete.
15983         (rb_header_sync): Use info_url.
15985 2005-08-29  James Livingston  <jrl@ids.org.au>
15987         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15988         is implemented before calling it. Many sources don't implement the
15989         method.
15991 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15993         * data/glade/create-playlist.glade:  Cleanup the layout,
15994         and add a few more mnemonics.
15995         * shell/rb-playlist-manager.c:
15996         (rb_playlist_manager_cmd_load_playlist),
15997         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15998         capitalization for window titles.
15999         * widgets/rb-query-creator-properties.c: Add mnemonics
16000         to checkbutton labels.
16001         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16002         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16004 2005-08-28  Colin Walters  <walters@verbum.org>
16006         * data/rhythmbox.schemas: Delete search_text for library
16007         and iradio; this isn't a persistent value anymore.
16008         Closes #313757.
16009         
16010         * sources/rb-source.h:
16011         * sources/rb-source.c: Delete impl_can_search.
16013         * sources/rb-iradio-source.c: Delete search_text usage.
16014         * sources/rb-library-source.c: Ditto.
16016         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16017         search when source is set, and just do rb_source_search in
16018         rb_source_header_search_cb.
16020         * shell/rb-shell.c (rb_shell_append_source): Don't
16021         initiate search.
16023         * shell/Makefile.am: Don't dist dashboard.c.
16025 2005-08-28  Colin Walters  <walters@verbum.org>
16027         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16028         
16029 2005-08-28  Colin Walters  <walters@verbum.org>
16031         * data/org.gnome.Rhythmbox.service.in: New.
16033         * data/Makefile.am: Install service file.
16035         * configure.ac: Define DBUS_SERVICES_DIR.
16037         * autogen.sh: Set ACLOCAL_FLAGS.
16039         * macros/acinclude.m4: New.
16040         
16041 2005-08-28  Colin Walters  <walters@verbum.org>
16043         Initial patch from Jonathan Matthew; closes 313684.
16045         * rhythmdb/rhythmdb-tree.c:
16046         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16047         (save_entry): Return on error.
16048         (rhythmdb_tree_save): Handle error when saving the
16049         db; additionally, handle errors from fclose and unlink,
16050         and print error too.
16052 2005-08-28  Colin Walters  <walters@verbum.org>
16054         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16055         extra _.
16056         
16057 2005-08-28  Colin Walters  <walters@verbum.org>
16059         * configure.ac: Change iPod support to --with-ipod;
16060           automatically enable it if we have HAL.  Try to
16061           support both HAL 0.5 and HAL 0.2.  Break out
16062           totem-plparser into its own check so later we
16063           can do version tests there too.
16064           Kill dashboard support.
16065         
16066         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16067         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16068         Closes #310017.
16069         
16070         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16071         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16073         * sources/Makefile.am: Also handle
16074         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16076         * shell/dashboard.c: Delete; someone should just write a little
16077         python shim which lists on the D-BUS interface and writes the
16078         stuff to Dashboard.  Even better Dashboard should be ported
16079         to D-BUS and do the listening itself, perhaps on an abstract
16080         "org.gnome.MusicPlayer" interface or something.
16082         * shell/rb-shell.c: Kill dashboard support.
16084 2005-08-28  Colin Walters  <walters@verbum.org>
16086         * remote/dbus/rb-print-playing.py: New file.
16088 2005-08-28  Colin Walters  <walters@verbum.org>
16090         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16091         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16093         * shell/rb-shell-player.h:
16094         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16095         * shell/rb-shell-player.xml: Export it.
16097         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16098         (rb_shell_error_quark): New.
16100         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16101         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16102         
16103 2005-08-28  Colin Walters  <walters@verbum.org>
16105         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16106         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16107         bonobo_unlock.
16108         (rb_remote_bonobo_preinit): Lock setting moved here.
16109         (rb_remote_bonobo_init): From here.
16111         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16112         Also invoke handle_cmdline in the right place.
16113         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16114         GFunc.
16116 2005-08-28  James Livingston  <jrl@ids.org.au>
16118         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16119         when 0.9.1 comes around.
16121 2005-08-28  James Livingston  <jrl@ids.org.au>
16123         * iradio/rb-new-station-dialog.c:
16124         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16125         bug 314477.
16127 2005-08-28  James Livingston  <jrl@ids.org.au>
16129         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16131         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16132         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16133         is a song is longer than 60 minutes. Closes bug 313311.
16135 2005-08-27  James Livingston  <jrl@ids.org.au>
16137         * data/glade/create-playlist.glade:
16138         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16139         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16140         "minutes" as an option in the playlist limit menu.
16142         * rhythmdb/rhythmdb-query-model.c:
16143         (rhythmdb_query_model_class_init),
16144         (rhythmdb_query_model_set_property),
16145         (rhythmdb_query_model_get_property),
16146         (rhythmdb_query_model_update_limited_entries): Allow query models to
16147         have a time limit
16148         
16149         * shell/rb-playlist-manager.c:
16150         (rb_playlist_manager_set_automatic_playlist),
16151         (rb_playlist_manager_cmd_edit_automatic_playlist):
16152         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16153         (rb_playlist_source_get_query), (impl_receive_drag),
16154         (rb_playlist_source_new_from_xml),
16155         (rb_playlist_source_save_to_xml),
16156         (rb_playlist_source_songs_sort_order_changed_cb),
16157         (rb_playlist_source_do_query):
16158         * sources/rb-playlist-source.h:
16159         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16161 2005-08-27  James Livingston  <jrl@ids.org.au>
16163         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16165         * configure.ac:
16166         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16167         non-standard location. Closes bug 314640.
16169 2005-08-26  Colin Walters  <walters@verbum.org>
16170         
16171         Patch from Olivier Blin <oblin@mandriva.com>
16173         * widgets/eggnotificationbubble.c (draw_bubble): 
16174         Handle extreme-left case as well.
16175         
16176 2005-08-26  Colin Walters  <walters@verbum.org>
16178         * shell/rb-shell.c (idle_save_state): Don't do this.
16179         (rb_shell_construct): Remove idle calls to idle_save_state.
16180         We should save the playlists automatically when they're
16181         modified.
16182         (rb_shell_load_uri): Don't try to re-stat entry if it already
16183         exists.
16185         * shell/rb-shell-player.c: Keep track of entry we are attempting
16186         to play.
16187         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16188         Don't double-free error.
16189         (rb_shell_player_play_entry): Signal errors.
16190         (rb_shell_player_entry_activated_cb): Ditto.
16191         (rb_shell_player_property_row_activated_cb): Ditto.
16192         (rb_shell_player_set_playing_source_internal): Unset attempted
16193         playing entry.
16194         (rb_shell_player_error): Refactor to be usable both sync and
16195         async.  Handle case where displayed entry differs from entry.
16196         (error_cb): Move GDK locking here.
16198         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16199         people can just use dbus-send or python.  We only support focusing
16200         and loading files.
16201         (load_uri_args): New function, extracted from handle_cmdline.
16202         (dbus_load_uri, bonobo_load_uri): New functions.
16204         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16205         appropriate.
16207         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16208         * remote/dbus/rb-remote-dbus.c: Deleted.
16210         * player/rb-player-gst.c: Clear any pending idle handlers when we
16211         close the player.  Signal errors generated during open/play etc
16212         as synchronous errors.
16214         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16215         
16216 2005-08-26  Colin Walters  <walters@verbum.org>
16218         * shell/rb-shell.c (rb_shell_present): Try harder.
16220 2005-08-26  Colin Walters  <walters@verbum.org>
16222         * shell/rb-shell.c (rb_shell_present): Try to handle
16223         GTK_MINOR_VERSION < 8.
16225 2005-08-26  James Livingston  <jrl@ids.org.au>
16227         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16228         <pbrobinson@gmail.com>
16230 2005-08-26  Colin Walters  <walters@verbum.org>
16232         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16234 2005-08-25  Colin Walters  <walters@verbum.org>
16236         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16237         Delete.
16238         (rb_shell_player_do_next_with_rating): Move back into
16239         rb_shell_player_do_next.
16240         (rb_shell_player_entry_activated_cb): Remove call to
16241         rb_shell_player_auto_adjust_rating.
16242         (do_next_idle): Just call rb_shell_player_do_next.
16244         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16246 2005-08-25  Colin Walters  <walters@verbum.org>
16248         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16249         before gtk_window_present_with_time.
16250         
16251 2005-08-25  Colin Walters  <walters@verbum.org>
16253         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16254         default.
16256         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16257         rb_shell_construct.  This is so we only have to do g_object_new.
16258         (rb_shell_get_player): New function.
16259         (rb_shell_get_player_path): Ditto.
16260         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16261         
16262         * shell/rb-shell.h: Prototype them.
16264         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16265         export over D-BUS.
16266         (reemit_playing_signal): New function.
16267         (rb_shell_player_open_playlist_location): Use return values from
16268         rb_player_open, rb_player_close, etc. instead of checking "error".
16269         Return a gboolean on failure.
16270         (rb_shell_player_open_entry): Just open entry location, don't
16271         print to stderr.
16272         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16273         a gboolean.
16274         (do_next_idle): Move logic for handling of end of playlist here.
16275         (rb_shell_player_set_playing_entry): Take a GError, return a
16276         gboolean.  Update to use gboolean return values.
16277         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16278         logic.  Signal an error on end of playlist.  Also signal error if
16279         we're not playing.  Move heuristic for replaying the song into
16280         rb_shell_player_cmd_previous.
16281         (rb_shell_player_do_next_with_rating): Signal error on end of
16282         playlist.
16283         (rb_shell_player_do_next): Return errors.
16284         (rb_shell_player_cmd_previous): Heuristic for restarting song
16285         moved here; the idea is you generally only want that from the GUI.
16286         (rb_shell_player_cmd_play): Handle error.
16287         (rb_shell_player_playpause): Signal errors.
16288         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16289         rb_shell_player_cmd_next in favor of the internal _do functions.
16290         
16291         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16292         errors.  Update prototypes for above changes.
16294         * shell/main.c: More tightly integrate D-BUS; register various
16295         major singleton objects here.  Fix handle_cmdline so we only
16296         process extra arguments, not every argument.
16298         * shell/Makefile.am: Generate D-BUS glue headers.
16300         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16301         into shell/main.c.  Now this file just acts as a client library.
16302         Not heavily tested.
16304         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16305         Moved here.
16306         (rb_remote_bonobo_init): Move long CORBA rant here along with
16307         setting of lock functions.
16309         * player/rb-player-gst.c (rb_player_construct)
16310         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16311         on error.
16313         * player/rb-player.h: Update prototypes.
16315         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16316         rb-remote-bonobo.c.
16317         (rb_threads_init): Don't set gdk lock functions here.
16319 2005-08-25  James Livingston  <jrl@ids.org.au>
16321         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16323         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16324         * lib/rb-tree-dnd.h:
16325         * rhythmdb/rhythmdb-property-model.c:
16326         (rhythmdb_property_model_class_init),
16327         (rhythmdb_property_model_drag_source_init),
16328         (rhythmdb_property_model_iter_parent),
16329         (rhythmdb_property_model_row_draggable),
16330         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16331         (rhythmdb_property_model_drag_data_get),
16332         (rhythmdb_property_model_enable_drag):
16333         * rhythmdb/rhythmdb-property-model.h:
16334         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16335         (rb_playlist_manager_set_property), (append_new_playlist_source),
16336         (rb_playlist_manager_save_playlists):
16337         * shell/rb-shell.c: (rb_shell_construct),
16338         (sourcelist_drag_received_cb):
16339         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16340         * sources/rb-playlist-source.c: (impl_receive_drag):
16341         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16342         (rb_sourcelist_model_drag_dest_init),
16343         (rb_sourcelist_model_set_dnd_targets),
16344         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16345         (rb_sourcelist_model_row_drop_position),
16346         (rb_sourcelist_model_get_drag_target),
16347         (rb_sourcelist_model_drag_data_get):
16348         * sources/rb-sourcelist-model.h:
16349         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16350         (rb_sourcelist_init), (rb_sourcelist_get_property),
16351         (rb_sourcelist_selection_changed_cb):
16352         * sources/rb-sourcelist.h:
16353         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16354         improve drag-n-drop support. Allow dragging of item from property
16355         views to the source list, to create new automatic playlists. Allow
16356         playlist re-ordering. Fix dragging from Rhythmbox to other
16357         applications. (Closes bug 147337)
16359 2005-08-24  Colin Walters  <walters@verbum.org>
16361         Patch from Olivier Blin <oblin@mandriva.com>
16363         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16364         correctly in the case where the window is next to monitor edge.
16366 2005-08-24  James Livingston  <jrl@ids.org.au>
16368         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16369         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16370         a gobject property to get the query model that backs the playlist.
16372 2005-08-24  James Livingston  <jrl@ids.org.au>
16374         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16375         (handle_playlist_entry_into_playlist_cb),
16376         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16377         audio cd" menu item when a non-playlist source is selected, or the
16378         playlist is empty. (Closes Bug 313253)
16380 2005-08-24  James Livingston  <jrl@ids.org.au>
16382         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16383         Fix the playlist length checkso it doesn't report 0 for automatic
16384         playlists. This was stopping automati playlists being burnt to cd.
16386 2005-08-24  James Livingston  <jrl@ids.org.au>
16388         * configure.ac:
16389         * sources/rb-playlist-source-recorder.c: (burn_cd):
16390         * sources/rb-playlist-source.c:
16391         (rb_playlist_source_songs_sort_order_changed_cb):
16392         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16393         more warnings that occur when compiling RPMs on Fedora.
16395 2005-08-24  James Livingston  <jrl@ids.org.au>
16397         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16398         was stopping some distros gcc version compiling.
16400 2005-08-24  James Livingston  <jrl@ids.org.au>
16402         * NEWS:
16403         * data/glade/create-playlist.glade:
16404         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16405         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16406         (rhythmdb_query_free), (rhythmdb_query_serialize),
16407         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16408         * rhythmdb/rhythmdb.h:
16409         * shell/rb-playlist-manager.c:
16410         (rb_playlist_manager_set_automatic_playlist),
16411         (rb_playlist_manager_cmd_edit_automatic_playlist):
16412         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16413         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16414         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16415         (rb_playlist_source_save_to_xml),
16416         (rb_playlist_source_songs_sort_order_changed_cb),
16417         (rb_playlist_source_do_query):
16418         * sources/rb-playlist-source.h:
16419         * widgets/Makefile.am:
16420         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16421         (rb_entry_view_set_sorting_order):
16422         * widgets/rb-query-creator-private.h:
16423         * widgets/rb-query-creator-properties.c:
16424         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16425         (stringCriteriaGetWidgetData),
16426         (escapedStringCriteriaSetWidgetData),
16427         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16428         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16429         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16430         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16431         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16432         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16433         (relativeTimeCriteriaCreateWidget),
16434         (relativeTimeCriteriaSetWidgetData),
16435         (relativeTimeCriteriaGetWidgetData):
16436         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16437         (rb_query_creator_class_init), (rb_query_creator_constructor),
16438         (rb_query_creator_dispose), (rb_query_creator_set_property),
16439         (rb_query_creator_get_property), (rb_query_creator_load_query),
16440         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16441         (get_entry_for_property), (rb_query_creator_get_query),
16442         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16443         (limit_toggled_cb), (lookup_row_by_widget),
16444         (remove_button_click_cb), (append_row),
16445         (get_property_index_from_proptype), (select_criteria_from_value),
16446         (property_option_menu_changed), (create_property_option_menu),
16447         (create_criteria_option_menu), (sort_option_menu_changed),
16448         (setup_sort_option_menu):
16449         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16450         playlists. The two most notable improvements are 1) adding more
16451         properties to the query creator, making it much easier to add more in
16452         the future, and 2) allow playlists to be sorted, from the query editor
16453         if they gave limits, and by clicking on column headers if they don't.
16455         Files added: widgets/rb-query-creator-private.h,
16456         sources/rb-query-creator-properties.c
16458 2005-08-21  James Livingston  <jrl@ids.org.au>
16460         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16461         error=NULL. This stops some crashes.
16463 2005-08-19  Colin Walters  <walters@verbum.org>
16465         Patch from Olivier Blin <oblin@mandriva.com>
16467         * widgets/eggnotificationbubble.c (force_window): Support top
16468         orientation.
16469         * widgets/eggnotificationbubble.h: Remove
16470         egg_notification_bubble_force_window from header.
16471         
16472 2005-08-18  James Livingston  <jrl@ids.org.au>
16474         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16475         with the changes since then.
16477 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16479         * shell/rb-shell-player.c: (rb_shell_player_init),
16480         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16481         (rb_shell_player_volume_widget_changed_cb):
16482         * sources/rb-iradio-source.c:
16483         * sources/rb-library-source.c:
16484         * sources/rb-playlist-source.c:
16485         * widgets/Makefile.am:
16486         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16487         (bacon_volume_button_class_init), (bacon_volume_button_init),
16488         (bacon_volume_button_dispose), (bacon_volume_button_new),
16489         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16490         (bacon_volume_button_scroll), (bacon_volume_button_press),
16491         (cb_button_timeout), (cb_button_press), (cb_button_release),
16492         (bacon_volume_release_grab), (cb_dock_press),
16493         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16494         (bacon_volume_scale_new), (bacon_volume_scale_press),
16495         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16496         * widgets/bacon-volume.h:
16497         * widgets/rb-volume.c:
16498         * widgets/rb-volume.h:
16499           Use BaconVolumeButton (#300867).
16501 2005-08-17  James Livingston  <jrl@ids.org.au>
16503         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16504         (rhythmdb_process_metadata_load): don't reset the First Seen time
16505         whenever we recheck the metadata.
16507 2005-08-17  James Livingston  <jrl@ids.org.au>
16509         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16510         temporary workaround to stop crashes when trying to burn an empty
16511         playlist. Doesn't disable the menu item which is the better solution
16512         (Bug 313253).
16514 2005-08-15  James Livingston  <jrl@ids.org.au>
16516         * shell/rb-source-header.c: (rb_source_header_init),
16517         (rb_source_header_sync_control_state),
16518         (rb_source_header_search_activate_cb):
16519         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16520         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16521         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16522         (rb_search_entry_init), (rb_search_entry_searching),
16523         (rb_search_entry_activate_cb):
16524         * widgets/rb-search-entry.h: Move focus to the entry view when user
16525         presses enter in the search box. Patch from Paolo Borelli
16526         <pborelli@katamail.com> (Closes bug 128110)
16528 2005-08-15  James Livingston  <jrl@ids.org.au>
16530         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16531         (rb_playlist_manager_new_playlist):
16532         * shell/rb-playlist-manager.h:
16533         * shell/rb-shell.c: (rb_shell_construct),
16534         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16535         the source list to be shown when a new playlist is created. (Closes
16536         bug 161935)
16538 2005-08-15  James Livingston  <jrl@ids.org.au>
16540         * widgets/rb-header.c: (rb_header_init),
16541         (rb_header_set_show_timeline): disable the seek slider, rather than
16542         hiding it, which more closely follows the HIG. (Closes bug 139102)
16544 2005-08-13  Colin Walters  <walters@verbum.org>
16546         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16547         rb_shell_hidden_notify.
16548         (rb_shell_hidden_notify): Notify if the shell is hidden.
16549         (rb_shell_set_visibility_impl): Debug goo.
16551         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16553         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16554         when the user clicks on notification.
16556         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16557         CD burn is complete.
16558         (rb_playlist_source_recorder_finalize): Unref shell.
16559         (rb_playlist_source_recorder_new): Take shell.
16561         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16562         Pass shell to RBPlaylistSourceRecorder.
16563         
16564 2005-08-13  Colin Walters  <walters@verbum.org>
16566         * lib/rb-thread.c:
16567         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16568           time to convert.
16570 2005-08-13  Colin Walters  <walters@verbum.org>
16572         * widgets/eggnotificationbubble.h:
16573         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16574         * widgets/eggtrayicon.c:
16575         * widgets/eggtrayicon.h: Add notification API.
16576         * shell/rb-tray-icon.c:
16577         * shell/rb-tray-icon.h: Add notification API.
16578         * shell/rb-shell.c: Notify on song change.
16580 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16582         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16583         Correct an inversion of two lines causing NULL to be unreffed
16585 ============ Version 0.9.0
16587 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16589         * configure.ac: 0.9.0, whee!
16590         * NEWS: badly updated
16591         * remote/bonobo/Makefile.am:
16592         * remote/bonobo/rb-remote-bonobo.h:
16593         * shell/Makefile.am:
16594         * shell/main.c: make distcheck fixes