2006-11-03 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobd55a5b3ea269d0d6969f6f286a8b7e2cb6c02621
1 2006-11-03  James Livingston  <doclivingston@gmail.com>
3         * data/glade/song-info.glade: make more labels selectable, from #368641
5 2006-11-03  James Livingston  <doclivingston@gmail.com>
7         * shell/rb-shell-clipboard.c: (get_focussed_widget),
8         (rb_shell_clipboard_cmd_select_all),
9         (rb_shell_clipboard_cmd_select_none): make Select All select text in
10         the focussed widget if it's a text entry. Fixes #364590
12 2006-11-03  James Livingston  <doclivingston@gmail.com>
14         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
15         (bacon_volume_button_init), (bacon_volume_button_dispose),
16         (bacon_volume_button_new), (bacon_volume_button_realize),
17         (bacon_volume_button_press), (bacon_volume_key_release),
18         (bacon_volume_release_grab), (cb_dock_key_release),
19         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
20         (bacon_volume_theme_changed), (bacon_volume_load_icons):
21         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
22         Fixes #369491
24 2006-10-31  James Livingston  <doclivingston@gmail.com>
26         * configure.ac: remove spaces around '=' where they shouldn't be,
27         fixes building when you have libgpod 0.3.x
29 2006-10-31  James Livingston  <doclivingston@gmail.com>
31         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
33         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
34         period is 0. Fixes #351425
36 2006-10-31  James Livingston  <doclivingston@gmail.com>
38         patch by: Luca Ferretti  <elle.uca@libero.it>
40         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
41         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
42         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
43         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
44         * plugins/ipod/ipod.rb-plugin.desktop.in:
45         * plugins/iradio/iradio.rb-plugin.desktop.in:
46         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
47         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
48         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
49         of the plugins. Fixes #365326
51 2006-10-31  James Livingston  <doclivingston@gmail.com>
53         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
55 2006-10-31  James Livingston  <doclivingston@gmail.com>
57         * data/glade/song-info.glade: set the mnemonic target for the labels
58         in the details tab. Fixes #368179.
60 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
62         * configure.ac:
63         When complaining about GStreamer being too old, use the right variable
64         name for the version we want.
66 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
68         * shell/rb-shell.h:
69         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
70         * shell/rb-tray-icon.h:
71         * bindings/python/rb.defs:
72         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
73         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
74         * sources/rb-playlist-source-recorder.c: (burn_cd):
75         * sources/rb-podcast-source.c:
76         (rb_podcast_source_start_download_cb),
77         (rb_podcast_source_finish_download_cb),
78         (rb_podcast_source_feed_updates_avaliable_cb):
79         Change the various notification functions to take a parameter
80         specifying whether the notification was explicitly requested by the
81         user.  Add a function to display a notification for an entry,
82         including streaming song metadata.
84         * shell/rb-shell-player.c: (rb_shell_player_stop):
85         Emit playing-song-changed and playing-uri-changed when stopping
86         playback.
88         * sources/Makefile.am:
89         * sources/rb-streaming-source.c:
90         * sources/rb-streaming-source.h:
91         Add a base class for streaming sources, handling streaming song
92         metadata and buffering messages, emitting notifications on song
93         changes, and updating play count statistics when playback stops.
95         * plugins/audioscrobbler/Makefile.am:
96         * plugins/audioscrobbler/rb-lastfm-source.c:
97         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
98         (rb_lastfm_source_constructor), (impl_get_status),
99         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
100         (rb_lastfm_source_title_from_uri),
101         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
102         (rb_lastfm_song_changed_cb), (impl_activate):
103         * plugins/audioscrobbler/rb-lastfm-source.h:
104         * plugins/iradio/Makefile.am:
105         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
106         (rb_iradio_source_constructor), (impl_get_status),
107         (info_available_cb), (playing_source_changed_cb):
108         * sources/rb-iradio-source.h:
109         Use the new streaming source base class for iradio and last.fm
110         sources.  Fixes #364094.
112 2006-10-30  James Livingston  <doclivingston@gmail.com>
114         * podcast/rb-podcast-manager.c:
115         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
116         any downloads from it before deleting the post entry. Fixes #366567.
118 2006-10-30  James Livingston  <doclivingston@gmail.com>
120         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
121         move-to-trash, since there have been reports of people accidently
122         deleting tracks and it probably isn't a common enough operation to be
123         worth a shortcut.
125 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
127         * backends/gstreamer/rb-player-gst.c:
128         * configure.ac:
129         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
130         Fix GStreamer 0.8 build (and some typos in configure.ac).
132 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
134         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
136         * sources/rb-source.c: (rb_source_class_init),
137         (rb_source_set_property), (rb_source_get_property):
138         Add a property to RBSource for plugin-created sources to have a
139         pointer to the RBPlugin object that created them.
141         * plugins/audiocd/Makefile.am:
142         * plugins/audiocd/multiple-album.glade:
143         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
144         * sources/Makefile.am:
145         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
146         * sources/rb-audiocd-source.h:
147         If musicbrainz returns multiple albums, present the user with a
148         choice between them.  Fixes #333215.
150         * configure.ac:
151         * plugins/Makefile.am:
152         Remove unused old audio CD stuff, only build audiocd plugin if we have
153         libnautilus-burn.  Fixes #367440.
155 2006-10-30  James Livingston  <doclivingston@gmail.com>
157         patch by: Brian McKenna  <puffnfresh@gmail.com>
159         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
160         handle blocks. Fixes #366696.
162 2006-10-30  James Livingston  <doclivingston@gmail.com>
164         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
166 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
168         * shell/rb-shell-player.c: (rb_shell_player_class_init),
169         (rb_shell_player_sync_with_source),
170         (rb_shell_player_get_playing_time_string), (tick_cb):
171         * widgets/rb-header.c: (rb_header_sync_time),
172         (slider_moved_callback), (rb_header_update_elapsed),
173         (rb_header_elapsed_changed_cb):
174         Revert dbus interface breakage introduced in the fix for #365908.
176 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
178         patch by: Luca Ferretti  <elle.uca@libero.it>
180         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
181         Remove the access keys from the podcast-specific column headers.
182         Fixes #360640 again.
184 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
186         patch by: James Livingston <doclivingston@gmail.com>
188         * sources/rb-browser-source.c: (rb_browser_source_constructor):
189         Only register the search actions once.  From #346801.
191 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
193         * shell/rb-shell-player.c: (rb_shell_player_error):
194         When handling an error, try playing the next stream URL if we have
195         one, rather than stopping playback.  From #358140.
197 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
199         * shell/rb-shell.c: (handle_playlist_entry_cb):
200         Don't crash if we can't guess a source for a URI in the playlist.
201         Fixes #366261.
203 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
205         * shell/rb-shell-player.c: (rb_shell_player_class_init),
206         (rb_shell_player_sync_with_source),
207         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
208         (tick_cb):
209         * widgets/rb-header.c: (rb_header_sync_time),
210         (rb_header_elapsed_changed_cb):
211         Treat elapsed time as signed, since rb_player_get_time returns a
212         signed value.  When actually using the value, mostly treat negative
213         values as 0.  Fixes #365908.
215 2006-10-27  James Livingston  <doclivingston@gmail.com>
217         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
219         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
220         returning 0 for the year/month/day. Fixes #364837.
222 2006-10-27  James Livingston  <doclivingston@gmail.com>
224         patch by: Luca Ferretti  <elle.uca@libero.it>
226         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
227         access keys from the entry view columns headers - they cause
228         keybindings conflicts, headaches for translators and the HIG says
229         they are bad. Fixes #360640.
231 2006-10-27  James Livingston  <doclivingston@gmail.com>
233         patch by: Luca Ferretti  <elle.uca@libero.it>
235         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
236         access keys from the entry view columns headers - they cause
237         keybindings conflicts, headaches for translators and the HIG says
238         they are bad. Fixes #360640.
240 2006-10-27  James Livingston  <doclivingston@gmail.com>
242         * rhythmdb/rhythmdb-private.h:
243         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
244         issues
246 2006-10-27  James Livingston  <doclivingston@gmail.com>
248         * plugins/artdisplay/Makefile.am:
249         * plugins/audioscrobbler/Makefile.am:
250         * plugins/iradio/Makefile.am: fix make clean
252 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
254         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
255         Fall back to strtod() if g_ascii_strtod() doesn't work.
257         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
258         Write floating point values using g_ascii_dtostr() to avoid
259         problems with locale-specific representations.  From #353205.
261 2006-10-25  James Livingston  <doclivingston@gmail.com>
263         * plugins/artdisplay/Makefile.am:
264         * plugins/audioscrobbler/Makefile.am:
265         * plugins/iradio/Makefile.am: fix "make distcheck"
267 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
269         patch by: Brian Cameron <brian.cameron@sun.com>
271         * plugins/audiocd/Makefile.am:
272         Link audiocd plugin with libnautilus-burn as required to get it to work
273         on Solaris.  Fixes #363288.
275 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
277         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
279         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
280         Clarify that we don't submit actual songs to last.fm, just information
281         on what you're listening to.  Fixes #364014.
283 2006-10-24  Bastien Nocera  <hadess@hadess.net>
285         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
286         (bacon_volume_button_class_init), (bacon_volume_button_new),
287         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
288         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
289         (bacon_volume_scale_value_changed): update from libbacon, to get
290         better accessibility support (Closes: #364637)
292 2006-10-24  James Livingston  <doclivingston@gmail.com>
294         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
296         * configure.ac: fix some typos and leftovers from disabled->enabled
297         changes. Fixes #364217
299 2006-10-23  William Jon McCann  <mccann@jhu.edu>
301         * shell/rb-source-header.c (rb_source_header_init):
302         Don't require source header cells to be homogeneous.
303         Patch from #359188
305 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
307         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
308         Pause the pipeline while buffering.  Fixes #358290.
310 2006-10-23  Bastien Nocera  <hadess@hadess.net>
312         * configure.ac: update required libgpod version to avoid crashes
313         when starting up with an iPod connect (Closes: #352972)
314         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
315         (hal_udi_is_ipod): remove outdated ifdefs
317 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
319         * plugins/Makefile.am:
320         * plugins/power-manager/rb-power-manager-plugin.c:
321         Don't try to build the power-manager plugin with dbus < 0.35.
323 2006-10-22  James Livingston  <doclivingston@gmail.com>
325         patch by: Ed Catmur  <ed@catmur.co.uk>
327         * plugins/artdisplay/Makefile.am:
328         * plugins/artdisplay/artdisplay/__init__.py:
329         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
330         placeholder art when none is available, to avoid having the widget pop
331         in and out of existance.
333 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
335         * plugins/lyrics/lyrics.py:
336         Set the lyrics window transient for the main window so it can
337         actually be seen in party mode.  Fixes #362981.
339 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
341         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
342         * sources/rb-source.c: (rb_source_class_init),
343         (rb_source_can_show_properties), (rb_source_song_properties):
344         * sources/rb-source.h:
345         Only enable the 'properties' item in the 'music' menu if the selected
346         source implements the show_properties method.  Fixes #356485.
348 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
350         * shell/rb-shell-player.c:
351         (rb_shell_player_property_row_activated_cb):
352         Take the entry to play from the play order, rather than grabbing the
353         first entry in the query model.  Fixes #362042.
355 2006-10-16  James Livingston  <doclivingston@gmail.com>
357         * shell/main.c: (main): save custom menu accelerators before exiting.
358         Fixed #362300
360 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
362         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
363         I HATE adding this patch, but I'm sick of hitting Yes once
364         and hour.  Working around brain-dead podcasts.
366 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
368         * plugins/lyrics/lyrics.py:
369         Disconnect the create-song-info handler when deactivated.
370         Fixes #361882.
372 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
374         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
375         Reset the style when clearing the search text.  Fixes #361295.
377 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
379         * rhythmdb/rhythmdb-query-model.c:
380         (rhythmdb_query_model_entry_changed_cb):
381         Don't emit entry-prop-changed for hidden signals from chained query
382         models, as the model will also propagate the parent model's
383         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
385 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
387         * sources/rb-ipod-source.c: (generate_ipod_filename):
388         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
389         * lib/rb-cut-and-paste-code.h:
390         Move eel_make_valid_utf8 to lib/, make the replacement
391         character a parameter.
393         * rhythmdb/rhythmdb.c: (make_access_failed_error),
394         (rhythmdb_execute_multi_stat_info_cb),
395         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
396         When constructing an error message that includes a URI, make sure the
397         URI is valid utf-8.  Fixes #353588.
399 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
401         * player/rb-recorder-gst.c: (rb_recorder_construct),
402         (acb_wave_time):
403         Add an extra audioconvert element to allow endianness conversion on
404         big-endian machines, and fix a few endianness issues in the .wav
405         reading code.  Fixes #355611.
407 2006-10-09  James Livingston  <doclivingston@gmail.com>
409         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
411         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
412         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
413         Fixes #357553.
415 2006-10-09  James Livingston  <doclivingston@gmail.com>
417         patch by: Luca Ferretti  <elle.uca@libero.it>
419         * data/glade/song-info-multiple.glade:
420         * data/glade/song-info.glade: Fix a few HIG issues.
422 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
424         * plugins/audioscrobbler/rb-lastfm-source.c:
425         (rb_lastfm_source_class_init):
426         Return TRUE from impl_try_playlist so playback starts in a separate
427         thread.
429 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
431         * shell/main.c: (main):
432         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
433         UTF-8 GStreamer messages.  Fixes #357973.
435 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
437         * shell/rb-shell.c: (rb_shell_constructor):
438         Remove a line that accidentally slipped in from some other universe.
440 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
442         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
443         Don't remove sources from the hash table while iterating it on
444         shutdown.  Fixes #359583.
446 2006-10-07  James Livingston  <doclivingston@gmail.com>
448         patch from Alex Lancaster  <alexl@users.sourceforge.net>
450         * shell/rb-shell.c: change the keybinding for "Plugins" to not
451         conflict with others. Fixes #355904
453 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
455         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
456         (rhythmdb_query_model_chain),
457         (rhythmdb_query_model_entry_changed_cb),
458         (rhythmdb_query_model_base_entry_prop_changed),
459         (rhythmdb_query_model_base_entry_removed):
460         For chained models, propagate the parent model's entry-prop-changed
461         signal rather than emitting one from the db entry-changed handler.
462         This ensures that when the change filters the entry out of the parent
463         model, property models attached to the child model get the entry
464         change signal before the post-entry-delete signal, so they can
465         decrement the refcount for the right property value.  Fixes #359083.
467 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
469         * plugins/audioscrobbler/Makefile.am:
470         define NULL
472 2006-10-07  James Livingston  <doclivingston@gmail.com>
474         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
475         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
476         * plugins/audioscrobbler/rb-lastfm-source.c:
477         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
478         hypens in URI schemes.
480 2006-10-06  William Jon McCann  <mccann@jhu.edu>
482         * plugins/iradio/Makefile.am:
483         * plugins/audioscrobbler/Makefile.am:
484         * plugins/cd-recorder/Makefile.am:
485         Don't clean all plugin_DATA.
486         Fixes #360210
488 2006-10-06  James Livingston  <doclivingston@gmail.com>
490         patch from Matt N  <fisxoj@gmail.com>
492         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
493         (rb_player_gst_bus_cb):
494         * backends/rb-player.c: (rb_player_interface_init),
495         (_rb_player_emit_tick), (_rb_player_emit_event):
496         * backends/rb-player.h: let the backend emit named "events", for
497         things that the core shouldn't know about.
499         * rhythmdb/rhythmdb.h:
500         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
501         support for streams containing album metadata.
503         * plugins/audioscrobbler/Makefile.am:
504         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
505         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
506         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
507         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
508         * plugins/audioscrobbler/rb-lastfm-source.c:
509         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
510         of last.fm streams. From #313049.
512 2006-10-06  James Livingston  <doclivingston@gmail.com>
514         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
515         committing. Oops.
517 2006-10-06  James Livingston  <doclivingston@gmail.com>
519         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
521         * configure.ac:
522         * data/rhythmbox.schemas:
523         * plugins/Makefile.am:
524         * plugins/magnatune/Makefile.am:
525         * plugins/magnatune/magnatune-loading.glade:
526         * plugins/magnatune/magnatune-prefs.glade:
527         * plugins/magnatune/magnatune-purchase.glade:
528         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
529         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
530         * plugins/magnatune/magnatune/MagnatuneSource.py:
531         * plugins/magnatune/magnatune/TrackListHandler.py:
532         * plugins/magnatune/magnatune/__init__.py:
533         * plugins/magnatune/magnatune_circle_small.png:
534         * plugins/magnatune/magnatune_logo_color_small.png:
535         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
536         play and download tracks from the MagnaTune online music store. From
537         #345783.
539 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
541         * lib/rb-proxy-config.c: (rb_proxy_config_init),
542         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
543         (check_auto_proxy_config), (get_proxy_config):
544         Don't crash when eel_gconf_get_string returns NULL.
545         Fixes #359974.
547 2006-10-04  James Livingston  <doclivingston@gmail.com>
549         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
551         * plugins/audiocd/Makefile.am: fix the plugin when linking with
552         --as-needed. Fixes #358730
554 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
556         patch by:  William Jon McCann  <mccann@jhu.edu>
558         * sources/rb-iradio-source.c: (playing_source_changed_cb):
559         Fix some stupidity I introduced that caused crashes on shutdown.
560         Fixes #359181.
562 2006-10-02  William Jon McCann  <mccann@jhu.edu>
564         * plugins/audiocd/Makefile.am:
565         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
566         * plugins/iradio/.cvsignore:
567         * plugins/iradio/Makefile.am:
568         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
569         (impl_deactivate):
570         * plugins/power-manager/.cvsignore:
571         Install missing iradio ui file.  Don't leak ui filename.
572         Fix iradio install dir. Fix audiocd install dir.
573         Remove unused code from audio cd plugin.
575         Fixes #359170
577 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
579         * sources/rb-ipod-source.c: (impl_move_to_trash):
580         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
581         commented out while fixing bug 355235.  Oops.
583 2006-10-03  James Livingston  <doclivingston@gmail.com>
585         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
586         non-unicode warnings to debug statements, since they can occur with
587         slightly broken files.
589         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
590         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
591         iradio plugin is disabled and re-enabled.
593 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
595         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
596         (rhythmdb_entry_podcast_post_get_type):
597         * rhythmdb/rhythmdb.h:
598         * tests/bench-rhythmdb-load.c: (main):
599         Add definitions for some common extra-metadata fields,
600         remove iradio entry type definition, add the concept of entry type
601         categories, define categories for the core entry types.
602         Categories are used to decide if an entry can be copied to a removable
603         device, if it should be reported to audioscrobbler, etc.
605         * shell/Makefile.am:
606         * shell/rb-shell-player.c: (rb_shell_player_class_init),
607         (rb_shell_player_constructor), (rb_shell_player_init),
608         (rb_shell_player_get_property), (open_location_thread),
609         (rb_shell_player_open_location),
610         (rb_shell_player_sync_with_source),
611         (rb_shell_player_set_playing_source_internal), (tick_cb):
612         * shell/rb-shell.c: (construct_widgets), (construct_sources),
613         (rb_shell_player_elapsed_changed_cb):
614         Remove iradio-specific code, use extra metadata fields for streaming
615         title and artist name.
617         * data/ui/rhythmbox-ui.xml:
618         Add a placeholder for 'new ...' menu items.
620         * Makefile.am:
621         * sources/Makefile.am:
622         * configure.ac:
623         * data/rhythmbox.schemas:
624         * plugins/Makefile.am:
625         * plugins/iradio/Makefile.am:
626         * plugins/iradio/iradio-ui.xml:
627         * plugins/iradio/iradio.rb-plugin.desktop.in:
628         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
629         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
630         (rb_iradio_plugin_class_init):
631         iradio plugin, enabled and hidden by default.
633         * plugins/audioscrobbler/rb-audioscrobbler.c:
634         (rb_audioscrobbler_song_changed_cb):
635         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
636         * sources/rb-daap-source.c: (rb_daap_source_new):
637         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
638         Define entry type categories, and use them where appropriate.
640         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
641         (rb_iradio_source_constructor), (rb_iradio_source_new),
642         (impl_get_status), (impl_want_uri), (buffering_cb),
643         (check_entry_type), (streaming_title_request_cb),
644         (streaming_artist_request_cb), (extra_metadata_gather_cb),
645         (info_available_cb), (playing_entry_changed_cb),
646         (playing_source_changed_cb):
647         Move streaming metadata and buffering handling here from
648         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
649         title or artist changes, and handle request and gather signals for
650         those.
652         * widgets/rb-header.c: (rb_header_class_init),
653         (rb_header_set_property), (rb_header_get_property),
654         (rb_header_new), (append_and_free), (rb_header_sync):
655         * widgets/rb-header.h:
656         Rework to use streaming artist and title extra-metadata.
657         streaming-artist overrides entry artist, and streaming-title means
658         entry title is a stream name, displayed in brackets.
660         * doc/reference/Makefile.am:
661         * doc/reference/rhythmbox.types:
662         Remove iradio stuff from gtk-doc build.
664         Fixed #347097.
666 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
668         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
670         * bindings/python/rhythmdb.defs:
671         * lib/rb-marshal.list:
672         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
673         (rhythmdb_emit_entry_deleted),
674         (rhythmdb_entry_extra_metadata_accumulator),
675         (rhythmdb_entry_request_extra_metadata),
676         (rhythmdb_emit_entry_extra_metadata_notify),
677         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
678         * rhythmdb/rhythmdb.h:
679         Add signals for dealing with transient metadata outside the set stored
680         in RhythmDBEntry:
681         - entry_extra_metadata_request returns a value for the requested
682           metadata field
683         - entry_extra_metadata_notify notifies observers of a change to an
684           extra metadata field
685         - entry_extra_metadata_gather returns the values of all extra metadata
686           fields
688         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
689         (rb_shell_player_extra_metadata_cb):
690         Sync the display on extra metadata changes and emit dbus signals when
691         we can marshal the value.
693         * shell/rb-shell.c: (rb_shell_get_song_properties):
694         Implement rb_shell_song_get_properties using
695         rhythmdb_entry_gather_metadata.
697         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
698         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
699         * configure.ac:
700         Add GValue marshaller for python (until bug 351072 is fixed)
702         From #345592.
704 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
706         * configure.ac:
707         * data/rhythmbox.schemas:
708         * plugins/Makefile.am:
709         * plugins/power-manager/Makefile.am:
710         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
711         * plugins/power-manager/rb-power-manager-plugin.c:
712         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
713         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
714         (playing_changed_cb), (impl_activate), (impl_deactivate):
715         gnome-power-manager integration: inhibit suspend while playing.
716         Fixes #344979.
718 2006-10-02  James Livingston  <doclivingston@gmail.com>
720         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
721         and Alex Lancaster  <alexl@users.sourceforge.net>
723         * help/C/rhythmbox.xml: fix some mispellings and grammer.
724         Fixes #353143, #353146 and #353147.
726 ============ Version 0.9.6
728 2006-10-01  James Livingston  <doclivingston@gmail.com>
730         * configure.ac: bump version to 0.9.6. enable tag-writing and
731         ipod-writing by default
733         * NEWS: update NEWS
735 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
737         patch by:  William Jon McCann  <mccann@jhu.edu>
739         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
740         Use a local GError in case no error pointer pointer is passed in.
741         From bug #358396.
743 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
745         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
746         Don't reference members of freed structures.
748 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
750         patch by:  William Jon McCann  <mccann@jhu.edu>
752         * player/rb-recorder-gst.c: (rb_recorder_burn):
753         Drop GDK lock before entering n-c-b.  Fixes #353894?
755 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
757         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
758         (impl_activate):
759         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
761 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
763         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
764         Call lirc_init before lirc_readconfig so we don't crash if the user's
765         .lircrc file has any mode sections. Fixes #357419.
767 2006-09-24  James Livingston  <doclivingston@gmail.com>
769         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
770         if we get called twice, as that can happen. Fixes #357214.
772 2006-09-24  James Livingston  <doclivingston@gmail.com>
774         * backends/rb-encoder.h: add "file access" error
776         * lib/rb-file-helpers.c: (rb_dot_dir):
777         * podcast/rb-podcast-manager.c:
778         (rb_podcast_manager_download_file_info_cb): remove directory creation
779         race condition.
781         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
782         (create_parent_dirs), (rb_encoder_gst_encode): check result of
783         directory creation. Fixes #347743
785 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
787         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
788         Strip trailing whitespace
790 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
792         * rhythmdb/Makefile.am:
793         * rhythmdb/rhythmdb-private.h:
794         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
795         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
796         * rhythmdb/rhythmdb-tree.h:
797         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
798         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
799         * rhythmdb/rhythmdb.h:
800         Rather than aborting, show an error and refuse to load the database when
801         it appears to come from the future.  From bug #350304.
803 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
805         * bindings/python/rhythmdb.override:
806         Make entry_foreach usable.
808 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
810         * sources/rb-podcast-source.c: (rb_podcast_source_init):
811         Scale the icon so it matches the rest of the sources.
812         Fixes #351410.
814 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
816         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
817         (rhythmdb_property_model_set_query_model_internal),
818         (rhythmdb_property_model_row_inserted_cb),
819         (rhythmdb_property_model_prop_changed_cb),
820         (rhythmdb_property_model_entry_removed_cb),
821         (rhythmdb_property_model_delete),
822         (rhythmdb_property_model_perform_sync):
823         Use the hash table to track hidden entries, rather than visible
824         entries.  Cuts memory usage fairly significantly.  From bug #347425.
826 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
828         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
829         Patch from Christian Becke to fix compilation with -O3, bug #355945.
831 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
833         * sources/rb-ipod-source.c: (add_rb_playlist),
834         (impl_move_to_trash), (impl_delete_thyself):
835         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
837         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
838         Make sure we don't leave the sourcelist thinking a deleted source is
839         still playing.  Fixes nothing.
841 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
843         * shell/rb-shell.c:
844         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
845         'Music->Import Folder' menu item for better icon theme coverage.
846         Fixes #354575.
848 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
850         * rhythmdb/rhythmdb-private.h:
851         * rhythmdb/rhythmdb.c: (rhythmdb_init),
852         (rhythmdb_start_action_thread), (rhythmdb_finalize),
853         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
854         (rhythmdb_load), (rhythmdb_save_async):
855         Use a limited thread pool for adding URIs to the database.
856         Fixes #352494.
858 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
860         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
861         Do something like the previous change, but for gstreamer 0.10
862         this time.  Oops.  Really fixes #349569.
864 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
866         * backends/gstreamer/rb-player-gst.c: (error_cb):
867         Ignore 'internal data flow error' messages if we've already got an
868         error for the file.  Fixes #349569.
870 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
872         * shell/rb-shell-clipboard.c:
873         (rb_shell_clipboard_playlist_deleted_cb):
874         Rebuild 'add to playlist' menu before removing actions for deleted
875         playlists, and don't unref the action, as we never had a reference on
876         it to begin with.  Fixes #354599.
878 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
880         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
881         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
882         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
884 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
886         * daapsharing/rb-daap-connection.c: (handle_playlists):
887         Reverse the list of playlists on the DAAP server so it ends up in the
888         right order.  Fixes #353926.
890 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
892         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
893         Fully process each code so the LIRC client returns to its normal state
894         when we're done.  Makes LIRC actually work properly for me.
896 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
898         patch by: Ed Catmur  <ed@catmur.co.uk>
900         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
901         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
902         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
904 2006-09-02  William Jon McCann  <mccann@jhu.edu>
906         patch by: James Livingston <doclivingston@gmail.com>
908         * configure.ac:
909         * data/rhythmbox.schemas:
910         * metadata/Makefile.am:
911         * plugins/Makefile.am:
912         * plugins/audiocd/.cvsignore:
913         * plugins/audiocd/Makefile.am:
914         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
915         * plugins/audiocd/rb-audiocd-plugin.c:
916         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
917         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
918         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
919         (end_cd_drive_monitor), (begin_cd_drive_monitor),
920         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
921         (rb_audiocd_plugin_playing_uri_changed_cb),
922         (nautilus_burn_drive_get_device),
923         (rb_audiocd_plugin_source_deleted), (create_source_cb),
924         (impl_activate), (_delete_cb), (impl_deactivate):
925         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
926         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
927         * shell/main.c: (main):
928         * shell/rb-removable-media-manager.c:
929         (rb_removable_media_manager_finalize),
930         (rb_removable_media_manager_load_media),
931         (rb_removable_media_manager_mount_volume),
932         (rb_removable_media_manager_scan):
933         * sources/Makefile.am:
934         * sources/rb-audiocd-source.c:
935         * sources/rb-audiocd-source.h:
936         Make auto CD support a plugin.
938         Fixes #349415.
940 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
942         * daapsharing/rb-daap-connection.c: (handle_song_listing):
943         Add a final rhythmdb_commit to make sure all songs from the share show
944         up in the daap source.  Fixes #353913.
946 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
948         * sources/rb-sourcelist-model.c:
949         (rb_sourcelist_model_drag_data_received),
950         (rb_sourcelist_model_row_drop_possible):
951         Re-enable dragging of a set of tracks to the source list to create a
952         new static playlist.  Fixes #353893.
954 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
956         * widgets/bacon-volume.c: (cb_button_timeout):
957         Actually drop the GDK lock, rather than returning while holding it.
958         Fixes #353895.
960 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
962         * plugins/generic-player/rb-generic-player-source.c:
963         (rb_generic_player_source_constructor),
964         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
965         (rb_generic_player_source_load_songs), (load_playlist_file),
966         (default_load_playlists), (get_hal_context):
967         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
968         Fixes #353483.
970 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
972         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
973         Canonicalise URIs received from gnome-vfs file monitor.
974         Fixes #353447.
976 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
978         * help/C/rhythmbox.xml: unbreak help build
979         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
980         Unbuffer the IO channel.  Fixes some weirdness for me.
982 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
984         * help/C/rhythmbox.xml:
985         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
986         (impl_activate), (impl_deactivate):
987         Add 'playpause' LIRC command.
989 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
991         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
992         (rb_source_finalize):
993         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
994         when disconnecting generic audio players.
996 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
998         patch by: Paolo Borelli  <pborelli@katamail.com>
1000         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1001         Fix a small leak.
1003 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1005         * backends/gstreamer/rb-player-gst.c:
1006         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1007         Don't actually disable the seek bar for non-seekable songs,
1008         because we can't reliably tell yet.
1010 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1012         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1013         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1014         (db_entry_deleted_cb), (rb_daap_share_server_start),
1015         (rb_daap_share_server_stop):
1016         * rhythmdb/rhythmdb-private.h:
1017         * rhythmdb/rhythmdb-tree.c: (save_entry):
1018         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1019         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1020         (rhythmdb_entry_get_ulong):
1021         * rhythmdb/rhythmdb.h:
1022         Give db entries a numeric ID property, replacing the daap server's
1023         entry->id map.  From #347665.
1025 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1027         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1028         * widgets/rb-header.c: (rb_header_class_init),
1029         (rb_header_set_property), (rb_header_get_property),
1030         (rb_header_set_playing_entry), (rb_header_sync),
1031         (rb_header_sync_time):
1032         * widgets/rb-header.h:
1033         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1034         insensitive when the player backend tells us we can't seek in the
1035         current song.  From #330410.
1037 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1039         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1040         Don't try to unref previous/next entries if they aren't there.
1041         Fixes #351806.
1043 2006-08-15  James Livingston  <doclivingston@gmail.com>
1045         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1046         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1047         mountpoint into a RBRefString and compare equality of those, rather
1048         than doign lots of strcmp()s.
1050         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1051         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1052         status notification as well as the visibility update in an idle
1053         callback. Makes it take much less time to update after a volume
1054         mount/unmount event.
1056 2006-08-15  James Livingston  <doclivingston@gmail.com>
1058         patch by: Christian Becke  <christianbecke@web.de>
1060         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1061         multiple selections in the Import Folder dialog. Fixes #351414.
1063 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1065         * shell/rb-shell.c: (construct_widgets):
1066         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1067         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1068         (rb_statusbar_get_property), (rb_statusbar_new):
1069         * shell/rb-statusbar.h:
1070         Use the connect-proxy signal from the UI manager, which covers all
1071         action groups, rather than just one.  Fixes #351280.
1073 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1075         * widgets/rb-library-browser.c: (rebuild_child_model):
1076         Fix query model reference counts (bug #349601).
1078 2006-08-15  James Livingston  <doclivingston@gmail.com>
1080         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1081         Error signals be non-recursive. Fixes a highly-unlikely issue that
1082         could have caused #322972.
1084 2006-08-14  James Livingston  <doclivingston@gmail.com>
1086         * sources/rb-auto-playlist-source.c:
1087         (rb_auto_playlist_source_init):
1088         * sources/rb-static-playlist-source.c:
1089         (rb_static_playlist_source_init):
1091 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1093         * sources/rb-browser-source.c:
1094         * sources/rb-import-errors-source.c:
1095         * sources/rb-iradio-source.c:
1096         * sources/rb-library-source.c:
1097         * sources/rb-missing-files-source.c:
1098         * sources/rb-play-queue-source.c:
1099         * sources/rb-playlist-source.c:
1100         * sources/rb-podcast-source.c:
1101         * sources/rb-source.c:
1102         Make entry-type a property on RBSource, rather than on most of its
1103         subclasses.  Fixes #347288.
1105 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1107         * remote/dbus/rb-client.c: (parse_pattern),
1108         (create_rb_shell_proxies), (main):
1109         Actually implement %ag and %aG (genre) for --print-playing-format
1111 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1113         * lib/rb-debug.c: (rb_debug_real):
1114         No point allocating a buffer for the timestamp when we can just put it
1115         on the stack.
1117 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1120         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1122 2006-08-11  James Livingston  <doclivingston@gmail.com>
1124         * podcast/rb-podcast-manager.c:
1125         (rb_podcast_manager_update_synctime): fix accidental commit in the
1126         last, which caused a warning.
1128 2006-08-11  James Livingston  <doclivingston@gmail.com>
1130         * data/rhythmbox.schemas:
1131         * podcast/rb-podcast-manager.c:
1132         (rb_podcast_manager_update_synctime): change the schema's
1133         update-inteval value from 0 to 1, which causes it to update on
1134         startup, rather than never. Should fixs #343818.
1136 2006-08-11  James Livingston  <doclivingston@gmail.com>
1138         * configure.ac:
1139         * data/Makefile.am:
1140         - data/rhythmbox.desktop.in:
1141         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1142         the @VERSION@ can be substituted in. Fix some issues with newer
1143         bug-buddy versions. Fixes #348853.
1145 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1147         * data/rhythmbox.schemas:
1148         * plugins/Makefile.am:
1149         * plugins/artdisplay/Makefile.am:
1150         * plugins/audioscrobbler/Makefile.am:
1151         * plugins/cd-recorder/Makefile.am:
1152         * plugins/generic-player/Makefile.am:
1153         * plugins/ipod/Makefile.am:
1154         * plugins/lirc/Makefile.am:
1155         * plugins/lyrics/Makefile.am:
1156         * plugins/pythonconsole/Makefile.am:
1157         * plugins/rb-module.c:
1158         * plugins/rb-module.h:
1159         * plugins/rb-plugin-manager.c: (configure_button_cb),
1160         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1161         (plugin_manager_populate_lists), (plugin_manager_set_active),
1162         (plugin_manager_toggle_active),
1163         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1164         (rb_plugin_manager_finalize):
1165         * plugins/rb-plugin-manager.h:
1166         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1167         (rb_plugin_find_file):
1168         * plugins/rb-plugin.h:
1169         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1170         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1171         (rb_plugins_engine_init), (rb_plugin_info_free),
1172         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1173         (rb_plugins_engine_deactivate_plugin),
1174         (rb_plugins_engine_plugin_is_active),
1175         (rb_plugins_engine_plugin_is_visible),
1176         (rb_plugins_engine_plugin_is_configurable),
1177         (rb_plugins_engine_configure_plugin),
1178         (rb_plugins_engine_get_plugin_name),
1179         (rb_plugins_engine_get_plugin_description),
1180         (rb_plugins_engine_get_plugin_authors),
1181         (rb_plugins_engine_get_plugin_website),
1182         (rb_plugins_engine_get_plugin_copyright),
1183         (rb_plugins_engine_get_plugin_icon):
1184         * plugins/rb-plugins-engine.h:
1185         * plugins/rb-python-module.c: (rb_python_module_init_python),
1186         (rb_python_module_load), (rb_python_module_unload),
1187         (rb_python_module_class_init), (rb_python_module_new),
1188         (finalise_collect_cb), (rb_python_shutdown):
1189         * plugins/rb-python-module.h:
1190         * plugins/rb-python-plugin.c: (call_python_method),
1191         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1192         (impl_is_configurable), (rb_python_object_get_type):
1193         * plugins/rb-python-plugin.h:
1194         * plugins/rb/Makefile.am:
1196         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1197         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1198         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1199         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1200         special case loading of dirs.  Install plugins to subdirectors of
1201         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1202         not DATADIR.  Fixes #350352
1204 2006-08-10  James Livingston  <doclivingston@gmail.com>
1206         * daapsharing/rb-daap-connection.c: (connection_connected),
1207         (connection_disconnected), (connection_operation_done):
1208         * daapsharing/rb-daap-share.c: (name_collision_cb):
1209         * plugins/generic-player/rb-generic-player-source.c:
1210         (rb_generic_player_source_load_playlists):
1211         * podcast/rb-podcast-manager.c:
1212         (rb_podcast_manager_download_entry),
1213         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1214         (end_job), (rb_podcast_manager_event_loop):
1215         * rhythmdb/rhythmdb-property-model.c:
1216         (rhythmdb_property_model_perform_sync):
1217         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1218         (rhythmdb_query_model_process_update), (idle_process_update),
1219         (rhythmdb_query_model_reapply_query_cb):
1220         * shell/rb-play-order.c: (sync_playing_entry_cb):
1221         * shell/rb-removable-media-manager.c:
1222         (rb_removable_media_manager_load_media):
1223         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1224         (rb_shell_clipboard_sync),
1225         (rb_shell_clipboard_entryview_changed_cb),
1226         (rb_shell_clipboard_entries_changed_cb),
1227         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1228         (rebuild_playlist_menu_idle),
1229         (rb_shell_clipboard_playlist_added_cb):
1230         * shell/rb-shell-player.c: (notify_playing_idle),
1231         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1232         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1233         (rb_shell_quit):
1234         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1235         * sources/rb-library-source.c: (add_child_sources_idle):
1236         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1237         (burn_cd_idle):
1238         * sources/rb-source.c: (update_visibility_idle):
1239         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1240         (cb_button_press):
1241         * widgets/rb-druid.c: (idle_set_sensitive):
1242         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1243         take the GDK lock when we should be, from #348588
1245 2006-08-09  James Livingston  <doclivingston@gmail.com>
1247         * rhythmdb/rhythmdb-property-model.c:
1248         (rhythmdb_property_model_get_path),
1249         (rhythmdb_property_model_get_value),
1250         (rhythmdb_property_model_iter_next): don't attempt to verify the
1251         iterator if it's the All value, since it isn't valid. Fixes a
1252         potential crasher.
1254 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1256         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1257         (rb_podcast_manager_download_file_info_cb),
1258         (rb_podcast_manager_abort_download), (download_info_free),
1259         (download_info_new):
1260         Use gnome_vfs_async_get_file_info to figure out the local filename for
1261         a podcast episode, so we get the filename from the target of any
1262         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1263         the query string, then append it later, to stop gnome-vfs from
1264         converting 'http://' to 'http:/'.  If the local filename ends with the
1265         query string, remove it.  Fixes #330766 and #321991.
1267 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1269         * sources/rb-library-source.c: (impl_want_uri):
1270         * sources/rb-static-playlist-source.c: (impl_want_uri):
1271         Treat sftp:// URIs as likely indicators of songness.
1273 2006-08-07  James Livingston  <doclivingston@gmail.com>
1275         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1276         remote tracks with GStreamer 0.10, and remember their visibility like
1277         local ones.
1279 2006-08-07  James Livingston  <doclivingston@gmail.com>
1281         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1282         apparently it's a borrowed reference. Should fix #347072.
1284 2006-08-06  James Livingston  <doclivingston@gmail.com>
1286         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1287         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1288         (rb_shuffle_play_order_get_previous),
1289         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1290         (remove_from_history), (add_randomly_to_history),
1291         (rb_shuffle_sync_history_with_query_model),
1292         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1293         (query_model_and_history_contents_match): remove the tentatative
1294         history stuff, which is from older code, like we did for -random a few
1295         weeks ago.
1297 2006-08-06  James Livingston  <doclivingston@gmail.com>
1299         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1300         (rb_queue_play_order_get_previous):
1301         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1302         (rb_random_play_order_go_next),
1303         (rb_random_play_order_get_previous), (rb_random_db_changed):
1304         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1305         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1306         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1307         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1308         (rb_shuffle_entry_removed),
1309         (query_model_and_history_contents_match):
1310         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1311         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1312         (default_has_next), (default_has_previous),
1313         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1314         various play orders, after reviewing the code. Should fix #349601.
1316 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1318         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1319         Pass the items_per_notification parameter to
1320         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1321         with some versions of python.
1323 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1325         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1326         Don't try to draw the icon if the drawable area is too small.
1327         Fixes #349838.
1329 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1331         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1333         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1335 2006-08-05  James Livingston  <doclivingston@gmail.com>
1337         * configure.ac: tell libtool not to check for C++/fortran/ etc
1338         compilers
1340         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1341         watch, to fix some gconf warnings.
1343 2006-08-04  James Livingston  <doclivingston@gmail.com>
1345         patch by: William Jon McCann  <mccann@jhu.edu>
1347         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1349 2006-08-04  James Livingston  <doclivingston@gmail.com>
1351         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1352         actually fix #349722 this time
1354 2006-08-04  James Livingston  <doclivingston@gmail.com>
1356         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1357         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1358         know about. Fixes #348571.
1360 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1362         various fixes for valgrind complaints:
1363         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1364         (init_rb_tree_dnd_data):
1365           free the associated target list, too
1366         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1367           initialize allocation.{x,y,width,height} correctly
1368         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1369         (rb_entry_view_constructor):
1370           free strings when no longer needed
1372 2006-08-03  James Livingston  <doclivingston@gmail.com>
1374         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1375         real GtkTreeModel not the filter. Fixes #349722
1377 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1379         * backends/gstreamer/rb-player-gst.c:
1380         Only use DAAP seek hacks for GStreamer 0.8 builds.
1382         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1383         (rb_daap_src_open):
1384         * daapsharing/rb-daap-src.h:
1385         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1387         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1388         (rb_daap_source_get_headers):
1389         * sources/rb-daap-source.h:
1390         Reimplement rb_daap_source_get_headers for the case where we've
1391         already got the byte offset.  Add a small hack to
1392         rb_daap_source_class_init to prevent the linker from dropping
1393         rb-daap-src.o entirely.
1395         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1397 2006-08-02  James Livingston  <doclivingston@gmail.com>
1399         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1400         (handle_song_listing), (handle_playlist_entries),
1401         (rb_daap_connection_dispose):
1402         * sources/rb-daap-source.c: (_add_location_to_playlist),
1403         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1404         for playlist URIs, not pointless duplicate strings. From #347425.
1406 2006-08-02  James Livingston  <doclivingston@gmail.com>
1408         * data/rhythmbox.schemas:
1409         * lib/rb-preferences.h:
1410         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1411         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1412         (plugin_manager_set_active), (plugin_manager_toggle_active),
1413         (plugin_manager_get_selected_plugin), (name_search_cb),
1414         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1415         (rb_plugin_manager_finalize):
1416         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1417         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1418         (rb_plugins_engine_plugin_is_visible),
1419         (rb_plugins_engine_plugin_visible_cb):
1420         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1421         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1423 2006-08-02  James Livingston  <doclivingston@gmail.com>
1425         * sources/rb-sourcelist-model.c:
1426         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1427         drop on a source. Fixes #349580.
1429 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1431         * configure.ac:
1432         * daapsharing/rb-daap-dialog.c:
1433         * daapsharing/rb-daap-dialog.h:
1434         * shell/Makefile.am:
1435         * sources/Makefile.am:
1436         * sources/rb-daap-source.c: (connection_auth_cb),
1437         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1438         Add gnome-keyring support for DAAP passwords and use
1439         gnome-password-dialog instead of our own.  
1440         Patch mostly by James Livingston.  Fixes bug #330346.
1442 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1444         * shell/rb-shell-player.c:
1445         (rb_shell_player_set_playing_source_internal),
1446         (rb_shell_player_sync_with_selected_source):
1447         Remove call to rb_source_have_url, as we never did anything with the
1448         result.
1450         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1451         * sources/rb-import-errors-source.c:
1452         (rb_import_errors_source_class_init):
1453         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1454         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1455         * sources/rb-library-source.c: (rb_library_source_class_init),
1456         (impl_want_uri), (impl_add_uri):
1457         * sources/rb-missing-files-source.c:
1458         (rb_missing_files_source_class_init):
1459         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1460         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1461         (impl_want_uri), (impl_add_uri):
1462         * sources/rb-source.c: (rb_source_class_init),
1463         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1464         * sources/rb-source.h:
1465         * sources/rb-static-playlist-source.c:
1466         (rb_static_playlist_source_class_init), (search_action_changed),
1467         (impl_want_uri):
1468         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1469         When adding a URI, want_uri gets called for each source; the one that
1470         wants it most gets the URI passed to its add_uri method.
1471         
1472         * shell/rb-shell.h:
1473         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1474         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1475         (handle_playlist_entry_cb), (rb_shell_load_uri):
1476         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1477         Use want_uri and add_uri to simplify and make generic
1478         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1480         If a source that returns TRUE from try_playlist wants all the URIs in
1481         the playlist, give it the playlist URI instead.  This retains the
1482         existing behaviour for adding iradio playlists.
1484         * bindings/python/rb.defs: Update for above changes.
1486         From bug #347097.
1488 2006-07-31  James Livingston  <doclivingston@gmail.com>
1490         * data/Makefile.am:
1491         * data/generate-keys.sh: fix the build I broke with the last commit.
1492         Oops.
1494 2006-07-31  James Livingston  <doclivingston@gmail.com>
1496         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1497         in a long time. Fixes #349179.
1499 2006-07-30  James Livingston  <doclivingston@gmail.com>
1501         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1502         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1503         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1505 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1507         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1508         Don't tell the browser the query is still pending when doing a subset
1509         search.  Fixes #348617 again.
1511 2006-07-30  James Livingston  <doclivingston@gmail.com>
1513         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1514         override definition. Fixes #348893.
1516 2006-07-30  James Livingston  <doclivingston@gmail.com>
1518         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1519         rb_error_dialog, as it's above this in the stack.
1521         * lib/rb-util.c: (rb_gvalue_compare):
1522         * lib/rb-util.h: change the return type to int, as we're returning
1523         -1/0/1
1525         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1526         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1527         (rb_query_creator_set_sorting): minor leak fixes
1529 2006-07-28  James Livingston  <doclivingston@gmail.com>
1531         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1532         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1533         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1534         (get_or_create_genre), (remove_entry_from_album),
1535         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1536         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1537         (rhythmdb_tree_entry_lookup_by_location),
1538         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1539         (rhythmdb_hash_tree_foreach),
1540         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1541         threadsafe. Fix a nasty problem if the _foreach callback function
1542         caused the addition/removal of entries.
1544 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1546         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1547         Clear selection before changing our idea of the model.  Fixes crashes
1548         on model changes while playing.
1550 2006-07-27  James Livingston  <doclivingston@gmail.com>
1552         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1553         a missing rb_refstring_unref.
1555         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1556         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1557         oops. should hopefully fix the crash reported on #347425.
1559 2006-07-27  James Livingston  <doclivingston@gmail.com>
1561         * backends/gstreamer/rb-encoder-gst.c:
1562         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1564         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1565         thread-safety issue.
1567 2006-07-27  James Livingston  <doclivingston@gmail.com>
1569         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1570         * rhythmdb/rb-refstring.h: add a new function which returns the
1571         RBRefString that matches a string, but never creates a new one.
1573         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1574         (monitor_entry_file), (rhythmdb_check_changed_file),
1575         (rhythmdb_directory_change_cb):
1576         * rhythmdb/rhythmdb-private.h:
1577         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1578         (unparent_entries), (free_unknown_entries),
1579         (rhythmdb_tree_parser_start_element),
1580         (rhythmdb_tree_parser_end_element), (save_entry),
1581         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1582         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1583         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1584         (rhythmdb_tree_entry_type_registered):
1585         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1586         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1587         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1588         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1589         (rhythmdb_process_metadata_load),
1590         (rhythmdb_process_file_created_or_modified),
1591         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1592         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1593         (action_thread_main), (rhythmdb_entry_set_internal),
1594         (rhythmdb_entry_move_to_trash_set_error),
1595         (rhythmdb_entry_move_to_trash),
1596         (rhythmdb_entry_lookup_by_location),
1597         (rhythmdb_entry_lookup_by_location_refstring),
1598         (default_sync_metadata), (rhythmdb_entry_get_string),
1599         (rhythmdb_entry_get_refstring):
1600         * rhythmdb/rhythmdb.h:
1601         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1602         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1603         (rb_playlist_source_row_deleted),
1604         (rb_playlist_source_entry_added_cb),
1605         (rb_playlist_source_location_in_map),
1606         (rb_playlist_source_add_to_map): Make the LOCATION field of
1607         RhythmDBEntry be a RBRefString instead, which reduces some of the
1608         memory-fragmentation on startup and saves RBStaticPlaylistSource
1609         duplicating all the strings.
1611 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1613         * rhythmdb/rhythmdb-query-model.c:
1614         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1615         * rhythmdb/rhythmdb-query-model.h:
1616         Add function to copy contents from one query model to another,
1617         filtered by the destination model's query.
1619         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1620         Use the above to create a new query model for subset searches, rather
1621         than filtering the existing model. Fixes #348617.
1623 2006-07-25  James Livingston  <doclivingston@gmail.com>
1625         * rhythmdb/rhythmdb-query-model.c:
1626         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1627         lost from static playlists. Yet again. Fixes #323095.
1629         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1630         case for the above, so that we should know if a change will break it
1631         again.
1633 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1635         * data/rhythmbox.schemas: Fix for last commit.
1637         * podcast/rb-podcast-manager.c:
1638         (rb_podcast_manager_download_entry),
1639         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1640         (rb_podcast_manager_db_entry_deleted_cb):
1641         * rhythmdb/rhythmdb-property-model.c:
1642         (rhythmdb_property_model_set_query_model_internal),
1643         (rhythmdb_property_model_set_property),
1644         (rhythmdb_property_model_finalize),
1645         (rhythmdb_property_model_drag_data_get):
1646         * rhythmdb/rhythmdb-query-model.c:
1647         (rhythmdb_query_model_set_query_internal),
1648         (rhythmdb_query_model_set_property),
1649         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1650         * rhythmdb/rhythmdb-query-model.h:
1651         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1652         (rb_browser_source_do_query):
1653         * sources/rb-import-errors-source.c:
1654         (rb_import_errors_source_constructor):
1655         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1656         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1657         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1658         (impl_search), (impl_get_status),
1659         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1660         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1661         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1662         * sources/rb-missing-files-source.c:
1663         (rb_missing_files_source_constructor),
1664         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1665         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1666         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1667         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1668         (rb_playlist_source_save_playlist),
1669         (rb_playlist_source_new_from_xml),
1670         (rb_playlist_source_save_to_xml),
1671         (rb_playlist_source_setup_entry_view),
1672         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1673         (rb_playlist_source_get_query_model),
1674         (rb_playlist_source_mark_dirty),
1675         (rb_playlist_source_location_in_map),
1676         (rb_playlist_source_add_to_map):
1677         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1678         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1679         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1680         (impl_delete), (rb_podcast_source_state_prefs_sync),
1681         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1682         (impl_get_config_widget), (rb_podcast_source_add_feed),
1683         (rb_podcast_source_cmd_download_post),
1684         (rb_podcast_source_cmd_cancel_download),
1685         (rb_podcast_source_cmd_delete_feed),
1686         (rb_podcast_source_cmd_update_feed),
1687         (rb_podcast_source_cmd_update_all),
1688         (rb_podcast_source_cb_interval_changed_cb),
1689         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1690         (rb_podcast_source_entry_activated_cb):
1691         * sources/rb-source.c: (rb_source_finalize),
1692         (rb_source_set_query_model_internal), (rb_source_set_property),
1693         (default_get_status):
1694         * sources/rb-static-playlist-source.c:
1695         (rb_static_playlist_source_dispose),
1696         (rb_static_playlist_source_finalize),
1697         (rb_static_playlist_source_constructor),
1698         (rb_static_playlist_source_do_query):
1699         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1700         (rb_entry_view_set_shell_player_internal),
1701         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1702         (rb_entry_view_set_model), (rb_entry_view_append_column),
1703         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1704         (rb_entry_view_set_state):
1705         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1706         (rb_library_browser_finalize), (rb_library_browser_new),
1707         (update_browser_property_visibilty), (view_selection_reset_cb),
1708         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1709         (restore_selection), (rebuild_child_model),
1710         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1711         * widgets/rb-property-view.c:
1712         (rb_property_view_set_model_internal),
1713         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1714         (rb_property_view_get_model), (rb_property_view_set_model),
1715         (rb_property_view_get_num_properties),
1716         (rb_property_view_set_selection),
1717         (rb_property_view_append_column_custom),
1718         (rb_property_view_set_search_func):
1719         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1720         From #347446
1722 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1724         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1725         Work around a small n-c-b API change.
1727 2006-07-25  James Livingston  <doclivingston@gmail.com>
1729         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1731         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1732         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1733         aborting entry-emission on finalise
1735 2006-07-25  James Livingston  <doclivingston@gmail.com>
1737         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1738         warning when entry is NULL.
1740 2006-07-25  James Livingston  <doclivingston@gmail.com>
1742         * help/sv/.cvsignore:
1743         * lib/.cvsignore:
1744         * plugins/generic-player/.cvsignore:
1745         * remote/.cvsignore:
1746         * remote/dbus/.cvsignore:
1747         * shell/.cvsignore:
1748         * tests/.cvsignore: more .cvsignore updates
1750 2006-07-24  James Livingston  <doclivingston@gmail.com>
1752         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1753         (transparent_expose_event), (make_transparent_again),
1754         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1755         apply a patch for EggTrayIcon so that it handled transparent panels
1756         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1757         Fixes #348208.
1759 2006-07-24  James Livingston  <doclivingston@gmail.com>
1761         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1762         queries rather than taking ownership when parsing a subquery. Fixed a
1763         crash exposed by the recent leak fixes.
1765         * doc/reference/tmpl/disclosure-widget.sgml:
1766         * doc/reference/tmpl/rb-debug.sgml:
1767         * doc/reference/tmpl/rb-metadata.sgml:
1768         * doc/reference/tmpl/rb-play-order.sgml:
1769         * doc/reference/tmpl/rb-playlist-manager.sgml:
1770         * doc/reference/tmpl/rb-playlist-source.sgml:
1771         * doc/reference/tmpl/rb-shell-player.sgml:
1772         * doc/reference/tmpl/rb-shell.sgml:
1773         * doc/reference/tmpl/rb-song-display-box.sgml:
1774         * doc/reference/tmpl/rhythmbox-unused.sgml:
1775         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1777 2006-07-24  James Livingston  <doclivingston@gmail.com>
1779         * lib/.cvsignore:
1780         * plugins/artdisplay/.cvsignore:
1781         * plugins/artdisplay/artdisplay/.cvsignore:
1782         * plugins/lyrics/.cvsignore:
1783         * plugins/pythonconsole/.cvsignore:
1784         * plugins/rb/.cvsignore: add/update various .cvsignore files
1786 2006-07-24  James Livingston  <doclivingston@gmail.com>
1788         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1789         (rb_refstring_ref): don't emit critical warnings when the refstring
1790         is NULL, as that happens often for podcast metadata.
1792         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1793         missing rhythmdb_entry_ref call
1795 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1797         * bindings/python/rb.override:
1798         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1799         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1800         (playlist_row_inserted_cb):
1801         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1802         * plugins/rb-plugin-manager.c:
1803         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1804         (rb_podcast_manager_copy_post),
1805         (rb_podcast_manager_db_entry_deleted_cb),
1806         (rb_podcast_manager_insert_feed):
1807         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1808         (rb_refstring_ref), (rb_refstring_get_sort_key):
1809         * rhythmdb/rhythmdb-private.h:
1810         * rhythmdb/rhythmdb-property-model.c:
1811         (rhythmdb_property_model_set_property),
1812         (rhythmdb_property_model_get_property),
1813         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1814         (rhythmdb_property_model_row_inserted_cb),
1815         (rhythmdb_property_model_prop_changed_cb),
1816         (rhythmdb_property_model_compare),
1817         (rhythmdb_property_model_insert),
1818         (rhythmdb_property_model_iter_from_string),
1819         (rhythmdb_property_model_get_column_type),
1820         (rhythmdb_property_model_get_iter),
1821         (rhythmdb_property_model_get_value),
1822         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1823         (rhythmdb_property_model_enable_drag):
1824         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1825         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1826         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1827         (rhythmdb_query_model_chain),
1828         (rhythmdb_query_model_entry_added_cb),
1829         (rhythmdb_query_model_entry_changed_cb),
1830         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1831         (rhythmdb_query_model_add_entry),
1832         (rhythmdb_query_model_insert_into_main_list),
1833         (rhythmdb_query_model_insert_into_limited_list),
1834         (rhythmdb_query_model_remove_from_main_list),
1835         (rhythmdb_query_model_remove_from_limited_list),
1836         (rhythmdb_query_model_update_limited_entries),
1837         (rhythmdb_query_model_emit_reorder),
1838         (rhythmdb_query_model_do_reorder),
1839         (rhythmdb_query_model_do_insert),
1840         (rhythmdb_query_model_move_entry),
1841         (rhythmdb_query_model_remove_entry),
1842         (rhythmdb_query_model_entry_to_iter),
1843         (rhythmdb_query_model_iter_to_entry),
1844         (rhythmdb_query_model_get_previous_from_entry),
1845         (rhythmdb_query_model_row_draggable),
1846         (rhythmdb_query_model_drag_data_delete),
1847         (rhythmdb_query_model_drag_data_get),
1848         (rhythmdb_query_model_drag_data_received),
1849         (rhythmdb_query_model_row_drop_possible),
1850         (rhythmdb_query_model_row_drop_position),
1851         (rhythmdb_query_model_add_results),
1852         (rhythmdb_query_model_query_complete),
1853         (rhythmdb_query_model_get_column_type),
1854         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1855         (rhythmdb_query_model_iter_nth_child),
1856         (apply_updated_entry_sequence),
1857         (rhythmdb_query_model_child_index_to_base_index),
1858         (rhythmdb_query_model_get_entry_index),
1859         (rhythmdb_query_model_base_row_inserted),
1860         (rhythmdb_query_model_base_row_deleted),
1861         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1862         (rhythmdb_query_model_location_sort_func),
1863         (rhythmdb_query_model_title_sort_func),
1864         (rhythmdb_query_model_album_sort_func),
1865         (rhythmdb_query_model_artist_sort_func),
1866         (rhythmdb_query_model_track_sort_func),
1867         (rhythmdb_query_model_double_ceiling_sort_func),
1868         (rhythmdb_query_model_ulong_sort_func),
1869         (rhythmdb_query_model_date_sort_func),
1870         (rhythmdb_query_model_string_sort_func),
1871         (rhythmdb_query_model_within_limit):
1872         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1873         (rhythmdb_tree_parser_start_element),
1874         (rhythmdb_tree_parser_end_element),
1875         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1876         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1877         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1878         (save_entry_uint64), (save_entry_double), (save_entry),
1879         (set_entry_album), (rhythmdb_tree_entry_new),
1880         (get_genres_hash_for_type), (get_or_create_genre),
1881         (get_or_create_artist), (get_or_create_album), (remove_child),
1882         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1883         (rhythmdb_tree_entry_delete), (remove_one_song),
1884         (rhythmdb_tree_entry_delete_by_type),
1885         (rhythmdb_tree_evaluate_query), (search_match_properties),
1886         (evaluate_conjunctive_subquery), (do_conjunction),
1887         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1888         (conjunctive_query_albums), (conjunctive_query_artists),
1889         (conjunctive_query_genre), (conjunctive_query),
1890         (split_query_by_disjunctions), (do_query_recurse),
1891         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1892         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1893         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1894         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1895         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1896         (extract_gtype_from_enum_entry),
1897         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1898         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1899         (rhythmdb_event_free), (rhythmdb_finalize),
1900         (rhythmdb_set_property), (rhythmdb_get_property),
1901         (rhythmdb_thread_create), (free_entry_changes),
1902         (emit_entry_changed), (sync_entry_changed),
1903         (process_added_entries_cb), (process_deleted_entries_cb),
1904         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1905         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1906         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1907         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1908         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1909         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1910         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1911         (rhythmdb_process_metadata_load),
1912         (rhythmdb_process_file_created_or_modified),
1913         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1914         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1915         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1916         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1917         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1918         (record_entry_change), (rhythmdb_entry_set_internal),
1919         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1920         (rhythmdb_entry_move_to_trash_cb),
1921         (rhythmdb_entry_move_to_trash_set_error),
1922         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1923         (rhythmdb_nice_elt_name_from_propid),
1924         (rhythmdb_propid_from_nice_elt_name),
1925         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1926         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1927         (rhythmdb_compute_status_normal), (default_sync_metadata),
1928         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1929         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1930         (podcast_get_playback_uri), (podcast_data_destroy),
1931         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1932         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1933         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1934         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1935         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1936         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1937         * rhythmdb/rhythmdb.h:
1938         * shell/rb-play-order-linear-loop.c:
1939         (rb_linear_play_order_loop_get_next),
1940         (rb_linear_play_order_loop_get_previous):
1941         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1942         (rb_linear_play_order_get_previous):
1943         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1944         * shell/rb-play-order-random.c: (get_query_model_contents):
1945         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1946         (get_query_model_contents):
1947         * shell/rb-play-order.c: (rb_play_order_constructor),
1948         (rb_play_order_finalize),
1949         (rb_play_order_set_playing_entry_internal),
1950         (rb_play_order_set_property), (rb_play_order_new),
1951         (rb_play_order_get_player), (rb_play_order_get_source),
1952         (rb_play_order_get_db), (rb_play_order_get_query_model),
1953         (rb_play_order_player_is_playing),
1954         (rb_play_order_set_playing_entry),
1955         (rb_play_order_get_playing_entry),
1956         (rb_play_order_playing_source_changed),
1957         (rb_play_order_query_model_changed),
1958         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1959         (default_has_next), (default_has_previous),
1960         (sync_playing_entry_cb), (default_playing_entry_removed),
1961         (rb_play_order_has_next), (rb_play_order_get_next),
1962         (rb_play_order_go_next), (rb_play_order_has_previous),
1963         (rb_play_order_get_previous), (rb_play_order_go_previous),
1964         (rb_play_order_model_not_empty),
1965         (rb_play_order_update_have_next_previous):
1966         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1967         (rb_playlist_manager_save_playlists),
1968         (rb_playlist_manager_set_automatic_playlist),
1969         (rb_playlist_manager_cmd_edit_automatic_playlist),
1970         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1971         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1972         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1973         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1974         (volume_pre_unmount_cb), (reemit_playing_signal),
1975         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1976         (rb_shell_player_handle_eos_unlocked),
1977         (rb_shell_player_handle_eos), (rb_shell_player_init),
1978         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1979         (playlist_entry_cb), (rb_shell_player_open_entry),
1980         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1981         (rb_shell_player_set_play_order),
1982         (rb_shell_player_set_playback_state),
1983         (rb_shell_player_sync_play_order),
1984         (rb_shell_player_play_order_update_cb),
1985         (rb_shell_player_jump_to_current), (swap_playing_source),
1986         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1987         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1988         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1989         (rb_shell_player_entry_activated_cb),
1990         (rb_shell_player_property_row_activated_cb),
1991         (rb_shell_player_entry_changed_cb),
1992         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1993         (rb_shell_player_pause),
1994         (rb_shell_player_get_playing_song_duration),
1995         (rb_shell_player_error), (error_cb), (tick_cb),
1996         (info_available_cb), (buffering_cb),
1997         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1998         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1999         (rb_shell_jump_to_current):
2000         * sources/rb-auto-playlist-source.c:
2001         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2002         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2003         (rb_auto_playlist_source_get_query):
2004         * sources/rb-auto-playlist-source.h:
2005         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2006         * sources/rb-import-errors-source.c:
2007         (rb_import_errors_source_constructor):
2008         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2009         * sources/rb-library-source.c: (filepath_parse_pattern):
2010         * sources/rb-missing-files-source.c:
2011         (rb_missing_files_source_constructor):
2012         * sources/rb-play-queue-source.c:
2013         (rb_play_queue_source_clear_queue),
2014         (rb_play_queue_source_track_info_cell_data_func):
2015         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2016         (rb_playlist_source_get_property), (playlist_iter_func),
2017         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2018         (rb_playlist_source_track_cell_data_func):
2019         * sources/rb-podcast-source.c: (construct_query_from_selection),
2020         (rb_podcast_source_post_status_cell_data_func),
2021         (rb_podcast_source_post_feed_cell_data_func),
2022         (rb_podcast_source_feed_title_search_func),
2023         (rb_podcast_source_post_date_cell_data_func):
2024         * sources/rb-source.c: (default_get_status),
2025         (rb_source_get_status), (rb_source_browser_toggled),
2026         (rb_source_update_play_statistics), (rb_source_search),
2027         (rb_source_get_config_widget), (default_add_to_queue),
2028         (rb_source_add_to_queue), (rb_source_receive_drag),
2029         (rb_source_gather_hash_keys):
2030         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2031         (rb_sourcelist_model_is_row_visible),
2032         (rb_sourcelist_model_row_is_separator),
2033         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2034         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2035         (rb_sourcelist_model_drag_data_get):
2036         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2037         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2038         (rb_sourcelist_visible_source_to_iter),
2039         (rb_sourcelist_edit_source_name), (set_source_playing),
2040         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2041         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2042         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2043         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2044         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2045         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2046         (rb_static_playlist_source_add_location_internal),
2047         (rb_static_playlist_source_row_inserted):
2048         * widgets/rb-entry-view.c: (type_ahead_search_func),
2049         (rb_entry_view_finalize), (rb_entry_view_set_model),
2050         (rb_entry_view_playing_cell_data_func),
2051         (rb_entry_view_rating_cell_data_func),
2052         (rb_entry_view_long_cell_data_func),
2053         (rb_entry_view_play_count_cell_data_func),
2054         (rb_entry_view_duration_cell_data_func),
2055         (rb_entry_view_year_cell_data_func),
2056         (rb_entry_view_quality_cell_data_func),
2057         (rb_entry_view_location_cell_data_func),
2058         (rb_entry_view_string_cell_data_func),
2059         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2060         (rb_entry_view_get_sorting_order),
2061         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2062         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2063         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2064         (rb_entry_view_playing_song_changed), (harvest_entries),
2065         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2066         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2067         (set_column_visibility):
2068         * widgets/rb-entry-view.h:
2069         * widgets/rb-header.c: (rb_header_new),
2070         (rb_header_set_playing_entry), (rb_header_set_title):
2071         * widgets/rb-library-browser.c: (rebuild_child_model),
2072         (rb_library_browser_set_model):
2073         * widgets/rb-property-view.c:
2074         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2075         (rb_property_view_set_property), (rb_property_view_get_property),
2076         (rb_property_view_reset), (rb_property_view_get_model),
2077         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2078         (rb_property_view_button_press_cb):
2079         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2080         (rb_query_creator_get_property), (rb_query_creator_load_query),
2081         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2082         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2083         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2084         (lookup_row_by_widget), (remove_button_click_cb),
2085         (add_button_click_cb), (create_property_option_menu):
2086         * widgets/rb-song-info.c: (rb_song_info_constructor),
2087         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2088         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2089         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2090         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2092 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2094         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2095         (rb_shell_player_get_property):
2096         Add a property providing access to the player backend object.
2098 2006-07-23  James Livingston  <doclivingston@gmail.com>
2100         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2101         (get_history), (rb_random_filter_history),
2102         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2103         remove the tentative history, since it appears to be a remanent from
2104         older play order code. The only thing it was doing was using up
2105         CPU-time and memory. From #345857
2107 2006-07-23  James Livingston  <doclivingston@gmail.com>
2109         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2111         * shell/main.c: (main):
2112         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2113         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2114         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2115         (rb_playlist_manager_load_playlists),
2116         (rb_playlist_manager_save_data):
2117         * shell/rb-playlist-manager.h:
2118         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2119         (rb_shell_get_property), (rb_shell_sync_state),
2120         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2121         (construct_sources), (idle_handle_load_complete):
2122         * shell/rb-shell.h: Add a command-line option for changing the
2123         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2125 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2127         * daapsharing/rb-daap-share.c: (databases_cb):
2128         Make sure we set status codes on HTTP responses.
2130 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2132         * configure.ac:
2133         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2134         (chunked_message_finished), (send_chunked_file),
2135         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2136         Use GMappedFile to send local files to DAAP clients where possible.  
2137         iTunes can't seek properly in files sent using chunked transfer 
2138         encoding.  Also remove the useless bitrate calculation code, as we
2139         never even used the result anyway.  From #330410.
2141 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2143         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2145         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2146         Enable multiple selection for 'import file'.  Fixes #347478.
2148 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2150         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2151         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2152         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2153         Fixes #348098.
2155 2006-07-20  James Livingston  <doclivingston@gmail.com>
2157         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2158         aren't NULL before calling strstr. Fixes #347998.
2160 2006-07-19  James Livingston  <doclivingston@gmail.com>
2162         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2164         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2165         MB that only have years. Fixes #347906.
2167 2006-07-19  James Livingston  <doclivingston@gmail.com>
2169         * rhythmdb/rhythmdb-private.h:
2170         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2171         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2172         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2173         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2174         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2175         (rhythmdb_execute_stat), (queue_stat_uri),
2176         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2177         (rhythmdb_load), (rhythmdb_entry_register_type),
2178         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2179         asynchronous vfs operations, and cancel them when shutting down the
2180         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2182         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2183         (test_rhythmdb_shutdown): wait until the db has been finalised before
2184         continuing on to the next test.
2186 2006-07-19  James Livingston  <doclivingston@gmail.com>
2188         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2189         right thing in the #ifdef. From #347832.
2191 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2193         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2194         Fix compile warning.
2196 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2198         * rhythmdb/rhythmdb-query-model.c:
2199         (rhythmdb_query_model_set_property),
2200         (rhythmdb_query_model_reapply_query_cb):
2201         Ignore old query == new query case.
2202         Fixes auto playlists with time-relative queries.
2204         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2205         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2206         (rhythmdb_query_to_string):
2207         * rhythmdb/rhythmdb.h:
2208         Add debug helper for printing queries in case someone needs it again.
2210 2006-07-18  James Livingston  <doclivingston@gmail.com>
2212         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2213         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2214         Fixes #347832
2216         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2217         write then into files.
2219 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2221         * daapsharing/rb-daap-connection.c:
2222         (rb_daap_connection_set_property):
2223         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2224         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2225         (add_playlist_to_mlcl), (databases_cb):
2226         * daapsharing/rb-daap-sharing.c: (create_share):
2227         * iradio/rb-new-station-dialog.c:
2228         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2229         * iradio/rb-station-properties-dialog.c:
2230         (rb_station_properties_dialog_finalize),
2231         (rb_station_properties_dialog_set_property),
2232         (rb_station_properties_dialog_get_current_entry):
2233         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2234         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2235         * plugins/generic-player/rb-generic-player-source.c:
2236         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2237         (handle_playlist_entry_cb):
2238         * plugins/generic-player/rb-nokia770-source.c:
2239         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2240         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2241         (visit_playlist_dirs), (hal_udi_is_psp):
2242         * podcast/rb-podcast-manager.c:
2243         * podcast/rb-podcast-properties-dialog.c:
2244         (rb_podcast_properties_dialog_finalize),
2245         (rb_podcast_properties_dialog_set_entry_view),
2246         (rb_podcast_properties_dialog_set_property):
2247         * rhythmdb/rhythmdb-property-model.c:
2248         * rhythmdb/rhythmdb-query-model.c:
2249         (rhythmdb_query_model_set_property),
2250         (rhythmdb_query_model_reapply_query_cb):
2251         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2252         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2253         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2254         (rhythmdb_event_free), (rhythmdb_shutdown),
2255         (rhythmdb_thread_create), (action_thread_main),
2256         (rhythmdb_do_full_query_async_parsed),
2257         (rhythmdb_do_full_query_internal):
2258         * shell/main.c: (main):
2259         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2260         * shell/rb-play-order.c: (rb_play_order_finalize),
2261         (rb_play_order_set_player),
2262         (rb_play_order_set_playing_entry_internal),
2263         (rb_play_order_set_property),
2264         (rb_play_order_playing_source_changed),
2265         (rb_play_order_query_model_changed):
2266         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2267         (rb_playlist_manager_set_source),
2268         (rb_playlist_manager_set_shell_internal),
2269         (rb_playlist_manager_set_property):
2270         * shell/rb-removable-media-manager.c:
2271         (rb_removable_media_manager_set_property),
2272         (rb_removable_media_manager_set_uimanager),
2273         (rb_removable_media_manager_cmd_eject_medium),
2274         (rb_removable_media_manager_cmd_copy_tracks):
2275         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2276         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2277         (rb_shell_clipboard_set),
2278         (rb_shell_clipboard_cmd_add_to_playlist_new),
2279         (rb_shell_clipboard_playlist_add_cb),
2280         (rb_shell_clipboard_playlist_renamed_cb),
2281         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2282         (rebuild_playlist_menu):
2283         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2284         (rb_shell_player_set_queue_source_internal),
2285         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2286         (rb_shell_player_entry_activated_cb),
2287         (rb_shell_player_property_row_activated_cb),
2288         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2289         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2290         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2291         (rb_shell_finalize), (construct_widgets),
2292         (rb_shell_playing_from_queue_cb),
2293         (rb_shell_player_stream_song_changed_cb),
2294         (rb_shell_player_volume_changed_cb):
2295         * shell/rb-statusbar.c: (rb_statusbar_new):
2296         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2297         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2298         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2299         * sources/rb-auto-playlist-source.c:
2300         (rb_auto_playlist_source_class_init),
2301         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2302         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2303         (rb_auto_playlist_source_do_query),
2304         (rb_auto_playlist_source_set_query),
2305         (rb_auto_playlist_source_browser_changed_cb),
2306         (search_action_changed):
2307         * sources/rb-auto-playlist-source.h:
2308         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2309         (search_action_changed), (rb_browser_source_constructor),
2310         (rb_browser_source_cmd_choose_artist), (impl_delete),
2311         (rb_browser_source_browser_changed_cb),
2312         (rb_browser_source_do_query):
2313         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2314         (rb_daap_source_finalize), (rb_daap_source_class_init),
2315         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2316         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2317         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2318         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2319         (rb_daap_source_get_headers):
2320         * sources/rb-import-errors-source.c:
2321         (rb_import_errors_source_constructor),
2322         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2323         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2324         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2325         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2326         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2327         (impl_paste), (impl_receive_drag):
2328         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2329         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2330         (impl_song_properties):
2331         * sources/rb-library-source.c: (rb_library_source_constructor),
2332         (rb_library_source_new), (impl_paste),
2333         (rb_library_source_add_child_source):
2334         * sources/rb-missing-files-source.c: (impl_delete),
2335         (impl_get_status):
2336         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2337         (rb_play_queue_source_class_init),
2338         (rb_play_queue_source_constructor):
2339         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2340         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2341         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2342         (rb_playlist_source_new_from_xml),
2343         (rb_playlist_source_save_to_xml):
2344         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2345         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2346         (search_action_changed), (rb_podcast_source_constructor),
2347         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2348         (construct_query_from_selection),
2349         (rb_podcast_source_cmd_download_post),
2350         (rb_podcast_source_cmd_cancel_download),
2351         (rb_podcast_source_cmd_delete_feed),
2352         (rb_podcast_source_start_download_cb),
2353         (rb_podcast_source_finish_download_cb),
2354         (rb_podcast_source_feed_updates_avaliable_cb),
2355         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2356         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2357         (impl_get_status):
2358         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2359         * sources/rb-source.c: (rb_source_get_property),
2360         (default_add_to_queue), (default_move_to_trash),
2361         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2362         (_rb_source_register_action_group):
2363         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2364         (rb_sourcelist_model_is_row_visible),
2365         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2366         (rb_sourcelist_model_row_draggable),
2367         (rb_sourcelist_model_drag_data_get):
2368         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2369         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2370         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2371         (visibility_notify_cb):
2372         * sources/rb-static-playlist-source.c:
2373         (rb_static_playlist_source_class_init),
2374         (rb_static_playlist_source_init),
2375         (rb_static_playlist_source_finalize),
2376         (rb_static_playlist_source_constructor), (impl_delete),
2377         (rb_static_playlist_source_browser_changed_cb),
2378         (rb_static_playlist_source_add_location_internal),
2379         (search_action_changed):
2380         * sources/rb-static-playlist-source.h:
2381         * widgets/rb-druid.c:
2382         * widgets/rb-entry-view.c:
2383         (rb_entry_view_set_shell_player_internal),
2384         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2385         (rb_entry_view_get_property), (rb_entry_view_new),
2386         (rb_entry_view_button_press_cb):
2387         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2388         (rb_library_browser_set_property),
2389         (rb_library_browser_get_property):
2390         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2391         (get_entry_for_property), (get_property_index_from_proptype):
2392         * widgets/rb-song-info.c: (rb_song_info_constructor),
2393         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2394         (rb_song_info_set_property), (rb_song_info_get_property):
2396         More leak and reference counting fixes.  From bug #347446.
2398 2006-07-17  James Livingston  <doclivingston@gmail.com>
2400         * sources/rb-auto-playlist-source.c:
2401         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2402         rather than setting the base model, as that lets us not import all the
2403         entries from the base model. This fixes some issues whether the search
2404         box wasn't filting automatic playlists.
2406 2006-07-17  James Livingston  <doclivingston@gmail.com>
2408         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2409         error, which caused blacklist creation to fail.
2411 2006-07-17  James Livingston  <doclivingston@gmail.com>
2413         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2414         running with -n, because we don't start it then. Fixes a crash on
2415         exit.
2417 2006-07-17  James Livingston  <doclivingston@gmail.com>
2419         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2421         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2422         Save not Open for the button. Fixes #345816
2424 2006-07-17  James Livingston  <doclivingston@gmail.com>
2426         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2428         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2429         when track transfer is disabled. Fixes #347705
2431 2006-07-17  James Livingston  <doclivingston@gmail.com>
2433         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2435         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2436         with track transfer disabled. Fixes #347705
2438 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2440         * rhythmdb/rhythmdb-query-model.c:
2441         (rhythmdb_query_model_set_property):
2442         * shell/main.c: (main):
2443         * shell/rb-shell-clipboard.c: (unset_source_internal),
2444         (rb_shell_clipboard_finalize),
2445         (rb_shell_clipboard_set_source_internal),
2446         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2447         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2448         (rb_shell_player_set_db_internal),
2449         (rb_shell_player_set_queue_source_internal),
2450         (rb_shell_player_finalize), (rb_shell_player_set_property):
2451         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2452         * sources/rb-auto-playlist-source.c:
2453         (rb_auto_playlist_source_constructor),
2454         (rb_auto_playlist_source_new_from_xml):
2455         * sources/rb-daap-source.c: (create_pixbufs):
2456         * sources/rb-ipod-source.c:
2457         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2458         * sources/rb-library-source.c:
2459         (rb_library_source_add_child_source):
2460         * sources/rb-play-queue-source.c:
2461         (rb_play_queue_sync_playing_state),
2462         (rb_play_queue_source_track_info_cell_data_func):
2463         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2464         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2465         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2466         (impl_can_add_to_queue), (impl_add_to_queue):
2467         * sources/rb-source.c: (rb_source_set_property):
2468         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2469         * sources/rb-static-playlist-source.c:
2470         (rb_static_playlist_source_constructor),
2471         (rb_static_playlist_source_load_from_xml):
2472         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2473         * widgets/rb-entry-view.c: (rb_entry_view_init),
2474         (rb_entry_view_finalize), (rb_entry_view_append_column),
2475         (rb_entry_view_constructor):
2476         * widgets/rb-song-info.c: (rb_song_info_set_property):
2477         Fix leaks.  From bug #347446.
2479 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2481         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2482         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2483         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2484         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2485         (add_decoding_pipeline), (profile_bin_find_encoder),
2486         (get_profile_from_mime_type), (extract_track), (transcode_track),
2487         (rb_encoder_gst_encode):
2488         * backends/gstreamer/rb-encoder-gst.h:
2489         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2490         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2491         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2492         (rb_player_gst_construct):
2493         * backends/gstreamer/rb-player-gst.h:
2494         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2495         * backends/rb-encoder.h:
2496         * backends/rb-player.c: (_rb_player_emit_tick):
2497         * backends/rb-player.h:
2498         * daapsharing/rb-daap-connection.c: (build_message),
2499         (actual_http_response_handler), (http_response_handler),
2500         (http_get), (entry_set_string_prop), (emit_progress_idle),
2501         (handle_server_info), (handle_database_info),
2502         (handle_song_listing), (handle_playlists),
2503         (handle_playlist_entries), (rb_daap_connection_new),
2504         (connected_cb), (rb_daap_connection_do_something),
2505         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2506         (rb_daap_connection_get_property):
2507         * daapsharing/rb-daap-connection.h:
2508         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2509         (rb_daap_collision_dialog_new_run):
2510         * daapsharing/rb-daap-dialog.h:
2511         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2512         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2513         (DigestToString), (rb_daap_hash_generate):
2514         * daapsharing/rb-daap-hash.h:
2515         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2516         (resolve_cb), (browse_cb):
2517         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2518         (resolve_cb), (rb_daap_mdns_browser_resolve),
2519         (rb_daap_mdns_browser_start), (resolver_free):
2520         * daapsharing/rb-daap-mdns-browser.h:
2521         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2522         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2523         (publish_cb):
2524         * daapsharing/rb-daap-mdns-publisher.h:
2525         * daapsharing/rb-daap-share.c: (name_collision_cb),
2526         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2527         (message_set_from_rb_daap_structure), (content_codes_cb),
2528         (session_id_validate), (logout_cb), (update_cb),
2529         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2530         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2531         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2532         (rb_daap_share_publish_start):
2533         * daapsharing/rb-daap-share.h:
2534         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2535         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2536         * daapsharing/rb-daap-sharing.h:
2537         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2538         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2539         (rb_daap_src_open):
2540         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2541         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2542         (rb_daap_structure_parse_container_buffer),
2543         (rb_daap_structure_parse), (gnode_find_node),
2544         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2545         (print_rb_daap_item):
2546         * daapsharing/rb-daap-structure.h:
2547         * iradio/rb-new-station-dialog.c:
2548         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2549         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2550         (rb_new_station_dialog_text_changed):
2551         * iradio/rb-station-properties-dialog.c:
2552         (rb_station_properties_dialog_init),
2553         (rb_station_properties_dialog_new),
2554         (rb_station_properties_dialog_response_cb),
2555         (rb_station_properties_dialog_get_current_entry),
2556         (rb_station_properties_dialog_rated_cb),
2557         (rb_station_properties_dialog_update_rating),
2558         (rb_station_properties_dialog_update_playback_error),
2559         (rb_station_properties_dialog_sync_entries):
2560         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2561         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2562         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2563         (rb_metadata_can_save), (rb_metadata_save):
2564         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2565         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2566         (_handle_message), (_new_connection), (main):
2567         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2568         (rb_metadata_dbus_read_from_message):
2569         * metadata/rb-metadata-dbus.h:
2570         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2571         (rb_add_id3_tagger), (rb_metadata_init),
2572         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2573         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2574         (rb_metadata_gst_new_decoded_pad_cb),
2575         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2576         * metadata/sj-error.c: (sj_error_quark):
2577         * metadata/sj-error.h:
2578         * metadata/sj-metadata-musicbrainz.c:
2579         (sj_metadata_musicbrainz_instance_init),
2580         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2581         (get_rdf), (lookup_cd):
2582         * metadata/sj-metadata.c: (sj_metadata_get_type):
2583         * metadata/sj-structures.c:
2584         * metadata/sj-structures.h:
2585         * metadata/test-metadata.c: (load_metadata_cb), (main):
2586         * podcast/rb-feed-podcast-properties-dialog.c:
2587         (rb_feed_podcast_properties_dialog_init),
2588         (rb_feed_podcast_properties_dialog_update_title):
2589         * podcast/rb-feed-podcast-properties-dialog.h:
2590         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2591         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2592         (rb_new_podcast_dialog_text_changed):
2593         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2594         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2595         (rb_podcast_manager_set_property),
2596         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2597         (rb_podcast_manager_download_entry),
2598         (rb_podcast_manager_update_feeds),
2599         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2600         (rb_podcast_manager_copy_post),
2601         (rb_podcast_manager_thread_parse_feed),
2602         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2603         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2604         (download_info_free), (download_info_new), (start_job),
2605         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2606         (download_progress_cb), (download_progress_update_cb),
2607         (rb_podcast_manager_remove_feed),
2608         (rb_podcast_manager_db_entry_deleted_cb),
2609         (rb_podcast_manager_cancel_download),
2610         (rb_podcast_manager_update_synctime),
2611         (rb_podcast_manager_set_remove_files),
2612         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2613         (rb_podcast_manager_abort_subscribe),
2614         (rb_podcast_manager_get_podcast_dir):
2615         * podcast/rb-podcast-manager.h:
2616         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2617         (rb_validate_channel_propert), (rb_validate_item_propert),
2618         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2619         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2620         (rb_podcast_parse_date), (rb_podcast_parse_time),
2621         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2622         * podcast/rb-podcast-parse.h:
2623         * podcast/rb-podcast-properties-dialog.c:
2624         (rb_podcast_properties_dialog_init),
2625         (rb_podcast_properties_dialog_get_current_entry),
2626         (rb_podcast_properties_dialog_update_title),
2627         (rb_podcast_properties_dialog_update_duration),
2628         (rb_podcast_properties_dialog_update_date):
2629         * podcast/rb-podcast-properties-dialog.h:
2630         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2631         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2632         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2633         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2634         (g_sequence_search), (g_sequence_set_aggregate_data),
2635         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2636         (find_min), (g_sequence_node_find_by_pos),
2637         (g_sequence_node_find_closest), (g_sequence_node_free),
2638         (g_sequence_node_split), (g_sequence_node_insert_before),
2639         (g_sequence_node_get_length), (g_sequence_node_remove),
2640         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2641         (g_sequence_calc_tree_height):
2642         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2643         (rb_refstring_get):
2644         * rhythmdb/rb-refstring.h:
2645         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2646         (rhythmdb_gda_init), (dump_model), (execute_query),
2647         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2648         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2649         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2650         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2651         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2652         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2653         * rhythmdb/rhythmdb-gda.h:
2654         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2655         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2656         (monitor_library_directory), (rhythmdb_check_changed_file),
2657         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2658         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2659         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2660         * rhythmdb/rhythmdb-private.h:
2661         * rhythmdb/rhythmdb-property-model.c:
2662         (rhythmdb_property_model_set_property),
2663         (rhythmdb_property_model_row_inserted_cb),
2664         (rhythmdb_property_model_prop_changed_cb),
2665         (rhythmdb_property_model_compare),
2666         (rhythmdb_property_model_get_value),
2667         (rhythmdb_property_model_iter_nth_child),
2668         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2669         (rhythmdb_property_model_drag_data_get),
2670         (rhythmdb_property_model_enable_drag),
2671         (rhythmdb_property_model_column_get_type):
2672         * rhythmdb/rhythmdb-property-model.h:
2673         * rhythmdb/rhythmdb-query-model.c:
2674         (rhythmdb_query_model_class_init),
2675         (rhythmdb_query_model_set_property),
2676         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2677         (rhythmdb_query_model_has_pending_changes),
2678         (rhythmdb_query_model_entry_changed_cb),
2679         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2680         (rhythmdb_query_model_add_entry),
2681         (rhythmdb_query_model_remove_from_main_list),
2682         (rhythmdb_query_model_remove_entry),
2683         (rhythmdb_query_model_drag_data_received),
2684         (rhythmdb_query_model_row_drop_possible),
2685         (rhythmdb_query_model_compute_status_normal),
2686         (rhythmdb_query_model_set_sort_order),
2687         (rhythmdb_query_model_get_entry_index),
2688         (rhythmdb_query_model_base_row_inserted),
2689         (rhythmdb_query_model_base_row_deleted),
2690         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2691         (rhythmdb_query_model_date_sort_func),
2692         (rhythmdb_query_model_within_limit):
2693         * rhythmdb/rhythmdb-query-model.h:
2694         * rhythmdb/rhythmdb-query-results.c:
2695         (rhythmdb_query_results_query_complete):
2696         * rhythmdb/rhythmdb-query-results.h:
2697         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2698         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2699         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2700         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2701         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2702         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2703         (rhythmdb_tree_parser_start_element),
2704         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2705         (save_entry), (save_entry_type), (save_unknown_entry_type),
2706         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2707         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2708         (get_or_create_genre), (remove_entry_from_album),
2709         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2710         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2711         (search_match_properties), (evaluate_conjunctive_subquery),
2712         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2713         (conjunctive_query_artists), (conjunctive_query_genre),
2714         (conjunctive_query), (split_query_by_disjunctions),
2715         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2716         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2717         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2718         (rhythmdb_hash_tree_foreach),
2719         (rhythmdb_tree_entry_type_registered):
2720         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2721         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2722         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2723         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2724         (rhythmdb_shutdown), (rhythmdb_finalize),
2725         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2726         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2727         (rhythmdb_entry_example_new),
2728         (set_metadata_string_default_unknown), (is_ghost_entry),
2729         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2730         (rhythmdb_process_metadata_load),
2731         (rhythmdb_process_queued_entry_set_event),
2732         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2733         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2734         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2735         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2736         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2737         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2738         (rhythmdb_entry_delete_by_type),
2739         (rhythmdb_propid_from_nice_elt_name),
2740         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2741         (rhythmdb_compute_status_normal),
2742         (rhythmdb_entry_register_type_alias),
2743         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2744         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2745         (rhythmdb_entry_import_error_get_type),
2746         (rhythmdb_entry_podcast_post_get_type),
2747         (rhythmdb_entry_podcast_feed_get_type),
2748         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2749         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2750         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2751         * rhythmdb/rhythmdb.h:
2752         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2753         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2754         (rb_history_limit_size):
2755         * shell/rb-history.h:
2756         * shell/rb-play-order-linear-loop.c:
2757         (rb_linear_play_order_loop_get_next):
2758         * shell/rb-play-order-linear-loop.h:
2759         * shell/rb-play-order-linear.c:
2760         * shell/rb-play-order-linear.h:
2761         * shell/rb-play-order-queue.c:
2762         (rb_queue_play_order_playing_entry_removed):
2763         * shell/rb-play-order-queue.h:
2764         * shell/rb-play-order-random-by-age-and-rating.c:
2765         * shell/rb-play-order-random-by-age-and-rating.h:
2766         * shell/rb-play-order-random-by-age.c:
2767         (rb_random_by_age_get_entry_weight):
2768         * shell/rb-play-order-random-by-age.h:
2769         * shell/rb-play-order-random-by-rating.c:
2770         * shell/rb-play-order-random-by-rating.h:
2771         * shell/rb-play-order-random-equal-weights.c:
2772         * shell/rb-play-order-random-equal-weights.h:
2773         * shell/rb-play-order-random.c: (rb_random_filter_history),
2774         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2775         (rb_random_db_changed), (rb_random_playing_entry_changed),
2776         (rb_random_db_entry_deleted):
2777         * shell/rb-play-order-shuffle.c: (remove_from_history),
2778         (add_randomly_to_history), (get_query_model_contents),
2779         (rb_shuffle_playing_entry_changed):
2780         * shell/rb-play-order-shuffle.h:
2781         * shell/rb-play-order.c: (rb_play_order_class_init),
2782         (rb_play_order_set_property),
2783         (rb_play_order_playing_source_changed),
2784         (rb_play_order_query_model_changed_cb),
2785         (rb_play_order_query_model_changed),
2786         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2787         * shell/rb-play-order.h:
2788         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2789         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2790         (rb_playlist_manager_set_property),
2791         (rb_playlist_manager_parse_file),
2792         (rb_playlist_manager_load_playlists),
2793         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2794         (rb_playlist_manager_save_playlists),
2795         (rb_playlist_manager_new_playlist),
2796         (rb_playlist_manager_new_playlist_from_selection_data),
2797         (rb_playlist_manager_cmd_new_automatic_playlist),
2798         (rb_playlist_manager_cmd_edit_automatic_playlist),
2799         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2800         (save_playlist_response_cb), (export_set_extension_cb),
2801         (filter_get_export_filter_label), (setup_format_menu),
2802         (rb_playlist_manager_cmd_save_playlist),
2803         (rb_playlist_manager_get_playlists),
2804         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2805         (rb_playlist_manager_delete_playlist),
2806         (rb_playlist_manager_export_playlist):
2807         * shell/rb-playlist-manager.h:
2808         * shell/rb-removable-media-manager.c:
2809         (rb_removable_media_manager_class_init),
2810         (rb_removable_media_manager_dispose),
2811         (rb_removable_media_manager_finalize),
2812         (rb_removable_media_manager_set_property),
2813         (split_drive_from_cdda_uri),
2814         (rb_removable_media_manager_playing_uri_changed_cb),
2815         (rb_removable_media_manager_load_media),
2816         (rb_removable_media_manager_volume_mounted_cb),
2817         (remove_volume_by_source),
2818         (rb_removable_media_manager_source_deleted_cb),
2819         (rb_removable_media_manager_volume_unmounted_cb),
2820         (rb_removable_media_manager_mount_volume),
2821         (rb_removable_media_manager_set_uimanager),
2822         (rb_removable_media_manager_scan), (do_transfer),
2823         (rb_removable_media_manager_cmd_copy_tracks):
2824         * shell/rb-removable-media-manager.h:
2825         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2826         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2827         (rb_shell_clipboard_sync),
2828         (rb_shell_clipboard_idle_poll_deletions),
2829         (rb_shell_clipboard_cmd_add_to_playlist_new),
2830         (rb_shell_clipboard_playlist_add_cb),
2831         (rb_shell_clipboard_playlist_deleted_cb),
2832         (rb_shell_clipboard_playlist_renamed_cb),
2833         (rb_shell_clipboard_playlist_visible_cb),
2834         (rb_shell_clipboard_playlist_added_cb):
2835         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2836         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2837         (rb_shell_player_init), (rb_shell_player_set_property),
2838         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2839         (rb_shell_player_open_location),
2840         (rb_shell_player_set_playing_entry),
2841         (rb_shell_player_play_order_update_cb),
2842         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2843         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2844         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2845         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2846         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2847         (gconf_song_position_slider_visibility_changed),
2848         (rb_shell_player_entry_activated_cb),
2849         (rb_shell_player_property_row_activated_cb),
2850         (rb_shell_player_entry_changed_cb),
2851         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2852         (actually_set_playing_source),
2853         (rb_shell_player_set_playing_source_internal),
2854         (rb_shell_player_get_playing_song_duration), (eos_cb),
2855         (rb_shell_player_error), (error_cb), (info_available_cb),
2856         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2857         (rb_shell_player_error_get_type):
2858         * shell/rb-shell-player.h:
2859         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2860         (rb_shell_preferences_append_page),
2861         (share_check_button_toggled_cb),
2862         (password_check_button_toggled_cb), (add_daap_preferences),
2863         (rb_shell_preferences_column_check_changed_cb),
2864         (rb_shell_preferences_sync_column_button),
2865         (rb_shell_preferences_sync),
2866         (rb_shell_preferences_browser_views_activated_cb):
2867         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2868         (rb_shell_set_property), (rb_shell_get_property),
2869         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2870         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2871         (rb_shell_get_visibility), (rb_shell_set_visibility),
2872         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2873         (rb_shell_register_entry_type_for_source),
2874         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2875         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2876         (rb_shell_player_stream_song_changed_cb),
2877         (rb_shell_set_window_title),
2878         (rb_shell_view_smalldisplay_changed_cb),
2879         (rb_shell_view_queue_as_sidebar_changed_cb),
2880         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2881         (rb_shell_cmd_add_folder_to_library),
2882         (rb_shell_cmd_add_file_to_library),
2883         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2884         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2885         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2886         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2887         (handle_playlist_entry_cb), (rb_shell_load_uri),
2888         (rb_shell_add_to_queue), (rb_shell_present),
2889         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2890         (rb_shell_volume_widget_changed_cb),
2891         (rb_shell_player_volume_changed_cb),
2892         (rb_shell_ui_location_get_type):
2893         * shell/rb-shell.h:
2894         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2895         (rb_source_header_init), (rb_source_header_set_source_internal),
2896         (rb_source_state_sync), (rb_source_header_clear_search),
2897         (rb_source_header_view_browser_changed_cb):
2898         * shell/rb-source-header.h:
2899         * shell/rb-statusbar.c: (rb_statusbar_construct),
2900         (rb_statusbar_init), (rb_statusbar_finalize),
2901         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2902         (rb_statusbar_source_status_changed_cb):
2903         * shell/rb-statusbar.h:
2904         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2905         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2906         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2907         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2908         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2909         (rb_audiocd_create_track_entry):
2910         * sources/rb-auto-playlist-source.c:
2911         (rb_auto_playlist_source_class_init),
2912         (rb_auto_playlist_source_constructor),
2913         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2914         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2915         (rb_auto_playlist_source_query_complete_cb),
2916         (rb_auto_playlist_source_do_query),
2917         (rb_auto_playlist_source_set_query),
2918         (rb_auto_playlist_source_browser_changed_cb),
2919         (search_action_to_prop):
2920         * sources/rb-auto-playlist-source.h:
2921         * sources/rb-browser-source.c: (rb_browser_source_init),
2922         (rb_browser_source_dispose), (search_action_to_prop),
2923         (rb_browser_source_constructor),
2924         (rb_browser_source_cmd_choose_genre),
2925         (rb_browser_source_cmd_choose_artist),
2926         (rb_browser_source_cmd_choose_album), (impl_search),
2927         (rb_browser_source_browser_changed_cb),
2928         (rb_browser_source_do_query):
2929         * sources/rb-browser-source.h:
2930         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2931         (rb_daap_source_init), (rb_daap_source_dispose),
2932         (rb_daap_source_set_property), (start_browsing),
2933         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2934         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2935         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2936         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2937         * sources/rb-daap-source.h:
2938         * sources/rb-import-errors-source.h:
2939         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2940         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2941         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2942         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2943         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2944         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2945         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2946         (generate_ipod_filename), (ipod_path_from_unix_path),
2947         (impl_delete_thyself):
2948         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2949         (rb_iradio_source_init), (rb_iradio_source_constructor),
2950         (rb_iradio_source_new), (guess_uri_scheme),
2951         (rb_iradio_source_add_station),
2952         (rb_iradio_source_async_update_play_statistics),
2953         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2954         (stations_view_drag_data_received_cb),
2955         (rb_iradio_source_cmd_new_station):
2956         * sources/rb-iradio-source.h:
2957         * sources/rb-library-source.c: (rb_library_source_dispose),
2958         (rb_library_source_constructor),
2959         (rb_library_source_location_button_clicked_cb),
2960         (impl_get_config_widget), (rb_library_source_library_location_cb),
2961         (sanitize_path), (filepath_parse_pattern),
2962         (layout_example_label_update),
2963         (rb_library_source_layout_filename_changed), (build_filename),
2964         (impl_can_paste), (impl_paste),
2965         (rb_library_source_add_child_source),
2966         (rb_library_source_sync_child_sources):
2967         * sources/rb-library-source.h:
2968         * sources/rb-missing-files-source.h:
2969         * sources/rb-play-queue-source.c:
2970         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2971         * sources/rb-play-queue-source.h:
2972         * sources/rb-playlist-source-recorder.c:
2973         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2974         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2975         (rb_playlist_source_recorder_init),
2976         (rb_playlist_source_recorder_new):
2977         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2978         (rb_playlist_source_save_playlist),
2979         (rb_playlist_source_entry_added_cb),
2980         (rb_playlist_source_set_query_model),
2981         (rb_playlist_source_add_to_map):
2982         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2983         (rb_podcast_source_init), (rb_podcast_source_dispose),
2984         (rb_podcast_source_finalize), (search_action_to_prop),
2985         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2986         (rb_podcast_source_get_property), (rb_podcast_source_new),
2987         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2988         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2989         (rb_podcast_source_show_browser), (construct_query_from_selection),
2990         (rb_podcast_source_do_query), (impl_get_config_widget),
2991         (rb_podcast_source_btn_file_change_cb),
2992         (posts_view_drag_data_received_cb),
2993         (rb_podcast_source_cmd_download_post),
2994         (rb_podcast_source_cmd_cancel_download),
2995         (rb_podcast_source_cmd_delete_feed),
2996         (rb_podcast_source_cmd_properties_feed),
2997         (rb_podcast_source_cmd_update_feed),
2998         (rb_podcast_source_post_status_cell_data_func),
2999         (rb_podcast_source_post_feed_cell_data_func),
3000         (rb_podcast_source_post_date_cell_data_func),
3001         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3002         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3003         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3004         (impl_get_status):
3005         * sources/rb-podcast-source.h:
3006         * sources/rb-removable-media-source.c:
3007         (rb_removable_media_source_constructor):
3008         * sources/rb-removable-media-source.h:
3009         * sources/rb-source.h:
3010         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3011         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3012         (rb_sourcelist_model_row_is_separator),
3013         (rb_sourcelist_model_drag_data_received),
3014         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3015         (rb_sourcelist_model_row_drop_position),
3016         (rb_sourcelist_model_get_drag_target),
3017         (rb_sourcelist_model_row_draggable),
3018         (rb_sourcelist_model_drag_data_get),
3019         (rb_sourcelist_model_row_inserted_cb),
3020         (rb_sourcelist_model_get_group_path):
3021         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3022         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3023         (rb_sourcelist_visible_source_to_iter),
3024         (rb_sourcelist_edit_source_name),
3025         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3026         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3027         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3028         * sources/rb-static-playlist-source.c:
3029         (rb_static_playlist_source_class_init),
3030         (rb_static_playlist_source_constructor),
3031         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3032         (impl_search), (rb_static_playlist_source_do_query),
3033         (rb_static_playlist_source_browser_changed_cb),
3034         (impl_receive_drag), (impl_save_contents_to_xml),
3035         (rb_static_playlist_source_add_location_swapped),
3036         (search_action_to_prop):
3037         * sources/rb-static-playlist-source.h:
3038         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3039         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3040         (egg_tray_icon_get_orientation_property),
3041         (egg_tray_icon_send_manager_message),
3042         (egg_tray_icon_update_manager_window),
3043         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3044         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3045         * widgets/eggtrayicon.h:
3046         * widgets/rb-cell-renderer-pixbuf.c:
3047         (rb_cell_renderer_pixbuf_get_property),
3048         (rb_cell_renderer_pixbuf_set_property),
3049         (rb_cell_renderer_pixbuf_get_size),
3050         (rb_cell_renderer_pixbuf_render),
3051         (rb_cell_renderer_pixbuf_activate):
3052         * widgets/rb-cell-renderer-rating.c:
3053         (rb_cell_renderer_rating_class_init),
3054         (rb_cell_renderer_rating_get_property),
3055         (rb_cell_renderer_rating_set_property),
3056         (rb_cell_renderer_rating_get_size),
3057         (rb_cell_renderer_rating_render),
3058         (rb_cell_renderer_rating_activate):
3059         * widgets/rb-dialog.c:
3060         * widgets/rb-dialog.h:
3061         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3062         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3063         (rb_druid_page3_finish_cb):
3064         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3065         (rb_entry_view_init), (rb_entry_view_set_property),
3066         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3067         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3068         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3069         (rb_entry_view_set_sorting_order),
3070         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3071         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3072         (rb_entry_view_playing_song_changed),
3073         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3074         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3075         (rb_entry_view_set_fixed_column_width),
3076         (rb_entry_view_get_time_date_column_sample),
3077         (rb_entry_view_state_get_type):
3078         * widgets/rb-entry-view.h:
3079         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3080         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3081         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3082         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3083         (update_browser_property_visibilty),
3084         (rb_library_browser_construct_query), (restore_selection),
3085         (rebuild_child_model), (rb_library_browser_set_selection),
3086         (rb_library_browser_set_model):
3087         * widgets/rb-library-browser.h:
3088         * widgets/rb-property-view.c: (rb_property_view_class_init),
3089         (rb_property_view_set_property), (rb_property_view_reset),
3090         (rb_property_view_get_model), (rb_property_view_constructor),
3091         (rb_property_view_set_selection),
3092         (rb_property_view_selection_changed_cb),
3093         (rb_property_view_button_press_cb),
3094         (rb_property_view_set_search_func):
3095         * widgets/rb-query-creator-private.h:
3096         * widgets/rb-query-creator-properties.c:
3097         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3098         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3099         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3100         (relativeTimeCriteriaCreateWidget),
3101         (relativeTimeCriteriaSetWidgetData):
3102         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3103         (rb_query_creator_dispose), (rb_query_creator_load_query),
3104         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3105         (get_property_index_from_proptype), (select_criteria_from_value),
3106         (create_property_option_menu), (create_criteria_option_menu),
3107         (sort_option_menu_changed), (setup_sort_option_menu):
3108         * widgets/rb-query-creator.h:
3109         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3110         (rb_rating_render_stars):
3111         * widgets/rb-rating-helper.h:
3112         * widgets/rb-rating.c: (rb_rating_expose):
3113         * widgets/rb-rating.h:
3114         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3115         (rb_search_entry_timeout_cb):
3116         * widgets/rb-search-entry.h:
3117         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3118         (rb_song_info_constructor), (rb_song_info_new),
3119         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3120         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3121         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3122         (rb_song_info_query_model_changed_cb),
3123         (rb_song_info_sync_entries_multiple),
3124         (rb_song_info_sync_entry_single):
3125         Strip all trailing whitespace.  Fixes #344293.
3127 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3129         * doc/reference/Makefile.am: Fix GTK Doc Build
3131 2006-07-13  James Livingston  <doclivingston@gmail.com>
3133         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3135         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3136         instead of the LOCATION, and don't try to get the directory listing
3137         for http URI schemes
3139         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3140         invalid utf8 in the error message, since apparently it can happen.
3142 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3144         * sources/rb-import-errors-source.c:
3145         (rb_import_errors_source_class_init),
3146         (rb_import_errors_source_init),
3147         (rb_import_errors_source_constructor),
3148         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3149         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3150         * sources/rb-missing-files-source.c:
3151         (rb_missing_files_source_class_init),
3152         (rb_missing_files_source_init),
3153         (rb_missing_files_source_constructor),
3154         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3155         (rb_missing_files_source_songs_sort_order_changed_cb),
3156         (impl_get_status):
3157         * sources/rb-source.c: (rb_source_class_init),
3158         (rb_source_finalize), (update_visibility_idle),
3159         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3160         (rb_source_set_property), (rb_source_get_property),
3161         (default_get_status), (rb_source_update_play_statistics),
3162         (default_add_to_queue), (_rb_source_show_popup),
3163         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3164         (rb_source_gather_selected_properties),
3165         (_rb_source_register_action_group):
3166         * sources/rb-source.h:
3167         * sources/rb-sourcelist.c: (visibility_notify_cb):
3168         Don't use a fake model for import-errors and missing-files
3169         sources.  Add a new source property "hidden-when-empty".
3170         Update source visibility in an idle.  Clean up some whitespace.
3171         From bug #346800
3173 2006-07-12  James Livingston  <doclivingston@gmail.com>
3175         * bindings/python/rb.defs:
3176         * bindings/python/rb.override: bind rb_error_dialog
3178         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3179         the current working directory for uninstalled plugins, and add the
3180         class name to the method name.
3182 2006-07-12  James Livingston  <doclivingston@gmail.com>
3184         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3185         the sources EOF type if it's NULL. Fixes #346284.
3187 2006-07-12  James Livingston  <doclivingston@gmail.com>
3189         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3190         I accidently committed. Nothing to see here, move along...
3192 2006-07-11  James Livingston  <doclivingston@gmail.com>
3194         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3195         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3196         Unknown.
3198 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3200         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3202 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3204         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3205         Don't try to set mtime if we've deleted the entry.
3207 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3209         * bindings/python/rhythmdb.defs:
3210         * rhythmdb/rhythmdb.c:
3211         * rhythmdb/rhythmdb.h:
3212         * rhythmdb/rhythmdb-private.h:
3213         * rhythmdb/rhythmdb-query.c:
3214         Move data structures holding registered entry types inside the
3215         RhythmDB object, and add a vfunc called when new types are registered.
3216         Add a flag to RhythmDBEntryType specifying whether entries of the type
3217         should be saved to the on-disk database.
3219         * sources/rb-audiocd-source.c:
3220         * sources/rb-daap-source.c:
3221         * sources/rb-ipod-source.c:
3222         * plugins/generic-player/rb-generic-player-source.c:
3223         * plugins/generic-player/rb-nokia770-source.c:
3224         * plugins/generic-player/rb-psp-source.c:
3225         Adjust to the above changes.
3227         * rhythmdb/rhythmdb-tree.c:
3228         If the type for an entry hasn't been registered yet, store the entry's
3229         properties as-is, and convert them to a real entry when the type is
3230         registered.  If the type doesn't get registered, save the entry back
3231         to the database unmodified.  From #330226.
3233 2006-07-10  James Livingston  <doclivingston@gmail.com>
3235         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3236         os.path.unlink to os.unlink, so removing stuff works.
3238 2006-07-10  James Livingston  <doclivingston@gmail.com>
3240         patch by: Ed Catmur  <ed@catmur.co.uk>
3241               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3243         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3244         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3245         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3246         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3247         internals of the cover database and Amazon lookup engine, and add
3248         support for loading art from the local file system. Fixes #345688.
3250         * plugins/rb/Coroutine.py:
3251         * plugins/rb/Makefile.am:
3252         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3253         plugin classes.
3255 2006-07-10  James Livingston  <doclivingston@gmail.com>
3257         * tests/Makefile.am: don't run the benchmark when doing "make check"
3259         * po/POTFILES.in: more build fixes, from Matti Lindell
3260         <feenixx@hotmail.com>. Fixes #347049.
3263 2006-07-10  James Livingston  <doclivingston@gmail.com>
3265         * plugins/cd-recorder/Makefile.am: build fixes
3267         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3268         attempt to change properties if we couldn't create an entry.
3270         * shell/rb-source-header.c: (rb_source_header_init),
3271         (rb_source_header_view_browser_changed_cb),
3272         (rb_source_header_sync_control_state):
3273         * shell/rb-tray-icon.c:
3274         * widgets/Makefile.am:
3275         * widgets/disclosure-widget.c:
3276         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3277         widget, as it hasn't been used for a while.
3279 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3281         * Makefile.am:
3282         * configure.ac:
3283         * data/ui/rhythmbox-ui.xml:
3284         * plugins/Makefile.am:
3285         * plugins/cd-recorder/.cvsignore:
3286         * plugins/cd-recorder/Makefile.am:
3287         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3288         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3289         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3290         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3291         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3292         (playlist_row_inserted_cb), (update_source),
3293         (shell_selected_source_notify_cb), (impl_activate),
3294         (impl_deactivate):
3295         * shell/Makefile.am:
3296         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3297         (rb_playlist_manager_cmd_save_playlist):
3298         * shell/rb-shell.c: (rb_shell_select_source):
3299         * sources/Makefile.am:
3300         * sources/rb-playlist-source-recorder.c:
3301         (rb_playlist_source_recorder_new):
3302         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3303         (rb_playlist_source_add_to_map):
3304         * sources/rb-playlist-source.h:
3305         Move cd burning into a plugin.  Fixes #344300.
3307 2006-07-10  James Livingston  <doclivingston@gmail.com>
3309         * lib/eel-gconf-extensions.c:
3310         * shell/rb-shell.c: remove some ununsed gnomeui includes
3312         * widgets/Makefile.am:
3313         * widgets/rb-song-display-box.c:
3314         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3315         since it isn't acutally used anywhere. Fixes #346926
3317 2006-07-09  James Livingston  <doclivingston@gmail.com>
3319         * bindings/python/rb.defs:
3320         * bindings/python/rb.override:
3321         * lib/rb-debug.c: (rb_debug_real):
3322         * lib/rb-debug.h:
3323         * plugins/rb/__init__.py: don't print out an extra newline when
3324         diverting python print statements to RB's debug log.
3326 2006-07-09  James Livingston  <doclivingston@gmail.com>
3328         * rhythmdb/rhythmdb-property-model.c:
3329         (rhythmdb_property_model_drag_data_get):
3330         * sources/rb-sourcelist-model.c:
3331         (rb_sourcelist_model_row_draggable),
3332         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3333         from the row reference is still valid. Fixes #346709.
3335 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3337         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3339         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3340         If all selected entries have the same rating, use that as the initial
3341         rating for the multiple song info dialog.  Fixes #345970.
3343 2006-07-09  James Livingston  <doclivingston@gmail.com>
3345         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3346         to prevent #343345:
3347                 - don't ever scale to 1x1, just hide the image in that case
3348                 - don't fade when the window is minimised
3349                 - use the last-good allocation width, not the current one - as
3350                   it sometimes get weird values.
3352 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3354         * data/ui/rhythmbox-ui.xml:
3355         * shell/rb-shell.c:
3356         Remove Import audio CD from menu.  Fixes #339732
3358 2006-07-08  James Livingston  <doclivingston@gmail.com>
3360         * metadata/test-metadata.c: (print_metadata_string),
3361         (load_metadata_cb): print out all the metadata we have read, not just
3362         a few.
3364         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3365         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3367 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3369         * plugins/lyrics/lyrics.py:
3370         Change the lyrics cache location to match Quod Libet's,
3371         and fix the '&' -> 'and' substitution to require spaces.
3373 2006-07-08  James Livingston  <doclivingston@gmail.com>
3375         * bindings/python/rb.defs:
3376         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3378         * configure.ac:
3379         * plugins/Makefile.am:
3380         * plugins/rb-python-module.c: (rb_python_module_init_python):
3381         * plugins/rb/Makefile.am: add a place to put common python classes.
3382         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3383         rb module/
3385         * plugins/lyrics/Makefile.am:
3386         * plugins/lyrics/Loader.py:
3387         * plugins/artdisplay/artdisplay/Makefile.am:
3388         * plugins/artdisplay/artdisplay/Loader.py:
3389         * plugins/rb/Loader.py: move the loader class to rb.Loader
3391         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3392         "print ...") to rb_debug. error output (e.g. exceptions) are still
3393         printed on stderr.
3395         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3396         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3397         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3398         instead of Loader.
3400         Fixes #346895.
3402 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3404         * shell/rb-shell-player.xml:
3405         * shell/rb-shell-player.h:
3406         Correct the details of the playing-song-property-changed signal.
3408 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3410         * lib/rb-marshal.list:
3411         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3412         (rb_shell_player_entry_changed_cb):
3413         * shell/rb-shell-player.h:
3414         * shell/rb-shell-player.xml:
3415         Emit a dbus signal when a property is changed on the playing entry.
3416         Fixes #332461.
3418 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3420         * rhythmdb/rhythmdb-private.h:
3421         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3422         Fix build break with gcc 4.1 by changing RBRefString pointers into
3423         gpointers.
3425 2006-07-07  James Livingston  <doclivingston@gmail.com>
3427         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3428         remove an extraneous !, which caused it not to monitor folders in the
3429         library with no tracks in them. Fixes #346759.
3431 2006-07-07  James Livingston  <doclivingston@gmail.com>
3433         * rhythmdb/rhythmdb-private.h:
3434         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3435         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3436         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3437         (rhythmdb_entry_get_string):
3438         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3439         flags for the affected properties. _sync_mirrored will get run
3440         automatically when a dirty property is accessed, which improves
3441         performance a bit (especially during startup) as we don't need to sync
3442         every time they change. From #325215.
3444         * tests/bench-rhythmdb-load.c
3445         * tests/Makefile.am: add a RhythmDB loading benchmark.
3447 2006-07-06  James Livingston  <doclivingston@gmail.com>
3449         * bindings/python/rb.defs:
3450         * bindings/python/rb.override: some more fixes, so that
3451         python classes derived from RBSource work correctly.
3453 2006-07-06  James Livingston  <doclivingston@gmail.com>
3455         * configure.ac: bump pygtk requirements to 2.8, since we're already
3456         using some features of it, and weird things will happen if people are
3457         actually trying to use pygtk 2.6.
3459         * bindings/python/rb.override:
3460         * bindings/python/rhythmdb.defs:
3461         * bindings/python/rhythmdb.override: allow python to set
3462         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3464         * sources/rb-browser-source.c: remove some left over member variables
3466 2006-07-06  James Livingston  <doclivingston@gmail.com>
3468         * rhythmdb/rhythmdb.c:
3469         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3470         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3471         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3472         former is pointless (as rhythmdb already knows which it should use)
3473         and the latter doesn't seem useful at all, and possibly bad. From
3474         #330226.
3476         * bindings/python/rhythmdb.defs:
3477         * bindings/python/rhythmdb.override:
3478         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3479         (handle_song_listing):
3480         * podcast/rb-podcast-manager.c:
3481         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3482         (rb_podcast_manager_insert_feed):
3483         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3484         (rb_audiocd_create_track_entry):
3485         * sources/rb-ipod-source.c: (entry_set_string_prop),
3486         (add_ipod_song_to_db):
3487         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3488         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3490 2006-07-05  James Livingston  <doclivingston@gmail.com>
3492         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3493         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3494         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3495         totem-plparser gives us, or the file name if it doesn't give us
3496         anything. Set the default file name when saving too. Fixes #345261
3498 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3500         patch by: Ed Catmur  <ed@catmur.co.uk>
3502         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3503         Skip all hidden directories, not just trash, and skip unreadable
3504         files.  Fixes #346322.
3506 2006-07-04  James Livingston  <doclivingston@gmail.com>
3508         * plugins/rb-module.h:
3509         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3510         (rb_module_new):
3511         * plugins/rb-plugin.h:
3512         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3513         (rb_plugin_finalise), (rb_plugin_set_property),
3514         (rb_plugin_get_property), (rb_plugin_activate),
3515         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3516         (rb_plugin_find_file):
3517         * plugins/rb-plugins-engine.c: (load_plugin_module):
3518         * plugins/rb-python-module.c: (rb_python_module_new_object),
3519         (rb_python_module_new):
3520         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3521         rb_plugin_find_file method for locating plugin-specific data. Fixes
3522         346473.
3524         * bindings/python/rb.defs:
3525         * plugins/Makefile.am:
3526         * plugins/generic-player/rb-generic-player-plugin.c:
3527         (create_source_cb):
3528         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3530 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3532         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3533         (rb_metadata_can_save), (rb_metadata_save):
3534         Protect the dbus connection with a mutex.
3536 2006-07-03  James Livingston  <doclivingston@gmail.com>
3538         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3539         case of the parser/tagger not being able to be created.
3541 2006-07-03  James Livingston  <doclivingston@gmail.com>
3543         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3545         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3546         window resizable, as it used to be. Fixes #345940.
3548 2006-07-01  James Livingston  <doclivingston@gmail.com>
3550         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3552         * rhythmdb/rhythmdb.h:
3553         * rhythmdb/rhythmdb-private.h:
3554         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3555         (rhythmdb_tree_parser_end_element), (save_entry):
3556         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3557         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3558         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3559         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3560         MusicBrainz track IDs in the database, and bump the on-disk version
3561         number to trigger a metadata reload.
3563         * backends/gstreamer/rb-player-gst.c: (process_tag):
3564         * metadata/rb-metadata-common.c:
3565         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3566         (rb_metadata_gst_field_to_gst_tag):
3567         * metadata/rb-metadata.h: grab MB track IDs and use them.
3569         * plugins/audioscrobbler/rb-audioscrobbler.c:
3570         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3571         (rb_audioscrobbler_timeout_cb),
3572         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3573         the other metadata. Fixes #343491.
3575 2006-06-30  James Livingston  <doclivingston@gmail.com>
3577         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3578         method.
3580 2006-06-30  James Livingston  <doclivingston@gmail.com>
3582         * bindings/python/rb.defs:
3583         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3584         (rb_browser_source_songs_show_popup_cb),
3585         (default_show_entry_popup):
3586         * sources/rb-browser-source.h:
3587         * sources/rb-library-source.c: (rb_library_source_class_init),
3588         (rb_library_source_constructor), (impl_show_popup): allow
3589         RBBrowserSource-derived sources to override the entry context menu
3590         properly - by making it a virtual function, rather than relying on
3591         signal handler order (which doesn't really work).
3593 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3595         * rhythmdb/rhythmdb-query-model.c:
3596         (rhythmdb_query_model_reapply_query_cb):
3597         Use the original query, not the preprocessed query, when redoing
3598         the query to pick up entries that previously didn't match.
3599         Preprocessing the query twice is bad.  Fixes #346186.
3601 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3603         * plugins/audioscrobbler/rb-audioscrobbler.c:
3604         (rb_audioscrobbler_song_changed_cb):
3605         Just check if the elapsed time has been reset, rather
3606         than checking if it's a different track.  Fixes #344827.
3608 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3610         * backends/gstreamer/rb-player-gst.c:
3611         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3612         drive spins up, #344576.
3614 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3616         * plugins/audioscrobbler/rb-audioscrobbler.c:
3617         (rb_audioscrobbler_perform):
3618         Use HTTP/1.1.  Fixes #345895.
3620 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3622         * lib/rb-preferences.h:
3623         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3624         (check_auto_proxy_config), (get_proxy_config):
3625         Don't try to use a HTTP proxy if no proxy host is specified.
3626         Alert the user to the fact that we don't support automatic proxy
3627         configuration as infrequently as possible.  From #345712.
3629 2006-06-25  James Livingston  <doclivingston@gmail.com>
3631         * rhythmdb/rhythmdb-property-model.c:
3632         (rhythmdb_property_model_set_property): connect to the
3633         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3634         things get removed correctly, fixes #338183.
3636 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3638         * rhythmdb/rhythmdb-query-model.c:
3639         (rhythmdb_query_model_drag_data_received):
3640         Fix build break.
3642 2006-06-25  James Livingston  <doclivingston@gmail.com>
3644         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3646         * widgets/rb-search-entry.c: (rb_search_entry_init),
3647         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3648         search box have a pale yellow background when it's in use, except for
3649         when the user has an "accessability" theme. Code based heavily on
3650         Epiphany's. Fixes #344416.
3652 2006-06-25  James Livingston  <doclivingston@gmail.com>
3654         * plugins/lyrics/lyrics.py:
3655         * plugins/pythonconsole/pythonconsole.py:
3656         * plugins/sample-python/sample-python.py: don't import gettext stuff
3657         as _, as the C code does this for us. Fixes i18n for python plugins,
3658         #343081
3660 2006-06-25  James Livingston  <doclivingston@gmail.com>
3662         * rhythmdb/rhythmdb-query-model.c:
3663         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3664         a model use a reorder rather then deleting and re-adding the entry.
3665         This means it does do weird things like stop playback of a track that
3666         is dragged, fixing #337657.
3668 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3670         * metadata/rb-metadata-dbus-service.c:
3671         Add missing #include <glib/gi18n.h> from previous commit.
3673 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3675         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3677         * metadata/rb-metadata-dbus-service.c: (main):
3678         Initialize gettext in the metadata helper.
3679         * metadata/rb-metadata-gst.c:
3680         Make some strings translatable.  Fixes #345286.
3682 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3684         * configure.ac:
3685         * lib/Makefile.am:
3686         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3687         Inline the custom icons so they can always be loaded, but are still
3688         themable.  Fixes #345796.
3690 2006-06-23  James Livingston  <doclivingston@gmail.com>
3692         * sources/rb-auto-playlist-source.c:
3693         (rb_auto_playlist_source_do_query): stop the search box being applied
3694         for limits in auto playlists. Fixes #345307.
3696 2006-06-23  James Livingston  <doclivingston@gmail.com>
3698         * shell/rb-shell-clipboard.c:
3699         (rb_shell_clipboard_set_source_internal),
3700         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3701         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3702         non-library tracks, as we don't supprot it yet. From #345248.
3704 2006-06-23  James Livingston  <doclivingston@gmail.com>
3706         patch by: Brian Cameron  <brian.cameron@sun.com>
3708         * plugins/generic-player/rb-generic-player-plugin.c:
3709         * plugins/generic-player/rb-generic-player-source.c:
3710         * plugins/generic-player/rb-nokia770-source.c:
3711         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3712         Fixes 345673.
3714 2006-06-22  James Livingston  <doclivingston@gmail.com>
3716         * backends/rb-player.c: (rb_player_interface_init):
3717         * lib/rb-marshal.list:
3718         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3719         * rhythmdb/rhythmdb-query-model.c:
3720         (rhythmdb_query_model_class_init):
3721         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3722         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3723         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3724         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3725         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3726         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3727         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3728         possible not.
3730 2006-06-20  James Livingston  <doclivingston@gmail.com>
3732         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3734         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3735         metadata to clients. Fixes #345276.
3737 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3739         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3740         (rb_add_id3_tagger):
3741         Fix plugin/element version detection for id3v2mux.
3743 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3745         * sources/rb-source.c: (rb_source_finalize),
3746         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3747         (_autohide_update_visibility),
3748         (_rb_autohide_source_post_entry_deleted_cb),
3749         (_rb_autohide_source_row_inserted_cb),
3750         (_rb_source_hide_when_empty):
3751         Use post-entry-delete signal to update status and autohide sources.
3753 2006-06-20  James Livingston  <doclivingston@gmail.com>
3755         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3756         "selection changed" idle callback, if present.
3758 2006-06-19  James Livingston  <doclivingston@gmail.com>
3760         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3762         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3763         don't try to translate the empty string. Fixes #345285.
3765 2006-06-19  James Livingston  <doclivingston@gmail.com>
3767         * bindings/python/rhythmdb.override: more python binding fixes
3769 2006-06-19  James Livingston  <doclivingston@gmail.com>
3771         * lib/rb-util.c: (rb_copy_function):
3772         * lib/rb-util.h: add a function that returns the same pointer it was
3773         passed.
3775         * rhythmdb/rhythmdb.h:
3776         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3777         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3778         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3779         and RhythmDBEntryType into boxed types. This allows them to be used
3780         from python. Note that entry-types aren't actually reference counted
3781         (yet).
3783         * bindings/python/rb.defs:
3784         * bindings/python/rhythmdb.defs:
3785         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3786         return types of some bindings.
3788         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3789         (process_added_entries_cb), (rhythmdb_entry_finalize),
3790         (rhythmdb_entry_delete):
3791         * daapsharing/rb-daap-connection.c:
3792         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3793         (rb_daap_connection_get_property):
3794         * plugins/generic-player/rb-generic-player-source.c:
3795         (rb_generic_player_source_load_songs), (load_playlist_file):
3796         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3797         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3798         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3799         (idle_process_update), (rhythmdb_query_model_add_entry),
3800         (rhythmdb_query_model_insert_into_main_list),
3801         (rhythmdb_query_model_insert_into_limited_list),
3802         (rhythmdb_query_model_remove_from_main_list),
3803         (rhythmdb_query_model_remove_from_limited_list),
3804         (rhythmdb_query_model_drag_data_received),
3805         (rhythmdb_query_model_add_results),
3806         (rhythmdb_query_model_get_column_type),
3807         (rhythmdb_query_model_get_value):
3808         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3809         (rhythmdb_tree_entry_delete), (remove_one_song):
3810         * shell/rb-play-order-linear-loop.c:
3811         (rb_linear_play_order_loop_get_next),
3812         (rb_linear_play_order_loop_get_previous):
3813         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3814         (rb_linear_play_order_get_previous):
3815         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3816         (rb_queue_play_order_get_previous):
3817         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3818         (rb_random_filter_history), (rb_random_play_order_get_next),
3819         (rb_random_play_order_go_next), (rb_random_db_changed),
3820         (rb_random_playing_entry_changed):
3821         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3822         (remove_from_history), (add_randomly_to_history),
3823         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3824         * shell/rb-play-order.c: (rb_play_order_class_init),
3825         (rb_play_order_set_property), (rb_play_order_get_property),
3826         (rb_play_order_update_have_next_previous):
3827         * shell/rb-play-order.h:
3828         * shell/rb-shell-clipboard.c:
3829         (rb_shell_clipboard_process_deletions),
3830         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3831         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3832         * sources/rb-auto-playlist-source.c:
3833         (rb_auto_playlist_source_constructor):
3834         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3835         (rb_browser_source_set_property), (rb_browser_source_get_property),
3836         (rb_browser_source_do_query):
3837         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3838         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3839         * sources/rb-ipod-source.c: (add_rb_playlist),
3840         (add_ipod_song_to_db), (impl_paste):
3841         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3842         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3843         * sources/rb-library-source.c: (layout_example_label_update):
3844         * sources/rb-missing-files-source.c:
3845         (rb_missing_files_source_class_init),
3846         (rb_missing_files_source_set_property),
3847         (rb_missing_files_source_get_property),
3848         (rb_missing_files_source_new):
3849         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3850         (rb_playlist_source_set_property),
3851         (rb_playlist_source_get_property):
3852         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3853         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3854         (construct_query_from_selection):
3855         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3856         * sources/rb-static-playlist-source.c:
3857         (rb_static_playlist_source_constructor),
3858         (rb_static_playlist_source_add_location_internal):
3859         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3860         * widgets/rb-header.c: (rb_header_class_init),
3861         (rb_header_set_property), (rb_header_get_property):
3862         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3863         (rb_library_browser_set_property),
3864         (rb_library_browser_get_property):
3865         * widgets/rb-song-info.c: (rb_song_info_class_init),
3866         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3867         change, do s/pointer/boxed/ in many places and free entry-types
3868         properly.
3870 2006-06-18  James Livingston  <doclivingston@gmail.com>
3872         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3873         unushed GThreadPool non-exclusive threads every now and then.
3875         * rhythmdb/rhythmdb-private.h:
3876         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3877         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3878         threads. Fixes #341593
3880 2006-06-19  James Livingston  <doclivingston@gmail.com>
3882         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3883         the "Track number" checkbox actually work for playlists. From #329986.
3885 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3887         * plugins/generic-player/rb-generic-player-source.c:
3888         Get playlist and audio folder information from HAL.  Fixes #333845.
3890 2006-06-18  James Livingston  <doclivingston@gmail.com>
3892         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3894         * widgets/rb-entry-view.h:
3895         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3896         (rb_entry_view_append_column_custom),
3897         (rb_entry_view_insert_column_custom): add support for inserting custom
3898         columns at arbitrary locations, rather than just appending to the end.
3900         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3901         the playlists "track number" column go at the start, and add a normal
3902         track number column. Fixes #329986.
3904 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3906         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3907         a mnemonic conflict.  Add ellipses to the edit button.
3908         * sources/rb-library-source.c:
3909         (rb_library_source_edit_profile_clicked_cb),
3910         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3911         mnemonic widget to the labels. Fixes #344114.
3913 2006-06-18  James Livingston  <doclivingston@gmail.com>
3915         * configure.ac: bump version
3916         * NEWS: add NEWS for 0.9.5
3918 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3920         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3921         (rb_uri_handle_recursively):
3922         Don't attempt to recurse into directories we can't open.  
3923         Fixes #341485.
3925 2006-06-18  James Livingston  <doclivingston@gmail.com>
3927         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3929         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3930         #344610.
3932 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3934         * bindings/python/rb.defs:
3935         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3936         * shell/rb-shell-player.h:
3937         * shell/rb-shell.c: (rb_shell_play_entry):
3938         Add source parameter to rb_shell_player_play_entry, using the selected
3939         source if not specified.
3941         * shell/rb-play-order.c: (rb_play_order_class_init),
3942         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3943         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3944         (default_playing_entry_removed):
3945         * shell/rb-play-order.h:
3946         Move entry removal handling back to the row-deleted signal, as we need
3947         the entry to be present in the model.  When changing to the next entry
3948         after the playing entry is deleted, set the new entry as the playing
3949         entry and then sync it to the player in an idle handler, so we don't
3950         end up playing it if it was removed too.
3951         * shell/rb-play-order-queue.c:
3952         (rb_queue_play_order_playing_entry_changed),
3953         (rb_queue_play_order_playing_entry_removed):
3954         Use the playing-entry-removed handler from the play order class,
3955         setting a flag so we don't try to remove the already-removed entry
3956         from the model.
3958         This makes removal of the playing entry from playlists etc. work more
3959         or less correctly for all play orders.  Fixes #344627.
3961 2006-06-17  James Livingston  <doclivingston@gmail.com>
3963         patch by: Elijah Newren  <newren@gmail.com>
3965         * tests/test-rhythmdb.c: fix the build with older versions of check
3966         (again). Fixes #343718.
3968 2006-06-17  James Livingston  <doclivingston@gmail.com>
3970         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3971         name for capsfilter's "caps" property. Fixes #344968.
3973 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3975         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3976         Don't leak the selected entry list when finding an entry to play.
3978 2006-06-17  James Livingston  <doclivingston@gmail.com>
3980         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3981         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3982         as a O(1) one works fine, and it will get called often when the user
3983         deleted multiple tracks. Part of #344922.
3985 2006-06-17  James Livingston  <doclivingston@gmail.com>
3987         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3988         rb_shell_player_stop and rb_shell_player_playpause not mutually
3989         recursive. Fixed #336912.
3991 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3993         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3994         Treat nested elements inside properties as unknown.  Fixes parsing of
3995         podcast feeds with unescaped HTML in description tags, bug #344532.
3997 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3999         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4000         when quitting.  Fixes #344875.
4002 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4004         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4005         Move the playing-entry-removed handling to after the normal entry
4006         delete handling, since we're called after the entry has been removed
4007         from the query model now.  Fixes crashes described in #344627.
4009 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4011         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4012         (rb_rating_get_rating_from_widget):
4013         * widgets/rb-rating.c: (rb_rating_class_init),
4014         (rb_rating_finalize), (rb_rating_get_property),
4015         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4016         (rb_rating_button_press_cb):
4017         Don't crash when ratings icons can't be found.  Fixes #344533.
4019 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4021         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4023 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4025         * Makefile.am:
4026         * configure.ac:
4027         * remote/Makefile.am:
4028         * remote/dbus/Makefile.am:
4029         * remote/dbus/rb-client.c:
4030         * shell/Makefile.am:
4031         New dbus client program providing --play/--next etc. arguments.
4032         Fixes #340863, #155763.
4034 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4036         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4037         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4039 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4041         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4043         * rhythmdb/rhythmdb-query-model.c:
4044         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4045         to Library incorrectly
4047 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4049         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4050         Return input string untouched if gnome_vfs_uri_new returns NULL.
4051         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4052         (rb_static_playlist_source_add_list_uri):
4053         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4054         URIs don't break it.  Fixes #339033.
4056 2006-06-08  James Livingston  <doclivingston@gmail.com>
4058         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4059         for sources on the edge (i.e. the queue). Fixes #328409.
4061         * sources/rb-ipod-source.c: fix typo
4063 2006-06-08  James Livingston  <doclivingston@gmail.com>
4065         * configure.ac:
4066         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4067         --enable-ipod-writing to enable the ipod syncing code.
4069 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4071         * sources/rb-library-source.c: (layout_example_label_update):
4072         add missing comma so we don't generate broken markup.
4074 2006-06-08  James Livingston  <doclivingston@gmail.com>
4076         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4077         tag-merging with id3v2mux as well as id3mux. From #342330.
4079 2006-06-07  James Livingston  <doclivingston@gmail.com>
4081         * tests/test-rhythmdb.c: #define fail_if for old version of check
4082         which don't have it. Hopefully fixes #343718.
4084 2006-06-07  James Livingston  <doclivingston@gmail.com>
4086         * shell/rb-playlist-manager.c:
4087         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4088         g_value_array_free with NULL. Fixes #341053.
4090 2006-06-07  James Livingston  <doclivingston@gmail.com>
4092         * shell/rb-playlist-manager.c:
4093         (rb_playlist_manager_playlist_entries_changed),
4094         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4095         instead of "row-removed", which fixes updating "burn playlist"
4096         sensitivity. Fixes #331119.
4098 2006-06-07  James Livingston  <doclivingston@gmail.com>
4100         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4101         rather than restarting if the source uses _RETRY and there is an
4102         actual error (like an undecodable stream) rather than it just dropping
4103         out and causing EOS.
4105 2006-06-07  James Livingston  <doclivingston@gmail.com>
4107         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4108         free the pixbufs if they couldn't be loaded. Fixed #343852.
4110 2006-06-07  James Livingston  <doclivingston@gmail.com>
4112         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4113         the close button on the dialog work. Fixes #335346.
4115 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4117         * sources/rb-sourcelist-model.c: (path_is_droppable),
4118         (path_is_reorderable):
4119         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4120         (row_activated_cb), (emit_show_popup), (key_release_cb),
4121         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4122         Ignore group marker rows in the source list.  Fixes #344089, a couple
4123         of other crashers, and some weird UI glitches too.
4125 2006-06-07  James Livingston  <doclivingston@gmail.com>
4127         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4128         the seeking query fails. This is needed because many gst elements
4129         don't implement the seeking query yet. Should fix 329977.
4131 2006-06-06  James Livingston  <doclivingston@gmail.com>
4133         * configure.ac: bump version for a prerelease, turn on track transfer
4134         by default.
4136         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4137         ipod transfer stuff, since it has big issues and we'll hopefully land
4138         real support (bug 310774) after 0.9.5
4140 2006-06-06  James Livingston  <doclivingston@gmail.com>
4142         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4143         id3v2mux once we've detected it.
4145 2006-06-06  James Livingston  <doclivingston@gmail.com>
4147         * lib/Makefile.am:
4148         * tests/test-rhythmdb.c: undo accidental commit which caused
4149         rb-thread.c to be built (which it isn't normally)
4151 2006-06-06  James Livingston  <doclivingston@gmail.com>
4153         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4154         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4155         fail_{if/unless} calls, as some versions of check need them (they are
4156         optional in others). Should fix bug 343718.
4158 2006-06-06  James Livingston  <doclivingston@gmail.com>
4160         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4161         343836.
4162         
4163         * lib/Makefile.am:
4164         * lib/rb-thread.c: (process_actions):
4165         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4166         tests that don't pass.
4168 2006-06-05  James Livingston  <doclivingston@gmail.com>
4170         * data/glade/Makefile.am:
4171         * data/glade/load-failure.glade:
4172         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4173         dialog.
4175 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4177         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4178         checked in.
4180 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4182         * bindings/python/rb.defs:
4183         * sources/rb-source.h:
4184         * sources/rb-source.c: (rb_source_class_init),
4185         (rb_source_set_property), (rb_source_get_property),
4186         (rb_sourcelist_group_get_type):
4187         Add 'sourcelist-group' property on the RBSource class, describing how
4188         sources should be grouped in the source list.
4190         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4191         (rb_sourcelist_model_new), (real_row_is_separator),
4192         (rb_sourcelist_model_is_row_visible),
4193         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4194         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4195         (rb_sourcelist_model_row_draggable),
4196         (rb_sourcelist_model_row_inserted_cb),
4197         (rb_sourcelist_model_row_deleted_cb),
4198         (rb_sourcelist_model_get_group_path):
4199         * sources/rb-sourcelist-model.h:
4200         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4201         (rb_sourcelist_append):
4202         Add group marker rows for each sourcelist group, and use these to
4203         insert sources in the right place.  Sort transient sources (DAAP
4204         shares) by name.  Show the group marker rows as separators when the
4205         next visible row is a source.  Make persistant sources (playlists) and
4206         removable sources reorderable using drag and drop, restricting them
4207         within the source groups.
4208         
4209         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4210         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4211         * sources/rb-daap-source.c: (rb_daap_source_new):
4212         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4213         * sources/rb-static-playlist-source.c:
4214         (rb_static_playlist_source_new):
4215         * plugins/generic-player/rb-generic-player-source.c:
4216         (rb_generic_player_source_new):
4217         * plugins/generic-player/rb-nokia770-source.c:
4218         (rb_nokia770_source_new):
4219         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4220         Add source list group information to existing source classes.
4222         Fixes #318754 and #336492.
4224 2006-06-04  James Livingston  <doclivingston@gmail.com>
4226         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4227         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4228         win32 build fixes.
4230 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4232         * rhythmdb/rhythmdb-query-model.c:
4233         (rhythmdb_query_model_class_init),
4234         (rhythmdb_query_model_remove_from_main_list):
4235         * rhythmdb/rhythmdb-query-model.h:
4236         Add a new 'post-entry-delete' signal, emitted when the entry has been
4237         removed from the model's data structures.
4239         * shell/rb-play-order.c: (rb_play_order_finalize),
4240         (rb_play_order_query_model_changed),
4241         (rb_play_order_post_entry_delete_cb):
4242         Use the new signal to update the play order, so the queue play order
4243         doesn't try to scroll to entries that don't exist in a way that causes
4244         the tree view to crash.  Fixes #340216.
4246 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4248         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4249         Fix rb_debug call I missed previously.
4251 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4253         * metadata/rb-metadata-gst.c:
4254         Don't use NULL as the error message for ignored files, as it crashes
4255         with some C libraries.  Fixes #343713.
4257 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4259         * widgets/rb-dialog.c: (rb_error_dialog):
4260         * widgets/rb-dialog.h:
4261         Mark rb_error_dialog as taking printf-like arguments, and use a format
4262         string for the primary message rather than passing in the message
4263         directly.
4265         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4266         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4267         (info_available_cb):
4268         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4269         * shell/rb-removable-media-manager.c:
4270         (rb_removable_media_manager_eject_medium_cb):
4271         Make sure all calls to rb_error_dialog use string constants for the
4272         format string rather than passing the error message directly.  Remove
4273         an extra %s from the message used when playback fails.  Fixes #343562.
4275         * lib/rb-debug.h:
4276         * sources/rb-audiocd-source.c:
4277         * plugins/audioscrobbler/rb-audioscrobbler.c:
4278         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4279         Mark rb_debug as taking printf-like arguments and fix a few resulting
4280         warnings.
4282 2006-06-02  James Livingston  <doclivingston@gmail.com>
4284         * configure.ac:
4285         + macros/check.m4: add support for using check for unit tests, the .m4
4286         files is so autogen can run without check being installed
4288         * tests/Makefile.am:
4289         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4290         some of the old tests, and add some new ones. Currently
4291         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4292         yet (the query doesn't return any entries).
4294         - tests/deserialization-test1.xml:
4295         - tests/deserialization-test2.xml:
4296         - tests/deserialization-test3.xml:
4297         - tests/test-rhythmdb-indexing.c:
4298         - tests/test-rhythmdb-simple.c:
4299         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4300         have been ported
4302         - tests/test-cd.c:
4303         - tests/test-cmdline.c: remove obsolete tests
4305 2006-06-02  James Livingston  <doclivingston@gmail.com>
4307         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4308         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4309         id3v2mux, and check whether we are using a version of id3mux that has
4310         the correct merge-mode behaviour.
4312         * plugins/sample-python/Makefile.am: fix distcheck.
4314         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4315         the changed-files source was added before trying to remove it.
4317         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4318         *old* bug which would crash if a query with top-level disjunctions
4319         tried to check later disjunctive parts. Hooray for unit-testing.
4321 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4323         * player/rb-recorder-gst.c (rb_recorder_set_device):
4324         Check for a null drive.
4326 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4328         * lib/Makefile.am:
4329         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4330         Register the app icon as a builtin if the icon theme can't find it.
4332 2006-05-31  James Livingston  <doclivingston@gmail.com>
4334         * player/rb-recorder-gst.c: add missing include.
4336 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4338         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4339         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4340         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4341         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4342         (rb_recorder_set_device), (rb_recorder_get_default_device):
4343         * shell/main.c: (main):
4344         * shell/rb-removable-media-manager.c:
4345         (rb_removable_media_manager_finalize),
4346         (get_nautilus_burn_drive_for_path),
4347         (rb_removable_media_manager_playing_uri_changed_cb),
4348         (rb_removable_media_manager_load_media),
4349         (nautilus_burn_drive_get_device),
4350         (rb_removable_media_manager_scan):
4351         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4353         Update for libnautilus-burn 2.15.3 API changes.
4354         Fixes #342604
4356 2006-05-30  James Livingston  <doclivingston@gmail.com>
4358         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4359         "return" to that it asks for the password again if it was wrong.
4361 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4363         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4364         typefind element.
4366 2006-05-30  James Livingston  <doclivingston@gmail.com>
4368         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4369         (download_progress_cb): don't do wonky things if the transfer
4370         "suceeds" without transferring any data.
4372 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4374         * sources/rb-library-source.c: (layout_example_label_update),
4375         (build_filename):  Fix crash when no audio profile is selected.
4376         Fixes #341447.
4378 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4380         * shell/rb-shell.c: (rb_shell_clear_queue):
4381         * shell/rb-shell.h:
4382         * shell/rb-shell.xml:
4383         * sources/rb-play-queue-source.c:
4384         (rb_play_queue_source_clear_queue),
4385         (rb_play_queue_source_cmd_clear):
4386         * sources/rb-play-queue-source.h:
4387         Add clearQueue dbus method.
4389 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4391         * shell/main.c: (main):  Implement --quit option.
4393 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4395         * rhythmdb/rhythmdb-private.h:
4396         * rhythmdb/rhythmdb-tree.h:
4397         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4398         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4399         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4400         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4401         (rhythmdb_entry_get_boolean):
4402         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4403         bitmask, giving the db backend anything past the first 16 bits for 
4404         its own private use.
4406         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4407         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4408         Add a 'loading' flag to indicate that an entry is being loaded from
4409         disk, and use that to ignore entry_set operations on such entries
4410         rather than the 'inserted' flag, which doesn't quite mean the same
4411         thing.  Fixes #342694.
4413 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4415         * shell/rb-shell.xml: Remove visibility property, since it causes
4416         crashes (dbus bug 7057) and doesn't do much else.
4418 2006-05-28  James Livingston  <doclivingston@gmail.com>
4420         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4422         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4423         * po/POTFILES.in: fix some more i18n issues.
4425 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4427         * bindings/python/rb.defs:
4428         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4429         (filter_mmkeys):
4430         * shell/rb-shell-player.h:
4431         Deprecate the useless 'ignore_stop' parameter to
4432         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4433         API.  From bug #334829.
4435 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4437         * plugins/generic-player/rb-generic-player-source.c:
4438         (visit_playlist_dirs), (default_transform_playlist_uri):
4439         When playlist parsing fails, unref the playlist, not the parent
4440         source.  Fix memory leak in playlist uri transform.
4441         * plugins/generic-player/rb-nokia770-source.c:
4442         (impl_transform_playlist_uri):
4443         Fix memory leak in playlist uri transform.
4445 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4447         * doc/reference/Makefile.am: fix grk-doc build
4449 2006-05-27  James Livingston  <doclivingston@gmail.com>
4451         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4453         * plugins/lyrics/lyrics.py:
4454         * po/POTFILES.in: Make strings in plugins translatable. From bug
4455         343081.
4457 2006-05-27  James Livingston  <doclivingston@gmail.com>
4459         * backends/Makefile.am:
4460         * backends/gstreamer/Makefile.am:
4461         * lib/Makefile.am:
4462         * plugins/audioscrobbler/Makefile.am:
4463         * plugins/generic-player/Makefile.am:
4464         * po/POTFILES.in:
4465         * rhythmdb/rhythmdb-monitor.c:
4466         * rhythmdb/rhythmdb.c:
4467         * sources/Makefile.am:
4468         * widgets/Makefile.am: fix compilation after some CVS surgery was
4469         done.
4471 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4473         * bindings/python/rhythmdb.defs:
4474         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4475         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4476         (rhythmdb_query_deserialize):
4477         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4478         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4479         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4480         (rhythmdb_entry_register_type_alias),
4481         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4482         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4483         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4484         (rhythmdb_entry_podcast_feed_get_type),
4485         (rhythmdb_entry_import_error_get_type),
4486         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4487         * rhythmdb/rhythmdb.h:
4488         Allocate a specified amount of extra memory for each db entry, to be
4489         used to store fields specific to the entry type.  Optionally associate
4490         a name with each entry type, to be used when saving entries and
4491         auto playlists to disk.  Allow entry types to have multiple names
4492         to handle older playlist files that used '0' to represent 'song'.
4493         Use private data to store podcast fields.
4495         * rhythmdb/rhythmdb-private.h:
4496         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4497         (rhythmdb_tree_parser_end_element), (save_entry),
4498         (rhythmdb_tree_entry_set):
4499         Simplify property handling by using existing code to convert
4500         properties from strings to GValues and to set properties on entries.
4501         Other assorted changes due to the above.
4503         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4504         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4505         * sources/rb-generic-player-source.c:
4506         (rb_generic_player_source_new):
4507         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4508         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4509         * sources/rb-psp-source.c: (rb_psp_source_new):
4510         Update for changes to rhythmdb_entry_register_type.  None of these
4511         entry types need names or use private data.
4513         Fixes #337429.
4515 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4517         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4518         Fix creation of ignored-file db entries - need to check for
4519         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4521 2006-05-25  James Livingston  <doclivingston@gmail.com>
4523         * AUTHORS:
4524         * MAINTAINERS: update my email address
4526 2006-05-25  James Livingston  <doclivingston@gmail.com>
4528         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4529         "(... mix)" when searching for lyrics. Cache the lyrics under
4530         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4532 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4534         * sources/rb-import-errors-source.c:
4535         (rb_import_errors_source_class_init):
4536         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4537         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4538         * sources/rb-source.c: (rb_source_class_init),
4539         (default_move_to_trash):
4540         Implement the basic move-to-trash operation once in rb-source.c, 
4541         rather than in each source type that supports it.
4543         * plugins/ipod/rb-ipod-plugin.c:
4544         * shell/rb-removable-media-manager.c:
4545         * shell/rb-shell.c: (rb_shell_constructor):
4546         Only scan removable media once after loading plugins.  Add a flag
4547         plugins can use to check if the initial scan has been done.
4549         * data/rhythmbox.schemas:
4550         Enable ipod and generic-player plugins by default.
4551         
4552         * configure.ac:
4553         * data/ui/Makefile.am:
4554         * data/ui/generic-player-ui.xml:
4555         * data/ui/rhythmbox-ui.xml:
4556         * plugins/Makefile.am:
4557         * plugins/generic-player/Makefile.am:
4558         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4559         * plugins/generic-player/rb-generic-player-plugin.c:
4560         * sources/Makefile.am:
4561         * sources/rb-generic-player-source.c:
4562         * sources/rb-generic-player-source.h:
4563         * sources/rb-nokia770-source.c:
4564         * sources/rb-nokia770-source.h:
4565         * sources/rb-psp-source.c: (visit_playlist_dirs):
4566         * sources/rb-psp-source.h:
4567         Pluginise generic player (and nokia770 and PSP) support and add
4568         move-to-trash for players not mounted read-only.
4569         Fixes #342868.
4571 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4573         * daapsharing/rb-daap-connection.c (handle_song_listing):
4574         Lower bound check for batch commit.  Fixes #342848
4576         * sources/rb-daap-source.c (rb_daap_source_get_status):
4577         Always set output variables if provided.
4579 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4581         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4582         (rhythmdb_tree_entry_delete), (remove_one_song):
4583         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4584         Fix two db entry reference counting problems.
4585         The initial reference on the entry is held by the db backend, but it
4586         was never being dropped.  The reference count was incremented when
4587         adding an entry to the deleted_entries map and to the
4588         deleted_entries_to_emit list, but only decremented for one of those.
4590 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4592         * daapsharing/rb-daap-connection.c (http_response_handler) 
4593         (rb_daap_connection_dispose):
4594         Call soup_session_abort to make sure there are no outstanding
4595         requests when we dispose of the connection.  Ignore cancelled
4596         messages in the callback.
4598 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4600         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4601         (rb_daap_source_disconnect): Set a flag when disconnecting
4602         the source.  Check this flag in connection callback
4603         to see if we should release the connection.
4605 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4607         * daapsharing/Makefile.am:
4608         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4609         (rb_daap_connection_class_init), (connection_connected),
4610         (connection_disconnected), (connection_operation_done),
4611         (build_message), (connection_set_error_message),
4612         (actual_http_response_handler), (http_get),
4613         (entry_set_string_prop), (emit_progress_idle),
4614         (handle_server_info), (handle_login), (handle_update),
4615         (handle_database_info), (handle_song_listing), (handle_playlists),
4616         (handle_playlist_entries), (handle_logout),
4617         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4618         (connection_response_data_free), (connected_cb),
4619         (rb_daap_connection_connect), (disconnected_cb),
4620         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4621         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4622         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4623         (rb_daap_connection_get_property):
4624         * daapsharing/rb-daap-connection.h:
4625         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4626         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4627         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4628         (rb_daap_hash_generate):
4629         * daapsharing/rb-daap-hash.h:
4630         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4631         (rb_daap_get_icon), (remove_source), (stop_browsing),
4632         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4633         (connection_connecting_cb), (connection_disconnected_cb),
4634         (release_connection), (rb_daap_source_connection_cb),
4635         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4636         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4638         Adds a better async API for connect and disconnect.  Doesn't share
4639         callback data for every async call.  Adds a connect signal.  Uses
4640         an operation-done signal to trigger the callbacks.  Displays an
4641         error when connections fail.  A few refcounting fixes to fix
4642         crashes.  Uses a weak pointer to set the connection to NULL so we
4643         don't clobber references.  Wait for each disconnect when shutting
4644         down sources.  Split out DAAP hash stuff into its own file.  Fix
4645         typo in header.
4647         Fixes #342643
4648         
4649 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4651         * sources/rb-auto-playlist-source.c:
4652         (rb_auto_playlist_source_new_from_xml):
4653         Initialize the gvalue used to hold the size limit correctly.
4654         Fixes #342744.
4656 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4658         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4659         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4660         * shell/rb-shell.h:
4661         * shell/rb-shell.xml:
4662         Convert rb_shell_quit into a dbus method, and add visibility dbus
4663         property.
4665 2006-05-22  James Livingston  <doclivingston@gmail.com>
4667         * rhythmdb/rhythmdb.h:
4668         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4669         (rhythmdb_entry_is_editable), (action_thread_main),
4670         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4671         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4672         false, and syncing into the file.
4674         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4675         (rhythmdb_entry_iradio_get_type),
4676         (rhythmdb_entry_import_error_get_type):
4677         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4678         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4679         change the DB.
4681 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4683         * rhythmdb/Makefile.am:
4684         * rhythmdb/rhythmdb-monitor.c:
4685         * rhythmdb/rhythmdb-private.h:
4686         * rhythmdb/rhythmdb-query.c:
4687         * rhythmdb/rhythmdb.c:
4688         Split up rhythmdb.c a bit.
4690 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4692         * data/glade/audioscrobbler-prefs.glade:
4693         Add a link to the last.fm server status page.
4695 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4697         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4698         Capitalization fix.
4699         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4700         (impl_create_configure_dialog):  UI layout fixes, remove
4701         dialog separator, and capitalization fix for window title.
4702         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4703         and remove dialog separator.
4704         * data/glade/plugins.glade:  UI layout fixes.
4705         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4706         and capitalization fix.  Fixes #342438.
4708 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4710         * data/glade/podcast-properties.glade:  Fix layout of the download 
4711         location.  Fixes #342431.
4713 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4715         * data/ui/rhythmbox-ui.xml:
4716         We only need one copy of the 'add to queue' action in the edit menu.
4718 2006-05-20  James Livingston  <doclivingston@gmail.com>
4720         * data/ui/rhythmbox-ui.xml:
4721         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4722         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4723         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4724         (rb_shell_clipboard_sync),
4725         (rb_shell_clipboard_cmd_add_to_playlist_new),
4726         (rb_shell_clipboard_cmd_queue_song_info),
4727         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4728         (rb_shell_clipboard_playlist_deleted_cb),
4729         (rb_shell_clipboard_playlist_renamed_cb),
4730         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4731         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4732         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4733         dynamically generated with all the static playlists. Fixes bug 323364.
4735         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4736         right child, so it doesn't go weird when art appears and disappears.
4738 2006-05-20  James Livingston  <doclivingston@gmail.com>
4740         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4742         * rhythmdb/rhythmdb-query-model.c:
4743         (rhythmdb_query_model_set_property),
4744         (rhythmdb_query_model_finalize),
4745         (rhythmdb_query_model_reapply_query_cb):
4746         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4747         (rhythmdb_query_append_prop_multiple),
4748         (rhythmdb_query_is_time_relative):
4749         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4750         time-based criteria, fixes bug 341131.
4752 2006-05-20  James Livingston  <doclivingston@gmail.com>
4754         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4755         we have already changed playing entries. Interpolate the art size so
4756         it doesn't jump when the old and new images have different aspect
4757         ratios.
4759 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4761         * rhythmdb/rhythmdb-private.h:
4762         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4763         (save_entry):
4764         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4765         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4766         (rhythmdb_entry_get_ulong):
4767         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4768         and elsewhere, use them on the stack rather than allocating on 
4769         the heap.  From bug #342333.
4771 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4773         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4774         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4775         (add_track), (eos_cb), (error_signal_idle),
4776         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4777         (rb_recorder_construct), (recorder_track_free),
4778         (rb_recorder_finalize):
4779         * sources/rb-playlist-source-recorder.c:
4780         Support libnautilus-burn size -> capacity API change.  Add
4781         some braces to blocks.
4783 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4785         * metadata/sj-metadata-musicbrainz.c:
4786         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4787         Sync with sound-juicer in CVS.  Fixes #342177
4788         * sources/rb-audiocd-source.c: Don't declare variables
4789         in the middle of a block (c99ism).  Fix order of #includes.
4790         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4791         one variable per line.  Update copyright date.
4793 2006-05-19  James Livingston  <doclivingston@gmail.com>
4795         patch by: Hendrik Richter  <hendi@gnome-de.org>
4797         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4798         "translator_credits" to a hyphen, so it doesn't cause problems for
4799         tools that check access keys. Fixes bug 341832.
4801 2006-05-19  James Livingston  <doclivingston@gmail.com>
4803         * po/POTFILES.in: remove references to files that don't exist any more
4804         (fixes make distcheck).
4806 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4808         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4809         Song Lyrics dialog. Fixes bug 342322.
4811 2006-05-19  James Livingston  <doclivingston@gmail.com>
4813         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4815         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4816         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4817         version checks not break when libnotify goes to 1.0.0. Fixes bug
4818         342244.
4820 2006-05-18  James Livingston  <doclivingston@gmail.com>
4822         * shell/rb-shell-clipboard.c:
4823         * shell/rb-shell.c:
4824         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4826 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4828         * sources/rb-playlist-source-recorder.c (get_song_description):
4829         Reverse artist and title in song description.  This
4830         is useful because at least the title will be visible
4831         when there is limited space.
4833 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4835         * daapsharing/rb-daap-connection.c: (connection_get_password):
4836         Take gdk lock before emitting authenticate signal.
4837         * sources/rb-daap-source.c: (connection_connecting_cb):
4838         Get rid of the unnecessary idle handler (it's already called from one)
4839         Fixes #342047 once more.
4841 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4843         * shell/rb-shell.c: (rb_shell_class_init):
4844         * shell/rb-shell.h:
4845         * widgets/rb-song-info.c: (rb_song_info_class_init),
4846         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4847         (rb_song_info_constructor), (rb_song_info_get_property),
4848         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4849         (rb_song_info_forward_clicked_cb):
4850         * widgets/rb-song-info.h:
4851         * data/glade/song-info-multiple.glade:
4852         * lib/rb-marshal.list:
4853         * bindings/python/Makefile.am:
4854         * bindings/python/rb.defs:
4855         * bindings/python/rb.override:
4856         Allow plugins to add pages to the notebooks used in song info windows,
4857         and to track the current song displayed in single-entry windows.
4858         
4859         * configure.ac:
4860         * plugins/Makefile.am:
4861         * plugins/lyrics/Loader.py:
4862         * plugins/lyrics/Makefile.am:
4863         * plugins/lyrics/lyrics.py:
4864         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4865         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4866         as a separate window (for the playing song) or as a page in the song
4867         info window.  A few TODO items left, but this fixes #319320.
4869 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4871         Patch by:  Roozbeh Pournader
4873         * configure.ac:
4874         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4875         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4877 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4878         
4879         * sources/rb-daap-source.c: (update_connection_status):
4880         Correct return value.  Fixes #342047 again.
4882 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4884         * sources/rb-daap-source.c: (update_connection_status),
4885         (connection_connecting_cb):
4886         Update status in an idle handler so we don't rely on the gdk lock
4887         being recursive (because it isn't any more).  Fixes #342047.
4889 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4891         * lib/rb-util.c: (rb_make_duration_string),
4892         (rb_make_elapsed_time_string):
4893         * lib/rb-util.h:
4894         Add a function for formatting an elapsed time string.
4896         * shell/rb-shell-player.c: (rb_shell_player_init),
4897         (rb_shell_player_sync_with_source),
4898         (rb_shell_player_get_playing_time_string), (tick_cb):
4899         Store elapsed time in the private data structure, and use the above
4900         function.
4901         
4902         * widgets/rb-header.c:
4903         * widgets/rb-header.h:
4904         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4905         object, so everything has the same idea of the elapsed time.
4906         Fixes #339693.
4908 2006-05-16  James Livingston  <doclivingston@gmail.com>
4910         * bindings/python/rhythmdb.defs:
4911         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4912         some parametre defaults, so you don't have to pass None, False for the
4913         sorting order.
4915 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4917         * bindings/python/rhythmdb.defs:
4918         * rhythmdb/rhythmdb-query-model.c:
4919         (rhythmdb_query_model_compute_status_normal):
4920         * rhythmdb/rhythmdb-query-model.h:
4921         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4922         * rhythmdb/rhythmdb.h:
4923         Change the various compute_status methods to accept a singular/plural
4924         pair to use in the status string.
4925         
4926         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4927         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4928         * sources/rb-source.c: (default_get_status):
4929         Call entries 'songs' by default, and 'episodes' in the podcast source.
4930         Fixes #340227.
4932 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4934         patch by:  Paul Drain
4936         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4937         Fixes #341817.
4939 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4941         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4942         Generate reorder maps correctly.
4943         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4944         Scroll to the first entry from the old selection.
4945         Fixes #322992.
4947 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4949         * data/ui/rhythmbox-ui.xml:
4950         * lib/rb-preferences.h:
4951         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4952         (rb_shell_playlist_created_cb),
4953         (rb_shell_view_sidepane_changed_cb),
4954         (rb_shell_sync_sidepane_visibility),
4955         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4956         (sidepane_visibility_changed_cb):
4957         * sources/rb-podcast-source.c:
4958         Convert sourcelist visibility to side-pane visbility.
4959         Fixes #339733
4961 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4963         * widgets/rb-header.c:
4964         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4965         'player', and make it use the private data structure allocated for it.
4967 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4969         * configure.ac: enable metadata helper with dbus < 0.35.
4971 2006-05-15  James Livingston  <doclivingston@gmail.com>
4973         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4975         * data/glade/song-info.glade:
4976         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4977         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4978         (rb_song_info_update_filesize): Add the file size into the song info
4979         window. Fixes bug 340861.
4981 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4983         * bindings/python/rhythmdb.defs:
4984         * rhythmdb/rhythmdb-query-model.c:
4985         (rhythmdb_query_model_set_property),
4986         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4987         * rhythmdb/rhythmdb-query-model.h:
4988         Add a new method to chain query models without importing entries from
4989         the parent into the child.  This is useful when the subset of entries
4990         in the child can be more easily determined by running a query than by
4991         filtering entries from the parent.
4993         * bindings/python/rb.defs:
4994         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4995         (rb_library_browser_set_property),
4996         (rb_library_browser_get_property), (rb_library_browser_new),
4997         (rebuild_child_model):
4998         * widgets/rb-library-browser.h:
4999         * sources/rb-auto-playlist-source.c:
5000         (rb_auto_playlist_source_constructor):
5001         * sources/rb-static-playlist-source.c:
5002         (rb_static_playlist_source_constructor):
5003         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5004         Use more efficient queries for constructing the browser query model
5005         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5006         backend to optimise the query) and run new queries rather than
5007         filtering entries from the parent.  Fixes #341402.
5009         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5011 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5013         * configure.ac:
5014         * shell/Makefile.am:
5015         * shell/main.c: (main), (load_uri_args), (send_present_message),
5016         (unregister_dbus_handler), (handle_dbus_message),
5017         (register_dbus_handler):
5018         Add minimal support for dbus 0.31 - 0.35.
5020         * doc/reference/Makefile.am:
5021         * doc/reference/rhythmbox.types:
5022         * data/Makefile.am:
5023         * data/GNOME_Rhythmbox.server.in:
5024         * data/rhythmbox.pc.in:
5025         * remote/*:
5026         * remote/bonobo/*:
5027         Remove remaining bonobo and generic remote interface files.
5029 2006-05-14  James Livingston  <doclivingston@gmail.com>
5031         * shell/rb-shell.c: (construct_widgets):
5032         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5033         resize the browser and queue-sidebar section of their panes, unless
5034         the other section is below the minimum size. Fixes bug 331927.
5036 2006-05-13  James Livingston  <doclivingston@gmail.com>
5038         * rhythmdb/rhythmdb-query-model.c:
5039         (rhythmdb_query_model_class_init),
5040         (rhythmdb_query_model_set_property),
5041         (rhythmdb_query_model_get_property),
5042         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5043         (rhythmdb_query_model_insert_into_main_list),
5044         (rhythmdb_query_model_insert_into_limited_list),
5045         (rhythmdb_query_model_do_reorder),
5046         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5047         (rhythmdb_query_model_location_sort_func),
5048         (rhythmdb_query_model_title_sort_func),
5049         (rhythmdb_query_model_album_sort_func),
5050         (rhythmdb_query_model_artist_sort_func),
5051         (rhythmdb_query_model_genre_sort_func),
5052         (rhythmdb_query_model_track_sort_func),
5053         (rhythmdb_query_model_double_ceiling_sort_func),
5054         (rhythmdb_query_model_ulong_sort_func),
5055         (rhythmdb_query_model_date_sort_func),
5056         (rhythmdb_query_model_string_sort_func):
5057         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5058         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5059         "data destroy" property. Fixed bug 341543.
5061         * bindings/python/rhythmdb.defs:
5062         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5063         rhythmdb_query_model_set_sorting_order
5065         * rhythmdb/rhythmdb-property-model.c:
5066         (rhythmdb_property_model_drag_data_get):
5067         * sources/rb-import-errors-source.c:
5068         (rb_import_errors_source_constructor):
5069         * sources/rb-missing-files-source.c:
5070         (rb_missing_files_source_constructor):
5071         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5072         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5073         * widgets/rb-entry-view.h: adapt to the above change.
5075 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5077         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5078         (rhythmdb_tree_load):
5079         Commit loaded entries in batches, rather than individually.  
5080         More startup time reduction.
5082 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5084         * doc/reference/Makefile.am: fix gtk-doc compilation
5086 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5088         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5089         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5090         * plugins/artdisplay/artdisplay/Loader.py:
5091         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5092         Only call the first artist the best match when album==Unknown.
5093         Don't perform each query twice if album doesn't include "Vol N".
5094         Fix searching for compilations.  Fix blacklisting.
5095         Part of bug #307848
5097 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5099         * Makefile.am:
5100         * bindings/python/Makefile.am:
5101         * bindings/python/rb.defs:
5102         * bindings/python/rb.override:
5103         * configure.ac:
5104         * doc/reference/Makefile.am:
5105         * plugins/Makefile.am:
5106         * plugins/audioscrobbler/Makefile.am:
5107         * plugins/ipod/Makefile.am:
5108         * plugins/lirc/Makefile.am:
5109         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5110         (impl_activate), (impl_deactivate):
5111         * plugins/sample/Makefile.am:
5112         * remote/Makefile.am:
5113         * shell/Makefile.am:
5114         * shell/main.c: (main), (main_shell_weak_ref_cb):
5115         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5116         (rb_shell_get_property), (rb_shell_window_state_cb),
5117         (idle_hide_mainwindow), (rb_shell_set_visibility),
5118         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5119         (rb_shell_set_song_property):
5120         * shell/rb-shell.h:
5121         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5122         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5123         (rb_tray_icon_get_property), (rb_tray_icon_new),
5124         (rb_tray_icon_button_press_event_cb),
5125         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5126         (rb_tray_icon_show_window_changed_cb):
5127         * shell/rb-tray-icon.h:
5129         Remove bonobo, require DBUS.
5130         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5131         Fixes #339720
5133 2006-05-13  James Livingston  <doclivingston@gmail.com>
5135         * bindings/python/rb.override: fix some pointer-type warnings
5137 2006-05-12  James Livingston  <doclivingston@gmail.com>
5139         * lib/rb-util.c: (rb_value_free):
5140         * lib/rb-util.h: Add function to unset and free a GValue* that was
5141         allocated in the heap.
5143         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5144         the metadata hastable values
5145         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5146         leak the metadata hashtable structure
5147         * metadata/rb-metadata-dbus.c:
5148         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5149         using g_strdup and then _take_string
5151         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5152         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5153         stat something.
5155         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5156         leak the encoded string
5158         * widgets/rb-property-view.c:
5159         (rb_property_view_selection_changed_cb): set some variables to have
5160         inital values, because some code paths may not set them before we use
5161         them.
5163         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5164         don't have python warning into a debug message".
5166 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5168         * data/rhythmbox.schemas: Use zero instead of null for
5169         default burn speed.  Fixes #341283.
5171 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5173         * bindings/python/rb.defs:
5174         * widgets/rb-library-browser.c:
5175         (rb_library_browser_get_property_view):
5176         * widgets/rb-library-browser.h:
5177         Add a method to get the property view for a given property.
5179         * sources/rb-browser-source.c:
5180         (rb_browser_source_cmd_choose_genre),
5181         (rb_browser_source_cmd_choose_artist),
5182         (rb_browser_source_cmd_choose_album):
5183         Change the browser selection by changing the property view selection. 
5184         Makes the selection change visible, fixing #331740.
5186 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5188         * bindings/python/rb.defs:
5189         * bindings/python/rb.override:
5190         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5191         * shell/rb-statusbar.c: (*),
5192         * sources/rb-import-errors-source.c: (impl_get_status):
5193         * sources/rb-iradio-source.c: (impl_get_status):
5194         * sources/rb-missing-files-source.c: (impl_get_status):
5195         * sources/rb-source.c: (default_get_status),
5196         (rb_source_get_status):
5197         * sources/rb-source.h:
5198         Allow sources to provide a progress value for the status bar.
5199         Simplify status bar processing (much less polling).
5200         Consider rhythmdb busy while it's still loading the database.
5202         * daapsharing/rb-daap-connection.c: (*)
5203         * daapsharing/rb-daap-connection.h:
5204         * lib/rb-marshal.list:
5205         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5206         (rb_daap_source_init), (connection_connecting_cb),
5207         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5208         (rb_daap_source_get_status):
5209         Provide status information for DAAP connections, and move processing
5210         of large responses into a separate thread.
5211         Fixes bugs #322020 and #338978.
5213 2006-05-09  James Livingston  <doclivingston@gmail.com>
5215         Split the artdisplay plugin into several files.
5216         Fix loader and amazon-search re-use issues.
5217         Add some better search heuristics.
5219         * configure.ac:
5220         * plugins/artdisplay/Makefile.am:
5221         * plugins/artdisplay/artdisplay.py:
5222         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5223         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5224         * plugins/artdisplay/artdisplay/Loader.py:
5225         * plugins/artdisplay/artdisplay/Makefile.am:
5226         * plugins/artdisplay/artdisplay/__init__.py:
5228 2006-05-09  James Livingston  <doclivingston@gmail.com>
5230         * sources/rb-browser-source.h: remove the _has_first_added_column
5231         stuff since it isn't actually used anywhere. Sources that want it
5232         should just add it themselves, as the library already does
5234         * bindings/python/rb.defs:
5235         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5236         * sources/rb-library-source.c: (rb_library_source_class_init):
5237         * sources/rb-removable-media-source.c:
5238         (rb_removable_media_source_class_init): Remove the remanants of the
5239         above.
5241 2006-05-09  James Livingston  <doclivingston@gmail.com>
5243         * bindings/python/rb.defs:
5244         * sources/rb-browser-source.h: remove a function that was declared in
5245         the header, but not defined anywhere.
5247 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5249         * plugins/artdisplay/.cvsignore:
5250         * plugins/ipod/.cvsignore: Added.
5252 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5254         * sources/rb-auto-playlist-source.c:
5255         (rb_auto_playlist_source_new_from_xml):
5256         Fix reading of older playlist files where all three limits were
5257         specified so we take the first nonzero limit.  From #341053.
5259 2006-05-09  James Livingston  <doclivingston@gmail.com>
5261         * bindings/python/Makefile.am:
5262         * bindings/python/rb.defs:
5263         * bindings/python/rb.override: bind RBBrowserSource,
5264         RBRemovableMediaSource and RBRemovableMediamanager.
5266 2006-05-09  James Livingston  <doclivingston@gmail.com>
5268         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5270         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5271         Fixes bug 339221.
5273 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5275         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5276         Don't explode when trying to edit a query with no limit set.
5278 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5280         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5281         Clear the should_queue flag when switching to a non-submittable entry,
5282         so we don't submit songs that played for three seconds before
5283         switching to a podcast episode.
5285         * rhythmdb/rhythmdb-query-model.c
5286         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5287         in the drag data list.
5289 2006-05-08  James Livingston  <doclivingston@gmail.com>
5291         * lib/rb-util.c: (rb_value_array_append_data):
5292         * lib/rb-util.h: add function which is basically a combination of
5293         G_VALUE_COLLECT and g_value_array_append.
5295         * rhythmdb/rhythmdb-query-model.h:
5296         * rhythmdb/rhythmdb-query-model.c:
5297         (rhythmdb_query_model_class_init),
5298         (rhythmdb_query_model_set_property),
5299         (rhythmdb_query_model_get_property),
5300         (rhythmdb_query_model_finalize),
5301         (rhythmdb_query_model_update_limited_entries),
5302         (rhythmdb_query_model_set_sort_order),
5303         (rhythmdb_query_model_within_limit),
5304         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5305         saner. Rather than having <count=N, time=N, size=N> we now have a
5306         <type, value> pair. This will also make it much easier to add new
5307         limit types in the future.
5309         * shell/rb-playlist-manager.c:
5310         (rb_playlist_manager_set_automatic_playlist),
5311         (rb_playlist_manager_cmd_edit_automatic_playlist):
5312         * sources/rb-auto-playlist-source.c:
5313         (rb_auto_playlist_source_finalize),
5314         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5315         (_save_write_ulong), (_save_write_uint64),
5316         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5317         (rb_auto_playlist_source_set_query),
5318         (rb_auto_playlist_source_get_query):
5319         * sources/rb-auto-playlist-source.h:
5320         * sources/rb-library-source.c:
5321         (rb_library_source_add_child_source):
5322         * sources/rb-psp-source.c: (visit_playlist_dirs):
5323         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5324         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5325         * widgets/rb-query-creator.h: Adapt to the above change.
5327 2006-05-08  James Livingston  <doclivingston@gmail.com>
5329         * shell/rb-playlist-manager.c:
5330         (rb_playlist_manager_cmd_edit_automatic_playlist):
5331         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5332         (rb_auto_playlist_source_set_query),
5333         (rb_auto_playlist_source_get_query): copy the query in the _get method
5334         and free it in things calling that. Fixes a crasher.
5336 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5338         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5339         Make entries on newly mounted volumes visible immediately, hiding them
5340         later if they turn out to be missing.  Fixes #340068.
5342 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5344         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5345         Ignore zip files and ignore errors for files we've decided to ignore.
5347 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5349         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5350         Add missing }, should fix #340844.
5352 2006-05-06  James Livingston  <doclivingston@gmail.com>
5354         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5355         typo.
5357 2006-05-06  James Livingston  <doclivingston@gmail.com>
5359         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5360         that we work with libnotify >= 0.4
5362 2006-05-06  James Livingston  <doclivingston@gmail.com>
5364         patch by: Joe Barnett  <thejoe@gmail.com>
5366         * configure.ac: check if we're using a version of libgpod that
5367         supports the Motorola ROKR
5369         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5370         for the db path, if we using the newer version.
5372         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5374 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5376         * rhythmdb/rhythmdb-query-model.c:
5377         (rhythmdb_query_model_drag_data_get):
5378         Use playback URI, not location, for drag data.  Fixes #322597.
5380 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5382         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5384 2006-05-03  James Livingston  <doclivingston@gmail.com>
5386         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5387         (rb_add_id3_tagger), (rb_metadata_save):
5388         Set the tags on the tagging element when it is
5389         created, not during pipeline creation - which is required for
5390         dynamically created elements.
5392         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5393         support for using the "vorbistag" element to re-tag ogg vorbis files.
5394         Fixes bug 339878.
5396 2006-05-03  James Livingston  <doclivingston@gmail.com>
5398         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5400         * plugins/artdisplay/artdisplay.py:
5401         - Fix small bug callback of data loader getting overwritten on fast
5402         connections.
5403         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5404         Jonathan Matthew)
5405         - Fix Rhythmbox UI blocking while loading/searching cover art
5406         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5407         - Initial approach to allow additional "art search engines"
5408         - Further modularization in a couple of places
5409         - Minor fixes for empty entries (iradio, album, artist etc.)
5411 2006-05-03  James Livingston  <doclivingston@gmail.com>
5413         * shell/rb-playlist-manager.c:
5414         (rb_playlist_manager_playlist_entries_changed),
5415         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5416         options for non-local sources, rather than showing disabled ones.
5418         * sources/rb-library-source.c: (add_child_sources_idle),
5419         (rb_library_source_constructor), (rb_library_source_new),
5420         (rb_library_source_library_location_changed),
5421         (rb_library_source_add_child_source),
5422         (rb_library_source_sync_child_sources): Create "child library" sources
5423         when the user has multiple library locations set. Fixes bug 100552.
5425 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5427         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5428         * plugins/sample/sample.rb-plugin.desktop.in:
5429         Finish changing 'Author' to 'Authors'
5430         
5431         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5432         (rhythmdb_entry_import_error_get_type):
5433         Implement get_playback_uri for import errors (returns NULL)
5435         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5436         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5437         entry, rather than doing entry type checks.
5439 2006-05-02  James Livingston  <doclivingston@gmail.com>
5441         patch from Alessandro Decina  <alessandro@nnva.org>
5443         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5444         the signal emission in the case of fatal-on-init errors. From bug
5445         322268.
5447 2006-05-02  James Livingston  <doclivingston@gmail.com>
5449         * rhythmdb/rhythmdb.h:
5450         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5451         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5452         (rhythmdb_entry_podcast_post_get_type),
5453         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5454         virtual function to entry-types for getting the playback URI. From bug
5455         330226.
5457         * backends/gstreamer/rb-encoder-gst.c:
5458         (create_pipeline_and_source), (extract_track):
5459         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5460         to get the URI.
5462 2006-05-02  James Livingston  <doclivingston@gmail.com>
5464         patch by: Brian Cameron  <brian.cameron@sun.com>
5466         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5467         340337.
5469 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5471         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5472         instead of clear.  Use regex matching to strip "disc N"
5473         from album.  Match titles in ProductName.  Perform
5474         fallback queries including various artist compilations.
5475         Include "us" locale.  Improve queries when artist or album
5476         is unknown.  Use medium size image if large is unavailable.
5478         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5479         William Jon McCann  <mccann@jhu.edu>
5480         
5481 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5483         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5484         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5485         (conjunctive_query): Sanity check.
5486         (evaluate_conjunctive_subquery): 
5487         Don't return TRUE immediately when a relative-time query criterion
5488         matches.  Fixes #339972.
5490 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5492         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5493         Don't crash if primary or secondary are NULL.
5495 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5497         * doc/reference/Makefile.am: fix gtk-doc build yet again
5499 2006-04-28  James Livingston  <doclivingston@gmail.com>
5501         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5502         python console. Fixes bug 339934.
5504 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5506         * rhythmdb/rhythmdb-property-model.c:
5507         (rhythmdb_property_model_drag_data_get):
5508         When creating uri list drag data, create a new query model based on
5509         the query model the property model is attached to.  Makes the
5510         resulting query use the right entry type and include the upstream
5511         query criteria.  Fixes half of #327540.
5513 2006-04-27  James Livingston  <doclivingston@gmail.com>
5515         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5516         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5517         build fixes.
5519 2006-04-27  James Livingston  <doclivingston@gmail.com>
5521         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5523 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5525         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5526         (rb_playlist_manager_save_data),
5527         (rb_playlist_manager_save_playlists):
5528         * shell/rb-playlist-manager.h:
5529         * shell/rb-shell.c: (rb_shell_sync_state),
5530         (idle_save_playlist_manager):
5531         Remove a bit more threading insanity from the playlist manager.
5533 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5535         * shell/rb-playlist-manager.c: 
5536         * shell/rb-playlist-manager.h:
5537         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5538         
5539         * shell/rb-shell.c: (rb_shell_sync_state),
5540         (idle_save_playlist_manager), (construct_sources),
5541         (rb_shell_select_source), (rb_shell_sync_party_mode):
5542         Adjustments for above changes.
5544 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5546         * sources/rb-browser-source.c (impl_browser_toggled):
5547         Reset browser when hidden.  Fixes #339617.
5549 2006-04-26  James Livingston  <doclivingston@gmail.com>
5551         * backends/Makefile.am:
5552         * backends/gstreamer/Makefile.am: work again with separated
5553         built-roots
5555 2006-04-26  James Livingston  <doclivingston@gmail.com>
5557         * shell/rb-removable-media-manager.c:
5558         (rb_removable_media_manager_set_uimanager): fix compilation with
5559         -Werror and --enable-track-transfer.
5561 2006-04-26  James Livingston  <doclivingston@gmail.com>
5563         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5564         implementing class. In theory allows alternate player implementations
5565         to be selected at run-time rather than compile-time. Fixes bug 338667.
5567         * Makefile.am:
5568         * backends/Makefile.am:
5569         * backends/gstreamer/Makefile.am:
5570         * backends/gstreamer/rb-player-gst.h:
5571         * backends/rb-player.c: (rb_player_interface_init),
5572         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5573         (rb_player_close), (rb_player_play), (rb_player_pause),
5574         (rb_player_playing), (rb_player_set_volume),
5575         (rb_player_get_volume), (rb_player_set_replaygain),
5576         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5577         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5578         (_rb_player_emit_buffering), (_rb_player_emit_error),
5579         (_rb_player_emit_tick), (rb_player_error_quark):
5580         * player/Makefile.am:
5581         * player/rb-player-gst.c: (rb_player_gst_class_init),
5582         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5583         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5584         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5585         (process_tag), (found_tag_cb), (buffering_cb),
5586         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5587         (rb_player_gst_new):
5588         * player/rb-player.h:
5589         * shell/Makefile.am:
5590         * sources/rb-audiocd-source.c:
5591         * widgets/Makefile.am:
5592         * widgets/rb-header.c: (rb_header_class_init):
5594 2006-04-26  James Livingston  <doclivingston@gmail.com>
5596         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5597         don't try to download an episode if it couldn't be parsed. Fixes bug
5598         339712.
5600         * shell/rb-removable-media-manager.c:
5601         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5602         Library" option when track transfer is disabled. Fixes bug 339728.
5604 2006-04-26  James Livingston  <doclivingston@gmail.com>
5606         * data/ui/Makefile.am:
5607         * data/ui/daap-ui.xml:
5608         * data/ui/rhythmbox-ui.xml:
5609         * sources/rb-daap-source.c: (rb_daap_sources_init),
5610         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5611         way that the ipod ui is. Fixes bug 339743.
5613 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5615         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5616         (process_added_entries_cb), (process_deleted_entries_cb),
5617         (rhythmdb_commit_internal): 
5618         Combine the idle functions to emit entry-added and entry-deleted,
5619         and combine as many invocations of same as possible.  Another
5620         significant reduction in startup time.
5621         
5622         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5623         Delay the next call to rhythmdb_process_events if the queue is
5624         empty or if we can't process any of the events in the queue because
5625         the database is read only.
5627         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5629 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5631         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5633         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5634         Don't special case errors quite so much.
5636 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5638         * data/rhythmbox.schemas: Remove default speed.
5640         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5641         Add n-c-b 2.15 support.  Make the default speed to slowest since
5642         that is all that works reliably.
5644 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5646         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5647         Fix compiler error from last commit.
5649 2006-04-25  James Livingston  <doclivingston@gmail.com>
5651         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5652         transcoding-related issues. From bug 322268.
5654         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5655         don't emit the signal, since the object is being finalised, which os a
5656         Bad Thing To Do.
5658         (profile_bin_find_encoder), (get_profile_from_mime_type),
5659         (transcode_track): find the encoding element by iterating looking for
5660         element in the class Codec/Encoder/Audio rather than the one named
5661         "enc".
5663 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5665         * shell/rb-shell-player.xml:
5666         * shell/rb-shell.xml:
5667         Add signal argument information.  
5668         Patch by Tim Moloney  <t.moloney@verizon.net>
5670         * shell/rb-shell.c: (rb_shell_window_state_cb):
5671         Use the right value for the visibility_changed signal.  Most of the
5672         time, anyway.
5674 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5676         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5677         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5678         (impl_create_configure_dialog):
5679         * data/glade/audioscrobbler-prefs.glade:
5680         * shell/rb-audioscrobbler.c (*):
5681         * lib/rb-preferences.h:
5682         * data/rhythmbox.schemas:
5683         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5684         Add status information (# tracks submitted, # queued, last submit
5685         time, result of last submission) to the plugin config window.
5686         Remove 'enabled' setting, since it's easier to just disable the
5687         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5688         nonexistant (so far) 'last.fm streaming' plugin.
5689         
5690         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5691         plugin
5693         Fixes some of #325848.  We still don't provide a way to view the
5694         submission queue.
5696 2006-04-25  James Livingston  <doclivingston@gmail.com>
5698         patch by: Anders Petersson  <demitar@worldforge.org>
5700         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5701         the YY-MM-DD format.
5703 2006-04-23  James Livingston  <doclivingston@gmail.com>
5705         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5706         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5707         * bindings/python/override_common.h:
5708         * bindings/python/rb.override: python binding fixes
5710 2006-04-23  James Livingston  <doclivingston@gmail.com>
5712         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5713         (rb_statusbar_sync_with_source),
5714         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5715         callback, rather than immediately every time. Takes ~5% off my warm-cache
5716         startup time.
5718         * bindings/python/rhythmdb.defs: fix the types using for
5719         RhythmDBEntryTypes.
5721 2006-04-22  James Livingston  <doclivingston@gmail.com>
5723         * data/ui/rhythmbox-ui.xml:
5724         * shell/rb-shell.c:
5725         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5726         (remove_source), (rb_daap_sources_init),
5727         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5728         (rb_daap_source_disconnect):
5729         * sources/rb-source.c: (rb_source_class_init),
5730         (rb_source_deactivate):
5731         * sources/rb-source.h: move the "disconnect" functionality from into
5732         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5734 2006-04-22  James Livingston  <doclivingston@gmail.com>
5736         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5737         actually get the translated strings for browser headers (they were
5738         already marked as translatable). Fixes bug 339380.
5740 2006-04-22  James Livingston  <doclivingston@gmail.com>
5742         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5743         submission timeout when the object is finalised.
5745         * bindings/python/Makefile.am:
5746         * bindings/python/rb.defs:
5747         * bindings/python/rb.override:
5748         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5750         * widgets/rb-library-browser.c:
5751         (rb_library_browser_construct_query), (rebuild_output_model),
5752         (rebuild_child_model):
5753         * widgets/rb-library-browser.h: change from GPtrArray to
5754         RhythmDBQuery (which in C is the same thing).
5756 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5758         * shell/rb-shell.c: (rb_shell_get_song_properties):
5759         Don't try to include entry-type (or anything else not easily
5760         marshallable) in the song properties hash table.
5762         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5764         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5765         (rb_playlist_source_constructor): Fix entry-type initialization as
5766         with previous commit.
5768 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5770         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5771         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5772         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5773         (rb_podcast_source_constructor):
5774         Set default values for entry-type after base class construction,
5775         rather than in _init, because gobject will set the entry-type property
5776         to NULL after _init if no value is provided.  Fixes #339206.
5778 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5780         patch by: Gunnar Steinn Magnusson
5782         * COPYING:
5783         * backends/gstreamer/rb-encoder-gst.c:
5784         * backends/gstreamer/rb-encoder-gst.h:
5785         * backends/rb-encoder.c:
5786         * backends/rb-encoder.h:
5787         * bindings/python/override_common.c:
5788         * bindings/python/override_common.h:
5789         * daapsharing/rb-daap-connection.c:
5790         * daapsharing/rb-daap-connection.h:
5791         * daapsharing/rb-daap-dialog.c:
5792         * daapsharing/rb-daap-dialog.h:
5793         * daapsharing/rb-daap-mdns-browser-avahi.c:
5794         * daapsharing/rb-daap-mdns-browser-howl.c:
5795         * daapsharing/rb-daap-mdns-browser.h:
5796         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5797         * daapsharing/rb-daap-mdns-publisher-howl.c:
5798         * daapsharing/rb-daap-mdns-publisher.h:
5799         * daapsharing/rb-daap-share.c:
5800         * daapsharing/rb-daap-share.h:
5801         * daapsharing/rb-daap-sharing.c:
5802         * daapsharing/rb-daap-sharing.h:
5803         * daapsharing/rb-daap-src.c:
5804         * daapsharing/rb-daap-src.h:
5805         * daapsharing/rb-daap-structure.c:
5806         * daapsharing/rb-daap-structure.h:
5807         * help/C/fdl-appendix.xml:
5808         * help/es/es.po:
5809         * help/ja/fdl-appendix.xml:
5810         * iradio/rb-new-station-dialog.c:
5811         * iradio/rb-new-station-dialog.h:
5812         * iradio/rb-station-properties-dialog.c:
5813         * iradio/rb-station-properties-dialog.h:
5814         * lib/mkdtemp.c:
5815         * lib/mkdtemp.h:
5816         * lib/rb-cut-and-paste-code.c:
5817         * lib/rb-cut-and-paste-code.h:
5818         * lib/rb-debug.c:
5819         * lib/rb-debug.h:
5820         * lib/rb-file-helpers.c:
5821         * lib/rb-file-helpers.h:
5822         * lib/rb-glade-helpers.c:
5823         * lib/rb-glade-helpers.h:
5824         * lib/rb-preferences.h:
5825         * lib/rb-proxy-config.c:
5826         * lib/rb-stock-icons.c:
5827         * lib/rb-stock-icons.h:
5828         * lib/rb-thread.c:
5829         * lib/rb-thread.h:
5830         * lib/rb-tree-dnd.c:
5831         * lib/rb-tree-dnd.h:
5832         * lib/rb-util.c:
5833         * lib/rb-util.h:
5834         * metadata/rb-metadata-common.c:
5835         * metadata/rb-metadata-dbus-client.c:
5836         * metadata/rb-metadata-dbus-service.c:
5837         * metadata/rb-metadata-dbus.c:
5838         * metadata/rb-metadata-dbus.h:
5839         * metadata/rb-metadata-gst.c:
5840         * metadata/rb-metadata.h:
5841         * metadata/sj-error.c:
5842         * metadata/sj-error.h:
5843         * metadata/sj-metadata-musicbrainz.c:
5844         * metadata/sj-metadata-musicbrainz.h:
5845         * metadata/sj-metadata.c:
5846         * metadata/sj-metadata.h:
5847         * metadata/sj-structures.c:
5848         * metadata/sj-structures.h:
5849         * metadata/test-metadata.c:
5850         * player/rb-player-gst.c:
5851         * player/rb-player.h:
5852         * player/rb-recorder-gst.c:
5853         * player/rb-recorder.h:
5854         * plugins/artdisplay/artdisplay.py:
5855         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5856         * plugins/ipod/rb-ipod-plugin.c:
5857         * plugins/lirc/rb-lirc-plugin.c:
5858         * plugins/pythonconsole/pythonconsole.py:
5859         * plugins/rb-module.c:
5860         * plugins/rb-module.h:
5861         * plugins/rb-plugin-manager.c:
5862         * plugins/rb-plugin-manager.h:
5863         * plugins/rb-plugin.c:
5864         * plugins/rb-plugin.h:
5865         * plugins/rb-plugins-engine.c:
5866         * plugins/rb-plugins-engine.h:
5867         * plugins/rb-python-module.c:
5868         * plugins/rb-python-module.h:
5869         * plugins/rb-python-plugin.c:
5870         * plugins/rb-python-plugin.h:
5871         * plugins/sample/rb-sample-plugin.c:
5872         * po/de.po:
5873         * po/el.po:
5874         * po/en_CA.po:
5875         * po/eu.po:
5876         * po/fi.po:
5877         * po/fr.po:
5878         * po/it.po:
5879         * po/ja.po:
5880         * po/mk.po:
5881         * po/pt_BR.po:
5882         * po/ru.po:
5883         * podcast/rb-feed-podcast-properties-dialog.c:
5884         * podcast/rb-feed-podcast-properties-dialog.h:
5885         * podcast/rb-new-podcast-dialog.c:
5886         * podcast/rb-new-podcast-dialog.h:
5887         * podcast/rb-podcast-manager.c:
5888         * podcast/rb-podcast-manager.h:
5889         * podcast/rb-podcast-parse.c:
5890         * podcast/rb-podcast-parse.h:
5891         * podcast/rb-podcast-properties-dialog.c:
5892         * podcast/rb-podcast-properties-dialog.h:
5893         * remote/bonobo/libmain.c:
5894         * remote/bonobo/rb-nautilus-context-menu.c:
5895         * remote/bonobo/rb-nautilus-context-menu.h:
5896         * remote/bonobo/rb-remote-bonobo.c:
5897         * remote/bonobo/rb-remote-bonobo.h:
5898         * remote/rb-remote-client-proxy.c:
5899         * remote/rb-remote-client-proxy.h:
5900         * remote/rb-remote-common.c:
5901         * remote/rb-remote-common.h:
5902         * remote/rb-remote-proxy.c:
5903         * remote/rb-remote-proxy.h:
5904         * rhythmdb/gsequence.c:
5905         * rhythmdb/gsequence.h:
5906         * rhythmdb/rb-refstring.c:
5907         * rhythmdb/rb-refstring.h:
5908         * rhythmdb/rhythmdb-gda.c:
5909         * rhythmdb/rhythmdb-gda.h:
5910         * rhythmdb/rhythmdb-private.h:
5911         * rhythmdb/rhythmdb-property-model.c:
5912         * rhythmdb/rhythmdb-property-model.h:
5913         * rhythmdb/rhythmdb-query-model.c:
5914         * rhythmdb/rhythmdb-query-model.h:
5915         * rhythmdb/rhythmdb-query-results.c:
5916         * rhythmdb/rhythmdb-query-results.h:
5917         * rhythmdb/rhythmdb-tree.c:
5918         * rhythmdb/rhythmdb-tree.h:
5919         * rhythmdb/rhythmdb.c:
5920         * rhythmdb/rhythmdb.h:
5921         * shell/main.c:
5922         * shell/rb-audioscrobbler.c:
5923         * shell/rb-audioscrobbler.h:
5924         * shell/rb-history.c:
5925         * shell/rb-history.h:
5926         * shell/rb-play-order-linear-loop.c:
5927         * shell/rb-play-order-linear-loop.h:
5928         * shell/rb-play-order-linear.c:
5929         * shell/rb-play-order-linear.h:
5930         * shell/rb-play-order-queue.c:
5931         * shell/rb-play-order-queue.h:
5932         * shell/rb-play-order-random-by-age-and-rating.c:
5933         * shell/rb-play-order-random-by-age-and-rating.h:
5934         * shell/rb-play-order-random-by-age.c:
5935         * shell/rb-play-order-random-by-age.h:
5936         * shell/rb-play-order-random-by-rating.c:
5937         * shell/rb-play-order-random-by-rating.h:
5938         * shell/rb-play-order-random-equal-weights.c:
5939         * shell/rb-play-order-random-equal-weights.h:
5940         * shell/rb-play-order-random.c:
5941         * shell/rb-play-order-random.h:
5942         * shell/rb-play-order-shuffle.c:
5943         * shell/rb-play-order-shuffle.h:
5944         * shell/rb-play-order.c:
5945         * shell/rb-play-order.h:
5946         * shell/rb-playlist-manager.c:
5947         * shell/rb-playlist-manager.h:
5948         * shell/rb-removable-media-manager.c:
5949         * shell/rb-removable-media-manager.h:
5950         * shell/rb-shell-clipboard.c:
5951         * shell/rb-shell-clipboard.h:
5952         * shell/rb-shell-player.c:
5953         * shell/rb-shell-player.h:
5954         * shell/rb-shell-preferences.c:
5955         * shell/rb-shell-preferences.h:
5956         * shell/rb-shell.c:
5957         * shell/rb-shell.h:
5958         * shell/rb-source-header.c:
5959         * shell/rb-source-header.h:
5960         * shell/rb-statusbar.c:
5961         * shell/rb-statusbar.h:
5962         * shell/rb-tray-icon.c:
5963         * shell/rb-tray-icon.h:
5964         * sources/rb-audiocd-source.c:
5965         * sources/rb-audiocd-source.h:
5966         * sources/rb-auto-playlist-source.c:
5967         * sources/rb-auto-playlist-source.h:
5968         * sources/rb-browser-source.c:
5969         * sources/rb-browser-source.h:
5970         * sources/rb-daap-source.c:
5971         * sources/rb-daap-source.h:
5972         * sources/rb-generic-player-source.c:
5973         * sources/rb-generic-player-source.h:
5974         * sources/rb-import-errors-source.c:
5975         * sources/rb-import-errors-source.h:
5976         * sources/rb-ipod-source.c:
5977         * sources/rb-ipod-source.h:
5978         * sources/rb-iradio-source.c:
5979         * sources/rb-iradio-source.h:
5980         * sources/rb-library-source.c:
5981         * sources/rb-library-source.h:
5982         * sources/rb-missing-files-source.c:
5983         * sources/rb-missing-files-source.h:
5984         * sources/rb-nokia770-source.c:
5985         * sources/rb-nokia770-source.h:
5986         * sources/rb-play-queue-source.c:
5987         * sources/rb-play-queue-source.h:
5988         * sources/rb-playlist-source-recorder.c:
5989         * sources/rb-playlist-source-recorder.h:
5990         * sources/rb-playlist-source.c:
5991         * sources/rb-playlist-source.h:
5992         * sources/rb-playlist-xml.h:
5993         * sources/rb-podcast-source.c:
5994         * sources/rb-podcast-source.h:
5995         * sources/rb-psp-source.c:
5996         * sources/rb-psp-source.h:
5997         * sources/rb-removable-media-source.c:
5998         * sources/rb-removable-media-source.h:
5999         * sources/rb-source.c:
6000         * sources/rb-source.h:
6001         * sources/rb-sourcelist-model.c:
6002         * sources/rb-sourcelist-model.h:
6003         * sources/rb-sourcelist.c:
6004         * sources/rb-sourcelist.h:
6005         * sources/rb-static-playlist-source.c:
6006         * sources/rb-static-playlist-source.h:
6007         * tests/test-cd.c:
6008         * tests/test-cmdline.c:
6009         * tests/test-rhythmdb-indexing.c:
6010         * tests/test-rhythmdb-query.c:
6011         * tests/test-rhythmdb-simple.c:
6012         * tests/test-rhythmdb-tree-deserialization.c:
6013         * tests/test-rhythmdb-tree-serialization.c:
6014         * tests/test-rhythmdb-view.c:
6015         * widgets/bacon-volume.c:
6016         * widgets/bacon-volume.h:
6017         * widgets/disclosure-widget.c:
6018         * widgets/disclosure-widget.h:
6019         * widgets/eel-gconf-extensions.c:
6020         * widgets/eel-gconf-extensions.h:
6021         * widgets/eggtrayicon.c:
6022         * widgets/eggtrayicon.h:
6023         * widgets/libsexy/sexy-icon-entry.c:
6024         * widgets/libsexy/sexy-icon-entry.h:
6025         * widgets/rb-cell-renderer-pixbuf.c:
6026         * widgets/rb-cell-renderer-pixbuf.h:
6027         * widgets/rb-cell-renderer-rating.c:
6028         * widgets/rb-cell-renderer-rating.h:
6029         * widgets/rb-dialog.c:
6030         * widgets/rb-dialog.h:
6031         * widgets/rb-druid.c:
6032         * widgets/rb-druid.h:
6033         * widgets/rb-entry-view.c:
6034         * widgets/rb-entry-view.h:
6035         * widgets/rb-header.c:
6036         * widgets/rb-header.h:
6037         * widgets/rb-library-browser.c:
6038         * widgets/rb-library-browser.h:
6039         * widgets/rb-property-view.c:
6040         * widgets/rb-property-view.h:
6041         * widgets/rb-query-creator-private.h:
6042         * widgets/rb-query-creator-properties.c:
6043         * widgets/rb-query-creator.c:
6044         * widgets/rb-query-creator.h:
6045         * widgets/rb-rating-helper.c:
6046         * widgets/rb-rating-helper.h:
6047         * widgets/rb-rating.c:
6048         * widgets/rb-rating.h:
6049         * widgets/rb-search-entry.c:
6050         * widgets/rb-search-entry.h:
6051         * widgets/rb-song-display-box.c:
6052         * widgets/rb-song-display-box.h:
6053         * widgets/rb-song-info.c:
6054         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6056 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6058         patch by: Gareth Murphy, James Livingston
6060         * bindings/python/rb.defs:
6061         * configure.ac:
6062         * plugins/Makefile.am:
6063         * plugins/artdisplay/Makefile.am:
6064         * plugins/artdisplay/artdisplay.py:
6065         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6066         * plugins/rb-python-module.c: (rb_python_module_init_python):
6067         * shell/rb-shell.c: (construct_widgets),
6068         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6069         (rb_shell_add_widget), (rb_shell_remove_widget),
6070         (rb_shell_ui_location_get_type):
6071         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6073 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6075         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6076         Fix build failure caused by the combination of the previous two
6077         commits.
6079 2006-04-20  James Livingston  <doclivingston@gmail.com>
6081         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6082         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6083         table to the entry types, which will allow us to get rid of some of
6084         the "if entry type == WHATEVER" code everywhere. From bug 
6086         * bindings/python/rb.defs:
6087         * bindings/python/rb.override:
6088         * bindings/python/rhythmdb.defs:
6089         * bindings/python/rhythmdb.override:
6090         * daapsharing/rb-daap-connection.c:
6091         (rb_daap_connection_class_init), (rb_daap_connection_init),
6092         (rb_daap_connection_set_property),
6093         (rb_daap_connection_get_property):
6094         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6095         * podcast/rb-podcast-manager.c:
6096         (rb_podcast_manager_entry_downloaded),
6097         (rb_podcast_manager_subscribe_feed),
6098         (rb_podcast_manager_db_entry_added_cb),
6099         (rb_podcast_manager_db_entry_deleted_cb),
6100         (rb_podcast_manager_insert_feed):
6101         * rhythmdb/rhythmdb-private.h:
6102         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6103         (conjunctive_query):
6104         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6105         (process_added_entries_cb), (rhythmdb_entry_allocate),
6106         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6107         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6108         (rhythmdb_process_metadata_load),
6109         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6110         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6111         (write_encoded_gvalue), (read_encoded_property),
6112         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6113         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6114         (rhythmdb_entry_iradio_get_type),
6115         (rhythmdb_entry_podcast_post_get_type),
6116         (rhythmdb_entry_podcast_feed_get_type),
6117         (rhythmdb_entry_import_error_get_type),
6118         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6119         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6120         (rhythmdb_entry_type_get_type):
6121         * rhythmdb/rhythmdb.h:
6122         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6123         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6124         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6125         (rb_shell_player_entry_activated_cb), (info_available_cb):
6126         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6127         (rb_shell_register_entry_type_for_source),
6128         (rb_shell_playing_from_queue_cb),
6129         (rb_shell_playing_entry_changed_cb),
6130         (rb_shell_player_stream_song_changed_cb),
6131         (rb_shell_jump_to_entry_with_source),
6132         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6133         (handle_playlist_entry_cb), (rb_shell_load_uri):
6134         * shell/rb-shell.h:
6135         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6136         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6137         (rb_browser_source_init), (rb_browser_source_set_property),
6138         (rb_browser_source_get_property):
6139         * sources/rb-ipod-source.c: (impl_paste):
6140         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6141         (rb_iradio_source_init), (rb_iradio_source_set_property),
6142         (rb_iradio_source_get_property):
6143         * sources/rb-library-source.c: (impl_paste):
6144         * sources/rb-missing-files-source.c:
6145         (rb_missing_files_source_class_init),
6146         (rb_missing_files_source_init),
6147         (rb_missing_files_source_set_property),
6148         (rb_missing_files_source_get_property):
6149         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6150         (rb_playlist_source_init), (rb_playlist_source_set_property),
6151         (rb_playlist_source_get_property):
6152         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6153         (rb_podcast_source_init), (rb_podcast_source_set_property),
6154         (rb_podcast_source_get_property):
6155         * sources/rb-static-playlist-source.c:
6156         (rb_static_playlist_source_add_location_internal):
6158 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6160         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6161         (rhythmdb_add_import_error_entry),
6162         (entry_volume_mounted_or_unmounted),
6163         (rhythmdb_volume_unmounted_cb):
6164         When a volume is unmounted, delete import errors for files stored on
6165         it.  When a volume is mounted, stat all tracks stored on it, rather
6166         than assuming they're present.  Fixes #339023.
6168 2006-04-20  James Livingston  <doclivingston@gmail.com>
6170         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6171         browser visibility for non-gconf-using sources (like playlists). Part
6172         of bug 118862.
6174         * shell/rb-source-header.c: (sourcestate_free),
6175         (rb_source_header_init), (rb_source_header_finalize),
6176         (rb_source_header_source_weak_destroy_cb): switch from storing the
6177         search string to storing a "source state" structure
6179         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6180         (rb_source_header_search_cb), (rb_source_header_clear_search),
6181         (rb_source_header_disclosure_toggled_cb): as well as storing the
6182         string, stop the visibility of the source's browser.
6184 2006-04-20  James Livingston  <doclivingston@gmail.com>
6186         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6187         library entries back into the library. Fixes bug 339065.
6189 2006-04-20  James Livingston  <doclivingston@gmail.com>
6191         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6192         only exists in glib 2.10.
6194 2006-04-20  James Livingston  <doclivingston@gmail.com>
6196         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6197         Solaris. From bug 335318.
6199         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6200         * shell/rb-audioscrobbler.c:
6201         * sources/rb-psp-source.c:
6203 2006-04-20  James Livingston  <doclivingston@gmail.com>
6205         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6206         issues for some people.
6208         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6209         accidental s/suffix/prefix/
6211         * sources/rb-auto-playlist-source.c:
6212         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6213         you from sorting playlists which aren't limited by time.
6215 2006-04-19  James Livingston  <doclivingston@gmail.com>
6217         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6218         duration or bitrate back to the file, since they are properties of the
6219         audio data, not tags we can set.
6221 2006-04-19  James Livingston  <doclivingston@gmail.com>
6223         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6224         of libtool, to fix builds which are using a different version. Fixes
6225         bug 338996.
6227         * shell/Makefile.am:
6229 2006-04-19  James Livingston  <doclivingston@gmail.com>
6231         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6232         to sync data to a file which is uneditable.
6234 2006-04-19  James Livingston  <doclivingston@gmail.com>
6236         patch by: Gavin Stewart  <gavin@brokentrain.net>
6238         * data/glade/playlist-save.glade:
6239         * data/glade/Makefile.am:
6240         * po/POTFILES.in: add the playlist saving dialog.
6242         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6243         (export_set_extension_cb), (filter_get_export_filter_label),
6244         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6245         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6246         formats (PLS and M3U at the moment). Fixes bug 316295.
6248 2006-04-19  James Livingston  <doclivingston@gmail.com>
6250         * shell/rb-playlist-manager.c:
6251         (rb_playlist_manager_set_source_internal): don't let you edit remove
6252         auto playlists.
6254         * sources/rb-auto-playlist-source.c:
6255         (rb_auto_playlist_source_set_query): correctly handle time-limited
6256         playlists.
6258 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6260         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6262         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6263         Don't crash if the queue file contains no newlines.
6264         Fixes #338924.
6266 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6268         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6269         condition
6271 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6273         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6274         case. Moreover, they may not exist yet, so take that into account when
6275         generating the iPod filename.
6277 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6279         * sources/rb-ipod-source.c: added support for drag and drop from the
6280         library to the iPod (only enabled if --enable-track-transfer was
6281         passed to configure)
6283 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6285         * configure.ac:
6286         * lib/rb-marshal.list:
6287         * lib/rb-util.c: 
6288         * lib/rb-util.h:
6289         * plugins/Makefile.am:
6290         * plugins/ipod/Makefile.am:
6291         * plugins/ipod/ipod.rb-plugin.desktop.in:
6292         * plugins/ipod/rb-ipod-plugin.c: 
6293         * plugins/rb-plugin.h:
6294         * shell/Makefile.am:
6295         * shell/rb-removable-media-manager.c:
6296         * shell/rb-removable-media-manager.h:
6297         * shell/rb-shell.c: 
6298         * sources/Makefile.am:
6299         * sources/rb-ipod-source.c: 
6300         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6301         various iPod related files should be moved to plugins/ipod/ now...
6303 2006-04-17  James Livingston  <doclivingston@gmail.com>
6305         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6306         and "vic".
6308         * help/C/figures/rb-iradio-main.png:
6309         * help/C/figures/rb-notification-area-menu.png:
6310         * help/C/figures/rb-notification-window.png:
6311         * help/C/figures/rb-notification-zone.png:
6312         * help/C/figures/rb-podcast-main.png:
6313         * help/C/figures/rb-statusbar.png:
6314         * help/C/figures/rb-volume-changer.png:
6315         * help/C/figures/rb-window-small.png:
6316         * help/C/figures/rb-window.png:
6317         * help/C/rhythmbox.xml:
6319 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6321         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6322         more obviously.
6324         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6325         (make_undecodable_error), (rb_metadata_gst_error_cb),
6326         (rb_metadata_gst_new_decoded_pad_cb),
6327         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6328         Ignore really small files (<4kB) for which typefinding fails.
6329         Always link decoded pads from decodebin to fakesink.
6330         Shut the pipeline down by posting an error on the bus when decodebin
6331         emits unknown-type signals.  Fixes bug #338062.
6333 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6335         * shell/rb-shell.c: (rb_shell_load_uri):
6336         Fix glaring mistakes in previous commit: actually pass arguments to
6337         rb_debug, and specify the right entry type when adding a new iradio
6338         station so we don't try to add local playlist files to the library.
6340 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6342         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6343         before trying to add them, as iradio streams often fail rb_uri_exists().
6345         * shell/rb-shell-player.c: (notify_playing_idle),
6346         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6347         (open_location_thread), (rb_shell_player_open_location),
6348         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6349         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6350         of all the stream URLs, and try them in turn.  If we get through the
6351         whole playlist too quickly, error out.  Various other fixes that make
6352         iradio work a lot better.
6354         * shell/rb-shell.c: (add_to_library_response_cb),
6355         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6356         (handle_playlist_entry_cb), (rb_shell_load_uri):
6357         Add playlists containing streams as iradio stations.  If the playlist
6358         is local, add each stream URL, but if the playlist is remote, just add
6359         the playlist URL.
6360         
6361         * sources/rb-iradio-source.c: (new_station_location_added):
6362         Add new station URLs as-is, rather than parsing the playlist and
6363         adding the streams.
6364         
6365         * rhythmdb/rhythmdb-query-model.c:
6366         (rhythmdb_query_model_entry_changed_cb),
6367         (rhythmdb_query_model_emit_reorder),
6368         (rhythmdb_query_model_do_reorder):
6369         Emit row-changed notifications when an entry changes but is not
6370         reordered.
6372         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6373         Display the playback error icon when the entry has an error and
6374         there's nothing else to display.
6375         
6376         Fixes bug #320336 and some of #324402.
6377         
6378 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6380         * sources/rb-ipod-source.c: use a GHashTable for the
6381         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6382         time, this fixes compilation breakage for people not having libgpod
6383         CVS HEAD
6385 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6387         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6389         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6390         (rb_podcast_manager_insert_feed):
6391         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6392         fixes bug 321945
6394 2006-04-16  James Livingston  <doclivingston@gmail.com>
6396         * sources/rb-library-source.c:
6397         (rb_library_source_library_location_cb): return FALSE like we are
6398         supposed to, not void.
6400         patch by: FreeBSD GNOME Project
6401         * configure.ac: fix some bash-isms.
6403         patch by: Pawel Worach  <pawel.worach@gmail.com>
6404         * metadata/rb-metadata-dbus-client.c:
6405         * rhythmdb/rhythmdb-query-model.c:
6406         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6409 2006-04-16  James Livingston  <doclivingston@gmail.com>
6411         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6412         for transcoding to RBEncoderGst.
6414         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6415         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6416         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6417         (add_decoding_pipeline), (encoder_match_mime),
6418         (get_profile_from_mime_type), (extract_track), (transcode_track),
6419         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6421 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6423         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6424         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6425         load_ipod_db_idle_cb to a new separate function
6427 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6429         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6430         source
6432 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6434         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6435         variables
6437 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6439         * data/ui/Makefile.am:
6440         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6441         menu
6442         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6443         NULL before using it as a popup menu
6444         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6445         'eject' an iPod
6447 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6449         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6450         iPod, check if it contains an iPod database before using it (in case
6451         the iPod was repartitionned somehow). Should fix bug #325034
6453 2006-04-16  Steve Frécinaux  <steve@istique.net>
6455         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6457         * data/Makefile.am: install application icon into the default theme.
6459         * data/rhythmbox.desktop.in: don't specify icon file extension.
6460         
6461         * shell/main.c: (main): set default window icon from theme.
6462         
6463         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6464         code concerning window icon, and fix leak by unreferencing the about
6465         logo pixbuf once it's not used anymore.
6467 2006-04-16  James Livingston  <doclivingston@gmail.com>
6469         * configure.ac: bump version to 0.9.4
6470         * NEWS: update NEWS and 0.9.4 insert translations
6472 2006-04-16  James Livingston  <doclivingston@gmail.com>
6474         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6475         namespace automatically.
6477 2006-04-16  James Livingston  <doclivingston@gmail.com>
6479         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6481         * doc/reference/Makefile.am:
6482         * doc/reference/rhythmbox.types: make distcheck work again
6484         * doc/reference/tmpl/eggnotificationbubble.sgml:
6485         * doc/reference/tmpl/eggtrayicon.sgml:
6486         * doc/reference/tmpl/rb-debug.sgml:
6487         * doc/reference/tmpl/rb-entry-view.sgml:
6488         * doc/reference/tmpl/rb-enums.sgml:
6489         * doc/reference/tmpl/rb-metadata.sgml:
6490         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6491         * doc/reference/tmpl/rb-playlist-manager.sgml:
6492         * doc/reference/tmpl/rb-refstring.sgml:
6493         * doc/reference/tmpl/rb-shell-player.sgml:
6494         * doc/reference/tmpl/rb-shell-preferences.sgml:
6495         * doc/reference/tmpl/rb-shell.sgml:
6496         * doc/reference/tmpl/rb-song-info.sgml:
6497         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6498         * doc/reference/tmpl/rb-statusbar.sgml:
6499         * doc/reference/tmpl/rhythmbox-unused.sgml:
6500         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6501         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6503 2006-04-16  James Livingston  <doclivingston@gmail.com>
6505         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6507         * po/LINGUAS: don't split the variable across two lines, as it breaks
6508         the build. Fixes bug 338625.
6510 2006-04-15  James Livingston  <doclivingston@gmail.com>
6512         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6513         add a "sourcelist-model" gobject property.
6515 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6517         * .cvsignore:
6518         * backends/.cvsignore:
6519         * backends/gstreamer/.cvsignore:
6520         * bindings/.cvsignore:
6521         * bindings/python/.cvsignore:
6522         * help/es/.cvsignore:
6523         * metadata/.cvsignore:
6524         * plugins/.cvsignore:
6525         * plugins/audioscrobbler/.cvsignore:
6526         * plugins/lirc/.cvsignore:
6527         * plugins/pythonconsole/.cvsignore:
6528         * plugins/sample-python/.cvsignore:
6529         * plugins/sample/.cvsignore:
6530         * shell/.cvsignore:
6531         * widgets/libsexy/.cvsignore:
6532         Make CVS ignore files.
6534 2006-04-14  James Livingston  <doclivingston@gmail.com>
6536         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6537         the track-loading thread hold a reference on the source, so it doesn't
6538         explode if the cd is removed before it is done. Fixes bug 337237.
6540 2006-04-14  James Livingston  <doclivingston@gmail.com>
6542         * bindings/python/override_common.c:
6543         (_helper_unwrap_pointer_pylist):
6544         * bindings/python/override_common.h:
6545         * bindings/python/rb.override:
6546         * bindings/python/rhythmdb.override: Bind some more functions and
6547         virtual functions.
6549         * shell/rb-shell.c: (rb_shell_select_source):
6550         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6551         * sources/rb-audiocd-source.c:
6552         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6553         * sources/rb-browser-source.c: (impl_get_search_actions):
6554         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6555         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6556         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6557         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6558         (impl_get_search_actions):
6559         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6560         the impl_get_ui_actions and impl_get_search_actions functions return
6561         lists that contain copies of the strings, instead of constant ones.
6562         Needed to bindings
6564 2006-04-14  James Livingston  <doclivingston@gmail.com>
6566         * bindings/python/rhythmdb.defs:
6567         * bindings/python/rhythmdb.override: fix the method argument format
6568         specifiers.
6570 2006-04-14  James Livingston  <doclivingston@gmail.com>
6572         * bindings/python/rhythmdb.defs:
6573         * bindings/python/rhythmdb.override:
6574         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6575         (entry_to_rb_metadata), (record_entry_change),
6576         (rhythmdb_entry_set_visibility):
6577         * rhythmdb/rhythmdb.h:
6578         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6579         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6580         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6581         since they are used in too many places, and not in the Python
6582         bindings.
6584 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6586         * lib/rb-debug.c: (_rb_profile_log):
6587         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6588         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6589         * shell/main.c: (main):
6590         * shell/rb-shell.c: (rb_shell_constructor),
6591         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6592         (rb_shell_present):
6593         Fix profile output indentation.  Add more profiling points.
6594         Fixes part of #338114
6596 2006-04-13  James Livingston  <doclivingston@gmail.com>
6598         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6599         library source being deleted, by setting the active source to NULL.
6600         From bug 338116.
6602 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6604         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6605         Update the last-seen string when hiddenness changes.
6607 2006-04-12  James Livingston  <doclivingston@gmail.com>
6609         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6610         which caused the first-seen time to be reset when a metadata load was
6611         done. Fixes bug 336874.
6613         * shell/rb-shell.h: remove old function declaration.
6615         * bindings/python/rhythmdb.defs:
6616         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6618 2006-04-11  James Livingston  <doclivingston@gmail.com>
6620         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6621         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6622         interaction. Fixes bug 337999.
6624 2006-04-11  James Livingston  <doclivingston@gmail.com>
6626         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6627         track transfer. Fixes bug 338056.
6629         * shell/Makefile.am:
6631 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6633         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6635 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6637         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6638         (_rb_profile_log):
6639         * lib/rb-debug.h:
6640         * shell/rb-shell.c: (construct_db), (construct_widgets),
6641         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6642         Add profiling.  Fixes #337387
6644 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6646         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6647         * widgets/rb-header.c:
6648         Use italics for artist and album. Fixes #336748
6650 2006-04-10  James Livingston  <doclivingston@gmail.com>
6652         * Makefile.am:
6653         * backends/gstreamer/Makefile.am:
6654         * configure.ac:
6655         * data/glade/library-prefs.glade:
6656         * shell/Makefile.am:
6657         * shell/rb-removable-media-manager.c:
6658         * shell/rb-removable-media-manager.h:
6659         * sources/Makefile.am:
6660         * sources/rb-audiocd-source.c:
6661         * sources/rb-library-source.c: (rb_library_source_class_init),
6662         (rb_library_source_finalize), (impl_get_config_widget),
6663         (rb_library_source_preferences_sync), (impl_can_paste): add a
6664         --enable-track-transfer configure option, abd make cd ripping disabled
6665         by default.
6667         * shell/rb-source-header.c:
6668         * sources/rb-source.c: (rb_source_class_init),
6669         (rb_source_delete_thyself), (default_get_entry_view):
6670         * lib/rb-glade-helpers.c:
6671         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6672         some compiler warnings, and also bug 337427.
6674 2006-04-10  James Livingston  <doclivingston@gmail.com>
6676         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6677         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6678         if the gconf key is missing. Fixes bug 337742.
6680 2006-04-10  James Livingston  <doclivingston@gmail.com>
6682         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6683         to fix build problems I caused with a commit yesterday. Fixed bug
6684         337806.
6686         * daapsharing/rb-daap-mdns-browser-howl.c:
6687         (rb_daap_mdns_browser_class_init):
6688         * podcast/Makefile.am:
6689         * rhythmdb/Makefile.am:
6690         * widgets/eggtrayicon.h:
6692 2006-04-09  Steve Frécinaux  <steve@istique.net>
6694         * configure.ac:
6695         * po/LINGUAS:
6696         
6697         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6698         translators' life easier.
6700 2006-04-09  James Livingston  <doclivingston@gmail.com>
6702         * bindings/python/rb.defs:
6703         * bindings/python/rb.override: add bindings for most RBSource virtual
6704         functions.
6706         * sources/rb-source.h:
6707         * sources/rb-source.c: (rb_source_class_init): make
6708         impl_get_browser_key return a non-consht string, since Python can't
6709         really give us constant strings.
6711         * shell/rb-source-header.c: (rb_source_header_finalize),
6712         (rb_source_header_set_source_internal):
6713         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6714         * sources/rb-iradio-source.c: (impl_get_browser_key):
6715         * sources/rb-library-source.c: (impl_get_browser_key):
6716         * sources/rb-playlist-source.c:
6717         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6718         (rb_browser_source_state_prefs_sync):
6719         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6720         above change.
6722         * plugins/sample-python/sample-python.py: show how to add a new
6723         source.
6725 2006-04-09  James Livingston  <doclivingston@gmail.com>
6727         * daapsharing/Makefile.am:
6728         * daapsharing/rb-daap-connection.c:
6729         (rb_daap_connection_class_init):
6730         * daapsharing/rb-daap-marshal.list:
6731         * daapsharing/rb-daap-mdns-browser-avahi.c:
6732         (rb_daap_mdns_browser_class_init):
6733         * lib/rb-marshal.list:
6734         * player/Makefile.am:
6735         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6736         * player/rb-recorder-marshal.list:
6737         * podcast/Makefile.am:
6738         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6739         * podcast/rb-podcast-marshal.list:
6740         * rhythmdb/Makefile.am:
6741         * rhythmdb/rhythmdb-marshal.list:
6742         * rhythmdb/rhythmdb-query-model.c:
6743         (rhythmdb_query_model_class_init):
6744         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6745         into one file, as there is no point having several of them.
6747 2006-04-09  James Livingston  <doclivingston@gmail.com>
6749         * lib/Makefile.am:
6750         * lib/rb-enums.h:
6751         * widgets/Makefile.am:
6752         * widgets/eggnotificationbubble.c:
6753         * widgets/eggnotificationbubble.h:
6754         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6755         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6757         * rhythmdb/rhythmdb-property-model.h:
6758         * rhythmdb/rhythmdb-query-model.h:
6759         * rhythmdb/rhythmdb.h:
6760         * shell/rb-playlist-manager.h:
6761         * widgets/rb-cell-renderer-pixbuf.h:
6762         * widgets/rb-cell-renderer-rating.h:
6763         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6765 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6767         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6768         so we can build without a system-wide installed copy.
6770 2006-04-09  James Livingston  <doclivingston@gmail.com>
6772         * data/glade/general-prefs.glade:
6773         * data/rhythmbox.schemas:
6774         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6775         (rb_combo_box_hyphen_separator_func):
6776         * lib/rb-glade-helpers.h:
6777         * lib/rb-preferences.h:
6778         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6779         (rb_shell_preferences_sync),
6780         (rb_shell_preferences_toolbar_style_cb),
6781         (rb_shell_preferences_browser_views_activated_cb):
6782         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6783         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6784         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6786 2006-04-09  James Livingston  <doclivingston@gmail.com>
6788         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6789         data that MusicBrainz returns to us. Last part of bug 334167.
6791 2006-04-09  James Livingston  <doclivingston@gmail.com>
6793         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6794         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6796 2006-04-09  James Livingston  <doclivingston@gmail.com>
6798         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6799         the entry view properly when the rows are reordered. Fixes bug 337019.
6801 2006-04-09  James Livingston  <doclivingston@gmail.com>
6803         * configure.ac:
6804         * widgets/Makefile.am:
6805         * widgets/libsexy/Makefile.am:
6806         * widgets/libsexy/sexy-icon-entry.c:
6807         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6808         libsexy, and allow building against it or a system-wide installed
6809         copy.
6812         * widgets/rb-search-entry.c: (rb_search_entry_init),
6813         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6814         search box. Fixes bug 128109.
6816 2006-04-09  James Livingston  <doclivingston@gmail.com>
6818         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6820         * widgets/rb-entry-view.c: (rb_entry_view_init),
6821         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6822         and Pause icons rather than the volume ones in the Now Playing column.
6823         Closes bug 336482.
6825 2006-04-08  James Livingston  <doclivingston@gmail.com>
6827         * bindings/python/override_common.h:
6828         * bindings/python/rb.override:
6829         * bindings/python/rhythmdb.override: bind some more functions 
6831 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6833         * metadata/rb-metadata-dbus-service.c: (_send_error):
6834         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6835         are sent properly and we don't get 'method doesn't exist' messages
6836         from dbus instead.
6838 2006-04-08  James Livingston  <doclivingston@gmail.com>
6840         * bindings/python/override_common.h:
6841         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6842         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6843         more utility functions for C<->Python conversions
6845         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6846         (rb_entry_view_state_get_type):
6847         * widgets/rb-entry-view.h: make the colume type and entry view state
6848         GTypes
6850         * bindings/python/Makefile.am:
6851         * bindings/python/rb.defs:
6852         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6853         RBSource.
6855 2006-04-08  James Livingston  <doclivingston@gmail.com>
6857         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6858         initialiser for a GError
6860         * sources/rb-source.c: (rb_source_eof_type_get_type):
6861         * sources/rb-source.h: add a GType for RBSourceEOFType
6863         * bindings/python/Makefile.am:
6864         * bindings/python/rb.defs:
6865         * bindings/python/rb.override: bind RBSource and RBSourceList
6867 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6869         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6870         (rb_shell_player_get_property),
6871         (rb_shell_player_get_active_source),
6872         (rb_shell_player_set_playing_source_internal):
6873         * shell/rb-shell-player.h:
6874         Change 'playing-from-queue' from being a signal to being a property.
6876         * shell/rb-shell.c: (rb_shell_constructor),
6877         (rb_shell_playing_from_queue_cb),
6878         (rb_shell_view_queue_as_sidebar_changed_cb),
6879         (rb_shell_jump_to_entry_with_source):
6880         When the queue side pane is used, make 'jump to current' jump to the
6881         entry in the registered source for its type, rather than in the queue,
6882         and show it as playing in that source.
6883         
6884         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6885         * sources/rb-sourcelist.h:
6886         Remove the 'preempted source' stuff, since it wasn't doing anything
6887         anyway.
6889 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6891         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6892         (download_progress_cb): Canonicalise downloaded file location before
6893         setting the mountpoint property of the corresponding entry.
6894         Fixes #337287 and a couple of memory leaks.
6896 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6898         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6899         (test_load), (main): Call g_set_prgname, report errors more
6900         usefully in test mode.
6901         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6902         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6903         files.  Run the event loop when the state change fails so we get the
6904         error messages from the bus.  Fixes #336921.
6906 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6908         * data/art/Makefile.am: Install media-eject.
6910         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6911         return value of rb_file.
6913         Fixes #337209
6915 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6917         Patch by: William Jon McCann  <mccann@jhu.edu>
6919         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6920         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6921         Fix GError leak.
6923 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6925         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6926         Don't try to add a date when we don't have one.  Fixes #336741.
6928         Also fix variable declaration in middle of block.
6930 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6932         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6933         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6935 2006-04-02  James Livingston  <doclivingston@gmail.com>
6937         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6938         inverted logic causing imports to fail.
6940 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6942         * shell/main.c: (main): Fix dbusless build.
6944 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6946         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6947         wav header for non-gcc compilers (not tested much, was only written
6948         according to docs)
6950 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6952         * shell/main.c: (main): Check if we got a dbus connection before
6953         trying to create a proxy for the shell object.  Fixes #336634.
6955 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6957         * doc/reference/Makefile.am:
6958         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6959         * shell/rb-source-header.c:
6960         * sources/rb-generic-player-source.c:
6961         (default_transform_playlist_uri):
6962         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6963         <alexl@users.sourceforge.net>
6965 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6967         * configure.ac: Detect LIRC.
6968         
6969         * plugins/Makefile.am:
6970         * plugins/lirc/Makefile.am:
6971         * plugins/lirc/lirc.rb-plugin.desktop.in:
6972         * plugins/lirc/rb-lirc-plugin.c:
6973         LIRC plugin.
6975         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6976         Remove obsolete files.
6978 2006-04-02  James Livingston  <doclivingston@gmail.com>
6980         * sources/rb-generic-player-source.c:
6981         (default_transform_playlist_uri): consider playlist paths as relative
6982         to the volume root by default, since that is what most players use.
6984 2006-04-02  James Livingston  <doclivingston@gmail.com>
6986         * lib/rb-util.c: (rb_mime_get_friendly_name):
6987         * lib/rb-util.h: add helper function to get the "friendly" name for a
6988         mime-type
6990         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6991         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6992         the user better error messages about undecodable streams, using the
6993         "friendly" name if possible. Fixes bug 128109.
6995 2006-04-02  James Livingston  <doclivingston@gmail.com>
6997         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6998         (start_pipeline): fix building with gstreamer 0.8
7000 2006-04-02  James Livingston  <doclivingston@gmail.com>
7002         * sources/rb-podcast-source.c: (impl_delete),
7003         (rb_podcast_source_cmd_delete_feed),
7004         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7005         it, since it may change during traversal. Fixes bug 336204.
7007 2006-04-01  James Livingston  <doclivingston@gmail.com>
7009         * data/art/media-eject.png: add the media-eject icon from Banshee
7010         (BSD-licensed), for use when the user's icon theme doesn't have one.
7012         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7013         bug 334897.
7015 2006-04-01  James Livingston  <doclivingston@gmail.com>
7017         * shell/rb-shell-player.h:
7018         * shell/rb-shell-player.c: (rb_shell_player_play),
7019         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7020         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7021         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7023         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7024         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7025         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7027         * bindings/python/rb.defs: bind the above to Python, and remove some
7028         useless stuff from the bindings.
7030 2006-04-01  James Livingston  <doclivingston@gmail.com>
7032         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7033         number tag.
7035         * shell/rb-shell.c:
7036         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7038         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7039         to true.
7041         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7042         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7043         method assigning, so it's understandable
7045         * sources/rb-library-source.c: (rb_library_source_class_init),
7046         (impl_paste): rather than hard-coding the types to ignore, use
7047         rb_source_can_copy.
7049 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7051         * sources/rb-library-source.c:
7052         (rb_library_source_preferences_sync):
7053         Don't crash if no audio profile is selected and the gconf schemas are 
7054         not installed.
7056 2006-03-31  James Livingston  <doclivingston@gmail.com>
7058         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7059         "*" which caused compilation to fail
7061 2006-03-31  James Livingston  <doclivingston@gmail.com>
7063         * configure.ac:
7064         * Makefile.am:
7065         * backends/Makefile.am:
7066         * backends/gstreamer/Makefile.am:
7067         * backends/gstreamer/rb-encoder-gst.c:
7068         * backends/gstreamer/rb-encoder-gst.h:
7069         * backends/rb-encoder.c:
7070         * backends/rb-encoder.h: add a interface for transcoding, and a
7071         GStreamer implementation of it (based on Sound-Juicer's code).
7073         * shell/Makefile.am:
7074         * shell/rb-removable-media-manager.c:
7075         (rb_removable_media_manager_class_init),
7076         (rb_removable_media_manager_init),
7077         (rb_removable_media_manager_dispose),
7078         (rb_removable_media_manager_finalize),
7079         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7080         (progress_cb), (completed_cb), (do_transfer),
7081         (rb_removable_media_manager_queue_transfer), (copy_entry),
7082         (rb_removable_media_manager_cmd_copy_tracks):
7083         * shell/rb-removable-media-manager.h: use the encoder interface to
7084         perform transfers of entries to other locations
7086         * shell/rb-shell-player.c: (open_location_thread):
7087         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7088         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7089         (rb_shell_quit):
7090         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7091         progress in the status bar.
7093         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7094         (rb_shell_preferences_sync),
7095         (rb_shell_preferences_browser_views_activated_cb):
7096         * data/glade/general-prefs.glade: move the browser views setting from
7097         the library tab to the general one.
7099         * data/glade/library-prefs.glade: add settings for the layout of the
7100         user's library, and their preferred encoding format (e.g. for CD
7101         ripping).
7103         * lib/rb-preferences.h:
7104         * data/rhythmbox.schemas: add keys for the above options (and a few
7105         other minor ones)
7107         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7108         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7109         entry, that isn't inserted into the database.
7111         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7112         (rb_audiocd_create_track_entry):
7113         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7114         cds, and set the mime-type of audio cd tracks correctly.
7116         * sources/rb-library-source.c: (rb_library_source_class_init),
7117         (rb_library_source_finalize),
7118         (rb_library_source_edit_profile_clicked_cb),
7119         (impl_get_config_widget), (rb_library_source_preferences_sync),
7120         (impl_receive_drag), (rb_library_source_path_changed_cb),
7121         (rb_library_source_filename_changed_cb),
7122         (rb_library_source_format_changed_cb), (sanitize_path),
7123         (filepath_parse_pattern), (layout_example_label_update),
7124         (rb_library_source_layout_path_changed),
7125         (rb_library_source_layout_filename_changed), (build_filename),
7126         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7127         entries to the library. Large chunks of code for determining the
7128         destination file name stolen from Sound-Juicer.
7130         * sources/rb-sourcelist-model.c: (path_is_droppable):
7131         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7132         * sources/rb-static-playlist-source.c:
7133         (rb_static_playlist_source_class_init):
7134         * sources/rb-removable-media-source.c:
7135         (rb_removable_media_source_class_init):
7136         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7137         (rb_source_can_paste):
7138         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7139         than _can_copy) to determine whether we can paste into the source.
7142 2006-03-31  Steve Frécinaux  <steve@istique.net>
7144         * plugins/rb-python-module.c: allow import of python modules with a '.'
7145         (gedit's bug 336403). Patch by Johan Dahlin.
7147 2006-03-31  James Livingston  <doclivingston@gmail.com>
7149         * sources/rb-library-source.c: 
7150         * sources/rb-library-source.h:
7151         * sources/rb-browser-source.c:
7152         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7153         RBBrowserSource now contains all the stuff for having a source which
7154         views a particular entry type (including browsers and searching).
7155         RBLibrarySource derives from this, and includes the library-specific
7156         stuff, like importing and library watching. Fixes some issues where
7157         library-derived sources were doing things that should be
7158         library-specific. Fixes bug 335185.
7160         * data/ui/rhythmbox-ui.xml:
7161         * sources/Makefile.am: modifications for the above
7163         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7164         (rb_daap_source_get_paned_key):
7165         * sources/rb-daap-source.h:
7166         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7167         * sources/rb-removable-media-source.c:
7168         (rb_removable_media_source_class_init):
7169         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7170         instead of RBLibrarySource.
7172 2006-03-31  James Livingston  <doclivingston@gmail.com>
7174         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7175         I buggered up when changing from GnomeVFSFileSize.
7177 2006-03-30  James Livingston  <doclivingston@gmail.com>
7179         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7180         for "-Wno-error".
7182         * bindings/python/rb.override:
7183         * bindings/python/Makefile.am: make the RB python bindings depend on
7184         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7185         code sometimes emits warnings.
7187         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7188         (rb_shell_player_error_get_type):
7189         * shell/rb-shell-player.h:
7190         * bindings/python/rb.defs: add bindings for RBShellPlayer
7192         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7193         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7194         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7195         * rhythmdb/rhythmdb.h:
7196         * shell/rb-shell.c: (rb_shell_get_song_properties):
7197         * widgets/rb-entry-view.c: (propid_from_name):
7198         * widgets/rb-property-view.c: (rb_property_view_class_init):
7199         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7200         than just plain GPtrArray, and add bindings for it.
7202         * bindings/python/rhythmdb.override: wrap some functions that use
7203         GValues
7205 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7207         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7208         Only watch directories from which entries of type SONG have been
7209         added.
7211 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7213         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7214         No need to restore the selection after rebuilding the child model,
7215         since that can't have changed the selection.
7217 2006-03-29  James Livingston  <doclivingston@gmail.com>
7219         * bindings/python/override_common.c:
7220         * bindings/python/override_common.h: add some for missing files to
7221         cvs.
7223 2006-03-29  James Livingston  <doclivingston@gmail.com>
7225         * configure.ac:
7226         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7227         copied from gedit's autofoo and we don't need it
7229         * bindings/python/rhythmdb.defs:
7230         * bindings/python/rhythmdb.override: add missing files to cvs
7232 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7234         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7235         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7236         before running any of the debug/test modes.
7237         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7238         Make plugin loading work when running uninstalled from the shell/
7239         directory.
7241 2006-03-29  James Livingston  <doclivingston@gmail.com>
7243         * rhythmdb/rhythmdb-property-model.c:
7244         (rhythmdb_property_model_sync),
7245         (rhythmdb_property_model_column_get_type):
7246         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7248         * rhythmdb/rhythmdb-private.h:
7249         * rhythmdb/rhythmdb-query-model.c:
7250         (rhythmdb_query_model_class_init):
7251         * rhythmdb/rhythmdb-query-model.h:
7252         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7253         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7254         (rhythmdb_entry_get_type):
7255         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7257         * widgets/rb-query-creator-properties.c:
7258         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7259         was missing.
7261         * bindings/python/Makefile.am:
7262         * bindings/python/rb.defs:
7263         * bindings/python/rb.override:
7264         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7265         Python bindings for RhythmDB.
7267 2006-03-29  James Livingston  <doclivingston@gmail.com>
7269         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7270         sharing when using --no-registration
7272 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7274         * rhythmdb/rhythmdb-query-model.c:
7275         (rhythmdb_query_model_reapply_query):
7276         Don't remove entries while iterating, as it breaks the sequence
7277         nodes.  Instead, collect a list of removed entries and process it
7278         after iterating the sequence.  Fixes #334642.
7280 2006-03-29  James Livingston  <doclivingston@gmail.com>
7282         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7283         (row_activated_cb), (plugin_manager_toggle_all):
7284         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7285         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7286         (button_press_cb), (source_name_edited_cb):
7287         * widgets/rb-property-view.c: (rb_property_view_set_property),
7288         (rb_property_view_post_row_deleted_cb),
7289         (rb_property_view_row_activated_cb),
7290         (rb_property_view_selection_changed_cb),
7291         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7292         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7294 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7296         * rhythmdb/rhythmdb-query-model.c:
7297         (rhythmdb_query_model_drag_data_received):
7298         Increment the reference count for entries added by drag and drop.
7299         Fixes #336045.
7301 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7303         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7304         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7305         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7307 2006-03-27  James Livingston  <doclivingston@gmail.com>
7309         * shell/rb-shell.c: (rb_shell_constructor),
7310         (rb_shell_sync_window_state): fix a maximise-realise race that would
7311         cause some widgets to be resized after we had explicity set theri
7312         size. Hopefully fixes bug 331927.
7314 2006-03-27  James Livingston  <doclivingston@gmail.com>
7316         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7317         (row_activated_cb), (plugin_manager_set_active),
7318         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7319         configure button sensitivity when a plugin is enabled/disabled.
7321 2006-03-27  James Livingston  <doclivingston@gmail.com>
7323         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7324         stop warnings, only the vbos is used anyway
7326         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7327         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7328         collection every now an then.
7330         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7331         if we are finalising because the python object couldn't be created.
7333         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7334         NULL if the python-side object couldn't be created. Stops crashes when
7335         the object is later used when it doesn't exist in Python.
7337         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7338         (rb_python_shutdown): do better garbage collection when shutting down.
7339         Fixes the problem where Python was holding a reference to the shell,
7340         causing RB not to exit.
7342 2006-03-27  James Livingston  <doclivingston@gmail.com>
7344         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7345         336131.
7347 2006-03-27  James Livingston  <doclivingston@gmail.com>
7349         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7350         From bug 334829.
7352 2006-03-26  James Livingston  <doclivingston@gmail.com>
7354         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7355         library location list to NULL after we free it. Fixes bug 336047.
7357 2006-03-26  James Livingston  <doclivingston@gmail.com>
7359         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7361         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7362         supplies. Fixes bug 335947.
7364 2006-03-25  James Livingston  <doclivingston@gmail.com>
7366         * data/glade/audioscrobbler-prefs.glade:
7367         * shell/rb-audioscrobbler.c:
7368         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7369         "submit songs" checkbox, and make it not disable username/password
7370         entry. This will be needed when we support other last.fm stuff
7371         (profile access, radio, etc).
7373 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7375         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7376         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7377         335777.
7379 2006-03-24  James Livingston  <doclivingston@gmail.com>
7381         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7382         (rb_shell_player_sync_play_order),
7383         (rb_shell_player_play_order_update_cb),
7384         (actually_set_playing_source): update the next/previous availablility
7385         in places where it was missing. Fixes bug 335490.
7387 2006-03-24  James Livingston  <doclivingston@gmail.com>
7389         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7390         can't find the widget
7392         * lib/rb-util.c: (rb_uri_list_parse):
7393         * lib/rb-util.h: add function for parsing a URI list into strings.
7395         * metadata/Makefile.am: make the metdata helper build when linking
7396         with --as-needed
7398         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7399         g_mkdir_with_parents instead of coding our own.
7401         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7402         <itunes:author> over <generator>, instead of using whichever comes
7403         last.
7405         * rhythmdb/rhythmdb-private.h:
7406         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7407         field, as we don't ever check it (to detect corruption). Saves a bit
7408         of memory.
7410 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7412         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7413         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7414         Escape '&' and '=' in the paths we get back from
7415         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7417 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7419         * shell/rb-shell.c: (rb_shell_constructor):
7420         Issue startup notification after creating the main window, so
7421         notification is issued whether the window is visible or not.
7422         Fixes #335086.
7424 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7426         * sources/rb-auto-playlist-source.c: (impl_search),
7427         (rb_auto_playlist_source_query_complete_cb),
7428         (rb_auto_playlist_source_do_query):
7429         * sources/rb-library-source.c: (impl_search),
7430         (rb_library_source_query_complete_cb),
7431         (rb_library_source_do_query):
7432         Defer subset searches (where text is appended to an existing search)
7433         until the original query is complete.
7435 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7437         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7439         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7440         (rb_refstring_get_sort_key): fixes for strict-aliasing
7442 2006-03-21  James Livingston  <jrl@ids.org.au>
7444         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7445         importing a single file. Fixes bug 335307.
7447 2006-03-21  James Livingston  <jrl@ids.org.au>
7449         * shell/Makefile.am: remove the reference to backends/ that I
7450         accidently included.
7452 2006-03-21  James Livingston  <jrl@ids.org.au>
7454         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7455         with Forte (on Solaris). Closes bug 335318.
7457         * configure.ac:
7458         * lib/Makefile.am:
7459         * player/rb-recorder-gst.c:
7460         * podcast/rb-podcast-parse.c:
7461         * remote/bonobo/Makefile.am:
7462         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7463         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7464         (rhythmdb_query_model_add_entry),
7465         (rhythmdb_query_model_add_results):
7466         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7467         * rhythmdb/rhythmdb.h:
7468         * shell/Makefile.am:
7469         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7470         (update_speed_combobox):
7471         * sources/rb-sourcelist-model.c:
7473 2006-03-21  James Livingston  <jrl@ids.org.au>
7475         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7477         * player/Makefile.am:
7478         * shell/Makefile.am: work correctly with a separate build root.
7480 2006-03-21  James Livingston  <jrl@ids.org.au>
7482         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7483         get handed NULL.
7485 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7487         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7488         Only create ignore entries when importing into the library.  
7489         Ignore entries for files in removable media sources don't help.
7491 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7493         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7494         * shell/rb-source-header.h:
7495         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7496         * widgets/rb-search-entry.h:
7497         Add functions to make the search box grab focus.
7499         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7500         Focus the search box after handling the 'view all' action.
7502 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7504         * rhythmdb/rhythmdb.h:
7505         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7506         (rhythmdb_execute_multi_stat_info_cb),
7507         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7508         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7509         (action_thread_main):
7510         Collect all the get_file_info requests on startup into one gnome-vfs
7511         job to reduce overhead and avoid contention for the rhythmdb lock.
7512         Add a new method to call when all initial query models are set up.
7513         
7514         * shell/rb-shell.c: (idle_handle_load_complete):
7515         Call rhythmdb startup complete function when we've loaded all the
7516         playlists.  Fixes #334106.
7518 2006-03-20  James Livingston  <jrl@ids.org.au>
7520         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7521         (rb_entry_view_selection_changed_cb),
7522         (rb_entry_view_have_complete_selection): make has_complete_selection
7523         not slow. Fixes a performance issue I added a week or so ago.
7525 2006-03-20  James Livingston  <jrl@ids.org.au>
7527         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7528         before passing to strcmp. From bug 334559.
7530 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7532         * configure.ac:
7533         * lib/Makefile.am:
7534         * lib/rb-proxy-config.c:
7535         * lib/rb-proxy-config.h:
7536         Add a new object to watch the HTTP proxy configuration and emit
7537         signals when it changes.
7539         * shell/rb-audioscrobbler.c:
7540         * shell/rb-audioscrobbler.h:
7541         Use rb-proxy-config to watch HTTP proxy configuration.
7543         * shell/rb-shell.c:
7544         Construct rb-proxy-config object on startup, and remove all
7545         audioscrobbler references.
7547         * shell/Makefile.am:
7548         * plugins/audioscrobbler/Makefile.am:
7549         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7550         Move all audioscrobbler code into the plugin.  We should move
7551         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7552         point.  Don't use a private data structure in the plugin, since the
7553         class definition isn't in a header file.  Fixes #335091.
7555 2006-03-20  James Livingston  <jrl@ids.org.au>
7557         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7558         don't enable Next if the source has an EOS type other than
7559         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7561 2006-03-20  James Livingston  <jrl@ids.org.au>
7563         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7564         (rb_song_info_forward_clicked_cb): deal with there being no
7565         next/previous entry.
7567         (rb_song_info_query_model_inserted_cb),
7568         (rb_song_info_query_model_deleted_cb),
7569         (rb_song_info_query_model_reordered_cb),
7570         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7571         to update the button status. Fixes bug 333293.
7573 2006-03-20  James Livingston  <jrl@ids.org.au>
7575         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7576         caused by my last commit
7578 2006-03-20  James Livingston  <jrl@ids.org.au>
7580         * bindings/python/Makefile.am:
7581         * bindings/python/rb.defs:
7582         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7584         * shell/rb-shell.c: (rb_shell_constructor),
7585         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7586         tray-icon detection slightly
7588 2006-03-19  Steve Frécinaux  <steve@istique.net>
7590         * data/ui/rhythmbox-ui.xml:
7591         * shell/rb-shell.c:
7593         Add an empty Tool Menu (hidden by default) containing placeholders for
7594         plugins.
7596         * configure.ac:
7597         * plugins/Makefile.am:
7598         * plugins/pythonconsole/Makefile.am:
7599         * plugins/pythonconsole/pythonconsole.py:
7600         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7601         
7602         Python Console plugin
7604 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7606         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7607         Extra step to encode '&' and '=' to match what gnome-vfs does
7608         internally.
7609         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7610         (rhythmdb_tree_save):
7611         Increment rhythmdb xml version to 1.2, and force another uri
7612         re-canonicalisation when loading v1.1 databases.
7613         Fixes bug #333998.
7615 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7617         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7618         (avahi_client_init), (browse_cb):
7619         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7620         (avahi_client_init):
7621         Fix compilation with Avahi 0.5.x (bug #334551).
7623 2006-03-19  James Livingston  <jrl@ids.org.au>
7625         Add Increase/Decrease Volume menu items and keybindings. From bug
7626         123383.
7628         * data/ui/rhythmbox-ui.xml:
7629         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7630         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7631         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7633 2006-03-19  James Livingston  <jrl@ids.org.au>
7635         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7637         * shell/Makefile.am: fix the link order, so that we compile with
7638         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7640 2006-03-19  James Livingston  <jrl@ids.org.au>
7642         patch by: Adam Petaccia  <adam@tpetaccia.com>
7644         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7645         plugins". Fixes bug 335037.
7647 2006-03-18  James Livingston  <jrl@ids.org.au>
7649         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7650         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7651         332992.
7653         * widgets/rb-header.c: don't make artist/album info in the header the
7654         small size, since it's hard to read.
7656 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7658         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7659         (rhythmdb_finalize): Don't leak the hash tables.
7660         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7661         (rhythmdb_commit_internal): Make sure to process the deletions.
7662         (rhythmdb_entry_delete): Use a hash.
7664         * podcast/rb-podcast-manager.c: Random analness about char*
7665         (rb_podcast_manager_remove_feed): Add debugging.
7666         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7667         the result of gnome_vfs_unlink.  Don't leak a uri.
7669         Fixes #334786
7671 2006-03-18  James Livingston  <jrl@ids.org.au>
7673         * NEWS: update NEWS file
7675 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7677         * rhythmdb/rhythmdb-property-model.c:
7678         (rhythmdb_property_model_prop_changed_cb):
7679         Remove entries from the hash table after processing visible->hidden
7680         changes.
7682 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7684         * sources/rb-daap-source.c (connection_connected_cb) 
7685         (connection_disconnected_cb): Add debug.
7686         (rb_daap_source_get_headers): Check for NULL connection.
7688         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7689         Check return value of rb_daap_source_get_headers.
7691         Fixes #332089
7693 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7695         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7696         Restore the selection after rebuilding the child model, so the
7697         selection is shown correctly after using the 'browse this
7698         album/artist/genre' menu items.
7700 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7702         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7703         Clear the selection before changing the active model.
7704         Fixes crash reported in bug 334549.
7706 2006-03-15  James Livingston  <jrl@ids.org.au>
7708         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7709         (rb_tray_icon_sync_action):
7710         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7711         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7712         for non-libnotify notification bubbles. Fixes bug 331721.
7714 2006-03-15  James Livingston  <jrl@ids.org.au>
7716         Add search-bar options to playlists. Fixes bug 334407.
7718         * sources/rb-auto-playlist-source.c:
7719         (rb_auto_playlist_source_class_init),
7720         (rb_auto_playlist_source_constructor),
7721         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7722         (search_action_to_prop), (search_action_changed):
7723         * sources/rb-static-playlist-source.c:
7724         (rb_static_playlist_source_class_init),
7725         (rb_static_playlist_source_constructor),
7726         (construct_query_from_selection), (impl_get_search_actions),
7727         (search_action_to_prop), (search_action_changed):
7729 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7731         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7732         Remove broken attempt at making the search bar buttons not
7733         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7735 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7737         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7738         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7740 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7742         * widgets/rb-header.c (rb_header_sync): Escape album and
7743         artist before adding to markup.
7745 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7747         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7748         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7749         (rb_header_set_property), (rb_header_get_property),
7750         (rb_header_sync):
7751         Remove the GnomeUrl song links until we can do it properly.
7752         Fixes #334453.
7754 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7756         * shell/rb-source-header.c: (rb_source_header_clear_search):
7757         Remove the stored search text from the hash table, so it doesn't
7758         reappear after switching to another source and back.
7760         * sources/rb-auto-playlist-source.c: (impl_search):
7761         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7762         * sources/rb-static-playlist-source.c: (impl_search):
7763         Make sure all sources treat impl_search(NULL) and impl_search("") the
7764         same.  Fixes #334525.
7766 2006-03-14  James Livingston  <jrl@ids.org.au>
7768         Store which thread created new entries, and make rhythmdb_commit only
7769         insert the entries for the thread that calls it. This stops one thread
7770         calling rhythmdb_commit inserting entries that are half-way through
7771         construction by another thread (as happens with audio cds). From bug
7772         330226.
7774         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7775         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7776         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7777         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7778         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7779         (rhythmdb_process_metadata_load),
7780         (rhythmdb_process_queued_entry_set_event),
7781         (rhythmdb_prop_get_type):
7783 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7785         * rhythmdb/rhythmdb-query-model.c:
7786         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7787         (rhythmdb_query_model_finalize):
7788         Move object unrefs from _finalize into _dispose.
7789         
7790         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7791         Remove extra g_object_ref that was causing query model leaks.
7792         
7793         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7794         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7795         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7796         Remove the cached 'all' query, since it doesn't really help and it
7797         makes the code more complicated.  Attach the genre property view to
7798         the query model build from the search text, so only genres for
7799         stations matching the search terms are displayed.  Preserve the genre
7800         selection across searches.
7802         * widgets/rb-library-browser.c: 
7803         (rb_library_browser_class_init), (rb_library_browser_get_property):
7804         Add properties for the input and output models for the browser, and
7805         remove the 'changed' signal as we can just use notify::output-model.
7806         (ignore_selection_changes),
7807         (selection_restore_data_destroy), (query_complete_cb),
7808         (restore_selection): Helper functions for preserving selections across
7809         query model rebuilds.
7810         (rebuild_output_model):  New function for creating a query model to
7811         use as the display model for a source using the browser.
7812         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7813         g_object_unrefs, reuse the parent's query model when there's no
7814         selection, and use ignore_selection_changes and restore_selection.
7815         (rb_library_browser_set_selection): rebuild_child_model emits the
7816         changed signal, so no need to do it here.
7817         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7818         ignore_selection_changes and restore_selection. 
7819         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7820         flag to rb_library_browser_set_model indicating whether the query is
7821         asynchronous.
7823         * sources/rb-static-playlist-source.c:
7824         (rb_static_playlist_source_class_init),
7825         (rb_static_playlist_source_dispose):
7826         (rb_static_playlist_source_constructor):  Add an extra reference on
7827         the base model, so it doesn't vanish when we set a new display model
7828         based on a search or browser selection.
7829         (impl_search): Ensure the search_text field in the source is NULL if
7830         the search box is empty.
7831         (construct_query_from_selection),
7832         (rb_static_playlist_source_do_query): Use the query model constructed
7833         from the search as the input model for the browser.
7834         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7835         output model as the query model for the source.
7837         * sources/rb-auto-playlist-source.c:
7838         (rb_auto_playlist_source_finalize): Free more stuff.
7839         (rb_auto_playlist_source_constructor),
7840         (rb_auto_playlist_source_browser_changed_cb):
7841         Update for rb-library-browser changes, use the browser's output query
7842         model as the query model for the source.
7843         (impl_reset_filters), (impl_search), 
7844         (rb_auto_playlist_source_do_query),
7845         (rb_auto_playlist_source_set_query):
7846         Use the query model constructed from the search text as the input to
7847         the library browser, and when adding text to an existing search, apply
7848         the new query to the existing query model.
7849         
7850         * sources/rb-library-source.c: (rb_library_source_dispose):
7851         (rb_library_source_finalize): Chain dispose up to the parent class.
7852         (rb_library_source_constructor): Update for rb-library-browser
7853         changes. 
7854         (impl_search): Ensure search_text is NULL if the search box is empty,
7855         and use the subset flag to _do_query if text has been appended to an
7856         existing search.
7857         (search_action_changed), (impl_reset_filters):
7858         (rb_library_source_browser_changed_cb),
7859         (rb_library_source_do_query): Use the browser's output model as the
7860         query model for the source.
7862         Rework library and playlist sources to use a single query chain,
7863         and to limit the entries shown in property views based on the search
7864         terms.  Fixes bug #322787.
7866 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7868         * configure.ac:  Enable metadata helper by default, and fix a typo.
7870 2006-03-13  James Livingston  <jrl@ids.org.au>
7872         Make RBRefStrings lazily create the folded and sort-key strings when
7873         they are first used. This will same some memory by not creating ones
7874         that are never used, and delaying some of the others to when the user
7875         resorts or performs a similar action. Fixes bug 332992.
7877         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7878         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7879         (rb_refstring_get), (rb_refstring_get_folded),
7880         (rb_refstring_get_sort_key), (rb_refstring_hash),
7881         (rb_refstring_equal):
7882         * rhythmdb/rb-refstring.h:
7883         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7885 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7887         * data/ui/rhythmbox-ui.xml:
7888         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7889         * lib/rb-stock-icons.h:
7890         * shell/rb-shell-player.c:
7891         * shell/rb-shell.c: (rb_shell_constructor):
7892         * shell/rb-source-header.c: (force_no_shadow),
7893         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7894         (rb_source_header_class_init), (rb_source_header_init),
7895         (merge_source_ui_cb), (toolbar_set_homogeneous),
7896         (rb_source_header_set_source_internal),
7897         (rb_source_header_set_property), (rb_source_header_get_property),
7898         (rb_source_header_set_source), (rb_source_header_new),
7899         (rb_source_header_filter_changed_cb):
7900         * shell/rb-source-header.h:
7901         * sources/rb-library-source.c: (rb_library_source_class_init),
7902         (rb_library_source_init), (search_action_to_prop),
7903         (search_action_changed), (rb_library_source_constructor),
7904         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7905         (construct_query_from_selection):
7906         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7907         (rb_podcast_source_init), (search_action_to_prop),
7908         (search_action_changed), (rb_podcast_source_constructor),
7909         (construct_query_from_selection), (impl_get_ui_actions),
7910         (impl_get_search_actions):
7911         * sources/rb-source.c: (rb_source_class_init),
7912         (rb_source_get_ui_actions), (default_get_search_actions),
7913         (rb_source_get_search_actions):
7914         * sources/rb-source.h:
7916         Add a search bar.  Fixes #328618
7918 2006-03-12  James Livingston  <jrl@ids.org.au>
7920         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7921         * shell/main.c: (main): make --no-update not stat files checking for
7922         changes, instead of doing nothing. Fixes bug 125177.
7924 2006-03-12  James Livingston  <jrl@ids.org.au>
7926         * podcast/rb-podcast-manager.c:
7927         (rb_podcast_manager_thread_parse_feed):
7928         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7929         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7930         having an invalid mime-type. Fixed bug 329813.
7932 2006-03-12  James Livingston  <jrl@ids.org.au>
7934         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7935         Finally lets us close bug 309609.
7937         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7938         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7939         0.10
7941         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7942         inverted logic of the editable check.
7944 2006-03-12  James Livingston  <jrl@ids.org.au>
7946         Make API doc generation work again. Fixes bug 334276.
7948         * doc/reference/Makefile.am:
7949         * doc/reference/tmpl/rb-debug.sgml:
7950         * doc/reference/tmpl/rb-druid.sgml:
7951         * doc/reference/tmpl/rb-entry-view.sgml:
7952         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7953         * doc/reference/tmpl/rb-metadata.sgml:
7954         * doc/reference/tmpl/rb-shell.sgml:
7955         * doc/reference/tmpl/rhythmbox-unused.sgml:
7956         * doc/reference/tmpl/rhythmdb.sgml:
7958 2006-03-12  James Livingston  <jrl@ids.org.au>
7960         * shell/rb-shell-clipboard.c:
7961         (rb_shell_clipboard_set_source_internal),
7962         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7963         it doesn't have one. Fixes bug 331673.
7965         * sources/rb-source.c: (rb_source_class_init): provide a default
7966         have_url implementation that returns FALSE.
7968 2006-03-12  James Livingston  <jrl@ids.org.au>
7970         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7971         doing a distclean. Fixes bug 334221.
7974         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7976         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7978 2006-03-11  James Livingston  <jrl@ids.org.au>
7980         * shell/rb-shell.c: (rb_shell_window_state_cb),
7981         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7982         update the window width/height when iconified. Stops the window
7983         changing size when it is restored from the tray, fixing bug 333824. 
7985 2006-03-11  James Livingston  <jrl@ids.org.au>
7987         Try to get cvs to actually add the necessary files for plugin support
7989 2006-03-11  James Livingston  <jrl@ids.org.au>
7991         Add a plugin framework, with basic support for Python plugins (based
7992         on gedit's). Closes bug 330523.
7994         * Makefile.am:
7995         * shell/Makefile.am:
7996         * configure.ac: necessary autofoo.
7998         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8000         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8001         * lib/rb-file-helpers.h:
8003         * data/glade/plugins/glade:
8004         * lib/rb-preferences.h:
8005         * plugins/*:
8006         * bindings/*: plugin framework
8008         * plugins/sample/*:
8009         * plugins/sample-python/*: sample plugins
8011         * plugins/audioscrobbler/*:
8012         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8013         (rb_audioscrobbler_set_property),
8014         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8015         submission into a plugin. shell/audioscrobbler.* should really be
8016         moved, but that sucks with cvs.
8018         * shell/rb-shell.h:
8019         * shell/rb-shell.c: (rb_shell_constructor),
8020         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8021         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8022         (rb_shell_quit): start and stop plugin framework.
8024 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8026         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8027         (rhythmdb_entry_delete):
8028         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8029         immediately, so we can't get change notifications afterwards.  
8030         Fixes #331732.
8031         (rhythmdb_process_metadata_load): Add a commit after removing an
8032         entry so we can recreate it with a different type without getting
8033         confused.
8035 2006-03-11  James Livingston  <jrl@ids.org.au>
8037         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8038         use the drive name for audio CDs, use "Unknown CD".
8040 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8042         patch by:  James Henstridge  <james@jamesh.id.au>
8044         * sources/rb-removable-media-source.c:
8045         (rb_removable_media_source_constructor):
8046         Get the device name from the GnomeVFSDrive if possible,
8047         since this is usually a more descriptive name.  Fixes #333080.
8049 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8051         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8053         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8054         Don't automatically download episodes when configured for manual
8055         updating.  Fixes #331564.
8057 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8059         * rhythmdb/rhythmdb-property-model.c:
8060         (rhythmdb_property_model_iter_from_string):
8061         Return an iterator for the 'all' property when name == NULL,
8062         and don't write to *iter if iter == NULL.
8064 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8066         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8067         When switching to the play queue, still call _go_next on the normal
8068         play order, so self-emptying auto playlists ("play count = 0" etc.)
8069         don't restart once the queue is empty.
8071         * shell/rb-tray-icon.c:
8072         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8073         with 'next'.
8075 2006-03-05  James Livingston  <jrl@ids.org.au>
8077         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8078         don't submit tracks which could not be played. Fixed bug 333013.
8080         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8081         tracks which could not be played.
8083 2006-03-05  James Livingston  <jrl@ids.org.au>
8085         Sync musicbrainz lookup code from Sound-Juicer cvs.
8087         * metadata/sj-metadata-musicbrainz.c:
8088         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8089         (get_offline_track_listing), (artist_and_title_from_title),
8090         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8091         (mb_list_albums), (mb_get_submit_url):
8092         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8093         * metadata/sj-metadata.h:
8094         * metadata/sj-structures.c: (track_details_free),
8095         (album_details_free):
8096         * metadata/sj-structures.h:
8098 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8100         * lib/rb-debug.h:
8101         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8102         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8103         (rb_profiler_reset), (rb_profiler_free):
8104         Filter debug output by matching the file and function names against a
8105         match string.
8107         * shell/main.c: (main):
8108         Add -D command line option to specify the debug match string.
8110         * shell/rb-removable-media-manager.c:
8111         (rb_removable_media_manager_mount_volume):
8112         Fix some typos in debug output.
8114 2006-03-03  James Livingston  <jrl@ids.org.au>
8116         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8117         * shell/rb-shell.c: (rb_shell_load_uri):
8118         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8119         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8120         use the new "recurse" property from totem-plparser, if present. Stop
8121         RB hanging for new users who don't have a 'net connection. From bug
8122         331508.
8124 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8126         * shell/rb-removable-media-manager.c:
8127         (rb_removable_media_manager_mount_volume):
8128         * sources/Makefile.am:
8129         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8130         Fix missing files on make dist (conditional files), only build the
8131         N770 support if there's HAL support, as we have no other ways of
8132         detecting it
8134 2006-03-03  James Livingston  <jrl@ids.org.au>
8136         * shell/rb-shell-clipboard.c:
8137         (rb_shell_clipboard_set_source_internal): really fix it this time.
8138         hopefully.
8140 2006-03-03  James Livingston  <jrl@ids.org.au>
8142         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8143         with the idle function not being removed.
8145 2006-03-02  James Livingston  <jrl@ids.org.au>
8147         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8148         * widgets/rb-entry-view.h: add function for determining whether all
8149         entries are selected.
8151         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8152         (rb_shell_clipboard_set_source_internal),
8153         (rb_shell_clipboard_finalize),
8154         (rb_shell_clipboard_idle_poll_deletions),
8155         (rb_shell_clipboard_entryview_changed_cb),
8156         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8157         removals, to update things.
8159         (rb_shell_clipboard_sync): update the Select All and Select None
8160         sensitivity, based on what is selected. Fixed bug 172220.
8162 2006-03-02  James Livingston  <jrl@ids.org.au>
8164         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8165         restore the selections of later models. This means that selecting the
8166         artist for the selected album does not reset the album selection.
8168 2006-03-02  James Livingston  <jrl@ids.org.au>
8170         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8171         Stops it emitting critical warnings.
8173 2006-03-02  James Livingston  <jrl@ids.org.au>
8175         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8176         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8177         second fragment is already escaped.
8179         * sources/rb-generic-player-source.c:
8180         (rb_generic_player_source_class_init),
8181         (rb_generic_player_source_constructor), (impl_show_popup),
8182         (rb_generic_player_source_load_playlists),
8183         (rb_generic_player_source_transform_playlist_uri),
8184         (handle_playlist_entry_cb), (visit_playlist_dirs),
8185         (default_load_playlists), (default_transform_playlist_uri):
8186         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8187         the device. Allow subclasses to override the playlist loading, and
8188         (playlist uri)->(actual uri) mapping. A lot of devices which have
8189         playlists won't work right now, but people will see them and hopefully
8190         file bugs.
8192         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8193         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8194         
8195         * sources/Makefile.am:
8196         + sources/rb-nokia770-source.{c,h}:
8197         * shell/rb-removable-media-manager.c:
8198         (rb_removable_media_manager_mount_volume): Add support for reading
8199         playlists of Nokia 770s.
8201 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8203         * data/glade/podcast-properties.glade:
8204         * podcast/rb-podcast-properties-dialog.c:
8205         (rb_podcast_properties_dialog_init),
8206         (rb_podcast_properties_dialog_update),
8207         (rb_podcast_properties_dialog_update_location),
8208         (rb_podcast_properties_dialog_update_download_location):
8209         Add 'download location' field showing the path to the downloaded copy.
8210         Fixes #330696.
8212 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8214         * configure.ac: simplify HAVE_HAL define
8216 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8218         * configure.ac:
8219         * lib/rb-file-helpers.c: (rb_uri_append_path):
8220         * lib/rb-file-helpers.h:
8221         * shell/rb-removable-media-manager.c:
8222         (rb_removable_media_manager_mount_volume):
8223         * sources/Makefile.am:
8224         * sources/rb-ipod-source.c:
8225         * sources/rb-psp-source.*:
8226         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8227         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8229 2006-03-02  James Livingston  <jrl@ids.org.au>
8231         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8232         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8233         (swap_playing_source), (rb_shell_player_playpause),
8234         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8235         (rb_shell_player_set_playing_source_internal): check for the entry
8236         view being NULL before trying to use it. Lets us support sources which
8237         don't have an entry view. From bug 331673.
8239 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8241         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8242         use gnome_vfs_read_entire_file with a URI, not a local filename
8244 2006-03-01  James Livingston  <jrl@ids.org.au>
8246         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8247         first-seen and last-seen when merging duplicate entries.
8249 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8251         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8252         * widgets/rb-property-view.h:  New function, allowing custom 
8253         interactive search functions for property views.
8254         
8255         * sources/rb-podcast-source.c: 
8256         (feed_select_change_cb): Only do a new query when the selection
8257         actually changes.
8258         (rb_podcast_source_constructor),
8259         (rb_podcast_source_feed_title_search_func):
8260         Interactive search function for podcast feed titles.  Fixes #327451.
8262 2006-03-01  James Livingston  <jrl@ids.org.au>
8264         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8265         the uri in the callback, since it causes symbols to not be escaped.
8266         Fixes bug 332976.
8268         * data/ui/rhythmbox-ui.xml:
8269         * sources/rb-import-errors-source.c:
8270         (rb_import_errors_source_class_init),
8271         (rb_import_errors_source_constructor), (impl_get_status),
8272         (impl_move_to_trash),
8273         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8274         import errors source
8275         
8276         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8277         (rb_entry_view_append_column): unescape the URI for display.
8279 2006-03-01  James Livingston  <jrl@ids.org.au>
8281         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8282         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8283         function fails.
8285 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8287         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8288         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8289         * sources/rb-play-queue-source.c:
8290         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8291         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8292         of "Queued Songs".
8294         Fixes #331637.
8296 2006-03-01  James Livingston  <jrl@ids.org.au>
8298         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8299         Fixes bug 332913.
8301 2006-03-01  James Livingston  <jrl@ids.org.au>
8303         * daapsharing/rb-daap-mdns-browser-howl.c:
8304         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8305         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8306         (rb_daap_mdns_publisher_class_init),
8307         (rb_daap_mdns_publisher_finalize):
8308         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8309         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8310         (rb_recorder_finalize):
8311         * rhythmdb/rhythmdb-query-model.c:
8312         (rhythmdb_query_model_constructor):
8313         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8314         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8315         * sources/rb-playlist-source-recorder.c:
8316         (rb_playlist_source_recorder_style_set),
8317         (rb_playlist_source_recorder_class_init),
8318         (rb_playlist_source_recorder_finalize):
8319         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8320         other classes in the same way, so they don't break when derived from.
8322 2006-03-01  James Livingston  <jrl@ids.org.au>
8324         * sources/rb-generic-player-source.c:
8325         (rb_generic_player_source_constructor): don't get the parent class in
8326         a dumb way, and it breaks when the class is derived from.
8328 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8330         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8332 2006-03-01  James Livingston  <jrl@ids.org.au>
8334         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8335         not work in glib 2.8 systems.
8337 2006-03-01  James Livingston  <jrl@ids.org.au>
8339         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8340         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8341         say it is crap.
8343         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8344         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8345         podcasts on ion-local places
8347         * rhythmdb/gsequence.c: (g_sequence_node_new),
8348         (g_sequence_node_free): use gslice if we are building against glib
8349         2.10.
8351         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8352         local files too, so it doesn't block.
8354 2006-02-28  James Livingston  <jrl@ids.org.au>
8356         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8357         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8358         stats the file. Stops the UI blocking while stats are done.
8360 2006-02-28  James Livingston  <jrl@ids.org.au>
8362         * sources/rb-static-playlist-source.c:
8363         (rb_static_playlist_source_class_init),
8364         (rb_static_playlist_source_constructor), (impl_reset_filters),
8365         (impl_get_property_views), (impl_browser_toggled),
8366         (rb_static_playlist_source_do_query),
8367         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8368         playlists. From bug 118862.
8370         * sources/rb-play-queue-source.c:
8371         (rb_play_queue_source_class_init): disable them for the play queue.
8373 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8375         * data/glade/library-prefs.glade:  Add a mnemonic.
8376         * sources/rb-library-source.c:
8377         (rb_library_source_location_button_clicked_cb):  Use title
8378         capitalization for window title.
8380 2006-02-28  James Livingston  <jrl@ids.org.au>
8382         * sources/rb-auto-playlist-source.c:
8383         (construct_query_from_selection): don't create a subquery for only one
8384         criteria, as it's a silly effifiency degredation.
8386 2006-02-28  James Livingston  <jrl@ids.org.au>
8388         * rhythmdb/rhythmdb.h:
8389         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8390         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8391         saved to disk
8393         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8394         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8395         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8396         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8397         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8398         This will make importing files quicker as we don't need to try files
8399         that we know are not going to be interesting - especially useful when
8400         using the library watching facility.
8402         Fixes bug 323179.
8404 2006-02-28  James Livingston  <jrl@ids.org.au>
8406         * shell/rb-shell.c: (rb_shell_constructor),
8407         (rb_shell_set_visibility): fix browser and source-list pane
8408         positioning, that I broke with the "remember visibility" patch.
8410 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8412         * metadata/rb-metadata-dbus-service.c: (main):
8413         Change argument handling so you can use --debug with the --load and
8414         --can-save test modes.
8415         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8416         Use a separate GMainContext, not the default one.  Probably fixes
8417         #332344.
8419 2006-02-27  James Livingston  <jrl@ids.org.au>
8421         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8422         first starting up. Fixes bug 330342.
8424 2006-02-27  James Livingston  <jrl@ids.org.au>
8426         * sources/rb-sourcelist-model.c:
8427         (rb_sourcelist_model_set_dnd_targets):
8428         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8429         COPY action for draging sources and tracks, not MOVE as well. Stops
8430         Nautilus moving file away, and fixes bug 332488.
8432 2006-02-27  James Livingston  <jrl@ids.org.au>
8434         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8436         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8437         and Last Played metadata off iPods. Closes bug 324648.
8439 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8441         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8442         Disable audioscrobbler when run with the --no-registration flag, since
8443         last.fm doesn't allow multiple concurrent clients per user.
8445 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8447         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8448         Rename renamable sources when F2 is pressed when the sourcelist has
8449         focus.  Fixes #330700.
8451 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8453         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8454         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8455         (rb_playlist_manager_cmd_edit_automatic_playlist):
8456         Fix various crashes when deleting auto playlists previously edited
8457         by disconnecting signal handlers when the query editor is closed or
8458         the playlist is deleted.
8460 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8462         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8463         removed load failure dialog, and actually use the friendly file type
8464         name in error messages.
8466 2006-02-24  James Livingston  <jrl@ids.org.au>
8468         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8470         * sources/rb-library-source.c:
8471         (rb_library_source_location_button_clicked_cb),
8472         (rb_library_source_preferences_sync),
8473         (rb_library_source_library_location_cb): convert the library URI to
8474         for display, and back again. Fixes bug 332356.
8476 2006-02-23  James Livingston  <jrl@ids.org.au>
8478         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8479         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8480         (rhythmdb_sync_library_location): don't monitor files at all if
8481         watching is turned off. From bug 323096.
8483 2006-02-23  James Livingston  <jrl@ids.org.au>
8485         * data/rhythmbox.schemas:
8486         * lib/rb-preferences.h:
8487         * shell/rb-shell.c: (rb_shell_constructor),
8488         (rb_shell_set_visibility): remember main window visibility between
8489         sessions. Fixes bug 127320.
8491 2006-02-23  James Livingston  <jrl@ids.org.au>
8493         * data/glade/library-prefs.glade:
8494         * sources/rb-library-source.c: (impl_get_config_widget),
8495         (rb_library_source_location_button_clicked_cb),
8496         (rb_library_source_preferences_sync),
8497         (rb_library_source_library_location_cb),
8498         (rb_library_source_watch_toggled_cb): change the library-location
8499         widgets from the file-chooser drop menu to a text entry and Browse
8500         button. This is needed to prevent the location from chaning if the
8501         directory cannot be found. Fixes bug 328414.
8503 2006-02-23  James Livingston  <jrl@ids.org.au>
8505         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8506         item. Fixes bug 329042.
8508 2006-02-23  James Livingston  <jrl@ids.org.au>
8510         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8512         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8513         comma in some podcast feeds. Fixes bug 332194.
8515 2006-02-23  James Livingston  <jrl@ids.org.au>
8517         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8518         lower priority.
8520         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8521         the internal audio cd URIs from "cdda://device:track" to
8522         "cdda://track#device" as it makes processing much easier.
8524         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8525         * player/rb-player-gst.c: don't have the shell close the player
8526         between songs, as doing that should be backend-specific. Make the
8527         gstreamer backend close before starting a new track, unless the old
8528         and new ones are both tracks on the same audio cd. Just seek in that
8529         case.
8531 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8533         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8535 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8537         * configure.ac: Enable more warnings in my stupid setup too.
8538         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8539         #332210.
8541 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8543         * sources/rb-missing-files-source.h,
8544         * sources/rb-missing-files-source.c,
8545         * sources/rb-import-errors-source.h,
8546         * sources/rb-import-errors-source.c:
8547         Add library meta-sources, showing missing files and import errors.
8548         Fixes #167763, #142322.
8550         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8551         * sources/rb-sourcelist-model.h:
8552         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8553         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8554         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8555         (visibility_notify_cb):
8556         Store source visibility in the sourcelist model, so we can determine
8557         child source counts correctly and get the sourcelist expander column
8558         right.
8559         
8560         * widgets/rb-entry-view.h:
8561         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8562         (rb_entry_view_append_column), (set_column_visibility):
8563         Allow the creator of the entry view to specify which columns are
8564         always visible.
8566         * sources/rb-source.h:
8567         * sources/rb-source.c: (_autohide_update_visibility),
8568         (_rb_autohide_source_row_deleted_cb),
8569         (_rb_autohide_source_row_inserted_cb),
8570         (_rb_source_hide_when_empty):
8571         Allow sources to automatically hide themselves when empty.
8572         
8573         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8574         * sources/rb-library-source.c: (rb_library_source_constructor):
8575         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8576         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8577         Explicitly specify which columns are always visible.
8578         
8579         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8580         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8581         Remove load error signal handling and load failure dialog.
8582         Create missing files and import errors sources for the library.
8584         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8585         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8586         Create DB entries for import errors rather than emitting the 'load
8587         error' signal; mark loaded entries visible.
8588         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8589         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8590         (rhythmdb_prop_get_type): Store string form of last seen time for
8591         hidden entries, since it's used in the missing files source.
8592         (rhythmdb_entry_import_error_get_type): 
8593         Add entry type for import errors.
8594         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8595         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8596         (rhythmdb_entry_move_to_trash_set_error),
8597         (rhythmdb_entry_move_to_trash):  
8598         Correct spelling, add missing rhythmdb_commit.
8599         * rhythmdb/rhythmdb.h:  
8600         Add import error entry type and last seen string property.
8601         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8602         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8603         (save_entry):  Ignore string form of 'last seen' property.
8605         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8606         Don't try to play hidden entries or import error entries.
8608         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8609         * sources/Makefile.am: Add meta-source files
8610         * widgets/Makefile.am: Remove load failure dialog files
8612 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8614         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8615         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8616         few bits and pieces.
8618 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8620         * metadata/test-metadata.c: (load_metadata_cb):
8621         Fix compile warning for ignoring return value from getcwd, #332064.
8623 2006-02-21  James Livingston  <jrl@ids.org.au>
8625         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8626         (edit_auto_playlist_deleted_cb),
8627         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8628         playlist editor non-modal. Fixes bug 320030.
8630 2006-02-21  James Livingston  <jrl@ids.org.au>
8632         * shell/rb-shell.c: (rb_shell_constructor):
8633         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8634         (rb_header_set_show_artist_album):
8635         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8636         (rb_song_display_box_sync): make the queue sidebar and song display
8637         not get affected by gtk_widget_show_all. Fixes bug 332001.
8639 2006-02-21  James Livingston  <jrl@ids.org.au>
8641         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8643         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8644         feeds which use timezone names instead of offsets. Doesn't actually
8645         parse the timezone name since they are not standardised. Fixes bug
8646         331691.
8648 2006-02-21  James Livingston  <jrl@ids.org.au>
8650         * help/C/figures/rb-notification-area.png:
8651         * help/C/figures/rb-sidebar.png:
8652         * help/C/quick-reference.xml: remove obsolete files from CVS.
8654         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8655         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8656         (rhythmdb_query_free), (rhythmdb_query_serialize),
8657         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8658         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8660         * widgets/rb-query-creator-properties.c: add prefix and suffix
8661         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8662         doesn't escape the ':' separator in uris.
8664 2006-02-21  James Livingston  <jrl@ids.org.au>
8666         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8667         on startup.
8669 2006-02-21  James Livingston  <jrl@ids.org.au>
8671         * NEWS: update with recent changes
8673 2006-02-21  James Livingston  <jrl@ids.org.au>
8675         * shell/rb-shell.c: (rb_shell_constructor),
8676         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8677         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8678         (rb_druid_browse_clicked_cb), (do_response):
8679         * widgets/rb-druid.h: Make running the druid not block RBShell
8680         starting up. This is required so that bonobo registration doesn't time
8681         out. Fixed bug 318766.
8683 2006-02-21  James Livingston  <jrl@ids.org.au>
8685         * rhythmdb/rhythmdb-property-model.c:
8686         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8687         hash table after using it, not before. Fixed bug 331922.
8689 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8691         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8692         (rb_shell_view_queue_as_sidebar_changed_cb):
8693         When playing from the queue, only attempt to highlight the queue
8694         source in the source list if it's actually visible there.  Otherwise,
8695         leave the preempted source highlighted.  Mostly fixes #330819.
8697 2006-02-20  James Livingston  <jrl@ids.org.au>
8699         * rhythmdb/rhythmdb-property-model.c:
8700         (rhythmdb_property_model_row_inserted_cb),
8701         (rhythmdb_property_model_prop_changed_cb),
8702         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8703         store the roperty value in the entry-mapping table, so that receiving
8704         the remove signal from a query model before we get notified of a
8705         change doesn't cause a crash. Fixes bug 331770.
8707 2006-02-20  James Livingston  <jrl@ids.org.au>
8709         * data/ui/rhythmbox-ui.xml:
8710         * sources/rb-play-queue-source.c:
8711         (rb_play_queue_source_class_init),
8712         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8713         playlist things in the queue popup source. From 330490.
8715         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8716         previous commit
8718 2006-02-20  James Livingston  <jrl@ids.org.au>
8720         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8721         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8722         attempt to sync data for non-editable entries when using
8723         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8724         331762.
8726 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8728         * .cvsignore:
8729         * Makefile.am:
8730         * autogen.sh:
8731         * configure.ac:
8732         * help/.cvsignore:
8733         * help/Makefile.am: ported to gnome-doc-utils
8734         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8735         * help/ChangeLog: added, for translators
8736         * help/C/rhytmbox-C.omf: removed, no longer used
8737         Know issue: figures are installed, but some are not showed; manual
8738         description added, but not showed in Yelp while browsing. I'll
8739         investigate, maybe are needed some little changes to
8740         help/C/rhythmbox.xml.
8742 2006-02-20  James Livingston  <jrl@ids.org.au>
8744         * data/ui/rhythmbox-ui.xml:
8745         * help/C/figures/rb-adv.png:
8746         * help/C/figures/rb-asst-finish.png:
8747         * help/C/figures/rb-asst-library.png:
8748         * help/C/figures/rb-asst-start.png:
8749         * help/C/figures/rb-basic.png:
8750         * help/C/figures/rb-browser.png:
8751         * help/C/figures/rb-context-menu.png:
8752         * help/C/figures/rb-empty.png:
8753         * help/C/figures/rb-full-play.png:
8754         * help/C/figures/rb-group-auto.png:
8755         * help/C/figures/rb-group-create.png:
8756         * help/C/figures/rb-group.png:
8757         * help/C/figures/rb-imported.png:
8758         * help/C/figures/rb-iradio-add.png:
8759         * help/C/figures/rb-iradio.png:
8760         * help/C/figures/rb-nextprev.png:
8761         * help/C/figures/rb-nobrowse-play.png:
8762         * help/C/figures/rb-notification-area-menu.png:
8763         * help/C/figures/rb-player.png:
8764         * help/C/figures/rb-prefs-general.png:
8765         * help/C/figures/rb-prefs-ipod.png:
8766         * help/C/figures/rb-prefs-library.png:
8767         * help/C/figures/rb-prefs.png:
8768         * help/C/figures/rb-repeat.png:
8769         * help/C/figures/rb-search.png:
8770         * help/C/figures/rb-shuffle.png:
8771         * help/C/figures/rb-stats.png:
8772         * help/C/figures/rb-toolbar-editor.png:
8773         * help/C/figures/rb-volume-mute.png:
8774         * help/C/figures/rhythmbox-group.png:
8775         * help/C/figures/rhythmbox-tray-icon.png:
8776         * help/C/user-guide.xml: remove old stuff from cvs
8778 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8780         * metadata/rb-metadata-dbus-client.c: 
8781         * metadata/rb-metadata-dbus-service.c:
8782         * metadata/rb-metadata-dbus.c:
8783         * metadata/rb-metadata-dbus.h:
8784         New files, adding an external service for reading and writing
8785         metadata, and an implementation of the RBMetaData interface that uses
8786         dbus to communicate with it.
8787         
8788         * metadata/rb-metadata.h,
8789         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8790         (rb_metadata_get_field_name): Put metadata details in a static array
8791         instead of using a hash table, and add a field for language code (not
8792         used for anything)
8793         * metadata/rb-metadata-gst.c: Updates for changes in
8794         rb-metadata-common.c, fix signal handler closure leak for the typefind
8795         element's have-type signal, and add XML to the list of types we ignore.
8796         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8797         Update for changes to rb_metadata_get_field_type
8798         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8799         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8800         here and there.
8801         
8802         * configure.ac: Add --enable-metadata-helper option (not enabled by
8803         default) to use the external metadata service
8804         * metadata/Makefile.am: Add new files
8805         * metadata/test-metadata.c:  Test program for the metadata service
8807         Fixes #329597. 
8809 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8811         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8812         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8813         (rb_podcast_source_cmd_new_podcast):
8814         Move 'new podcast' action to the podcast source, and add it to the
8815         toolbar.  Fixes #331562.
8817 2006-02-19  James Livingston  <jrl@ids.org.au>
8819         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8820         menus, and away from move-to-trash. Fixes bug 331013.
8822 2006-02-19  James Livingston  <jrl@ids.org.au>
8824         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8825         when deleting last entry. Fixes bug 331712.
8827 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8829         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8830         (rb_entry_view_button_press_cb):
8831         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8832         anywhere, and include a flag indicating whether the click was over an
8833         entry or not.
8834         
8835         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8836         (rb_playlist_source_songs_show_popup_cb):
8837         * sources/rb-playlist-source.h:
8838         Add the 'over entry' flag to the class show popup method, and in the
8839         default handler, ignore right clicks when not over an entry.
8840         
8841         * sources/rb-iradio-source.c:
8842         (rb_iradio_source_songs_show_popup_cb):
8843         * sources/rb-library-source.c:
8844         (rb_library_source_songs_show_popup_cb):
8845         * sources/rb-podcast-source.c:
8846         (rb_podcast_source_songs_show_popup_cb):
8847         Show the source list popup menu when right clicked while not over an
8848         entry.
8850         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8851         For the queue sidebar, always display the popup so the 'clear queue'
8852         action is available regardless of where you click.  For the queue
8853         source, only display the popup when right clicked over an entry.
8854         Fixes #331392.
8856 2006-02-19  James Livingston  <jrl@ids.org.au>
8858         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8859         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8860         entry view, when we're not even using it
8862         * rhythmdb/rhythmdb-property-model.c:
8863         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8864         function, rather than a copy of the code.
8866         * shell/rb-playlist-manager.c:
8867         (rb_playlist_manager_playlist_row_inserted_cb),
8868         (rb_playlist_manager_set_source_internal),
8869         (rb_playlist_manager_playlist_entries_changed): use the query-model
8870         directly, rather than the source's entry view.
8872         * shell/rb-source-header.c: don't use the entry view, just select the
8873         source widget.
8875 2006-02-18  James Livingston  <jrl@ids.org.au>
8877         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8879         * help/C/figures/rb-iradio-main.png:
8880         * help/C/figures/rb-notification-area-menu.png:
8881         * help/C/figures/rb-notification-window.png:
8882         * help/C/figures/rb-notification-zone.png:
8883         * help/C/figures/rb-podcast-main.png:
8884         * help/C/figures/rb-statusbar.png:
8885         * help/C/figures/rb-toolbar-prevplaynext.png:
8886         * help/C/figures/rb-toolbar-repeat.png:
8887         * help/C/figures/rb-toolbar-shuffle.png:
8888         * help/C/figures/rb-toolbar.png:
8889         * help/C/figures/rb-volume-changer.png:
8890         * help/C/figures/rb-window-small.png:
8891         * help/C/figures/rb-window.png:
8892         * help/C/rhythmbox.xml: Update user guide with some of the changes
8893         that have occurred after 0.8.8. From bug 314001.
8895 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8897         * rhythmdb/rhythmdb-query-results.h,
8898           rhythmdb/rhythmdb-query-results.c:
8899         New interface for objects that accept query results from RhythmDB.
8901         * rhythmdb/rhythmdb-query-model.c:
8902         (rhythmdb_query_model_query_results_init),
8903         (rhythmdb_query_model_set_query),
8904         (rhythmdb_query_model_add_results),
8905         (rhythmdb_query_model_query_complete):
8906         * rhythmdb/rhythmdb-query-model.h:
8907         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8909         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8910         (rhythmdb_tree_do_full_query):
8911         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8912         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8913         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8914         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8915         * rhythmdb/rhythmdb.h:
8916         Pass query results through the RhythmDBQueryResults interface, rather
8917         than directly to a RhythmDBQueryModel.
8919         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8920         (rb_podcast_manager_db_entry_deleted_cb):
8921         * sources/rb-auto-playlist-source.c:
8922         (rb_auto_playlist_source_do_query),
8923         (rb_auto_playlist_source_set_query):
8924         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8925         * sources/rb-library-source.c: (rb_library_source_constructor),
8926         (rb_library_source_do_query):
8927         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8928         (rb_podcast_source_do_query):
8929         * rhythmdb/rhythmdb-property-model.c:
8930         (rhythmdb_property_model_drag_data_get):
8931         Cast the query model to RhythmDBQueryResults when passing to one of
8932         the RhythmDB query methods.
8934         * rhythmdb/Makefile.am: Add new files.
8936 2006-02-18  James Livingston  <jrl@ids.org.au>
8938         * data/ui/rhythmbox-ui.xml:
8939         * shell/rb-playlist-manager.c:
8940         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8941         "queue playlist" item to source context menu. Fixes bug 330490.
8943 2006-02-18  James Livingston  <jrl@ids.org.au>
8945         * data/glade/general-prefs.glade:
8946         * shell/rb-shell-preferences.c:
8947         (rb_shell_preferences_column_check_changed_cb),
8948         (rb_shell_preferences_sync):
8949         * sources/rb-library-source.c: (rb_library_source_constructor):
8950         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8951         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8952         (rb_entry_view_append_column): Add a "quality" colume which indicates
8953         the bitrate of media. Part of bug 167659.
8955 2006-02-18  James Livingston  <jrl@ids.org.au>
8957         * shell/rb-play-order.c: (do_next_idle_cb),
8958         (default_playing_entry_removed): move to next track when playing entry
8959         is deleted. Fixes bug 131150.
8961         * shell/rb-shell-player.h: remove ancient stuff
8963 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8965         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8966         (rb_shell_clipboard_set_property): 
8967         * shell/rb-shell.c (rb_shell_sync_party_mode):
8968         Trigger a resync of the clipboard properties when changing party mode.
8970 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8972         * sources/rb-static-playlist-source.c: Fix includes.
8974         * sources/rb-source.c (rb_source_can_rename) 
8975         (rb_source_can_delete, rb_source_can_move_to_trash):
8976         Return FALSE if in party mode.
8978         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8979         Replace fullscreen with party mode.
8980         (rb_shell_window_delete_cb): Don't quit if in party mode.
8981         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8982         (window_state_event_cb): Try to deiconify shell when iconified
8983         in party mode.
8984         (rb_shell_sync_party_mode): Sync party mode properties.
8985         Currently, that means [de]sensitizing close, quit, and small-display,
8986         going into fullscreen mode with window stuck and kept above, and
8987         toggling queue-only for the shell player.
8988         (rb_shell_sync_smalldisplay): Sensitive party mode.
8989         (rb_shell_get_party_mode): Get party mode setting.
8991         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8992         (rb_shell_player_set_property, rb_shell_player_get_property):
8993         Add queue-only property.
8994         (rb_shell_player_entry_activated_cb): If in party mode
8995         only queue the entry on activation.
8997         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8998         Break out from set_properties.  Desensitize some actions when
8999         in party mode.
9000         (rb_playlist_manager_set_property): Break out set_source_internal.
9002         * data/rhythmbox.schemas: Remove fullscreen mode.
9004         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9005         action with party mode.
9007         Partial fix for #323933
9009 2006-02-17  James Livingston  <jrl@ids.org.au>
9011         * configure.ac:
9012         * shell/rb-removable-media-manager.c:
9013         (get_nautilus_burn_drive_for_path),
9014         (rb_removable_media_manager_playing_uri_changed_cb): only use
9015         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9016         over the list when it doesn't.
9018 2006-02-17  James Livingston  <jrl@ids.org.au>
9020         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9021         (rb_iradio_source_first_time_changed): Only do the import on the
9022         first change from FALSE to TRUE.
9024         * sources/rb-library-source.c:
9025         (rb_library_source_preferences_sync),
9026         (rb_library_source_library_location_cb): set the first-run done flag
9027         if the user presses close and then sets their watches library
9028         location. Fixes bug 325997.
9030 2006-02-17  James Livingston  <jrl@ids.org.au>
9032         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9033         removable media manager gobject properties
9035         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9036         (split_drive_from_cdda_uri),
9037         (rb_removable_media_manager_playing_uri_changed_cb),
9038         (rb_removable_media_manager_load_media): stop polling a cd drive
9039         when we are playing from it. Part of bug 330716.
9041 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9043         * rhythmdb/rhythmdb-query-model.c:
9044         (rhythmdb_query_model_set_property),
9045         (rhythmdb_query_model_finalize),
9046         (rhythmdb_query_model_base_entry_removed):
9047         Propagate entry removal from base models out to attached property
9048         models.  Fixes the rest of #331165.
9050 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9052         * rhythmdb/rhythmdb-property-model.c:
9053         (rhythmdb_property_model_row_inserted_cb),
9054         (rhythmdb_property_model_prop_changed_cb),
9055         (rhythmdb_property_model_insert):
9056         Don't store NULL as a hash table value if we want to use
9057         g_hash_table_lookup to check if a key exists, and get the checks for
9058         how and whether to handle entry changes the right way around.
9059         Fixes #331211 and half of #331165.
9061 2006-02-16  James Livingston  <jrl@ids.org.au>
9063         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9064         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9065         Fixes bug 329942.
9067 2006-02-16  James Livingston  <jrl@ids.org.au>
9069         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9070         actually reset the browsers.
9072 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9074         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9075         Escape the strings we pass into libnotify so we don't get blank
9076         notifications when the song name contains '&' etc.  Fixes #330784.
9078 2006-02-16  James Livingston  <jrl@ids.org.au>
9080         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9081         enable "View All" when there is only a search box and no browser.
9082         Fixes bug 331395.
9084 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9086         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9087         popup menu, which I forgot to commit with the patch for bug #330014.
9089 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9091         * shell/rb-shell-player.c: (open_location_thread):
9092         Sync button and entry view state once we've started the player, so the
9093         entry view gets into the playing state for iradio.
9095 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9097         * shell/rb-shell-player.c: (open_location_thread):
9098         Take GDK lock before doing anything UI-related.
9100 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9102         * shell/rb-shell.c: Move 'new iradio station' action to
9103         iradio source.
9105         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9106         (rb_iradio_source_init), (rb_iradio_source_finalize),
9107         (rb_iradio_source_constructor):
9108         Remove some unused stuff.
9110         (guess_uri_scheme), (rb_iradio_source_add_station),
9111         (rb_iradio_source_add_from_playlist),
9112         (impl_get_ui_actions), (new_station_location_added),
9113         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9114         action, include it in the toolbar, and make sure the URI we add has a
9115         scheme.  Fixes #327059, more or less.
9117 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9119         * sources/rb-play-queue-source.c:
9120         (rb_play_queue_source_class_init),
9121         (rb_play_queue_source_constructor),
9122         (rb_play_queue_source_update_count),
9123         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9124         Add a toolbar button to clear the play queue, and make it sensitive
9125         only when there are entries in the queue.  Fixes #330014.
9127         * sources/rb-source.c: (_rb_source_register_action_group):
9128         * sources/rb-source.h:  Add helper function to register an
9129         action group for a source.
9131         * sources/rb-library-source.c: (rb_library_source_constructor):
9132         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9133         (register_action_group):  Use _rb_source_register_action_group.
9135 2006-02-15  James Livingston  <jrl@ids.org.au>
9137         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9138         (rb_song_info_constructor), (rb_song_info_set_property): make
9139         tag-editing completion work for albums too.
9141 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9143         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9144         Check the 'limit' checkbox for time-limited playlists.
9146 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9148         * widgets/rb-song-info.c: Prove text-completion when editing title,
9149         artist or album
9151 2006-02-14  James Livingston  <jrl@ids.org.au>
9153         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9154         tray icon popup menu. Fixes bug 331026.
9156 2006-02-14  James Livingston  <jrl@ids.org.au>
9158         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9159         Ogg Vorbis streams, instead of the MP3 ones.
9161 2006-02-14  James Livingston  <jrl@ids.org.au>
9163         * rhythmdb/rhythmdb-property-model.c:
9164         (rhythmdb_property_model_class_init),
9165         (rhythmdb_property_model_drag_data_get):
9166         * rhythmdb/rhythmdb-query-model.c:
9167         (rhythmdb_query_model_title_sort_func):
9168         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9169         LOCATION as the key. Fixes bug 330601.
9171 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9173         * sources/rb-playlist-source.c: (playlist_iter_func):
9174         Make it compile with older versions of totem-plparser too.      
9176 2006-02-13  James Livingston  <jrl@ids.org.au>
9178         * rhythmdb/rhythmdb.h:
9179         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9180         structure private, since things should use the accessor functions
9181         rather than manipulating it directly - Only RhythmDB and the
9182         implementation classes should access it directly. Part of the RhythmDB
9183         cleanup of bug 330226.
9185         * iradio/rb-station-properties-dialog.c:
9186         (rb_station_properties_dialog_update_title),
9187         (rb_station_properties_dialog_update_title_entry),
9188         (rb_station_properties_dialog_update_genre),
9189         (rb_station_properties_dialog_update_location),
9190         (rb_station_properties_dialog_update_play_count),
9191         (rb_station_properties_dialog_update_bitrate),
9192         (rb_station_properties_dialog_update_last_played),
9193         (rb_station_properties_dialog_update_rating),
9194         (rb_station_properties_dialog_update_playback_error),
9195         (rb_station_properties_dialog_sync_entries):
9196         * podcast/rb-feed-podcast-properties-dialog.c:
9197         (rb_feed_podcast_properties_dialog_update_title),
9198         (rb_feed_podcast_properties_dialog_update_title_label),
9199         (rb_feed_podcast_properties_dialog_update_author),
9200         (rb_feed_podcast_properties_dialog_update_location),
9201         (rb_feed_podcast_properties_dialog_update_copyright),
9202         (rb_feed_podcast_properties_dialog_update_language),
9203         (rb_feed_podcast_properties_dialog_update_summary):
9204         * podcast/rb-podcast-manager.c:
9205         (rb_podcast_manager_entry_downloaded),
9206         (rb_podcast_manager_db_entry_added_cb),
9207         (download_progress_update_cb),
9208         (rb_podcast_manager_db_entry_deleted_cb):
9209         * podcast/rb-podcast-properties-dialog.c:
9210         (rb_podcast_properties_dialog_update_title),
9211         (rb_podcast_properties_dialog_update_title_label),
9212         (rb_podcast_properties_dialog_update_feed),
9213         (rb_podcast_properties_dialog_update_location),
9214         (rb_podcast_properties_dialog_update_play_count),
9215         (rb_podcast_properties_dialog_update_bitrate),
9216         (rb_podcast_properties_dialog_update_last_played),
9217         (rb_podcast_properties_dialog_update_rating),
9218         (rb_podcast_properties_dialog_update_date),
9219         (rb_podcast_properties_dialog_update_description):
9220         * rhythmdb/rhythmdb-query-model.c:
9221         (rhythmdb_query_model_entry_changed_cb),
9222         (rhythmdb_query_model_remove_from_main_list),
9223         (rhythmdb_query_model_update_limited_entries),
9224         (rhythmdb_query_model_drag_data_get),
9225         (rhythmdb_query_model_album_sort_func):
9226         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9227         (save_entry):
9228         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9229         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9230         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9231         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9232         (rhythmdb_entry_get_double):
9233         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9234         * shell/rb-play-order-random-by-age-and-rating.c:
9235         (rb_random_by_age_and_rating_get_entry_weight):
9236         * shell/rb-play-order-random-by-age.c:
9237         (rb_random_by_age_get_entry_weight):
9238         * shell/rb-play-order-random-by-rating.c:
9239         (rb_random_by_rating_get_entry_weight):
9240         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9241         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9242         (rb_shell_player_set_playing_entry),
9243         (rb_shell_player_sync_replaygain),
9244         (rb_shell_player_sync_with_source),
9245         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9246         * sources/rb-playlist-source.c: (playlist_iter_func),
9247         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9248         (rb_playlist_source_entry_added_cb):
9249         * sources/rb-podcast-source.c:
9250         (rb_podcast_source_post_status_cell_data_func):
9251         * sources/rb-source.c: (rb_source_update_play_statistics):
9252         * sources/rb-sourcelist-model.c:
9253         (rb_sourcelist_model_drag_data_get):
9254         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9255         (rb_static_playlist_source_add_entry),
9256         (rb_static_playlist_source_remove_entry):
9257         * widgets/rb-entry-view.c: (type_ahead_search_func),
9258         (rb_entry_view_playing_cell_data_func),
9259         (rb_entry_view_rating_cell_data_func),
9260         (rb_entry_view_pixbuf_clicked_cb):
9261         * widgets/rb-header.c: (rb_header_get_duration):
9262         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9263         (rb_song_info_populate_dialog),
9264         (rb_song_info_update_playback_error),
9265         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9266         (rb_song_info_update_location), (rb_song_info_update_play_count),
9267         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9268         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9269         (rb_song_info_sync_entry_single): fix the huge number of times that
9270         the internals got accessed directly.
9272 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9274         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9275         trash' are grouped together.
9276         * shell/main.c: (main): Pass no-registration flag in to RBShell
9277         constructor, rather than mysteriously always passing TRUE.
9278         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9279         Set dirty flag when entries are removed from the model, so the play
9280         queue is marked dirty appropriately.
9281         * AUTHORS: update my email address
9283 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9285         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9287         * widgets/rb-druid.c: (path_dialog_response_cb):
9288         If the URI is local, don't display the 'file://' prefix.  
9289         Fixes #330919.
9291 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9293         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9294         Attach the notification to the tray icon widget, so libnotify
9295         positions it less badly.  Fixes #330876.
9297 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9299         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9300         Reverse the selection list before returning it, so we get it in the
9301         right order.  Fixes #330283 and some other weirdness.
9303 2006-02-11  James Livingston  <jrl@ids.org.au>
9305         * shell/rb-shell.c: (rb_shell_constructor),
9306         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9307         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9308         make small-mode and fullscreen mutually exclusive, since they don't
9309         work together
9311         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9312         Mode.
9314 2006-02-10  James Livingston  <jrl@ids.org.au>
9316         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9317         since it can cause it to be slower than real-time. Should fix bug
9318         322270.
9320 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9322         * rhythmdb/rhythmdb-query-model.c:
9323         (rhythmdb_query_model_set_property):
9324         Think just a little bit harder about that last commit.
9326 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9328         * rhythmdb/rhythmdb-query-model.c:
9329         (rhythmdb_query_model_set_property):
9330         Get the check for hidden entries the right way around.
9331         Fixes #330527, #330514.
9333         (rhythmdb_query_model_set_sort_order):
9334         Ignore no-op sort order changes, so we don't get critical
9335         messages when selecting 'all' in auto playlist browsers.
9337 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9339         Patch by: Christophe Fergeau  <teuf@gnome.org>
9341         * sources/rb-removable-media-source.c:
9342         (rb_removable_media_source_init),
9343         (rb_removable_media_source_constructor):
9344         Move icon setup code to the constructor, as the volume property
9345         haven't been set yet when _init is called.
9347 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9349         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9350         Make the source pixbuf a dynamic property.
9352         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9353         (rb_source_set_pixbuf, rb_source_set_property) 
9354         (rb_source_get_property): Add icon property.
9356         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9357         (rb_auto_playlist_source_init):
9358         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9359         (rb_static_playlist_source_init):
9360         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9361         (rb_removable_media_source_init): 
9362         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9363         (rb_podcast_source_init): 
9364         * sources/rb-library-source.c (rb_library_source_class_init) 
9365         (rb_library_source_set_property, rb_library_source_get_property): 
9366         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9367         (rb_iradio_source_init): Remove impl_get_pixbuf and
9368         set icon property on source base class.
9370         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9371         a different icon for when the share is password protected
9372         and locked.
9373         (rb_daap_source_new): Set icon property.
9374         (composite_icons): Composite an emblem on a pixbuf.
9375         (create_pixbufs): Load global pixbufs.
9376         (destroy_pixbufs): unref global pixbufs.
9377         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9378         (connection_auth_cb, connection_connected_cb) 
9379         (connection_disconnected_cb): Update icon when connection
9380         status changes.
9381         (rb_daap_source_activate): Connect signals.
9383         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9384         dialog with parent.
9386         * daapsharing/rb-daap-marshal.list: Add new signal.
9388         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9389         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9391         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9392         Add authenticate, connected, and disconnected signals.
9393         (connection_get_password): emit authenticate signal instead
9394         of running dialog directly.
9395         (connection_connected, connection_disconnected): Emit signals.
9396         (handle_login): Emit connected signal.
9397         (handle_logout): Emit disconnected signal.
9398         (rb_daap_connection_do_something): Fix leak.
9400         Fixes #330291
9402 2006-02-09  James Livingston  <jrl@ids.org.au>
9404         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9405         entries from the base model if we don't have show-hidden set. Fixes
9406         bug 330514.
9408 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9410         * daapsharing/rb-daap-share.c (message_get_session_id):
9411         Ugh. Use strtoul instead of atoi.
9412         (session_id_validate): Add debug statements.
9414 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9416         * daapsharing/rb-daap-connection.c (http_response_handler):
9417         Report the actual uri from the message in debug statements.
9419 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9421         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9422         Add context argument.
9423         (message_get_session_id): New function to parse session id from
9424         the message.
9425         (message_get_revision_number): Break out function to parse
9426         revision number from the message.
9427         (session_id_validate): New function to validate given session id
9428         is valid for given context (ie. client address).
9429         (session_id_generate): Generate a random session id.
9430         (session_id_create): Create a unique session id and store it.
9431         (session_id_remove): Remove a session id from the store.
9432         (login_cb): Create a session id instead of using a constant one.
9433         (logout_cb): Validate session id.
9434         (update_cb): Use new message_get_revision_number function.
9435         (databases_cb): Validate session id.
9436         (server_cb): Add server context to argument list for callbacks.  It
9437         is needed to look up the remote host.
9438         (db_entry_changed_cb): Use braces.
9439         (soup_auth_callback): Remove FIXME.
9440         (rb_daap_share_server_start): Create session id store.
9441         (rb_daap_share_server_stop): Destroy session id store.
9443         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9444         Don't base64-encode password here since it needs to be
9445         combined with the username first.
9447         * daapsharing/rb-daap-connection.c (build_message):
9448         Add username to Authorization token.
9449         (handle_login, handle_song_listing) 
9450         (rb_daap_connection_do_something): Session id
9451         must be an unsigned int.
9453         Fixes #329814
9455 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9457         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9458         Don't check if we've got a playing entry, ask the player object (duh).
9459         Might actually fix #329993.     
9461 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9463         * sources/rb-static-playlist-source.c:
9464         (rb_static_playlist_source_add_list_uri):
9465         Canonicalise URIs before trying to add them to the playlist, and 
9466         don't try to add files to the database for which there is 
9467         already an entry.
9469 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9471         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9472         Don't ask the entry view if we're playing, just check if we've got a
9473         playing entry.  Fixes #329993.
9475 2006-02-08  James Livingston  <jrl@ids.org.au>
9477         * rhythmdb/rhythmdb-query-model.c:
9478         (rhythmdb_query_model_set_property),
9479         (rhythmdb_query_model_finalize),
9480         (rhythmdb_query_model_base_complete): remove
9481         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9482         don't get emitted for entry changes. Fixes bug 330301.
9484         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9485         (rb_library_browser_init), (rb_library_browser_constructor),
9486         (rb_library_browser_new): do stuff in the constructor, not the init
9487         function, so that the db property gets set on RBPropertyViews
9488         correctly. Fixes a crash when dragging properties to a playlist.
9490 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9492         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9493         Actually stop soup server.  Fixes #329816.
9495 2006-02-07  James Livingston  <jrl@ids.org.au>
9497         * lib/rb-util.h:
9498         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9499         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9500         (collate_values_cb), (rb_collate_hash_table_keys),
9501         (rb_collate_hash_table_values): add functions to compare, copy and
9502         free string-lists. add functions to collate the keys or values of a
9503         hash table into a list.
9505         * rhythmdb/rhythmdb-property-model.c:
9506         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9507         (_remove_entry_cb), (_add_entry_cb),
9508         (rhythmdb_property_model_set_property),
9509         (rhythmdb_property_model_get_property),
9510         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9511         (rhythmdb_property_model_row_inserted_cb),
9512         (rhythmdb_property_model_prop_changed_cb),
9513         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9514         that are hidden, storing those that we have counted in a hash-table.
9516         * shell/Makefile.am: fix build order issue
9518         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9519         * sources/rb-source.h:
9520         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9521         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9522         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9523         browser-toggled method, rename _get_exta_views to _get_property_views,
9524         since several things depend on returning only that.
9526         * sources/rb-source.c: (rb_source_class_init),
9527         (rb_source_browser_toggled), (default_get_property_views),
9528         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9529         (rb_source_gather_hash_keys),
9530         (rb_source_gather_selected_properties): above changes, and move some
9531         utility functions up from RBLibraryView
9533         * widgets/rb-property-view.c:
9534         (rb_property_view_selection_changed_cb): fix leak.
9536         * rhythmdb/rhythmdb-query-model.c:
9537         (rhythmdb_query_model_set_property),
9538         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9539         (rhythmdb_query_model_set_sort_order),
9540         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9541         query model being resorted.
9543         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9544         NULL query.
9546         * rhythmdb/rhythmdb.h:
9547         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9548         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9549         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9550         two queries. Add a function to append "property={X,Y,Z,...}" to a
9551         query.
9553         * sources/rb-library-source.c: (rb_library_source_class_init),
9554         (rb_library_source_finalize), (rb_library_source_constructor),
9555         (rb_library_source_cmd_choose_genre),
9556         (rb_library_source_cmd_choose_artist),
9557         (rb_library_source_cmd_choose_album), (impl_search),
9558         (impl_get_property_views), (impl_reset_filters),
9559         (rb_library_source_preferences_sync),
9560         (rb_library_source_browser_views_activated_cb),
9561         (rb_library_source_state_prefs_sync),
9562         (construct_query_from_selection), (rb_library_source_do_query),
9563         (rb_library_source_browser_changed_cb):
9564         * widgets/Makefile.am:
9565         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9566         browser" widgets, which contains several property views, based on the
9567         code from RBLibrarySource. Make RBLibrarySource use it.
9569         * sources/rb-auto-playlist-source.c:
9570         (rb_auto_playlist_source_class_init),
9571         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9572         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9573         (impl_get_property_views), (impl_browser_toggled),
9574         (construct_query_from_selection),
9575         (rb_auto_playlist_source_do_query),
9576         (rb_auto_playlist_source_set_query),
9577         (rb_auto_playlist_source_browser_changed_cb): Use the new
9578         library-browser widget to add browsers to automatic playlists.
9580 2006-02-07  James Livingston  <jrl@ids.org.au>
9582         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9583         properly.
9584         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9585         type of the source is taken into account. Fixes bug 329621.
9587 2006-02-07  James Livingston  <jrl@ids.org.au>
9589         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9590         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9591         1.1, and perform URI canonicalistion when first upgrading. This should
9592         fix our remaining canonicalisation issues, such as bug 329988.
9594 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9596         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9597         Track the playing entry when the entry view isn't in the playing
9598         state, so we don't have to get the state changes exactly right.
9599         Fixes #330135.
9601 2006-02-06  James Livingston  <jrl@ids.org.au>
9603         * shell/rb-shell-player.c: (open_location_thread),
9604         (rb_shell_player_open_location): fix several iradio issues: having to
9605         press play after double-clicking on a station, not working correctly
9606         without a http:// prefix, and ignoring totem-plparser results other
9607         than success or error (e.g. IGNORE).
9609 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9611         Addition of dbus methods for dealing with static playlists and the
9612         play queue.  Fixes #329958.
9614         * shell/Makefile.am:
9615         * shell/rb-playlist-manager.h:
9616         * shell/rb-playlist-manager.xml:
9617         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9618         (rb_playlist_manager_get_playlists),
9619         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9620         (rb_playlist_manager_create_static_playlist),
9621         (rb_playlist_manager_delete_playlist),
9622         (rb_playlist_manager_add_to_playlist),
9623         (rb_playlist_manager_remove_from_playlist),
9624         (rb_playlist_manager_export_playlist):
9625         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9626         to create, delete, list, modify, export, and import  static playlists.
9627         
9628         * shell/main.c: (main): Register playlist manager object with dbus.
9630         * shell/rb-shell.h:
9631         * shell/rb-shell.xml:
9632         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9633         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9634         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9635         object, and implement the addToQueue and removeFromQueue methods.
9636         
9637         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9638         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9639         formats.
9641 2006-02-05  James Livingston  <jrl@ids.org.au>
9643         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9644         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9645         (save_entry): allow storage of booleans in the on-disk db, and
9646         save/load the HIDDEN property.
9648         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9649         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9650         to the state it was when RB shutdown. This makes RB appear to start
9651         faster, as tracks can appear before the stat is done. Remote files
9652         still start hidden. From bug 325215.
9654 2006-02-05  James Livingston  <jrl@ids.org.au>
9656         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9657         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9658         really cares about the difference from "entry-added", and it isn't
9659         emitted by the tree backend anyway.
9661         * rhythmdb/rhythmdb-query-model.c:
9662         (rhythmdb_query_model_constructor):
9663         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9664         remove the references to the entry-restored signal.
9666 2006-02-05  James Livingston  <jrl@ids.org.au>
9668         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9669         issue.
9671 2006-02-05  James Livingston  <jrl@ids.org.au>
9673         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9674         things are NULL before using g_object_unref. Fixes bug 327452.
9676         * player/rb-recorder-gst.c: (rb_recorder_construct):
9677         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9678         rather than assertion.
9680         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9681         emit a warning, rather than asserting if an unknown playlist type is
9682         encountered.
9684 2006-02-05  James Livingston  <jrl@ids.org.au>
9686         * widgets/Makefile.am:
9687         * widgets/rb-simple-view.c:
9688         * widgets/rb-simple-view.h: Move the two features that this class
9689         provides into RBPropertyView, and remove this class. Closes bug
9690         327500.
9692         * podcast/rb-feed-podcast-properties-dialog.c:
9693         * podcast/rb-feed-podcast-properties-dialog.h:
9694         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9695         (rb_podcast_source_feeds_show_popup_cb):
9696         * sources/rb-podcast-source.h:
9697         * widgets/rb-property-view.c: (rb_property_view_class_init),
9698         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9699         (rb_property_view_append_column_custom),
9700         (rb_property_view_button_press_cb):
9701         * widgets/rb-property-view.h: Updated for the above change.
9703 2006-02-04  James Livingston  <jrl@ids.org.au>
9705         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9706         too close to Move to Trash and people aren't likely to use it often.
9708 2006-02-04  James Livingston  <jrl@ids.org.au>
9710         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9712 2006-02-04  James Livingston  <jrl@ids.org.au>
9714         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9715         passed a path instead of a URI.
9717         * sources/rb-generic-player-source.c: (default_get_mount_path):
9718         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9719         the path. This fixes bug 329723.
9721 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9723         * daapsharing/rb-daap-structure.c:
9724         (rb_daap_content_code_string_as_int32):
9725         Use network byte order.
9727 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9729         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9730         Use a hash for source lookup.
9731         (mdns_service_added, mdns_service_removed): Handle
9732         service-added and service-removed signals from RBDaapMdnsBrowser.
9733         (remove_source): GDestroyNotify function for when sources
9734         are removed from the hash.
9735         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9736         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9737         (rb_daap_sources_shutdown): Update.
9738         (source_host_find): GHRFunc for finding a source by ip.
9739         (rb_daap_source_find_for_uri): Use the hash source lookup.
9741         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9742         Namespace keys.
9743         (password_check_button_toggled_cb): Handle password enabled.
9744         (share_name_entry_focus_out_event_cb): Namespace keys.
9745         Handle changes more robustly.
9746         (share_password_entry_focus_out_event_cb): Handle password entry.
9747         (add_daap_preferences): Connect to password signals.
9749         * lib/rb-preferences.h: Add DAAP keys.
9751         * data/glade/daap-prefs.glade: Add password UI.
9753         * data/rhythmbox.schemas: Add password keys.
9755         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9756         assert with warning.
9758         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9759         gconf keys to lib/rb-preferences.h.  Namespace
9760         the gconf keys.
9761         (create_share): Add password support.
9762         (enable_sharing_changed_cb): Namespaced keys.
9763         (require_password_changed_cb): Handle key change.
9764         (share_name_changed_cb): Namespaced keys.
9765         (share_password_changed_cb): Handle key change.
9766         (rb_daap_sharing_init): Namespaced keys.
9767         (rb_daap_sharing_shutdown): Ditto.
9769         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9770         Add password property.
9771         (rb_daap_share_set_name): Break out prop set function.
9772         (published_cb): New RBDaapMdnsPublisher signal handler.
9773         (name_collision_cb): Ditto.
9774         (rb_daap_share_init): Create publisher object and
9775         connect to signals.
9776         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9777         (rb_daap_share_set_property): Break out prop set functions.
9778         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9779         Unref publisher.
9780         (rb_daap_share_new): Add password argument.  Start
9781         publishing and DAAP server.
9782         (message_set_from_rb_daap_structure): Change print to debug.
9783         (server_info_cb): Set auth method to publish.
9784         (logout_cb): Handle DAAP client logout.
9785         (update_cb): Remove C++ comments.
9786         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9787         (server_cb): Add debug.
9788         (soup_auth_callback): Handle auth requests.
9789         (rb_daap_share_server_start): Split up functions for starting
9790         server and publishing.  Add auth handling to server.
9791         (rb_daap_share_server_stop): Split stop server and publish.
9792         No C++ comments.
9793         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9794         Start and stop publishing.
9795         (rb_daap_share_restart): Restart server and publishing.
9796         (rb_daap_share_maybe_restart): Conditionally restart.
9798         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9799         (rb_daap_collision_dialog_new_run): Don't use
9800         separators in dialogs.
9802         * daapsharing/rb-daap-connection.h: Add private
9803         data to class structure.
9805         * daapsharing/rb-daap-connection.c: Move
9806         some includes to top of file.  Make private
9807         data struct name consistent with others.
9808         (rb_daap_connection_class_init): Rename
9809         private.
9810         (rb_daap_connection_init): Get and store the pointer
9811         to the private data once instead of in every
9812         function.  Create a username value "Rhythmbox_VERSION".
9813         (connection_get_password): Don't get private.
9814         (build_message): Ditto.
9815         (http_response_handler): Don't init variables in
9816         declaration.  Add debug.  Spacing.
9817         (http_get, entry_set_string_prop, handle_server_info) 
9818         (handle_login, handle_update, handle_database_info) 
9819         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9820         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9821         (rb_daap_connection_state_done): Don't get private.
9822         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9823         spacing.  Correctly base64 encode the Authentication token.
9824         Add username to auth token.
9825         (rb_daap_connection_get_playlists): Don't get private.
9826         (rb_daap_connection_dispose): Ditto.  Free username.
9827         (rb_daap_connection_set_property) 
9828         (rb_daap_connection_get_property): Don't get private.
9830         * daapsharing/Makefile.am: Conditionally
9831         compile MDNS backends.  Add marshall stuff.
9833         * daapsharing/.cvsignore: Update.
9835         * configure.ac: Add conditional to see which
9836         MDNS backend we should use.
9838         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9840         * daapsharing/rb-daap-marshal.list:
9841         * daapsharing/rb-daap-mdns-browser-avahi.c:
9842         * daapsharing/rb-daap-mdns-browser-howl.c:
9843         * daapsharing/rb-daap-mdns-browser.h:
9844         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9845         * daapsharing/rb-daap-mdns-publisher-howl.c:
9846         * daapsharing/rb-daap-mdns-publisher.h:
9847         Split rb-daap-mdns.c into two classes.  One for
9848         publishing and one for browsing.  Split out
9849         the avahi and howl backends into different files.
9851         Fixes #322966
9852         
9853 2006-02-04  James Livingston  <jrl@ids.org.au>
9855         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9857         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9858         crash if metadata reader gives us NULL for strings.
9860 2006-02-03  James Livingston  <jrl@ids.org.au>
9862         * shell/rb-shell-player.c: (open_location_thread),
9863         (rb_shell_player_open_location):
9864         retrieve iradio playlists files in a thread, so that with GStreamer
9865         0.10 the UI doesn't block while connecting to stations. The streamer
9866         connection is synchronous with 0.8, so that will still block (a bit).
9867         Fixed bug 128106.
9869         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9870         because _open_entry does that automatically when it is ready to.
9872 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9874         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9875         (rb_podcast_source_post_status_cell_data_func):
9876         Leave the podcast status column blank for episodes that have not been
9877         downloaded.
9879 2006-02-03  James Livingston  <jrl@ids.org.au>
9881         Add support for source-specific toolbar items, and make the Burn
9882         Playlist item only available for playlists. Also add Update All
9883         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9885         * data/ui/rhythmbox-ui.xml:
9886         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9887         (impl_get_ui_actions): make the Burn CD toolbar item only for
9888         playlists
9890         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9891         * lib/rb-stock-icons.h: load the Eject icon as stock.
9893         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9894         action
9896         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9897         (rb_shell_select_source):
9898         * sources/rb-source.c: (rb_source_class_init),
9899         (rb_source_disconnect), (default_get_ui_actions),
9900         (rb_source_get_ui_actions):
9901         * sources/rb-source.h: add support for source-specific toolbar items
9903         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9904         Eject and Rip toolbar items
9906         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9907         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9908         item.
9910 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9912         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9913         * shell/main.c: (main):
9914         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9915         Replace all g_critical calls with g_warning, since none of them are
9916         the sort of thing the process should die over.  Fixes #329398.
9918 2006-02-03  James Livingston  <jrl@ids.org.au>
9920         * configure.ac: mention gst-plugins-base in the error message for not
9921         finding GStreamer 0.10, since not having that will cause it to fail.
9923 2006-02-03  James Livingston  <jrl@ids.org.au>
9925         * configure.ac: fix typo that means you get the wrong error message if
9926         you explicity request a particular playback engine, and it can't be
9927         found.
9929 2006-02-03  James Livingston  <jrl@ids.org.au>
9931         * data/glade/library-prefs.glade: allow the watched library location
9932         to be a non-local place.
9934 ============ Version 0.9.3
9937 2006-02-02  James Livingston  <jrl@ids.org.au>
9939         * NEWS: update NEWS
9940         * configure.ac: bump version to 0.9.3
9942         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9943         <caillon@redhat.com>, fixed bug 329517. 
9945 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9947         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9949         * widgets/rb-song-info.c: (rb_song_info_constructor):
9950         Make year and disc number fields non-editable if tag editing
9951         is disabled.  Fixes #329463.
9953 2006-02-01  James Livingston  <jrl@ids.org.au>
9955         * rhythmdb/rhythmdb-property-model.c:
9956         (rhythmdb_property_model_row_inserted_cb),
9957         (rhythmdb_property_model_prop_changed_cb),
9958         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9959         correctly. Fixes bug 327061.
9961         * rhythmdb/rhythmdb-query-model.c:
9962         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9963         the HIDDEN property when an entry is removed for being hidden.
9965         * rhythmdb/rhythmdb-query-model.h:
9966         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9967         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9968         models's "connected" property. Whatever it was needed for seems to
9969         have gone.
9971 2006-02-01  James Livingston  <jrl@ids.org.au>
9973         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9975         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9976         (rb_shell_player_playing_changed_cb): block the signal to prevent
9977         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9978         button pausing.
9980 2006-02-01  James Livingston  <jrl@ids.org.au>
9982         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9983         /should/ now work, if the neccessary plugins get ported.
9985 2006-01-30  James Livingston  <jrl@ids.org.au>
9987         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9988         string properties to "Unknown" is the string is empty. Kind of fixes
9989         bug 327495.
9991         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9992         gettext calls once, rather than once per time the function is used.
9993         This stops us making tens of thousands of gettext calls on startup,
9994         which reduces the cpu-time of startup by 10-20%
9996 2006-01-29  James Livingston  <jrl@ids.org.au>
9998         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9999         (rhythmdb_add_uri):
10000         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10001         for files containing known video streams.
10004 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10006         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10007         required.
10009 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10011         * INSTALL.quick: More random updates
10013         * rhythmdb/rhythmdb-query-model.c:
10014         (rhythmdb_query_model_class_init),
10015         (rhythmdb_query_model_set_property),
10016         (rhythmdb_query_model_get_property),
10017         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10018         Remove user sort data handling, take a property ID and a reverse
10019         flag instead.
10020         (rhythmdb_query_model_insert_into_main_list),
10021         (rhythmdb_query_model_insert_into_limited_list),
10022         (rhythmdb_query_model_do_reorder),
10023         (_reverse_sorting_func):
10024         Handle reverse sorting by calling _reverse_sorting_func, which
10025         calls the real sort function and reverses the result.
10026         (rhythmdb_query_model_set_sort_order):
10027         Allow this to be called to set the initial sort order for limited
10028         queries, and handle reverse sorting when reordering.
10029         (rhythmdb_query_model_location_sort_func),
10030         (rhythmdb_query_model_album_sort_func),
10031         (rhythmdb_query_model_artist_sort_func),
10032         (rhythmdb_query_model_genre_sort_func),
10033         (rhythmdb_query_model_track_sort_func),
10034         (rhythmdb_query_model_double_ceiling_sort_func),
10035         (rhythmdb_query_model_ulong_sort_func),
10036         (rhythmdb_query_model_date_sort_func),
10037         (rhythmdb_query_model_string_sort_func):
10038         Sort functions moved from rb-entry-view.c.
10039         * rhythmdb/rhythmdb-query-model.h:
10040         Add the sort functions, and update the changed functions.
10041         
10042         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10043         Just call _resort_model when the query model is set, since it
10044         does all the same things.
10045         (rb_entry_view_append_column):
10046         Rework bits so the rating column doesn't have to be so much of a
10047         special case.
10048         (rb_entry_view_append_column_custom):
10049         Take a property ID to sort on, rather than arbitrary custom data.
10050         (rb_entry_view_resort_model):
10051         Query model does all the reverse sort handling now.
10052         * widgets/rb-entry-view.h: Update _append_column_custom.
10054         * sources/rb-play-queue-source.c:
10055         (rb_play_queue_source_constructor):
10056         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10057         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10058         (rb_podcast_source_post_date_cell_sort_func),
10059         (rb_podcast_source_post_status_cell_sort_func),
10060         (rb_podcast_source_post_feed_cell_sort_func):
10061         Updates required by all the other changes.
10063         * rhythmdb/rhythmdb-property-model.c:
10064         (rhythmdb_property_model_drag_data_get):
10065         Sort the query results on the selected property,
10066         so they arrive in the expected order.  All the other changes were made
10067         to make this possible.  Fixes bug #327494.
10069 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10070         
10071         * shell/rb-shell-clipboard.c:
10072         Use GTK_STOCK_REMOVE icon for the remove action in
10073         the play queue too.
10075 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10077         * sources/rb-play-queue-source.c:
10078         (rb_play_queue_source_constructor),
10079         (rb_play_queue_source_update_count):
10080         Don't make the 'queued songs' column clickable,
10081         and add the queued song count to the column title.
10083 2006-01-29  James Livingston  <jrl@ids.org.au>
10085         * configure.ac: remove "experimental" marking from DAAP, and enable by
10086         default if the dependencies are found.
10088 2006-01-29  James Livingston  <jrl@ids.org.au>
10090         * NEWS: update NEWS
10092 2006-01-29  James Livingston  <jrl@ids.org.au>
10094         patch by: William Jon McCann  <mccann@jhu.edu>
10096         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10097         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10098         property used for the feed list. Fixes problem with feeds with no
10099         episodes not showing up.
10101 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10102         
10103         * shell/rb-play-order-random-by-age-and-rating.c:
10104         (rb_random_by_age_and_rating_get_entry_weight):
10105         Fix compile errors, bug #328978.
10107 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10109         * INSTALL.quick, README: Random updates
10110         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10112 2006-01-28  James Livingston  <jrl@ids.org.au>
10114         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10115         default rating back to 0 (from 2.5, which was needed for autorating).
10117         * shell/rb-play-order-random-by-age-and-rating.c:
10118         (rb_random_by_age_and_rating_get_entry_weight):
10119         * shell/rb-play-order-random-by-rating.c:
10120         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10121         2.5 for the purposes of weighting entries.
10123 2006-01-28  James Livingston  <jrl@ids.org.au>
10125         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10126         translator comments, to make it clearer what the "friendly time"
10127         formatting strings mean.
10129 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10131         * daapsharing/rb-daap-connection.c: (http_response_handler):
10132         Fix the sense of the overflow check so it'll accept valid input.
10134 2006-01-27  James Livingston  <jrl@ids.org.au>
10136         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10138         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10139         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10141 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10143         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10144         
10145         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10146         Don't include the artist field in the window title if it's blank.
10147         Fixes #325973.
10149 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10151         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10152         Use stock delete icon for move to trash and stock remove
10153         for remove menu item.
10155 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10157         * shell/rb-shell.c: (rb_shell_constructor),
10158         (idle_handle_load_complete):  Don't start the playlist save
10159         timeout until we've loaded the playlists, otherwise we'll
10160         write an empty playlist file if startup takes too long.
10162 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10164         * shell/rb-shell.c: Make view toolbar toggle use
10165         shift+ctrl+t.  Fixes #327585.
10167 2006-01-25  James Livingston  <jrl@ids.org.au>
10169         patch by: Christope Fergeau  <teuf@gnome.org>
10171         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10172         (http_response_handler): fix a potential buffer overflow issue.
10174 2006-01-25  James Livingston  <jrl@ids.org.au>
10176         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10177         Year column wide enough to display "Unknown"
10179 2006-01-25  James Livingston  <jrl@ids.org.au>
10181         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10182         (rb_podcast_source_post_status_cell_data_func): make the episode
10183         status wording better. Part of bug 321607.
10185 2006-01-25  James Livingston  <jrl@ids.org.au>
10187         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10188         others with a separator.
10190         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10191         stock Delete icon.
10193 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10195         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10197 2006-01-23  James Livingston  <jrl@ids.org.au>
10199         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10200         0.3.2. Fixed bug 328158.
10202 2006-01-23  James Livingston  <jrl@ids.org.au>
10204         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10205         (gulong_gst_date_transform), (rb_metadata_class_init):
10206         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10208 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10210         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10211         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10212         (record_entry_change): Protect added_entries and changed_entries with
10213         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10215 2006-01-23  James Livingston  <jrl@ids.org.au>
10217         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10218         the browser for audio CDs.
10220 2006-01-22  James Livingston  <jrl@ids.org.au>
10222         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10223         NEVER_FAIL as it causes the daemon-not-running error to never be
10224         reported, resulting in bug 319438 re-occurring.
10226 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10228         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10229         Just call the podcast manager's update method.  Unbreaks the 'update
10230         all feeds' command.
10232 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10234         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10236 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10238         * configure.ac: Don't disable DAAP with gstreamer 0.10
10240         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10241         (rb_daap_src_class_init), (rb_daap_src_init),
10242         (rb_daap_src_finalize), (rb_daap_src_set_property),
10243         (rb_daap_src_get_property), (rb_daap_src_write),
10244         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10245         (_split_uri), (rb_daap_src_open):
10246         * daapsharing/rb-daap-src.h:
10247         Mostly fix seeking, handle chunked transfer encoding, and port to
10248         gstreamer 0.10.
10249         
10250         * player/rb-player-gst.c:
10251         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10252         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10254         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10255         being fixed.
10257 2006-01-21  James Livingston  <jrl@ids.org.au>
10259         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10260         for Year metadata in DAAP sources. Fixes bug 327700.
10262         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10264 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10266         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10267         enum values instead of magic numbers.
10269         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10270         Add number of songs that match each property title into
10271         the cell.  Also show the number of properties that match
10272         in the All entry.
10273         (rb_property_view_constructor): Use enum values instead of
10274         magic numbers.
10276         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10277         Query podcast posts instead of feeds for browser.  Use
10278         post SUBTITLE which is the location for the property view.
10279         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10280         (construct_query_from_selection) 
10281         (rb_podcast_source_cmd_delete_feed) 
10282         (rb_podcast_source_cmd_properties_feed) 
10283         (rb_podcast_source_cmd_update_feed): Use variable to make
10284         it clear what the selection data represents.
10285         (rb_podcast_source_feed_title_cell_data_func): Add number
10286         of posts that belong to each feed in the browser.
10288         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10289         (rhythmdb_property_model_delete_prop): Decrement the refcount
10290         for the All entry.
10291         (rhythmdb_property_model_get_column_type): Use column enum
10292         values instead of magic numbers.  Add NUMBER column.
10293         (rhythmdb_property_model_get_value): Use enum.
10294         Add NUMBER column that represents the refcount for
10295         the title of that property.
10296         (rhythmdb_property_model_perform_sync): Don't fake up
10297         a title for All here.
10299         Fixes #327372.
10300         
10301 2006-01-21  James Livingston  <jrl@ids.org.au>
10303         Make Rhythmbox start faster by not blocking the UI while database
10304         initialisation and loading occurs. Closes bug 323348.
10306         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10307         start 10 seconds later instead of immediately.
10308         
10309         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10310         safe to call from any thread.
10312         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10313         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10314         so the UI doesn't block.
10316 2006-01-18  James Livingston  <jrl@ids.org.au>
10318         * sources/rb-static-playlist-source.c:
10319         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10320         cause crashes. Oops. fixes bug 327477.
10322 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10324         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10325         Set GST element state to NULL before unreffing.
10326         Fixes #327422.
10328 2006-01-18  James Livingston  <jrl@ids.org.au>
10330         * sources/rb-static-playlist-source.c:
10331         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10332         type, since the playlists can contain non-song entries. Fixes bug
10333         327448.
10335         * sources/rb-play-queue-source.c:
10336         (rb_play_queue_source_class_init): disable the search box for the
10337         queue.
10339 2006-01-18  James Livingston  <jrl@ids.org.au>
10341         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10342         dragging of podcast episodes. Fixed bug 327450.
10344 2006-01-18  James Livingston  <jrl@ids.org.au>
10346         * rhythmdb/rhythmdb-query-model.c:
10347         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10348         dragging to an emoty playlist.
10350 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10352         * sources/rb-playlist-source-recorder.c:
10353         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10355 2006-01-17  James Livingston  <jrl@ids.org.au>
10357         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10359         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10360         different number of tracks than exist on the cd, since that happens
10361         with audio+data hybrid CDs. Part of bug 325046.
10363 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10365         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10366         Remove useless call to gtk_tree_view_column_set_clickable().
10368         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10369         Don't store sort data for columns if the sort function is NULL,
10370         so only sortable columns will be in the column sort data map.
10371         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10372         on clickable.
10373         (rb_entry_view_constructor):  The 'playing icon' column is never
10374         clickable, so don't connect a signal handler for it.
10376         Fixes bug 326811.
10378 2006-01-17  James Livingston  <jrl@ids.org.au>
10380         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10381         are 0.8 only. Fix element detection.
10383         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10384         saving the new metadata failed
10386 2006-01-17  James Livingston  <jrl@ids.org.au>
10388         * shell/rb-shell-player.c: (do_next_idle),
10389         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10390         (eos_cb): release audio device when a playlist finishes. Fixes bug
10391         323679.
10393 2006-01-17  James Livingston  <jrl@ids.org.au>
10395         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10396         canonicalise the URIs when things are added via library watching.
10398 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10400         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10401         Off by one error in default speed index.
10403 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10405         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10406         (update_speed_combobox, update_speed_combobox):
10407         Get a list of the actually supported write speeds from
10408         n-c-b >= 2.13.90.  Otherwise use fallback list.
10410 2006-01-17  James Livingston  <jrl@ids.org.au>
10412         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10413         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10414         don't get stuck on recursive symlinks. Fixed bug 125452.
10416 2006-01-17  James Livingston  <jrl@ids.org.au>
10418         Add support for mass-storage audio players. Players are detected via
10419         either the HAL "audio_player" capability, or a ".is_audio_player" file
10420         in the root of the volume. Closes bug 325602.
10422         * configure.ac: separate using HAL from ipod support.
10424         * lib/rb-file-helpers.c: (rb_uri_is_local):
10425         * lib/rb-file-helpers.h: add function to determine whether a URI is
10426         local.
10428         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10429         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10430         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10431         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10432         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10433         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10434         directories can be scanned for files to add as  non-SONG entries.
10436         * shell/rb-removable-media-manager.c:
10437         (rb_removable_media_manager_mount_volume): add checking for
10438         mass-storage players.
10440         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10441         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10442         (hal_udi_is_ipod):
10443         * sources/rb-removable-media-source.c:
10444         (rb_removable_media_source_class_init),
10445         (rb_removable_media_source_constructor): move some things up to the
10446         RBRemovableMediaSource, rather than making subclasses do it.
10448         * sources/Makefile.am:
10449         * sources/rb-generic-player-source.c:
10450         * sources/rb-generic-player-source.h: add mass-storage player source.
10452 2006-01-16  James Livingston  <jrl@ids.org.au>
10454         patch by: William Jon McCann  <mccann@jhu.edu>
10456         * rhythmdb/rhythmdb-query-model.c:
10457         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10458         commit.
10460 2006-01-16  James Livingston  <jrl@ids.org.au>
10462         Patch to add support for "chained queries" and putting hidden tracks
10463         in query models. Use chained queries to add search box support to
10464         normal playlists, and to make hidden entries not get lost. Fixes bug
10465         319278.
10467         * rhythmdb/rhythmdb-query-model.h:
10468         * rhythmdb/rhythmdb-query-model.c:
10469         (rhythmdb_query_model_class_init),
10470         (rhythmdb_query_model_set_property),
10471         (rhythmdb_query_model_get_property):
10472         (rhythmdb_query_model_finalize): add "show-hidden" and
10473         "base-model" properties.
10475         (rhythmdb_query_model_set_connected),
10476         (rhythmdb_query_model_has_pending_changes),     
10477         (rhythmdb_query_model_entry_added_cb),
10478         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10479         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10480         (rhythmdb_query_model_remove_entry),
10481         (rhythmdb_query_model_drag_data_received),
10482         (rhythmdb_query_model_base_row_inserted),
10483         (rhythmdb_query_model_base_row_deleted),
10484         (rhythmdb_query_model_base_non_entry_dropped),
10485         (rhythmdb_query_model_base_complete),
10486         (rhythmdb_query_model_base_entry_prop_changed),
10487         (rhythmdb_query_model_base_rows_reordered),
10488         (rhythmdb_query_model_row_drop_possible): handle base-model by
10489         chaining events and operations where necessary. Make hidden entries
10490         not get added only if "show-hidden" is false.
10492         (rhythmdb_query_model_child_index_to_base_index),
10493         (rhythmdb_query_model_base_index_to_child_index),
10494         (rhythmdb_query_model_get_entry_index): utility functions for handling
10495         base-model entries.
10497         (rhythmdb_query_model_reapply_query): apply the current query, and
10498         remove entries that don't match it.
10500         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10501         empty queries.
10503         * sources/rb-source.c: (rb_source_set_property): move the unref later
10504         to fix problem if it is the last reference.
10506         * sources/rb-static-playlist-source.c:
10507         (rb_static_playlist_source_class_init),
10508         (rb_static_playlist_source_init),
10509         (rb_static_playlist_source_finalize),
10510         (rb_static_playlist_source_constructor), (impl_reset_filters),
10511         (impl_search), (rb_static_playlist_source_do_query),
10512         (impl_save_contents_to_xml),
10513         (rb_static_playlist_source_add_location_internal): use a chained query
10514         model to filter out hidden entries and implement the search box.
10516 2006-01-15  James Livingston  <jrl@ids.org.au>
10518         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10519         the default playlist loading, which I broke earlier.
10521 2006-01-15  James Livingston  <jrl@ids.org.au>
10523         patch by: William Jon McCann  <mccann@jhu.edu>
10525         * sources/rb-playlist-source.c: (playlist_iter_func): use
10526         totem-plparser's new API version macros to check for API changes.
10527         Handle the recent API change.
10529 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10531         * sources/rb-library-source.c: (impl_get_config_widget):
10532         Ref the preferences object to match the unref in the
10533         finalizer.  Fixes some portion of #323505.
10535 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10537         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10538         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10539         Fix valgrind warnings about accessing uninitialised values.
10541 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10543         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10545 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10547         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10548         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10549         Stops the 'now playing' icon from being displayed after the play
10550         order finishes.
10552 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10554         * podcast/rb-podcast-manager.c:
10555         (rb_podcast_manager_db_entry_deleted_cb):
10556         Don't try to delete files we never downloaded, and cancel downloads
10557         for deleted episodes.  Fixes bug #326862.
10558         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10559         Don't complain about NULL data items in the selection list.
10561 2006-01-14  James Livingston  <jrl@ids.org.au>
10563         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10564         Make the name ofthe queue non editable. Fixes bug 326918.
10566 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10568         * sources/rb-playlist-source-recorder.c (burn_cd) 
10569         (ask_rewrite_disc): Don't use our locally copied functions
10570         if we have at least 2.13.
10572 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10574         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10575         Correct the argument type for the process_error signal.
10576         May fix bug #323154.
10578 2006-01-13  James Livingston  <jrl@ids.org.au>
10580         save the queue to disk when exiting, and reload on startup. Fixed bug
10581         326677 .
10583         * shell/rb-playlist-manager.c:
10584         (rb_playlist_manager_load_playlists),
10585         (rb_playlist_manager_save_playlists_async): don't disable saving of
10586         the queue
10588         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10589         add the queue source as a gobject property.
10591         * sources/rb-play-queue-source.c:
10592         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10593         code to save the queue to xml
10595         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10596         load the queue from xml.
10597         * sources/rb-playlist-xml.h:
10599         * sources/rb-static-playlist-source.c:
10600         (rb_static_playlist_source_load_from_xml),
10601         (rb_static_playlist_source_new_from_xml):
10602         * sources/rb-static-playlist-source.h: split the playlist xml loading
10603         from the static playlist creation function, so the queue can use it.
10605 2006-01-13  James Livingston  <jrl@ids.org.au>
10607         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10608         assertion that should be there. Fixes bug 325923.
10609         
10610         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10611         return NULL if the entry already exists (e.g. as another type).
10612         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10613         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10614         (rb_podcast_manager_insert_feed):
10615         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10616         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10617         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10618         for the above function returning NULL.
10620 2006-01-12  James Livingston  <jrl@ids.org.au>
10622         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10623         is enabled. Fixes bug 326673.
10624         
10625         * doc/reference/tmpl/eggtrayicon.sgml:
10626         * doc/reference/tmpl/rb-daap-src.sgml:
10627         * doc/reference/tmpl/rb-source.sgml:
10628         * doc/reference/tmpl/rb-statusbar.sgml:
10629         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10630         * doc/reference/tmpl/rhythmbox-unused.sgml:
10631         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10633 2006-01-11  James Livingston  <jrl@ids.org.au>
10635         * widgets/rb-song-info.c: (rb_song_info_constructor),
10636         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10637         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10638         the same value for properties. From bug 326054.
10640 2006-01-11  James Livingston  <jrl@ids.org.au>
10642         * sources/rb-source.h:
10643         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10644         (rb_shell_player_set_playing_source_internal), (eos_cb):
10645         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10646         every entry.
10648         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10649         source use this. Closes bug 322077.
10651 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10653         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10654         In order for set_icon_data_from_pixbuf() to be
10655         effective, one must not set an icon in _new().
10657 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10659         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10660         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10661         (egg_tray_icon_notify): Add support for libnotify 0.3.
10662         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10663         * configure.ac: Determine the version of libnotify.
10664         Fixes #326333.
10666 2006-01-08  James Livingston  <jrl@ids.org.au>
10668         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10669         trying to share a track with unknown length.
10671 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10673         * shell/rb-shell-player.c: (rb_shell_player_init):
10674         Sync volume on startup so it doesn't default to 0.
10676 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10678         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10679         (rb_shell_player_get_property), (rb_shell_player_open_location),
10680         (info_available_cb):  Add the iradio streamed song title as a
10681         property, and emit a signal when it changes.
10683         * shell/rb-shell.c: (rb_shell_constructor),
10684         (rb_shell_player_elapsed_changed_cb),
10685         (rb_shell_player_stream_song_changed_cb):
10686         Issue a notification when the iradio song title changes.
10687         Fixes #326166.
10689 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10691         * shell/rb-shell-player.c: (rb_shell_player_init),
10692         (rb_shell_player_finalize), (rb_shell_player_set_property),
10693         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10694         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10695         (rb_shell_player_set_volume_relative),
10696         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10697         (rb_shell_player_get_mute):
10698         * shell/rb-shell-player.h:
10699         * shell/rb-shell-player.xml:
10700         Store volume as a property on RBShellPlayer, rather than in gconf.
10701         Add some methods to control volume via dbus.
10703         * shell/rb-shell.c: (rb_shell_constructor),
10704         (rb_shell_volume_widget_changed_cb),
10705         (rb_shell_player_volume_changed_cb):
10706         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10707         Update volume using player properties rather than gconf, and sync the
10708         volume with the volume control button when something else changes it.
10709         Fixes #323840.
10711 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10713         * shell/rb-tray-icon.c (tray_popup_position_menu):
10714         Make tray menu align with edge of panel.
10716         patch from Jaap A. Haitsma <jaap@haitsma.org>
10717         Fixes #319913
10719 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10720         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10721         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10722         (rb_playlist_manager_new_playlist_from_selection_data):
10723         Make a reasonable default name for playlists created from
10724         dropped data.  Fixes #326116.
10726 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10728         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10729         Use new gconf key.
10730         (burn_cd): Always eject CD after burning.  Too many drives
10731         get confused if we don't.  Save the speed used if the burn
10732         was completed successfully.
10734         * data/rhythmbox.schemas: Use our own speed instead of from
10735         n-c-b. The situation is that the default_speed for n-c-b is most
10736         likely the maximum write speed.  This is fine for n-c-b because it
10737         has burn-proof turned on.  We can't turn it on for audio CDs
10738         because the results are poor in quality.  So we'll just pick a
10739         default that should work for everyone (4).
10741 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10742         
10743         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10744         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10746 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10748         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10749         in my previous commit.  Fixes #326037.
10751 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10753         patch by: Jonathan Matthew
10755         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10756         error on Fedora Rawhide.
10758 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10760         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10761         Assume HTTP URLs ending with .xml or .rss are podcasts.
10762         (rb_shell_add_uri): Handle adding podcast feeds.
10764         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10765         Register as the source for podcast feeds.
10767 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10769         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10770         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10771         (rb_shell_preferences_append_view_page):
10772         * shell/rb-shell-preferences.h:
10773         Fix typo in function name.  Fixes #325992.
10775 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10777         * shell/rb-audioscrobbler.c:
10778         Add '+' to the list of characters to URI-encode, so it doesn't get
10779         interpreted as a space.
10781 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10783         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10784         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10785         goes away while we're still trying to log in.
10787 2006-01-06  James Livingston  <jrl@ids.org.au>
10789         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10791 2006-01-06  James Livingston  <jrl@ids.org.au>
10793         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10794         support for Year to automatic playlists. Closes bug 321341.
10796         * rhythmdb/rhythmdb-query-model.c:
10797         (rhythmdb_query_model_set_property):
10798         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10799         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10800         (rhythmdb_query_free), (rhythmdb_query_serialize),
10801         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10802         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10803         * rhythmdb/rhythmdb.h: Support special
10804         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10805         year in date.
10807         * widgets/rb-query-creator-properties.c:
10808         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10809         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10811 2006-01-06  James Livingston  <jrl@ids.org.au>
10813         * configure.ac: make the playback backend selection work correctly
10815         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10816         (rb_daap_src_class_init), (rb_daap_src_dispose),
10817         (rb_daap_src_change_state), (rb_daap_src_initialize):
10818         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10819         doesn't work for this class. Fixes bug 325934
10821 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10823         * configure.ac: Fix check for libnotify.
10825 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10827         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10828         Get name element for current lang and remove all name nodes
10829         from the XML tree.
10830         (get_playlist_name_from_xml): Try to get name element or
10831         fall back to name attribute.
10832         (rb_playlist_source_new_from_xml): Get name before turning over
10833         to sub-types for parsing so that we can remove name elements
10834         from the tree if necessary.
10836         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10837         Load default playlists file if per user playlists are not found.
10839         * data/playlists.xml.in: 
10840         * data/Makefile.am: 
10841         * data/.cvsignore: Add default set of playlists.
10842         Fixes #323004
10844 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10846         * shell/main.c: (main): Don't use the dbus interface to show the
10847         window if we're also going to use the bonobo interface.
10849 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10851         * shell/rb-history.c: (rb_history_set_playing):
10852         Allow setting the playing song to NULL.
10853         (rb_history_append), (rb_history_delete_link):
10854         Don't randomly change position when entries are added and removed,
10855         it confuses play orders.
10856         
10857         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10858         Random orders always have a next entry if the model is not empty.
10859         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10860         Go back to the start of the history if we're past its end.
10862         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10863         (rb_shuffle_play_order_go_next): Go back to the start of the history
10864         if we're past its end.
10865         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10866         the history if the current entry is removed.
10868         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10869         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10870         the play order when the query has finished. This wasted about 10% CPU
10871         while the query was running.
10873         Fixes #324641: assertion failures when the query model was changed
10874         such that the playing song was no longer present.
10876 2006-01-05  James Livingston  <jrl@ids.org.au>
10878         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10879         (rb_daap_src_dispose), (rb_daap_src_change_state):
10880         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10881         (rhythmdb_gda_finalize):
10882         * widgets/rb-cell-renderer-pixbuf.c:
10883         * widgets/rb-cell-renderer-rating.c:
10884         (rb_cell_renderer_rating_class_init),
10885         (rb_cell_renderer_rating_finalize):
10886         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10887         * widgets/rb-load-failure-dialog.c:
10888         (rb_load_failure_dialog_class_init),
10889         (rb_load_failure_dialog_finalize):
10890         * widgets/rb-rating.c: (rb_rating_class_init),
10891         (rb_rating_finalize):
10892         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10893         (rb_search_entry_finalize): use G_DEFINE_TYPE
10895         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10897 2006-01-05  James Livingston  <jrl@ids.org.au>
10899         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10901         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10902         the tarball.
10904         * shell/rb-history.c: (rb_history_class_init),
10905         (rb_history_finalize):
10906         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10907         (rb_playlist_manager_finalize):
10908         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10909         (rb_remote_init): use G_DEFINE_TYPE.
10911 2006-01-05  James Livingston  <jrl@ids.org.au>
10913         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10914         changes
10916 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10918         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10919         Disable burn action when source is not a playlist.
10920         Fixes #323578.
10922 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10924         Optionally use libnotify to display song change and other
10925         notifications, and provide an option to disable notifications.
10926         Fixes #320355 and innumerable informal complaints.
10928         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10929         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10930         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10931         (egg_tray_icon_notify):
10932         * widgets/eggtrayicon.h:
10933         * configure.ac:
10934         * shell/Makefile.am:
10935         Optionally use libnotify instead of eggnotificationbubble.
10937         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10938         (rb_tray_icon_constructor), 
10939         (rb_tray_icon_show_notifications_changed_cb),
10940         (rb_tray_icon_hide_notify_cb)
10941         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10942         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10943         EggNotificationBubble pointer to eggtrayicon.
10945         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10946         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10947         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10949 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10951         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10952         Request a minimum size for the progress bar so that
10953         the window doesn't shrink too small.
10955 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10957         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10958         (add_db_entry), (db_entry_deleted_cb):
10959         Don't track the number of songs currently present, track the next ID
10960         to assign.  Fixes potential ID conflict problems.
10961         
10962         (db_entry_changed_cb), (rb_daap_share_start_publish),
10963         (rb_daap_share_stop_publish):
10964         Watch for db entry changes, and when songs become non-hidden after
10965         a successful stat, add them to the mapping tables.   Fixes #325178,
10966         making the DAAP server usable again.
10968 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10969         
10970         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10971         (rb_statusbar_construct), (rb_statusbar_init),
10972         (rb_statusbar_finalize), (rb_statusbar_set_property),
10973         (rb_statusbar_get_property), (rb_statusbar_new),
10974         (rb_statusbar_sync_with_source):
10975         * shell/rb-statusbar.h:
10976         Remove visibility management code, stop watching for play order
10977         changes (status bar doesn't show play order any more), remove unused
10978         'player' property, and some other minor cleanup.
10979         
10980         * shell/rb-shell.c: (rb_shell_constructor),
10981         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10982         (rb_shell_sync_statusbar_visibility):
10983         Manage status bar visibility here rather than in the status bar
10984         itself, so we can take small mode into account.  Fixes #323589.
10986 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10988         * widgets/eggnotificationbubble.c: (draw_bubble):
10989         Move the bubble off the visible screen while setting up bevels.  
10990         Fixes #316810.
10992 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10994         * shell/rb-shell-player.c: (rb_shell_player_init),
10995         (rb_shell_player_finalize): 
10996         Remove unused structure members.
10997         
10998         (do_next_idle), (rb_shell_player_error):
10999         Only queue one call to do_next_idle, so we don't skip tracks if we get
11000         two errors for the same song.  Fixes #325216.
11002 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11004         * data/glade/podcast-feed-properties.glade,
11005          podcast/rb-feed-podcast-properties-dialog.c:
11006         (rb_feed_podcast_properties_dialog_init),
11007         (rb_feed_podcast_properties_dialog_update):
11008         Add 'last episode' field to the podcast feed properties dialog.
11010         * podcast/rb-feed-podcast-properties-dialog.c:
11011         (rb_feed_podcast_properties_dialog_update_last_update),
11012         (rb_feed_podcast_properties_dialog_update_last_episode),
11013          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11014         Use last-seen property for the time at which we last updated the feed,
11015         and post-time for the time the last episode was published.
11017         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11018         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11019         feed, use last-seen (which in 0.9.2 was the last post time).
11021         Fixes #323894.
11023 2006-01-01  James Livingston  <jrl@ids.org.au>
11025         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11027         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11028         year from the ipod database.
11030 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11032         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11033         Only set the pipeline back to NULL state for really uninteresting
11034         files.  This was causing deadlocks with various video files.
11035         Fixes #324912.
11037 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11039         * data/glade/song-info-multiple.glade:
11040         Add disc number label and field.
11041         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11042         (rb_song_info_constructor): 
11043         Handle widgets for disc number.
11044         (rb_song_info_sync_entries_multiple):
11045         Set disc number property on selected entries.
11046         Fixes #324777.
11048 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11050         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11051         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11052         Activate the default widget when enter is pressed in these dialogs.
11053         Fixes #322887.
11055 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11057         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11058         Use rb_shell_player_get_playing_entry, so we get the right entry
11059         when playing from the queue.  Fixes #325379.
11061 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11063         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11064         Include podcast posts with no publication date.  Typically
11065         seen in static collections rather than feeds.
11067 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11069         * shell/main.c: (main): Don't attempt to handle
11070         bonobo-only arguments if we couldn't get a bonobo
11071         client proxy.
11073 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11075         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11076         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11077         abort if daap sharing is disabled and then re-enabled.
11079 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11081         * podcast/rb-podcast-parse.c (rb_insert_item):
11082         Add debugging.
11083         (rb_podcast_parser_start_element): Support itunes:image.
11084         Add debugging.  Don't abuse the break statement.  Warn
11085         if state is unknown.
11086         (rb_podcast_parser_end_element): Add debugging.  Warn
11087         if state is unknown.
11088         (rb_podcast_parser_characters): Warn if state is unknown.
11090         Fixes parsing of feeds that use the itunes:image element.
11091         Fixes #324632
11093 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11095         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11096         (stations_view_drag_data_received_cb):
11097         Remove calls to rhythmdb_entry_lookup_by_location, as
11098         rb_iradio_source_add_station does that anyway.
11099         
11100         (rb_iradio_source_add_from_playlist):
11101         If the URL doesn't point to a playlist, add it as the stream
11102         URL instead.
11104 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11106         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11107         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11108         so we don't get an assertion failure.
11109         Fixes #325025.
11111 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11113         * shell/main.c: (load_uri_args): don't compile this in if
11114         neither bonobo nor dbus are enabled.  Fixes #324890.
11116 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11118         * sources/rb-audiocd-source.c:
11119         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11120         so it closes the device.
11122 2005-12-20  James Livingston  <jrl@ids.org.au>
11124         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11125         so that it doesn't spend forever getting stuck on the one file. Don't
11126         report errors for failing to change state on known non-audio files.
11128         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11129         audio sink creation if we can't create the gconfaudiosink. This lets
11130         it work with only gst-plugins-base on 0.10.
11132 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11134         * rhythmdb/rhythmdb-query-model.c:
11135         (rhythmdb_query_model_set_sort_order):
11136         Fix a tiny memory leak in the previous commit.
11138 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11140         * rhythmdb/rhythmdb-query-model.c:
11141         (rhythmdb_query_model_set_sort_order):
11142         Don't try to emit reorders for empty query models, since it doesn't
11143         achieve anything and it results in a few warnings.
11145 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11147         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11148         Make burn dialog non-resizable so that the expander can shrink.
11149         Fixes #308951.
11151 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11153         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11154         add entries without a location, rather than those with one.
11156 2005-12-19  James Livingston  <jrl@ids.org.au>
11158         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11159         the error isn't set.
11161 2005-12-19  James Livingston  <jrl@ids.org.au>
11162         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11163         add entries without a location. Fixes bug 324290.
11165         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11166         without a location.
11168         * shell/main.c: (main): don't crash if dbus initialisation fails
11169         without setting an error
11171 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11173         * sources/rb-library-source.c: Remove unused structure members
11174         (rb_library_source_do_query): Actually use the cached 'all' query.
11175         Fixes #324025.
11176         
11177 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11179         * sources/rb-audiocd-source.c 
11180         (rb_audiocd_get_cd_info): tab
11181         (rb_audiocd_scan_songs): Return boolean success/failure,
11182         fix error messages a bit.
11183         (metadata_cb): Don't crash if we have no tracks
11184         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11185         the CD.
11186         Fixes #324222.
11188 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11190         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11191         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11192         key.
11194         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11195         Fixes #324157
11197 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11199         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11200         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11201         (fullscreen_changed_cb): 
11202         * lib/rb-preferences.h: 
11203         * data/ui/rhythmbox-ui.xml: 
11204         * data/rhythmbox.schemas:
11205         Add fullscreen mode.
11207         Fixes #324075.
11209 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11211         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11212         configure.  It was not working with RPM.
11213         * data/Makefile.am: Switched dbus directory location to use
11214         datadir instead of variable that was not working.
11216 2005-12-13  James Livingston  <jrl@ids.org.au>
11218         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11220         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11221         the podcast browser work again. Closes bug 323856.
11223 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11225         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11226         Remove C99ism.
11228         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11229         (rb_utf_friendly_time):
11230         * lib/rb-cut-and-paste-code.h:
11232         * podcast/rb-feed-podcast-properties-dialog.c:
11233         (rb_feed_podcast_properties_dialog_parse_time):
11234         * podcast/rb-podcast-properties-dialog.c:
11235         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11236         to display the date in a more user friendly way.
11237         For example, if the feed was updated yesterday it will say:
11238         Last updated: Yesterday 10:00 AM
11239         instead of printing the date.
11241 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11243         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11244         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11245         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11246         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11247         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11248         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11249         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11250         (rb_podcast_parse_date): Add support for some real world
11251         date formats.
11252         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11253         (rb_podcast_parse_item_free): Style and no need to check
11254         for NULL before g_free.
11256         May fix #323742
11258 2005-12-12  James Livingston  <jrl@ids.org.au>
11260         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11261         with gstreamer 0.10, which replaced audioscale.
11263         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11264         function to free the SoupSession
11266         * shell/rb-source-header.c: (rb_source_header_set_property),
11267         (rb_source_header_disclosure_toggled_cb),
11268         (rb_source_header_view_browser_changed_cb),
11269         (rb_source_header_sync_control_state):
11270         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11271         * sources/rb-library-source.c: (rb_library_source_class_init):
11272         * sources/rb-source.c: (rb_source_class_init),
11273         (rb_source_get_status), (default_get_browser_key),
11274         (rb_source_get_browser_key), (rb_source_can_browse),
11275         (rb_source_notify_status_changed),
11276         (rb_source_notify_filter_changed):
11277         * sources/rb-source.h: seperate the enabling of browsers from the use
11278         of a gconf key.
11280 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11282         * data/glade/podcast-feed-properties.glade: 
11283         * data/glade/podcast-properties.glade: Use scrolled viewports
11284         for description text.  Fix regression of #320509.
11286 2005-12-11  James Livingston  <jrl@ids.org.au>
11288         * sources/rb-auto-playlist-source.c:
11289         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11290         (impl_search), (rb_auto_playlist_source_do_query),
11291         (rb_auto_playlist_source_set_query),
11292         (rb_auto_playlist_source_get_query): add support for the search box
11293         to automatic playlists.
11295         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11296         memory leak.
11298 2005-12-11  James Livingston  <jrl@ids.org.au>
11300         * NEWS: update NEWS
11302 2005-12-11  James Livingston  <jrl@ids.org.au>
11304         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11305         (rhythmdb_load), (monitor_subdirectory),
11306         (rhythmdb_sync_library_location):  start the library sync and
11307         monitoring in an idle callback.
11309 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11311         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11312         (rb_podcast_source_constructor): Remove unused pixbuf column.
11313         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11314         Use consistent style.
11316         Fixes #322961.
11318 2005-12-11  James Livingston  <jrl@ids.org.au>
11320         * rhythmdb/rhythmdb-property-model.c:
11321         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11322         (rhythmdb_property_model_insert),
11323         (rhythmdb_property_model_delete_prop):
11324         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11325         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11326         (destroy_tree_property):
11327         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11328         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11329         GMemChunks, they are crap and deprecated. Improves startup-time and
11330         memory usage slightly.
11332 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11334         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11335         Added license and website info.
11337         * MAINTAINERS.old: Add Colin.
11338         * MAINTAINERS: Add James.
11339         * AUTHORS: Put back in order.  Add extra space between name and email
11340         to make it easier to read.  Add James and jonathan.
11342         * widgets/rb-song-info.c (rb_song_info_init) 
11343         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11345 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11347         Play queue implementation. Closes bug 107787.
11349         * data/rhythmbox.schemas: add items for whether the queue should be
11350         displayed as a sidebar, and the height of the sourcelist if it is.
11352         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11353         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11354         add popups for queue as source and as sidebar.  We need a separate
11355         popup for the sidebar view because otherwise it's hard to tell which
11356         of the visible entry views the action came from.
11358         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11360         * po/POTFILES.in: Add new file
11362         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11363         Add helper function for deciding if a podcast episode is available for
11364         playback.
11366         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11367         reorder entries in the query model.
11368         (idle_process_update): Handle new update type used to insert entries
11369         at a particular position in the query model.
11370         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11371         parameter to specify the position (-1 meaning 'at the end').
11372         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11373         parameter.
11374         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11375         bad entry removal updates for entries that aren't in the model.
11376         (rhythmdb_query_model_emit_reorder): Add helper function for
11377         reordering rows.
11378         (rhythmdb_query_model_move_entry): New method for moving entries
11379         around in the model
11380         (rhythmdb_query_model_entry_added_cb),
11381         (rhythmdb_query_model_update_limited_entries),
11382         (rhythmdb_query_model_do_reorder),
11383         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11384         use rhythmdb_query_model_emit_reorder where appropriate.
11386         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11387         Don't allow the queue to be deleted.
11388         (handle_playlist_entry_cb): Update for method signature change
11389         (rb_playlist_manager_save_playlists_async),
11390         (rb_playlist_manager_get_playlists): Don't save the play queue,
11391         don't report it as a playlist.
11393         * shell/rb-play-order.c: Include queue play order in the list of
11394         available orders.
11396         * shell/rb-shell.c
11397         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11398         for access to the clipboard object.
11399         (rb_shell_constructor): Handle playing-from-queue signal to update the
11400         sourcelist display; add queue sidebar in to UI, listen for queue
11401         sidebar pane changes, and read initial settings from gconf.
11402         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11403         Only tell the sourcelist the source has changed if the new source is 
11404         not the queue, as we update the sourcelist differently in that case.
11405         (rb_shell_set_window_title): Only use the cached window title if the
11406         playing state was the same when it was created.
11407         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11408         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11409         sourcelist is hidden and the queue is shown as a source.
11410         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11411         mode, since it doesn't make any sense.
11412         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11413         too.
11414         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11415         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11416         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11417         playing from queue shown as sidebar.
11419         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11420         MusicProperties action here from rb-shell-player.c, since it acts like
11421         cut/copy/paste etc.
11422         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11423         (rb_shell_clipboard_get_property): new property for queue source.
11424         Watch for selection changes in the sidebar entry view as well as the
11425         normal one.
11426         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11427         actions and MusicProperties.
11428         (rb_shell_clipboard_cmd_queue_delete),
11429         (rb_shell_clipboard_cmd_add_song_to_queue),
11430         (rb_shell_clipboard_cmd_song_info),
11431         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11433         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11434         actually came from (could be the playing source, or the queue), add a 
11435         new play order object for the queue, add a property for the queue
11436         source, add a signal for when we switch between playing from the
11437         source and from the queue.
11438         (rb_shell_player_set_property): Handle playing directly from the
11439         queue so we stop once the queue is empty.  Create queue play order
11440         when we get the queue source.
11441         (rb_shell_player_get_playing_source): Return the source we're actually
11442         playing from.
11443         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11444         that's where it is.
11445         (rb_shell_player_set_playing_entry): Update the queue play order if 
11446         that's where we're playing from.
11447         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11448         queue into consideration too.
11449         (swap_playing_source): Helper function for switching the playing
11450         source.
11451         (rb_shell_player_do_previous): Check the queue, even though there's
11452         never a previous entry in it (yet), swap playing source if it changed.
11453         (rb_shell_player_do_next): Check the queue for entries to play before
11454         the normal play order, and swap playing source if it changed.
11455         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11456         entries to go to as well.
11457         (rb_shell_player_playpause): Check the queue before the selection and
11458         the play order, and swap playing source if it changed.
11459         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11460         (rb_shell_player_entry_activated_cb): Use
11461         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11462         activating queue entries work properly (move the activated entry to
11463         the start of the queue and then play it); if we were playing from the
11464         queue, clear its playing entry so it'll start again from the start
11465         after the activated entry.
11466         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11467         to rb-shell-clipboard.c
11468         (actually_set_playing_source): Add helper for updating the playing
11469         source.
11470         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11471         signal if we stop or start doing so; use actually_set_playing_source; 
11472         emit playing-source-changed if we actually did change source.
11474         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11475         rb_static_playlist_source_add_location.
11477         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11478         enqueueing of songs from the library.
11480         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11481         enqueueing of sonsg from playlists.
11482         (rb_playlist_source_entry_added_cb): Add extra parameter for
11483         rhythmdb_query_model_add_entry.
11484         
11485         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11486         Implement (can_)add_to_queue for this class.
11487         (rb_podcast_source_entry_activated): Use
11488         rb_podcast_manager_entry_downloaded.
11489         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11490         been downloaded is selected.
11491         (impl_add_to_queue): Only add downloaded entries to the queue.
11493         * sources/rb-source.{c,h}:
11494         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11495         methods.
11496         (rb_source_class_init): Don't allow enqueueing by default; implement 
11497         add_to_queue though.
11498         (default_add_to_queue): Add all selected entries to the queue.
11499         
11500         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11501         would be playing if there wasn't anything in the queue).
11502         (set_source_playing): Helper function for manipulating tree store.
11503         (rb_sourcelist_set_playing_source): Use set_source_playing
11504         (rb_sourcelist_preempt_playing_source): Update preempted source
11505         pointer, manipulate source states.
11507         * sources/rb-static-playlist-source.{c,h}:
11508         (rb_static_playlist_source_add_location_internal),
11509         (rb_static_playlist_source_add_location),
11510         (rb_static_playlist_source_add_entry): Add index parameter for
11511         specifying where in the playlist the new entry goes.
11512         (rb_static_playlist_source_new_from_xml), (impl_paste),
11513         (rb_static_playlist_source_add_list_uri),
11514         (rb_static_playlist_source_add_location_swapped),
11515         (rb_static_playlist_source_add_locations),
11516         (rb_static_playlist_source_non_entry_dropped),
11517         (rb_static_playlist_source_row_inserted):
11518         Handle new index parameter everywhere it appears
11519         (rb_static_playlist_source_move_entry): New method for moving entries
11520         around in the playlist.
11522         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11523         warnings when trying to scroll entry views that have never been
11524         displayed.
11526         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11527         play order that removes the old entry when switching to a new one.
11529         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11530         static playlist subclass that has a second entry view for the sidebar
11531         view using alternate formatting, and that displays the number of
11532         entries it contains in its source list entry.
11534 2005-12-10  James Livingston  <jrl@ids.org.au>
11536         * rhythmdb/rhythmdb-query-model.c:
11537         (rhythmdb_query_model_add_entry),
11538         (rhythmdb_query_model_drag_data_received):
11539         * sources/rb-static-playlist-source.c:
11540         (rb_static_playlist_source_non_entry_dropped): when things are
11541         dropped, ignore any blank lines in the list of uris. Make the source
11542         responsible for adding new items to the db.
11544         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11545         empty string.
11547 2005-12-10  James Livingston  <jrl@ids.org.au>
11549         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11550         (rb_shell_player_sync_buttons),
11551         (rb_shell_player_selection_changed_cb): watch for the
11552         "selection-changed" signal, so that the Song Properties get enabled.
11553         Closes bug 323694.
11555 2005-12-10  James Livingston  <jrl@ids.org.au>
11557         * data/rhythmbox.schemas: fix the gconf schema
11559 2005-12-10  James Livingston  <jrl@ids.org.au>
11561         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11562         the decoded-pad callback with gstreamer 0.8, it causes problems.
11564 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11566         Remove more junk from RBEntryView. Closes bug 323640.
11568         * widgets/rb-entry-view.{c,h}:
11569         Remove unused private structure members, replace 'playing' boolean
11570         with an enum (so we know if we're paused too), and store a pointer to
11571         the RBShellPlayer too.  
11572         (rb_entry_view_class_init), (rb_entry_view_set_property),
11573         (rb_entry_view_get_property):
11574         Remove 'entry-selected' and 'changed' signals and
11575         'playing-entry' property, add 'selection-changed' signal and
11576         'shell-player' and 'playing-state' properties.
11577         (rb_entry_view_new): Take the shell player object reference
11578         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11579         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11580         No longer needed, shell player is the place to get this information.
11581         (rb_entry_view_busy), (rb_entry_view_get_duration),
11582         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11583         (rb_entry_view_get_next_from_entry),
11584         (rb_entry_view_get_previous_from_entry),
11585         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11586         (rb_entry_view_get_num_entries):
11587         Removed, callers should go to the query model directly.
11588         (rb_entry_view_playing_song_changed): Update active query model, emit
11589         row changed signals to update pixbufs, and scroll to the playing song
11590         when the playing song changes, based on a signal from the shell
11591         player.
11592         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11593         (emit_entry_changed): Evil, removed.
11594         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11595         selection-changed signal.
11596         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11597         Remove selection lock.  It didn't work anyway.
11598         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11599         (rb_entry_view_emit_row_changed): Simple helper function to emit
11600         row-changed signals.
11602         * widgets/Makefile.am: Entry view needs headers from the shell/
11603         directory.
11604         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11606         scrolling the entry view to show the entry being displayed.
11607         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11608         'source' property so we can watch for query model changes.
11609         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11610         (rb_song_info_set_property): Watch for query model changes, don't
11611         watch for entry view changes.
11612         (rb_song_info_new): Take source as a parameter, use the source's entry
11613         view unless one was specifically supplied.
11614         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11615         Use query model rather than entry view to move between songs.
11616         (rb_song_info_update_buttons): Use query model.
11617         (rb_song_info_query_model_changed_cb): Handle query model changes.
11619         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11620         Only one copy of the code to enable/disable the CD burning action
11621         (rb_playlist_manager_playlist_entries_changed):
11622         Use the query model to get the number of entries, not the entry view.
11624         * shell/rb-play-order-random-by-age-and-rating.c,
11625         shell/rb-play-order-random-by-age.c,
11626         shell/rb-play-order-random-by-rating.c,
11627         shell/rb-play-order-random-equal-weights.c:
11628         Use G_DEFINE_TYPE
11630         * shell/rb-shell-player.{c,h}:
11631         Remove a few unused entries from the structure.
11632         (rb_shell_player_set_property):
11633         Don't use the 'changed' signal on the entry view (it's evil)
11634         (rb_shell_player_have_first): No longer needed
11635         (rb_shell_player_play): Just tell the entry view it's playing
11636         (rb_shell_player_playpause): Tell the entry view it's paused
11637         when pausing.
11638         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11639         (rb_shell_player_property_row_activated_cb):
11640         Get the entry to play using the query model, not the entry view.
11641         (rb_shell_player_sync_buttons): Update entry view state while we're
11642         here.
11643         (rb_shell_player_set_playing_source_internal): Update entry view state
11644         (rb_shell_player_get_playing): Ask the entry view, not the player.
11645         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11646         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11647         the window title and tray icon tooltip.
11648         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11650         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11651         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11652         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11653         view constructor, pass the source in to the song info widget
11654         constructor.
11656         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11657         Use 'selection-changed' instead of 'changed', since that's what the
11658         clipboard cares about.
11659         (rb_shell_clipboard_set_source): Don't die if source == NULL
11661 2005-12-10  James Livingston  <jrl@ids.org.au>
11663         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11664         * sources/rb-playlist-source-recorder.c:
11665         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11666         stuff not use the deprecated API when compiled against 2.13
11668 2005-12-10  James Livingston  <jrl@ids.org.au>
11670         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11672         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11673         problem where the genre tag was getting set to the artist. Closes bug
11674         323642.
11676 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11678         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11679         Return NULL if can't get first iter.
11681         Fixes #323663
11683 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11685         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11686         updated rb_station_properties_dialog_new API.
11687         (rb_iradio_source_add_from_playlist): New public function.
11688         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11690         * shell/rb-shell.c (new_station_location_added): Handle
11691         iradio location added signal.
11692         (rb_shell_cmd_new_station): Use new iradio station dialog.
11694         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11695         (rb_station_properties_dialog_new): Don't squeeze new
11696         station functionality into this class.
11697         (rb_station_properties_dialog_response_cb): ditto.
11698         (rb_station_properties_dialog_update_title): Make
11699         consistent with other properties dialogs.
11700         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11702         * iradio/rb-new-station-dialog.[ch]: 
11703         * iradio/Makefile.am: Add new station dialog.
11705         * data/glade/station-new.glade: New file based on
11706         new podcast feed dialog.
11707         * data/glade/station-properties.glade: Updated to
11708         be consistent with song properties dialog.
11710         Fixes #323306.
11712 2005-12-10  James Livingston  <jrl@ids.org.au>
11714         patch by: Ståle Lyngaas <staale@lyngaas.com>
11716         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11717         submit songs longer than 30 minutes. Fixes bug 323639.
11719 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11721         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11722         async save function.
11723         (rb_shell_finalize): Remove save timeout sources.  Reorder
11724         steps a bit to make saving db and playlists a bit more
11725         failsafe in case something goes wrong later.
11726         (rb_shell_constructor): Keep track of save timeout source.
11727         (add_to_library_response_cb): Keep track of db save timeout source.
11729         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11730         g_atomic.
11731         (rb_playlist_manager_shutdown): New function to shutdown
11732         threads etc. before exit.
11733         (rb_playlist_manager_finalize): Moved handling outstanding
11734         threads stuff to shutdown since if there are outstanding threads
11735         they hold a ref and finalize is never called.
11736         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11737         of signal which may be required for sync save.
11738         (rb_playlist_manager_save_playlists_async): Renamed old
11739         save_playlists to save_playlists_async.  Use g_atomic.
11740         (rb_playlist_manager_save_playlists): New function to
11741         perform sync saves (symmetric with RhythmDB API).
11742         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11744         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11745         Style consistency anality.
11746         (rhythmdb_finalize): Remove save timeout source.
11747         (rhythmdb_set_property, rhythmdb_get_property) 
11748         (rhythmdb_process_events): More anality and keep track of
11749         save timeout source.
11750         (action_thread_main): No need to call g_thread_exit.
11751         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11752         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11753         (write_encoded_gvalue, read_encoded_property): La la la.
11755         Fixes #322940.
11757 2005-12-10  James Livingston  <jrl@ids.org.au>
11759         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11760         non-audio files.
11762 2005-12-10  James Livingston  <jrl@ids.org.au>
11764         * Makefile.am:
11765         * configure.ac: remove the rpm spec files, so that automake works.
11766         oops
11768         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11769         locking issue
11771 2005-12-09  James Livingston  <jrl@ids.org.au>
11773         * debian/: try to get cvs to actually remove the files
11775 2005-12-09  James Livingston  <jrl@ids.org.au>
11777         * rhythmbox.spec.in:
11778         * debian/: remove the distro package stuff, they are *really* old, and
11779         downstream manage it anyway.
11781 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11783         Rework play orders to work off query models rather than 
11784         entry views, and track the playing entry themselves rather
11785         than relying on the entry view to do it.  This makes the entry
11786         view mostly just a widget. Closes bug 323612.
11788         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11789         Use query model rather than entry view to get the number
11790         of entries in playlists.
11792         * rhythmdb/rhythmdb-query-model.{c.h}
11793         (rhythmdb_query_model_tree_path_to_entry),
11794         (rhythmdb_query_model_iter_to_entry),
11795         (rhythmdb_query_model_get_next_from_entry),
11796         (rhythmdb_query_model_get_previous_from_entry):
11797         New utility functions for iterating through query models.
11798         (rhythmdb_query_model_compute_status_normal):
11799         Have one copy of this code, not four.
11801         * shell/rb-play-order.{c,h}:
11802         Add signals for when next/previous availability changes, and
11803         when the playing entry is removed, and add a property for
11804         the current playing entry.  Add gtkdoc comments too.
11805         (rb_play_order_class_init): Add new property and signals.
11806         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11807         (rb_play_orer_query_model_changed_cb),
11808         (rb_play_order_query_model_changed): 
11809         Use query model rather than entry view.
11810         (rb_play_order_set_property), (rb_play_order_get_property):
11811         Handle new playing-entry property.  Call playing_entry_changed virtual
11812         method so subclasses can do any processing required.
11813         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11814         (rb_play_order_set_playing_entry):
11815         Just use the playing-entry property.
11816         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11817         Utility methods for subclasses.
11818         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11819         Update next/previous availability, check if the playing entry
11820         was removed.
11821         (default_playing_entry_removed):
11822         Keep the current behaviour of just stopping playback when the 
11823         playing entry is deleted.
11824         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11825         these for subclasses that don't have go_next/go_previous, but do
11826         have get_next/get_previous.
11827         (rb_play_order_update_have_next_previous): Emit signal if the
11828         availability of next/previous entries has changed.
11830         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11831         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11832         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11833         methods.
11834         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11835         on the last song in the shuffled order, go back to the start. This
11836         means if you press 'play' again you'll get the whole order again, not
11837         just one song.
11839         * shell/rb-shell-player.c:
11840         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11841         play order rather than the entry view.
11842         (rb_shell_player_set_property): Update the play order when the
11843         selected source changes and we aren't playing anything.
11844         (rb_shell_player_sync_play_order): Copy the playing entry across to
11845         the new play order so playback continues from the same song, and watch
11846         for updates to have_next/have_previous.
11847         (rb_shell_player_play_order_update_cb): Enable/disable the
11848         next/previous actions when next/previous entry availability changes.
11849         (rb_shell_player_jump_to_current): Just use the play order's idea of
11850         what's playing, not the entry view's; if not playing anything, clear
11851         the selection, so when a playlist ends and you hit play again, it'll
11852         start at the start rather than the end.
11853         (rb_shell_player_do_previous): restructure a bit.
11854         (rb_shell_player_do_next): restructure, jump to new playing entry in
11855         an idle handler instead of directly.
11856         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11857         song if there is one.
11858         (rb_shell_player_playpause): Jump to playing song, don't update the
11859         play order if we got the song from the selection.
11860         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11861         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11862         looks after next/previous actions now.  Don't break if called while
11863         there is no selected source.
11864         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11865         (rb_shell_player_set_playing_source_internal),
11866         (rb_shell_player_error): No need to track the attempted playing entry
11867         any more, since the play order does that.
11869         * shell/rb-shell.c:
11870         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11871         rb_shell_player_get_playing_entry rather than going through the entry
11872         view.
11874         * shell/rb-statusbar.c (rb_statusbar_set_property),
11875         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11876         than the entry view for status bar text changes.
11877         (rb_statusbar_sync_status): Ask the query model directly
11879         * sources/rb-source.{c}: Add query model property.
11880         (default_get_status): Get status text from query model, should be
11881         suitable for most sources.
11882         (rb_source_set_property): Listen for changes to the query model 
11883         to update the status text.
11884         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11885         (idle_emit_status_changed): Emit status-changed signals when query
11886         model changes. 
11888         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11889         (impl_get_status): Not needed, RBSource does this now
11890         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11891         Update RBSource's query model reference.
11893         * sources/rb-playlist-source.c:
11894         Remove query-model property, since RBSource has one now
11895         (impl_get_status): Not needed, RBSource does this now
11896         (rb_playlist_source_row_deleted): Use query model iterator helper
11897         function.
11898         (rb_playlist_source_set_query_model): Update RBSource's query model
11899         reference too.
11901         * sources/rb-iradio-source.c:
11902         (impl_get_status): Ask the query model directly.
11903         (rb_iradio_source_do_query): Update RBSource's query model reference
11904         when we create a new query.
11906         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11907         Use query model rather than entry view.
11909         * widgets/rb-entry-view.{c,h}: 
11910         Remove playing_entry_deleted signal (now in play order).
11911         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11912          as RhythmDBQueryModel has equivalent helper functions.
11913         (rb_entry_view_*): Use query model helpers instead of the above two
11914         functions.
11916 2005-12-09  James Livingston  <jrl@ids.org.au>
11918         * configure.ac:
11919         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11920         (rb_recorder_enabled):
11921         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11922         * sources/rb-playlist-source-recorder.c:
11923         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11924         whether libnautilusburn has the _drive_unref function, and if so use
11925         it. Stops it complaining about deprecated API.
11927 2005-12-09  James Livingston  <jrl@ids.org.au>
11929         * configure.ac: drop the minimum gstreamer version back down, it
11930         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11932 2005-12-09  James Livingston  <jrl@ids.org.au>
11934         * widgets/rb-song-info.c: (rb_song_info_class_init),
11935         (rb_song_info_show), (rb_song_info_constructor),
11936         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11937         (rb_song_info_forward_clicked_cb): save metadata changes when the
11938         Next/Previous buttons are pressed (closes bug 320952). use
11939         G_DEFINE_TYPE.
11941 2005-12-09  James Livingston  <jrl@ids.org.au>
11943         Patch by: <jonathan@kaolin.hn.org>
11945         * sources/rb-iradio-source.c:
11946         (stations_view_drag_data_received_cb):
11947         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11948         of urls. Fixes bug 323610.
11950 2005-12-09  James Livingston  <jrl@ids.org.au>
11952          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11953          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11955         * configure.ac:
11956         * metadata/rb-metadata-gst.c:
11957         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11958         (rb_player_construct), (rb_player_new):
11959         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11960         (rb_recorder_gst_signal_error), (pipe_message),
11961         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11962         (rb_recorder_new):
11963         * shell/main.c: (main):
11964         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11965         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11967 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11969         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11971         * shell/rb-playlist-manager.c:
11972           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11973           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11974           (rb_playlist_manager_set_automatic_playlist),
11975           (rb_playlist_manager_cmd_new_automatic_playlist),
11976           (rb_playlist_manager_cmd_edit_automatic_playlist):
11977            Use new playlist subclasses.
11978           (rb_playlist_manager_save_playlists): Only read the dirty flag
11979            for local playlists, minor pointless reformatting
11981         * sources/Makefile.am: add new files
11983         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11984           split lots of stuff out into two
11985           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11986           make RBPlaylistSource abstract, add virtual methods for showing a
11987           popup for the entry view and saving the playlist to XML.
11988           Other stuff is subclass-specific, or already virtual in RBSource.
11990         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11991           in one place, since they're used across three source files now
11993         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11994           Use new static playlist class
11996         * sources/rb-ipod-source.c: (add_rb_playlist):
11997           Use new static playlist class
11999         * sources/rb-static-playlist-source.{c,h},
12000         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12001         files.
12003         * po/POTFILES.in: add new files
12005 2005-12-07  James Livingston  <jrl@ids.org.au>
12007         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12008         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12009         metadata loads not attempt to write changes to disk.
12011 2005-12-07  James Livingston  <jrl@ids.org.au>
12013         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12015         * data/glade/song-info-multiple.glade:
12016         * widgets/rb-song-info.c: (rb_song_info_constructor),
12017         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12018         multiple songs at once.
12020 2005-12-06  James Livingston  <jrl@ids.org.au>
12022         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12023         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12025 2005-12-06  James Livingston  <jrl@ids.org.au>
12027         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12028         names rather than adding a horizontal scroll bar.
12030 2005-12-06  James Livingston  <jrl@ids.org.au>
12032         * rhythmdb/rhythmdb-query-model.c:
12033         (rhythmdb_query_model_update_limited_entries),
12034         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12035         messages
12037         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12038         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12039         always hide rather than remove DB entries, which will make RB not lose
12040         information when tag editing happens or people move files to trash and
12041         then change their mind. Also fix some races where the monitoring code
12042         would notice the temporary files generated by saving metadata.
12044 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12046         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12047         Hide internals and add tooltips.
12048         (rb_song_display_box_size_allocate): Hide internals.
12049         (sanitize_string, info_url): Copied from rb-header.
12050         (rb_song_display_box_sync): New public function.
12052         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12053         (rb_header_init): Use a separate row for the seek bar.
12054         (rb_header_finalize): Don't unref widgets.
12055         (rb_header_sync): Use rb_song_display_box_sync.
12056         (rb_header_set_urldata)
12057         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12058         (rb_header_set_show_position_slider): Set visibility of seek bar.
12059         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12060         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12062         * shell/rb-statusbar.c (rb_statusbar_init)
12063         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12065         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12066         (rb_shell_constructor): Remove hseparator.  Monitor
12067         toolbar visibility settings.  Add toolbar.  Add
12068         volume button to toolbar.  Add tooltips for volume button.
12069         (rb_shell_view_toolbar_changed_cb) 
12070         (rb_shell_sync_toolbar_visibility)
12071         (toolbar_visibility_changed_cb): Set visibility of
12072         toolbar.
12073         (rb_shell_sync_smalldisplay): Set the toolbar style to
12074         icons only when in small display mode.
12075         (rb_shell_volume_widget_changed_cb): Save volume setting.
12077         * shell/rb-shell-player.c (rb_shell_player_constructor):
12078         Remove pause and stop actions.  Make play action "important"
12079         so that text is visible in horizontal toolbar position.
12080         Remove control buttons.
12081         (rb_shell_player_init) 
12082         (rb_shell_player_sync_song_position_slider_visibility):
12083         Set visbibility of seek bar.
12084         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12085         Make play action a toggle.
12086         (rb_shell_player_sync_volume): Volume control moved
12087         to player.
12088         (gconf_song_position_slider_visibility_changed):
12089         Set visbibility of seek bar.
12090         (rb_shell_player_sync_buttons):
12091         Set sensitivity of actions instead of buttons.
12092         (rb_shell_player_playing_changed_cb): Add callback
12093         for player notify::playing changes.
12095         * lib/rb-preferences.h: Add hide toolbar and seek
12096         bar key names.
12098         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12099         seek bar menu items.  Remove pause and stop actions
12100         from the control menu.  Add a toolbar.
12102         * data/rhythmbox.schemas: Add toolbar_hidden
12103         song_position_slider_hidden keys.
12105         Patch by: James Livingston  <jrl@ids.org.au>
12106                   William Jon McCann  <mccann@jhu.edu>
12107         Fixes #316238.
12109 2005-12-05  James Livingston  <jrl@ids.org.au>
12111         * data/glade/library-prefs.glade:
12112         * data/rhythmbox.schemas:
12113         * lib/rb-preferences.h:
12114         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12115         (rhythmdb_sync_library_location):
12116         * sources/rb-library-source.c: (rb_library_source_class_init),
12117         (rb_library_source_finalize), (rb_library_source_constructor),
12118         (impl_get_config_widget), (rb_library_source_preferences_sync),
12119         (rb_library_source_watch_toggled_cb): allow people to disable library
12120         monitoring, because with nothing set the file chooser button selects
12121         the Home folder (and hence that will get monitored).
12123 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12125         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12126         attempt to fix problem with RSS parsing showing invalid feed types.
12127         Fixes bug 323153
12129 2005-12-04  James Livingston  <jrl@ids.org.au>
12131         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12132         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12133         importing a remote directory not block the UI.
12135 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12137         * data/glade/podcast-feed-properties.glade:
12138         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12140 2005-12-04  James Livingston  <jrl@ids.org.au>
12142         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12144         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12145         to && to fix a mistake in the earlier podcast patch.
12147 2005-12-03  James Livingston  <jrl@ids.org.au>
12149         * data/glade/podcast-new.glade:
12150         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12151         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12153         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12154         GValue, which stops occasional errors.
12156         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12157         compile issue.
12159 2005-12-03  James Livingston  <jrl@ids.org.au>
12161         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12163         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12164         crasher with some podcasts feeds.
12166 2005-12-03  James Livingston  <jrl@ids.org.au>
12168         * data/rhythmbox.schemas: fix the gconf schema
12170 2005-12-03  James Livingston  <jrl@ids.org.au>
12172         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12173         add a selection timeout to the sourcelist. This lets you hold a track
12174         over the playlist source, and then have the view switch so you can
12175         insert the track in the middle of the playlist. Closes bug 323044.
12177         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12178         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12179         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12180         (rb_tree_dnd_add_drag_dest_support):
12181         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12182         timeout.
12184         * sources/rb-sourcelist-model.c:
12185         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12186         the source list.
12188 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12190         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12191         links, so that the text doesn't touch the button
12193 2005-12-02  James Livingston  <jrl@ids.org.au>
12195         Add full support for gnome-vfs remote files. Closes bug 140355.
12197         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12198         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12199         for authentication information from the user doesn't block the UI.
12201         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12203         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12204         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12205         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12206         (rhythmdb_process_stat_event), (emit_load_error_idle),
12207         (rhythmdb_process_metadata_load),
12208         (rhythmdb_process_queued_entry_set_event),
12209         (rhythmdb_process_file_created_or_modified),
12210         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12211         (queue_stat_uri), (add_thread_main),
12212         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12213         (rhythmdb_load), (rhythmdb_save_thread_main),
12214         (threadsafe_entry_set), (rhythmdb_query_internal),
12215         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12216         (rhythmdb_do_full_query_internal),
12217         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12218         (rhythmdb_volume_unmounted_cb),
12219         (rhythmdb_check_changed_file): trivial changes to support the
12220         asynchronous stats.
12222         * shell/main.c: (main): activate the authentication manager.
12224         * shell/rb-playlist-manager.c:
12225         (rb_playlist_manager_cmd_load_playlist),
12226         (rb_playlist_manager_cmd_save_playlist):
12227         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12228         (rb_shell_cmd_add_file_to_library):
12229         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12230         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12231         remote files.
12233 2005-12-02  James Livingston  <jrl@ids.org.au>
12235         * shell/rb-playlist-manager.c: makes playlist menu items use the
12236         elipses correctly. Fixes bug 322283.
12238 2005-12-02  James Livingston  <jrl@ids.org.au>
12240         * shell/rb-playlist-manager.c:
12241         (rb_playlist_manager_load_playlists): fix silly mistake
12243 2005-12-02  James Livingston  <jrl@ids.org.au>
12245         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12246         print out metadata-write unless --debug was passed.
12248         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12249         * shell/rb-playlist-manager.c:
12250         (rb_playlist_manager_load_playlists): block writes to disk if they are
12251         still being loaded.
12253 2005-12-02  James Livingston  <jrl@ids.org.au>
12255         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12256         ctrl-T, because Ctrl-D is used by "small mode"
12258 2005-12-02  James Livingston  <jrl@ids.org.au>
12260         * shell/rb-shell-preferences.c:
12261         (rb_shell_preferences_append_view_page):
12262         * sources/rb-library-source.c: (impl_get_config_widget):
12263         * sources/rb-podcast-source.c: (impl_get_config_widget):
12264         * sources/rb-source.c: (rb_source_get_config_widget):
12265         * sources/rb-source.h: Make the preference actually work.
12267         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12268         if Rhythmbox is being run for the first time.
12270 2005-12-02  James Livingston  <jrl@ids.org.au>
12272         Add support for Rhythmbox to watch your library, and automatically add
12273         new tracks. Fixes bug 160159.
12275         * data/glade/library-prefs.glade: add "library location" preference
12276         * data/rhythmbox.schemas: add gconf key for the library location
12278         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12279         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12280         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12281         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12282         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12283         (rhythmdb_load_thread_main), (rhythmdb_load),
12284         (monitor_subdirectory), (monitor_library_directory),
12285         (monitor_entry_file), (rhythmdb_sync_library_location),
12286         (library_location_changed_cb), (rhythmdb_check_changed_file),
12287         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12288         specifiec in the gconf key for new additions. Also fix monitoring code
12289         so that it works properly, and notices deletions.
12291         * lib/rb-preferences.h:
12292         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12293         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12294         * shell/rb-audioscrobbler.h:
12295         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12296         (rb_shell_preferences_append_view_page),
12297         (rb_shell_preferences_new):
12298         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12299         it's preferences pane, so that we don't need #ifdef's through
12300         rb-shell-preferences.
12302         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12303         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12304         "preferences" property, so that sources can acccess it. This is needed
12305         because the library location pref needs to take effect when the window
12306         is closed.
12308         * sources/rb-library-source.c:
12309         (rb_library_source_library_location_changed),
12310         (rb_library_source_dispose), (rb_library_source_finalize),
12311         (rb_library_source_constructor), (impl_get_config_widget),
12312         (rb_library_source_preferences_sync),
12313         (rb_library_source_process_library_location_change),
12314         (rb_library_source_prefs_update),
12315         (rb_library_source_process_library_handle_selection),
12316         (rb_library_source_library_location_cb): set up and control the
12317         "library location" preference.
12319         * sources/rb-audiocd-source.c:(rb_source_class_init):
12320         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12321         code.
12323 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12325         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12326         (rb_feed_podcast_properties_dialog_update_title): 
12327         * data/glade/podcast-feed-properties.glade:
12328         Make the feed properties dialog consistent with the podcast
12329         properties dialog.
12331 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12333         * metadata/.cvsignore: 
12334         * po/.cvsignore: 
12335         * podcast/.cvsignore: Updated.
12337         * shell/main.c (main): Support DBus 0.6 flags.
12339 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12341         * data/ui/rhythmbox-ui.xml:
12342         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12343         (rhythmbd_entry_move_to_trash_set_error),
12344         (rhythmdb_entry_move_to_trash):
12345         * rhythmdb/rhythmdb.h:
12346         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12347         (rb_shell_clipboard_cmd_delete),
12348         (rb_shell_clipboard_cmd_move_to_trash):
12349         * sources/rb-library-source.c: (rb_library_source_class_init),
12350         (impl_delete), (impl_move_to_trash):
12351         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12352         (impl_delete), (impl_move_to_trash):
12353         * sources/rb-removable-media-source.c:
12354         (rb_removable_media_source_class_init):
12355         * sources/rb-source.c: (rb_source_class_init),
12356         (rb_source_can_move_to_trash), (rb_source_delete),
12357         (rb_source_move_to_trash):
12358         * sources/rb-source.h:
12359         Add move_to_trash member for the sources, implement move to trash for
12360         the library and playlists
12361         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12362         local files to the trash, and deleting them from the database
12363         (Closes: #315389)
12365 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12367         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12368         (rb_tray_icon_init, rb_tray_icon_finalize): 
12369         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12370         (rb_statusbar_init, rb_statusbar_finalize): 
12371         * shell/rb-source-header.c (rb_source_header_class_init) 
12372         (rb_source_header_init, rb_source_header_finalize): 
12373         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12374         (rb_shell_finalize): 
12375         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12376         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12377         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12378         (rb_shell_player_init, rb_shell_player_finalize): 
12379         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12380         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12381         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12382         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12383         * shell/rb-play-order.c (rb_play_order_class_init) 
12384         (rb_play_order_init, rb_play_order_finalize): 
12385         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12386         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12387         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12388         (rb_random_play_order_init, rb_random_play_order_finalize): 
12389         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12390         (rb_history_finalize): 
12391         * shell/rb-commander.c (rb_commander_class_init) 
12392         (rb_commander_init, rb_commander_finalize): 
12393         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12394         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12395         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12396         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12397         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12398         (rb_podcast_properties_dialog_init) 
12399         (rb_podcast_properties_dialog_finalize): 
12400         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12401         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12402         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12403         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12404         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12405         (rb_feed_podcast_properties_dialog_init) 
12406         (rb_feed_podcast_properties_dialog_finalize): 
12407         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12408         (rb_metadata_init, rb_metadata_finalize): 
12409         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12410         (rb_station_properties_dialog_init) 
12411         (rb_station_properties_dialog_finalize): 
12412         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12413         (rb_daap_share_init, rb_daap_share_dispose): 
12415         Use g_type_class_add_private in all classes. Closes bug 313688.
12416         
12417 2005-11-30  James Livingston  <jrl@ids.org.au>
12419         patch by: William Jon McCann <mccann@jhu.edu> to use
12420         g_type_class_add_private in all classes. Closes bug 313688.
12422         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12423         (rb_thread_finalize):
12424         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12425         (rb_player_finalize):
12426         * rhythmdb/rhythmdb-property-model.c:
12427         (rhythmdb_property_model_class_init),
12428         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12429         * rhythmdb/rhythmdb-query-model.c:
12430         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12431         (rhythmdb_query_model_finalize):
12432         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12433         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12434         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12435         (rhythmdb_finalize):
12436         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12437         (rb_daap_source_init), (rb_daap_source_dispose):
12438         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12439         (rb_iradio_source_init), (rb_iradio_source_finalize):
12440         * sources/rb-library-source.c: (rb_library_source_class_init),
12441         (rb_library_source_init), (rb_library_source_finalize):
12442         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12443         (rb_playlist_source_init), (rb_playlist_source_dispose):
12444         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12445         (rb_podcast_source_init), (rb_podcast_source_finalize):
12446         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12447         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12448         * sources/rb-sourcelist-model.h:
12449         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12450         (rb_sourcelist_init), (rb_sourcelist_finalize):
12451         * sources/rb-sourcelist.h:
12452         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12453         * widgets/rb-cell-renderer-rating.c:
12454         (rb_cell_renderer_rating_init),
12455         (rb_cell_renderer_rating_class_init),
12456         (rb_cell_renderer_rating_finalize):
12457         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12458         (rb_druid_finalize):
12459         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12460         (rb_entry_view_init), (rb_entry_view_finalize):
12461         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12462         (rb_header_finalize):
12463         * widgets/rb-load-failure-dialog.c:
12464         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12465         (rb_load_failure_dialog_finalize):
12466         * widgets/rb-property-view.c: (rb_property_view_class_init),
12467         (rb_property_view_init), (rb_property_view_finalize):
12468         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12469         (rb_rating_finalize):
12470         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12471         (rb_search_entry_init), (rb_search_entry_finalize):
12472         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12473         (rb_simple_view_init), (rb_simple_view_finalize):
12474         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12475         (rb_song_display_box_init), (rb_song_display_box_finalize):
12476         * widgets/rb-song-info.c: (rb_song_info_class_init),
12477         (rb_song_info_init), (rb_song_info_finalize):
12478         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12479         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12481 2005-11-30  James Livingston  <jrl@ids.org.au>
12483         * iradio/rb-station-properties-dialog.c:
12484         (rb_station_properties_dialog_init),
12485         (rb_station_properties_dialog_new):
12486         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12487         * lib/rb-glade-helpers.h:
12488         * podcast/rb-feed-podcast-properties-dialog.c:
12489         (rb_feed_podcast_properties_dialog_init),
12490         (rb_feed_podcast_properties_dialog_new):
12491         * podcast/rb-podcast-properties-dialog.c:
12492         (rb_podcast_properties_dialog_init),
12493         (rb_podcast_properties_dialog_new):
12494         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12495         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12496         * sources/rb-library-source.c: (impl_get_config_widget):
12497         * sources/rb-playlist-source-recorder.c:
12498         (rb_playlist_source_recorder_init):
12499         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12500         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12501         in rb-glade-helpers, rather than having eight implementation
12502         throughout the code.
12504 2005-11-30  James Livingston  <jrl@ids.org.au>
12506         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12507         * lib/rb-util.h:
12508         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12509         move the duration->string function into rb-utils, as it gets used in a
12510         few places.
12512         patch by: William Jon McCann <mccann@jhu.edu>
12514         * data/glade/podcast-properties.glade:
12515         * podcast/rb-podcast-properties-dialog.c:
12516         (rb_podcast_properties_dialog_init),
12517         (rb_podcast_properties_dialog_update),
12518         (rb_podcast_properties_dialog_update_title),
12519         (rb_podcast_properties_dialog_update_feed),
12520         (rb_podcast_properties_dialog_update_duration),
12521         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12522         info dialog look more like the song info dialog. Use the same "Feed"
12523         value that is displayed in the treeview (ie. the album field), displays
12524         the duration, uses units in the bitrate field, and sort the fields in
12525         the same order.
12527 2005-11-29  James Livingston  <jrl@ids.org.au>
12529         * rhythmdb/rhythmdb-marshal.list:
12530         * rhythmdb/rhythmdb.h:
12531         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12532         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12533         (entry_to_rb_metadata), (emit_save_error_idle),
12534         (action_thread_main): emit error signal when metadata write fails.
12536         * shell/rb-shell.c: (rb_shell_constructor),
12537         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12538         "metadata save" error and display it to the user.
12540 2005-11-29  James Livingston  <jrl@ids.org.au>
12542         * data/ui/rhythmbox-ui.xml:
12543         * sources/rb-podcast-source.c:
12544         (rb_podcast_source_songs_show_popup_cb),
12545         (rb_podcast_source_cmd_download_post),
12546         (rb_podcast_source_cmd_cancel_download): split download and cancel
12547         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12548         321653.
12550 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12552         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12553         title on alert dialogs per the HIG.
12555         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12556         the term Burn.
12557         (free_song_list): Routine to free song list.
12558         (rb_playlist_source_recorder_finalize): Use free_song_list.
12559         (rb_playlist_source_recorder_add_from_model): Return FALSE
12560         if unable to add all songs.  Check that duration of all
12561         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12562         Fixes #321753.
12564         * sources/rb-playlist-source-recorder.c (check_media_length)
12565         (rb_playlist_source_recorder_start): Only check the duration
12566         and current media if the playlist length is longer than a
12567         standard CD (74 min).  Otherwise, just let the Recorder do the
12568         check.
12569         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12570         drive at init.
12571         (rb_recorder_set_device): Don't leak drives.
12572         (rb_recorder_get_media_length): Use drive that was already set.
12573         (rb_recorder_burn): Let the recorder handle checking media type/size.
12574         Fixes bug 321754.
12576 2005-11-29  James Livingston  <jrl@ids.org.au>
12578         * rhythmdb/rhythmdb-query-model.c:
12579         (rhythmdb_query_model_set_sort_order):
12580         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12581         emitting the tree-model "resorted" signal.
12583         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12584         (rb_entry_view_finalize), (rb_entry_view_set_property),
12585         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12586         * widgets/rb-entry-view.h: add a function to resort the entry view,
12587         using the above function.
12589         * sources/rb-iradio-source.c:
12590         (rb_iradio_source_songs_view_sort_order_changed_cb):
12591         * sources/rb-library-source.c: (rb_library_source_finalize),
12592         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12593         * sources/rb-playlist-source.c:
12594         (rb_playlist_source_songs_sort_order_changed_cb):
12595         * sources/rb-podcast-source.c:
12596         (rb_podcast_source_posts_view_sort_order_changed_cb),
12597         (rb_podcast_source_do_query): use the above function instead of
12598         re-creating the query model. This makes changing the sorting an order
12599         of magnitude faster, as it uses a single resorted signal rather than
12600         deleting and re-adding everything (which emits 2N signals). Closes bug
12601         315389.
12603 2005-11-29  James Livingston  <jrl@ids.org.au>
12605         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12606         autosizing, which results in large speedups. Closes bug 312122.
12608         * po/ja.po: change the date format, so that it is a constant width
12610         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12611         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12612         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12613         (rb_entry_view_constructor): make columns use fixed widths,
12614         disable column autosizing, and enable fixed-height mode.
12616         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12617         (rb_entry_view_get_time_date_column_sample):
12618         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12619         and get the canonical date format for the locale.
12621 ============ Version 0.9.2
12623 2005-11-28  James Livingston  <jrl@ids.org.au>
12625         * configure.ac: bump version to 0.9.2
12626         * NEWS: update with changes for 0.9.2
12628 2005-11-28  James Livingston  <jrl@ids.org.au>
12630         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12632         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12633         Disable saving, renaming and delting for DAAP playlists.
12634         Fixes bug 322627.
12636 2005-11-28  James Livingston  <jrl@ids.org.au>
12638         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12639         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12640         prevent bug 322619.
12642         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12643         * sources/rb-removable-media-source.c:
12644         (rb_removable_media_source_class_init): fix ipod browser visibility
12645         problem.
12647 2005-11-28  James Livingston  <jrl@ids.org.au>
12649         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12650         Avahi 0.6 support actually work. Fixes bug 322519.
12652 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12654         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12655         avahi is specified in --with-mdns
12657 2005-11-27  James Livingston  <jrl@ids.org.au>
12659         patch by: Bastien Nocera <hadess@hadess.net>
12661         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12662         not the private one. Fixes bug 322485.
12664 2005-11-26  James Livingston  <jrl@ids.org.au>
12666         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12667         Avahi 0.6, as well as 0.5.
12669         * configure.ac:
12670         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12671         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12672         (add_service):
12674 2005-11-25  James Livingston  <jrl@ids.org.au>
12676         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12677         321926.
12679 2005-11-25  James Livingston  <jrl@ids.org.au>
12681         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12682         correct type for checking the date against 0. Stops a warning when
12683         saving metadata.
12685 2005-11-25  James Livingston  <jrl@ids.org.au>
12687         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12688         adjustment to be inside the element's limits. Without this songs that
12689         have large ReplayGain values will recieve no increase because they are
12690         outside the acceptable range, causing them to remain quiet.
12692 2005-11-25  James Livingston  <jrl@ids.org.au>
12694         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12695         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12696         * sources/rb-ipod-source.c:
12697         * sources/rb-source.h:
12698         * sources/rb-library-source.h:
12699         * sources/rb-library-source.c: (rb_library_source_class_init),
12700         (rb_library_source_constructor),
12701         (rb_library_source_has_first_added_column),
12702         (rb_library_source_has_drop_support):
12703         * sources/rb-removable-media-source.c:
12704         (rb_removable_media_source_class_init): Make library-derived sources
12705         not show the Date Added column, as it doesn't make sense. Fixes bug
12706         322269.
12707         Move some of the feature funcs from the ipod and audio cd sources up to
12708         the removable media source.
12710 2005-11-24  James Livingston  <jrl@ids.org.au>
12712         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12713         errors. oops.
12715 2005-11-24  James Livingston  <jrl@ids.org.au>
12717         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12718         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12719         (rb_iradio_source_constructor): Chain up dispose method and use
12720         G_DEFINE_TYPE
12722 2005-11-24  James Livingston  <jrl@ids.org.au>
12724         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12725         mistake in the last commit that can cause crashes.
12727 2005-11-24  James Livingston  <jrl@ids.org.au>
12729         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12730         instead of g_printerr.
12732         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12733         rb_debug instead of g_warning. The message happens every time for
12734         removable media/daap shares, so it's not unusual.
12736 2005-11-24  James Livingston  <jrl@ids.org.au>
12738         patch by: Tom Parker <palfrey@tevp.net>
12740         * configure.ac: fix libsoup test for enabling daap
12742 2005-11-23  James Livingston  <jrl@ids.org.au>
12744         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12745         (rb_query_creator_init), (rb_query_creator_constructor),
12746         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12747         empty row to queries with no criteria. Fixes bug 322078. use
12748         G_DEFINE_TYPE.
12750 2005-11-23  James Livingston  <jrl@ids.org.au>
12752         patch by:  <baptiste.millemathias@gmail.com>
12754         * help/C/quick-reference.xml: update the quick reference to have the
12755         correct key bindings.
12757 2005-11-22  James Livingston  <jrl@ids.org.au>
12759         * sources/rb-library-source.c: (genres_selection_reset_cb),
12760         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12761         reset the query when all browser selections are removed.
12763 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12765         * podcast/rb-podcast-manager.c:
12766         (rb_podcast_manager_db_entry_deleted_cb):
12767         Use a custom loop to remove podcast posts, rather than
12768         gtk_tree_model_foreach(), as deleting the entries within
12769         that loop causes the iterator to return the first entry
12770         twice.  Instead, we need to find the next entry before
12771         removing the current one. Fixes bug 321956.
12772         (rb_podcast_manager_entry_remove_cb): No longer needed.
12774 2005-11-22  James Livingston  <jrl@ids.org.au>
12776         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12777         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12778         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12780 2005-11-22  James Livingston  <jrl@ids.org.au>
12782         * sources/rb-podcast-source.c:
12783         (rb_podcast_source_post_date_cell_sort_func),
12784         (rb_podcast_source_post_status_cell_sort_func),
12785         (rb_podcast_source_post_feed_cell_sort_func):
12786         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12787         (rb_entry_view_album_sort_func),
12788         (rb_entry_view_double_ceiling_sort_func),
12789         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12790         the entry's location as a last resort when sorting, so the sort order
12791         is stable. This will stop entries moving around when two entries have
12792         the same sorting, and one of them gets played.
12794 2005-11-22  James Livingston  <jrl@ids.org.au>
12796         * daapsharing/rb-daap-connection.c:
12797         (rb_daap_connection_class_init), (rb_daap_connection_init),
12798         (connection_get_password), (build_message),
12799         (http_response_handler), (http_get), (handle_server_info),
12800         (handle_login), (handle_update), (handle_database_info),
12801         (handle_song_listing), (handle_playlists),
12802         (handle_playlist_entries), (rb_daap_connection_new),
12803         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12804         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12805         (rb_daap_connection_get_headers),
12806         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12807         (rb_daap_connection_set_property),
12808         (rb_daap_connection_get_property):
12809         * daapsharing/rb-daap-connection.h:
12810         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12811         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12812         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12813         of destroying the object when it is going to be used by a callback and
12814         fixes a double-free. Fixes bugs 321930 and 322007.
12816 2005-11-22  James Livingston  <jrl@ids.org.au>
12818         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12819         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12820         notification if there aren't any. Fixes bug 321968.
12822 2005-11-22  James Livingston  <jrl@ids.org.au>
12824         * rhythmdb/rhythmdb-property-model.c:
12825         (rhythmdb_property_model_set_property),
12826         (rhythmdb_property_model_finalize),
12827         (rhythmdb_property_model_compare),
12828         (rhythmdb_property_model_insert),
12829         (rhythmdb_property_model_delete_prop): Fix property model sorting
12830         where the display and sort keys are different. Fixes bug 321980.
12832 2005-11-22  James Livingston  <jrl@ids.org.au>
12834         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12835         when import as a file or passed on the command line, and load them as
12836         playlists.
12838 2005-11-22  James Livingston  <jrl@ids.org.au>
12840         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12842         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12843         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12844         a broken daap server. Fixes bug 321919.
12846 2005-11-22  James Livingston  <jrl@ids.org.au>
12848         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12849         drag-and-drop for both the episodes and feeds list.
12850         
12851         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12852         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12853         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12855         * widgets/rb-property-view.c: (rb_property_view_class_init),
12856         (rb_property_view_set_property), (rb_property_view_get_property),
12857         (rb_property_view_new), (rb_property_view_constructor):
12858         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12859         (rb_simple_view_new), (rb_simple_view_constructor):
12860         * widgets/rb-simple-view.h: add a "draggable" property to property
12861         views and set it to false for the feed list. Fixes bug 321284.
12863 2005-11-22  James Livingston  <jrl@ids.org.au>
12865         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12867         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12868         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12869         * sources/rb-ipod-source.c: (add_rb_playlist):
12870         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12871         (rb_playlist_source_set_property),
12872         (rb_playlist_source_get_property), (rb_playlist_source_new),
12873         (impl_receive_drag), (rb_playlist_source_add_location),
12874         (rb_playlist_source_new_from_xml):
12875         * sources/rb-playlist-source.h: give playlists and (optional)
12876         entry-type, and reject entries that don't match. Fixes bug 322006.
12878 2005-11-21  James Livingston  <jrl@ids.org.au>
12880         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12881         (rb_source_header_finalize): remove the weak references when the
12882         source header is finalised. Stops the callbacks being called after the
12883         object is destroyed.
12885 2005-11-21  James Livingston  <jrl@ids.org.au>
12887         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12888         --no-registration was passed. It causes warnings that make it
12889         impossible to run with --no-registration --g-fatal-warnings
12891 2005-11-21  James Livingston  <jrl@ids.org.au>
12893         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12894         of strings when they are still in use. Fixes bug 321547.
12896         (rb_daap_connection_destroy): fix memory leak
12898 2005-11-21  James Livingston  <jrl@ids.org.au>
12900         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12901         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12902         (rb_daap_mdns_resolve_cancel), (publish_cb),
12903         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12904         support.
12906 2005-11-21  James Livingston  <jrl@ids.org.au>
12908         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12909         sorting by genre
12911 2005-11-20  James Livingston  <jrl@ids.org.au>
12913         * podcast/rb-podcast-manager.c:
12914         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12915         that we don't leak thread structures. Fixes bug 321636, and probably
12916         321775.
12918 2005-11-20  James Livingston  <jrl@ids.org.au>
12920         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12921         (lookup_cd):
12922         * podcast/rb-podcast-manager.c: (start_job),
12923         (rb_podcast_manager_db_entry_deleted_cb),
12924         (rb_podcast_manager_entry_remove_cb):
12925         * podcast/rb-podcast-parse.c: (rb_insert_item),
12926         (rb_podcast_parse_load_feed):
12927         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12928         * shell/rb-removable-media-manager.c:
12929         (rb_removable_media_manager_append_media_source):
12930         * shell/rb-shell.c: (add_to_library_response_cb):
12931         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12932         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12933         * sources/rb-iradio-source.c:
12934         (stations_view_drag_data_received_cb):
12935         * sources/rb-library-source.c: (string_list_equal),
12936         (impl_get_extra_views), (impl_receive_drag):
12937         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12938         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12939         (impl_receive_drag):
12940         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12941         (rb_entry_view_append_column_custom), (harvest_entries):
12942         * widgets/rb-property-view.c:
12943         (rb_property_view_selection_changed_cb):
12944         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12945         switch from using g_list_append to g_list_prepend. This changes
12946         operations from O(n^2) to O(n), which in cases like deleting a lot of
12947         tracks can give huge improvements in speed. Closes bug 321696.
12949 2005-11-20  James Livingston  <jrl@ids.org.au>
12951         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12952         (rb_sourcelist_update_expander_visibility): fix indenting of child
12953         sources.
12955 2005-11-20  James Livingston  <jrl@ids.org.au>
12957         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12958         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12959         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12960         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12961         (add_service), (entry_group_cb): dynamically allocate memory, rather
12962         than using static variables.
12964         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12965         re-enable the daap share if the name hasn't changed.
12966         * shell/rb-shell-preferences.c:
12967         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12968         change it's name when the checkbox is disabled. Fixed bug 321748.
12970 2005-11-18  James Livingston  <jrl@ids.org.au>
12972         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12973         as hidden if it is on the current workspace.
12975 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12977         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12978         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12979         (rb_podcast_properties_dialog_parse_time): 
12980         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12981         (rb_feed_podcast_properties_dialog_parse_time):
12982         Rework the way the last mod time strings are created.  It was using
12983         thread unsafe functions, not creating value UTF, and not not checking
12984         the value of the result before modifying it.  This new method fixes
12985         these problems.
12987 2005-11-18  James Livingston  <jrl@ids.org.au>
12989         Don't reset the search box when viewing a different source, because it
12990         will change what is being played. Closes 321593.
12992         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12993         the search box
12995         * shell/rb-source-header.c: (rb_source_header_class_init),
12996         (rb_source_header_init), (rb_source_header_finalize): use
12997         G_DEFINE_TYPE.
12999         (rb_source_header_set_property),
13000         (rb_source_header_source_weak_destroy_cb),
13001         (rb_source_header_search_cb): store the search text when leaving a
13002         source and put it in the search box when viewing it again.
13004 2005-11-18  James Livingston  <jrl@ids.org.au>
13006         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13007         (save_entry):
13008         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13009         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13010         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13011         time stamp.
13013         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13014         last-seen as the timestamp of the last update of the feed. Don't
13015         re-add episodes that have been deleted. Closes 319759.
13017 2005-11-18  James Livingston  <jrl@ids.org.au>
13019         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13020         that don't have the day name at the start. Closes 321645.
13022 2005-11-18  James Livingston  <jrl@ids.org.au>
13024         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13025         (rb_podcast_manager_copy_post),
13026         (rb_podcast_manager_get_podcast_dir):
13027         * podcast/rb-podcast-manager.h:
13028         * sources/rb-podcast-source.c: (impl_get_config_widget),
13029         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13030         download location switching to / if the prefs were opened before
13031         downloading an episode. Closes 321611.
13033 2005-11-18  James Livingston  <jrl@ids.org.au>
13035         * data/glade/podcast-new.glade:
13036         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13037         (rb_new_podcast_dialog_set_property),
13038         (rb_new_podcast_dialog_get_property),
13039         (rb_new_podcast_dialog_response_cb),
13040         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13041         for entering new podcast urls in. Closes bug 321610.
13043 2005-11-18  James Livingston  <jrl@ids.org.au>
13045         * sources/rb-podcast-source.c: (construct_query_from_selection),
13046         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13047         without restarting RB. Closes bug 321612.
13049 2005-11-18  James Livingston  <jrl@ids.org.au>
13051         * widgets/rb-entry-view.c: (set_column_visibility),
13052         (rb_entry_view_sync_columns_visible): when changing visibility of one
13053         column, don't hide and re-show all the others. Makes a show/hide
13054         column operation a lot faster.
13056 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13058         Closes bug 321702.
13060         * iradio/rb-station-properties-dialog.c
13061          (rb_station_properties_dialog_update_bitrate):
13062         Mark the bitrate value as being kbps, using the same
13063         translatable format string as rb-song-info.c
13065         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13066          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13068         * shell/rb-shell-player.c (info_available_cb):
13069          Use RB_METADATA_FIELD_BITRATE to update the iradio
13070          station's bitrate value.
13072 2005-11-17  James Livingston  <jrl@ids.org.au>
13074         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13076         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13077         free a NULL date.
13079 2005-11-17  James Livingston  <jrl@ids.org.au>
13081         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13083         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13084         assertions. Lookup the icon size correctly.
13086 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13088         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13089         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13090         Fix build errors.
13092 2005-11-16  James Livingston  <jrl@ids.org.au>
13094         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13095         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13096         (rb_shell_preferences_sync_column_button): block the toggle signal of
13097         the column checkboxes while setting their initial state. This stops
13098         the visibility being re-set, which causes a lot of time being spent
13099         measuring the columns aagin when opening the prefs window.
13101         Use G_DEFINE_TYPE.
13103 2005-11-16  James Livingston  <jrl@ids.org.au>
13105         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13106         (rb_sourcelist_edit_source_name): don't assume that the editable
13107         source name is in the first column, because it isn't. Fixes bug
13108         320137.
13110 2005-11-16  James Livingston  <jrl@ids.org.au>
13112         * daapsharing/rb-daap-mdns.h:
13113         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13114         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13115         parts can know why operations failed. Avahi can report that the daemon
13116         was not running. Howl doesn't do this (yet).
13117         
13118         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13119         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13120         (browse_cb): don't display mdns errors to the user, if it wa because
13121         the daemon was not running.
13123 2005-11-16  James Livingston  <jrl@ids.org.au>
13125         * rhythmdb/rhythmdb-property-model.c:
13126         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13127         (rhythmdb_property_model_compare),
13128         (rhythmdb_property_model_insert),
13129         (rhythmdb_property_model_insert_prop),
13130         (rhythmdb_property_model_delete),
13131         (rhythmdb_property_model_delete_prop),
13132         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13133         copying the string and re-creating the sort key. Saves a little bit of
13134         memory and time.
13136         (rhythmdb_property_model_perform_sync),
13137         (rhythmdb_property_model_sync): perform the count sync in an idle
13138         callback, so that it doesn't have to be re-run once per value when
13139         loading.
13141 2005-11-16  James Livingston  <jrl@ids.org.au>
13143         * rhythmdb/rhythmdb-query-model.c:
13144         (rhythmdb_query_model_entry_deleted_cb),
13145         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13146         limited list. Stops problems if they are deleted, and then things on
13147         the main list are
13149 2005-11-16  James Livingston  <jrl@ids.org.au>
13151         * NEWS: update NEWS
13153         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13154         button's minimise-to-tray action
13156 2005-11-16  James Livingston  <jrl@ids.org.au>
13158         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13159         leak. Disable adding newly created files for now, because it doesn't
13160         work properly.
13162         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13163         (rb_sourcelist_model_finalize):
13164         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13165         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13167 2005-11-16  James Livingston  <jrl@ids.org.au>
13169         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13170         problem where a GError* wasn't being set to NULL. Actually check the
13171         result.
13173 2005-11-16  James Livingston  <jrl@ids.org.au>
13175         * doc/reference/tmpl/rb-entry-view.sgml:
13176         * doc/reference/tmpl/rhythmbox-unused.sgml:
13177         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13178         * doc/reference/tmpl/rhythmdb.sgml:
13179         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13180         docs, including the patch that was on bug 
13182         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13183         API, because it should only be used by RhythmDB itself.
13185 2005-11-16  James Livingston  <jrl@ids.org.au>
13187         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13188         pausing by middle clicking on the tray icon.
13190 2005-11-15  James Livingston  <jrl@ids.org.au>
13192         * configure.ac: enable audioscrobbler support by default, if libsoup
13193         is present.
13195 2005-11-15  James Livingston  <jrl@ids.org.au>
13197         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13198         Closes bug 321157.
13200         * configure.ac:
13201         * daapsharing/rb-daap-connection.c: (build_message),
13202         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13203         support gzip encoded daap connections.
13205         (handle_song_listing): fix leak
13207 2005-11-15  James Livingston  <jrl@ids.org.au>
13209         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13210         * sources/rb-podcast-source.c:
13211         (rb_podcast_source_post_date_cell_data_func): make the date format
13212         translatable again, so that translators can choose the best format for
13213         their locale (%x is huge in some locales)
13215 2005-11-15  James Livingston  <jrl@ids.org.au>
13217         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13218         (end_job): mark podcast episodes as failed, if the metadata load
13219         fails. This will prevent people playing non-audio enclosures, helping
13220         stop bug 320366.
13222 2005-11-14  James Livingston  <jrl@ids.org.au>
13224         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13225         video sink to fakesink. This will stop problems (potentially crashers)
13226         that will occur if the file contains a video stream.
13228         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13229         rather than using magic numbers everywhere.
13231         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13232         * sources/rb-podcast-source.c:
13233         (rb_podcast_source_songs_show_popup_cb),
13234         (rb_podcast_source_cmd_download_post),
13235         (rb_podcast_source_post_status_cell_data_func),
13236         (rb_podcast_source_entry_activated_cb): use the above constants.
13238         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13239         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13240         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13241         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13242         (cancel_job), (download_progress_cb),
13243         (rb_podcast_manager_cancel_download),
13244         (rb_podcast_manager_insert_feed): use the constants, and fix a
13245         trhead-safety issue.
13247 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13249         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13250         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13251         entry-changed events after stats on startup, fixes entry deleted from
13252         filtered views not disappearing
13254 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13256         Fix rhythmdb query model refcount and polling problems. Closes bug
13257         321410.
13259         * rhythmdb/rhythmdb-property-model.c:
13260         (rhythmdb_property_model_finalize):
13261          Unref the query model if we have one.
13263         * rhythmdb/rhythmdb-query-model.h:
13264          Remove poll and cancel methods.  Query cancellation
13265          never did anything anyway.
13267         * rhythmdb/rhythmdb-query-model.c:
13268         (rhythmdb_query_model_init): Remove GAsyncQueues.
13269          Replace the GAsyncQueue-based update processing
13270          with a simpler g_idle_add approach; still has the
13271          same queueing properties, but now we don't poll the
13272          model forever and updates are processed immediately.
13274         (_unref_entry), (rhythmdb_query_model_finalize):
13275          Unref DB entries when finalized
13277         (rhythmdb_query_model_has_pending_changes):
13278          Use our own counter to decide if there are updates pending
13280         (rhythmdb_query_model_process_update), (idle_process_update):
13281          Process updates using g_idle_add, or directly if possible
13283         (rhythmdb_query_model_signal_complete),
13284         (rhythmdb_query_model_add_entries):
13285          Change to new update processing method
13287         (idle_poll_model), (rhythmdb_query_model_poll):
13288          Remove GAsyncQueue-based update processing.
13290         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13291          No need to poll the model any more - updates are processed
13292          directly for synchronous queries.
13294         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13295          Property model needs to be unref'd here
13297         * sources/rb-library-source.c: (rb_library_source_do_query):
13298          Don't try to cancel the active query (it never worked anyway),
13299          remove obsolete poll call, unref property models as required,
13300          and don't unref the cached 'all' query, since hold on to it.
13301          We unref it when the sort order changes, which forces the query
13302          to be rerun.
13304         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13305          Unref the property model as required
13307         (rb_podcast_source_do_query):
13308          Treat any query with no selected feeds and no search text as
13309          an 'all' query.  Unref query models except for the cached
13310          'all' query, since we hold on to that.
13312         (rb_podcast_source_cmd_update_all):
13313          Unref the property model as required.
13315         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13316          Don't try to cancel the query (it never worked anyway)
13318         (rb_entry_view_poll_model):
13319          No need for this any more.
13321         * widgets/rb-entry-view.h:
13322          Remove obsolete function rb_entry_view_poll_model
13324         * widgets/rb-property-view.c: (rb_property_view_set_property):
13325          Ref and unref the property model as required.
13327 2005-11-14  James Livingston  <jrl@ids.org.au>
13329         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13331         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13332         for error. Closes bug 321416.
13334 2005-11-14  James Livingston  <jrl@ids.org.au>
13336         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13338         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13339         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13341 2005-11-14  James Livingston  <jrl@ids.org.au>
13343         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13344         * shell/rb-removable-media-manager.c:
13345         (rb_removable_media_manager_set_uimanager):
13346         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13347         translation domain for GTK action groups.
13349 2005-11-12  James Livingston  <jrl@ids.org.au>
13351         * po/POTFILES.in: remove the old station-new files
13353 2005-11-12  James Livingston  <jrl@ids.org.au>
13355         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13356         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13357         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13358         when upgrading from a pre-Date-supporting version to a version that
13359         supports Date metadata. Closes bug 320760.
13361 2005-11-12  James Livingston  <jrl@ids.org.au>
13363         Add "update all podcast feeds" command. Closes bug 319954.
13365         * data/ui/rhythmbox-ui.xml: add to source context menu.
13367         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13368         (register_action_group), (rb_podcast_source_cmd_download_post),
13369         (rb_podcast_source_cmd_delete_feed),
13370         (rb_podcast_source_cmd_properties_feed),
13371         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13372         rather than the shell.
13374         (rb_podcast_source_update_feed_func),
13375         (rb_podcast_source_cmd_update_all): update every feed.
13377 2005-11-11  James Livingston  <jrl@ids.org.au>
13379         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13380         (rb_shell_player_constructor), (rb_shell_player_finalize):
13381         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13382         others follow the HIG recommentations.
13384 2005-11-11  James Livingston  <jrl@ids.org.au>
13386         * podcast/rb-podcast-manager.c:
13387         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13388         before trying to use it.
13390 2005-11-11  James Livingston  <jrl@ids.org.au>
13392         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13393         (rb_entry_view_append_column): When sorting by year, sort by album
13394         within a particular year.
13396 2005-11-11  James Livingston  <jrl@ids.org.au>
13398         * NEWS: updates
13400 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13401         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13402         spelling of "Language."
13404 2005-11-11  James Livingston  <jrl@ids.org.au>
13406         * rhythmdb/rhythmdb-property-model.c:
13407         (rhythmdb_property_model_row_inserted_cb),
13408         (rhythmdb_property_model_prop_changed_cb),
13409         (rhythmdb_property_model_entry_removed_cb),
13410         (rhythmdb_property_model_insert_prop),
13411         (rhythmdb_property_model_sync): display the count after the "All"
13412         entry of a property model.
13414         * widgets/rb-property-view.c: (rb_property_view_class_init),
13415         (rb_property_view_finalize), (rb_property_view_constructor): use
13416         G_DEFINE_TYPE
13418 2005-11-10  James Livingston  <jrl@ids.org.au>
13420         * rhythmdb/rhythmdb-query-model.c:
13421         (rhythmdb_query_model_remove_entry):
13422         * rhythmdb/rhythmdb-query-model.h: make
13423         rhythmdb_query_model_remove_entry return whether the entry was in the
13424         model.
13426         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13427         don't add non-SONG entries, as it doesn't really work and can cause
13428         crashes.
13430         (rb_playlist_source_remove_location): assert if the playlist and model
13431         differ on whether the entry is in the playlist
13433 2005-11-10  James Livingston  <jrl@ids.org.au>
13435         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13436         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13437         (rb_podcast_manager_thread_parse_feed),
13438         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13439         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13440         emulating one with a list and mutex. Fixes a couple of threading
13441         issues.
13442         
13443         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13444         updated feeds.
13445         
13446         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13447         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13448         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13449         * podcast/rb-podcast-parse.c: (rb_insert_item),
13450         (rb_podcast_parse_channel_free):
13451         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13452         fix some typos, and make a bit of code clearer.
13454 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13456         Make the "delete podcast" dialog better. Closes bug 320899.
13458         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13459         Add PROP_WINDOW for rb_shell_get_property so we can access the
13460         GtkWindow widget of the main window. 
13461         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13462         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13463         podcast feed delete dialog less confusing as well.
13465 2005-11-09  James Livingston  <jrl@ids.org.au>
13467         * shell/rb-removable-media-manager.c:
13468         (rb_removable_media_manager_mount_volume),
13469         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13470         NULL for a cd volume.
13472 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13474         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13475         method return a gboolean indicating whether the changes
13476         to the entry have already been applied.
13478         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13479         only modify the entry if impl_entry_set returns FALSE.
13481         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13482         When setting the location of an entry, update the
13483         hash table mapping locations to entries.
13485 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13487         * data/glade/Makefile.am:
13488         * iradio/Makefile.am:
13489           Remove 'new station' dialog.
13491         * iradio/rb-station-properties-dialog.h:
13492         * sources/rb-iradio-source.c: (impl_song_properties):
13493         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13494          Add 'new station' mode parameter to
13495          rb_station_properties_dialog_new.
13497         * (rb_station_properties_dialog_response_cb),
13498         (rb_station_properties_dialog_create_station):
13499          When in 'new station' mode, create the station
13500          when OK button is pressed.
13502         * iradio/rb-station-properties-dialog.c:
13503         (rb_station_properties_dialog_location_changed_cb):
13504          Only enable OK button if a location is specified
13505         (rb_station_properties_dialog_init),
13506         (rb_station_properties_dialog_new),
13507         (rb_station_properties_dialog_update),
13508         (rb_station_properties_dialog_update_title),
13509         (rb_station_properties_dialog_rated_cb),
13510         (rb_station_properties_dialog_update_play_count),
13511         (rb_station_properties_dialog_update_bitrate),
13512         (rb_station_properties_dialog_update_last_played),
13513         (rb_station_properties_dialog_update_rating),
13514         (rb_station_properties_dialog_update_playback_error),
13515         (rb_station_properties_dialog_show):
13516          Handle 'new station' mode, where there's no current
13517          station to edit.
13519 2005-11-08  James Livingston  <jrl@ids.org.au>
13521         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13522         keybinding for track columns consistent between library and playlist
13523         sources.
13525 2005-11-07  James Livingston  <jrl@ids.org.au>
13527         * data/ui/rhythmbox-ui.xml:
13528         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13529         "Edit" item to playlist menu. Closes bug 311470.
13531 2005-11-07  James Livingston  <jrl@ids.org.au>
13533         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13535         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13536         confirmation to save dialogs, with gtk 2.8 or higher.
13538 2005-11-07 James Livingston  <jrl@ids.org.au>
13539         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13540         requirement to a general on, because people are going to have it for
13541         the other dependencies.
13543 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13545         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13546         delete dialog less confusing.  Use HIG recommended button order.
13547         Closes bug 320840.
13549 2005-11-06  James Livingston  <jrl@ids.org.au>
13551         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13552         drag-and-drop error.
13553         
13554         * sources/rb-library-source.c: (rb_library_source_constructor): only
13555         add drag-and-drop for the Library itself, subclasses can add support
13556         themselves if they want it.
13558         * sources/rb-removable-media-source.c:
13559         (rb_removable_media_source_class_init): by default removable media
13560         sources do not support dnd
13562 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13564         * data/glade/station-properties.glade:
13565          Add box containing error icon and error message label
13566         * iradio/rb-station-properties-dialog.c:
13567         (rb_station_properties_dialog_class_init),
13568         (rb_station_properties_dialog_finalize):
13569          Change this class to use G_DEFINE_TYPE
13570         (rb_station_properties_dialog_init),
13571         (rb_station_properties_dialog_update),
13572         (rb_station_properties_dialog_update_playback_error):
13573          Display error icon and message when there is one, and hide the error
13574          box otherwise.
13575         (rb_station_properties_dialog_show): Hack widget show
13576          method to update the visibility of the error info box when showing
13577          the widget.  Otherwise the icon is displayed all the time (same thing
13578          is done in rb-song-info). Closes bug 320749.
13580 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13582         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13583         parsing of the duration of podcast episodes from the feed. Closes bug
13584         320748.
13586 2005-11-05  James Livingston  <jrl@ids.org.au>
13588         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13589         release date metadata ("Year"). Closes bug 166093.
13591         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13592         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13593         (rb_metadata_gst_add_tag_data):
13594         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13595         (save_entry):
13596         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13597         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13598         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13599         (rhythmdb_prop_get_type):
13600         * rhythmdb/rhythmdb.h: add support for "date" property
13601         
13602         * data/glade/general-prefs.glade:
13603         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13604         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13605         (rb_entry_view_append_column):
13606         * widgets/rb-entry-view.h:
13607         * sources/rb-library-source.c: (rb_library_source_constructor):
13608         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13609         "Year" colums
13611         * data/glade/song-info.glade:
13612         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13613         (rb_song_info_construct_single), (rb_song_info_constructor),
13614         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13615         (rb_song_info_sync_entry_single): Add "Year" to song info window
13617         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13618         sorted by year.
13620 2005-11-05  James Livingston  <jrl@ids.org.au>
13622         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13623         description if it's very long.
13625 2005-11-05  James Livingston  <jrl@ids.org.au>
13627         pathc by: Artem Baguinski <femistofel@gmail.com>
13629         * help/C/Makefile.am:
13630         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13631         Closes bug 320613.
13633 2005-11-05  James Livingston  <jrl@ids.org.au>
13635         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13637         * daapsharing/rb-daap-share.c: (write_next_chunk),
13638         (message_finished), (databases_cb): Use chunked file loading and
13639         sending in the DAAP server. This should reduce the amount of memory
13640         required to send files to the client.
13642 2005-11-05  James Livingston  <jrl@ids.org.au>
13644         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13645         work better on some systems. Closes 320622.
13647 2005-11-05  James Livingston  <jrl@ids.org.au>
13649         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13650         homepage, so that users can find out what AudioScrobbler is. Add
13651         access keys.
13653         * data/glade/daap-prefs.glade:
13654         * data/glade/general-prefs.glade:
13655         * data/glade/library-prefs.glade: make the indent be more consistent
13657         * data/glade/podcast-prefs.glade: 
13658         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13659         (impl_get_config_widget): move thing out of code into glade, where
13660         they belong
13662 2005-11-05  James Livingston  <jrl@ids.org.au>
13664         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13665         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13667 2005-11-04  James Livingston  <jrl@ids.org.au>
13669         * configure.ac: don't print DAAP configure info twice
13671 2005-11-04  James Livingston  <jrl@ids.org.au>
13673         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13674         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13675         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13676         #ifdefs, since we removed the symbol. Oops
13678 2005-11-04  James Livingston  <jrl@ids.org.au>
13680         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13681         after the connect line, not before. Oops.
13683 2005-11-04  James Livingston  <jrl@ids.org.au>
13685         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13686         fix some warnings
13688 2005-11-03  James Livingston  <jrl@ids.org.au>
13690         * NEWS: update the news file
13692         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13693         "duration" column.
13695         * data/ui/rhythmbox-ui.xml:
13696         * shell/rb-playlist-manager.c:
13697         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13698         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13699         and "delete" for feeds.
13701 2005-11-03  James Livingston  <jrl@ids.org.au>
13703         * sources/rb-podcast-source.c: (impl_delete),
13704         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13705         feed. Closes 319760.
13707 2005-11-03  James Livingston  <jrl@ids.org.au>
13709         Don't start playing from the remote site when a un-downloaded podcast
13710         is activated. Closes 319983.
13711         
13713         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13714         (write_job_data), (download_progress_cb): write the local location as
13715         soon as any data is recieved
13717         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13718         the mountpoint to NULL for podcast episodes that haven't yet been
13719         downloaded.
13720         
13721         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13722         start playing a podcast if it hasn't been downloaded.
13723         
13724         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13725         (rb_podcast_source_entry_activated_cb): begin downloading when the
13726         podcast is activated.
13728 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13730         * data/glade/general-prefs.glade:  Fix capitalization.
13731         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13732         * sources/rb-podcast-source.c:
13733         (rb_podcast_source_songs_show_popup_cb),
13734         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13736 2005-11-03  James Livingston  <jrl@ids.org.au>
13738         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13740         * shell/rb-removable-media-manager.c:
13741         (rb_removable_media_manager_mount_volume): don't check network or
13742         autofs mounts, as they're not going to be removable media. Stops
13743         sending lots of warnings to syslog. Closes 320571.
13745         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13746         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13747         320570.
13749 2005-11-03  James Livingston  <jrl@ids.org.au>
13751         Add support for playing audio CDs. Metadata lookup is done using
13752         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13753         the library when it gets broken out of S-J.
13754         
13755         Add a "rescan media" menu item, and commands for ejecting removable
13756         media.
13758         Move nautilus-cd-burner from optional to required depenency.
13760         * configure.ac:
13761         * data/ui/rhythmbox-ui.xml:
13762         * metadata/Makefile.am:
13763         + metadata/sj-error.c:
13764         + metadata/sj-error.h:
13765         + metadata/sj-metadata-marshal.list:
13766         + metadata/sj-metadata-musicbrainz.c:
13767         + metadata/sj-metadata-musicbrainz.h:
13768         + metadata/sj-metadata.c:
13769         + metadata/sj-metadata.h:
13770         + metadata/sj-structures.c:
13771         + metadata/sj-structures.h:
13772         * player/Makefile.am:
13773         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13774         * po/POTFILES.in:
13775         * shell/Makefile.am:
13776         * shell/rb-removable-media-manager.c:
13777         (rb_removable_media_manager_dispose), (poll_tray_opened),
13778         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13779         (rb_removable_media_manager_load_media),
13780         (rb_removable_media_manager_mount_volume),
13781         (rb_removable_media_manager_cmd_eject_medium),
13782         (rb_removable_media_manager_cmd_scan_media),
13783         (rb_removable_media_manager_check_volume),
13784         (rb_removable_media_manager_unmount_volume_swap),
13785         (rb_removable_media_manager_scan):
13786         * sources/Makefile.am:
13787         + sources/rb-audiocd-source.c:
13788         + sources/rb-audiocd-source.h:
13789         * tests/Makefile.am:
13791 2005-11-02  James Livingston  <jrl@ids.org.au>
13793         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13795         * sources/rb-iradio-source.c:
13796         (stations_view_drag_data_received_cb):
13797         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13798         don't crash when the second uri is missing frm the drop, which
13799         browsers sometimes do.
13801 2005-11-01  James Livingston  <jrl@ids.org.au>
13803         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13804         (rb_podcast_manager_insert_feed):
13805         * podcast/rb-podcast-manager.h:
13806         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13807         (rb_set_item_value), (rb_validate_item_propert),
13808         (rb_podcast_parse_date), (rb_podcast_parse_time):
13809         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13810         from the feed.
13812 2005-10-31  James Livingston  <jrl@ids.org.au>
13814         * ChangeLog:
13815         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13816         huge
13818 2005-10-31  James Livingston  <jrl@ids.org.au>
13820         * sources/rb-podcast-source.c:
13821         (rb_podcast_source_post_date_cell_data_func): generate the date string
13822         in a way that is correct in all locales.
13823         
13824         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13825         (rhythmdb_entry_sync_mirrored): make the last played/date added
13826         columns use the same format.
13828 2005-10-30  James Livingston  <jrl@ids.org.au>
13831         * podcast/rb-podcast-manager.c:
13832         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13833         
13834         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13835         iradio errors better.
13837 2005-10-30  James Livingston  <jrl@ids.org.au>
13839         patch by: Artem Baguinski <femistofel@gmail.com>
13841         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13843 2005-10-30  James Livingston  <jrl@ids.org.au>
13845         * podcast/rb-podcast-manager.c:
13846         (rb_podcast_manager_subscribe_feed),
13847         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13848         already been added, usually as a radio station. Closes 319434.
13850 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13852         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13853         mnemonics & resize issues)
13854         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13855         & mnemonics)
13856         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13857         widget for the "download location" label.
13859         Closes bug 320184.
13861 2005-10-29  James Livingston  <jrl@ids.org.au>
13863         Allow the search box to match words from multiple properties. Closes
13864         bug 139196. Thanks to the person from IRC who did a lot of the initial
13865         work.
13868         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13869         * lib/rb-util.h: Add functions to split a string into words, and one
13870         to perform "search folding" which is currently like casefolding but
13871         also strips punctuation
13872         
13873         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13874         (rhythmdb_query_preprocess):
13875         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13876         against title, artist, album and genre (for the search box)
13877         
13878         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13879         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13880         (save_entry), (search_match_properties),
13881         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13882         splitting into words and matching across multiple properties.
13883         
13884         * sources/rb-library-source.c: (construct_query_from_selection): use
13885         the new SEARCH_MATCH property for the search box
13886         
13887         * widgets/rb-entry-view.c: (type_ahead_search_func):
13889 2005-10-29  James Livingston  <jrl@ids.org.au>
13891         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13892         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13893         
13894         * shell/rb-playlist-manager.c:
13895         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13896         correctly.
13897         
13898         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13899         initial state of the shuffle/repeat menu items correctly. Patch from
13900         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13902 2005-10-29  James Livingston  <jrl@ids.org.au>
13904         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13905         double-free.
13906         
13907         * widgets/rb-cell-renderer-pixbuf.c:
13908         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13909         icon go black when row is not selected
13910         
13911         * doc/reference/tmpl/rb-daap-connection.sgml:
13912         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13914 2005-10-29  James Livingston  <jrl@ids.org.au>
13916         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13917         silly mistake, where it could think partial downloads has been
13918         completed.
13920 2005-10-29  James Livingston  <jrl@ids.org.au>
13922         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13924         * data/glade/song-info.glade:
13925         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13926         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13927         (rb_song_info_sync_entry_single): show the disc number in the song
13928         info window. From bug 311199.
13930 2005-10-29  James Livingston  <jrl@ids.org.au>
13932         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13933         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13934         regularly. Closes 155306.
13936 2005-10-29  James Livingston  <jrl@ids.org.au>
13938         * podcast/rb-podcast-manager.c:
13939         (rb_podcast_manager_download_entry),
13940         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13941         (rb_podcast_manager_insert_feed):
13942         * podcast/rb-podcast-manager.h:
13943         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13944         (rb_podcast_parser_start_element):
13945         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13946         don't download them again. However, it can't resume
13947         partially-downloaded ones.
13949 2005-10-28  James Livingston  <jrl@ids.org.au>
13951         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13952         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13953         work. Don't attempt to write duration as a tag.
13955         Thanks to Artem Baguinski <femistofel@gmail.com>
13957 2005-10-28  James Livingston  <jrl@ids.org.au>
13959         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13960         don't disable the status-bar menu item when the current source doesn't
13961         use the search box.
13963 2005-10-28  James Livingston  <jrl@ids.org.au>
13965         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13966         crash if the file has unknown length
13968 2005-10-27  James Livingston  <jrl@ids.org.au>
13970         * daapsharing/rb-daap-connection.c:
13971         (rb_daap_connection_state_done): don't assert when a daap server
13972         doesn't have any playlists
13974 2005-10-27  James Livingston  <jrl@ids.org.au>
13976         * sources/rb-sourcelist-model.c:
13977         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13978         source for the sourcelist. Closes bug 319817.
13980 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13982         Patch by: Renato Araujo <renatox@gmail.com>
13984         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13985           Fix for a crasher caused by previous patch.
13987 2005-10-26  James Livingston  <jrl@ids.org.au>
13989         * data/glade/podcast-prefs.glade:
13990         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13991         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13992         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13993         * podcast/rb-podcast-manager.c:
13994         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13995         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13996         * shell/rb-shell.c: Change some strings to make them more consistent.
13997         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13998         makes it clearer which is which. "Episode" may not be the best term,
13999         but it seems to be widely used.
14000         
14001         Also fix some strings that weren't marked as translatable.
14002         
14003         * podcast/rb-feed-podcast-properties-dialog.c:
14004         (rb_feed_podcast_properties_dialog_class_init),
14005         (rb_feed_podcast_properties_dialog_finalize):
14006         * podcast/rb-new-podcast-dialog.c:
14007         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14008         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14009         (rb_simple_view_finalize), (rb_simple_view_constructor):
14010         * podcast/rb-podcast-properties-dialog.c:
14011         (rb_podcast_properties_dialog_class_init),
14012         (rb_podcast_properties_dialog_finalize):
14013         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14014         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14015         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14016         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14017         use G_DEFINE_TYPE, instead of doing it manually.
14019 2005-10-26  James Livingston  <jrl@ids.org.au>
14021         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14022         <jrl@ids.org.au>
14024         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14025         (rb_metadata_init): Check that the necessary plugins are present to do
14026         id3 editing.
14027         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14028         corrupted before replacing the original.
14030 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14032         reviewed by: James Livingston <jrl@ids.org.au>
14034         Assign sequential IDs to playlists for DAAP rather than using the
14035         address of the playlist object.  Less flaky, and should work on 64bit
14036         platforms. Closes bug 319304.
14038         * daapsharing/rb-daap-share.c: 
14039         (rb_daap_share_set_property): watch for playlist creation
14040         (_find_by_id), (_find_by_source): playlist list search functions
14041         (rb_daap_share_playlist_created),
14042         (rb_daap_share_process_playlist),
14043         (rb_daap_share_playlist_destroyed):
14044          update playlist list as it changes, use weak refs on 
14045          playlists to get notified on destroy.
14046         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14047          destroy playlist list on shutdown
14048         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14049          DAAP response
14050         (databases_cb): search for playlist ID in list rather than just
14051          converting it to a pointer; return HTTP 404 if playlist not 
14052          found.
14053         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14054          is already used for the main library
14056 2005-10-26  James Livingston  <jrl@ids.org.au>
14058         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14060         * daapsharing/rb-daap-connection.c: (build_message),
14061         (http_response_handler), (http_get), (handle_server_info),
14062         (handle_login), (handle_update), (handle_database_info),
14063         (handle_song_listing), (handle_playlists),
14064         (handle_playlist_entries), (handle_logout),
14065         (rb_daap_connection_new), (rb_daap_connection_logout),
14066         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14067         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14068         * daapsharing/rb-daap-connection.h:
14069         * sources/rb-daap-source.c: (rb_daap_source_activate),
14070         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14071         (rb_daap_source_disconnect): Make connecting to DAAP sources
14072         asynchronous, so that non-responsive servers don't hang the UI. Closes
14073         316225.
14075 2005-10-26  James Livingston  <jrl@ids.org.au>
14077         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14079         * rhythmdb/rhythmdb-query-model.c:
14080         (rhythmdb_query_model_do_reorder): generate the row re-order map
14081         correctly.
14082         
14083         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14084         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14085         Update selection when rows get re-ordered. Closes 319718.
14087 2005-10-26  James Livingston  <jrl@ids.org.au>
14089         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14091         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14092         actually set the db pointer in play orders. Closes 319818.
14094 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14096         Patch by: Renato Araujo <renatox@gmail.com>
14098         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14099         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14100         (rb_podcast_manager_update_synctime),
14101         (rb_podcast_manager_config_changed),
14102         (rb_podcast_manager_insert_feed):
14103         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14104         (save_entry):
14105         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14106         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14107         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14109 2005-10-25  James Livingston  <jrl@ids.org.au>
14111         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14112         (db_entry_deleted_cb): don't share tracks that are hidden because the
14113         file is missing.
14115 2005-10-22  James Livingston  <jrl@ids.org.au>
14117         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14118         crash if an entry couldn't be playerd, without streamer setting an
14119         error.
14121         
14122         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14124         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14125         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14126         is pasted into the dialog.
14127         
14128         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14129         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14130         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14131         (rb_podcast_parse_channel_free):
14132         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14133         feeds
14135 2005-10-22  James Livingston  <jrl@ids.org.au>
14137         * sources/rb-iradio-source.c:
14138         (rb_iradio_source_first_time_changed): Make merging the default
14139         stations actually work.
14140         
14141         * sources/rb-podcast-source.c:
14142         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14143         people weren't seing the percentages in the stats column.
14145 2005-10-21  James Livingston  <jrl@ids.org.au>
14147         Patch from Caio Marcelo <cmarcelo@gmail.com>
14149         * shell/rb-shell.c: (rb_shell_window_state_cb),
14150         (rb_shell_get_visibility), (idle_hide_mainwindow),
14151         (rb_shell_set_visibility): Make the "show window" item in the tray
14152         icon menu show the toggle state correctly. Use a better policy on
14153         deciding whether the window is "visible" or not. Closes bug 308053.
14155 2005-10-21  James Livingston  <jrl@ids.org.au>
14157         * doc/reference/tmpl/rb-shell-preferences.sgml:
14158         * shell/Makefile.am: fix building with gtk-doc
14160         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14161         don't submit podcasts to audioscrobbler
14162         
14163         
14164         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14165         
14166         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14167         (rb_set_item_value): strip spaces surrounding podcast urls
14168         
14170         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14171         
14172         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14174 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14176         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14177          Audioscrobbler/Last.fm support
14179         * configure.ac:
14180         * data/glade/Makefile.am:
14181         * data/glade/audioscrobbler-prefs.glade:
14182         * data/rhythmbox.schemas:
14183         * lib/Makefile.am:
14184         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14185         * lib/md5.h:
14186         * lib/rb-preferences.h:
14187         * po/POTFILES.in:
14188         * shell/Makefile.am:
14189         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14190         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14191         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14192         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14193         (rb_audioscrobbler_timeout_cb), (mkmd5),
14194         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14195         (rb_audioscrobbler_do_handshake),
14196         (rb_audioscrobbler_do_handshake_cb),
14197         (rb_audioscrobbler_submit_queue),
14198         (rb_audioscrobbler_submit_queue_cb),
14199         (rb_audioscrobbler_import_settings),
14200         (rb_audioscrobbler_preferences_sync),
14201         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14202         (rb_audioscrobbler_gconf_changed_cb),
14203         (rb_audioscrobbler_song_changed_cb),
14204         (rb_audioscrobbler_username_entry_changed_cb),
14205         (rb_audioscrobbler_username_entry_activate_cb),
14206         (rb_audioscrobbler_password_entry_changed_cb),
14207         (rb_audioscrobbler_password_entry_activate_cb),
14208         (rb_audioscrobbler_enabled_check_changed_cb),
14209         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14210         (rb_audioscrobbler_load_entry_from_string),
14211         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14212         (rb_audioscrobbler_print_queue),
14213         (rb_audioscrobbler_free_queue_entries):
14214         * shell/rb-audioscrobbler.h:
14215         * shell/rb-shell-preferences.c:
14216         (rb_shell_preferences_append_audioscrobbler_config):
14217         * shell/rb-shell-preferences.h:
14218         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14219         (rb_shell_select_source), (rb_shell_cmd_preferences):
14220         * sources/Makefile.am:
14222 2005-10-21  James Livingston  <jrl@ids.org.au>
14224         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14226         * Makefile.am:
14227         * NEWS:
14228         * configure.ac:
14229         * data/art/Makefile.am:
14230         * data/glade/Makefile.am:
14231         * data/rhythmbox.schemas:
14232         * data/ui/rhythmbox-ui.xml:
14233         * doc/reference/Makefile.am:
14234         * doc/reference/tmpl/rhythmdb.sgml:
14235         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14236         * lib/rb-stock-icons.h:
14237         * po/POTFILES.in:
14238         * podcast/Makefile.am:
14239         + podcast/rb-feed-podcast-properties-dialog.c:
14240         + podcast/rb-feed-podcast-properties-dialog.h:
14241         + podcast/rb-new-podcast-dialog.c:
14242         + podcast/rb-new-podcast-dialog.h:
14243         + podcast/rb-podcast-manager.c:
14244         + podcast/rb-podcast-manager.h:
14245         + podcast/rb-podcast-marshal.list:
14246         + podcast/rb-podcast-parse.c:
14247         + podcast/rb-podcast-parse.h:
14248         + podcast/rb-podcast-properties-dialog.c:
14249         + podcast/rb-podcast-properties-dialog.h:
14250         * rhythmdb/rhythmdb-property-model.c:
14251         (rhythmdb_property_model_set_property),
14252         (rhythmdb_property_model_enable_drag):
14253         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14254         (rhythmdb_tree_parser_end_element), (save_entry),
14255         (rhythmdb_tree_save):
14256         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14257         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14258         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14259         (rhythmdb_entry_podcast_feed_get_type):
14260         * rhythmdb/rhythmdb.h:
14261         * shell/Makefile.am:
14262         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14263         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14264         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14265         (rb_shell_quit):
14266         * sources/Makefile.am:
14267         + sources/rb-podcast-source.c:
14268         + sources/rb-podcast-source.h:
14269         * widgets/Makefile.am:
14270         * widgets/rb-property-view.c: (rb_property_view_class_init),
14271         (rb_property_view_constructor),
14272         (rb_property_view_selection_changed_cb),
14273         (rb_property_view_get_treeview):
14274         * widgets/rb-property-view.h:
14275         + widgets/rb-simple-view.c:
14276         + widgets/rb-simple-view.h:
14278 2005-10-20  James Livingston  <jrl@ids.org.au>
14280         * NEWS: update with changes since 0.9.1
14282         * configure.ac: check whether collate_key_for_filename is available
14283         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14284         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14285         it if it isn't available in glib (i.e. building against 2.6)
14286         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14287         collation to get "natural sorting". Closes bug 158599.
14289 2005-10-20  James Livingston  <jrl@ids.org.au>
14291         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14293         * doc/reference/tmpl/rb-shell-player.sgml:
14294         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14295         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14296         (rb_shell_player_get_playing),
14297         (rb_shell_player_get_playing_time_string),
14298         (rb_shell_player_get_playing_time),
14299         (rb_shell_player_set_playing_time), (tick_cb),
14300         (rb_shell_player_get_playing_path), (filter_mmkeys):
14301         * shell/rb-shell-player.h:
14302         * shell/rb-shell-player.xml:
14303         * shell/rb-shell.c: (rb_shell_constructor),
14304         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14305         (rb_shell_set_window_title), (rb_shell_playing_impl),
14306         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14307         Merge the duration_changed and elapsed_changed DBUS signals into one
14308         elapsed_changed signal. Check that the output argument isn't NULL
14309         before trying to put things in it.
14311 2005-10-20  James Livingston  <jrl@ids.org.au>
14313         * rhythmdb/rhythmdb-query-model.c:
14314         (rhythmdb_query_model_entry_added_cb),
14315         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14316         problem where hidden entries could be shown in playlists.
14317         
14318         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14319         issues when switching in and out of small mode.
14321 2005-10-19  James Livingston  <jrl@ids.org.au>
14323         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14324         (rb_shell_constructor), (rb_shell_window_state_cb),
14325         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14326         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14327         (rb_shell_view_smalldisplay_changed_cb),
14328         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14329         (rb_shell_sync_paned): remove gconf window-state races, prevent
14330         changing small mode too often, fix window event races. Closes 122806.
14332         
14333         Patch from Caio Marcelo <cmarcelo@gmail.com>
14335         * data/rhythmbox.schemas:
14336         * shell/rb-shell.c: (rb_shell_window_state_cb),
14337         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14338         Remember the position of the window. Closes 315289.
14340 2005-10-19  James Livingston  <jrl@ids.org.au>
14342         Patch from Christophe Fergeau  <teuf@gnome.org>
14344         * configure.ac: determine whether libgpod is present when neither
14345         --with-ipod nor --without-ipod is passed
14347 2005-10-19  James Livingston  <jrl@ids.org.au>
14349         Patch from Caio Marcelo <cmarcelo@gmail.com>
14351         * shell/rb-shell-player.c: (do_next_idle),
14352         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14353         (rb_shell_player_do_previous_or_seek),
14354         (rb_shell_player_previous_button_cb),
14355         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14356         (rb_shell_player_cmd_next), (eos_cb):
14357         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14358         end of the playlist is reached.
14360 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14362         * lib/rb-thread.c: fix a few GSource leaks
14364 2005-10-19  James Livingston  <jrl@ids.org.au>
14366         * doc/reference/tmpl/bacon-volume.sgml:
14367         * doc/reference/tmpl/disclosure-widget.sgml:
14368         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14369         * doc/reference/tmpl/eggnotificationbubble.sgml:
14370         * doc/reference/tmpl/eggtrayicon.sgml:
14371         * doc/reference/tmpl/gsequence.sgml:
14372         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14373         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14374         * doc/reference/tmpl/rb-daap-connection.sgml:
14375         * doc/reference/tmpl/rb-daap-dialog.sgml:
14376         * doc/reference/tmpl/rb-daap-mdns.sgml:
14377         * doc/reference/tmpl/rb-daap-share.sgml:
14378         * doc/reference/tmpl/rb-daap-sharing.sgml:
14379         * doc/reference/tmpl/rb-daap-source.sgml:
14380         * doc/reference/tmpl/rb-daap-src.sgml:
14381         * doc/reference/tmpl/rb-daap-structure.sgml:
14382         * doc/reference/tmpl/rb-debug.sgml:
14383         * doc/reference/tmpl/rb-dialog.sgml:
14384         * doc/reference/tmpl/rb-druid.sgml:
14385         * doc/reference/tmpl/rb-entry-view.sgml:
14386         * doc/reference/tmpl/rb-enums.sgml:
14387         * doc/reference/tmpl/rb-file-helpers.sgml:
14388         * doc/reference/tmpl/rb-glade-helpers.sgml:
14389         * doc/reference/tmpl/rb-header.sgml:
14390         * doc/reference/tmpl/rb-history.sgml:
14391         * doc/reference/tmpl/rb-ipod-source.sgml:
14392         * doc/reference/tmpl/rb-iradio-source.sgml:
14393         * doc/reference/tmpl/rb-library-source.sgml:
14394         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14395         * doc/reference/tmpl/rb-metadata.sgml:
14396         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14397         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14398         * doc/reference/tmpl/rb-play-order-linear.sgml:
14399         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14400         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14401         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14402         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14403         * doc/reference/tmpl/rb-play-order-random.sgml:
14404         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14405         * doc/reference/tmpl/rb-play-order.sgml:
14406         * doc/reference/tmpl/rb-player.sgml:
14407         * doc/reference/tmpl/rb-playlist-manager.sgml:
14408         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14409         * doc/reference/tmpl/rb-playlist-source.sgml:
14410         * doc/reference/tmpl/rb-preferences.sgml:
14411         * doc/reference/tmpl/rb-property-view.sgml:
14412         * doc/reference/tmpl/rb-query-creator-private.sgml:
14413         * doc/reference/tmpl/rb-query-creator.sgml:
14414         * doc/reference/tmpl/rb-rating-helper.sgml:
14415         * doc/reference/tmpl/rb-rating.sgml:
14416         * doc/reference/tmpl/rb-recorder.sgml:
14417         * doc/reference/tmpl/rb-refstring.sgml:
14418         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14419         * doc/reference/tmpl/rb-removable-media-source.sgml:
14420         * doc/reference/tmpl/rb-search-entry.sgml:
14421         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14422         * doc/reference/tmpl/rb-shell-glue.sgml:
14423         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14424         * doc/reference/tmpl/rb-shell-player.sgml:
14425         * doc/reference/tmpl/rb-shell-preferences.sgml:
14426         * doc/reference/tmpl/rb-shell.sgml:
14427         * doc/reference/tmpl/rb-song-display-box.sgml:
14428         * doc/reference/tmpl/rb-song-info.sgml:
14429         * doc/reference/tmpl/rb-source-header.sgml:
14430         * doc/reference/tmpl/rb-source.sgml:
14431         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14432         * doc/reference/tmpl/rb-sourcelist.sgml:
14433         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14434         * doc/reference/tmpl/rb-statusbar.sgml:
14435         * doc/reference/tmpl/rb-stock-icons.sgml:
14436         * doc/reference/tmpl/rb-string-helpers.sgml:
14437         * doc/reference/tmpl/rb-thread.sgml:
14438         * doc/reference/tmpl/rb-tray-icon.sgml:
14439         * doc/reference/tmpl/rb-tree-dnd.sgml:
14440         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14441         * doc/reference/tmpl/rb-util.sgml:
14442         * doc/reference/tmpl/rhythmbox-unused.sgml:
14443         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14444         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14445         * doc/reference/tmpl/rhythmdb-tree.sgml:
14446         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14447         
14448         * doc/reference/Makefile.am: make docs build with changed ipod support
14449         
14450         * po/POTFILES.in: remove sources/itunesdb
14452 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14454         * sources/itunesdb.c:
14455         * sources/itunesdb.h: removed now useless files
14457 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14459         * configure.ac:
14460         * shell/Makefile.am:
14461         * sources/Makefile.am:
14462         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14463         code
14464         [1]: http://www.gtkpod.org/libgpod.html
14467 2005-10-18  James Livingston  <jrl@ids.org.au>
14469         patch from Funda Wang <fundawang@linux.net.cn>
14471         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14472         the notification bubble string translatable.
14474 ============ Version 0.9.1
14476 2005-10-16  James Livingston  <jrl@ids.org.au>
14478         * configure.ac: bump version to 0.9.1
14479         * NEWS: update translation credits
14481 2005-10-16  James Livingston  <jrl@ids.org.au>
14483         * rhythmdb/rhythmdb-query-model.c:
14484         (rhythmdb_query_model_class_init),
14485         (rhythmdb_query_model_drag_data_received): 
14486         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14487         notified when things are dropped into the entry view.
14488         
14489         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14490         (rb_playlist_source_add_location_swapped),
14491         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14492         (rb_playlist_source_non_entry_dropped),
14493         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14494         things onto a playlist's entry view work correctly, and doesn't cause
14495         crashes. Allow folders to be dropped as well. (Closes 318308)
14497 2005-10-16  James Livingston  <jrl@ids.org.au>
14499         * NEWS: Update some more
14501         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14502         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14503         with the paned size, so that it doesn't move when the window is
14504         maximised/restored. Closes bug 315852.
14506         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14507         display the playcount column, as it's useless (it never get changed).
14509 2005-10-14  James Livingston  <jrl@ids.org.au>
14511         * Makefile.am:
14512         * data/Makefile.am:
14513         * doc/reference/Makefile.am: get "make distcheck" to pass again
14515 2005-10-11  James Livingston  <jrl@ids.org.au>
14517         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14518         destroy the connection when retrieving the playlists fails, because
14519         tracks have already been added. Closes 318380.
14521 2005-10-11  James Livingston  <jrl@ids.org.au>
14523         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14524         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14525         (source_name_edited_cb): Ask for the columns to be resized when a
14526         source is added, deleted or changes name.
14528 2005-10-11  James Livingston  <jrl@ids.org.au>
14530         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14531         create a thread when processing a directory. This stops up created one
14532         thread for each file in a playlist we're trying to load. Closes
14533         317850.
14535         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14536         typo that made sort-by-artist not work correctly.
14538 2005-10-11  James Livingston  <jrl@ids.org.au>
14540         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14541         support is enabled
14543 2005-10-11  James Livingston  <jrl@ids.org.au>
14545         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14546         * lib/rb-file-helpers.h: add a function to turn uris into our
14547         canonical path-escaped form
14548         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14549         above function when import playlists. This will fix the problem of
14550         duplicate entries due to different representations of the uri (bug
14551         158211).
14553 2005-10-11  James Livingston  <jrl@ids.org.au>
14555         * shell/rb-shell.c: (rb_shell_get_visibility),
14556         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14557         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14558         window hiding so that Alt-F4 works again.
14560         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14561         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14562         (rb_entry_view_string_sort_func): Stop some crashes where a string
14563         property was set to NULL.
14565 2005-10-10  James Livingston  <jrl@ids.org.au>
14567         * doc/reference/rhythmbox.types: fix gtk-doc generation
14569 2005-10-09  James Livingston  <jrl@ids.org.au>
14571         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14572         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14573         accelerators, so that we don't have as many conflicting keys.
14575 2005-10-08  James Livingston  <jrl@ids.org.au>
14577         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14578         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14579         bug 129285.
14581 2005-10-07  James Livingston  <jrl@ids.org.au>
14583         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14584         local path names in the same way as every other URI. This should stop
14585         duplicates occurring due to different escapings. Closes bug 158211.
14587 2005-10-06  James Livingston  <jrl@ids.org.au>
14589         * NEWS: more updates
14590         
14591         patch from Jaap Haitsma <jaap@haitsma.org>:
14593         * configure.ac:
14594         * data/Makefile.am:
14595         * data/art/Makefile.am:
14596         - data/art/rhythmbox-paused.png:
14597         - data/art/rhythmbox-playback-error.png:
14598         - data/art/rhythmbox-playing.png:
14599         - data/art-clearlooks/:
14600         * lib/rb-file-helpers.c: (rb_file):
14601         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14602         * lib/rb-stock-icons.h:
14603         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14604         * widgets/rb-cell-renderer-pixbuf.c:
14605         (rb_cell_renderer_pixbuf_render):
14606         * widgets/rb-entry-view.c: (rb_entry_view_init),
14607         (rb_entry_view_set_playing):
14608         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14609         stock icons instead of custom art. Drop remanents of art-clearlooks.
14611 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14613         * configure.ac: Added ne in ALL_LINGUAS
14615 2005-10-02  James Livingston  <jrl@ids.org.au>
14617         * data/glade/Makefile.am: actually install the daap prefs glade file
14619 2005-09-30  James Livingston  <jrl@ids.org.au>
14621         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14622         translatable files, so that make check works and we don't annoy the
14623         translators.
14624         
14625         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14626         sanity checking, in case a db entry is missing some properties.
14628 2005-09-29  James Livingston  <jrl@ids.org.au>
14630         - lib/rb-string-helpers.c:
14631         - lib/rb-string-helpers.h:
14632         * lib/Makefile.am:
14633         * rhythmdb/rhythmdb-tree.c:
14634         * rhythmdb/rhythmdb.c:
14635         * shell/main.c: (main):
14636         * shell/rb-shell.c:
14637         * widgets/rb-entry-view.c:
14638         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14639         utility functions haven't been used in a while.
14641 2005-09-27  James Livingston  <jrl@ids.org.au>
14643         * data/art-clearlooks/Makefile.am:
14644         - data/art-clearlooks/rhythmbox-album.png:
14645         - data/art-clearlooks/rhythmbox-audiocd.png:
14646         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14647         - data/art-clearlooks/rhythmbox-dnd.png:
14648         - data/art-clearlooks/rhythmbox-ipod.png:
14649         - data/art-clearlooks/rhythmbox-iradio.png:
14650         - data/art-clearlooks/rhythmbox-library.png:
14651         - data/art-clearlooks/rhythmbox-next.png:
14652         - data/art-clearlooks/rhythmbox-pause.png:
14653         - data/art-clearlooks/rhythmbox-play.png:
14654         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14655         - data/art-clearlooks/rhythmbox-playlist.png:
14656         - data/art-clearlooks/rhythmbox-previous.png:
14657         - data/art-clearlooks/rhythmbox-repeat.png:
14658         - data/art-clearlooks/rhythmbox-rewind.png:
14659         - data/art-clearlooks/rhythmbox-shuffle.png:
14660         - data/art-clearlooks/rhythmbox-stop.png:
14661         - data/art-clearlooks/rhythmbox-visuals.png:
14662         - data/art-clearlooks/rhythmbox-volume-max.png:
14663         - data/art-clearlooks/rhythmbox-volume-medium.png:
14664         - data/art-clearlooks/rhythmbox-volume-min.png:
14665         - data/art-clearlooks/rhythmbox-volume-mute.png:
14666         - data/art-clearlooks/rhythmbox-volume-zero.png:
14667         * data/art/Makefile.am:
14668         - data/art/rhythmbox-album.png:
14669         - data/art/rhythmbox-audiocd.png:
14670         - data/art/rhythmbox-automatic-playlist.png:
14671         - data/art/rhythmbox-dnd.png:
14672         - data/art/rhythmbox-ipod.png:
14673         - data/art/rhythmbox-iradio.png:
14674         - data/art/rhythmbox-library.png:
14675         - data/art/rhythmbox-next.png:
14676         - data/art/rhythmbox-pause.png:
14677         - data/art/rhythmbox-play.png:
14678         - data/art/rhythmbox-playlist-menu.png:
14679         - data/art/rhythmbox-playlist.png:
14680         - data/art/rhythmbox-previous.png:
14681         - data/art/rhythmbox-repeat.png:
14682         - data/art/rhythmbox-rewind.png:
14683         - data/art/rhythmbox-shuffle.png:
14684         - data/art/rhythmbox-stop.png:
14685         - data/art/rhythmbox-visuals.png:
14686         - data/art/rhythmbox-volume-max.png:
14687         - data/art/rhythmbox-volume-medium.png:
14688         - data/art/rhythmbox-volume-min.png:
14689         - data/art/rhythmbox-volume-mute.png:
14690         - data/art/rhythmbox-volume-zero.png:
14691         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14692         * lib/rb-stock-icons.h:
14693         * shell/rb-playlist-manager.c:
14694         * shell/rb-shell-player.c:
14695         * sources/rb-daap-source.c: (rb_daap_get_icon):
14696         * sources/rb-ipod-source.c:
14697         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14698         * sources/rb-library-source.c: (rb_library_source_new):
14699         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14700         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14701         that hasn't been used in a LONG time, and also remove art that are
14702         now stock icons.
14704 2005-09-27  James Livingston  <jrl@ids.org.au>
14706         * README: point to the gnome.org web sites, and update the example
14707         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14708         
14709         * rhythmdb/rhythmdb-query-model.c:
14710         (rhythmdb_query_model_set_property),
14711         (rhythmdb_query_model_get_property),
14712         (rhythmdb_query_model_finalize):
14713         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14714         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14715         * rhythmdb/rhythmdb.h:
14716         * sources/rb-iradio-source.c: (impl_search):
14717         * sources/rb-library-source.c: (impl_search): Add query
14718         "preprocessing", which performs operations such as casefolding any
14719         strings that will be compared to any of the *_FOLDED properties.
14720         Closes bug 316039
14722 2005-09-27  James Livingston  <jrl@ids.org.au>
14724         * data/glade/daap-prefs.glade:
14725         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14726         file for the daap preferences pane
14727         
14728         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14729         (rb_sourcelist_append), (rb_sourcelist_remove),
14730         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14731         don't display the column for source expanders unless there is an
14732         expandable source.
14734 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14736         * .cvsignore:
14737         * Makefile.am:
14738         * configure.ac:
14739         * doc/.cvsignore:
14740         * doc/Makefile.am:
14741         * doc/reference/.cvsignore:
14742         * doc/reference/Makefile.am:
14743         * doc/reference/rhythmbox-docs.sgml:
14744         * doc/reference/rhythmbox-sections.txt:
14745         * doc/reference/rhythmbox.types:
14746         * doc/reference/tmpl/bacon-volume.sgml:
14747         * doc/reference/tmpl/disclosure-widget.sgml:
14748         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14749         * doc/reference/tmpl/eggnotificationbubble.sgml:
14750         * doc/reference/tmpl/eggtrayicon.sgml:
14751         * doc/reference/tmpl/gsequence.sgml:
14752         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14753         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14754         * doc/reference/tmpl/rb-daap-connection.sgml:
14755         * doc/reference/tmpl/rb-daap-dialog.sgml:
14756         * doc/reference/tmpl/rb-daap-mdns.sgml:
14757         * doc/reference/tmpl/rb-daap-share.sgml:
14758         * doc/reference/tmpl/rb-daap-sharing.sgml:
14759         * doc/reference/tmpl/rb-daap-source.sgml:
14760         * doc/reference/tmpl/rb-daap-src.sgml:
14761         * doc/reference/tmpl/rb-daap-structure.sgml:
14762         * doc/reference/tmpl/rb-debug.sgml:
14763         * doc/reference/tmpl/rb-dialog.sgml:
14764         * doc/reference/tmpl/rb-druid.sgml:
14765         * doc/reference/tmpl/rb-entry-view.sgml:
14766         * doc/reference/tmpl/rb-enums.sgml:
14767         * doc/reference/tmpl/rb-file-helpers.sgml:
14768         * doc/reference/tmpl/rb-glade-helpers.sgml:
14769         * doc/reference/tmpl/rb-header.sgml:
14770         * doc/reference/tmpl/rb-history.sgml:
14771         * doc/reference/tmpl/rb-ipod-source.sgml:
14772         * doc/reference/tmpl/rb-iradio-source.sgml:
14773         * doc/reference/tmpl/rb-library-source.sgml:
14774         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14775         * doc/reference/tmpl/rb-metadata.sgml:
14776         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14777         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14778         * doc/reference/tmpl/rb-play-order-linear.sgml:
14779         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14780         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14781         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14782         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14783         * doc/reference/tmpl/rb-play-order-random.sgml:
14784         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14785         * doc/reference/tmpl/rb-play-order.sgml:
14786         * doc/reference/tmpl/rb-player.sgml:
14787         * doc/reference/tmpl/rb-playlist-manager.sgml:
14788         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14789         * doc/reference/tmpl/rb-playlist-source.sgml:
14790         * doc/reference/tmpl/rb-preferences.sgml:
14791         * doc/reference/tmpl/rb-property-view.sgml:
14792         * doc/reference/tmpl/rb-query-creator-private.sgml:
14793         * doc/reference/tmpl/rb-query-creator.sgml:
14794         * doc/reference/tmpl/rb-rating-helper.sgml:
14795         * doc/reference/tmpl/rb-rating.sgml:
14796         * doc/reference/tmpl/rb-recorder.sgml:
14797         * doc/reference/tmpl/rb-refstring.sgml:
14798         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14799         * doc/reference/tmpl/rb-removable-media-source.sgml:
14800         * doc/reference/tmpl/rb-search-entry.sgml:
14801         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14802         * doc/reference/tmpl/rb-shell-glue.sgml:
14803         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14804         * doc/reference/tmpl/rb-shell-player.sgml:
14805         * doc/reference/tmpl/rb-shell-preferences.sgml:
14806         * doc/reference/tmpl/rb-shell.sgml:
14807         * doc/reference/tmpl/rb-song-display-box.sgml:
14808         * doc/reference/tmpl/rb-song-info.sgml:
14809         * doc/reference/tmpl/rb-source-header.sgml:
14810         * doc/reference/tmpl/rb-source.sgml:
14811         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14812         * doc/reference/tmpl/rb-sourcelist.sgml:
14813         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14814         * doc/reference/tmpl/rb-statusbar.sgml:
14815         * doc/reference/tmpl/rb-stock-icons.sgml:
14816         * doc/reference/tmpl/rb-string-helpers.sgml:
14817         * doc/reference/tmpl/rb-thread.sgml:
14818         * doc/reference/tmpl/rb-tray-icon.sgml:
14819         * doc/reference/tmpl/rb-tree-dnd.sgml:
14820         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14821         * doc/reference/tmpl/rb-util.sgml:
14822         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14823         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14824         * doc/reference/tmpl/rhythmdb-tree.sgml:
14825         * doc/reference/tmpl/rhythmdb.sgml:
14826         * macros/.cvsignore:
14827         * shell/Makefile.am:
14828         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14829         (rb_source_finalize), (rb_source_set_property),
14830         (rb_source_get_property), (default_get_pixbuf),
14831         (_rb_source_show_popup):
14832         * sources/rb-source.h:
14833         Add support for gtk-doc in rhythmbox.
14834         Convert RBSource to use newer glib functions, such as add_private.
14835         Gives RBSource a default get_pixbuf implementation.
14837 2005-09-25  James Livingston  <jrl@ids.org.au>
14839         * NEWS: Update with about a months worth of changes
14841         * data/glade/song-info-multiple.glade:
14842         * data/glade/song-info.glade:
14843         * data/rhythmbox.schemas:
14844         * lib/rb-preferences.h:
14845         * rhythmdb/rhythmdb.h:
14846         * shell/rb-shell-player.c:
14847         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14848         few remaining parts of autorating.
14850 2005-09-24  James Livingston  <jrl@ids.org.au>
14852         * shell/rb-shell.c: (rb_shell_constructor),
14853         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14854         (rb_shell_window_configure_cb): store window state in the gconf keys,
14855         so that it gets used. Closes bugs 313893 and 137068.
14857 2005-09-20  James Livingston  <jrl@ids.org.au>
14859         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14860         crash if the entry has a NULL string in a property
14861         
14862         * shell/rb-removable-media-manager.c:
14863         (rb_removable_media_manager_load_media): fix some memory leaks
14864         
14865         (rb_removable_media_manager_mount_volume),
14866         (rb_removable_media_manager_eject_medium_cb),
14867         (rb_removable_media_manager_cmd_eject_medium): use
14868         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14869         
14870         * sources/rb-removable-media-source.c:
14871         (rb_removable_media_source_set_property),
14872         (rb_removable_media_source_get_property): use
14873         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14875 2005-09-18  James Livingston  <jrl@ids.org.au>
14877         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14878         column
14880         * data/glade/general-prefs.glade:
14881         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14882         (rb_shell_preferences_column_check_changed_cb),
14883         (rb_shell_preferences_sync): add checkbox to control visibility
14884         of the column
14885         
14886         
14887         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14888         (save_entry):
14889         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14890         (rhythmdb_prop_get_type):
14891         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14892         was as "last played" is handled
14893         
14894         * sources/rb-library-source.c: (rb_library_source_constructor):
14895         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14896         Make the column show in the library and playlists
14897         
14898         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14899         * widgets/rb-entry-view.h: add the column
14900         
14901         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14902         be sorted by the column
14904 2005-09-16  James Livingston  <jrl@ids.org.au>
14906         * shell/rb-shell-player.c: (rb_shell_player_init),
14907         (rb_shell_player_do_previous_or_seek),
14908         (rb_shell_player_previous_button_cb),
14909         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14910         (rb_shell_player_playpause_button_cb): Make the previous button act
14911         the same as the menu item. Fix an inversion of the "previous track or
14912         seek" logic.
14913         
14914         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14915         
14916         (rb_shell_player_playpause): make --play-pause stop source that can't
14917         be paused
14919 2005-09-15  James Livingston  <jrl@ids.org.au>
14921         * configure.ac: increase totem-plparser requirements to 1.1.5
14923         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14924         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14925         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14926         use the newer playlist APIs to save the name of the playlist, and use
14927         the name of a loaded playlist.
14929         Closes bug 309817.
14931 2005-09-15  James Livingston  <jrl@ids.org.au>
14933         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14935         * shell/Makefile.am: stop some linker warnings
14937         * shell/main.c: (main): make --no-registration work with dbus
14939 2005-09-15  James Livingston  <jrl@ids.org.au>
14941         * daapsharing/rb-daap-sharing.c: (create_share):
14942         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14943         reference sinking and counting issues that I caused.
14945 2005-09-15  James Livingston  <jrl@ids.org.au>
14947         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14948         playing" icon in the "now playing" column header.
14950 2005-09-14  James Livingston  <jrl@ids.org.au>
14952         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14953         daap shares, when sharing is turned off.
14955 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14957         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14958         the GConf value's default, especially for badly installed schema
14959         files
14961 2005-09-12  James Livingston  <jrl@ids.org.au>
14963         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14965         Patch from Paolo Borelli <pborelli@katamail.com>
14967         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14968         grip when maximised. Closes bug 316055.
14970 2005-09-11  James Livingston  <jrl@ids.org.au>
14972         Patch from William Jon McCann <mccann@jhu.edu>
14974         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14975         subclass of GtkStatusbar instead of GtkHBox.
14976         (rb_statusbar_construct): Don't set border width.
14977         (rb_statusbar_init): Use resize grip.  Don't use
14978         markup.
14979         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14980         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14981         Connect tooltips for actions.
14982         (rb_statusbar_sync_status): Push new message to statusbar.
14983         (rb_statusbar_set_progress): Don't use markup.
14984         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14985         flag here since it prevents actually showing or hiding.
14986         (rb_statusbar_sync_with_source): Push new message to statusbar.
14988 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14990         * daapsharing/rb-daap-structure.c:
14991         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14992         around debugging definition.
14994 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14995         
14996         * daapsharing/rb-daap-structure.c:
14997         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14998         type = version.
15000         * daapsharing/rb-daap-mdns.c/h:
15001         (resolve_cb): Updated mDNS resolve callback to send service-name &
15002         name (read from Machine Name in the TXT data or equal to service-name
15003         if not in TXT).
15005         * daapsharing/rb-daap-source.c:
15006         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15007         (rb_daap_source_get_property), (rb_daap_source_new),
15008         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15009         (stop_resolver), (start_browsing), (stop_browsing), 
15010         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15011         and added 'host' and 'port' gobject properties.  Updated to use new
15012         mDNS resolve callback sending service-name & name arguments.
15014 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15016         * daapsharing/rb-daap-mdns.c:
15017         (howl_strerror): New function to report errors from Howl
15018         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15019         (get_sw_discovery), (get_avahi_client): Better error reporting from
15020         Howl & Avahi.
15022         * sources/rb-daap-source.:
15023         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15024         not get started or stopped in some situations.
15025         
15026 2005-09-12  James Livingston  <jrl@ids.org.au>
15028         * shell/rb-removable-media-manager.c: add a missing include, that
15029         would stop compilation if ipod support wasn't turned on
15031 2005-09-11  James Livingston  <jrl@ids.org.au>
15033         * daapsharing/rb-daap-dialog.c: (encode_base64),
15034         (rb_daap_password_dialog_new_run),
15035         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15036         it is no broken in to two pieces, and remove a use of a goto
15037         
15038         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15039         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15040         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15041         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15042         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15043         memory leaks, and some code style things.
15044         
15045         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15046         (rb_daap_share_init), (rb_daap_share_set_property),
15047         (rb_daap_share_dispose), (rb_daap_share_new),
15048         (rb_daap_share_get_property): make the DB and the playlist manager
15049         gobject properties.
15050         
15051         (message_add_standard_headers),
15052         (message_set_from_rb_daap_structure), (server_info_cb),
15053         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15054         (server_cb), (add_db_entry), (db_entry_added_cb),
15055         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15056         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15057         style and use CONF_PREFIX in the gconf keys
15058         
15059         * daapsharing/rb-daap-sharing.c: (create_share),
15060         (enable_sharing_changed_cb), (share_name_changed_cb),
15061         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15062         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15063         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15064         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15065         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15066         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15067         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15068         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15069         hasn't actually changed, fix some memory leaks, code style and release
15070         gconf notifications when the object is destroyed.
15071         
15072         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15073         (rb_daap_source_class_init), (rb_daap_source_init),
15074         (rb_daap_source_dispose), (rb_daap_source_set_property),
15075         (rb_daap_source_get_property), (rb_daap_source_new),
15076         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15077         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15078         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15079         (rb_daap_source_activate), (rb_daap_source_disconnect),
15080         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15081         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15082         release gconf notifications, handle gconf callbacks where the key
15083         hasn't changed, make "real name" and "password protected" gobject
15084         properties, fix some code style and fix a memory leak.
15086 2005-09-11  James Livingston  <jrl@ids.org.au>
15088         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15090         * shell/rb-playlist-manager.c:
15091         (rb_playlist_manager_save_playlists),
15092         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15093         when we aren't supposed to. (Closes bug 315886)
15095 2005-09-11  James Livingston  <jrl@ids.org.au>
15097         * shell/rb-removable-media-manager.c:
15098         (rb_removable_media_manager_class_init),
15099         (rb_removable_media_manager_init),
15100         (rb_removable_media_manager_dispose),
15101         (rb_removable_media_manager_set_property),
15102         (rb_removable_media_manager_get_property),
15103         (rb_removable_media_manager_new),
15104         (rb_removable_media_manager_load_media),
15105         (rb_removable_media_manager_volume_mounted_cb),
15106         (rb_removable_media_manager_volume_unmounted_cb),
15107         (rb_removable_media_manager_mount_volume),
15108         (rb_removable_media_manager_unmount_volume),
15109         (rb_removable_media_manager_source_deleted_cb),
15110         (rb_removable_media_manager_append_media_source),
15111         (rb_removable_media_manager_set_uimanager),
15112         (rb_removable_media_manager_eject_medium_cb),
15113         (rb_removable_media_manager_cmd_eject_medium):
15114         * shell/rb-removable-media-manager.h:
15115         * sources/rb-removable-media-source.c:
15116         (rb_removable_media_source_class_init),
15117         (rb_removable_media_source_init),
15118         (rb_removable_media_source_dispose),
15119         (rb_removable_media_source_set_property),
15120         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15121         (impl_delete_thyself):
15122         * sources/rb-removable-media-source.h: Add the four files that I
15123         somehow managed not to add to cvs in the last commit. Oops.
15125 2005-09-11  James Livingston  <jrl@ids.org.au>
15127         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15128         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15129         
15130         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15131         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15132         removable-media-manager on startup, and handle creation of sources.
15133         
15134         * sources/rb-ipod-source.h:
15135         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15136         (rb_ipod_source_init), (rb_ipod_source_constructor),
15137         (rb_ipod_source_dispose), (rb_ipod_source_new),
15138         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15139         the iPod source over to the removable media framework.
15140         
15141         * sources/rb-library-source.c: (paned_size_allocate_cb),
15142         (rb_library_source_get_paned_key): fix a potential bug is a
15143         library-derived source doesn't have a paned-key
15145 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15147         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15148         mp3 when we can't get the suffix of a file (Closes: #315941)
15150 2005-09-10  James Livingston  <jrl@ids.org.au>
15152         * configure.ac: fix the mdns tests, so that it doesn't complain about
15153         not finding one, if daap support isn't being compiled in
15155 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15157         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15159         * daapsharing/rb-daap-dialog.c:
15160         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15161         HIG compliancy & images.
15163         * daapsharing/rb-daap-mdns.c:
15164         (browse_cb), (resolve_cb): Better detection of local services.  
15165         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15166         Howl's limitations.  Fix the way collision handling is done under
15167         Avahi.
15169         * daapsharing/rb-daap-share.c:
15170         (publish_cb): Better name collision handling (at least for Avahi).
15172 2005-09-10  James Livingston  <jrl@ids.org.au>
15174         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15175         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15176         preferences more HIG compliant (Closes #315889)
15177         
15178         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15179         list of files to be translated
15181 2005-09-10  James Livingston  <jrl@ids.org.au>
15183         * configure.ac: fix it so that --enable-daap=no works
15184         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15185         uninstalled
15187 2005-09-10  James Livingston  <jrl@ids.org.au>
15189         Patch from Christophe Fergeau <teuf@gnome.org>
15191         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15192         the ipod code.
15194 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15195         * README.daap: Updating documentation
15197 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15198         * AUTHORS: Added myself.
15200         * daapsharing/rb-daap-connection.c:
15201         (connection_login), (rb_connection_new): Reorganized password
15202         handling.
15204         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15206         * shell/rb-shell.c:
15207         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15209         * sources/rb-daap-source.c:
15210         (rb_daap_source_activate): Better error handling when we are unable to
15211         connect.
15212         
15213 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15214         * README.daap: Fixed some terminology.
15216         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15217         New --with-mdns=auto|howl|avahi flag to specify.
15219         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15220         name collision dialogs.
15222         * daapsharing/rb-daap-connection.c:
15223         (connection_get_password), (build_message), (http_get)
15224         (connection_login): Ask for & use a password if the share demands it.
15226         * daapsharing/rb-daap-connection.h: Changed prototype of
15227         rb_daap_connection_new.
15228         
15229         * daapsharing/rb-daap-mdns.c: 
15230         (resolve_cb): Better detection of your own music share so it doesn't 
15231         appear in the sourcelist.
15233         * daapsharing/rb-daap-share.c:
15234         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15235         that start on any available port.
15237         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15239         * sources/rb-daap-source.c:
15240         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15241         (browse_cb): Handle passworded shares. Resolve the host immediately
15242         instead of when activated.
15243         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15244         (rb_daap_source_new): New GConf keys for UI state.
15245         (rb_daap_source_activate): Use RBPlaylistSource instead of
15246         RBDAAPPlaylistSource
15247         
15248         * sources/rb-daap-playlist-source.c/h: Removed
15250         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15251         if the playlist is local (i.e. not DAAP or iPod).
15252         
15253         * shell/rb-playlist-manager.c:
15254         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15255         wouldn't get saved if the last playlist hadn't changed.  Only save
15256         local playlists.
15257         
15258 2005-09-09  James Livingston  <jrl@ids.org.au>
15260         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15261         iPod preferences pane, as it already uses the browser views as the
15262         library.
15264 2005-09-09  James Livingston  <jrl@ids.org.au>
15266         * sources/rb-library-source.c: (rb_library_source_finalize),
15267         (rb_library_source_constructor): fix gconf monitoring of library
15268         preference keys.
15269         * sources/rb-library-source.h: remove declaration of function that
15270         does not exist
15272 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15274         * player/rb-player-gst.c:
15275         (rb_player_set_time): Fix seeking in daap streams.
15277 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15279         * data/rhythmbox.schemas: Turn music share browsing on by default.
15281 2005-09-07  James Livingston  <jrl@ids.org.au>
15283         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15285 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15286         * player/rb-player-gst.c: 
15287         (rb_player_get_time): Fix for extra << & == that accidentally made
15288         it in.
15290         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15291         
15292 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15293         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15294         it in last time.  Sorry.
15296 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15297         
15298         * player/rb-player-gst.c:
15299         (rb_player_get_time): Fix a small crash appearing when
15300         the uri isn't set in the player, but rb_player_get_time() is
15301         still called.
15303         * configure.ac: Also check for libsoup 2.4, which is what ships with
15304         Gnome 2.12.
15306         * po/POTFILES.in: Added music sharing files that have translatable 
15307         strings.
15309         * README.daap: New file explaining "How Music Sharing Works"  
15311 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15313         * daapsharing/.cvsignore: added
15315 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15317         * daapsharing/*: Music sharing library.
15318         
15319         * sources/rb-daap-source.c/h: Music share RBSource.
15320         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15322         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15323         libsoup and a mutlicast DNS implementation (howl or avahi).
15325         * data/rhythmbox.schemas: New GConf keys for music sharing.
15327         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15328         source right click menu.
15330         * player/rb-player-gst.c: Changes to properly play & seek in remote
15331         music share files.
15333         * shell/rb-playlist-manager.c/h:
15334         (rb_playlist_manager_get_playlists): New function to get a GList * of
15335         the playlists.
15336         (rb_playlist_manager_save_playlists): Don't save music share playlists
15337         and fixed a GObject reference leak.
15339         * shell/rb-shell.c/h:
15340         (rb_shell_append_source): No longer a local function.  Now takes a
15341         parent RBSource * argument, NULL to append a toplevel source.
15342         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15343         source (useful for disconnecting from remote music share,
15344         specifically).
15345         (rb_shell_quit): Stop music sharing/browsing.
15346         (rb_shell_playlist_added_cb): Work with tree source structure.
15347         (rb_shell_get_property): "playlist-manager" property accessor.
15348         (rb_shell_class_init): New "playlist-manager" property.
15349         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15350         daap sharing/browsing.
15351         (rb_shell_select_source): Notify source of activation/deactivation.
15353         * shell/rb-shell-prefernces.c: Music sharing preferences.
15355         * sources/rb-source.c/h: New activate, deactivate and disconnect
15356         class functions.  Activate & deactivate are notification style 
15357         functions that will tell a source when it is selected/unselected.
15358         Disconnect can be hooked up to a UI object to disconnect the source.
15360         * sources/rb-sourcelist-model.c:
15361         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15362         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15363         append a toplevel source.
15365 2005-09-05  James Livingston  <jrl@ids.org.au>
15367         * rhythmdb/rhythmdb-query-model.c:
15368         (rhythmdb_query_model_entry_changed_cb),
15369         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15370         the duration of filesize of an entry changes.  Emit the row-changed
15371         signals that I forgot to put back in, when I was doing query sorting.
15373         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15374         out "0 minutes" or "0 bytes".
15376 2005-09-04  James Livingston  <jrl@ids.org.au>
15378         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15379         remove a leftover bit of the "internal-name" property of sources.
15381 2005-09-03  James Livingston  <jrl@ids.org.au>
15383         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15384         extraneous debug message
15385         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15386         crasher would affect any library-derived sources (which was also a
15387         memory leak).
15389 2005-09-02  Colin Walters  <walters@verbum.org>
15391         * configure.ac: Fix sytnax error.
15393         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15394         code to disable minimization icons - need to figure out
15395         why it doesn't work...
15397 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15399         * data/glade/song-info-multiple.glade:
15400         * data/glade/song-info.glade:
15401         * widgets/rb-song-info.c: (rb_song_info_constructor):
15402         Add a mnemonic to the newly added "Automatically rate" label
15403         in the properties dialog and use a bold typeface like all the 
15404         other labels in the dialog. (Closes bug 315089)
15406 2005-09-03  James Livingston  <jrl@ids.org.au>
15408         * sources/rb-library-source.c: (rb_library_source_class_init),
15409         (rb_library_source_finalize), (rb_library_source_constructor),
15410         (rb_library_source_set_property), (rb_library_source_get_property),
15411         (impl_get_paned_key), (paned_size_allocate_cb),
15412         (rb_library_source_state_prefs_sync), (impl_show_popup),
15413         (rb_library_source_get_paned_key):
15414         * sources/rb-library-source.h: Allow sources derived from
15415         RBLibrarySource to use different gconf keys for sort order, browser
15416         visibility and browser pane position. Fix a crasher if a derived
15417         source overrides _get_pixbuf.
15419 2005-09-02  Colin Walters  <walters@verbum.org>
15421         * shell/rb-shell.c (rb_shell_set_visibility): Move
15422         hint setting which seems to avoid races more.
15423         
15424 2005-09-03  James Livingston  <jrl@ids.org.au>
15426         * shell/rb-shell.c: fix compilation with iPod support enabled
15427         
15428 2005-09-02  Colin Walters  <walters@verbum.org>
15430         * shell/rb-shell.c (struct RBShellPrivate): Add
15431         idle_hide_mainwindow_id.
15432         (rb_shell_constructor): Move taskbar skipping hint into
15433         rb_shell_set_visibility.
15434         (idle_hide_mainwindow): New function.
15435         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15436         racy hack to avoid rb appearing in taskbar when minimized.
15438 2005-09-01  Colin Walters  <walters@verbum.org>
15440         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15442         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15443         from gtkstatusicion.c.
15445         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15447         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15448         TrayShowWindow entry.
15449         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15450         (rb_tray_icon_constructor): Create action group here.
15451         (rb_tray_icon_finalize): Destroy action group.
15452         (rb_tray_icon_set_property): Don't take an action group.
15453         (rb_tray_icon_new): Ditto.
15454         (tray_popup_position_menu): Some mostly boilerplate code
15455         to position menu.
15456         (rb_tray_icon_button_press_event_cb): Position menu.
15457         (rb_tray_icon_get_geom): New function used for the shell
15458         to set minimization hints.
15460         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15462         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15463         (struct RBShellPrivate): Change visible to iconified.
15464         (set_icon_geometry): New function from Søren Sandmann to
15465         tell Metacity where to draw the minimization animiation.
15466         (rb_shell_window_state_cb): Update iconified.
15467         (rb_shell_get_visibility): New function to say whether
15468         or not we're currently visible.
15469         (rb_shell_set_visibility): Update to minimize to
15470         tray or present as appropriate.
15471         (rb_shell_window_delete_cb): On window close, just
15472         minimize to tray if we're deleted.
15473         (rb_shell_set_window_title): Kill old notification code.
15474         (rb_shell_toggle_visibility): Nwe function.
15475         (rb_shell_cmd_toggle_visibility): Call it.
15476         (rb_shell_constructor): Skip the taskbar.
15477         (tray_destroy_cb): Better debugging.
15478         
15479 2005-09-01  Colin Walters  <walters@verbum.org>
15481         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15483         * configure.ac: Enable bonobo by default.
15484         
15485 2005-09-01  Colin Walters  <walters@verbum.org>
15487         * configure.ac: Default to old art.  Add macros subdir.
15489         * Makefile.am (SUBDIRS): Add macros.
15491         * macros/Makefile.am: New.
15492         
15493 2005-09-01  Colin Walters  <walters@verbum.org>
15495         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15496         rb-shell-player.xml.
15498         * remote/dbus/rb-remote-dbus.h: Deleted.
15499         
15500         * remote/dbus/Makefile.am: Delete all the junk, just dist
15501         rb-print-playing.py and rb-set-rating.py.
15503         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15505         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15507 2005-09-02  James Livingston  <jrl@ids.org.au>
15509         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15510         file from cvs
15512         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15513         (rb_shell_constructor): Patches from Jonathan Matthew
15514         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15515         a crash when using "browse this artist".
15517 2005-08-31  Colin Walters  <walters@verbum.org>
15519         * configure.ac: Add --with-old-art configure switch.  Also
15520         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15521         but it doesn't work.
15523         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15524         Don't use eel_create_colorized_pixbuf for new art.
15525         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15527         * data/art-clearlooks: New artwork.
15528         
15529 2005-08-31  Colin Walters  <walters@verbum.org>
15531         * shell/main.c (main): Fix Bastien's commit to continue to focus
15532         the window with GTK+ 2.8 at least.
15533         
15534 2005-08-31  Colin Walters  <walters@verbum.org>
15536         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15537         is already loaded.
15539         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15541 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15543         * README: remove mentions of the xine-lib backend
15544         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15546 2005-08-30  Colin Walters  <walters@verbum.org>
15548         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15549         Make non-visible sources insensitive.
15550         
15551 2005-08-30  Colin Walters  <walters@verbum.org>
15553         * shell/rb-shell.c: Don't use GConf for selected source; it's
15554         confusing to have the selected source change after startup,
15555         and since we don't save other things it's not worth saving this.
15557         * sources/rb-playlist-source.c:
15558         * sources/rb-library-source.c:
15559         * sources/rb-iradio-source.c:
15560         * sources/rb-ipod-source.c: Delete internal-name property usage.
15561         * sources/rb-source.c: Delete internal-name property.
15563         * data/rhythmbox.schemas: Delete selected_source.
15564         
15565 2005-08-30  Colin Walters  <walters@verbum.org>
15567         * sources/rb-sourcelist.c: Make playing source bold instead of
15568         displaying a pixbuf; it's much less ugly.
15569         
15570 2005-08-30  Colin Walters  <walters@verbum.org>
15572         * sources/rb-source.c:
15573         * sources/rb-source.h: New virtual method try_playlist.
15575         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15576         impl_try_playlist.
15577         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15578         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15579         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15580         need to.
15581         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15582         in theory we should though...
15584         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15585         list in rb_shell_construct now.
15586         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15587         RBiPodSource.
15588         (rb_shell_constructor): Create library, iradio, ipod here.
15589         (rb_shell_source_deleted_cb): Use source directly instead of
15590         indirecting through type.
15591         (rb_shell_sync_selected_source): Ditto.
15592         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15593         from the type instead of special-casing.
15594         (rb_shell_guess_type_for_uri) 
15595         (rb_shell_add_uri)
15596         (handle_one_uri_with_possible_metadata): New functions.
15597         (rb_shell_load_uri): Refactor to allow loading playlists again,
15598         also use other URI infrastructure.
15600         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15601         (rb_shell_player_error): Always set entry error on error, instead
15602         of depending on EOF behavior.
15604         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15605         to just invoke rb_shell_add_uri.
15606         (rb_playlist_manager_parse_file): Return error instead of tossing
15607         up dialog box directly.
15608         (load_playlist_response_cb): Display error here.
15609         (add_uri_to_playlist): Delete.
15610         (handle_playlist_entry_into_playlist_cb): Renamed to
15611         handle_playlist_entry_cb.
15613         * shell/rb-playlist-manager.h: Add error, update prototype.
15615         * lib/rb-file-helpers.c:
15616         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15618 2005-08-29  Colin Walters  <walters@verbum.org>
15620         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15621         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15623         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15624         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15625         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15627         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15628         Prototype rb_shell_set_song_property.
15630         * shell/rb-shell.xml: Export setSongProperty.
15632         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15633         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15634         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15636         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15637         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15638         want to notify of the change.
15639         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15641         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15642         logic error; idle functions would be enqueued for each set.
15643         (rhythmdb_entry_set): Fix assertion logic error.
15645         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15646         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15647         Return if the entry already exists.
15648         
15649 2005-08-29  Colin Walters  <walters@verbum.org>
15651         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15652         "inserted" member which we use to keep track of
15653         whether or not an entry is in the DB.  Prototype
15654         rhythmdb_entry_set_uninserted.
15656         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15657         flag.
15658         (rhythmdb_entry_insert): Assert entry is not already inserted.
15659         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15660         just after creating entry.
15661         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15662         (rhythmdb_entry_set_nonotify): Ditto.
15663         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15664         entries.
15665         (rhythmdb_entry_set_internal): Change notify flag to
15666         notify_if_inserted.  Also move notification after assertions.
15668         Update all existing callers of rhythmdb_entry_set_internal
15669         to give TRUE for notify_if_inserted; this should be what
15670         we want but may be an efficiency hit.
15671         
15672 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15674         * shell/rb-shell-player.c: (rb_shell_player_init),
15675         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15676         (rb_shell_player_set_playing_source_internal),
15677         (rb_shell_player_sync_with_selected_source): Notify the player when an
15678         entry has updated the title, album or artist field, and resync the big
15679         display.
15680         
15681         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15682         * sources/rb-library-source.c: (rb_library_source_class_init),
15683         (impl_get_config_widget):
15684         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15685         * sources/rb-source.c:
15686         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15687         get_album functions in rb-source and adapted other sources accordingly.
15688         
15689 2005-08-29  Colin Walters  <walters@verbum.org>
15691         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15692         signal_change member.
15693         (threadsafe_entry_set): New function.
15694         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15695         (rhythmdb_entry_set_nonotify): New function; just call
15696         threadsafe_entry_set with FALSE.
15697         (rhythmdb_entry_set_internal): Take a notify flag; if true
15698         add the change to our pending set.
15700         Also update all internal callers of rhythmdb_entry_set_internal
15701         to pass FALSE.  Some of these may be bugs however and need to
15702         pass TRUE...
15704         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15705         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15706         rhythmdb_entry_set_nonotify.
15708         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15709         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15711         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15713         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15714         * sources/rb-source.c (rb_source_update_play_statistics): 
15715         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15716         * sources/rb-ipod-source.c (entry_set_string_prop) 
15717         (load_ipod_db_idle_cb): 
15718         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15719         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15720         (info_available_cb): 
15721         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15722         (rb_station_properties_dialog_sync_entries): 
15723         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15725         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15726         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15727         
15728 2005-08-29  Colin Walters  <walters@verbum.org>
15730         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15732         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15733         linking insanity.
15735         * widgets/rb-header.c (sanitize_string): New function, extracted
15736         from old info_url.  Be sure to always strip the string.
15737         (info_url): Rewrite to take artist/album, and generate a sane
15738         URL for them from last.fm, which is better than allmusic.com in
15739         that they support Rhythmbox, and have a *SANE* URL scheme.
15740         (artist_info_url, album_info_url): Delete.
15741         (rb_header_sync): Use info_url.
15743 2005-08-29  James Livingston  <jrl@ids.org.au>
15745         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15746         is implemented before calling it. Many sources don't implement the
15747         method.
15749 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15751         * data/glade/create-playlist.glade:  Cleanup the layout,
15752         and add a few more mnemonics.
15753         * shell/rb-playlist-manager.c:
15754         (rb_playlist_manager_cmd_load_playlist),
15755         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15756         capitalization for window titles.
15757         * widgets/rb-query-creator-properties.c: Add mnemonics
15758         to checkbutton labels.
15759         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15760         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15762 2005-08-28  Colin Walters  <walters@verbum.org>
15764         * data/rhythmbox.schemas: Delete search_text for library
15765         and iradio; this isn't a persistent value anymore.
15766         Closes #313757.
15767         
15768         * sources/rb-source.h:
15769         * sources/rb-source.c: Delete impl_can_search.
15771         * sources/rb-iradio-source.c: Delete search_text usage.
15772         * sources/rb-library-source.c: Ditto.
15774         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15775         search when source is set, and just do rb_source_search in
15776         rb_source_header_search_cb.
15778         * shell/rb-shell.c (rb_shell_append_source): Don't
15779         initiate search.
15781         * shell/Makefile.am: Don't dist dashboard.c.
15783 2005-08-28  Colin Walters  <walters@verbum.org>
15785         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15786         
15787 2005-08-28  Colin Walters  <walters@verbum.org>
15789         * data/org.gnome.Rhythmbox.service.in: New.
15791         * data/Makefile.am: Install service file.
15793         * configure.ac: Define DBUS_SERVICES_DIR.
15795         * autogen.sh: Set ACLOCAL_FLAGS.
15797         * macros/acinclude.m4: New.
15798         
15799 2005-08-28  Colin Walters  <walters@verbum.org>
15801         Initial patch from Jonathan Matthew; closes 313684.
15803         * rhythmdb/rhythmdb-tree.c:
15804         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15805         (save_entry): Return on error.
15806         (rhythmdb_tree_save): Handle error when saving the
15807         db; additionally, handle errors from fclose and unlink,
15808         and print error too.
15810 2005-08-28  Colin Walters  <walters@verbum.org>
15812         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15813         extra _.
15814         
15815 2005-08-28  Colin Walters  <walters@verbum.org>
15817         * configure.ac: Change iPod support to --with-ipod;
15818           automatically enable it if we have HAL.  Try to
15819           support both HAL 0.5 and HAL 0.2.  Break out
15820           totem-plparser into its own check so later we
15821           can do version tests there too.
15822           Kill dashboard support.
15823         
15824         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15825         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15826         Closes #310017.
15827         
15828         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15829         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15831         * sources/Makefile.am: Also handle
15832         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15834         * shell/dashboard.c: Delete; someone should just write a little
15835         python shim which lists on the D-BUS interface and writes the
15836         stuff to Dashboard.  Even better Dashboard should be ported
15837         to D-BUS and do the listening itself, perhaps on an abstract
15838         "org.gnome.MusicPlayer" interface or something.
15840         * shell/rb-shell.c: Kill dashboard support.
15842 2005-08-28  Colin Walters  <walters@verbum.org>
15844         * remote/dbus/rb-print-playing.py: New file.
15846 2005-08-28  Colin Walters  <walters@verbum.org>
15848         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15849         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15851         * shell/rb-shell-player.h:
15852         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15853         * shell/rb-shell-player.xml: Export it.
15855         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15856         (rb_shell_error_quark): New.
15858         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15859         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15860         
15861 2005-08-28  Colin Walters  <walters@verbum.org>
15863         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15864         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15865         bonobo_unlock.
15866         (rb_remote_bonobo_preinit): Lock setting moved here.
15867         (rb_remote_bonobo_init): From here.
15869         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15870         Also invoke handle_cmdline in the right place.
15871         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15872         GFunc.
15874 2005-08-28  James Livingston  <jrl@ids.org.au>
15876         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15877         when 0.9.1 comes around.
15879 2005-08-28  James Livingston  <jrl@ids.org.au>
15881         * iradio/rb-new-station-dialog.c:
15882         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15883         bug 314477.
15885 2005-08-28  James Livingston  <jrl@ids.org.au>
15887         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15889         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15890         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15891         is a song is longer than 60 minutes. Closes bug 313311.
15893 2005-08-27  James Livingston  <jrl@ids.org.au>
15895         * data/glade/create-playlist.glade:
15896         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15897         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15898         "minutes" as an option in the playlist limit menu.
15900         * rhythmdb/rhythmdb-query-model.c:
15901         (rhythmdb_query_model_class_init),
15902         (rhythmdb_query_model_set_property),
15903         (rhythmdb_query_model_get_property),
15904         (rhythmdb_query_model_update_limited_entries): Allow query models to
15905         have a time limit
15906         
15907         * shell/rb-playlist-manager.c:
15908         (rb_playlist_manager_set_automatic_playlist),
15909         (rb_playlist_manager_cmd_edit_automatic_playlist):
15910         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15911         (rb_playlist_source_get_query), (impl_receive_drag),
15912         (rb_playlist_source_new_from_xml),
15913         (rb_playlist_source_save_to_xml),
15914         (rb_playlist_source_songs_sort_order_changed_cb),
15915         (rb_playlist_source_do_query):
15916         * sources/rb-playlist-source.h:
15917         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15919 2005-08-27  James Livingston  <jrl@ids.org.au>
15921         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15923         * configure.ac:
15924         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15925         non-standard location. Closes bug 314640.
15927 2005-08-26  Colin Walters  <walters@verbum.org>
15928         
15929         Patch from Olivier Blin <oblin@mandriva.com>
15931         * widgets/eggnotificationbubble.c (draw_bubble): 
15932         Handle extreme-left case as well.
15933         
15934 2005-08-26  Colin Walters  <walters@verbum.org>
15936         * shell/rb-shell.c (idle_save_state): Don't do this.
15937         (rb_shell_construct): Remove idle calls to idle_save_state.
15938         We should save the playlists automatically when they're
15939         modified.
15940         (rb_shell_load_uri): Don't try to re-stat entry if it already
15941         exists.
15943         * shell/rb-shell-player.c: Keep track of entry we are attempting
15944         to play.
15945         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15946         Don't double-free error.
15947         (rb_shell_player_play_entry): Signal errors.
15948         (rb_shell_player_entry_activated_cb): Ditto.
15949         (rb_shell_player_property_row_activated_cb): Ditto.
15950         (rb_shell_player_set_playing_source_internal): Unset attempted
15951         playing entry.
15952         (rb_shell_player_error): Refactor to be usable both sync and
15953         async.  Handle case where displayed entry differs from entry.
15954         (error_cb): Move GDK locking here.
15956         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15957         people can just use dbus-send or python.  We only support focusing
15958         and loading files.
15959         (load_uri_args): New function, extracted from handle_cmdline.
15960         (dbus_load_uri, bonobo_load_uri): New functions.
15962         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15963         appropriate.
15965         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15966         * remote/dbus/rb-remote-dbus.c: Deleted.
15968         * player/rb-player-gst.c: Clear any pending idle handlers when we
15969         close the player.  Signal errors generated during open/play etc
15970         as synchronous errors.
15972         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15973         
15974 2005-08-26  Colin Walters  <walters@verbum.org>
15976         * shell/rb-shell.c (rb_shell_present): Try harder.
15978 2005-08-26  Colin Walters  <walters@verbum.org>
15980         * shell/rb-shell.c (rb_shell_present): Try to handle
15981         GTK_MINOR_VERSION < 8.
15983 2005-08-26  James Livingston  <jrl@ids.org.au>
15985         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15986         <pbrobinson@gmail.com>
15988 2005-08-26  Colin Walters  <walters@verbum.org>
15990         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15992 2005-08-25  Colin Walters  <walters@verbum.org>
15994         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15995         Delete.
15996         (rb_shell_player_do_next_with_rating): Move back into
15997         rb_shell_player_do_next.
15998         (rb_shell_player_entry_activated_cb): Remove call to
15999         rb_shell_player_auto_adjust_rating.
16000         (do_next_idle): Just call rb_shell_player_do_next.
16002         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16004 2005-08-25  Colin Walters  <walters@verbum.org>
16006         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16007         before gtk_window_present_with_time.
16008         
16009 2005-08-25  Colin Walters  <walters@verbum.org>
16011         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16012         default.
16014         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16015         rb_shell_construct.  This is so we only have to do g_object_new.
16016         (rb_shell_get_player): New function.
16017         (rb_shell_get_player_path): Ditto.
16018         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16019         
16020         * shell/rb-shell.h: Prototype them.
16022         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16023         export over D-BUS.
16024         (reemit_playing_signal): New function.
16025         (rb_shell_player_open_playlist_location): Use return values from
16026         rb_player_open, rb_player_close, etc. instead of checking "error".
16027         Return a gboolean on failure.
16028         (rb_shell_player_open_entry): Just open entry location, don't
16029         print to stderr.
16030         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16031         a gboolean.
16032         (do_next_idle): Move logic for handling of end of playlist here.
16033         (rb_shell_player_set_playing_entry): Take a GError, return a
16034         gboolean.  Update to use gboolean return values.
16035         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16036         logic.  Signal an error on end of playlist.  Also signal error if
16037         we're not playing.  Move heuristic for replaying the song into
16038         rb_shell_player_cmd_previous.
16039         (rb_shell_player_do_next_with_rating): Signal error on end of
16040         playlist.
16041         (rb_shell_player_do_next): Return errors.
16042         (rb_shell_player_cmd_previous): Heuristic for restarting song
16043         moved here; the idea is you generally only want that from the GUI.
16044         (rb_shell_player_cmd_play): Handle error.
16045         (rb_shell_player_playpause): Signal errors.
16046         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16047         rb_shell_player_cmd_next in favor of the internal _do functions.
16048         
16049         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16050         errors.  Update prototypes for above changes.
16052         * shell/main.c: More tightly integrate D-BUS; register various
16053         major singleton objects here.  Fix handle_cmdline so we only
16054         process extra arguments, not every argument.
16056         * shell/Makefile.am: Generate D-BUS glue headers.
16058         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16059         into shell/main.c.  Now this file just acts as a client library.
16060         Not heavily tested.
16062         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16063         Moved here.
16064         (rb_remote_bonobo_init): Move long CORBA rant here along with
16065         setting of lock functions.
16067         * player/rb-player-gst.c (rb_player_construct)
16068         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16069         on error.
16071         * player/rb-player.h: Update prototypes.
16073         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16074         rb-remote-bonobo.c.
16075         (rb_threads_init): Don't set gdk lock functions here.
16077 2005-08-25  James Livingston  <jrl@ids.org.au>
16079         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16081         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16082         * lib/rb-tree-dnd.h:
16083         * rhythmdb/rhythmdb-property-model.c:
16084         (rhythmdb_property_model_class_init),
16085         (rhythmdb_property_model_drag_source_init),
16086         (rhythmdb_property_model_iter_parent),
16087         (rhythmdb_property_model_row_draggable),
16088         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16089         (rhythmdb_property_model_drag_data_get),
16090         (rhythmdb_property_model_enable_drag):
16091         * rhythmdb/rhythmdb-property-model.h:
16092         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16093         (rb_playlist_manager_set_property), (append_new_playlist_source),
16094         (rb_playlist_manager_save_playlists):
16095         * shell/rb-shell.c: (rb_shell_construct),
16096         (sourcelist_drag_received_cb):
16097         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16098         * sources/rb-playlist-source.c: (impl_receive_drag):
16099         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16100         (rb_sourcelist_model_drag_dest_init),
16101         (rb_sourcelist_model_set_dnd_targets),
16102         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16103         (rb_sourcelist_model_row_drop_position),
16104         (rb_sourcelist_model_get_drag_target),
16105         (rb_sourcelist_model_drag_data_get):
16106         * sources/rb-sourcelist-model.h:
16107         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16108         (rb_sourcelist_init), (rb_sourcelist_get_property),
16109         (rb_sourcelist_selection_changed_cb):
16110         * sources/rb-sourcelist.h:
16111         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16112         improve drag-n-drop support. Allow dragging of item from property
16113         views to the source list, to create new automatic playlists. Allow
16114         playlist re-ordering. Fix dragging from Rhythmbox to other
16115         applications. (Closes bug 147337)
16117 2005-08-24  Colin Walters  <walters@verbum.org>
16119         Patch from Olivier Blin <oblin@mandriva.com>
16121         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16122         correctly in the case where the window is next to monitor edge.
16124 2005-08-24  James Livingston  <jrl@ids.org.au>
16126         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16127         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16128         a gobject property to get the query model that backs the playlist.
16130 2005-08-24  James Livingston  <jrl@ids.org.au>
16132         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16133         (handle_playlist_entry_into_playlist_cb),
16134         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16135         audio cd" menu item when a non-playlist source is selected, or the
16136         playlist is empty. (Closes Bug 313253)
16138 2005-08-24  James Livingston  <jrl@ids.org.au>
16140         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16141         Fix the playlist length checkso it doesn't report 0 for automatic
16142         playlists. This was stopping automati playlists being burnt to cd.
16144 2005-08-24  James Livingston  <jrl@ids.org.au>
16146         * configure.ac:
16147         * sources/rb-playlist-source-recorder.c: (burn_cd):
16148         * sources/rb-playlist-source.c:
16149         (rb_playlist_source_songs_sort_order_changed_cb):
16150         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16151         more warnings that occur when compiling RPMs on Fedora.
16153 2005-08-24  James Livingston  <jrl@ids.org.au>
16155         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16156         was stopping some distros gcc version compiling.
16158 2005-08-24  James Livingston  <jrl@ids.org.au>
16160         * NEWS:
16161         * data/glade/create-playlist.glade:
16162         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16163         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16164         (rhythmdb_query_free), (rhythmdb_query_serialize),
16165         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16166         * rhythmdb/rhythmdb.h:
16167         * shell/rb-playlist-manager.c:
16168         (rb_playlist_manager_set_automatic_playlist),
16169         (rb_playlist_manager_cmd_edit_automatic_playlist):
16170         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16171         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16172         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16173         (rb_playlist_source_save_to_xml),
16174         (rb_playlist_source_songs_sort_order_changed_cb),
16175         (rb_playlist_source_do_query):
16176         * sources/rb-playlist-source.h:
16177         * widgets/Makefile.am:
16178         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16179         (rb_entry_view_set_sorting_order):
16180         * widgets/rb-query-creator-private.h:
16181         * widgets/rb-query-creator-properties.c:
16182         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16183         (stringCriteriaGetWidgetData),
16184         (escapedStringCriteriaSetWidgetData),
16185         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16186         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16187         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16188         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16189         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16190         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16191         (relativeTimeCriteriaCreateWidget),
16192         (relativeTimeCriteriaSetWidgetData),
16193         (relativeTimeCriteriaGetWidgetData):
16194         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16195         (rb_query_creator_class_init), (rb_query_creator_constructor),
16196         (rb_query_creator_dispose), (rb_query_creator_set_property),
16197         (rb_query_creator_get_property), (rb_query_creator_load_query),
16198         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16199         (get_entry_for_property), (rb_query_creator_get_query),
16200         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16201         (limit_toggled_cb), (lookup_row_by_widget),
16202         (remove_button_click_cb), (append_row),
16203         (get_property_index_from_proptype), (select_criteria_from_value),
16204         (property_option_menu_changed), (create_property_option_menu),
16205         (create_criteria_option_menu), (sort_option_menu_changed),
16206         (setup_sort_option_menu):
16207         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16208         playlists. The two most notable improvements are 1) adding more
16209         properties to the query creator, making it much easier to add more in
16210         the future, and 2) allow playlists to be sorted, from the query editor
16211         if they gave limits, and by clicking on column headers if they don't.
16213         Files added: widgets/rb-query-creator-private.h,
16214         sources/rb-query-creator-properties.c
16216 2005-08-21  James Livingston  <jrl@ids.org.au>
16218         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16219         error=NULL. This stops some crashes.
16221 2005-08-19  Colin Walters  <walters@verbum.org>
16223         Patch from Olivier Blin <oblin@mandriva.com>
16225         * widgets/eggnotificationbubble.c (force_window): Support top
16226         orientation.
16227         * widgets/eggnotificationbubble.h: Remove
16228         egg_notification_bubble_force_window from header.
16229         
16230 2005-08-18  James Livingston  <jrl@ids.org.au>
16232         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16233         with the changes since then.
16235 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16237         * shell/rb-shell-player.c: (rb_shell_player_init),
16238         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16239         (rb_shell_player_volume_widget_changed_cb):
16240         * sources/rb-iradio-source.c:
16241         * sources/rb-library-source.c:
16242         * sources/rb-playlist-source.c:
16243         * widgets/Makefile.am:
16244         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16245         (bacon_volume_button_class_init), (bacon_volume_button_init),
16246         (bacon_volume_button_dispose), (bacon_volume_button_new),
16247         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16248         (bacon_volume_button_scroll), (bacon_volume_button_press),
16249         (cb_button_timeout), (cb_button_press), (cb_button_release),
16250         (bacon_volume_release_grab), (cb_dock_press),
16251         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16252         (bacon_volume_scale_new), (bacon_volume_scale_press),
16253         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16254         * widgets/bacon-volume.h:
16255         * widgets/rb-volume.c:
16256         * widgets/rb-volume.h:
16257           Use BaconVolumeButton (#300867).
16259 2005-08-17  James Livingston  <jrl@ids.org.au>
16261         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16262         (rhythmdb_process_metadata_load): don't reset the First Seen time
16263         whenever we recheck the metadata.
16265 2005-08-17  James Livingston  <jrl@ids.org.au>
16267         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16268         temporary workaround to stop crashes when trying to burn an empty
16269         playlist. Doesn't disable the menu item which is the better solution
16270         (Bug 313253).
16272 2005-08-15  James Livingston  <jrl@ids.org.au>
16274         * shell/rb-source-header.c: (rb_source_header_init),
16275         (rb_source_header_sync_control_state),
16276         (rb_source_header_search_activate_cb):
16277         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16278         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16279         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16280         (rb_search_entry_init), (rb_search_entry_searching),
16281         (rb_search_entry_activate_cb):
16282         * widgets/rb-search-entry.h: Move focus to the entry view when user
16283         presses enter in the search box. Patch from Paolo Borelli
16284         <pborelli@katamail.com> (Closes bug 128110)
16286 2005-08-15  James Livingston  <jrl@ids.org.au>
16288         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16289         (rb_playlist_manager_new_playlist):
16290         * shell/rb-playlist-manager.h:
16291         * shell/rb-shell.c: (rb_shell_construct),
16292         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16293         the source list to be shown when a new playlist is created. (Closes
16294         bug 161935)
16296 2005-08-15  James Livingston  <jrl@ids.org.au>
16298         * widgets/rb-header.c: (rb_header_init),
16299         (rb_header_set_show_timeline): disable the seek slider, rather than
16300         hiding it, which more closely follows the HIG. (Closes bug 139102)
16302 2005-08-13  Colin Walters  <walters@verbum.org>
16304         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16305         rb_shell_hidden_notify.
16306         (rb_shell_hidden_notify): Notify if the shell is hidden.
16307         (rb_shell_set_visibility_impl): Debug goo.
16309         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16311         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16312         when the user clicks on notification.
16314         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16315         CD burn is complete.
16316         (rb_playlist_source_recorder_finalize): Unref shell.
16317         (rb_playlist_source_recorder_new): Take shell.
16319         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16320         Pass shell to RBPlaylistSourceRecorder.
16321         
16322 2005-08-13  Colin Walters  <walters@verbum.org>
16324         * lib/rb-thread.c:
16325         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16326           time to convert.
16328 2005-08-13  Colin Walters  <walters@verbum.org>
16330         * widgets/eggnotificationbubble.h:
16331         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16332         * widgets/eggtrayicon.c:
16333         * widgets/eggtrayicon.h: Add notification API.
16334         * shell/rb-tray-icon.c:
16335         * shell/rb-tray-icon.h: Add notification API.
16336         * shell/rb-shell.c: Notify on song change.
16338 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16340         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16341         Correct an inversion of two lines causing NULL to be unreffed
16343 ============ Version 0.9.0
16345 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16347         * configure.ac: 0.9.0, whee!
16348         * NEWS: badly updated
16349         * remote/bonobo/Makefile.am:
16350         * remote/bonobo/rb-remote-bonobo.h:
16351         * shell/Makefile.am:
16352         * shell/main.c: make distcheck fixes