2006-10-31 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobc52abdff51e95818d5f1daa6fe50bc9f7d4f6616
1 2006-10-31  James Livingston  <doclivingston@gmail.com>
3         * configure.ac: remove spaces around '=' where they shouldn't be,
4         fixes building when you have libgpod 0.3.x
6 2006-10-31  James Livingston  <doclivingston@gmail.com>
8         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
10         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
11         period is 0. Fixes #351425
13 2006-10-31  James Livingston  <doclivingston@gmail.com>
15         patch by: Luca Ferretti  <elle.uca@libero.it>
17         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
18         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
19         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
20         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
21         * plugins/ipod/ipod.rb-plugin.desktop.in:
22         * plugins/iradio/iradio.rb-plugin.desktop.in:
23         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
24         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
25         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
26         of the plugins. Fixes #365326
28 2006-10-31  James Livingston  <doclivingston@gmail.com>
30         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
32 2006-10-31  James Livingston  <doclivingston@gmail.com>
34         * data/glade/song-info.glade: set the mnemonic target for the labels
35         in the details tab. Fixes #368179.
37 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
39         * configure.ac:
40         When complaining about GStreamer being too old, use the right variable
41         name for the version we want.
43 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
45         * shell/rb-shell.h:
46         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
47         * shell/rb-tray-icon.h:
48         * bindings/python/rb.defs:
49         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
50         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
51         * sources/rb-playlist-source-recorder.c: (burn_cd):
52         * sources/rb-podcast-source.c:
53         (rb_podcast_source_start_download_cb),
54         (rb_podcast_source_finish_download_cb),
55         (rb_podcast_source_feed_updates_avaliable_cb):
56         Change the various notification functions to take a parameter
57         specifying whether the notification was explicitly requested by the
58         user.  Add a function to display a notification for an entry,
59         including streaming song metadata.
61         * shell/rb-shell-player.c: (rb_shell_player_stop):
62         Emit playing-song-changed and playing-uri-changed when stopping
63         playback.
65         * sources/Makefile.am:
66         * sources/rb-streaming-source.c:
67         * sources/rb-streaming-source.h:
68         Add a base class for streaming sources, handling streaming song
69         metadata and buffering messages, emitting notifications on song
70         changes, and updating play count statistics when playback stops.
72         * plugins/audioscrobbler/Makefile.am:
73         * plugins/audioscrobbler/rb-lastfm-source.c:
74         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
75         (rb_lastfm_source_constructor), (impl_get_status),
76         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
77         (rb_lastfm_source_title_from_uri),
78         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
79         (rb_lastfm_song_changed_cb), (impl_activate):
80         * plugins/audioscrobbler/rb-lastfm-source.h:
81         * plugins/iradio/Makefile.am:
82         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
83         (rb_iradio_source_constructor), (impl_get_status),
84         (info_available_cb), (playing_source_changed_cb):
85         * sources/rb-iradio-source.h:
86         Use the new streaming source base class for iradio and last.fm
87         sources.  Fixes #364094.
89 2006-10-30  James Livingston  <doclivingston@gmail.com>
91         * podcast/rb-podcast-manager.c:
92         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
93         any downloads from it before deleting the post entry. Fixes #366567.
95 2006-10-30  James Livingston  <doclivingston@gmail.com>
97         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
98         move-to-trash, since there have been reports of people accidently
99         deleting tracks and it probably isn't a common enough operation to be
100         worth a shortcut.
102 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
104         * backends/gstreamer/rb-player-gst.c:
105         * configure.ac:
106         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
107         Fix GStreamer 0.8 build (and some typos in configure.ac).
109 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
111         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
113         * sources/rb-source.c: (rb_source_class_init),
114         (rb_source_set_property), (rb_source_get_property):
115         Add a property to RBSource for plugin-created sources to have a
116         pointer to the RBPlugin object that created them.
118         * plugins/audiocd/Makefile.am:
119         * plugins/audiocd/multiple-album.glade:
120         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
121         * sources/Makefile.am:
122         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
123         * sources/rb-audiocd-source.h:
124         If musicbrainz returns multiple albums, present the user with a
125         choice between them.  Fixes #333215.
127         * configure.ac:
128         * plugins/Makefile.am:
129         Remove unused old audio CD stuff, only build audiocd plugin if we have
130         libnautilus-burn.  Fixes #367440.
132 2006-10-30  James Livingston  <doclivingston@gmail.com>
134         patch by: Brian McKenna  <puffnfresh@gmail.com>
136         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
137         handle blocks. Fixes #366696.
139 2006-10-30  James Livingston  <doclivingston@gmail.com>
141         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
143 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
145         * shell/rb-shell-player.c: (rb_shell_player_class_init),
146         (rb_shell_player_sync_with_source),
147         (rb_shell_player_get_playing_time_string), (tick_cb):
148         * widgets/rb-header.c: (rb_header_sync_time),
149         (slider_moved_callback), (rb_header_update_elapsed),
150         (rb_header_elapsed_changed_cb):
151         Revert dbus interface breakage introduced in the fix for #365908.
153 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
155         patch by: Luca Ferretti  <elle.uca@libero.it>
157         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
158         Remove the access keys from the podcast-specific column headers.
159         Fixes #360640 again.
161 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
163         patch by: James Livingston <doclivingston@gmail.com>
165         * sources/rb-browser-source.c: (rb_browser_source_constructor):
166         Only register the search actions once.  From #346801.
168 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
170         * shell/rb-shell-player.c: (rb_shell_player_error):
171         When handling an error, try playing the next stream URL if we have
172         one, rather than stopping playback.  From #358140.
174 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
176         * shell/rb-shell.c: (handle_playlist_entry_cb):
177         Don't crash if we can't guess a source for a URI in the playlist.
178         Fixes #366261.
180 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
182         * shell/rb-shell-player.c: (rb_shell_player_class_init),
183         (rb_shell_player_sync_with_source),
184         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
185         (tick_cb):
186         * widgets/rb-header.c: (rb_header_sync_time),
187         (rb_header_elapsed_changed_cb):
188         Treat elapsed time as signed, since rb_player_get_time returns a
189         signed value.  When actually using the value, mostly treat negative
190         values as 0.  Fixes #365908.
192 2006-10-27  James Livingston  <doclivingston@gmail.com>
194         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
196         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
197         returning 0 for the year/month/day. Fixes #364837.
199 2006-10-27  James Livingston  <doclivingston@gmail.com>
201         patch by: Luca Ferretti  <elle.uca@libero.it>
203         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
204         access keys from the entry view columns headers - they cause
205         keybindings conflicts, headaches for translators and the HIG says
206         they are bad. Fixes #360640.
208 2006-10-27  James Livingston  <doclivingston@gmail.com>
210         patch by: Luca Ferretti  <elle.uca@libero.it>
212         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
213         access keys from the entry view columns headers - they cause
214         keybindings conflicts, headaches for translators and the HIG says
215         they are bad. Fixes #360640.
217 2006-10-27  James Livingston  <doclivingston@gmail.com>
219         * rhythmdb/rhythmdb-private.h:
220         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
221         issues
223 2006-10-27  James Livingston  <doclivingston@gmail.com>
225         * plugins/artdisplay/Makefile.am:
226         * plugins/audioscrobbler/Makefile.am:
227         * plugins/iradio/Makefile.am: fix make clean
229 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
231         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
232         Fall back to strtod() if g_ascii_strtod() doesn't work.
234         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
235         Write floating point values using g_ascii_dtostr() to avoid
236         problems with locale-specific representations.  From #353205.
238 2006-10-25  James Livingston  <doclivingston@gmail.com>
240         * plugins/artdisplay/Makefile.am:
241         * plugins/audioscrobbler/Makefile.am:
242         * plugins/iradio/Makefile.am: fix "make distcheck"
244 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
246         patch by: Brian Cameron <brian.cameron@sun.com>
248         * plugins/audiocd/Makefile.am:
249         Link audiocd plugin with libnautilus-burn as required to get it to work
250         on Solaris.  Fixes #363288.
252 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
254         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
256         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
257         Clarify that we don't submit actual songs to last.fm, just information
258         on what you're listening to.  Fixes #364014.
260 2006-10-24  Bastien Nocera  <hadess@hadess.net>
262         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
263         (bacon_volume_button_class_init), (bacon_volume_button_new),
264         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
265         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
266         (bacon_volume_scale_value_changed): update from libbacon, to get
267         better accessibility support (Closes: #364637)
269 2006-10-24  James Livingston  <doclivingston@gmail.com>
271         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
273         * configure.ac: fix some typos and leftovers from disabled->enabled
274         changes. Fixes #364217
276 2006-10-23  William Jon McCann  <mccann@jhu.edu>
278         * shell/rb-source-header.c (rb_source_header_init):
279         Don't require source header cells to be homogeneous.
280         Patch from #359188
282 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
284         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
285         Pause the pipeline while buffering.  Fixes #358290.
287 2006-10-23  Bastien Nocera  <hadess@hadess.net>
289         * configure.ac: update required libgpod version to avoid crashes
290         when starting up with an iPod connect (Closes: #352972)
291         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
292         (hal_udi_is_ipod): remove outdated ifdefs
294 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
296         * plugins/Makefile.am:
297         * plugins/power-manager/rb-power-manager-plugin.c:
298         Don't try to build the power-manager plugin with dbus < 0.35.
300 2006-10-22  James Livingston  <doclivingston@gmail.com>
302         patch by: Ed Catmur  <ed@catmur.co.uk>
304         * plugins/artdisplay/Makefile.am:
305         * plugins/artdisplay/artdisplay/__init__.py:
306         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
307         placeholder art when none is available, to avoid having the widget pop
308         in and out of existance.
310 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
312         * plugins/lyrics/lyrics.py:
313         Set the lyrics window transient for the main window so it can
314         actually be seen in party mode.  Fixes #362981.
316 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
318         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
319         * sources/rb-source.c: (rb_source_class_init),
320         (rb_source_can_show_properties), (rb_source_song_properties):
321         * sources/rb-source.h:
322         Only enable the 'properties' item in the 'music' menu if the selected
323         source implements the show_properties method.  Fixes #356485.
325 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
327         * shell/rb-shell-player.c:
328         (rb_shell_player_property_row_activated_cb):
329         Take the entry to play from the play order, rather than grabbing the
330         first entry in the query model.  Fixes #362042.
332 2006-10-16  James Livingston  <doclivingston@gmail.com>
334         * shell/main.c: (main): save custom menu accelerators before exiting.
335         Fixed #362300
337 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
339         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
340         I HATE adding this patch, but I'm sick of hitting Yes once
341         and hour.  Working around brain-dead podcasts.
343 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
345         * plugins/lyrics/lyrics.py:
346         Disconnect the create-song-info handler when deactivated.
347         Fixes #361882.
349 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
351         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
352         Reset the style when clearing the search text.  Fixes #361295.
354 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
356         * rhythmdb/rhythmdb-query-model.c:
357         (rhythmdb_query_model_entry_changed_cb):
358         Don't emit entry-prop-changed for hidden signals from chained query
359         models, as the model will also propagate the parent model's
360         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
362 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
364         * sources/rb-ipod-source.c: (generate_ipod_filename):
365         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
366         * lib/rb-cut-and-paste-code.h:
367         Move eel_make_valid_utf8 to lib/, make the replacement
368         character a parameter.
370         * rhythmdb/rhythmdb.c: (make_access_failed_error),
371         (rhythmdb_execute_multi_stat_info_cb),
372         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
373         When constructing an error message that includes a URI, make sure the
374         URI is valid utf-8.  Fixes #353588.
376 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
378         * player/rb-recorder-gst.c: (rb_recorder_construct),
379         (acb_wave_time):
380         Add an extra audioconvert element to allow endianness conversion on
381         big-endian machines, and fix a few endianness issues in the .wav
382         reading code.  Fixes #355611.
384 2006-10-09  James Livingston  <doclivingston@gmail.com>
386         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
388         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
389         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
390         Fixes #357553.
392 2006-10-09  James Livingston  <doclivingston@gmail.com>
394         patch by: Luca Ferretti  <elle.uca@libero.it>
396         * data/glade/song-info-multiple.glade:
397         * data/glade/song-info.glade: Fix a few HIG issues.
399 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
401         * plugins/audioscrobbler/rb-lastfm-source.c:
402         (rb_lastfm_source_class_init):
403         Return TRUE from impl_try_playlist so playback starts in a separate
404         thread.
406 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
408         * shell/main.c: (main):
409         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
410         UTF-8 GStreamer messages.  Fixes #357973.
412 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
414         * shell/rb-shell.c: (rb_shell_constructor):
415         Remove a line that accidentally slipped in from some other universe.
417 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
419         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
420         Don't remove sources from the hash table while iterating it on
421         shutdown.  Fixes #359583.
423 2006-10-07  James Livingston  <doclivingston@gmail.com>
425         patch from Alex Lancaster  <alexl@users.sourceforge.net>
427         * shell/rb-shell.c: change the keybinding for "Plugins" to not
428         conflict with others. Fixes #355904
430 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
432         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
433         (rhythmdb_query_model_chain),
434         (rhythmdb_query_model_entry_changed_cb),
435         (rhythmdb_query_model_base_entry_prop_changed),
436         (rhythmdb_query_model_base_entry_removed):
437         For chained models, propagate the parent model's entry-prop-changed
438         signal rather than emitting one from the db entry-changed handler.
439         This ensures that when the change filters the entry out of the parent
440         model, property models attached to the child model get the entry
441         change signal before the post-entry-delete signal, so they can
442         decrement the refcount for the right property value.  Fixes #359083.
444 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
446         * plugins/audioscrobbler/Makefile.am:
447         define NULL
449 2006-10-07  James Livingston  <doclivingston@gmail.com>
451         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
452         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
453         * plugins/audioscrobbler/rb-lastfm-source.c:
454         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
455         hypens in URI schemes.
457 2006-10-06  William Jon McCann  <mccann@jhu.edu>
459         * plugins/iradio/Makefile.am:
460         * plugins/audioscrobbler/Makefile.am:
461         * plugins/cd-recorder/Makefile.am:
462         Don't clean all plugin_DATA.
463         Fixes #360210
465 2006-10-06  James Livingston  <doclivingston@gmail.com>
467         patch from Matt N  <fisxoj@gmail.com>
469         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
470         (rb_player_gst_bus_cb):
471         * backends/rb-player.c: (rb_player_interface_init),
472         (_rb_player_emit_tick), (_rb_player_emit_event):
473         * backends/rb-player.h: let the backend emit named "events", for
474         things that the core shouldn't know about.
476         * rhythmdb/rhythmdb.h:
477         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
478         support for streams containing album metadata.
480         * plugins/audioscrobbler/Makefile.am:
481         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
482         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
483         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
484         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
485         * plugins/audioscrobbler/rb-lastfm-source.c:
486         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
487         of last.fm streams. From #313049.
489 2006-10-06  James Livingston  <doclivingston@gmail.com>
491         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
492         committing. Oops.
494 2006-10-06  James Livingston  <doclivingston@gmail.com>
496         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
498         * configure.ac:
499         * data/rhythmbox.schemas:
500         * plugins/Makefile.am:
501         * plugins/magnatune/Makefile.am:
502         * plugins/magnatune/magnatune-loading.glade:
503         * plugins/magnatune/magnatune-prefs.glade:
504         * plugins/magnatune/magnatune-purchase.glade:
505         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
506         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
507         * plugins/magnatune/magnatune/MagnatuneSource.py:
508         * plugins/magnatune/magnatune/TrackListHandler.py:
509         * plugins/magnatune/magnatune/__init__.py:
510         * plugins/magnatune/magnatune_circle_small.png:
511         * plugins/magnatune/magnatune_logo_color_small.png:
512         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
513         play and download tracks from the MagnaTune online music store. From
514         #345783.
516 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
518         * lib/rb-proxy-config.c: (rb_proxy_config_init),
519         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
520         (check_auto_proxy_config), (get_proxy_config):
521         Don't crash when eel_gconf_get_string returns NULL.
522         Fixes #359974.
524 2006-10-04  James Livingston  <doclivingston@gmail.com>
526         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
528         * plugins/audiocd/Makefile.am: fix the plugin when linking with
529         --as-needed. Fixes #358730
531 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
533         patch by:  William Jon McCann  <mccann@jhu.edu>
535         * sources/rb-iradio-source.c: (playing_source_changed_cb):
536         Fix some stupidity I introduced that caused crashes on shutdown.
537         Fixes #359181.
539 2006-10-02  William Jon McCann  <mccann@jhu.edu>
541         * plugins/audiocd/Makefile.am:
542         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
543         * plugins/iradio/.cvsignore:
544         * plugins/iradio/Makefile.am:
545         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
546         (impl_deactivate):
547         * plugins/power-manager/.cvsignore:
548         Install missing iradio ui file.  Don't leak ui filename.
549         Fix iradio install dir. Fix audiocd install dir.
550         Remove unused code from audio cd plugin.
552         Fixes #359170
554 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
556         * sources/rb-ipod-source.c: (impl_move_to_trash):
557         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
558         commented out while fixing bug 355235.  Oops.
560 2006-10-03  James Livingston  <doclivingston@gmail.com>
562         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
563         non-unicode warnings to debug statements, since they can occur with
564         slightly broken files.
566         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
567         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
568         iradio plugin is disabled and re-enabled.
570 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
572         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
573         (rhythmdb_entry_podcast_post_get_type):
574         * rhythmdb/rhythmdb.h:
575         * tests/bench-rhythmdb-load.c: (main):
576         Add definitions for some common extra-metadata fields,
577         remove iradio entry type definition, add the concept of entry type
578         categories, define categories for the core entry types.
579         Categories are used to decide if an entry can be copied to a removable
580         device, if it should be reported to audioscrobbler, etc.
582         * shell/Makefile.am:
583         * shell/rb-shell-player.c: (rb_shell_player_class_init),
584         (rb_shell_player_constructor), (rb_shell_player_init),
585         (rb_shell_player_get_property), (open_location_thread),
586         (rb_shell_player_open_location),
587         (rb_shell_player_sync_with_source),
588         (rb_shell_player_set_playing_source_internal), (tick_cb):
589         * shell/rb-shell.c: (construct_widgets), (construct_sources),
590         (rb_shell_player_elapsed_changed_cb):
591         Remove iradio-specific code, use extra metadata fields for streaming
592         title and artist name.
594         * data/ui/rhythmbox-ui.xml:
595         Add a placeholder for 'new ...' menu items.
597         * Makefile.am:
598         * sources/Makefile.am:
599         * configure.ac:
600         * data/rhythmbox.schemas:
601         * plugins/Makefile.am:
602         * plugins/iradio/Makefile.am:
603         * plugins/iradio/iradio-ui.xml:
604         * plugins/iradio/iradio.rb-plugin.desktop.in:
605         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
606         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
607         (rb_iradio_plugin_class_init):
608         iradio plugin, enabled and hidden by default.
610         * plugins/audioscrobbler/rb-audioscrobbler.c:
611         (rb_audioscrobbler_song_changed_cb):
612         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
613         * sources/rb-daap-source.c: (rb_daap_source_new):
614         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
615         Define entry type categories, and use them where appropriate.
617         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
618         (rb_iradio_source_constructor), (rb_iradio_source_new),
619         (impl_get_status), (impl_want_uri), (buffering_cb),
620         (check_entry_type), (streaming_title_request_cb),
621         (streaming_artist_request_cb), (extra_metadata_gather_cb),
622         (info_available_cb), (playing_entry_changed_cb),
623         (playing_source_changed_cb):
624         Move streaming metadata and buffering handling here from
625         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
626         title or artist changes, and handle request and gather signals for
627         those.
629         * widgets/rb-header.c: (rb_header_class_init),
630         (rb_header_set_property), (rb_header_get_property),
631         (rb_header_new), (append_and_free), (rb_header_sync):
632         * widgets/rb-header.h:
633         Rework to use streaming artist and title extra-metadata.
634         streaming-artist overrides entry artist, and streaming-title means
635         entry title is a stream name, displayed in brackets.
637         * doc/reference/Makefile.am:
638         * doc/reference/rhythmbox.types:
639         Remove iradio stuff from gtk-doc build.
641         Fixed #347097.
643 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
645         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
647         * bindings/python/rhythmdb.defs:
648         * lib/rb-marshal.list:
649         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
650         (rhythmdb_emit_entry_deleted),
651         (rhythmdb_entry_extra_metadata_accumulator),
652         (rhythmdb_entry_request_extra_metadata),
653         (rhythmdb_emit_entry_extra_metadata_notify),
654         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
655         * rhythmdb/rhythmdb.h:
656         Add signals for dealing with transient metadata outside the set stored
657         in RhythmDBEntry:
658         - entry_extra_metadata_request returns a value for the requested
659           metadata field
660         - entry_extra_metadata_notify notifies observers of a change to an
661           extra metadata field
662         - entry_extra_metadata_gather returns the values of all extra metadata
663           fields
665         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
666         (rb_shell_player_extra_metadata_cb):
667         Sync the display on extra metadata changes and emit dbus signals when
668         we can marshal the value.
670         * shell/rb-shell.c: (rb_shell_get_song_properties):
671         Implement rb_shell_song_get_properties using
672         rhythmdb_entry_gather_metadata.
674         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
675         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
676         * configure.ac:
677         Add GValue marshaller for python (until bug 351072 is fixed)
679         From #345592.
681 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
683         * configure.ac:
684         * data/rhythmbox.schemas:
685         * plugins/Makefile.am:
686         * plugins/power-manager/Makefile.am:
687         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
688         * plugins/power-manager/rb-power-manager-plugin.c:
689         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
690         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
691         (playing_changed_cb), (impl_activate), (impl_deactivate):
692         gnome-power-manager integration: inhibit suspend while playing.
693         Fixes #344979.
695 2006-10-02  James Livingston  <doclivingston@gmail.com>
697         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
698         and Alex Lancaster  <alexl@users.sourceforge.net>
700         * help/C/rhythmbox.xml: fix some mispellings and grammer.
701         Fixes #353143, #353146 and #353147.
703 ============ Version 0.9.6
705 2006-10-01  James Livingston  <doclivingston@gmail.com>
707         * configure.ac: bump version to 0.9.6. enable tag-writing and
708         ipod-writing by default
710         * NEWS: update NEWS
712 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
714         patch by:  William Jon McCann  <mccann@jhu.edu>
716         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
717         Use a local GError in case no error pointer pointer is passed in.
718         From bug #358396.
720 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
722         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
723         Don't reference members of freed structures.
725 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
727         patch by:  William Jon McCann  <mccann@jhu.edu>
729         * player/rb-recorder-gst.c: (rb_recorder_burn):
730         Drop GDK lock before entering n-c-b.  Fixes #353894?
732 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
734         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
735         (impl_activate):
736         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
738 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
740         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
741         Call lirc_init before lirc_readconfig so we don't crash if the user's
742         .lircrc file has any mode sections. Fixes #357419.
744 2006-09-24  James Livingston  <doclivingston@gmail.com>
746         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
747         if we get called twice, as that can happen. Fixes #357214.
749 2006-09-24  James Livingston  <doclivingston@gmail.com>
751         * backends/rb-encoder.h: add "file access" error
753         * lib/rb-file-helpers.c: (rb_dot_dir):
754         * podcast/rb-podcast-manager.c:
755         (rb_podcast_manager_download_file_info_cb): remove directory creation
756         race condition.
758         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
759         (create_parent_dirs), (rb_encoder_gst_encode): check result of
760         directory creation. Fixes #347743
762 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
764         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
765         Strip trailing whitespace
767 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
769         * rhythmdb/Makefile.am:
770         * rhythmdb/rhythmdb-private.h:
771         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
772         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
773         * rhythmdb/rhythmdb-tree.h:
774         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
775         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
776         * rhythmdb/rhythmdb.h:
777         Rather than aborting, show an error and refuse to load the database when
778         it appears to come from the future.  From bug #350304.
780 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
782         * bindings/python/rhythmdb.override:
783         Make entry_foreach usable.
785 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
787         * sources/rb-podcast-source.c: (rb_podcast_source_init):
788         Scale the icon so it matches the rest of the sources.
789         Fixes #351410.
791 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
793         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
794         (rhythmdb_property_model_set_query_model_internal),
795         (rhythmdb_property_model_row_inserted_cb),
796         (rhythmdb_property_model_prop_changed_cb),
797         (rhythmdb_property_model_entry_removed_cb),
798         (rhythmdb_property_model_delete),
799         (rhythmdb_property_model_perform_sync):
800         Use the hash table to track hidden entries, rather than visible
801         entries.  Cuts memory usage fairly significantly.  From bug #347425.
803 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
805         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
806         Patch from Christian Becke to fix compilation with -O3, bug #355945.
808 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
810         * sources/rb-ipod-source.c: (add_rb_playlist),
811         (impl_move_to_trash), (impl_delete_thyself):
812         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
814         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
815         Make sure we don't leave the sourcelist thinking a deleted source is
816         still playing.  Fixes nothing.
818 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
820         * shell/rb-shell.c:
821         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
822         'Music->Import Folder' menu item for better icon theme coverage.
823         Fixes #354575.
825 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
827         * rhythmdb/rhythmdb-private.h:
828         * rhythmdb/rhythmdb.c: (rhythmdb_init),
829         (rhythmdb_start_action_thread), (rhythmdb_finalize),
830         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
831         (rhythmdb_load), (rhythmdb_save_async):
832         Use a limited thread pool for adding URIs to the database.
833         Fixes #352494.
835 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
838         Do something like the previous change, but for gstreamer 0.10
839         this time.  Oops.  Really fixes #349569.
841 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
843         * backends/gstreamer/rb-player-gst.c: (error_cb):
844         Ignore 'internal data flow error' messages if we've already got an
845         error for the file.  Fixes #349569.
847 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
849         * shell/rb-shell-clipboard.c:
850         (rb_shell_clipboard_playlist_deleted_cb):
851         Rebuild 'add to playlist' menu before removing actions for deleted
852         playlists, and don't unref the action, as we never had a reference on
853         it to begin with.  Fixes #354599.
855 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
857         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
858         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
859         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
861 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
863         * daapsharing/rb-daap-connection.c: (handle_playlists):
864         Reverse the list of playlists on the DAAP server so it ends up in the
865         right order.  Fixes #353926.
867 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
869         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
870         Fully process each code so the LIRC client returns to its normal state
871         when we're done.  Makes LIRC actually work properly for me.
873 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
875         patch by: Ed Catmur  <ed@catmur.co.uk>
877         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
878         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
879         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
881 2006-09-02  William Jon McCann  <mccann@jhu.edu>
883         patch by: James Livingston <doclivingston@gmail.com>
885         * configure.ac:
886         * data/rhythmbox.schemas:
887         * metadata/Makefile.am:
888         * plugins/Makefile.am:
889         * plugins/audiocd/.cvsignore:
890         * plugins/audiocd/Makefile.am:
891         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
892         * plugins/audiocd/rb-audiocd-plugin.c:
893         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
894         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
895         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
896         (end_cd_drive_monitor), (begin_cd_drive_monitor),
897         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
898         (rb_audiocd_plugin_playing_uri_changed_cb),
899         (nautilus_burn_drive_get_device),
900         (rb_audiocd_plugin_source_deleted), (create_source_cb),
901         (impl_activate), (_delete_cb), (impl_deactivate):
902         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
903         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
904         * shell/main.c: (main):
905         * shell/rb-removable-media-manager.c:
906         (rb_removable_media_manager_finalize),
907         (rb_removable_media_manager_load_media),
908         (rb_removable_media_manager_mount_volume),
909         (rb_removable_media_manager_scan):
910         * sources/Makefile.am:
911         * sources/rb-audiocd-source.c:
912         * sources/rb-audiocd-source.h:
913         Make auto CD support a plugin.
915         Fixes #349415.
917 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
919         * daapsharing/rb-daap-connection.c: (handle_song_listing):
920         Add a final rhythmdb_commit to make sure all songs from the share show
921         up in the daap source.  Fixes #353913.
923 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
925         * sources/rb-sourcelist-model.c:
926         (rb_sourcelist_model_drag_data_received),
927         (rb_sourcelist_model_row_drop_possible):
928         Re-enable dragging of a set of tracks to the source list to create a
929         new static playlist.  Fixes #353893.
931 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
933         * widgets/bacon-volume.c: (cb_button_timeout):
934         Actually drop the GDK lock, rather than returning while holding it.
935         Fixes #353895.
937 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
939         * plugins/generic-player/rb-generic-player-source.c:
940         (rb_generic_player_source_constructor),
941         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
942         (rb_generic_player_source_load_songs), (load_playlist_file),
943         (default_load_playlists), (get_hal_context):
944         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
945         Fixes #353483.
947 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
949         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
950         Canonicalise URIs received from gnome-vfs file monitor.
951         Fixes #353447.
953 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
955         * help/C/rhythmbox.xml: unbreak help build
956         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
957         Unbuffer the IO channel.  Fixes some weirdness for me.
959 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
961         * help/C/rhythmbox.xml:
962         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
963         (impl_activate), (impl_deactivate):
964         Add 'playpause' LIRC command.
966 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
968         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
969         (rb_source_finalize):
970         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
971         when disconnecting generic audio players.
973 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
975         patch by: Paolo Borelli  <pborelli@katamail.com>
977         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
978         Fix a small leak.
980 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
982         * backends/gstreamer/rb-player-gst.c:
983         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
984         Don't actually disable the seek bar for non-seekable songs,
985         because we can't reliably tell yet.
987 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
989         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
990         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
991         (db_entry_deleted_cb), (rb_daap_share_server_start),
992         (rb_daap_share_server_stop):
993         * rhythmdb/rhythmdb-private.h:
994         * rhythmdb/rhythmdb-tree.c: (save_entry):
995         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
996         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
997         (rhythmdb_entry_get_ulong):
998         * rhythmdb/rhythmdb.h:
999         Give db entries a numeric ID property, replacing the daap server's
1000         entry->id map.  From #347665.
1002 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1004         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1005         * widgets/rb-header.c: (rb_header_class_init),
1006         (rb_header_set_property), (rb_header_get_property),
1007         (rb_header_set_playing_entry), (rb_header_sync),
1008         (rb_header_sync_time):
1009         * widgets/rb-header.h:
1010         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1011         insensitive when the player backend tells us we can't seek in the
1012         current song.  From #330410.
1014 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1016         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1017         Don't try to unref previous/next entries if they aren't there.
1018         Fixes #351806.
1020 2006-08-15  James Livingston  <doclivingston@gmail.com>
1022         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1023         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1024         mountpoint into a RBRefString and compare equality of those, rather
1025         than doign lots of strcmp()s.
1027         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1028         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1029         status notification as well as the visibility update in an idle
1030         callback. Makes it take much less time to update after a volume
1031         mount/unmount event.
1033 2006-08-15  James Livingston  <doclivingston@gmail.com>
1035         patch by: Christian Becke  <christianbecke@web.de>
1037         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1038         multiple selections in the Import Folder dialog. Fixes #351414.
1040 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1042         * shell/rb-shell.c: (construct_widgets):
1043         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1044         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1045         (rb_statusbar_get_property), (rb_statusbar_new):
1046         * shell/rb-statusbar.h:
1047         Use the connect-proxy signal from the UI manager, which covers all
1048         action groups, rather than just one.  Fixes #351280.
1050 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1052         * widgets/rb-library-browser.c: (rebuild_child_model):
1053         Fix query model reference counts (bug #349601).
1055 2006-08-15  James Livingston  <doclivingston@gmail.com>
1057         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1058         Error signals be non-recursive. Fixes a highly-unlikely issue that
1059         could have caused #322972.
1061 2006-08-14  James Livingston  <doclivingston@gmail.com>
1063         * sources/rb-auto-playlist-source.c:
1064         (rb_auto_playlist_source_init):
1065         * sources/rb-static-playlist-source.c:
1066         (rb_static_playlist_source_init):
1068 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1070         * sources/rb-browser-source.c:
1071         * sources/rb-import-errors-source.c:
1072         * sources/rb-iradio-source.c:
1073         * sources/rb-library-source.c:
1074         * sources/rb-missing-files-source.c:
1075         * sources/rb-play-queue-source.c:
1076         * sources/rb-playlist-source.c:
1077         * sources/rb-podcast-source.c:
1078         * sources/rb-source.c:
1079         Make entry-type a property on RBSource, rather than on most of its
1080         subclasses.  Fixes #347288.
1082 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1084         * remote/dbus/rb-client.c: (parse_pattern),
1085         (create_rb_shell_proxies), (main):
1086         Actually implement %ag and %aG (genre) for --print-playing-format
1088 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1090         * lib/rb-debug.c: (rb_debug_real):
1091         No point allocating a buffer for the timestamp when we can just put it
1092         on the stack.
1094 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1096         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1097         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1099 2006-08-11  James Livingston  <doclivingston@gmail.com>
1101         * podcast/rb-podcast-manager.c:
1102         (rb_podcast_manager_update_synctime): fix accidental commit in the
1103         last, which caused a warning.
1105 2006-08-11  James Livingston  <doclivingston@gmail.com>
1107         * data/rhythmbox.schemas:
1108         * podcast/rb-podcast-manager.c:
1109         (rb_podcast_manager_update_synctime): change the schema's
1110         update-inteval value from 0 to 1, which causes it to update on
1111         startup, rather than never. Should fixs #343818.
1113 2006-08-11  James Livingston  <doclivingston@gmail.com>
1115         * configure.ac:
1116         * data/Makefile.am:
1117         - data/rhythmbox.desktop.in:
1118         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1119         the @VERSION@ can be substituted in. Fix some issues with newer
1120         bug-buddy versions. Fixes #348853.
1122 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1124         * data/rhythmbox.schemas:
1125         * plugins/Makefile.am:
1126         * plugins/artdisplay/Makefile.am:
1127         * plugins/audioscrobbler/Makefile.am:
1128         * plugins/cd-recorder/Makefile.am:
1129         * plugins/generic-player/Makefile.am:
1130         * plugins/ipod/Makefile.am:
1131         * plugins/lirc/Makefile.am:
1132         * plugins/lyrics/Makefile.am:
1133         * plugins/pythonconsole/Makefile.am:
1134         * plugins/rb-module.c:
1135         * plugins/rb-module.h:
1136         * plugins/rb-plugin-manager.c: (configure_button_cb),
1137         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1138         (plugin_manager_populate_lists), (plugin_manager_set_active),
1139         (plugin_manager_toggle_active),
1140         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1141         (rb_plugin_manager_finalize):
1142         * plugins/rb-plugin-manager.h:
1143         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1144         (rb_plugin_find_file):
1145         * plugins/rb-plugin.h:
1146         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1147         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1148         (rb_plugins_engine_init), (rb_plugin_info_free),
1149         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1150         (rb_plugins_engine_deactivate_plugin),
1151         (rb_plugins_engine_plugin_is_active),
1152         (rb_plugins_engine_plugin_is_visible),
1153         (rb_plugins_engine_plugin_is_configurable),
1154         (rb_plugins_engine_configure_plugin),
1155         (rb_plugins_engine_get_plugin_name),
1156         (rb_plugins_engine_get_plugin_description),
1157         (rb_plugins_engine_get_plugin_authors),
1158         (rb_plugins_engine_get_plugin_website),
1159         (rb_plugins_engine_get_plugin_copyright),
1160         (rb_plugins_engine_get_plugin_icon):
1161         * plugins/rb-plugins-engine.h:
1162         * plugins/rb-python-module.c: (rb_python_module_init_python),
1163         (rb_python_module_load), (rb_python_module_unload),
1164         (rb_python_module_class_init), (rb_python_module_new),
1165         (finalise_collect_cb), (rb_python_shutdown):
1166         * plugins/rb-python-module.h:
1167         * plugins/rb-python-plugin.c: (call_python_method),
1168         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1169         (impl_is_configurable), (rb_python_object_get_type):
1170         * plugins/rb-python-plugin.h:
1171         * plugins/rb/Makefile.am:
1173         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1174         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1175         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1176         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1177         special case loading of dirs.  Install plugins to subdirectors of
1178         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1179         not DATADIR.  Fixes #350352
1181 2006-08-10  James Livingston  <doclivingston@gmail.com>
1183         * daapsharing/rb-daap-connection.c: (connection_connected),
1184         (connection_disconnected), (connection_operation_done):
1185         * daapsharing/rb-daap-share.c: (name_collision_cb):
1186         * plugins/generic-player/rb-generic-player-source.c:
1187         (rb_generic_player_source_load_playlists):
1188         * podcast/rb-podcast-manager.c:
1189         (rb_podcast_manager_download_entry),
1190         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1191         (end_job), (rb_podcast_manager_event_loop):
1192         * rhythmdb/rhythmdb-property-model.c:
1193         (rhythmdb_property_model_perform_sync):
1194         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1195         (rhythmdb_query_model_process_update), (idle_process_update),
1196         (rhythmdb_query_model_reapply_query_cb):
1197         * shell/rb-play-order.c: (sync_playing_entry_cb):
1198         * shell/rb-removable-media-manager.c:
1199         (rb_removable_media_manager_load_media):
1200         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1201         (rb_shell_clipboard_sync),
1202         (rb_shell_clipboard_entryview_changed_cb),
1203         (rb_shell_clipboard_entries_changed_cb),
1204         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1205         (rebuild_playlist_menu_idle),
1206         (rb_shell_clipboard_playlist_added_cb):
1207         * shell/rb-shell-player.c: (notify_playing_idle),
1208         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1209         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1210         (rb_shell_quit):
1211         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1212         * sources/rb-library-source.c: (add_child_sources_idle):
1213         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1214         (burn_cd_idle):
1215         * sources/rb-source.c: (update_visibility_idle):
1216         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1217         (cb_button_press):
1218         * widgets/rb-druid.c: (idle_set_sensitive):
1219         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1220         take the GDK lock when we should be, from #348588
1222 2006-08-09  James Livingston  <doclivingston@gmail.com>
1224         * rhythmdb/rhythmdb-property-model.c:
1225         (rhythmdb_property_model_get_path),
1226         (rhythmdb_property_model_get_value),
1227         (rhythmdb_property_model_iter_next): don't attempt to verify the
1228         iterator if it's the All value, since it isn't valid. Fixes a
1229         potential crasher.
1231 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1233         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1234         (rb_podcast_manager_download_file_info_cb),
1235         (rb_podcast_manager_abort_download), (download_info_free),
1236         (download_info_new):
1237         Use gnome_vfs_async_get_file_info to figure out the local filename for
1238         a podcast episode, so we get the filename from the target of any
1239         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1240         the query string, then append it later, to stop gnome-vfs from
1241         converting 'http://' to 'http:/'.  If the local filename ends with the
1242         query string, remove it.  Fixes #330766 and #321991.
1244 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1246         * sources/rb-library-source.c: (impl_want_uri):
1247         * sources/rb-static-playlist-source.c: (impl_want_uri):
1248         Treat sftp:// URIs as likely indicators of songness.
1250 2006-08-07  James Livingston  <doclivingston@gmail.com>
1252         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1253         remote tracks with GStreamer 0.10, and remember their visibility like
1254         local ones.
1256 2006-08-07  James Livingston  <doclivingston@gmail.com>
1258         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1259         apparently it's a borrowed reference. Should fix #347072.
1261 2006-08-06  James Livingston  <doclivingston@gmail.com>
1263         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1264         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1265         (rb_shuffle_play_order_get_previous),
1266         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1267         (remove_from_history), (add_randomly_to_history),
1268         (rb_shuffle_sync_history_with_query_model),
1269         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1270         (query_model_and_history_contents_match): remove the tentatative
1271         history stuff, which is from older code, like we did for -random a few
1272         weeks ago.
1274 2006-08-06  James Livingston  <doclivingston@gmail.com>
1276         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1277         (rb_queue_play_order_get_previous):
1278         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1279         (rb_random_play_order_go_next),
1280         (rb_random_play_order_get_previous), (rb_random_db_changed):
1281         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1282         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1283         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1284         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1285         (rb_shuffle_entry_removed),
1286         (query_model_and_history_contents_match):
1287         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1288         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1289         (default_has_next), (default_has_previous),
1290         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1291         various play orders, after reviewing the code. Should fix #349601.
1293 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1295         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1296         Pass the items_per_notification parameter to
1297         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1298         with some versions of python.
1300 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1302         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1303         Don't try to draw the icon if the drawable area is too small.
1304         Fixes #349838.
1306 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1308         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1310         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1312 2006-08-05  James Livingston  <doclivingston@gmail.com>
1314         * configure.ac: tell libtool not to check for C++/fortran/ etc
1315         compilers
1317         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1318         watch, to fix some gconf warnings.
1320 2006-08-04  James Livingston  <doclivingston@gmail.com>
1322         patch by: William Jon McCann  <mccann@jhu.edu>
1324         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1326 2006-08-04  James Livingston  <doclivingston@gmail.com>
1328         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1329         actually fix #349722 this time
1331 2006-08-04  James Livingston  <doclivingston@gmail.com>
1333         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1334         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1335         know about. Fixes #348571.
1337 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1339         various fixes for valgrind complaints:
1340         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1341         (init_rb_tree_dnd_data):
1342           free the associated target list, too
1343         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1344           initialize allocation.{x,y,width,height} correctly
1345         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1346         (rb_entry_view_constructor):
1347           free strings when no longer needed
1349 2006-08-03  James Livingston  <doclivingston@gmail.com>
1351         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1352         real GtkTreeModel not the filter. Fixes #349722
1354 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1356         * backends/gstreamer/rb-player-gst.c:
1357         Only use DAAP seek hacks for GStreamer 0.8 builds.
1359         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1360         (rb_daap_src_open):
1361         * daapsharing/rb-daap-src.h:
1362         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1364         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1365         (rb_daap_source_get_headers):
1366         * sources/rb-daap-source.h:
1367         Reimplement rb_daap_source_get_headers for the case where we've
1368         already got the byte offset.  Add a small hack to
1369         rb_daap_source_class_init to prevent the linker from dropping
1370         rb-daap-src.o entirely.
1372         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1374 2006-08-02  James Livingston  <doclivingston@gmail.com>
1376         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1377         (handle_song_listing), (handle_playlist_entries),
1378         (rb_daap_connection_dispose):
1379         * sources/rb-daap-source.c: (_add_location_to_playlist),
1380         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1381         for playlist URIs, not pointless duplicate strings. From #347425.
1383 2006-08-02  James Livingston  <doclivingston@gmail.com>
1385         * data/rhythmbox.schemas:
1386         * lib/rb-preferences.h:
1387         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1388         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1389         (plugin_manager_set_active), (plugin_manager_toggle_active),
1390         (plugin_manager_get_selected_plugin), (name_search_cb),
1391         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1392         (rb_plugin_manager_finalize):
1393         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1394         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1395         (rb_plugins_engine_plugin_is_visible),
1396         (rb_plugins_engine_plugin_visible_cb):
1397         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1398         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1400 2006-08-02  James Livingston  <doclivingston@gmail.com>
1402         * sources/rb-sourcelist-model.c:
1403         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1404         drop on a source. Fixes #349580.
1406 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1408         * configure.ac:
1409         * daapsharing/rb-daap-dialog.c:
1410         * daapsharing/rb-daap-dialog.h:
1411         * shell/Makefile.am:
1412         * sources/Makefile.am:
1413         * sources/rb-daap-source.c: (connection_auth_cb),
1414         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1415         Add gnome-keyring support for DAAP passwords and use
1416         gnome-password-dialog instead of our own.  
1417         Patch mostly by James Livingston.  Fixes bug #330346.
1419 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1421         * shell/rb-shell-player.c:
1422         (rb_shell_player_set_playing_source_internal),
1423         (rb_shell_player_sync_with_selected_source):
1424         Remove call to rb_source_have_url, as we never did anything with the
1425         result.
1427         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1428         * sources/rb-import-errors-source.c:
1429         (rb_import_errors_source_class_init):
1430         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1431         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1432         * sources/rb-library-source.c: (rb_library_source_class_init),
1433         (impl_want_uri), (impl_add_uri):
1434         * sources/rb-missing-files-source.c:
1435         (rb_missing_files_source_class_init):
1436         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1437         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1438         (impl_want_uri), (impl_add_uri):
1439         * sources/rb-source.c: (rb_source_class_init),
1440         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1441         * sources/rb-source.h:
1442         * sources/rb-static-playlist-source.c:
1443         (rb_static_playlist_source_class_init), (search_action_changed),
1444         (impl_want_uri):
1445         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1446         When adding a URI, want_uri gets called for each source; the one that
1447         wants it most gets the URI passed to its add_uri method.
1448         
1449         * shell/rb-shell.h:
1450         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1451         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1452         (handle_playlist_entry_cb), (rb_shell_load_uri):
1453         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1454         Use want_uri and add_uri to simplify and make generic
1455         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1457         If a source that returns TRUE from try_playlist wants all the URIs in
1458         the playlist, give it the playlist URI instead.  This retains the
1459         existing behaviour for adding iradio playlists.
1461         * bindings/python/rb.defs: Update for above changes.
1463         From bug #347097.
1465 2006-07-31  James Livingston  <doclivingston@gmail.com>
1467         * data/Makefile.am:
1468         * data/generate-keys.sh: fix the build I broke with the last commit.
1469         Oops.
1471 2006-07-31  James Livingston  <doclivingston@gmail.com>
1473         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1474         in a long time. Fixes #349179.
1476 2006-07-30  James Livingston  <doclivingston@gmail.com>
1478         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1479         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1480         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1482 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1484         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1485         Don't tell the browser the query is still pending when doing a subset
1486         search.  Fixes #348617 again.
1488 2006-07-30  James Livingston  <doclivingston@gmail.com>
1490         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1491         override definition. Fixes #348893.
1493 2006-07-30  James Livingston  <doclivingston@gmail.com>
1495         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1496         rb_error_dialog, as it's above this in the stack.
1498         * lib/rb-util.c: (rb_gvalue_compare):
1499         * lib/rb-util.h: change the return type to int, as we're returning
1500         -1/0/1
1502         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1503         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1504         (rb_query_creator_set_sorting): minor leak fixes
1506 2006-07-28  James Livingston  <doclivingston@gmail.com>
1508         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1509         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1510         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1511         (get_or_create_genre), (remove_entry_from_album),
1512         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1513         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1514         (rhythmdb_tree_entry_lookup_by_location),
1515         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1516         (rhythmdb_hash_tree_foreach),
1517         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1518         threadsafe. Fix a nasty problem if the _foreach callback function
1519         caused the addition/removal of entries.
1521 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1523         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1524         Clear selection before changing our idea of the model.  Fixes crashes
1525         on model changes while playing.
1527 2006-07-27  James Livingston  <doclivingston@gmail.com>
1529         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1530         a missing rb_refstring_unref.
1532         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1533         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1534         oops. should hopefully fix the crash reported on #347425.
1536 2006-07-27  James Livingston  <doclivingston@gmail.com>
1538         * backends/gstreamer/rb-encoder-gst.c:
1539         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1541         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1542         thread-safety issue.
1544 2006-07-27  James Livingston  <doclivingston@gmail.com>
1546         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1547         * rhythmdb/rb-refstring.h: add a new function which returns the
1548         RBRefString that matches a string, but never creates a new one.
1550         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1551         (monitor_entry_file), (rhythmdb_check_changed_file),
1552         (rhythmdb_directory_change_cb):
1553         * rhythmdb/rhythmdb-private.h:
1554         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1555         (unparent_entries), (free_unknown_entries),
1556         (rhythmdb_tree_parser_start_element),
1557         (rhythmdb_tree_parser_end_element), (save_entry),
1558         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1559         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1560         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1561         (rhythmdb_tree_entry_type_registered):
1562         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1563         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1564         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1565         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1566         (rhythmdb_process_metadata_load),
1567         (rhythmdb_process_file_created_or_modified),
1568         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1569         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1570         (action_thread_main), (rhythmdb_entry_set_internal),
1571         (rhythmdb_entry_move_to_trash_set_error),
1572         (rhythmdb_entry_move_to_trash),
1573         (rhythmdb_entry_lookup_by_location),
1574         (rhythmdb_entry_lookup_by_location_refstring),
1575         (default_sync_metadata), (rhythmdb_entry_get_string),
1576         (rhythmdb_entry_get_refstring):
1577         * rhythmdb/rhythmdb.h:
1578         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1579         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1580         (rb_playlist_source_row_deleted),
1581         (rb_playlist_source_entry_added_cb),
1582         (rb_playlist_source_location_in_map),
1583         (rb_playlist_source_add_to_map): Make the LOCATION field of
1584         RhythmDBEntry be a RBRefString instead, which reduces some of the
1585         memory-fragmentation on startup and saves RBStaticPlaylistSource
1586         duplicating all the strings.
1588 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1590         * rhythmdb/rhythmdb-query-model.c:
1591         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1592         * rhythmdb/rhythmdb-query-model.h:
1593         Add function to copy contents from one query model to another,
1594         filtered by the destination model's query.
1596         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1597         Use the above to create a new query model for subset searches, rather
1598         than filtering the existing model. Fixes #348617.
1600 2006-07-25  James Livingston  <doclivingston@gmail.com>
1602         * rhythmdb/rhythmdb-query-model.c:
1603         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1604         lost from static playlists. Yet again. Fixes #323095.
1606         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1607         case for the above, so that we should know if a change will break it
1608         again.
1610 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1612         * data/rhythmbox.schemas: Fix for last commit.
1614         * podcast/rb-podcast-manager.c:
1615         (rb_podcast_manager_download_entry),
1616         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1617         (rb_podcast_manager_db_entry_deleted_cb):
1618         * rhythmdb/rhythmdb-property-model.c:
1619         (rhythmdb_property_model_set_query_model_internal),
1620         (rhythmdb_property_model_set_property),
1621         (rhythmdb_property_model_finalize),
1622         (rhythmdb_property_model_drag_data_get):
1623         * rhythmdb/rhythmdb-query-model.c:
1624         (rhythmdb_query_model_set_query_internal),
1625         (rhythmdb_query_model_set_property),
1626         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1627         * rhythmdb/rhythmdb-query-model.h:
1628         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1629         (rb_browser_source_do_query):
1630         * sources/rb-import-errors-source.c:
1631         (rb_import_errors_source_constructor):
1632         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1633         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1634         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1635         (impl_search), (impl_get_status),
1636         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1637         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1638         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1639         * sources/rb-missing-files-source.c:
1640         (rb_missing_files_source_constructor),
1641         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1642         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1643         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1644         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1645         (rb_playlist_source_save_playlist),
1646         (rb_playlist_source_new_from_xml),
1647         (rb_playlist_source_save_to_xml),
1648         (rb_playlist_source_setup_entry_view),
1649         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1650         (rb_playlist_source_get_query_model),
1651         (rb_playlist_source_mark_dirty),
1652         (rb_playlist_source_location_in_map),
1653         (rb_playlist_source_add_to_map):
1654         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1655         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1656         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1657         (impl_delete), (rb_podcast_source_state_prefs_sync),
1658         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1659         (impl_get_config_widget), (rb_podcast_source_add_feed),
1660         (rb_podcast_source_cmd_download_post),
1661         (rb_podcast_source_cmd_cancel_download),
1662         (rb_podcast_source_cmd_delete_feed),
1663         (rb_podcast_source_cmd_update_feed),
1664         (rb_podcast_source_cmd_update_all),
1665         (rb_podcast_source_cb_interval_changed_cb),
1666         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1667         (rb_podcast_source_entry_activated_cb):
1668         * sources/rb-source.c: (rb_source_finalize),
1669         (rb_source_set_query_model_internal), (rb_source_set_property),
1670         (default_get_status):
1671         * sources/rb-static-playlist-source.c:
1672         (rb_static_playlist_source_dispose),
1673         (rb_static_playlist_source_finalize),
1674         (rb_static_playlist_source_constructor),
1675         (rb_static_playlist_source_do_query):
1676         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1677         (rb_entry_view_set_shell_player_internal),
1678         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1679         (rb_entry_view_set_model), (rb_entry_view_append_column),
1680         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1681         (rb_entry_view_set_state):
1682         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1683         (rb_library_browser_finalize), (rb_library_browser_new),
1684         (update_browser_property_visibilty), (view_selection_reset_cb),
1685         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1686         (restore_selection), (rebuild_child_model),
1687         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1688         * widgets/rb-property-view.c:
1689         (rb_property_view_set_model_internal),
1690         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1691         (rb_property_view_get_model), (rb_property_view_set_model),
1692         (rb_property_view_get_num_properties),
1693         (rb_property_view_set_selection),
1694         (rb_property_view_append_column_custom),
1695         (rb_property_view_set_search_func):
1696         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1697         From #347446
1699 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1701         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1702         Work around a small n-c-b API change.
1704 2006-07-25  James Livingston  <doclivingston@gmail.com>
1706         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1708         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1709         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1710         aborting entry-emission on finalise
1712 2006-07-25  James Livingston  <doclivingston@gmail.com>
1714         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1715         warning when entry is NULL.
1717 2006-07-25  James Livingston  <doclivingston@gmail.com>
1719         * help/sv/.cvsignore:
1720         * lib/.cvsignore:
1721         * plugins/generic-player/.cvsignore:
1722         * remote/.cvsignore:
1723         * remote/dbus/.cvsignore:
1724         * shell/.cvsignore:
1725         * tests/.cvsignore: more .cvsignore updates
1727 2006-07-24  James Livingston  <doclivingston@gmail.com>
1729         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1730         (transparent_expose_event), (make_transparent_again),
1731         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1732         apply a patch for EggTrayIcon so that it handled transparent panels
1733         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1734         Fixes #348208.
1736 2006-07-24  James Livingston  <doclivingston@gmail.com>
1738         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1739         queries rather than taking ownership when parsing a subquery. Fixed a
1740         crash exposed by the recent leak fixes.
1742         * doc/reference/tmpl/disclosure-widget.sgml:
1743         * doc/reference/tmpl/rb-debug.sgml:
1744         * doc/reference/tmpl/rb-metadata.sgml:
1745         * doc/reference/tmpl/rb-play-order.sgml:
1746         * doc/reference/tmpl/rb-playlist-manager.sgml:
1747         * doc/reference/tmpl/rb-playlist-source.sgml:
1748         * doc/reference/tmpl/rb-shell-player.sgml:
1749         * doc/reference/tmpl/rb-shell.sgml:
1750         * doc/reference/tmpl/rb-song-display-box.sgml:
1751         * doc/reference/tmpl/rhythmbox-unused.sgml:
1752         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1754 2006-07-24  James Livingston  <doclivingston@gmail.com>
1756         * lib/.cvsignore:
1757         * plugins/artdisplay/.cvsignore:
1758         * plugins/artdisplay/artdisplay/.cvsignore:
1759         * plugins/lyrics/.cvsignore:
1760         * plugins/pythonconsole/.cvsignore:
1761         * plugins/rb/.cvsignore: add/update various .cvsignore files
1763 2006-07-24  James Livingston  <doclivingston@gmail.com>
1765         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1766         (rb_refstring_ref): don't emit critical warnings when the refstring
1767         is NULL, as that happens often for podcast metadata.
1769         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1770         missing rhythmdb_entry_ref call
1772 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1774         * bindings/python/rb.override:
1775         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1776         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1777         (playlist_row_inserted_cb):
1778         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1779         * plugins/rb-plugin-manager.c:
1780         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1781         (rb_podcast_manager_copy_post),
1782         (rb_podcast_manager_db_entry_deleted_cb),
1783         (rb_podcast_manager_insert_feed):
1784         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1785         (rb_refstring_ref), (rb_refstring_get_sort_key):
1786         * rhythmdb/rhythmdb-private.h:
1787         * rhythmdb/rhythmdb-property-model.c:
1788         (rhythmdb_property_model_set_property),
1789         (rhythmdb_property_model_get_property),
1790         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1791         (rhythmdb_property_model_row_inserted_cb),
1792         (rhythmdb_property_model_prop_changed_cb),
1793         (rhythmdb_property_model_compare),
1794         (rhythmdb_property_model_insert),
1795         (rhythmdb_property_model_iter_from_string),
1796         (rhythmdb_property_model_get_column_type),
1797         (rhythmdb_property_model_get_iter),
1798         (rhythmdb_property_model_get_value),
1799         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1800         (rhythmdb_property_model_enable_drag):
1801         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1802         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1803         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1804         (rhythmdb_query_model_chain),
1805         (rhythmdb_query_model_entry_added_cb),
1806         (rhythmdb_query_model_entry_changed_cb),
1807         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1808         (rhythmdb_query_model_add_entry),
1809         (rhythmdb_query_model_insert_into_main_list),
1810         (rhythmdb_query_model_insert_into_limited_list),
1811         (rhythmdb_query_model_remove_from_main_list),
1812         (rhythmdb_query_model_remove_from_limited_list),
1813         (rhythmdb_query_model_update_limited_entries),
1814         (rhythmdb_query_model_emit_reorder),
1815         (rhythmdb_query_model_do_reorder),
1816         (rhythmdb_query_model_do_insert),
1817         (rhythmdb_query_model_move_entry),
1818         (rhythmdb_query_model_remove_entry),
1819         (rhythmdb_query_model_entry_to_iter),
1820         (rhythmdb_query_model_iter_to_entry),
1821         (rhythmdb_query_model_get_previous_from_entry),
1822         (rhythmdb_query_model_row_draggable),
1823         (rhythmdb_query_model_drag_data_delete),
1824         (rhythmdb_query_model_drag_data_get),
1825         (rhythmdb_query_model_drag_data_received),
1826         (rhythmdb_query_model_row_drop_possible),
1827         (rhythmdb_query_model_row_drop_position),
1828         (rhythmdb_query_model_add_results),
1829         (rhythmdb_query_model_query_complete),
1830         (rhythmdb_query_model_get_column_type),
1831         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1832         (rhythmdb_query_model_iter_nth_child),
1833         (apply_updated_entry_sequence),
1834         (rhythmdb_query_model_child_index_to_base_index),
1835         (rhythmdb_query_model_get_entry_index),
1836         (rhythmdb_query_model_base_row_inserted),
1837         (rhythmdb_query_model_base_row_deleted),
1838         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1839         (rhythmdb_query_model_location_sort_func),
1840         (rhythmdb_query_model_title_sort_func),
1841         (rhythmdb_query_model_album_sort_func),
1842         (rhythmdb_query_model_artist_sort_func),
1843         (rhythmdb_query_model_track_sort_func),
1844         (rhythmdb_query_model_double_ceiling_sort_func),
1845         (rhythmdb_query_model_ulong_sort_func),
1846         (rhythmdb_query_model_date_sort_func),
1847         (rhythmdb_query_model_string_sort_func),
1848         (rhythmdb_query_model_within_limit):
1849         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1850         (rhythmdb_tree_parser_start_element),
1851         (rhythmdb_tree_parser_end_element),
1852         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1853         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1854         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1855         (save_entry_uint64), (save_entry_double), (save_entry),
1856         (set_entry_album), (rhythmdb_tree_entry_new),
1857         (get_genres_hash_for_type), (get_or_create_genre),
1858         (get_or_create_artist), (get_or_create_album), (remove_child),
1859         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1860         (rhythmdb_tree_entry_delete), (remove_one_song),
1861         (rhythmdb_tree_entry_delete_by_type),
1862         (rhythmdb_tree_evaluate_query), (search_match_properties),
1863         (evaluate_conjunctive_subquery), (do_conjunction),
1864         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1865         (conjunctive_query_albums), (conjunctive_query_artists),
1866         (conjunctive_query_genre), (conjunctive_query),
1867         (split_query_by_disjunctions), (do_query_recurse),
1868         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1869         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1870         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1871         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1872         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1873         (extract_gtype_from_enum_entry),
1874         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1875         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1876         (rhythmdb_event_free), (rhythmdb_finalize),
1877         (rhythmdb_set_property), (rhythmdb_get_property),
1878         (rhythmdb_thread_create), (free_entry_changes),
1879         (emit_entry_changed), (sync_entry_changed),
1880         (process_added_entries_cb), (process_deleted_entries_cb),
1881         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1882         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1883         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1884         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1885         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1886         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1887         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1888         (rhythmdb_process_metadata_load),
1889         (rhythmdb_process_file_created_or_modified),
1890         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1891         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1892         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1893         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1894         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1895         (record_entry_change), (rhythmdb_entry_set_internal),
1896         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1897         (rhythmdb_entry_move_to_trash_cb),
1898         (rhythmdb_entry_move_to_trash_set_error),
1899         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1900         (rhythmdb_nice_elt_name_from_propid),
1901         (rhythmdb_propid_from_nice_elt_name),
1902         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1903         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1904         (rhythmdb_compute_status_normal), (default_sync_metadata),
1905         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1906         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1907         (podcast_get_playback_uri), (podcast_data_destroy),
1908         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1909         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1910         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1911         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1912         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1913         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1914         * rhythmdb/rhythmdb.h:
1915         * shell/rb-play-order-linear-loop.c:
1916         (rb_linear_play_order_loop_get_next),
1917         (rb_linear_play_order_loop_get_previous):
1918         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1919         (rb_linear_play_order_get_previous):
1920         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1921         * shell/rb-play-order-random.c: (get_query_model_contents):
1922         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1923         (get_query_model_contents):
1924         * shell/rb-play-order.c: (rb_play_order_constructor),
1925         (rb_play_order_finalize),
1926         (rb_play_order_set_playing_entry_internal),
1927         (rb_play_order_set_property), (rb_play_order_new),
1928         (rb_play_order_get_player), (rb_play_order_get_source),
1929         (rb_play_order_get_db), (rb_play_order_get_query_model),
1930         (rb_play_order_player_is_playing),
1931         (rb_play_order_set_playing_entry),
1932         (rb_play_order_get_playing_entry),
1933         (rb_play_order_playing_source_changed),
1934         (rb_play_order_query_model_changed),
1935         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1936         (default_has_next), (default_has_previous),
1937         (sync_playing_entry_cb), (default_playing_entry_removed),
1938         (rb_play_order_has_next), (rb_play_order_get_next),
1939         (rb_play_order_go_next), (rb_play_order_has_previous),
1940         (rb_play_order_get_previous), (rb_play_order_go_previous),
1941         (rb_play_order_model_not_empty),
1942         (rb_play_order_update_have_next_previous):
1943         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1944         (rb_playlist_manager_save_playlists),
1945         (rb_playlist_manager_set_automatic_playlist),
1946         (rb_playlist_manager_cmd_edit_automatic_playlist),
1947         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1948         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1949         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1950         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1951         (volume_pre_unmount_cb), (reemit_playing_signal),
1952         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1953         (rb_shell_player_handle_eos_unlocked),
1954         (rb_shell_player_handle_eos), (rb_shell_player_init),
1955         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1956         (playlist_entry_cb), (rb_shell_player_open_entry),
1957         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1958         (rb_shell_player_set_play_order),
1959         (rb_shell_player_set_playback_state),
1960         (rb_shell_player_sync_play_order),
1961         (rb_shell_player_play_order_update_cb),
1962         (rb_shell_player_jump_to_current), (swap_playing_source),
1963         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1964         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1965         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1966         (rb_shell_player_entry_activated_cb),
1967         (rb_shell_player_property_row_activated_cb),
1968         (rb_shell_player_entry_changed_cb),
1969         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1970         (rb_shell_player_pause),
1971         (rb_shell_player_get_playing_song_duration),
1972         (rb_shell_player_error), (error_cb), (tick_cb),
1973         (info_available_cb), (buffering_cb),
1974         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1975         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1976         (rb_shell_jump_to_current):
1977         * sources/rb-auto-playlist-source.c:
1978         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1979         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1980         (rb_auto_playlist_source_get_query):
1981         * sources/rb-auto-playlist-source.h:
1982         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1983         * sources/rb-import-errors-source.c:
1984         (rb_import_errors_source_constructor):
1985         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1986         * sources/rb-library-source.c: (filepath_parse_pattern):
1987         * sources/rb-missing-files-source.c:
1988         (rb_missing_files_source_constructor):
1989         * sources/rb-play-queue-source.c:
1990         (rb_play_queue_source_clear_queue),
1991         (rb_play_queue_source_track_info_cell_data_func):
1992         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1993         (rb_playlist_source_get_property), (playlist_iter_func),
1994         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1995         (rb_playlist_source_track_cell_data_func):
1996         * sources/rb-podcast-source.c: (construct_query_from_selection),
1997         (rb_podcast_source_post_status_cell_data_func),
1998         (rb_podcast_source_post_feed_cell_data_func),
1999         (rb_podcast_source_feed_title_search_func),
2000         (rb_podcast_source_post_date_cell_data_func):
2001         * sources/rb-source.c: (default_get_status),
2002         (rb_source_get_status), (rb_source_browser_toggled),
2003         (rb_source_update_play_statistics), (rb_source_search),
2004         (rb_source_get_config_widget), (default_add_to_queue),
2005         (rb_source_add_to_queue), (rb_source_receive_drag),
2006         (rb_source_gather_hash_keys):
2007         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2008         (rb_sourcelist_model_is_row_visible),
2009         (rb_sourcelist_model_row_is_separator),
2010         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2011         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2012         (rb_sourcelist_model_drag_data_get):
2013         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2014         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2015         (rb_sourcelist_visible_source_to_iter),
2016         (rb_sourcelist_edit_source_name), (set_source_playing),
2017         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2018         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2019         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2020         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2021         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2022         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2023         (rb_static_playlist_source_add_location_internal),
2024         (rb_static_playlist_source_row_inserted):
2025         * widgets/rb-entry-view.c: (type_ahead_search_func),
2026         (rb_entry_view_finalize), (rb_entry_view_set_model),
2027         (rb_entry_view_playing_cell_data_func),
2028         (rb_entry_view_rating_cell_data_func),
2029         (rb_entry_view_long_cell_data_func),
2030         (rb_entry_view_play_count_cell_data_func),
2031         (rb_entry_view_duration_cell_data_func),
2032         (rb_entry_view_year_cell_data_func),
2033         (rb_entry_view_quality_cell_data_func),
2034         (rb_entry_view_location_cell_data_func),
2035         (rb_entry_view_string_cell_data_func),
2036         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2037         (rb_entry_view_get_sorting_order),
2038         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2039         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2040         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2041         (rb_entry_view_playing_song_changed), (harvest_entries),
2042         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2043         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2044         (set_column_visibility):
2045         * widgets/rb-entry-view.h:
2046         * widgets/rb-header.c: (rb_header_new),
2047         (rb_header_set_playing_entry), (rb_header_set_title):
2048         * widgets/rb-library-browser.c: (rebuild_child_model),
2049         (rb_library_browser_set_model):
2050         * widgets/rb-property-view.c:
2051         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2052         (rb_property_view_set_property), (rb_property_view_get_property),
2053         (rb_property_view_reset), (rb_property_view_get_model),
2054         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2055         (rb_property_view_button_press_cb):
2056         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2057         (rb_query_creator_get_property), (rb_query_creator_load_query),
2058         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2059         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2060         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2061         (lookup_row_by_widget), (remove_button_click_cb),
2062         (add_button_click_cb), (create_property_option_menu):
2063         * widgets/rb-song-info.c: (rb_song_info_constructor),
2064         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2065         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2066         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2067         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2069 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2071         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2072         (rb_shell_player_get_property):
2073         Add a property providing access to the player backend object.
2075 2006-07-23  James Livingston  <doclivingston@gmail.com>
2077         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2078         (get_history), (rb_random_filter_history),
2079         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2080         remove the tentative history, since it appears to be a remanent from
2081         older play order code. The only thing it was doing was using up
2082         CPU-time and memory. From #345857
2084 2006-07-23  James Livingston  <doclivingston@gmail.com>
2086         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2088         * shell/main.c: (main):
2089         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2090         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2091         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2092         (rb_playlist_manager_load_playlists),
2093         (rb_playlist_manager_save_data):
2094         * shell/rb-playlist-manager.h:
2095         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2096         (rb_shell_get_property), (rb_shell_sync_state),
2097         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2098         (construct_sources), (idle_handle_load_complete):
2099         * shell/rb-shell.h: Add a command-line option for changing the
2100         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2102 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2104         * daapsharing/rb-daap-share.c: (databases_cb):
2105         Make sure we set status codes on HTTP responses.
2107 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2109         * configure.ac:
2110         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2111         (chunked_message_finished), (send_chunked_file),
2112         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2113         Use GMappedFile to send local files to DAAP clients where possible.  
2114         iTunes can't seek properly in files sent using chunked transfer 
2115         encoding.  Also remove the useless bitrate calculation code, as we
2116         never even used the result anyway.  From #330410.
2118 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2120         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2122         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2123         Enable multiple selection for 'import file'.  Fixes #347478.
2125 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2127         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2128         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2129         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2130         Fixes #348098.
2132 2006-07-20  James Livingston  <doclivingston@gmail.com>
2134         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2135         aren't NULL before calling strstr. Fixes #347998.
2137 2006-07-19  James Livingston  <doclivingston@gmail.com>
2139         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2141         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2142         MB that only have years. Fixes #347906.
2144 2006-07-19  James Livingston  <doclivingston@gmail.com>
2146         * rhythmdb/rhythmdb-private.h:
2147         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2148         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2149         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2150         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2151         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2152         (rhythmdb_execute_stat), (queue_stat_uri),
2153         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2154         (rhythmdb_load), (rhythmdb_entry_register_type),
2155         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2156         asynchronous vfs operations, and cancel them when shutting down the
2157         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2159         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2160         (test_rhythmdb_shutdown): wait until the db has been finalised before
2161         continuing on to the next test.
2163 2006-07-19  James Livingston  <doclivingston@gmail.com>
2165         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2166         right thing in the #ifdef. From #347832.
2168 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2170         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2171         Fix compile warning.
2173 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2175         * rhythmdb/rhythmdb-query-model.c:
2176         (rhythmdb_query_model_set_property),
2177         (rhythmdb_query_model_reapply_query_cb):
2178         Ignore old query == new query case.
2179         Fixes auto playlists with time-relative queries.
2181         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2182         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2183         (rhythmdb_query_to_string):
2184         * rhythmdb/rhythmdb.h:
2185         Add debug helper for printing queries in case someone needs it again.
2187 2006-07-18  James Livingston  <doclivingston@gmail.com>
2189         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2190         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2191         Fixes #347832
2193         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2194         write then into files.
2196 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2198         * daapsharing/rb-daap-connection.c:
2199         (rb_daap_connection_set_property):
2200         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2201         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2202         (add_playlist_to_mlcl), (databases_cb):
2203         * daapsharing/rb-daap-sharing.c: (create_share):
2204         * iradio/rb-new-station-dialog.c:
2205         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2206         * iradio/rb-station-properties-dialog.c:
2207         (rb_station_properties_dialog_finalize),
2208         (rb_station_properties_dialog_set_property),
2209         (rb_station_properties_dialog_get_current_entry):
2210         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2211         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2212         * plugins/generic-player/rb-generic-player-source.c:
2213         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2214         (handle_playlist_entry_cb):
2215         * plugins/generic-player/rb-nokia770-source.c:
2216         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2217         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2218         (visit_playlist_dirs), (hal_udi_is_psp):
2219         * podcast/rb-podcast-manager.c:
2220         * podcast/rb-podcast-properties-dialog.c:
2221         (rb_podcast_properties_dialog_finalize),
2222         (rb_podcast_properties_dialog_set_entry_view),
2223         (rb_podcast_properties_dialog_set_property):
2224         * rhythmdb/rhythmdb-property-model.c:
2225         * rhythmdb/rhythmdb-query-model.c:
2226         (rhythmdb_query_model_set_property),
2227         (rhythmdb_query_model_reapply_query_cb):
2228         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2229         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2230         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2231         (rhythmdb_event_free), (rhythmdb_shutdown),
2232         (rhythmdb_thread_create), (action_thread_main),
2233         (rhythmdb_do_full_query_async_parsed),
2234         (rhythmdb_do_full_query_internal):
2235         * shell/main.c: (main):
2236         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2237         * shell/rb-play-order.c: (rb_play_order_finalize),
2238         (rb_play_order_set_player),
2239         (rb_play_order_set_playing_entry_internal),
2240         (rb_play_order_set_property),
2241         (rb_play_order_playing_source_changed),
2242         (rb_play_order_query_model_changed):
2243         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2244         (rb_playlist_manager_set_source),
2245         (rb_playlist_manager_set_shell_internal),
2246         (rb_playlist_manager_set_property):
2247         * shell/rb-removable-media-manager.c:
2248         (rb_removable_media_manager_set_property),
2249         (rb_removable_media_manager_set_uimanager),
2250         (rb_removable_media_manager_cmd_eject_medium),
2251         (rb_removable_media_manager_cmd_copy_tracks):
2252         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2253         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2254         (rb_shell_clipboard_set),
2255         (rb_shell_clipboard_cmd_add_to_playlist_new),
2256         (rb_shell_clipboard_playlist_add_cb),
2257         (rb_shell_clipboard_playlist_renamed_cb),
2258         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2259         (rebuild_playlist_menu):
2260         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2261         (rb_shell_player_set_queue_source_internal),
2262         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2263         (rb_shell_player_entry_activated_cb),
2264         (rb_shell_player_property_row_activated_cb),
2265         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2266         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2267         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2268         (rb_shell_finalize), (construct_widgets),
2269         (rb_shell_playing_from_queue_cb),
2270         (rb_shell_player_stream_song_changed_cb),
2271         (rb_shell_player_volume_changed_cb):
2272         * shell/rb-statusbar.c: (rb_statusbar_new):
2273         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2274         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2275         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2276         * sources/rb-auto-playlist-source.c:
2277         (rb_auto_playlist_source_class_init),
2278         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2279         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2280         (rb_auto_playlist_source_do_query),
2281         (rb_auto_playlist_source_set_query),
2282         (rb_auto_playlist_source_browser_changed_cb),
2283         (search_action_changed):
2284         * sources/rb-auto-playlist-source.h:
2285         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2286         (search_action_changed), (rb_browser_source_constructor),
2287         (rb_browser_source_cmd_choose_artist), (impl_delete),
2288         (rb_browser_source_browser_changed_cb),
2289         (rb_browser_source_do_query):
2290         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2291         (rb_daap_source_finalize), (rb_daap_source_class_init),
2292         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2293         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2294         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2295         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2296         (rb_daap_source_get_headers):
2297         * sources/rb-import-errors-source.c:
2298         (rb_import_errors_source_constructor),
2299         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2300         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2301         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2302         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2303         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2304         (impl_paste), (impl_receive_drag):
2305         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2306         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2307         (impl_song_properties):
2308         * sources/rb-library-source.c: (rb_library_source_constructor),
2309         (rb_library_source_new), (impl_paste),
2310         (rb_library_source_add_child_source):
2311         * sources/rb-missing-files-source.c: (impl_delete),
2312         (impl_get_status):
2313         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2314         (rb_play_queue_source_class_init),
2315         (rb_play_queue_source_constructor):
2316         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2317         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2318         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2319         (rb_playlist_source_new_from_xml),
2320         (rb_playlist_source_save_to_xml):
2321         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2322         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2323         (search_action_changed), (rb_podcast_source_constructor),
2324         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2325         (construct_query_from_selection),
2326         (rb_podcast_source_cmd_download_post),
2327         (rb_podcast_source_cmd_cancel_download),
2328         (rb_podcast_source_cmd_delete_feed),
2329         (rb_podcast_source_start_download_cb),
2330         (rb_podcast_source_finish_download_cb),
2331         (rb_podcast_source_feed_updates_avaliable_cb),
2332         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2333         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2334         (impl_get_status):
2335         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2336         * sources/rb-source.c: (rb_source_get_property),
2337         (default_add_to_queue), (default_move_to_trash),
2338         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2339         (_rb_source_register_action_group):
2340         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2341         (rb_sourcelist_model_is_row_visible),
2342         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2343         (rb_sourcelist_model_row_draggable),
2344         (rb_sourcelist_model_drag_data_get):
2345         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2346         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2347         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2348         (visibility_notify_cb):
2349         * sources/rb-static-playlist-source.c:
2350         (rb_static_playlist_source_class_init),
2351         (rb_static_playlist_source_init),
2352         (rb_static_playlist_source_finalize),
2353         (rb_static_playlist_source_constructor), (impl_delete),
2354         (rb_static_playlist_source_browser_changed_cb),
2355         (rb_static_playlist_source_add_location_internal),
2356         (search_action_changed):
2357         * sources/rb-static-playlist-source.h:
2358         * widgets/rb-druid.c:
2359         * widgets/rb-entry-view.c:
2360         (rb_entry_view_set_shell_player_internal),
2361         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2362         (rb_entry_view_get_property), (rb_entry_view_new),
2363         (rb_entry_view_button_press_cb):
2364         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2365         (rb_library_browser_set_property),
2366         (rb_library_browser_get_property):
2367         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2368         (get_entry_for_property), (get_property_index_from_proptype):
2369         * widgets/rb-song-info.c: (rb_song_info_constructor),
2370         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2371         (rb_song_info_set_property), (rb_song_info_get_property):
2373         More leak and reference counting fixes.  From bug #347446.
2375 2006-07-17  James Livingston  <doclivingston@gmail.com>
2377         * sources/rb-auto-playlist-source.c:
2378         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2379         rather than setting the base model, as that lets us not import all the
2380         entries from the base model. This fixes some issues whether the search
2381         box wasn't filting automatic playlists.
2383 2006-07-17  James Livingston  <doclivingston@gmail.com>
2385         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2386         error, which caused blacklist creation to fail.
2388 2006-07-17  James Livingston  <doclivingston@gmail.com>
2390         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2391         running with -n, because we don't start it then. Fixes a crash on
2392         exit.
2394 2006-07-17  James Livingston  <doclivingston@gmail.com>
2396         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2398         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2399         Save not Open for the button. Fixes #345816
2401 2006-07-17  James Livingston  <doclivingston@gmail.com>
2403         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2405         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2406         when track transfer is disabled. Fixes #347705
2408 2006-07-17  James Livingston  <doclivingston@gmail.com>
2410         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2412         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2413         with track transfer disabled. Fixes #347705
2415 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2417         * rhythmdb/rhythmdb-query-model.c:
2418         (rhythmdb_query_model_set_property):
2419         * shell/main.c: (main):
2420         * shell/rb-shell-clipboard.c: (unset_source_internal),
2421         (rb_shell_clipboard_finalize),
2422         (rb_shell_clipboard_set_source_internal),
2423         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2424         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2425         (rb_shell_player_set_db_internal),
2426         (rb_shell_player_set_queue_source_internal),
2427         (rb_shell_player_finalize), (rb_shell_player_set_property):
2428         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2429         * sources/rb-auto-playlist-source.c:
2430         (rb_auto_playlist_source_constructor),
2431         (rb_auto_playlist_source_new_from_xml):
2432         * sources/rb-daap-source.c: (create_pixbufs):
2433         * sources/rb-ipod-source.c:
2434         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2435         * sources/rb-library-source.c:
2436         (rb_library_source_add_child_source):
2437         * sources/rb-play-queue-source.c:
2438         (rb_play_queue_sync_playing_state),
2439         (rb_play_queue_source_track_info_cell_data_func):
2440         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2441         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2442         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2443         (impl_can_add_to_queue), (impl_add_to_queue):
2444         * sources/rb-source.c: (rb_source_set_property):
2445         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2446         * sources/rb-static-playlist-source.c:
2447         (rb_static_playlist_source_constructor),
2448         (rb_static_playlist_source_load_from_xml):
2449         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2450         * widgets/rb-entry-view.c: (rb_entry_view_init),
2451         (rb_entry_view_finalize), (rb_entry_view_append_column),
2452         (rb_entry_view_constructor):
2453         * widgets/rb-song-info.c: (rb_song_info_set_property):
2454         Fix leaks.  From bug #347446.
2456 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2458         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2459         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2460         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2461         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2462         (add_decoding_pipeline), (profile_bin_find_encoder),
2463         (get_profile_from_mime_type), (extract_track), (transcode_track),
2464         (rb_encoder_gst_encode):
2465         * backends/gstreamer/rb-encoder-gst.h:
2466         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2467         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2468         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2469         (rb_player_gst_construct):
2470         * backends/gstreamer/rb-player-gst.h:
2471         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2472         * backends/rb-encoder.h:
2473         * backends/rb-player.c: (_rb_player_emit_tick):
2474         * backends/rb-player.h:
2475         * daapsharing/rb-daap-connection.c: (build_message),
2476         (actual_http_response_handler), (http_response_handler),
2477         (http_get), (entry_set_string_prop), (emit_progress_idle),
2478         (handle_server_info), (handle_database_info),
2479         (handle_song_listing), (handle_playlists),
2480         (handle_playlist_entries), (rb_daap_connection_new),
2481         (connected_cb), (rb_daap_connection_do_something),
2482         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2483         (rb_daap_connection_get_property):
2484         * daapsharing/rb-daap-connection.h:
2485         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2486         (rb_daap_collision_dialog_new_run):
2487         * daapsharing/rb-daap-dialog.h:
2488         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2489         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2490         (DigestToString), (rb_daap_hash_generate):
2491         * daapsharing/rb-daap-hash.h:
2492         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2493         (resolve_cb), (browse_cb):
2494         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2495         (resolve_cb), (rb_daap_mdns_browser_resolve),
2496         (rb_daap_mdns_browser_start), (resolver_free):
2497         * daapsharing/rb-daap-mdns-browser.h:
2498         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2499         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2500         (publish_cb):
2501         * daapsharing/rb-daap-mdns-publisher.h:
2502         * daapsharing/rb-daap-share.c: (name_collision_cb),
2503         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2504         (message_set_from_rb_daap_structure), (content_codes_cb),
2505         (session_id_validate), (logout_cb), (update_cb),
2506         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2507         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2508         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2509         (rb_daap_share_publish_start):
2510         * daapsharing/rb-daap-share.h:
2511         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2512         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2513         * daapsharing/rb-daap-sharing.h:
2514         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2515         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2516         (rb_daap_src_open):
2517         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2518         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2519         (rb_daap_structure_parse_container_buffer),
2520         (rb_daap_structure_parse), (gnode_find_node),
2521         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2522         (print_rb_daap_item):
2523         * daapsharing/rb-daap-structure.h:
2524         * iradio/rb-new-station-dialog.c:
2525         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2526         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2527         (rb_new_station_dialog_text_changed):
2528         * iradio/rb-station-properties-dialog.c:
2529         (rb_station_properties_dialog_init),
2530         (rb_station_properties_dialog_new),
2531         (rb_station_properties_dialog_response_cb),
2532         (rb_station_properties_dialog_get_current_entry),
2533         (rb_station_properties_dialog_rated_cb),
2534         (rb_station_properties_dialog_update_rating),
2535         (rb_station_properties_dialog_update_playback_error),
2536         (rb_station_properties_dialog_sync_entries):
2537         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2538         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2539         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2540         (rb_metadata_can_save), (rb_metadata_save):
2541         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2542         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2543         (_handle_message), (_new_connection), (main):
2544         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2545         (rb_metadata_dbus_read_from_message):
2546         * metadata/rb-metadata-dbus.h:
2547         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2548         (rb_add_id3_tagger), (rb_metadata_init),
2549         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2550         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2551         (rb_metadata_gst_new_decoded_pad_cb),
2552         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2553         * metadata/sj-error.c: (sj_error_quark):
2554         * metadata/sj-error.h:
2555         * metadata/sj-metadata-musicbrainz.c:
2556         (sj_metadata_musicbrainz_instance_init),
2557         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2558         (get_rdf), (lookup_cd):
2559         * metadata/sj-metadata.c: (sj_metadata_get_type):
2560         * metadata/sj-structures.c:
2561         * metadata/sj-structures.h:
2562         * metadata/test-metadata.c: (load_metadata_cb), (main):
2563         * podcast/rb-feed-podcast-properties-dialog.c:
2564         (rb_feed_podcast_properties_dialog_init),
2565         (rb_feed_podcast_properties_dialog_update_title):
2566         * podcast/rb-feed-podcast-properties-dialog.h:
2567         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2568         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2569         (rb_new_podcast_dialog_text_changed):
2570         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2571         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2572         (rb_podcast_manager_set_property),
2573         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2574         (rb_podcast_manager_download_entry),
2575         (rb_podcast_manager_update_feeds),
2576         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2577         (rb_podcast_manager_copy_post),
2578         (rb_podcast_manager_thread_parse_feed),
2579         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2580         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2581         (download_info_free), (download_info_new), (start_job),
2582         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2583         (download_progress_cb), (download_progress_update_cb),
2584         (rb_podcast_manager_remove_feed),
2585         (rb_podcast_manager_db_entry_deleted_cb),
2586         (rb_podcast_manager_cancel_download),
2587         (rb_podcast_manager_update_synctime),
2588         (rb_podcast_manager_set_remove_files),
2589         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2590         (rb_podcast_manager_abort_subscribe),
2591         (rb_podcast_manager_get_podcast_dir):
2592         * podcast/rb-podcast-manager.h:
2593         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2594         (rb_validate_channel_propert), (rb_validate_item_propert),
2595         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2596         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2597         (rb_podcast_parse_date), (rb_podcast_parse_time),
2598         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2599         * podcast/rb-podcast-parse.h:
2600         * podcast/rb-podcast-properties-dialog.c:
2601         (rb_podcast_properties_dialog_init),
2602         (rb_podcast_properties_dialog_get_current_entry),
2603         (rb_podcast_properties_dialog_update_title),
2604         (rb_podcast_properties_dialog_update_duration),
2605         (rb_podcast_properties_dialog_update_date):
2606         * podcast/rb-podcast-properties-dialog.h:
2607         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2608         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2609         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2610         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2611         (g_sequence_search), (g_sequence_set_aggregate_data),
2612         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2613         (find_min), (g_sequence_node_find_by_pos),
2614         (g_sequence_node_find_closest), (g_sequence_node_free),
2615         (g_sequence_node_split), (g_sequence_node_insert_before),
2616         (g_sequence_node_get_length), (g_sequence_node_remove),
2617         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2618         (g_sequence_calc_tree_height):
2619         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2620         (rb_refstring_get):
2621         * rhythmdb/rb-refstring.h:
2622         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2623         (rhythmdb_gda_init), (dump_model), (execute_query),
2624         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2625         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2626         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2627         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2628         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2629         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2630         * rhythmdb/rhythmdb-gda.h:
2631         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2632         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2633         (monitor_library_directory), (rhythmdb_check_changed_file),
2634         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2635         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2636         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2637         * rhythmdb/rhythmdb-private.h:
2638         * rhythmdb/rhythmdb-property-model.c:
2639         (rhythmdb_property_model_set_property),
2640         (rhythmdb_property_model_row_inserted_cb),
2641         (rhythmdb_property_model_prop_changed_cb),
2642         (rhythmdb_property_model_compare),
2643         (rhythmdb_property_model_get_value),
2644         (rhythmdb_property_model_iter_nth_child),
2645         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2646         (rhythmdb_property_model_drag_data_get),
2647         (rhythmdb_property_model_enable_drag),
2648         (rhythmdb_property_model_column_get_type):
2649         * rhythmdb/rhythmdb-property-model.h:
2650         * rhythmdb/rhythmdb-query-model.c:
2651         (rhythmdb_query_model_class_init),
2652         (rhythmdb_query_model_set_property),
2653         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2654         (rhythmdb_query_model_has_pending_changes),
2655         (rhythmdb_query_model_entry_changed_cb),
2656         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2657         (rhythmdb_query_model_add_entry),
2658         (rhythmdb_query_model_remove_from_main_list),
2659         (rhythmdb_query_model_remove_entry),
2660         (rhythmdb_query_model_drag_data_received),
2661         (rhythmdb_query_model_row_drop_possible),
2662         (rhythmdb_query_model_compute_status_normal),
2663         (rhythmdb_query_model_set_sort_order),
2664         (rhythmdb_query_model_get_entry_index),
2665         (rhythmdb_query_model_base_row_inserted),
2666         (rhythmdb_query_model_base_row_deleted),
2667         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2668         (rhythmdb_query_model_date_sort_func),
2669         (rhythmdb_query_model_within_limit):
2670         * rhythmdb/rhythmdb-query-model.h:
2671         * rhythmdb/rhythmdb-query-results.c:
2672         (rhythmdb_query_results_query_complete):
2673         * rhythmdb/rhythmdb-query-results.h:
2674         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2675         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2676         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2677         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2678         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2679         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2680         (rhythmdb_tree_parser_start_element),
2681         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2682         (save_entry), (save_entry_type), (save_unknown_entry_type),
2683         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2684         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2685         (get_or_create_genre), (remove_entry_from_album),
2686         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2687         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2688         (search_match_properties), (evaluate_conjunctive_subquery),
2689         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2690         (conjunctive_query_artists), (conjunctive_query_genre),
2691         (conjunctive_query), (split_query_by_disjunctions),
2692         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2693         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2694         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2695         (rhythmdb_hash_tree_foreach),
2696         (rhythmdb_tree_entry_type_registered):
2697         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2698         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2699         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2700         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2701         (rhythmdb_shutdown), (rhythmdb_finalize),
2702         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2703         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2704         (rhythmdb_entry_example_new),
2705         (set_metadata_string_default_unknown), (is_ghost_entry),
2706         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2707         (rhythmdb_process_metadata_load),
2708         (rhythmdb_process_queued_entry_set_event),
2709         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2710         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2711         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2712         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2713         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2714         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2715         (rhythmdb_entry_delete_by_type),
2716         (rhythmdb_propid_from_nice_elt_name),
2717         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2718         (rhythmdb_compute_status_normal),
2719         (rhythmdb_entry_register_type_alias),
2720         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2721         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2722         (rhythmdb_entry_import_error_get_type),
2723         (rhythmdb_entry_podcast_post_get_type),
2724         (rhythmdb_entry_podcast_feed_get_type),
2725         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2726         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2727         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2728         * rhythmdb/rhythmdb.h:
2729         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2730         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2731         (rb_history_limit_size):
2732         * shell/rb-history.h:
2733         * shell/rb-play-order-linear-loop.c:
2734         (rb_linear_play_order_loop_get_next):
2735         * shell/rb-play-order-linear-loop.h:
2736         * shell/rb-play-order-linear.c:
2737         * shell/rb-play-order-linear.h:
2738         * shell/rb-play-order-queue.c:
2739         (rb_queue_play_order_playing_entry_removed):
2740         * shell/rb-play-order-queue.h:
2741         * shell/rb-play-order-random-by-age-and-rating.c:
2742         * shell/rb-play-order-random-by-age-and-rating.h:
2743         * shell/rb-play-order-random-by-age.c:
2744         (rb_random_by_age_get_entry_weight):
2745         * shell/rb-play-order-random-by-age.h:
2746         * shell/rb-play-order-random-by-rating.c:
2747         * shell/rb-play-order-random-by-rating.h:
2748         * shell/rb-play-order-random-equal-weights.c:
2749         * shell/rb-play-order-random-equal-weights.h:
2750         * shell/rb-play-order-random.c: (rb_random_filter_history),
2751         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2752         (rb_random_db_changed), (rb_random_playing_entry_changed),
2753         (rb_random_db_entry_deleted):
2754         * shell/rb-play-order-shuffle.c: (remove_from_history),
2755         (add_randomly_to_history), (get_query_model_contents),
2756         (rb_shuffle_playing_entry_changed):
2757         * shell/rb-play-order-shuffle.h:
2758         * shell/rb-play-order.c: (rb_play_order_class_init),
2759         (rb_play_order_set_property),
2760         (rb_play_order_playing_source_changed),
2761         (rb_play_order_query_model_changed_cb),
2762         (rb_play_order_query_model_changed),
2763         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2764         * shell/rb-play-order.h:
2765         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2766         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2767         (rb_playlist_manager_set_property),
2768         (rb_playlist_manager_parse_file),
2769         (rb_playlist_manager_load_playlists),
2770         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2771         (rb_playlist_manager_save_playlists),
2772         (rb_playlist_manager_new_playlist),
2773         (rb_playlist_manager_new_playlist_from_selection_data),
2774         (rb_playlist_manager_cmd_new_automatic_playlist),
2775         (rb_playlist_manager_cmd_edit_automatic_playlist),
2776         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2777         (save_playlist_response_cb), (export_set_extension_cb),
2778         (filter_get_export_filter_label), (setup_format_menu),
2779         (rb_playlist_manager_cmd_save_playlist),
2780         (rb_playlist_manager_get_playlists),
2781         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2782         (rb_playlist_manager_delete_playlist),
2783         (rb_playlist_manager_export_playlist):
2784         * shell/rb-playlist-manager.h:
2785         * shell/rb-removable-media-manager.c:
2786         (rb_removable_media_manager_class_init),
2787         (rb_removable_media_manager_dispose),
2788         (rb_removable_media_manager_finalize),
2789         (rb_removable_media_manager_set_property),
2790         (split_drive_from_cdda_uri),
2791         (rb_removable_media_manager_playing_uri_changed_cb),
2792         (rb_removable_media_manager_load_media),
2793         (rb_removable_media_manager_volume_mounted_cb),
2794         (remove_volume_by_source),
2795         (rb_removable_media_manager_source_deleted_cb),
2796         (rb_removable_media_manager_volume_unmounted_cb),
2797         (rb_removable_media_manager_mount_volume),
2798         (rb_removable_media_manager_set_uimanager),
2799         (rb_removable_media_manager_scan), (do_transfer),
2800         (rb_removable_media_manager_cmd_copy_tracks):
2801         * shell/rb-removable-media-manager.h:
2802         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2803         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2804         (rb_shell_clipboard_sync),
2805         (rb_shell_clipboard_idle_poll_deletions),
2806         (rb_shell_clipboard_cmd_add_to_playlist_new),
2807         (rb_shell_clipboard_playlist_add_cb),
2808         (rb_shell_clipboard_playlist_deleted_cb),
2809         (rb_shell_clipboard_playlist_renamed_cb),
2810         (rb_shell_clipboard_playlist_visible_cb),
2811         (rb_shell_clipboard_playlist_added_cb):
2812         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2813         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2814         (rb_shell_player_init), (rb_shell_player_set_property),
2815         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2816         (rb_shell_player_open_location),
2817         (rb_shell_player_set_playing_entry),
2818         (rb_shell_player_play_order_update_cb),
2819         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2820         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2821         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2822         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2823         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2824         (gconf_song_position_slider_visibility_changed),
2825         (rb_shell_player_entry_activated_cb),
2826         (rb_shell_player_property_row_activated_cb),
2827         (rb_shell_player_entry_changed_cb),
2828         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2829         (actually_set_playing_source),
2830         (rb_shell_player_set_playing_source_internal),
2831         (rb_shell_player_get_playing_song_duration), (eos_cb),
2832         (rb_shell_player_error), (error_cb), (info_available_cb),
2833         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2834         (rb_shell_player_error_get_type):
2835         * shell/rb-shell-player.h:
2836         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2837         (rb_shell_preferences_append_page),
2838         (share_check_button_toggled_cb),
2839         (password_check_button_toggled_cb), (add_daap_preferences),
2840         (rb_shell_preferences_column_check_changed_cb),
2841         (rb_shell_preferences_sync_column_button),
2842         (rb_shell_preferences_sync),
2843         (rb_shell_preferences_browser_views_activated_cb):
2844         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2845         (rb_shell_set_property), (rb_shell_get_property),
2846         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2847         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2848         (rb_shell_get_visibility), (rb_shell_set_visibility),
2849         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2850         (rb_shell_register_entry_type_for_source),
2851         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2852         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2853         (rb_shell_player_stream_song_changed_cb),
2854         (rb_shell_set_window_title),
2855         (rb_shell_view_smalldisplay_changed_cb),
2856         (rb_shell_view_queue_as_sidebar_changed_cb),
2857         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2858         (rb_shell_cmd_add_folder_to_library),
2859         (rb_shell_cmd_add_file_to_library),
2860         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2861         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2862         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2863         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2864         (handle_playlist_entry_cb), (rb_shell_load_uri),
2865         (rb_shell_add_to_queue), (rb_shell_present),
2866         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2867         (rb_shell_volume_widget_changed_cb),
2868         (rb_shell_player_volume_changed_cb),
2869         (rb_shell_ui_location_get_type):
2870         * shell/rb-shell.h:
2871         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2872         (rb_source_header_init), (rb_source_header_set_source_internal),
2873         (rb_source_state_sync), (rb_source_header_clear_search),
2874         (rb_source_header_view_browser_changed_cb):
2875         * shell/rb-source-header.h:
2876         * shell/rb-statusbar.c: (rb_statusbar_construct),
2877         (rb_statusbar_init), (rb_statusbar_finalize),
2878         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2879         (rb_statusbar_source_status_changed_cb):
2880         * shell/rb-statusbar.h:
2881         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2882         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2883         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2884         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2885         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2886         (rb_audiocd_create_track_entry):
2887         * sources/rb-auto-playlist-source.c:
2888         (rb_auto_playlist_source_class_init),
2889         (rb_auto_playlist_source_constructor),
2890         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2891         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2892         (rb_auto_playlist_source_query_complete_cb),
2893         (rb_auto_playlist_source_do_query),
2894         (rb_auto_playlist_source_set_query),
2895         (rb_auto_playlist_source_browser_changed_cb),
2896         (search_action_to_prop):
2897         * sources/rb-auto-playlist-source.h:
2898         * sources/rb-browser-source.c: (rb_browser_source_init),
2899         (rb_browser_source_dispose), (search_action_to_prop),
2900         (rb_browser_source_constructor),
2901         (rb_browser_source_cmd_choose_genre),
2902         (rb_browser_source_cmd_choose_artist),
2903         (rb_browser_source_cmd_choose_album), (impl_search),
2904         (rb_browser_source_browser_changed_cb),
2905         (rb_browser_source_do_query):
2906         * sources/rb-browser-source.h:
2907         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2908         (rb_daap_source_init), (rb_daap_source_dispose),
2909         (rb_daap_source_set_property), (start_browsing),
2910         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2911         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2912         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2913         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2914         * sources/rb-daap-source.h:
2915         * sources/rb-import-errors-source.h:
2916         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2917         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2918         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2919         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2920         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2921         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2922         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2923         (generate_ipod_filename), (ipod_path_from_unix_path),
2924         (impl_delete_thyself):
2925         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2926         (rb_iradio_source_init), (rb_iradio_source_constructor),
2927         (rb_iradio_source_new), (guess_uri_scheme),
2928         (rb_iradio_source_add_station),
2929         (rb_iradio_source_async_update_play_statistics),
2930         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2931         (stations_view_drag_data_received_cb),
2932         (rb_iradio_source_cmd_new_station):
2933         * sources/rb-iradio-source.h:
2934         * sources/rb-library-source.c: (rb_library_source_dispose),
2935         (rb_library_source_constructor),
2936         (rb_library_source_location_button_clicked_cb),
2937         (impl_get_config_widget), (rb_library_source_library_location_cb),
2938         (sanitize_path), (filepath_parse_pattern),
2939         (layout_example_label_update),
2940         (rb_library_source_layout_filename_changed), (build_filename),
2941         (impl_can_paste), (impl_paste),
2942         (rb_library_source_add_child_source),
2943         (rb_library_source_sync_child_sources):
2944         * sources/rb-library-source.h:
2945         * sources/rb-missing-files-source.h:
2946         * sources/rb-play-queue-source.c:
2947         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2948         * sources/rb-play-queue-source.h:
2949         * sources/rb-playlist-source-recorder.c:
2950         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2951         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2952         (rb_playlist_source_recorder_init),
2953         (rb_playlist_source_recorder_new):
2954         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2955         (rb_playlist_source_save_playlist),
2956         (rb_playlist_source_entry_added_cb),
2957         (rb_playlist_source_set_query_model),
2958         (rb_playlist_source_add_to_map):
2959         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2960         (rb_podcast_source_init), (rb_podcast_source_dispose),
2961         (rb_podcast_source_finalize), (search_action_to_prop),
2962         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2963         (rb_podcast_source_get_property), (rb_podcast_source_new),
2964         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2965         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2966         (rb_podcast_source_show_browser), (construct_query_from_selection),
2967         (rb_podcast_source_do_query), (impl_get_config_widget),
2968         (rb_podcast_source_btn_file_change_cb),
2969         (posts_view_drag_data_received_cb),
2970         (rb_podcast_source_cmd_download_post),
2971         (rb_podcast_source_cmd_cancel_download),
2972         (rb_podcast_source_cmd_delete_feed),
2973         (rb_podcast_source_cmd_properties_feed),
2974         (rb_podcast_source_cmd_update_feed),
2975         (rb_podcast_source_post_status_cell_data_func),
2976         (rb_podcast_source_post_feed_cell_data_func),
2977         (rb_podcast_source_post_date_cell_data_func),
2978         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2979         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2980         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2981         (impl_get_status):
2982         * sources/rb-podcast-source.h:
2983         * sources/rb-removable-media-source.c:
2984         (rb_removable_media_source_constructor):
2985         * sources/rb-removable-media-source.h:
2986         * sources/rb-source.h:
2987         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2988         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2989         (rb_sourcelist_model_row_is_separator),
2990         (rb_sourcelist_model_drag_data_received),
2991         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2992         (rb_sourcelist_model_row_drop_position),
2993         (rb_sourcelist_model_get_drag_target),
2994         (rb_sourcelist_model_row_draggable),
2995         (rb_sourcelist_model_drag_data_get),
2996         (rb_sourcelist_model_row_inserted_cb),
2997         (rb_sourcelist_model_get_group_path):
2998         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2999         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3000         (rb_sourcelist_visible_source_to_iter),
3001         (rb_sourcelist_edit_source_name),
3002         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3003         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3004         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3005         * sources/rb-static-playlist-source.c:
3006         (rb_static_playlist_source_class_init),
3007         (rb_static_playlist_source_constructor),
3008         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3009         (impl_search), (rb_static_playlist_source_do_query),
3010         (rb_static_playlist_source_browser_changed_cb),
3011         (impl_receive_drag), (impl_save_contents_to_xml),
3012         (rb_static_playlist_source_add_location_swapped),
3013         (search_action_to_prop):
3014         * sources/rb-static-playlist-source.h:
3015         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3016         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3017         (egg_tray_icon_get_orientation_property),
3018         (egg_tray_icon_send_manager_message),
3019         (egg_tray_icon_update_manager_window),
3020         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3021         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3022         * widgets/eggtrayicon.h:
3023         * widgets/rb-cell-renderer-pixbuf.c:
3024         (rb_cell_renderer_pixbuf_get_property),
3025         (rb_cell_renderer_pixbuf_set_property),
3026         (rb_cell_renderer_pixbuf_get_size),
3027         (rb_cell_renderer_pixbuf_render),
3028         (rb_cell_renderer_pixbuf_activate):
3029         * widgets/rb-cell-renderer-rating.c:
3030         (rb_cell_renderer_rating_class_init),
3031         (rb_cell_renderer_rating_get_property),
3032         (rb_cell_renderer_rating_set_property),
3033         (rb_cell_renderer_rating_get_size),
3034         (rb_cell_renderer_rating_render),
3035         (rb_cell_renderer_rating_activate):
3036         * widgets/rb-dialog.c:
3037         * widgets/rb-dialog.h:
3038         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3039         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3040         (rb_druid_page3_finish_cb):
3041         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3042         (rb_entry_view_init), (rb_entry_view_set_property),
3043         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3044         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3045         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3046         (rb_entry_view_set_sorting_order),
3047         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3048         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3049         (rb_entry_view_playing_song_changed),
3050         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3051         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3052         (rb_entry_view_set_fixed_column_width),
3053         (rb_entry_view_get_time_date_column_sample),
3054         (rb_entry_view_state_get_type):
3055         * widgets/rb-entry-view.h:
3056         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3057         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3058         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3059         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3060         (update_browser_property_visibilty),
3061         (rb_library_browser_construct_query), (restore_selection),
3062         (rebuild_child_model), (rb_library_browser_set_selection),
3063         (rb_library_browser_set_model):
3064         * widgets/rb-library-browser.h:
3065         * widgets/rb-property-view.c: (rb_property_view_class_init),
3066         (rb_property_view_set_property), (rb_property_view_reset),
3067         (rb_property_view_get_model), (rb_property_view_constructor),
3068         (rb_property_view_set_selection),
3069         (rb_property_view_selection_changed_cb),
3070         (rb_property_view_button_press_cb),
3071         (rb_property_view_set_search_func):
3072         * widgets/rb-query-creator-private.h:
3073         * widgets/rb-query-creator-properties.c:
3074         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3075         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3076         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3077         (relativeTimeCriteriaCreateWidget),
3078         (relativeTimeCriteriaSetWidgetData):
3079         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3080         (rb_query_creator_dispose), (rb_query_creator_load_query),
3081         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3082         (get_property_index_from_proptype), (select_criteria_from_value),
3083         (create_property_option_menu), (create_criteria_option_menu),
3084         (sort_option_menu_changed), (setup_sort_option_menu):
3085         * widgets/rb-query-creator.h:
3086         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3087         (rb_rating_render_stars):
3088         * widgets/rb-rating-helper.h:
3089         * widgets/rb-rating.c: (rb_rating_expose):
3090         * widgets/rb-rating.h:
3091         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3092         (rb_search_entry_timeout_cb):
3093         * widgets/rb-search-entry.h:
3094         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3095         (rb_song_info_constructor), (rb_song_info_new),
3096         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3097         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3098         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3099         (rb_song_info_query_model_changed_cb),
3100         (rb_song_info_sync_entries_multiple),
3101         (rb_song_info_sync_entry_single):
3102         Strip all trailing whitespace.  Fixes #344293.
3104 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3106         * doc/reference/Makefile.am: Fix GTK Doc Build
3108 2006-07-13  James Livingston  <doclivingston@gmail.com>
3110         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3112         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3113         instead of the LOCATION, and don't try to get the directory listing
3114         for http URI schemes
3116         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3117         invalid utf8 in the error message, since apparently it can happen.
3119 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3121         * sources/rb-import-errors-source.c:
3122         (rb_import_errors_source_class_init),
3123         (rb_import_errors_source_init),
3124         (rb_import_errors_source_constructor),
3125         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3126         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3127         * sources/rb-missing-files-source.c:
3128         (rb_missing_files_source_class_init),
3129         (rb_missing_files_source_init),
3130         (rb_missing_files_source_constructor),
3131         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3132         (rb_missing_files_source_songs_sort_order_changed_cb),
3133         (impl_get_status):
3134         * sources/rb-source.c: (rb_source_class_init),
3135         (rb_source_finalize), (update_visibility_idle),
3136         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3137         (rb_source_set_property), (rb_source_get_property),
3138         (default_get_status), (rb_source_update_play_statistics),
3139         (default_add_to_queue), (_rb_source_show_popup),
3140         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3141         (rb_source_gather_selected_properties),
3142         (_rb_source_register_action_group):
3143         * sources/rb-source.h:
3144         * sources/rb-sourcelist.c: (visibility_notify_cb):
3145         Don't use a fake model for import-errors and missing-files
3146         sources.  Add a new source property "hidden-when-empty".
3147         Update source visibility in an idle.  Clean up some whitespace.
3148         From bug #346800
3150 2006-07-12  James Livingston  <doclivingston@gmail.com>
3152         * bindings/python/rb.defs:
3153         * bindings/python/rb.override: bind rb_error_dialog
3155         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3156         the current working directory for uninstalled plugins, and add the
3157         class name to the method name.
3159 2006-07-12  James Livingston  <doclivingston@gmail.com>
3161         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3162         the sources EOF type if it's NULL. Fixes #346284.
3164 2006-07-12  James Livingston  <doclivingston@gmail.com>
3166         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3167         I accidently committed. Nothing to see here, move along...
3169 2006-07-11  James Livingston  <doclivingston@gmail.com>
3171         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3172         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3173         Unknown.
3175 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3177         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3179 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3181         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3182         Don't try to set mtime if we've deleted the entry.
3184 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3186         * bindings/python/rhythmdb.defs:
3187         * rhythmdb/rhythmdb.c:
3188         * rhythmdb/rhythmdb.h:
3189         * rhythmdb/rhythmdb-private.h:
3190         * rhythmdb/rhythmdb-query.c:
3191         Move data structures holding registered entry types inside the
3192         RhythmDB object, and add a vfunc called when new types are registered.
3193         Add a flag to RhythmDBEntryType specifying whether entries of the type
3194         should be saved to the on-disk database.
3196         * sources/rb-audiocd-source.c:
3197         * sources/rb-daap-source.c:
3198         * sources/rb-ipod-source.c:
3199         * plugins/generic-player/rb-generic-player-source.c:
3200         * plugins/generic-player/rb-nokia770-source.c:
3201         * plugins/generic-player/rb-psp-source.c:
3202         Adjust to the above changes.
3204         * rhythmdb/rhythmdb-tree.c:
3205         If the type for an entry hasn't been registered yet, store the entry's
3206         properties as-is, and convert them to a real entry when the type is
3207         registered.  If the type doesn't get registered, save the entry back
3208         to the database unmodified.  From #330226.
3210 2006-07-10  James Livingston  <doclivingston@gmail.com>
3212         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3213         os.path.unlink to os.unlink, so removing stuff works.
3215 2006-07-10  James Livingston  <doclivingston@gmail.com>
3217         patch by: Ed Catmur  <ed@catmur.co.uk>
3218               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3220         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3221         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3222         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3223         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3224         internals of the cover database and Amazon lookup engine, and add
3225         support for loading art from the local file system. Fixes #345688.
3227         * plugins/rb/Coroutine.py:
3228         * plugins/rb/Makefile.am:
3229         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3230         plugin classes.
3232 2006-07-10  James Livingston  <doclivingston@gmail.com>
3234         * tests/Makefile.am: don't run the benchmark when doing "make check"
3236         * po/POTFILES.in: more build fixes, from Matti Lindell
3237         <feenixx@hotmail.com>. Fixes #347049.
3240 2006-07-10  James Livingston  <doclivingston@gmail.com>
3242         * plugins/cd-recorder/Makefile.am: build fixes
3244         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3245         attempt to change properties if we couldn't create an entry.
3247         * shell/rb-source-header.c: (rb_source_header_init),
3248         (rb_source_header_view_browser_changed_cb),
3249         (rb_source_header_sync_control_state):
3250         * shell/rb-tray-icon.c:
3251         * widgets/Makefile.am:
3252         * widgets/disclosure-widget.c:
3253         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3254         widget, as it hasn't been used for a while.
3256 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3258         * Makefile.am:
3259         * configure.ac:
3260         * data/ui/rhythmbox-ui.xml:
3261         * plugins/Makefile.am:
3262         * plugins/cd-recorder/.cvsignore:
3263         * plugins/cd-recorder/Makefile.am:
3264         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3265         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3266         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3267         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3268         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3269         (playlist_row_inserted_cb), (update_source),
3270         (shell_selected_source_notify_cb), (impl_activate),
3271         (impl_deactivate):
3272         * shell/Makefile.am:
3273         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3274         (rb_playlist_manager_cmd_save_playlist):
3275         * shell/rb-shell.c: (rb_shell_select_source):
3276         * sources/Makefile.am:
3277         * sources/rb-playlist-source-recorder.c:
3278         (rb_playlist_source_recorder_new):
3279         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3280         (rb_playlist_source_add_to_map):
3281         * sources/rb-playlist-source.h:
3282         Move cd burning into a plugin.  Fixes #344300.
3284 2006-07-10  James Livingston  <doclivingston@gmail.com>
3286         * lib/eel-gconf-extensions.c:
3287         * shell/rb-shell.c: remove some ununsed gnomeui includes
3289         * widgets/Makefile.am:
3290         * widgets/rb-song-display-box.c:
3291         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3292         since it isn't acutally used anywhere. Fixes #346926
3294 2006-07-09  James Livingston  <doclivingston@gmail.com>
3296         * bindings/python/rb.defs:
3297         * bindings/python/rb.override:
3298         * lib/rb-debug.c: (rb_debug_real):
3299         * lib/rb-debug.h:
3300         * plugins/rb/__init__.py: don't print out an extra newline when
3301         diverting python print statements to RB's debug log.
3303 2006-07-09  James Livingston  <doclivingston@gmail.com>
3305         * rhythmdb/rhythmdb-property-model.c:
3306         (rhythmdb_property_model_drag_data_get):
3307         * sources/rb-sourcelist-model.c:
3308         (rb_sourcelist_model_row_draggable),
3309         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3310         from the row reference is still valid. Fixes #346709.
3312 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3314         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3316         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3317         If all selected entries have the same rating, use that as the initial
3318         rating for the multiple song info dialog.  Fixes #345970.
3320 2006-07-09  James Livingston  <doclivingston@gmail.com>
3322         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3323         to prevent #343345:
3324                 - don't ever scale to 1x1, just hide the image in that case
3325                 - don't fade when the window is minimised
3326                 - use the last-good allocation width, not the current one - as
3327                   it sometimes get weird values.
3329 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3331         * data/ui/rhythmbox-ui.xml:
3332         * shell/rb-shell.c:
3333         Remove Import audio CD from menu.  Fixes #339732
3335 2006-07-08  James Livingston  <doclivingston@gmail.com>
3337         * metadata/test-metadata.c: (print_metadata_string),
3338         (load_metadata_cb): print out all the metadata we have read, not just
3339         a few.
3341         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3342         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3344 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3346         * plugins/lyrics/lyrics.py:
3347         Change the lyrics cache location to match Quod Libet's,
3348         and fix the '&' -> 'and' substitution to require spaces.
3350 2006-07-08  James Livingston  <doclivingston@gmail.com>
3352         * bindings/python/rb.defs:
3353         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3355         * configure.ac:
3356         * plugins/Makefile.am:
3357         * plugins/rb-python-module.c: (rb_python_module_init_python):
3358         * plugins/rb/Makefile.am: add a place to put common python classes.
3359         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3360         rb module/
3362         * plugins/lyrics/Makefile.am:
3363         * plugins/lyrics/Loader.py:
3364         * plugins/artdisplay/artdisplay/Makefile.am:
3365         * plugins/artdisplay/artdisplay/Loader.py:
3366         * plugins/rb/Loader.py: move the loader class to rb.Loader
3368         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3369         "print ...") to rb_debug. error output (e.g. exceptions) are still
3370         printed on stderr.
3372         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3373         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3374         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3375         instead of Loader.
3377         Fixes #346895.
3379 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3381         * shell/rb-shell-player.xml:
3382         * shell/rb-shell-player.h:
3383         Correct the details of the playing-song-property-changed signal.
3385 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3387         * lib/rb-marshal.list:
3388         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3389         (rb_shell_player_entry_changed_cb):
3390         * shell/rb-shell-player.h:
3391         * shell/rb-shell-player.xml:
3392         Emit a dbus signal when a property is changed on the playing entry.
3393         Fixes #332461.
3395 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3397         * rhythmdb/rhythmdb-private.h:
3398         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3399         Fix build break with gcc 4.1 by changing RBRefString pointers into
3400         gpointers.
3402 2006-07-07  James Livingston  <doclivingston@gmail.com>
3404         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3405         remove an extraneous !, which caused it not to monitor folders in the
3406         library with no tracks in them. Fixes #346759.
3408 2006-07-07  James Livingston  <doclivingston@gmail.com>
3410         * rhythmdb/rhythmdb-private.h:
3411         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3412         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3413         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3414         (rhythmdb_entry_get_string):
3415         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3416         flags for the affected properties. _sync_mirrored will get run
3417         automatically when a dirty property is accessed, which improves
3418         performance a bit (especially during startup) as we don't need to sync
3419         every time they change. From #325215.
3421         * tests/bench-rhythmdb-load.c
3422         * tests/Makefile.am: add a RhythmDB loading benchmark.
3424 2006-07-06  James Livingston  <doclivingston@gmail.com>
3426         * bindings/python/rb.defs:
3427         * bindings/python/rb.override: some more fixes, so that
3428         python classes derived from RBSource work correctly.
3430 2006-07-06  James Livingston  <doclivingston@gmail.com>
3432         * configure.ac: bump pygtk requirements to 2.8, since we're already
3433         using some features of it, and weird things will happen if people are
3434         actually trying to use pygtk 2.6.
3436         * bindings/python/rb.override:
3437         * bindings/python/rhythmdb.defs:
3438         * bindings/python/rhythmdb.override: allow python to set
3439         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3441         * sources/rb-browser-source.c: remove some left over member variables
3443 2006-07-06  James Livingston  <doclivingston@gmail.com>
3445         * rhythmdb/rhythmdb.c:
3446         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3447         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3448         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3449         former is pointless (as rhythmdb already knows which it should use)
3450         and the latter doesn't seem useful at all, and possibly bad. From
3451         #330226.
3453         * bindings/python/rhythmdb.defs:
3454         * bindings/python/rhythmdb.override:
3455         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3456         (handle_song_listing):
3457         * podcast/rb-podcast-manager.c:
3458         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3459         (rb_podcast_manager_insert_feed):
3460         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3461         (rb_audiocd_create_track_entry):
3462         * sources/rb-ipod-source.c: (entry_set_string_prop),
3463         (add_ipod_song_to_db):
3464         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3465         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3467 2006-07-05  James Livingston  <doclivingston@gmail.com>
3469         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3470         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3471         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3472         totem-plparser gives us, or the file name if it doesn't give us
3473         anything. Set the default file name when saving too. Fixes #345261
3475 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3477         patch by: Ed Catmur  <ed@catmur.co.uk>
3479         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3480         Skip all hidden directories, not just trash, and skip unreadable
3481         files.  Fixes #346322.
3483 2006-07-04  James Livingston  <doclivingston@gmail.com>
3485         * plugins/rb-module.h:
3486         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3487         (rb_module_new):
3488         * plugins/rb-plugin.h:
3489         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3490         (rb_plugin_finalise), (rb_plugin_set_property),
3491         (rb_plugin_get_property), (rb_plugin_activate),
3492         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3493         (rb_plugin_find_file):
3494         * plugins/rb-plugins-engine.c: (load_plugin_module):
3495         * plugins/rb-python-module.c: (rb_python_module_new_object),
3496         (rb_python_module_new):
3497         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3498         rb_plugin_find_file method for locating plugin-specific data. Fixes
3499         346473.
3501         * bindings/python/rb.defs:
3502         * plugins/Makefile.am:
3503         * plugins/generic-player/rb-generic-player-plugin.c:
3504         (create_source_cb):
3505         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3507 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3509         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3510         (rb_metadata_can_save), (rb_metadata_save):
3511         Protect the dbus connection with a mutex.
3513 2006-07-03  James Livingston  <doclivingston@gmail.com>
3515         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3516         case of the parser/tagger not being able to be created.
3518 2006-07-03  James Livingston  <doclivingston@gmail.com>
3520         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3522         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3523         window resizable, as it used to be. Fixes #345940.
3525 2006-07-01  James Livingston  <doclivingston@gmail.com>
3527         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3529         * rhythmdb/rhythmdb.h:
3530         * rhythmdb/rhythmdb-private.h:
3531         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3532         (rhythmdb_tree_parser_end_element), (save_entry):
3533         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3534         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3535         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3536         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3537         MusicBrainz track IDs in the database, and bump the on-disk version
3538         number to trigger a metadata reload.
3540         * backends/gstreamer/rb-player-gst.c: (process_tag):
3541         * metadata/rb-metadata-common.c:
3542         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3543         (rb_metadata_gst_field_to_gst_tag):
3544         * metadata/rb-metadata.h: grab MB track IDs and use them.
3546         * plugins/audioscrobbler/rb-audioscrobbler.c:
3547         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3548         (rb_audioscrobbler_timeout_cb),
3549         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3550         the other metadata. Fixes #343491.
3552 2006-06-30  James Livingston  <doclivingston@gmail.com>
3554         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3555         method.
3557 2006-06-30  James Livingston  <doclivingston@gmail.com>
3559         * bindings/python/rb.defs:
3560         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3561         (rb_browser_source_songs_show_popup_cb),
3562         (default_show_entry_popup):
3563         * sources/rb-browser-source.h:
3564         * sources/rb-library-source.c: (rb_library_source_class_init),
3565         (rb_library_source_constructor), (impl_show_popup): allow
3566         RBBrowserSource-derived sources to override the entry context menu
3567         properly - by making it a virtual function, rather than relying on
3568         signal handler order (which doesn't really work).
3570 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3572         * rhythmdb/rhythmdb-query-model.c:
3573         (rhythmdb_query_model_reapply_query_cb):
3574         Use the original query, not the preprocessed query, when redoing
3575         the query to pick up entries that previously didn't match.
3576         Preprocessing the query twice is bad.  Fixes #346186.
3578 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3580         * plugins/audioscrobbler/rb-audioscrobbler.c:
3581         (rb_audioscrobbler_song_changed_cb):
3582         Just check if the elapsed time has been reset, rather
3583         than checking if it's a different track.  Fixes #344827.
3585 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3587         * backends/gstreamer/rb-player-gst.c:
3588         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3589         drive spins up, #344576.
3591 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3593         * plugins/audioscrobbler/rb-audioscrobbler.c:
3594         (rb_audioscrobbler_perform):
3595         Use HTTP/1.1.  Fixes #345895.
3597 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3599         * lib/rb-preferences.h:
3600         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3601         (check_auto_proxy_config), (get_proxy_config):
3602         Don't try to use a HTTP proxy if no proxy host is specified.
3603         Alert the user to the fact that we don't support automatic proxy
3604         configuration as infrequently as possible.  From #345712.
3606 2006-06-25  James Livingston  <doclivingston@gmail.com>
3608         * rhythmdb/rhythmdb-property-model.c:
3609         (rhythmdb_property_model_set_property): connect to the
3610         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3611         things get removed correctly, fixes #338183.
3613 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3615         * rhythmdb/rhythmdb-query-model.c:
3616         (rhythmdb_query_model_drag_data_received):
3617         Fix build break.
3619 2006-06-25  James Livingston  <doclivingston@gmail.com>
3621         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3623         * widgets/rb-search-entry.c: (rb_search_entry_init),
3624         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3625         search box have a pale yellow background when it's in use, except for
3626         when the user has an "accessability" theme. Code based heavily on
3627         Epiphany's. Fixes #344416.
3629 2006-06-25  James Livingston  <doclivingston@gmail.com>
3631         * plugins/lyrics/lyrics.py:
3632         * plugins/pythonconsole/pythonconsole.py:
3633         * plugins/sample-python/sample-python.py: don't import gettext stuff
3634         as _, as the C code does this for us. Fixes i18n for python plugins,
3635         #343081
3637 2006-06-25  James Livingston  <doclivingston@gmail.com>
3639         * rhythmdb/rhythmdb-query-model.c:
3640         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3641         a model use a reorder rather then deleting and re-adding the entry.
3642         This means it does do weird things like stop playback of a track that
3643         is dragged, fixing #337657.
3645 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3647         * metadata/rb-metadata-dbus-service.c:
3648         Add missing #include <glib/gi18n.h> from previous commit.
3650 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3652         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3654         * metadata/rb-metadata-dbus-service.c: (main):
3655         Initialize gettext in the metadata helper.
3656         * metadata/rb-metadata-gst.c:
3657         Make some strings translatable.  Fixes #345286.
3659 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3661         * configure.ac:
3662         * lib/Makefile.am:
3663         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3664         Inline the custom icons so they can always be loaded, but are still
3665         themable.  Fixes #345796.
3667 2006-06-23  James Livingston  <doclivingston@gmail.com>
3669         * sources/rb-auto-playlist-source.c:
3670         (rb_auto_playlist_source_do_query): stop the search box being applied
3671         for limits in auto playlists. Fixes #345307.
3673 2006-06-23  James Livingston  <doclivingston@gmail.com>
3675         * shell/rb-shell-clipboard.c:
3676         (rb_shell_clipboard_set_source_internal),
3677         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3678         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3679         non-library tracks, as we don't supprot it yet. From #345248.
3681 2006-06-23  James Livingston  <doclivingston@gmail.com>
3683         patch by: Brian Cameron  <brian.cameron@sun.com>
3685         * plugins/generic-player/rb-generic-player-plugin.c:
3686         * plugins/generic-player/rb-generic-player-source.c:
3687         * plugins/generic-player/rb-nokia770-source.c:
3688         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3689         Fixes 345673.
3691 2006-06-22  James Livingston  <doclivingston@gmail.com>
3693         * backends/rb-player.c: (rb_player_interface_init):
3694         * lib/rb-marshal.list:
3695         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3696         * rhythmdb/rhythmdb-query-model.c:
3697         (rhythmdb_query_model_class_init):
3698         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3699         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3700         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3701         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3702         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3703         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3704         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3705         possible not.
3707 2006-06-20  James Livingston  <doclivingston@gmail.com>
3709         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3711         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3712         metadata to clients. Fixes #345276.
3714 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3716         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3717         (rb_add_id3_tagger):
3718         Fix plugin/element version detection for id3v2mux.
3720 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3722         * sources/rb-source.c: (rb_source_finalize),
3723         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3724         (_autohide_update_visibility),
3725         (_rb_autohide_source_post_entry_deleted_cb),
3726         (_rb_autohide_source_row_inserted_cb),
3727         (_rb_source_hide_when_empty):
3728         Use post-entry-delete signal to update status and autohide sources.
3730 2006-06-20  James Livingston  <doclivingston@gmail.com>
3732         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3733         "selection changed" idle callback, if present.
3735 2006-06-19  James Livingston  <doclivingston@gmail.com>
3737         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3739         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3740         don't try to translate the empty string. Fixes #345285.
3742 2006-06-19  James Livingston  <doclivingston@gmail.com>
3744         * bindings/python/rhythmdb.override: more python binding fixes
3746 2006-06-19  James Livingston  <doclivingston@gmail.com>
3748         * lib/rb-util.c: (rb_copy_function):
3749         * lib/rb-util.h: add a function that returns the same pointer it was
3750         passed.
3752         * rhythmdb/rhythmdb.h:
3753         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3754         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3755         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3756         and RhythmDBEntryType into boxed types. This allows them to be used
3757         from python. Note that entry-types aren't actually reference counted
3758         (yet).
3760         * bindings/python/rb.defs:
3761         * bindings/python/rhythmdb.defs:
3762         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3763         return types of some bindings.
3765         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3766         (process_added_entries_cb), (rhythmdb_entry_finalize),
3767         (rhythmdb_entry_delete):
3768         * daapsharing/rb-daap-connection.c:
3769         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3770         (rb_daap_connection_get_property):
3771         * plugins/generic-player/rb-generic-player-source.c:
3772         (rb_generic_player_source_load_songs), (load_playlist_file):
3773         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3774         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3775         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3776         (idle_process_update), (rhythmdb_query_model_add_entry),
3777         (rhythmdb_query_model_insert_into_main_list),
3778         (rhythmdb_query_model_insert_into_limited_list),
3779         (rhythmdb_query_model_remove_from_main_list),
3780         (rhythmdb_query_model_remove_from_limited_list),
3781         (rhythmdb_query_model_drag_data_received),
3782         (rhythmdb_query_model_add_results),
3783         (rhythmdb_query_model_get_column_type),
3784         (rhythmdb_query_model_get_value):
3785         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3786         (rhythmdb_tree_entry_delete), (remove_one_song):
3787         * shell/rb-play-order-linear-loop.c:
3788         (rb_linear_play_order_loop_get_next),
3789         (rb_linear_play_order_loop_get_previous):
3790         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3791         (rb_linear_play_order_get_previous):
3792         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3793         (rb_queue_play_order_get_previous):
3794         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3795         (rb_random_filter_history), (rb_random_play_order_get_next),
3796         (rb_random_play_order_go_next), (rb_random_db_changed),
3797         (rb_random_playing_entry_changed):
3798         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3799         (remove_from_history), (add_randomly_to_history),
3800         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3801         * shell/rb-play-order.c: (rb_play_order_class_init),
3802         (rb_play_order_set_property), (rb_play_order_get_property),
3803         (rb_play_order_update_have_next_previous):
3804         * shell/rb-play-order.h:
3805         * shell/rb-shell-clipboard.c:
3806         (rb_shell_clipboard_process_deletions),
3807         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3808         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3809         * sources/rb-auto-playlist-source.c:
3810         (rb_auto_playlist_source_constructor):
3811         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3812         (rb_browser_source_set_property), (rb_browser_source_get_property),
3813         (rb_browser_source_do_query):
3814         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3815         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3816         * sources/rb-ipod-source.c: (add_rb_playlist),
3817         (add_ipod_song_to_db), (impl_paste):
3818         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3819         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3820         * sources/rb-library-source.c: (layout_example_label_update):
3821         * sources/rb-missing-files-source.c:
3822         (rb_missing_files_source_class_init),
3823         (rb_missing_files_source_set_property),
3824         (rb_missing_files_source_get_property),
3825         (rb_missing_files_source_new):
3826         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3827         (rb_playlist_source_set_property),
3828         (rb_playlist_source_get_property):
3829         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3830         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3831         (construct_query_from_selection):
3832         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3833         * sources/rb-static-playlist-source.c:
3834         (rb_static_playlist_source_constructor),
3835         (rb_static_playlist_source_add_location_internal):
3836         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3837         * widgets/rb-header.c: (rb_header_class_init),
3838         (rb_header_set_property), (rb_header_get_property):
3839         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3840         (rb_library_browser_set_property),
3841         (rb_library_browser_get_property):
3842         * widgets/rb-song-info.c: (rb_song_info_class_init),
3843         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3844         change, do s/pointer/boxed/ in many places and free entry-types
3845         properly.
3847 2006-06-18  James Livingston  <doclivingston@gmail.com>
3849         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3850         unushed GThreadPool non-exclusive threads every now and then.
3852         * rhythmdb/rhythmdb-private.h:
3853         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3854         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3855         threads. Fixes #341593
3857 2006-06-19  James Livingston  <doclivingston@gmail.com>
3859         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3860         the "Track number" checkbox actually work for playlists. From #329986.
3862 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3864         * plugins/generic-player/rb-generic-player-source.c:
3865         Get playlist and audio folder information from HAL.  Fixes #333845.
3867 2006-06-18  James Livingston  <doclivingston@gmail.com>
3869         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3871         * widgets/rb-entry-view.h:
3872         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3873         (rb_entry_view_append_column_custom),
3874         (rb_entry_view_insert_column_custom): add support for inserting custom
3875         columns at arbitrary locations, rather than just appending to the end.
3877         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3878         the playlists "track number" column go at the start, and add a normal
3879         track number column. Fixes #329986.
3881 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3883         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3884         a mnemonic conflict.  Add ellipses to the edit button.
3885         * sources/rb-library-source.c:
3886         (rb_library_source_edit_profile_clicked_cb),
3887         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3888         mnemonic widget to the labels. Fixes #344114.
3890 2006-06-18  James Livingston  <doclivingston@gmail.com>
3892         * configure.ac: bump version
3893         * NEWS: add NEWS for 0.9.5
3895 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3897         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3898         (rb_uri_handle_recursively):
3899         Don't attempt to recurse into directories we can't open.  
3900         Fixes #341485.
3902 2006-06-18  James Livingston  <doclivingston@gmail.com>
3904         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3906         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3907         #344610.
3909 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3911         * bindings/python/rb.defs:
3912         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3913         * shell/rb-shell-player.h:
3914         * shell/rb-shell.c: (rb_shell_play_entry):
3915         Add source parameter to rb_shell_player_play_entry, using the selected
3916         source if not specified.
3918         * shell/rb-play-order.c: (rb_play_order_class_init),
3919         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3920         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3921         (default_playing_entry_removed):
3922         * shell/rb-play-order.h:
3923         Move entry removal handling back to the row-deleted signal, as we need
3924         the entry to be present in the model.  When changing to the next entry
3925         after the playing entry is deleted, set the new entry as the playing
3926         entry and then sync it to the player in an idle handler, so we don't
3927         end up playing it if it was removed too.
3928         * shell/rb-play-order-queue.c:
3929         (rb_queue_play_order_playing_entry_changed),
3930         (rb_queue_play_order_playing_entry_removed):
3931         Use the playing-entry-removed handler from the play order class,
3932         setting a flag so we don't try to remove the already-removed entry
3933         from the model.
3935         This makes removal of the playing entry from playlists etc. work more
3936         or less correctly for all play orders.  Fixes #344627.
3938 2006-06-17  James Livingston  <doclivingston@gmail.com>
3940         patch by: Elijah Newren  <newren@gmail.com>
3942         * tests/test-rhythmdb.c: fix the build with older versions of check
3943         (again). Fixes #343718.
3945 2006-06-17  James Livingston  <doclivingston@gmail.com>
3947         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3948         name for capsfilter's "caps" property. Fixes #344968.
3950 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3952         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3953         Don't leak the selected entry list when finding an entry to play.
3955 2006-06-17  James Livingston  <doclivingston@gmail.com>
3957         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3958         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3959         as a O(1) one works fine, and it will get called often when the user
3960         deleted multiple tracks. Part of #344922.
3962 2006-06-17  James Livingston  <doclivingston@gmail.com>
3964         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3965         rb_shell_player_stop and rb_shell_player_playpause not mutually
3966         recursive. Fixed #336912.
3968 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3970         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3971         Treat nested elements inside properties as unknown.  Fixes parsing of
3972         podcast feeds with unescaped HTML in description tags, bug #344532.
3974 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3976         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3977         when quitting.  Fixes #344875.
3979 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3981         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3982         Move the playing-entry-removed handling to after the normal entry
3983         delete handling, since we're called after the entry has been removed
3984         from the query model now.  Fixes crashes described in #344627.
3986 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3988         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3989         (rb_rating_get_rating_from_widget):
3990         * widgets/rb-rating.c: (rb_rating_class_init),
3991         (rb_rating_finalize), (rb_rating_get_property),
3992         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3993         (rb_rating_button_press_cb):
3994         Don't crash when ratings icons can't be found.  Fixes #344533.
3996 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3998         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4000 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4002         * Makefile.am:
4003         * configure.ac:
4004         * remote/Makefile.am:
4005         * remote/dbus/Makefile.am:
4006         * remote/dbus/rb-client.c:
4007         * shell/Makefile.am:
4008         New dbus client program providing --play/--next etc. arguments.
4009         Fixes #340863, #155763.
4011 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4013         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4014         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4016 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4018         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4020         * rhythmdb/rhythmdb-query-model.c:
4021         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4022         to Library incorrectly
4024 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4026         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4027         Return input string untouched if gnome_vfs_uri_new returns NULL.
4028         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4029         (rb_static_playlist_source_add_list_uri):
4030         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4031         URIs don't break it.  Fixes #339033.
4033 2006-06-08  James Livingston  <doclivingston@gmail.com>
4035         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4036         for sources on the edge (i.e. the queue). Fixes #328409.
4038         * sources/rb-ipod-source.c: fix typo
4040 2006-06-08  James Livingston  <doclivingston@gmail.com>
4042         * configure.ac:
4043         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4044         --enable-ipod-writing to enable the ipod syncing code.
4046 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4048         * sources/rb-library-source.c: (layout_example_label_update):
4049         add missing comma so we don't generate broken markup.
4051 2006-06-08  James Livingston  <doclivingston@gmail.com>
4053         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4054         tag-merging with id3v2mux as well as id3mux. From #342330.
4056 2006-06-07  James Livingston  <doclivingston@gmail.com>
4058         * tests/test-rhythmdb.c: #define fail_if for old version of check
4059         which don't have it. Hopefully fixes #343718.
4061 2006-06-07  James Livingston  <doclivingston@gmail.com>
4063         * shell/rb-playlist-manager.c:
4064         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4065         g_value_array_free with NULL. Fixes #341053.
4067 2006-06-07  James Livingston  <doclivingston@gmail.com>
4069         * shell/rb-playlist-manager.c:
4070         (rb_playlist_manager_playlist_entries_changed),
4071         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4072         instead of "row-removed", which fixes updating "burn playlist"
4073         sensitivity. Fixes #331119.
4075 2006-06-07  James Livingston  <doclivingston@gmail.com>
4077         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4078         rather than restarting if the source uses _RETRY and there is an
4079         actual error (like an undecodable stream) rather than it just dropping
4080         out and causing EOS.
4082 2006-06-07  James Livingston  <doclivingston@gmail.com>
4084         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4085         free the pixbufs if they couldn't be loaded. Fixed #343852.
4087 2006-06-07  James Livingston  <doclivingston@gmail.com>
4089         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4090         the close button on the dialog work. Fixes #335346.
4092 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4094         * sources/rb-sourcelist-model.c: (path_is_droppable),
4095         (path_is_reorderable):
4096         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4097         (row_activated_cb), (emit_show_popup), (key_release_cb),
4098         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4099         Ignore group marker rows in the source list.  Fixes #344089, a couple
4100         of other crashers, and some weird UI glitches too.
4102 2006-06-07  James Livingston  <doclivingston@gmail.com>
4104         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4105         the seeking query fails. This is needed because many gst elements
4106         don't implement the seeking query yet. Should fix 329977.
4108 2006-06-06  James Livingston  <doclivingston@gmail.com>
4110         * configure.ac: bump version for a prerelease, turn on track transfer
4111         by default.
4113         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4114         ipod transfer stuff, since it has big issues and we'll hopefully land
4115         real support (bug 310774) after 0.9.5
4117 2006-06-06  James Livingston  <doclivingston@gmail.com>
4119         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4120         id3v2mux once we've detected it.
4122 2006-06-06  James Livingston  <doclivingston@gmail.com>
4124         * lib/Makefile.am:
4125         * tests/test-rhythmdb.c: undo accidental commit which caused
4126         rb-thread.c to be built (which it isn't normally)
4128 2006-06-06  James Livingston  <doclivingston@gmail.com>
4130         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4131         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4132         fail_{if/unless} calls, as some versions of check need them (they are
4133         optional in others). Should fix bug 343718.
4135 2006-06-06  James Livingston  <doclivingston@gmail.com>
4137         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4138         343836.
4139         
4140         * lib/Makefile.am:
4141         * lib/rb-thread.c: (process_actions):
4142         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4143         tests that don't pass.
4145 2006-06-05  James Livingston  <doclivingston@gmail.com>
4147         * data/glade/Makefile.am:
4148         * data/glade/load-failure.glade:
4149         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4150         dialog.
4152 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4154         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4155         checked in.
4157 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4159         * bindings/python/rb.defs:
4160         * sources/rb-source.h:
4161         * sources/rb-source.c: (rb_source_class_init),
4162         (rb_source_set_property), (rb_source_get_property),
4163         (rb_sourcelist_group_get_type):
4164         Add 'sourcelist-group' property on the RBSource class, describing how
4165         sources should be grouped in the source list.
4167         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4168         (rb_sourcelist_model_new), (real_row_is_separator),
4169         (rb_sourcelist_model_is_row_visible),
4170         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4171         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4172         (rb_sourcelist_model_row_draggable),
4173         (rb_sourcelist_model_row_inserted_cb),
4174         (rb_sourcelist_model_row_deleted_cb),
4175         (rb_sourcelist_model_get_group_path):
4176         * sources/rb-sourcelist-model.h:
4177         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4178         (rb_sourcelist_append):
4179         Add group marker rows for each sourcelist group, and use these to
4180         insert sources in the right place.  Sort transient sources (DAAP
4181         shares) by name.  Show the group marker rows as separators when the
4182         next visible row is a source.  Make persistant sources (playlists) and
4183         removable sources reorderable using drag and drop, restricting them
4184         within the source groups.
4185         
4186         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4187         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4188         * sources/rb-daap-source.c: (rb_daap_source_new):
4189         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4190         * sources/rb-static-playlist-source.c:
4191         (rb_static_playlist_source_new):
4192         * plugins/generic-player/rb-generic-player-source.c:
4193         (rb_generic_player_source_new):
4194         * plugins/generic-player/rb-nokia770-source.c:
4195         (rb_nokia770_source_new):
4196         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4197         Add source list group information to existing source classes.
4199         Fixes #318754 and #336492.
4201 2006-06-04  James Livingston  <doclivingston@gmail.com>
4203         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4204         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4205         win32 build fixes.
4207 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4209         * rhythmdb/rhythmdb-query-model.c:
4210         (rhythmdb_query_model_class_init),
4211         (rhythmdb_query_model_remove_from_main_list):
4212         * rhythmdb/rhythmdb-query-model.h:
4213         Add a new 'post-entry-delete' signal, emitted when the entry has been
4214         removed from the model's data structures.
4216         * shell/rb-play-order.c: (rb_play_order_finalize),
4217         (rb_play_order_query_model_changed),
4218         (rb_play_order_post_entry_delete_cb):
4219         Use the new signal to update the play order, so the queue play order
4220         doesn't try to scroll to entries that don't exist in a way that causes
4221         the tree view to crash.  Fixes #340216.
4223 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4225         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4226         Fix rb_debug call I missed previously.
4228 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4230         * metadata/rb-metadata-gst.c:
4231         Don't use NULL as the error message for ignored files, as it crashes
4232         with some C libraries.  Fixes #343713.
4234 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4236         * widgets/rb-dialog.c: (rb_error_dialog):
4237         * widgets/rb-dialog.h:
4238         Mark rb_error_dialog as taking printf-like arguments, and use a format
4239         string for the primary message rather than passing in the message
4240         directly.
4242         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4243         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4244         (info_available_cb):
4245         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4246         * shell/rb-removable-media-manager.c:
4247         (rb_removable_media_manager_eject_medium_cb):
4248         Make sure all calls to rb_error_dialog use string constants for the
4249         format string rather than passing the error message directly.  Remove
4250         an extra %s from the message used when playback fails.  Fixes #343562.
4252         * lib/rb-debug.h:
4253         * sources/rb-audiocd-source.c:
4254         * plugins/audioscrobbler/rb-audioscrobbler.c:
4255         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4256         Mark rb_debug as taking printf-like arguments and fix a few resulting
4257         warnings.
4259 2006-06-02  James Livingston  <doclivingston@gmail.com>
4261         * configure.ac:
4262         + macros/check.m4: add support for using check for unit tests, the .m4
4263         files is so autogen can run without check being installed
4265         * tests/Makefile.am:
4266         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4267         some of the old tests, and add some new ones. Currently
4268         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4269         yet (the query doesn't return any entries).
4271         - tests/deserialization-test1.xml:
4272         - tests/deserialization-test2.xml:
4273         - tests/deserialization-test3.xml:
4274         - tests/test-rhythmdb-indexing.c:
4275         - tests/test-rhythmdb-simple.c:
4276         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4277         have been ported
4279         - tests/test-cd.c:
4280         - tests/test-cmdline.c: remove obsolete tests
4282 2006-06-02  James Livingston  <doclivingston@gmail.com>
4284         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4285         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4286         id3v2mux, and check whether we are using a version of id3mux that has
4287         the correct merge-mode behaviour.
4289         * plugins/sample-python/Makefile.am: fix distcheck.
4291         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4292         the changed-files source was added before trying to remove it.
4294         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4295         *old* bug which would crash if a query with top-level disjunctions
4296         tried to check later disjunctive parts. Hooray for unit-testing.
4298 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4300         * player/rb-recorder-gst.c (rb_recorder_set_device):
4301         Check for a null drive.
4303 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4305         * lib/Makefile.am:
4306         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4307         Register the app icon as a builtin if the icon theme can't find it.
4309 2006-05-31  James Livingston  <doclivingston@gmail.com>
4311         * player/rb-recorder-gst.c: add missing include.
4313 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4315         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4316         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4317         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4318         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4319         (rb_recorder_set_device), (rb_recorder_get_default_device):
4320         * shell/main.c: (main):
4321         * shell/rb-removable-media-manager.c:
4322         (rb_removable_media_manager_finalize),
4323         (get_nautilus_burn_drive_for_path),
4324         (rb_removable_media_manager_playing_uri_changed_cb),
4325         (rb_removable_media_manager_load_media),
4326         (nautilus_burn_drive_get_device),
4327         (rb_removable_media_manager_scan):
4328         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4330         Update for libnautilus-burn 2.15.3 API changes.
4331         Fixes #342604
4333 2006-05-30  James Livingston  <doclivingston@gmail.com>
4335         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4336         "return" to that it asks for the password again if it was wrong.
4338 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4340         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4341         typefind element.
4343 2006-05-30  James Livingston  <doclivingston@gmail.com>
4345         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4346         (download_progress_cb): don't do wonky things if the transfer
4347         "suceeds" without transferring any data.
4349 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4351         * sources/rb-library-source.c: (layout_example_label_update),
4352         (build_filename):  Fix crash when no audio profile is selected.
4353         Fixes #341447.
4355 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4357         * shell/rb-shell.c: (rb_shell_clear_queue):
4358         * shell/rb-shell.h:
4359         * shell/rb-shell.xml:
4360         * sources/rb-play-queue-source.c:
4361         (rb_play_queue_source_clear_queue),
4362         (rb_play_queue_source_cmd_clear):
4363         * sources/rb-play-queue-source.h:
4364         Add clearQueue dbus method.
4366 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4368         * shell/main.c: (main):  Implement --quit option.
4370 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4372         * rhythmdb/rhythmdb-private.h:
4373         * rhythmdb/rhythmdb-tree.h:
4374         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4375         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4376         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4377         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4378         (rhythmdb_entry_get_boolean):
4379         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4380         bitmask, giving the db backend anything past the first 16 bits for 
4381         its own private use.
4383         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4384         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4385         Add a 'loading' flag to indicate that an entry is being loaded from
4386         disk, and use that to ignore entry_set operations on such entries
4387         rather than the 'inserted' flag, which doesn't quite mean the same
4388         thing.  Fixes #342694.
4390 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4392         * shell/rb-shell.xml: Remove visibility property, since it causes
4393         crashes (dbus bug 7057) and doesn't do much else.
4395 2006-05-28  James Livingston  <doclivingston@gmail.com>
4397         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4399         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4400         * po/POTFILES.in: fix some more i18n issues.
4402 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4404         * bindings/python/rb.defs:
4405         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4406         (filter_mmkeys):
4407         * shell/rb-shell-player.h:
4408         Deprecate the useless 'ignore_stop' parameter to
4409         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4410         API.  From bug #334829.
4412 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4414         * plugins/generic-player/rb-generic-player-source.c:
4415         (visit_playlist_dirs), (default_transform_playlist_uri):
4416         When playlist parsing fails, unref the playlist, not the parent
4417         source.  Fix memory leak in playlist uri transform.
4418         * plugins/generic-player/rb-nokia770-source.c:
4419         (impl_transform_playlist_uri):
4420         Fix memory leak in playlist uri transform.
4422 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4424         * doc/reference/Makefile.am: fix grk-doc build
4426 2006-05-27  James Livingston  <doclivingston@gmail.com>
4428         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4430         * plugins/lyrics/lyrics.py:
4431         * po/POTFILES.in: Make strings in plugins translatable. From bug
4432         343081.
4434 2006-05-27  James Livingston  <doclivingston@gmail.com>
4436         * backends/Makefile.am:
4437         * backends/gstreamer/Makefile.am:
4438         * lib/Makefile.am:
4439         * plugins/audioscrobbler/Makefile.am:
4440         * plugins/generic-player/Makefile.am:
4441         * po/POTFILES.in:
4442         * rhythmdb/rhythmdb-monitor.c:
4443         * rhythmdb/rhythmdb.c:
4444         * sources/Makefile.am:
4445         * widgets/Makefile.am: fix compilation after some CVS surgery was
4446         done.
4448 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4450         * bindings/python/rhythmdb.defs:
4451         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4452         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4453         (rhythmdb_query_deserialize):
4454         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4455         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4456         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4457         (rhythmdb_entry_register_type_alias),
4458         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4459         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4460         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4461         (rhythmdb_entry_podcast_feed_get_type),
4462         (rhythmdb_entry_import_error_get_type),
4463         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4464         * rhythmdb/rhythmdb.h:
4465         Allocate a specified amount of extra memory for each db entry, to be
4466         used to store fields specific to the entry type.  Optionally associate
4467         a name with each entry type, to be used when saving entries and
4468         auto playlists to disk.  Allow entry types to have multiple names
4469         to handle older playlist files that used '0' to represent 'song'.
4470         Use private data to store podcast fields.
4472         * rhythmdb/rhythmdb-private.h:
4473         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4474         (rhythmdb_tree_parser_end_element), (save_entry),
4475         (rhythmdb_tree_entry_set):
4476         Simplify property handling by using existing code to convert
4477         properties from strings to GValues and to set properties on entries.
4478         Other assorted changes due to the above.
4480         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4481         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4482         * sources/rb-generic-player-source.c:
4483         (rb_generic_player_source_new):
4484         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4485         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4486         * sources/rb-psp-source.c: (rb_psp_source_new):
4487         Update for changes to rhythmdb_entry_register_type.  None of these
4488         entry types need names or use private data.
4490         Fixes #337429.
4492 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4494         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4495         Fix creation of ignored-file db entries - need to check for
4496         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4498 2006-05-25  James Livingston  <doclivingston@gmail.com>
4500         * AUTHORS:
4501         * MAINTAINERS: update my email address
4503 2006-05-25  James Livingston  <doclivingston@gmail.com>
4505         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4506         "(... mix)" when searching for lyrics. Cache the lyrics under
4507         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4509 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4511         * sources/rb-import-errors-source.c:
4512         (rb_import_errors_source_class_init):
4513         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4514         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4515         * sources/rb-source.c: (rb_source_class_init),
4516         (default_move_to_trash):
4517         Implement the basic move-to-trash operation once in rb-source.c, 
4518         rather than in each source type that supports it.
4520         * plugins/ipod/rb-ipod-plugin.c:
4521         * shell/rb-removable-media-manager.c:
4522         * shell/rb-shell.c: (rb_shell_constructor):
4523         Only scan removable media once after loading plugins.  Add a flag
4524         plugins can use to check if the initial scan has been done.
4526         * data/rhythmbox.schemas:
4527         Enable ipod and generic-player plugins by default.
4528         
4529         * configure.ac:
4530         * data/ui/Makefile.am:
4531         * data/ui/generic-player-ui.xml:
4532         * data/ui/rhythmbox-ui.xml:
4533         * plugins/Makefile.am:
4534         * plugins/generic-player/Makefile.am:
4535         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4536         * plugins/generic-player/rb-generic-player-plugin.c:
4537         * sources/Makefile.am:
4538         * sources/rb-generic-player-source.c:
4539         * sources/rb-generic-player-source.h:
4540         * sources/rb-nokia770-source.c:
4541         * sources/rb-nokia770-source.h:
4542         * sources/rb-psp-source.c: (visit_playlist_dirs):
4543         * sources/rb-psp-source.h:
4544         Pluginise generic player (and nokia770 and PSP) support and add
4545         move-to-trash for players not mounted read-only.
4546         Fixes #342868.
4548 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4550         * daapsharing/rb-daap-connection.c (handle_song_listing):
4551         Lower bound check for batch commit.  Fixes #342848
4553         * sources/rb-daap-source.c (rb_daap_source_get_status):
4554         Always set output variables if provided.
4556 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4558         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4559         (rhythmdb_tree_entry_delete), (remove_one_song):
4560         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4561         Fix two db entry reference counting problems.
4562         The initial reference on the entry is held by the db backend, but it
4563         was never being dropped.  The reference count was incremented when
4564         adding an entry to the deleted_entries map and to the
4565         deleted_entries_to_emit list, but only decremented for one of those.
4567 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4569         * daapsharing/rb-daap-connection.c (http_response_handler) 
4570         (rb_daap_connection_dispose):
4571         Call soup_session_abort to make sure there are no outstanding
4572         requests when we dispose of the connection.  Ignore cancelled
4573         messages in the callback.
4575 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4577         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4578         (rb_daap_source_disconnect): Set a flag when disconnecting
4579         the source.  Check this flag in connection callback
4580         to see if we should release the connection.
4582 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4584         * daapsharing/Makefile.am:
4585         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4586         (rb_daap_connection_class_init), (connection_connected),
4587         (connection_disconnected), (connection_operation_done),
4588         (build_message), (connection_set_error_message),
4589         (actual_http_response_handler), (http_get),
4590         (entry_set_string_prop), (emit_progress_idle),
4591         (handle_server_info), (handle_login), (handle_update),
4592         (handle_database_info), (handle_song_listing), (handle_playlists),
4593         (handle_playlist_entries), (handle_logout),
4594         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4595         (connection_response_data_free), (connected_cb),
4596         (rb_daap_connection_connect), (disconnected_cb),
4597         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4598         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4599         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4600         (rb_daap_connection_get_property):
4601         * daapsharing/rb-daap-connection.h:
4602         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4603         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4604         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4605         (rb_daap_hash_generate):
4606         * daapsharing/rb-daap-hash.h:
4607         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4608         (rb_daap_get_icon), (remove_source), (stop_browsing),
4609         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4610         (connection_connecting_cb), (connection_disconnected_cb),
4611         (release_connection), (rb_daap_source_connection_cb),
4612         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4613         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4615         Adds a better async API for connect and disconnect.  Doesn't share
4616         callback data for every async call.  Adds a connect signal.  Uses
4617         an operation-done signal to trigger the callbacks.  Displays an
4618         error when connections fail.  A few refcounting fixes to fix
4619         crashes.  Uses a weak pointer to set the connection to NULL so we
4620         don't clobber references.  Wait for each disconnect when shutting
4621         down sources.  Split out DAAP hash stuff into its own file.  Fix
4622         typo in header.
4624         Fixes #342643
4625         
4626 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4628         * sources/rb-auto-playlist-source.c:
4629         (rb_auto_playlist_source_new_from_xml):
4630         Initialize the gvalue used to hold the size limit correctly.
4631         Fixes #342744.
4633 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4635         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4636         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4637         * shell/rb-shell.h:
4638         * shell/rb-shell.xml:
4639         Convert rb_shell_quit into a dbus method, and add visibility dbus
4640         property.
4642 2006-05-22  James Livingston  <doclivingston@gmail.com>
4644         * rhythmdb/rhythmdb.h:
4645         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4646         (rhythmdb_entry_is_editable), (action_thread_main),
4647         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4648         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4649         false, and syncing into the file.
4651         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4652         (rhythmdb_entry_iradio_get_type),
4653         (rhythmdb_entry_import_error_get_type):
4654         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4655         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4656         change the DB.
4658 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4660         * rhythmdb/Makefile.am:
4661         * rhythmdb/rhythmdb-monitor.c:
4662         * rhythmdb/rhythmdb-private.h:
4663         * rhythmdb/rhythmdb-query.c:
4664         * rhythmdb/rhythmdb.c:
4665         Split up rhythmdb.c a bit.
4667 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4669         * data/glade/audioscrobbler-prefs.glade:
4670         Add a link to the last.fm server status page.
4672 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4674         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4675         Capitalization fix.
4676         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4677         (impl_create_configure_dialog):  UI layout fixes, remove
4678         dialog separator, and capitalization fix for window title.
4679         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4680         and remove dialog separator.
4681         * data/glade/plugins.glade:  UI layout fixes.
4682         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4683         and capitalization fix.  Fixes #342438.
4685 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4687         * data/glade/podcast-properties.glade:  Fix layout of the download 
4688         location.  Fixes #342431.
4690 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4692         * data/ui/rhythmbox-ui.xml:
4693         We only need one copy of the 'add to queue' action in the edit menu.
4695 2006-05-20  James Livingston  <doclivingston@gmail.com>
4697         * data/ui/rhythmbox-ui.xml:
4698         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4699         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4700         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4701         (rb_shell_clipboard_sync),
4702         (rb_shell_clipboard_cmd_add_to_playlist_new),
4703         (rb_shell_clipboard_cmd_queue_song_info),
4704         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4705         (rb_shell_clipboard_playlist_deleted_cb),
4706         (rb_shell_clipboard_playlist_renamed_cb),
4707         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4708         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4709         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4710         dynamically generated with all the static playlists. Fixes bug 323364.
4712         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4713         right child, so it doesn't go weird when art appears and disappears.
4715 2006-05-20  James Livingston  <doclivingston@gmail.com>
4717         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4719         * rhythmdb/rhythmdb-query-model.c:
4720         (rhythmdb_query_model_set_property),
4721         (rhythmdb_query_model_finalize),
4722         (rhythmdb_query_model_reapply_query_cb):
4723         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4724         (rhythmdb_query_append_prop_multiple),
4725         (rhythmdb_query_is_time_relative):
4726         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4727         time-based criteria, fixes bug 341131.
4729 2006-05-20  James Livingston  <doclivingston@gmail.com>
4731         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4732         we have already changed playing entries. Interpolate the art size so
4733         it doesn't jump when the old and new images have different aspect
4734         ratios.
4736 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4738         * rhythmdb/rhythmdb-private.h:
4739         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4740         (save_entry):
4741         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4742         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4743         (rhythmdb_entry_get_ulong):
4744         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4745         and elsewhere, use them on the stack rather than allocating on 
4746         the heap.  From bug #342333.
4748 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4750         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4751         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4752         (add_track), (eos_cb), (error_signal_idle),
4753         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4754         (rb_recorder_construct), (recorder_track_free),
4755         (rb_recorder_finalize):
4756         * sources/rb-playlist-source-recorder.c:
4757         Support libnautilus-burn size -> capacity API change.  Add
4758         some braces to blocks.
4760 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4762         * metadata/sj-metadata-musicbrainz.c:
4763         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4764         Sync with sound-juicer in CVS.  Fixes #342177
4765         * sources/rb-audiocd-source.c: Don't declare variables
4766         in the middle of a block (c99ism).  Fix order of #includes.
4767         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4768         one variable per line.  Update copyright date.
4770 2006-05-19  James Livingston  <doclivingston@gmail.com>
4772         patch by: Hendrik Richter  <hendi@gnome-de.org>
4774         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4775         "translator_credits" to a hyphen, so it doesn't cause problems for
4776         tools that check access keys. Fixes bug 341832.
4778 2006-05-19  James Livingston  <doclivingston@gmail.com>
4780         * po/POTFILES.in: remove references to files that don't exist any more
4781         (fixes make distcheck).
4783 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4785         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4786         Song Lyrics dialog. Fixes bug 342322.
4788 2006-05-19  James Livingston  <doclivingston@gmail.com>
4790         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4792         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4793         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4794         version checks not break when libnotify goes to 1.0.0. Fixes bug
4795         342244.
4797 2006-05-18  James Livingston  <doclivingston@gmail.com>
4799         * shell/rb-shell-clipboard.c:
4800         * shell/rb-shell.c:
4801         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4803 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4805         * sources/rb-playlist-source-recorder.c (get_song_description):
4806         Reverse artist and title in song description.  This
4807         is useful because at least the title will be visible
4808         when there is limited space.
4810 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4812         * daapsharing/rb-daap-connection.c: (connection_get_password):
4813         Take gdk lock before emitting authenticate signal.
4814         * sources/rb-daap-source.c: (connection_connecting_cb):
4815         Get rid of the unnecessary idle handler (it's already called from one)
4816         Fixes #342047 once more.
4818 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4820         * shell/rb-shell.c: (rb_shell_class_init):
4821         * shell/rb-shell.h:
4822         * widgets/rb-song-info.c: (rb_song_info_class_init),
4823         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4824         (rb_song_info_constructor), (rb_song_info_get_property),
4825         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4826         (rb_song_info_forward_clicked_cb):
4827         * widgets/rb-song-info.h:
4828         * data/glade/song-info-multiple.glade:
4829         * lib/rb-marshal.list:
4830         * bindings/python/Makefile.am:
4831         * bindings/python/rb.defs:
4832         * bindings/python/rb.override:
4833         Allow plugins to add pages to the notebooks used in song info windows,
4834         and to track the current song displayed in single-entry windows.
4835         
4836         * configure.ac:
4837         * plugins/Makefile.am:
4838         * plugins/lyrics/Loader.py:
4839         * plugins/lyrics/Makefile.am:
4840         * plugins/lyrics/lyrics.py:
4841         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4842         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4843         as a separate window (for the playing song) or as a page in the song
4844         info window.  A few TODO items left, but this fixes #319320.
4846 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4848         Patch by:  Roozbeh Pournader
4850         * configure.ac:
4851         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4852         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4854 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4855         
4856         * sources/rb-daap-source.c: (update_connection_status):
4857         Correct return value.  Fixes #342047 again.
4859 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4861         * sources/rb-daap-source.c: (update_connection_status),
4862         (connection_connecting_cb):
4863         Update status in an idle handler so we don't rely on the gdk lock
4864         being recursive (because it isn't any more).  Fixes #342047.
4866 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4868         * lib/rb-util.c: (rb_make_duration_string),
4869         (rb_make_elapsed_time_string):
4870         * lib/rb-util.h:
4871         Add a function for formatting an elapsed time string.
4873         * shell/rb-shell-player.c: (rb_shell_player_init),
4874         (rb_shell_player_sync_with_source),
4875         (rb_shell_player_get_playing_time_string), (tick_cb):
4876         Store elapsed time in the private data structure, and use the above
4877         function.
4878         
4879         * widgets/rb-header.c:
4880         * widgets/rb-header.h:
4881         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4882         object, so everything has the same idea of the elapsed time.
4883         Fixes #339693.
4885 2006-05-16  James Livingston  <doclivingston@gmail.com>
4887         * bindings/python/rhythmdb.defs:
4888         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4889         some parametre defaults, so you don't have to pass None, False for the
4890         sorting order.
4892 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4894         * bindings/python/rhythmdb.defs:
4895         * rhythmdb/rhythmdb-query-model.c:
4896         (rhythmdb_query_model_compute_status_normal):
4897         * rhythmdb/rhythmdb-query-model.h:
4898         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4899         * rhythmdb/rhythmdb.h:
4900         Change the various compute_status methods to accept a singular/plural
4901         pair to use in the status string.
4902         
4903         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4904         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4905         * sources/rb-source.c: (default_get_status):
4906         Call entries 'songs' by default, and 'episodes' in the podcast source.
4907         Fixes #340227.
4909 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4911         patch by:  Paul Drain
4913         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4914         Fixes #341817.
4916 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4918         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4919         Generate reorder maps correctly.
4920         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4921         Scroll to the first entry from the old selection.
4922         Fixes #322992.
4924 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4926         * data/ui/rhythmbox-ui.xml:
4927         * lib/rb-preferences.h:
4928         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4929         (rb_shell_playlist_created_cb),
4930         (rb_shell_view_sidepane_changed_cb),
4931         (rb_shell_sync_sidepane_visibility),
4932         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4933         (sidepane_visibility_changed_cb):
4934         * sources/rb-podcast-source.c:
4935         Convert sourcelist visibility to side-pane visbility.
4936         Fixes #339733
4938 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4940         * widgets/rb-header.c:
4941         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4942         'player', and make it use the private data structure allocated for it.
4944 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4946         * configure.ac: enable metadata helper with dbus < 0.35.
4948 2006-05-15  James Livingston  <doclivingston@gmail.com>
4950         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4952         * data/glade/song-info.glade:
4953         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4954         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4955         (rb_song_info_update_filesize): Add the file size into the song info
4956         window. Fixes bug 340861.
4958 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4960         * bindings/python/rhythmdb.defs:
4961         * rhythmdb/rhythmdb-query-model.c:
4962         (rhythmdb_query_model_set_property),
4963         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4964         * rhythmdb/rhythmdb-query-model.h:
4965         Add a new method to chain query models without importing entries from
4966         the parent into the child.  This is useful when the subset of entries
4967         in the child can be more easily determined by running a query than by
4968         filtering entries from the parent.
4970         * bindings/python/rb.defs:
4971         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4972         (rb_library_browser_set_property),
4973         (rb_library_browser_get_property), (rb_library_browser_new),
4974         (rebuild_child_model):
4975         * widgets/rb-library-browser.h:
4976         * sources/rb-auto-playlist-source.c:
4977         (rb_auto_playlist_source_constructor):
4978         * sources/rb-static-playlist-source.c:
4979         (rb_static_playlist_source_constructor):
4980         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4981         Use more efficient queries for constructing the browser query model
4982         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4983         backend to optimise the query) and run new queries rather than
4984         filtering entries from the parent.  Fixes #341402.
4986         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4988 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4990         * configure.ac:
4991         * shell/Makefile.am:
4992         * shell/main.c: (main), (load_uri_args), (send_present_message),
4993         (unregister_dbus_handler), (handle_dbus_message),
4994         (register_dbus_handler):
4995         Add minimal support for dbus 0.31 - 0.35.
4997         * doc/reference/Makefile.am:
4998         * doc/reference/rhythmbox.types:
4999         * data/Makefile.am:
5000         * data/GNOME_Rhythmbox.server.in:
5001         * data/rhythmbox.pc.in:
5002         * remote/*:
5003         * remote/bonobo/*:
5004         Remove remaining bonobo and generic remote interface files.
5006 2006-05-14  James Livingston  <doclivingston@gmail.com>
5008         * shell/rb-shell.c: (construct_widgets):
5009         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5010         resize the browser and queue-sidebar section of their panes, unless
5011         the other section is below the minimum size. Fixes bug 331927.
5013 2006-05-13  James Livingston  <doclivingston@gmail.com>
5015         * rhythmdb/rhythmdb-query-model.c:
5016         (rhythmdb_query_model_class_init),
5017         (rhythmdb_query_model_set_property),
5018         (rhythmdb_query_model_get_property),
5019         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5020         (rhythmdb_query_model_insert_into_main_list),
5021         (rhythmdb_query_model_insert_into_limited_list),
5022         (rhythmdb_query_model_do_reorder),
5023         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5024         (rhythmdb_query_model_location_sort_func),
5025         (rhythmdb_query_model_title_sort_func),
5026         (rhythmdb_query_model_album_sort_func),
5027         (rhythmdb_query_model_artist_sort_func),
5028         (rhythmdb_query_model_genre_sort_func),
5029         (rhythmdb_query_model_track_sort_func),
5030         (rhythmdb_query_model_double_ceiling_sort_func),
5031         (rhythmdb_query_model_ulong_sort_func),
5032         (rhythmdb_query_model_date_sort_func),
5033         (rhythmdb_query_model_string_sort_func):
5034         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5035         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5036         "data destroy" property. Fixed bug 341543.
5038         * bindings/python/rhythmdb.defs:
5039         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5040         rhythmdb_query_model_set_sorting_order
5042         * rhythmdb/rhythmdb-property-model.c:
5043         (rhythmdb_property_model_drag_data_get):
5044         * sources/rb-import-errors-source.c:
5045         (rb_import_errors_source_constructor):
5046         * sources/rb-missing-files-source.c:
5047         (rb_missing_files_source_constructor):
5048         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5049         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5050         * widgets/rb-entry-view.h: adapt to the above change.
5052 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5054         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5055         (rhythmdb_tree_load):
5056         Commit loaded entries in batches, rather than individually.  
5057         More startup time reduction.
5059 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5061         * doc/reference/Makefile.am: fix gtk-doc compilation
5063 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5065         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5066         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5067         * plugins/artdisplay/artdisplay/Loader.py:
5068         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5069         Only call the first artist the best match when album==Unknown.
5070         Don't perform each query twice if album doesn't include "Vol N".
5071         Fix searching for compilations.  Fix blacklisting.
5072         Part of bug #307848
5074 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5076         * Makefile.am:
5077         * bindings/python/Makefile.am:
5078         * bindings/python/rb.defs:
5079         * bindings/python/rb.override:
5080         * configure.ac:
5081         * doc/reference/Makefile.am:
5082         * plugins/Makefile.am:
5083         * plugins/audioscrobbler/Makefile.am:
5084         * plugins/ipod/Makefile.am:
5085         * plugins/lirc/Makefile.am:
5086         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5087         (impl_activate), (impl_deactivate):
5088         * plugins/sample/Makefile.am:
5089         * remote/Makefile.am:
5090         * shell/Makefile.am:
5091         * shell/main.c: (main), (main_shell_weak_ref_cb):
5092         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5093         (rb_shell_get_property), (rb_shell_window_state_cb),
5094         (idle_hide_mainwindow), (rb_shell_set_visibility),
5095         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5096         (rb_shell_set_song_property):
5097         * shell/rb-shell.h:
5098         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5099         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5100         (rb_tray_icon_get_property), (rb_tray_icon_new),
5101         (rb_tray_icon_button_press_event_cb),
5102         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5103         (rb_tray_icon_show_window_changed_cb):
5104         * shell/rb-tray-icon.h:
5106         Remove bonobo, require DBUS.
5107         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5108         Fixes #339720
5110 2006-05-13  James Livingston  <doclivingston@gmail.com>
5112         * bindings/python/rb.override: fix some pointer-type warnings
5114 2006-05-12  James Livingston  <doclivingston@gmail.com>
5116         * lib/rb-util.c: (rb_value_free):
5117         * lib/rb-util.h: Add function to unset and free a GValue* that was
5118         allocated in the heap.
5120         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5121         the metadata hastable values
5122         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5123         leak the metadata hashtable structure
5124         * metadata/rb-metadata-dbus.c:
5125         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5126         using g_strdup and then _take_string
5128         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5129         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5130         stat something.
5132         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5133         leak the encoded string
5135         * widgets/rb-property-view.c:
5136         (rb_property_view_selection_changed_cb): set some variables to have
5137         inital values, because some code paths may not set them before we use
5138         them.
5140         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5141         don't have python warning into a debug message".
5143 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5145         * data/rhythmbox.schemas: Use zero instead of null for
5146         default burn speed.  Fixes #341283.
5148 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5150         * bindings/python/rb.defs:
5151         * widgets/rb-library-browser.c:
5152         (rb_library_browser_get_property_view):
5153         * widgets/rb-library-browser.h:
5154         Add a method to get the property view for a given property.
5156         * sources/rb-browser-source.c:
5157         (rb_browser_source_cmd_choose_genre),
5158         (rb_browser_source_cmd_choose_artist),
5159         (rb_browser_source_cmd_choose_album):
5160         Change the browser selection by changing the property view selection. 
5161         Makes the selection change visible, fixing #331740.
5163 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5165         * bindings/python/rb.defs:
5166         * bindings/python/rb.override:
5167         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5168         * shell/rb-statusbar.c: (*),
5169         * sources/rb-import-errors-source.c: (impl_get_status):
5170         * sources/rb-iradio-source.c: (impl_get_status):
5171         * sources/rb-missing-files-source.c: (impl_get_status):
5172         * sources/rb-source.c: (default_get_status),
5173         (rb_source_get_status):
5174         * sources/rb-source.h:
5175         Allow sources to provide a progress value for the status bar.
5176         Simplify status bar processing (much less polling).
5177         Consider rhythmdb busy while it's still loading the database.
5179         * daapsharing/rb-daap-connection.c: (*)
5180         * daapsharing/rb-daap-connection.h:
5181         * lib/rb-marshal.list:
5182         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5183         (rb_daap_source_init), (connection_connecting_cb),
5184         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5185         (rb_daap_source_get_status):
5186         Provide status information for DAAP connections, and move processing
5187         of large responses into a separate thread.
5188         Fixes bugs #322020 and #338978.
5190 2006-05-09  James Livingston  <doclivingston@gmail.com>
5192         Split the artdisplay plugin into several files.
5193         Fix loader and amazon-search re-use issues.
5194         Add some better search heuristics.
5196         * configure.ac:
5197         * plugins/artdisplay/Makefile.am:
5198         * plugins/artdisplay/artdisplay.py:
5199         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5200         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5201         * plugins/artdisplay/artdisplay/Loader.py:
5202         * plugins/artdisplay/artdisplay/Makefile.am:
5203         * plugins/artdisplay/artdisplay/__init__.py:
5205 2006-05-09  James Livingston  <doclivingston@gmail.com>
5207         * sources/rb-browser-source.h: remove the _has_first_added_column
5208         stuff since it isn't actually used anywhere. Sources that want it
5209         should just add it themselves, as the library already does
5211         * bindings/python/rb.defs:
5212         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5213         * sources/rb-library-source.c: (rb_library_source_class_init):
5214         * sources/rb-removable-media-source.c:
5215         (rb_removable_media_source_class_init): Remove the remanants of the
5216         above.
5218 2006-05-09  James Livingston  <doclivingston@gmail.com>
5220         * bindings/python/rb.defs:
5221         * sources/rb-browser-source.h: remove a function that was declared in
5222         the header, but not defined anywhere.
5224 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5226         * plugins/artdisplay/.cvsignore:
5227         * plugins/ipod/.cvsignore: Added.
5229 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5231         * sources/rb-auto-playlist-source.c:
5232         (rb_auto_playlist_source_new_from_xml):
5233         Fix reading of older playlist files where all three limits were
5234         specified so we take the first nonzero limit.  From #341053.
5236 2006-05-09  James Livingston  <doclivingston@gmail.com>
5238         * bindings/python/Makefile.am:
5239         * bindings/python/rb.defs:
5240         * bindings/python/rb.override: bind RBBrowserSource,
5241         RBRemovableMediaSource and RBRemovableMediamanager.
5243 2006-05-09  James Livingston  <doclivingston@gmail.com>
5245         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5247         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5248         Fixes bug 339221.
5250 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5252         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5253         Don't explode when trying to edit a query with no limit set.
5255 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5257         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5258         Clear the should_queue flag when switching to a non-submittable entry,
5259         so we don't submit songs that played for three seconds before
5260         switching to a podcast episode.
5262         * rhythmdb/rhythmdb-query-model.c
5263         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5264         in the drag data list.
5266 2006-05-08  James Livingston  <doclivingston@gmail.com>
5268         * lib/rb-util.c: (rb_value_array_append_data):
5269         * lib/rb-util.h: add function which is basically a combination of
5270         G_VALUE_COLLECT and g_value_array_append.
5272         * rhythmdb/rhythmdb-query-model.h:
5273         * rhythmdb/rhythmdb-query-model.c:
5274         (rhythmdb_query_model_class_init),
5275         (rhythmdb_query_model_set_property),
5276         (rhythmdb_query_model_get_property),
5277         (rhythmdb_query_model_finalize),
5278         (rhythmdb_query_model_update_limited_entries),
5279         (rhythmdb_query_model_set_sort_order),
5280         (rhythmdb_query_model_within_limit),
5281         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5282         saner. Rather than having <count=N, time=N, size=N> we now have a
5283         <type, value> pair. This will also make it much easier to add new
5284         limit types in the future.
5286         * shell/rb-playlist-manager.c:
5287         (rb_playlist_manager_set_automatic_playlist),
5288         (rb_playlist_manager_cmd_edit_automatic_playlist):
5289         * sources/rb-auto-playlist-source.c:
5290         (rb_auto_playlist_source_finalize),
5291         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5292         (_save_write_ulong), (_save_write_uint64),
5293         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5294         (rb_auto_playlist_source_set_query),
5295         (rb_auto_playlist_source_get_query):
5296         * sources/rb-auto-playlist-source.h:
5297         * sources/rb-library-source.c:
5298         (rb_library_source_add_child_source):
5299         * sources/rb-psp-source.c: (visit_playlist_dirs):
5300         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5301         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5302         * widgets/rb-query-creator.h: Adapt to the above change.
5304 2006-05-08  James Livingston  <doclivingston@gmail.com>
5306         * shell/rb-playlist-manager.c:
5307         (rb_playlist_manager_cmd_edit_automatic_playlist):
5308         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5309         (rb_auto_playlist_source_set_query),
5310         (rb_auto_playlist_source_get_query): copy the query in the _get method
5311         and free it in things calling that. Fixes a crasher.
5313 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5315         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5316         Make entries on newly mounted volumes visible immediately, hiding them
5317         later if they turn out to be missing.  Fixes #340068.
5319 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5321         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5322         Ignore zip files and ignore errors for files we've decided to ignore.
5324 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5326         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5327         Add missing }, should fix #340844.
5329 2006-05-06  James Livingston  <doclivingston@gmail.com>
5331         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5332         typo.
5334 2006-05-06  James Livingston  <doclivingston@gmail.com>
5336         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5337         that we work with libnotify >= 0.4
5339 2006-05-06  James Livingston  <doclivingston@gmail.com>
5341         patch by: Joe Barnett  <thejoe@gmail.com>
5343         * configure.ac: check if we're using a version of libgpod that
5344         supports the Motorola ROKR
5346         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5347         for the db path, if we using the newer version.
5349         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5351 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5353         * rhythmdb/rhythmdb-query-model.c:
5354         (rhythmdb_query_model_drag_data_get):
5355         Use playback URI, not location, for drag data.  Fixes #322597.
5357 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5359         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5361 2006-05-03  James Livingston  <doclivingston@gmail.com>
5363         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5364         (rb_add_id3_tagger), (rb_metadata_save):
5365         Set the tags on the tagging element when it is
5366         created, not during pipeline creation - which is required for
5367         dynamically created elements.
5369         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5370         support for using the "vorbistag" element to re-tag ogg vorbis files.
5371         Fixes bug 339878.
5373 2006-05-03  James Livingston  <doclivingston@gmail.com>
5375         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5377         * plugins/artdisplay/artdisplay.py:
5378         - Fix small bug callback of data loader getting overwritten on fast
5379         connections.
5380         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5381         Jonathan Matthew)
5382         - Fix Rhythmbox UI blocking while loading/searching cover art
5383         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5384         - Initial approach to allow additional "art search engines"
5385         - Further modularization in a couple of places
5386         - Minor fixes for empty entries (iradio, album, artist etc.)
5388 2006-05-03  James Livingston  <doclivingston@gmail.com>
5390         * shell/rb-playlist-manager.c:
5391         (rb_playlist_manager_playlist_entries_changed),
5392         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5393         options for non-local sources, rather than showing disabled ones.
5395         * sources/rb-library-source.c: (add_child_sources_idle),
5396         (rb_library_source_constructor), (rb_library_source_new),
5397         (rb_library_source_library_location_changed),
5398         (rb_library_source_add_child_source),
5399         (rb_library_source_sync_child_sources): Create "child library" sources
5400         when the user has multiple library locations set. Fixes bug 100552.
5402 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5404         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5405         * plugins/sample/sample.rb-plugin.desktop.in:
5406         Finish changing 'Author' to 'Authors'
5407         
5408         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5409         (rhythmdb_entry_import_error_get_type):
5410         Implement get_playback_uri for import errors (returns NULL)
5412         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5413         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5414         entry, rather than doing entry type checks.
5416 2006-05-02  James Livingston  <doclivingston@gmail.com>
5418         patch from Alessandro Decina  <alessandro@nnva.org>
5420         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5421         the signal emission in the case of fatal-on-init errors. From bug
5422         322268.
5424 2006-05-02  James Livingston  <doclivingston@gmail.com>
5426         * rhythmdb/rhythmdb.h:
5427         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5428         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5429         (rhythmdb_entry_podcast_post_get_type),
5430         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5431         virtual function to entry-types for getting the playback URI. From bug
5432         330226.
5434         * backends/gstreamer/rb-encoder-gst.c:
5435         (create_pipeline_and_source), (extract_track):
5436         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5437         to get the URI.
5439 2006-05-02  James Livingston  <doclivingston@gmail.com>
5441         patch by: Brian Cameron  <brian.cameron@sun.com>
5443         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5444         340337.
5446 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5448         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5449         instead of clear.  Use regex matching to strip "disc N"
5450         from album.  Match titles in ProductName.  Perform
5451         fallback queries including various artist compilations.
5452         Include "us" locale.  Improve queries when artist or album
5453         is unknown.  Use medium size image if large is unavailable.
5455         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5456         William Jon McCann  <mccann@jhu.edu>
5457         
5458 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5460         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5461         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5462         (conjunctive_query): Sanity check.
5463         (evaluate_conjunctive_subquery): 
5464         Don't return TRUE immediately when a relative-time query criterion
5465         matches.  Fixes #339972.
5467 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5469         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5470         Don't crash if primary or secondary are NULL.
5472 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5474         * doc/reference/Makefile.am: fix gtk-doc build yet again
5476 2006-04-28  James Livingston  <doclivingston@gmail.com>
5478         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5479         python console. Fixes bug 339934.
5481 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5483         * rhythmdb/rhythmdb-property-model.c:
5484         (rhythmdb_property_model_drag_data_get):
5485         When creating uri list drag data, create a new query model based on
5486         the query model the property model is attached to.  Makes the
5487         resulting query use the right entry type and include the upstream
5488         query criteria.  Fixes half of #327540.
5490 2006-04-27  James Livingston  <doclivingston@gmail.com>
5492         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5493         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5494         build fixes.
5496 2006-04-27  James Livingston  <doclivingston@gmail.com>
5498         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5500 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5502         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5503         (rb_playlist_manager_save_data),
5504         (rb_playlist_manager_save_playlists):
5505         * shell/rb-playlist-manager.h:
5506         * shell/rb-shell.c: (rb_shell_sync_state),
5507         (idle_save_playlist_manager):
5508         Remove a bit more threading insanity from the playlist manager.
5510 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5512         * shell/rb-playlist-manager.c: 
5513         * shell/rb-playlist-manager.h:
5514         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5515         
5516         * shell/rb-shell.c: (rb_shell_sync_state),
5517         (idle_save_playlist_manager), (construct_sources),
5518         (rb_shell_select_source), (rb_shell_sync_party_mode):
5519         Adjustments for above changes.
5521 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5523         * sources/rb-browser-source.c (impl_browser_toggled):
5524         Reset browser when hidden.  Fixes #339617.
5526 2006-04-26  James Livingston  <doclivingston@gmail.com>
5528         * backends/Makefile.am:
5529         * backends/gstreamer/Makefile.am: work again with separated
5530         built-roots
5532 2006-04-26  James Livingston  <doclivingston@gmail.com>
5534         * shell/rb-removable-media-manager.c:
5535         (rb_removable_media_manager_set_uimanager): fix compilation with
5536         -Werror and --enable-track-transfer.
5538 2006-04-26  James Livingston  <doclivingston@gmail.com>
5540         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5541         implementing class. In theory allows alternate player implementations
5542         to be selected at run-time rather than compile-time. Fixes bug 338667.
5544         * Makefile.am:
5545         * backends/Makefile.am:
5546         * backends/gstreamer/Makefile.am:
5547         * backends/gstreamer/rb-player-gst.h:
5548         * backends/rb-player.c: (rb_player_interface_init),
5549         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5550         (rb_player_close), (rb_player_play), (rb_player_pause),
5551         (rb_player_playing), (rb_player_set_volume),
5552         (rb_player_get_volume), (rb_player_set_replaygain),
5553         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5554         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5555         (_rb_player_emit_buffering), (_rb_player_emit_error),
5556         (_rb_player_emit_tick), (rb_player_error_quark):
5557         * player/Makefile.am:
5558         * player/rb-player-gst.c: (rb_player_gst_class_init),
5559         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5560         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5561         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5562         (process_tag), (found_tag_cb), (buffering_cb),
5563         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5564         (rb_player_gst_new):
5565         * player/rb-player.h:
5566         * shell/Makefile.am:
5567         * sources/rb-audiocd-source.c:
5568         * widgets/Makefile.am:
5569         * widgets/rb-header.c: (rb_header_class_init):
5571 2006-04-26  James Livingston  <doclivingston@gmail.com>
5573         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5574         don't try to download an episode if it couldn't be parsed. Fixes bug
5575         339712.
5577         * shell/rb-removable-media-manager.c:
5578         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5579         Library" option when track transfer is disabled. Fixes bug 339728.
5581 2006-04-26  James Livingston  <doclivingston@gmail.com>
5583         * data/ui/Makefile.am:
5584         * data/ui/daap-ui.xml:
5585         * data/ui/rhythmbox-ui.xml:
5586         * sources/rb-daap-source.c: (rb_daap_sources_init),
5587         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5588         way that the ipod ui is. Fixes bug 339743.
5590 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5592         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5593         (process_added_entries_cb), (process_deleted_entries_cb),
5594         (rhythmdb_commit_internal): 
5595         Combine the idle functions to emit entry-added and entry-deleted,
5596         and combine as many invocations of same as possible.  Another
5597         significant reduction in startup time.
5598         
5599         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5600         Delay the next call to rhythmdb_process_events if the queue is
5601         empty or if we can't process any of the events in the queue because
5602         the database is read only.
5604         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5606 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5608         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5610         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5611         Don't special case errors quite so much.
5613 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5615         * data/rhythmbox.schemas: Remove default speed.
5617         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5618         Add n-c-b 2.15 support.  Make the default speed to slowest since
5619         that is all that works reliably.
5621 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5623         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5624         Fix compiler error from last commit.
5626 2006-04-25  James Livingston  <doclivingston@gmail.com>
5628         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5629         transcoding-related issues. From bug 322268.
5631         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5632         don't emit the signal, since the object is being finalised, which os a
5633         Bad Thing To Do.
5635         (profile_bin_find_encoder), (get_profile_from_mime_type),
5636         (transcode_track): find the encoding element by iterating looking for
5637         element in the class Codec/Encoder/Audio rather than the one named
5638         "enc".
5640 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5642         * shell/rb-shell-player.xml:
5643         * shell/rb-shell.xml:
5644         Add signal argument information.  
5645         Patch by Tim Moloney  <t.moloney@verizon.net>
5647         * shell/rb-shell.c: (rb_shell_window_state_cb):
5648         Use the right value for the visibility_changed signal.  Most of the
5649         time, anyway.
5651 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5653         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5654         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5655         (impl_create_configure_dialog):
5656         * data/glade/audioscrobbler-prefs.glade:
5657         * shell/rb-audioscrobbler.c (*):
5658         * lib/rb-preferences.h:
5659         * data/rhythmbox.schemas:
5660         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5661         Add status information (# tracks submitted, # queued, last submit
5662         time, result of last submission) to the plugin config window.
5663         Remove 'enabled' setting, since it's easier to just disable the
5664         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5665         nonexistant (so far) 'last.fm streaming' plugin.
5666         
5667         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5668         plugin
5670         Fixes some of #325848.  We still don't provide a way to view the
5671         submission queue.
5673 2006-04-25  James Livingston  <doclivingston@gmail.com>
5675         patch by: Anders Petersson  <demitar@worldforge.org>
5677         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5678         the YY-MM-DD format.
5680 2006-04-23  James Livingston  <doclivingston@gmail.com>
5682         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5683         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5684         * bindings/python/override_common.h:
5685         * bindings/python/rb.override: python binding fixes
5687 2006-04-23  James Livingston  <doclivingston@gmail.com>
5689         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5690         (rb_statusbar_sync_with_source),
5691         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5692         callback, rather than immediately every time. Takes ~5% off my warm-cache
5693         startup time.
5695         * bindings/python/rhythmdb.defs: fix the types using for
5696         RhythmDBEntryTypes.
5698 2006-04-22  James Livingston  <doclivingston@gmail.com>
5700         * data/ui/rhythmbox-ui.xml:
5701         * shell/rb-shell.c:
5702         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5703         (remove_source), (rb_daap_sources_init),
5704         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5705         (rb_daap_source_disconnect):
5706         * sources/rb-source.c: (rb_source_class_init),
5707         (rb_source_deactivate):
5708         * sources/rb-source.h: move the "disconnect" functionality from into
5709         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5711 2006-04-22  James Livingston  <doclivingston@gmail.com>
5713         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5714         actually get the translated strings for browser headers (they were
5715         already marked as translatable). Fixes bug 339380.
5717 2006-04-22  James Livingston  <doclivingston@gmail.com>
5719         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5720         submission timeout when the object is finalised.
5722         * bindings/python/Makefile.am:
5723         * bindings/python/rb.defs:
5724         * bindings/python/rb.override:
5725         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5727         * widgets/rb-library-browser.c:
5728         (rb_library_browser_construct_query), (rebuild_output_model),
5729         (rebuild_child_model):
5730         * widgets/rb-library-browser.h: change from GPtrArray to
5731         RhythmDBQuery (which in C is the same thing).
5733 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5735         * shell/rb-shell.c: (rb_shell_get_song_properties):
5736         Don't try to include entry-type (or anything else not easily
5737         marshallable) in the song properties hash table.
5739         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5741         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5742         (rb_playlist_source_constructor): Fix entry-type initialization as
5743         with previous commit.
5745 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5747         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5748         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5749         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5750         (rb_podcast_source_constructor):
5751         Set default values for entry-type after base class construction,
5752         rather than in _init, because gobject will set the entry-type property
5753         to NULL after _init if no value is provided.  Fixes #339206.
5755 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5757         patch by: Gunnar Steinn Magnusson
5759         * COPYING:
5760         * backends/gstreamer/rb-encoder-gst.c:
5761         * backends/gstreamer/rb-encoder-gst.h:
5762         * backends/rb-encoder.c:
5763         * backends/rb-encoder.h:
5764         * bindings/python/override_common.c:
5765         * bindings/python/override_common.h:
5766         * daapsharing/rb-daap-connection.c:
5767         * daapsharing/rb-daap-connection.h:
5768         * daapsharing/rb-daap-dialog.c:
5769         * daapsharing/rb-daap-dialog.h:
5770         * daapsharing/rb-daap-mdns-browser-avahi.c:
5771         * daapsharing/rb-daap-mdns-browser-howl.c:
5772         * daapsharing/rb-daap-mdns-browser.h:
5773         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5774         * daapsharing/rb-daap-mdns-publisher-howl.c:
5775         * daapsharing/rb-daap-mdns-publisher.h:
5776         * daapsharing/rb-daap-share.c:
5777         * daapsharing/rb-daap-share.h:
5778         * daapsharing/rb-daap-sharing.c:
5779         * daapsharing/rb-daap-sharing.h:
5780         * daapsharing/rb-daap-src.c:
5781         * daapsharing/rb-daap-src.h:
5782         * daapsharing/rb-daap-structure.c:
5783         * daapsharing/rb-daap-structure.h:
5784         * help/C/fdl-appendix.xml:
5785         * help/es/es.po:
5786         * help/ja/fdl-appendix.xml:
5787         * iradio/rb-new-station-dialog.c:
5788         * iradio/rb-new-station-dialog.h:
5789         * iradio/rb-station-properties-dialog.c:
5790         * iradio/rb-station-properties-dialog.h:
5791         * lib/mkdtemp.c:
5792         * lib/mkdtemp.h:
5793         * lib/rb-cut-and-paste-code.c:
5794         * lib/rb-cut-and-paste-code.h:
5795         * lib/rb-debug.c:
5796         * lib/rb-debug.h:
5797         * lib/rb-file-helpers.c:
5798         * lib/rb-file-helpers.h:
5799         * lib/rb-glade-helpers.c:
5800         * lib/rb-glade-helpers.h:
5801         * lib/rb-preferences.h:
5802         * lib/rb-proxy-config.c:
5803         * lib/rb-stock-icons.c:
5804         * lib/rb-stock-icons.h:
5805         * lib/rb-thread.c:
5806         * lib/rb-thread.h:
5807         * lib/rb-tree-dnd.c:
5808         * lib/rb-tree-dnd.h:
5809         * lib/rb-util.c:
5810         * lib/rb-util.h:
5811         * metadata/rb-metadata-common.c:
5812         * metadata/rb-metadata-dbus-client.c:
5813         * metadata/rb-metadata-dbus-service.c:
5814         * metadata/rb-metadata-dbus.c:
5815         * metadata/rb-metadata-dbus.h:
5816         * metadata/rb-metadata-gst.c:
5817         * metadata/rb-metadata.h:
5818         * metadata/sj-error.c:
5819         * metadata/sj-error.h:
5820         * metadata/sj-metadata-musicbrainz.c:
5821         * metadata/sj-metadata-musicbrainz.h:
5822         * metadata/sj-metadata.c:
5823         * metadata/sj-metadata.h:
5824         * metadata/sj-structures.c:
5825         * metadata/sj-structures.h:
5826         * metadata/test-metadata.c:
5827         * player/rb-player-gst.c:
5828         * player/rb-player.h:
5829         * player/rb-recorder-gst.c:
5830         * player/rb-recorder.h:
5831         * plugins/artdisplay/artdisplay.py:
5832         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5833         * plugins/ipod/rb-ipod-plugin.c:
5834         * plugins/lirc/rb-lirc-plugin.c:
5835         * plugins/pythonconsole/pythonconsole.py:
5836         * plugins/rb-module.c:
5837         * plugins/rb-module.h:
5838         * plugins/rb-plugin-manager.c:
5839         * plugins/rb-plugin-manager.h:
5840         * plugins/rb-plugin.c:
5841         * plugins/rb-plugin.h:
5842         * plugins/rb-plugins-engine.c:
5843         * plugins/rb-plugins-engine.h:
5844         * plugins/rb-python-module.c:
5845         * plugins/rb-python-module.h:
5846         * plugins/rb-python-plugin.c:
5847         * plugins/rb-python-plugin.h:
5848         * plugins/sample/rb-sample-plugin.c:
5849         * po/de.po:
5850         * po/el.po:
5851         * po/en_CA.po:
5852         * po/eu.po:
5853         * po/fi.po:
5854         * po/fr.po:
5855         * po/it.po:
5856         * po/ja.po:
5857         * po/mk.po:
5858         * po/pt_BR.po:
5859         * po/ru.po:
5860         * podcast/rb-feed-podcast-properties-dialog.c:
5861         * podcast/rb-feed-podcast-properties-dialog.h:
5862         * podcast/rb-new-podcast-dialog.c:
5863         * podcast/rb-new-podcast-dialog.h:
5864         * podcast/rb-podcast-manager.c:
5865         * podcast/rb-podcast-manager.h:
5866         * podcast/rb-podcast-parse.c:
5867         * podcast/rb-podcast-parse.h:
5868         * podcast/rb-podcast-properties-dialog.c:
5869         * podcast/rb-podcast-properties-dialog.h:
5870         * remote/bonobo/libmain.c:
5871         * remote/bonobo/rb-nautilus-context-menu.c:
5872         * remote/bonobo/rb-nautilus-context-menu.h:
5873         * remote/bonobo/rb-remote-bonobo.c:
5874         * remote/bonobo/rb-remote-bonobo.h:
5875         * remote/rb-remote-client-proxy.c:
5876         * remote/rb-remote-client-proxy.h:
5877         * remote/rb-remote-common.c:
5878         * remote/rb-remote-common.h:
5879         * remote/rb-remote-proxy.c:
5880         * remote/rb-remote-proxy.h:
5881         * rhythmdb/gsequence.c:
5882         * rhythmdb/gsequence.h:
5883         * rhythmdb/rb-refstring.c:
5884         * rhythmdb/rb-refstring.h:
5885         * rhythmdb/rhythmdb-gda.c:
5886         * rhythmdb/rhythmdb-gda.h:
5887         * rhythmdb/rhythmdb-private.h:
5888         * rhythmdb/rhythmdb-property-model.c:
5889         * rhythmdb/rhythmdb-property-model.h:
5890         * rhythmdb/rhythmdb-query-model.c:
5891         * rhythmdb/rhythmdb-query-model.h:
5892         * rhythmdb/rhythmdb-query-results.c:
5893         * rhythmdb/rhythmdb-query-results.h:
5894         * rhythmdb/rhythmdb-tree.c:
5895         * rhythmdb/rhythmdb-tree.h:
5896         * rhythmdb/rhythmdb.c:
5897         * rhythmdb/rhythmdb.h:
5898         * shell/main.c:
5899         * shell/rb-audioscrobbler.c:
5900         * shell/rb-audioscrobbler.h:
5901         * shell/rb-history.c:
5902         * shell/rb-history.h:
5903         * shell/rb-play-order-linear-loop.c:
5904         * shell/rb-play-order-linear-loop.h:
5905         * shell/rb-play-order-linear.c:
5906         * shell/rb-play-order-linear.h:
5907         * shell/rb-play-order-queue.c:
5908         * shell/rb-play-order-queue.h:
5909         * shell/rb-play-order-random-by-age-and-rating.c:
5910         * shell/rb-play-order-random-by-age-and-rating.h:
5911         * shell/rb-play-order-random-by-age.c:
5912         * shell/rb-play-order-random-by-age.h:
5913         * shell/rb-play-order-random-by-rating.c:
5914         * shell/rb-play-order-random-by-rating.h:
5915         * shell/rb-play-order-random-equal-weights.c:
5916         * shell/rb-play-order-random-equal-weights.h:
5917         * shell/rb-play-order-random.c:
5918         * shell/rb-play-order-random.h:
5919         * shell/rb-play-order-shuffle.c:
5920         * shell/rb-play-order-shuffle.h:
5921         * shell/rb-play-order.c:
5922         * shell/rb-play-order.h:
5923         * shell/rb-playlist-manager.c:
5924         * shell/rb-playlist-manager.h:
5925         * shell/rb-removable-media-manager.c:
5926         * shell/rb-removable-media-manager.h:
5927         * shell/rb-shell-clipboard.c:
5928         * shell/rb-shell-clipboard.h:
5929         * shell/rb-shell-player.c:
5930         * shell/rb-shell-player.h:
5931         * shell/rb-shell-preferences.c:
5932         * shell/rb-shell-preferences.h:
5933         * shell/rb-shell.c:
5934         * shell/rb-shell.h:
5935         * shell/rb-source-header.c:
5936         * shell/rb-source-header.h:
5937         * shell/rb-statusbar.c:
5938         * shell/rb-statusbar.h:
5939         * shell/rb-tray-icon.c:
5940         * shell/rb-tray-icon.h:
5941         * sources/rb-audiocd-source.c:
5942         * sources/rb-audiocd-source.h:
5943         * sources/rb-auto-playlist-source.c:
5944         * sources/rb-auto-playlist-source.h:
5945         * sources/rb-browser-source.c:
5946         * sources/rb-browser-source.h:
5947         * sources/rb-daap-source.c:
5948         * sources/rb-daap-source.h:
5949         * sources/rb-generic-player-source.c:
5950         * sources/rb-generic-player-source.h:
5951         * sources/rb-import-errors-source.c:
5952         * sources/rb-import-errors-source.h:
5953         * sources/rb-ipod-source.c:
5954         * sources/rb-ipod-source.h:
5955         * sources/rb-iradio-source.c:
5956         * sources/rb-iradio-source.h:
5957         * sources/rb-library-source.c:
5958         * sources/rb-library-source.h:
5959         * sources/rb-missing-files-source.c:
5960         * sources/rb-missing-files-source.h:
5961         * sources/rb-nokia770-source.c:
5962         * sources/rb-nokia770-source.h:
5963         * sources/rb-play-queue-source.c:
5964         * sources/rb-play-queue-source.h:
5965         * sources/rb-playlist-source-recorder.c:
5966         * sources/rb-playlist-source-recorder.h:
5967         * sources/rb-playlist-source.c:
5968         * sources/rb-playlist-source.h:
5969         * sources/rb-playlist-xml.h:
5970         * sources/rb-podcast-source.c:
5971         * sources/rb-podcast-source.h:
5972         * sources/rb-psp-source.c:
5973         * sources/rb-psp-source.h:
5974         * sources/rb-removable-media-source.c:
5975         * sources/rb-removable-media-source.h:
5976         * sources/rb-source.c:
5977         * sources/rb-source.h:
5978         * sources/rb-sourcelist-model.c:
5979         * sources/rb-sourcelist-model.h:
5980         * sources/rb-sourcelist.c:
5981         * sources/rb-sourcelist.h:
5982         * sources/rb-static-playlist-source.c:
5983         * sources/rb-static-playlist-source.h:
5984         * tests/test-cd.c:
5985         * tests/test-cmdline.c:
5986         * tests/test-rhythmdb-indexing.c:
5987         * tests/test-rhythmdb-query.c:
5988         * tests/test-rhythmdb-simple.c:
5989         * tests/test-rhythmdb-tree-deserialization.c:
5990         * tests/test-rhythmdb-tree-serialization.c:
5991         * tests/test-rhythmdb-view.c:
5992         * widgets/bacon-volume.c:
5993         * widgets/bacon-volume.h:
5994         * widgets/disclosure-widget.c:
5995         * widgets/disclosure-widget.h:
5996         * widgets/eel-gconf-extensions.c:
5997         * widgets/eel-gconf-extensions.h:
5998         * widgets/eggtrayicon.c:
5999         * widgets/eggtrayicon.h:
6000         * widgets/libsexy/sexy-icon-entry.c:
6001         * widgets/libsexy/sexy-icon-entry.h:
6002         * widgets/rb-cell-renderer-pixbuf.c:
6003         * widgets/rb-cell-renderer-pixbuf.h:
6004         * widgets/rb-cell-renderer-rating.c:
6005         * widgets/rb-cell-renderer-rating.h:
6006         * widgets/rb-dialog.c:
6007         * widgets/rb-dialog.h:
6008         * widgets/rb-druid.c:
6009         * widgets/rb-druid.h:
6010         * widgets/rb-entry-view.c:
6011         * widgets/rb-entry-view.h:
6012         * widgets/rb-header.c:
6013         * widgets/rb-header.h:
6014         * widgets/rb-library-browser.c:
6015         * widgets/rb-library-browser.h:
6016         * widgets/rb-property-view.c:
6017         * widgets/rb-property-view.h:
6018         * widgets/rb-query-creator-private.h:
6019         * widgets/rb-query-creator-properties.c:
6020         * widgets/rb-query-creator.c:
6021         * widgets/rb-query-creator.h:
6022         * widgets/rb-rating-helper.c:
6023         * widgets/rb-rating-helper.h:
6024         * widgets/rb-rating.c:
6025         * widgets/rb-rating.h:
6026         * widgets/rb-search-entry.c:
6027         * widgets/rb-search-entry.h:
6028         * widgets/rb-song-display-box.c:
6029         * widgets/rb-song-display-box.h:
6030         * widgets/rb-song-info.c:
6031         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6033 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6035         patch by: Gareth Murphy, James Livingston
6037         * bindings/python/rb.defs:
6038         * configure.ac:
6039         * plugins/Makefile.am:
6040         * plugins/artdisplay/Makefile.am:
6041         * plugins/artdisplay/artdisplay.py:
6042         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6043         * plugins/rb-python-module.c: (rb_python_module_init_python):
6044         * shell/rb-shell.c: (construct_widgets),
6045         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6046         (rb_shell_add_widget), (rb_shell_remove_widget),
6047         (rb_shell_ui_location_get_type):
6048         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6050 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6052         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6053         Fix build failure caused by the combination of the previous two
6054         commits.
6056 2006-04-20  James Livingston  <doclivingston@gmail.com>
6058         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6059         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6060         table to the entry types, which will allow us to get rid of some of
6061         the "if entry type == WHATEVER" code everywhere. From bug 
6063         * bindings/python/rb.defs:
6064         * bindings/python/rb.override:
6065         * bindings/python/rhythmdb.defs:
6066         * bindings/python/rhythmdb.override:
6067         * daapsharing/rb-daap-connection.c:
6068         (rb_daap_connection_class_init), (rb_daap_connection_init),
6069         (rb_daap_connection_set_property),
6070         (rb_daap_connection_get_property):
6071         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6072         * podcast/rb-podcast-manager.c:
6073         (rb_podcast_manager_entry_downloaded),
6074         (rb_podcast_manager_subscribe_feed),
6075         (rb_podcast_manager_db_entry_added_cb),
6076         (rb_podcast_manager_db_entry_deleted_cb),
6077         (rb_podcast_manager_insert_feed):
6078         * rhythmdb/rhythmdb-private.h:
6079         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6080         (conjunctive_query):
6081         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6082         (process_added_entries_cb), (rhythmdb_entry_allocate),
6083         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6084         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6085         (rhythmdb_process_metadata_load),
6086         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6087         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6088         (write_encoded_gvalue), (read_encoded_property),
6089         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6090         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6091         (rhythmdb_entry_iradio_get_type),
6092         (rhythmdb_entry_podcast_post_get_type),
6093         (rhythmdb_entry_podcast_feed_get_type),
6094         (rhythmdb_entry_import_error_get_type),
6095         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6096         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6097         (rhythmdb_entry_type_get_type):
6098         * rhythmdb/rhythmdb.h:
6099         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6100         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6101         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6102         (rb_shell_player_entry_activated_cb), (info_available_cb):
6103         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6104         (rb_shell_register_entry_type_for_source),
6105         (rb_shell_playing_from_queue_cb),
6106         (rb_shell_playing_entry_changed_cb),
6107         (rb_shell_player_stream_song_changed_cb),
6108         (rb_shell_jump_to_entry_with_source),
6109         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6110         (handle_playlist_entry_cb), (rb_shell_load_uri):
6111         * shell/rb-shell.h:
6112         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6113         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6114         (rb_browser_source_init), (rb_browser_source_set_property),
6115         (rb_browser_source_get_property):
6116         * sources/rb-ipod-source.c: (impl_paste):
6117         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6118         (rb_iradio_source_init), (rb_iradio_source_set_property),
6119         (rb_iradio_source_get_property):
6120         * sources/rb-library-source.c: (impl_paste):
6121         * sources/rb-missing-files-source.c:
6122         (rb_missing_files_source_class_init),
6123         (rb_missing_files_source_init),
6124         (rb_missing_files_source_set_property),
6125         (rb_missing_files_source_get_property):
6126         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6127         (rb_playlist_source_init), (rb_playlist_source_set_property),
6128         (rb_playlist_source_get_property):
6129         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6130         (rb_podcast_source_init), (rb_podcast_source_set_property),
6131         (rb_podcast_source_get_property):
6132         * sources/rb-static-playlist-source.c:
6133         (rb_static_playlist_source_add_location_internal):
6135 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6137         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6138         (rhythmdb_add_import_error_entry),
6139         (entry_volume_mounted_or_unmounted),
6140         (rhythmdb_volume_unmounted_cb):
6141         When a volume is unmounted, delete import errors for files stored on
6142         it.  When a volume is mounted, stat all tracks stored on it, rather
6143         than assuming they're present.  Fixes #339023.
6145 2006-04-20  James Livingston  <doclivingston@gmail.com>
6147         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6148         browser visibility for non-gconf-using sources (like playlists). Part
6149         of bug 118862.
6151         * shell/rb-source-header.c: (sourcestate_free),
6152         (rb_source_header_init), (rb_source_header_finalize),
6153         (rb_source_header_source_weak_destroy_cb): switch from storing the
6154         search string to storing a "source state" structure
6156         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6157         (rb_source_header_search_cb), (rb_source_header_clear_search),
6158         (rb_source_header_disclosure_toggled_cb): as well as storing the
6159         string, stop the visibility of the source's browser.
6161 2006-04-20  James Livingston  <doclivingston@gmail.com>
6163         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6164         library entries back into the library. Fixes bug 339065.
6166 2006-04-20  James Livingston  <doclivingston@gmail.com>
6168         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6169         only exists in glib 2.10.
6171 2006-04-20  James Livingston  <doclivingston@gmail.com>
6173         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6174         Solaris. From bug 335318.
6176         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6177         * shell/rb-audioscrobbler.c:
6178         * sources/rb-psp-source.c:
6180 2006-04-20  James Livingston  <doclivingston@gmail.com>
6182         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6183         issues for some people.
6185         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6186         accidental s/suffix/prefix/
6188         * sources/rb-auto-playlist-source.c:
6189         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6190         you from sorting playlists which aren't limited by time.
6192 2006-04-19  James Livingston  <doclivingston@gmail.com>
6194         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6195         duration or bitrate back to the file, since they are properties of the
6196         audio data, not tags we can set.
6198 2006-04-19  James Livingston  <doclivingston@gmail.com>
6200         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6201         of libtool, to fix builds which are using a different version. Fixes
6202         bug 338996.
6204         * shell/Makefile.am:
6206 2006-04-19  James Livingston  <doclivingston@gmail.com>
6208         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6209         to sync data to a file which is uneditable.
6211 2006-04-19  James Livingston  <doclivingston@gmail.com>
6213         patch by: Gavin Stewart  <gavin@brokentrain.net>
6215         * data/glade/playlist-save.glade:
6216         * data/glade/Makefile.am:
6217         * po/POTFILES.in: add the playlist saving dialog.
6219         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6220         (export_set_extension_cb), (filter_get_export_filter_label),
6221         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6222         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6223         formats (PLS and M3U at the moment). Fixes bug 316295.
6225 2006-04-19  James Livingston  <doclivingston@gmail.com>
6227         * shell/rb-playlist-manager.c:
6228         (rb_playlist_manager_set_source_internal): don't let you edit remove
6229         auto playlists.
6231         * sources/rb-auto-playlist-source.c:
6232         (rb_auto_playlist_source_set_query): correctly handle time-limited
6233         playlists.
6235 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6237         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6239         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6240         Don't crash if the queue file contains no newlines.
6241         Fixes #338924.
6243 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6245         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6246         condition
6248 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6250         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6251         case. Moreover, they may not exist yet, so take that into account when
6252         generating the iPod filename.
6254 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6256         * sources/rb-ipod-source.c: added support for drag and drop from the
6257         library to the iPod (only enabled if --enable-track-transfer was
6258         passed to configure)
6260 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6262         * configure.ac:
6263         * lib/rb-marshal.list:
6264         * lib/rb-util.c: 
6265         * lib/rb-util.h:
6266         * plugins/Makefile.am:
6267         * plugins/ipod/Makefile.am:
6268         * plugins/ipod/ipod.rb-plugin.desktop.in:
6269         * plugins/ipod/rb-ipod-plugin.c: 
6270         * plugins/rb-plugin.h:
6271         * shell/Makefile.am:
6272         * shell/rb-removable-media-manager.c:
6273         * shell/rb-removable-media-manager.h:
6274         * shell/rb-shell.c: 
6275         * sources/Makefile.am:
6276         * sources/rb-ipod-source.c: 
6277         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6278         various iPod related files should be moved to plugins/ipod/ now...
6280 2006-04-17  James Livingston  <doclivingston@gmail.com>
6282         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6283         and "vic".
6285         * help/C/figures/rb-iradio-main.png:
6286         * help/C/figures/rb-notification-area-menu.png:
6287         * help/C/figures/rb-notification-window.png:
6288         * help/C/figures/rb-notification-zone.png:
6289         * help/C/figures/rb-podcast-main.png:
6290         * help/C/figures/rb-statusbar.png:
6291         * help/C/figures/rb-volume-changer.png:
6292         * help/C/figures/rb-window-small.png:
6293         * help/C/figures/rb-window.png:
6294         * help/C/rhythmbox.xml:
6296 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6298         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6299         more obviously.
6301         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6302         (make_undecodable_error), (rb_metadata_gst_error_cb),
6303         (rb_metadata_gst_new_decoded_pad_cb),
6304         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6305         Ignore really small files (<4kB) for which typefinding fails.
6306         Always link decoded pads from decodebin to fakesink.
6307         Shut the pipeline down by posting an error on the bus when decodebin
6308         emits unknown-type signals.  Fixes bug #338062.
6310 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6312         * shell/rb-shell.c: (rb_shell_load_uri):
6313         Fix glaring mistakes in previous commit: actually pass arguments to
6314         rb_debug, and specify the right entry type when adding a new iradio
6315         station so we don't try to add local playlist files to the library.
6317 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6319         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6320         before trying to add them, as iradio streams often fail rb_uri_exists().
6322         * shell/rb-shell-player.c: (notify_playing_idle),
6323         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6324         (open_location_thread), (rb_shell_player_open_location),
6325         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6326         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6327         of all the stream URLs, and try them in turn.  If we get through the
6328         whole playlist too quickly, error out.  Various other fixes that make
6329         iradio work a lot better.
6331         * shell/rb-shell.c: (add_to_library_response_cb),
6332         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6333         (handle_playlist_entry_cb), (rb_shell_load_uri):
6334         Add playlists containing streams as iradio stations.  If the playlist
6335         is local, add each stream URL, but if the playlist is remote, just add
6336         the playlist URL.
6337         
6338         * sources/rb-iradio-source.c: (new_station_location_added):
6339         Add new station URLs as-is, rather than parsing the playlist and
6340         adding the streams.
6341         
6342         * rhythmdb/rhythmdb-query-model.c:
6343         (rhythmdb_query_model_entry_changed_cb),
6344         (rhythmdb_query_model_emit_reorder),
6345         (rhythmdb_query_model_do_reorder):
6346         Emit row-changed notifications when an entry changes but is not
6347         reordered.
6349         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6350         Display the playback error icon when the entry has an error and
6351         there's nothing else to display.
6352         
6353         Fixes bug #320336 and some of #324402.
6354         
6355 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6357         * sources/rb-ipod-source.c: use a GHashTable for the
6358         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6359         time, this fixes compilation breakage for people not having libgpod
6360         CVS HEAD
6362 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6364         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6366         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6367         (rb_podcast_manager_insert_feed):
6368         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6369         fixes bug 321945
6371 2006-04-16  James Livingston  <doclivingston@gmail.com>
6373         * sources/rb-library-source.c:
6374         (rb_library_source_library_location_cb): return FALSE like we are
6375         supposed to, not void.
6377         patch by: FreeBSD GNOME Project
6378         * configure.ac: fix some bash-isms.
6380         patch by: Pawel Worach  <pawel.worach@gmail.com>
6381         * metadata/rb-metadata-dbus-client.c:
6382         * rhythmdb/rhythmdb-query-model.c:
6383         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6386 2006-04-16  James Livingston  <doclivingston@gmail.com>
6388         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6389         for transcoding to RBEncoderGst.
6391         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6392         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6393         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6394         (add_decoding_pipeline), (encoder_match_mime),
6395         (get_profile_from_mime_type), (extract_track), (transcode_track),
6396         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6398 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6400         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6401         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6402         load_ipod_db_idle_cb to a new separate function
6404 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6406         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6407         source
6409 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6411         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6412         variables
6414 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6416         * data/ui/Makefile.am:
6417         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6418         menu
6419         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6420         NULL before using it as a popup menu
6421         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6422         'eject' an iPod
6424 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6426         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6427         iPod, check if it contains an iPod database before using it (in case
6428         the iPod was repartitionned somehow). Should fix bug #325034
6430 2006-04-16  Steve Frécinaux  <steve@istique.net>
6432         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6434         * data/Makefile.am: install application icon into the default theme.
6436         * data/rhythmbox.desktop.in: don't specify icon file extension.
6437         
6438         * shell/main.c: (main): set default window icon from theme.
6439         
6440         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6441         code concerning window icon, and fix leak by unreferencing the about
6442         logo pixbuf once it's not used anymore.
6444 2006-04-16  James Livingston  <doclivingston@gmail.com>
6446         * configure.ac: bump version to 0.9.4
6447         * NEWS: update NEWS and 0.9.4 insert translations
6449 2006-04-16  James Livingston  <doclivingston@gmail.com>
6451         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6452         namespace automatically.
6454 2006-04-16  James Livingston  <doclivingston@gmail.com>
6456         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6458         * doc/reference/Makefile.am:
6459         * doc/reference/rhythmbox.types: make distcheck work again
6461         * doc/reference/tmpl/eggnotificationbubble.sgml:
6462         * doc/reference/tmpl/eggtrayicon.sgml:
6463         * doc/reference/tmpl/rb-debug.sgml:
6464         * doc/reference/tmpl/rb-entry-view.sgml:
6465         * doc/reference/tmpl/rb-enums.sgml:
6466         * doc/reference/tmpl/rb-metadata.sgml:
6467         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6468         * doc/reference/tmpl/rb-playlist-manager.sgml:
6469         * doc/reference/tmpl/rb-refstring.sgml:
6470         * doc/reference/tmpl/rb-shell-player.sgml:
6471         * doc/reference/tmpl/rb-shell-preferences.sgml:
6472         * doc/reference/tmpl/rb-shell.sgml:
6473         * doc/reference/tmpl/rb-song-info.sgml:
6474         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6475         * doc/reference/tmpl/rb-statusbar.sgml:
6476         * doc/reference/tmpl/rhythmbox-unused.sgml:
6477         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6478         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6480 2006-04-16  James Livingston  <doclivingston@gmail.com>
6482         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6484         * po/LINGUAS: don't split the variable across two lines, as it breaks
6485         the build. Fixes bug 338625.
6487 2006-04-15  James Livingston  <doclivingston@gmail.com>
6489         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6490         add a "sourcelist-model" gobject property.
6492 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6494         * .cvsignore:
6495         * backends/.cvsignore:
6496         * backends/gstreamer/.cvsignore:
6497         * bindings/.cvsignore:
6498         * bindings/python/.cvsignore:
6499         * help/es/.cvsignore:
6500         * metadata/.cvsignore:
6501         * plugins/.cvsignore:
6502         * plugins/audioscrobbler/.cvsignore:
6503         * plugins/lirc/.cvsignore:
6504         * plugins/pythonconsole/.cvsignore:
6505         * plugins/sample-python/.cvsignore:
6506         * plugins/sample/.cvsignore:
6507         * shell/.cvsignore:
6508         * widgets/libsexy/.cvsignore:
6509         Make CVS ignore files.
6511 2006-04-14  James Livingston  <doclivingston@gmail.com>
6513         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6514         the track-loading thread hold a reference on the source, so it doesn't
6515         explode if the cd is removed before it is done. Fixes bug 337237.
6517 2006-04-14  James Livingston  <doclivingston@gmail.com>
6519         * bindings/python/override_common.c:
6520         (_helper_unwrap_pointer_pylist):
6521         * bindings/python/override_common.h:
6522         * bindings/python/rb.override:
6523         * bindings/python/rhythmdb.override: Bind some more functions and
6524         virtual functions.
6526         * shell/rb-shell.c: (rb_shell_select_source):
6527         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6528         * sources/rb-audiocd-source.c:
6529         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6530         * sources/rb-browser-source.c: (impl_get_search_actions):
6531         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6532         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6533         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6534         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6535         (impl_get_search_actions):
6536         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6537         the impl_get_ui_actions and impl_get_search_actions functions return
6538         lists that contain copies of the strings, instead of constant ones.
6539         Needed to bindings
6541 2006-04-14  James Livingston  <doclivingston@gmail.com>
6543         * bindings/python/rhythmdb.defs:
6544         * bindings/python/rhythmdb.override: fix the method argument format
6545         specifiers.
6547 2006-04-14  James Livingston  <doclivingston@gmail.com>
6549         * bindings/python/rhythmdb.defs:
6550         * bindings/python/rhythmdb.override:
6551         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6552         (entry_to_rb_metadata), (record_entry_change),
6553         (rhythmdb_entry_set_visibility):
6554         * rhythmdb/rhythmdb.h:
6555         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6556         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6557         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6558         since they are used in too many places, and not in the Python
6559         bindings.
6561 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6563         * lib/rb-debug.c: (_rb_profile_log):
6564         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6565         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6566         * shell/main.c: (main):
6567         * shell/rb-shell.c: (rb_shell_constructor),
6568         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6569         (rb_shell_present):
6570         Fix profile output indentation.  Add more profiling points.
6571         Fixes part of #338114
6573 2006-04-13  James Livingston  <doclivingston@gmail.com>
6575         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6576         library source being deleted, by setting the active source to NULL.
6577         From bug 338116.
6579 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6581         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6582         Update the last-seen string when hiddenness changes.
6584 2006-04-12  James Livingston  <doclivingston@gmail.com>
6586         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6587         which caused the first-seen time to be reset when a metadata load was
6588         done. Fixes bug 336874.
6590         * shell/rb-shell.h: remove old function declaration.
6592         * bindings/python/rhythmdb.defs:
6593         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6595 2006-04-11  James Livingston  <doclivingston@gmail.com>
6597         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6598         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6599         interaction. Fixes bug 337999.
6601 2006-04-11  James Livingston  <doclivingston@gmail.com>
6603         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6604         track transfer. Fixes bug 338056.
6606         * shell/Makefile.am:
6608 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6610         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6612 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6614         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6615         (_rb_profile_log):
6616         * lib/rb-debug.h:
6617         * shell/rb-shell.c: (construct_db), (construct_widgets),
6618         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6619         Add profiling.  Fixes #337387
6621 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6623         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6624         * widgets/rb-header.c:
6625         Use italics for artist and album. Fixes #336748
6627 2006-04-10  James Livingston  <doclivingston@gmail.com>
6629         * Makefile.am:
6630         * backends/gstreamer/Makefile.am:
6631         * configure.ac:
6632         * data/glade/library-prefs.glade:
6633         * shell/Makefile.am:
6634         * shell/rb-removable-media-manager.c:
6635         * shell/rb-removable-media-manager.h:
6636         * sources/Makefile.am:
6637         * sources/rb-audiocd-source.c:
6638         * sources/rb-library-source.c: (rb_library_source_class_init),
6639         (rb_library_source_finalize), (impl_get_config_widget),
6640         (rb_library_source_preferences_sync), (impl_can_paste): add a
6641         --enable-track-transfer configure option, abd make cd ripping disabled
6642         by default.
6644         * shell/rb-source-header.c:
6645         * sources/rb-source.c: (rb_source_class_init),
6646         (rb_source_delete_thyself), (default_get_entry_view):
6647         * lib/rb-glade-helpers.c:
6648         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6649         some compiler warnings, and also bug 337427.
6651 2006-04-10  James Livingston  <doclivingston@gmail.com>
6653         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6654         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6655         if the gconf key is missing. Fixes bug 337742.
6657 2006-04-10  James Livingston  <doclivingston@gmail.com>
6659         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6660         to fix build problems I caused with a commit yesterday. Fixed bug
6661         337806.
6663         * daapsharing/rb-daap-mdns-browser-howl.c:
6664         (rb_daap_mdns_browser_class_init):
6665         * podcast/Makefile.am:
6666         * rhythmdb/Makefile.am:
6667         * widgets/eggtrayicon.h:
6669 2006-04-09  Steve Frécinaux  <steve@istique.net>
6671         * configure.ac:
6672         * po/LINGUAS:
6673         
6674         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6675         translators' life easier.
6677 2006-04-09  James Livingston  <doclivingston@gmail.com>
6679         * bindings/python/rb.defs:
6680         * bindings/python/rb.override: add bindings for most RBSource virtual
6681         functions.
6683         * sources/rb-source.h:
6684         * sources/rb-source.c: (rb_source_class_init): make
6685         impl_get_browser_key return a non-consht string, since Python can't
6686         really give us constant strings.
6688         * shell/rb-source-header.c: (rb_source_header_finalize),
6689         (rb_source_header_set_source_internal):
6690         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6691         * sources/rb-iradio-source.c: (impl_get_browser_key):
6692         * sources/rb-library-source.c: (impl_get_browser_key):
6693         * sources/rb-playlist-source.c:
6694         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6695         (rb_browser_source_state_prefs_sync):
6696         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6697         above change.
6699         * plugins/sample-python/sample-python.py: show how to add a new
6700         source.
6702 2006-04-09  James Livingston  <doclivingston@gmail.com>
6704         * daapsharing/Makefile.am:
6705         * daapsharing/rb-daap-connection.c:
6706         (rb_daap_connection_class_init):
6707         * daapsharing/rb-daap-marshal.list:
6708         * daapsharing/rb-daap-mdns-browser-avahi.c:
6709         (rb_daap_mdns_browser_class_init):
6710         * lib/rb-marshal.list:
6711         * player/Makefile.am:
6712         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6713         * player/rb-recorder-marshal.list:
6714         * podcast/Makefile.am:
6715         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6716         * podcast/rb-podcast-marshal.list:
6717         * rhythmdb/Makefile.am:
6718         * rhythmdb/rhythmdb-marshal.list:
6719         * rhythmdb/rhythmdb-query-model.c:
6720         (rhythmdb_query_model_class_init):
6721         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6722         into one file, as there is no point having several of them.
6724 2006-04-09  James Livingston  <doclivingston@gmail.com>
6726         * lib/Makefile.am:
6727         * lib/rb-enums.h:
6728         * widgets/Makefile.am:
6729         * widgets/eggnotificationbubble.c:
6730         * widgets/eggnotificationbubble.h:
6731         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6732         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6734         * rhythmdb/rhythmdb-property-model.h:
6735         * rhythmdb/rhythmdb-query-model.h:
6736         * rhythmdb/rhythmdb.h:
6737         * shell/rb-playlist-manager.h:
6738         * widgets/rb-cell-renderer-pixbuf.h:
6739         * widgets/rb-cell-renderer-rating.h:
6740         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6742 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6744         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6745         so we can build without a system-wide installed copy.
6747 2006-04-09  James Livingston  <doclivingston@gmail.com>
6749         * data/glade/general-prefs.glade:
6750         * data/rhythmbox.schemas:
6751         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6752         (rb_combo_box_hyphen_separator_func):
6753         * lib/rb-glade-helpers.h:
6754         * lib/rb-preferences.h:
6755         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6756         (rb_shell_preferences_sync),
6757         (rb_shell_preferences_toolbar_style_cb),
6758         (rb_shell_preferences_browser_views_activated_cb):
6759         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6760         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6761         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6763 2006-04-09  James Livingston  <doclivingston@gmail.com>
6765         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6766         data that MusicBrainz returns to us. Last part of bug 334167.
6768 2006-04-09  James Livingston  <doclivingston@gmail.com>
6770         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6771         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6773 2006-04-09  James Livingston  <doclivingston@gmail.com>
6775         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6776         the entry view properly when the rows are reordered. Fixes bug 337019.
6778 2006-04-09  James Livingston  <doclivingston@gmail.com>
6780         * configure.ac:
6781         * widgets/Makefile.am:
6782         * widgets/libsexy/Makefile.am:
6783         * widgets/libsexy/sexy-icon-entry.c:
6784         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6785         libsexy, and allow building against it or a system-wide installed
6786         copy.
6789         * widgets/rb-search-entry.c: (rb_search_entry_init),
6790         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6791         search box. Fixes bug 128109.
6793 2006-04-09  James Livingston  <doclivingston@gmail.com>
6795         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6797         * widgets/rb-entry-view.c: (rb_entry_view_init),
6798         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6799         and Pause icons rather than the volume ones in the Now Playing column.
6800         Closes bug 336482.
6802 2006-04-08  James Livingston  <doclivingston@gmail.com>
6804         * bindings/python/override_common.h:
6805         * bindings/python/rb.override:
6806         * bindings/python/rhythmdb.override: bind some more functions 
6808 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6810         * metadata/rb-metadata-dbus-service.c: (_send_error):
6811         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6812         are sent properly and we don't get 'method doesn't exist' messages
6813         from dbus instead.
6815 2006-04-08  James Livingston  <doclivingston@gmail.com>
6817         * bindings/python/override_common.h:
6818         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6819         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6820         more utility functions for C<->Python conversions
6822         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6823         (rb_entry_view_state_get_type):
6824         * widgets/rb-entry-view.h: make the colume type and entry view state
6825         GTypes
6827         * bindings/python/Makefile.am:
6828         * bindings/python/rb.defs:
6829         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6830         RBSource.
6832 2006-04-08  James Livingston  <doclivingston@gmail.com>
6834         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6835         initialiser for a GError
6837         * sources/rb-source.c: (rb_source_eof_type_get_type):
6838         * sources/rb-source.h: add a GType for RBSourceEOFType
6840         * bindings/python/Makefile.am:
6841         * bindings/python/rb.defs:
6842         * bindings/python/rb.override: bind RBSource and RBSourceList
6844 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6846         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6847         (rb_shell_player_get_property),
6848         (rb_shell_player_get_active_source),
6849         (rb_shell_player_set_playing_source_internal):
6850         * shell/rb-shell-player.h:
6851         Change 'playing-from-queue' from being a signal to being a property.
6853         * shell/rb-shell.c: (rb_shell_constructor),
6854         (rb_shell_playing_from_queue_cb),
6855         (rb_shell_view_queue_as_sidebar_changed_cb),
6856         (rb_shell_jump_to_entry_with_source):
6857         When the queue side pane is used, make 'jump to current' jump to the
6858         entry in the registered source for its type, rather than in the queue,
6859         and show it as playing in that source.
6860         
6861         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6862         * sources/rb-sourcelist.h:
6863         Remove the 'preempted source' stuff, since it wasn't doing anything
6864         anyway.
6866 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6868         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6869         (download_progress_cb): Canonicalise downloaded file location before
6870         setting the mountpoint property of the corresponding entry.
6871         Fixes #337287 and a couple of memory leaks.
6873 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6875         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6876         (test_load), (main): Call g_set_prgname, report errors more
6877         usefully in test mode.
6878         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6879         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6880         files.  Run the event loop when the state change fails so we get the
6881         error messages from the bus.  Fixes #336921.
6883 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6885         * data/art/Makefile.am: Install media-eject.
6887         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6888         return value of rb_file.
6890         Fixes #337209
6892 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6894         Patch by: William Jon McCann  <mccann@jhu.edu>
6896         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6897         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6898         Fix GError leak.
6900 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6902         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6903         Don't try to add a date when we don't have one.  Fixes #336741.
6905         Also fix variable declaration in middle of block.
6907 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6909         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6910         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6912 2006-04-02  James Livingston  <doclivingston@gmail.com>
6914         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6915         inverted logic causing imports to fail.
6917 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6919         * shell/main.c: (main): Fix dbusless build.
6921 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6923         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6924         wav header for non-gcc compilers (not tested much, was only written
6925         according to docs)
6927 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6929         * shell/main.c: (main): Check if we got a dbus connection before
6930         trying to create a proxy for the shell object.  Fixes #336634.
6932 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6934         * doc/reference/Makefile.am:
6935         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6936         * shell/rb-source-header.c:
6937         * sources/rb-generic-player-source.c:
6938         (default_transform_playlist_uri):
6939         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6940         <alexl@users.sourceforge.net>
6942 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6944         * configure.ac: Detect LIRC.
6945         
6946         * plugins/Makefile.am:
6947         * plugins/lirc/Makefile.am:
6948         * plugins/lirc/lirc.rb-plugin.desktop.in:
6949         * plugins/lirc/rb-lirc-plugin.c:
6950         LIRC plugin.
6952         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6953         Remove obsolete files.
6955 2006-04-02  James Livingston  <doclivingston@gmail.com>
6957         * sources/rb-generic-player-source.c:
6958         (default_transform_playlist_uri): consider playlist paths as relative
6959         to the volume root by default, since that is what most players use.
6961 2006-04-02  James Livingston  <doclivingston@gmail.com>
6963         * lib/rb-util.c: (rb_mime_get_friendly_name):
6964         * lib/rb-util.h: add helper function to get the "friendly" name for a
6965         mime-type
6967         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6968         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6969         the user better error messages about undecodable streams, using the
6970         "friendly" name if possible. Fixes bug 128109.
6972 2006-04-02  James Livingston  <doclivingston@gmail.com>
6974         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6975         (start_pipeline): fix building with gstreamer 0.8
6977 2006-04-02  James Livingston  <doclivingston@gmail.com>
6979         * sources/rb-podcast-source.c: (impl_delete),
6980         (rb_podcast_source_cmd_delete_feed),
6981         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6982         it, since it may change during traversal. Fixes bug 336204.
6984 2006-04-01  James Livingston  <doclivingston@gmail.com>
6986         * data/art/media-eject.png: add the media-eject icon from Banshee
6987         (BSD-licensed), for use when the user's icon theme doesn't have one.
6989         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6990         bug 334897.
6992 2006-04-01  James Livingston  <doclivingston@gmail.com>
6994         * shell/rb-shell-player.h:
6995         * shell/rb-shell-player.c: (rb_shell_player_play),
6996         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6997         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6998         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7000         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7001         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7002         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7004         * bindings/python/rb.defs: bind the above to Python, and remove some
7005         useless stuff from the bindings.
7007 2006-04-01  James Livingston  <doclivingston@gmail.com>
7009         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7010         number tag.
7012         * shell/rb-shell.c:
7013         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7015         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7016         to true.
7018         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7019         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7020         method assigning, so it's understandable
7022         * sources/rb-library-source.c: (rb_library_source_class_init),
7023         (impl_paste): rather than hard-coding the types to ignore, use
7024         rb_source_can_copy.
7026 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7028         * sources/rb-library-source.c:
7029         (rb_library_source_preferences_sync):
7030         Don't crash if no audio profile is selected and the gconf schemas are 
7031         not installed.
7033 2006-03-31  James Livingston  <doclivingston@gmail.com>
7035         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7036         "*" which caused compilation to fail
7038 2006-03-31  James Livingston  <doclivingston@gmail.com>
7040         * configure.ac:
7041         * Makefile.am:
7042         * backends/Makefile.am:
7043         * backends/gstreamer/Makefile.am:
7044         * backends/gstreamer/rb-encoder-gst.c:
7045         * backends/gstreamer/rb-encoder-gst.h:
7046         * backends/rb-encoder.c:
7047         * backends/rb-encoder.h: add a interface for transcoding, and a
7048         GStreamer implementation of it (based on Sound-Juicer's code).
7050         * shell/Makefile.am:
7051         * shell/rb-removable-media-manager.c:
7052         (rb_removable_media_manager_class_init),
7053         (rb_removable_media_manager_init),
7054         (rb_removable_media_manager_dispose),
7055         (rb_removable_media_manager_finalize),
7056         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7057         (progress_cb), (completed_cb), (do_transfer),
7058         (rb_removable_media_manager_queue_transfer), (copy_entry),
7059         (rb_removable_media_manager_cmd_copy_tracks):
7060         * shell/rb-removable-media-manager.h: use the encoder interface to
7061         perform transfers of entries to other locations
7063         * shell/rb-shell-player.c: (open_location_thread):
7064         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7065         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7066         (rb_shell_quit):
7067         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7068         progress in the status bar.
7070         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7071         (rb_shell_preferences_sync),
7072         (rb_shell_preferences_browser_views_activated_cb):
7073         * data/glade/general-prefs.glade: move the browser views setting from
7074         the library tab to the general one.
7076         * data/glade/library-prefs.glade: add settings for the layout of the
7077         user's library, and their preferred encoding format (e.g. for CD
7078         ripping).
7080         * lib/rb-preferences.h:
7081         * data/rhythmbox.schemas: add keys for the above options (and a few
7082         other minor ones)
7084         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7085         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7086         entry, that isn't inserted into the database.
7088         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7089         (rb_audiocd_create_track_entry):
7090         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7091         cds, and set the mime-type of audio cd tracks correctly.
7093         * sources/rb-library-source.c: (rb_library_source_class_init),
7094         (rb_library_source_finalize),
7095         (rb_library_source_edit_profile_clicked_cb),
7096         (impl_get_config_widget), (rb_library_source_preferences_sync),
7097         (impl_receive_drag), (rb_library_source_path_changed_cb),
7098         (rb_library_source_filename_changed_cb),
7099         (rb_library_source_format_changed_cb), (sanitize_path),
7100         (filepath_parse_pattern), (layout_example_label_update),
7101         (rb_library_source_layout_path_changed),
7102         (rb_library_source_layout_filename_changed), (build_filename),
7103         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7104         entries to the library. Large chunks of code for determining the
7105         destination file name stolen from Sound-Juicer.
7107         * sources/rb-sourcelist-model.c: (path_is_droppable):
7108         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7109         * sources/rb-static-playlist-source.c:
7110         (rb_static_playlist_source_class_init):
7111         * sources/rb-removable-media-source.c:
7112         (rb_removable_media_source_class_init):
7113         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7114         (rb_source_can_paste):
7115         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7116         than _can_copy) to determine whether we can paste into the source.
7119 2006-03-31  Steve Frécinaux  <steve@istique.net>
7121         * plugins/rb-python-module.c: allow import of python modules with a '.'
7122         (gedit's bug 336403). Patch by Johan Dahlin.
7124 2006-03-31  James Livingston  <doclivingston@gmail.com>
7126         * sources/rb-library-source.c: 
7127         * sources/rb-library-source.h:
7128         * sources/rb-browser-source.c:
7129         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7130         RBBrowserSource now contains all the stuff for having a source which
7131         views a particular entry type (including browsers and searching).
7132         RBLibrarySource derives from this, and includes the library-specific
7133         stuff, like importing and library watching. Fixes some issues where
7134         library-derived sources were doing things that should be
7135         library-specific. Fixes bug 335185.
7137         * data/ui/rhythmbox-ui.xml:
7138         * sources/Makefile.am: modifications for the above
7140         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7141         (rb_daap_source_get_paned_key):
7142         * sources/rb-daap-source.h:
7143         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7144         * sources/rb-removable-media-source.c:
7145         (rb_removable_media_source_class_init):
7146         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7147         instead of RBLibrarySource.
7149 2006-03-31  James Livingston  <doclivingston@gmail.com>
7151         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7152         I buggered up when changing from GnomeVFSFileSize.
7154 2006-03-30  James Livingston  <doclivingston@gmail.com>
7156         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7157         for "-Wno-error".
7159         * bindings/python/rb.override:
7160         * bindings/python/Makefile.am: make the RB python bindings depend on
7161         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7162         code sometimes emits warnings.
7164         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7165         (rb_shell_player_error_get_type):
7166         * shell/rb-shell-player.h:
7167         * bindings/python/rb.defs: add bindings for RBShellPlayer
7169         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7170         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7171         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7172         * rhythmdb/rhythmdb.h:
7173         * shell/rb-shell.c: (rb_shell_get_song_properties):
7174         * widgets/rb-entry-view.c: (propid_from_name):
7175         * widgets/rb-property-view.c: (rb_property_view_class_init):
7176         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7177         than just plain GPtrArray, and add bindings for it.
7179         * bindings/python/rhythmdb.override: wrap some functions that use
7180         GValues
7182 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7184         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7185         Only watch directories from which entries of type SONG have been
7186         added.
7188 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7190         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7191         No need to restore the selection after rebuilding the child model,
7192         since that can't have changed the selection.
7194 2006-03-29  James Livingston  <doclivingston@gmail.com>
7196         * bindings/python/override_common.c:
7197         * bindings/python/override_common.h: add some for missing files to
7198         cvs.
7200 2006-03-29  James Livingston  <doclivingston@gmail.com>
7202         * configure.ac:
7203         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7204         copied from gedit's autofoo and we don't need it
7206         * bindings/python/rhythmdb.defs:
7207         * bindings/python/rhythmdb.override: add missing files to cvs
7209 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7211         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7212         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7213         before running any of the debug/test modes.
7214         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7215         Make plugin loading work when running uninstalled from the shell/
7216         directory.
7218 2006-03-29  James Livingston  <doclivingston@gmail.com>
7220         * rhythmdb/rhythmdb-property-model.c:
7221         (rhythmdb_property_model_sync),
7222         (rhythmdb_property_model_column_get_type):
7223         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7225         * rhythmdb/rhythmdb-private.h:
7226         * rhythmdb/rhythmdb-query-model.c:
7227         (rhythmdb_query_model_class_init):
7228         * rhythmdb/rhythmdb-query-model.h:
7229         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7230         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7231         (rhythmdb_entry_get_type):
7232         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7234         * widgets/rb-query-creator-properties.c:
7235         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7236         was missing.
7238         * bindings/python/Makefile.am:
7239         * bindings/python/rb.defs:
7240         * bindings/python/rb.override:
7241         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7242         Python bindings for RhythmDB.
7244 2006-03-29  James Livingston  <doclivingston@gmail.com>
7246         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7247         sharing when using --no-registration
7249 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7251         * rhythmdb/rhythmdb-query-model.c:
7252         (rhythmdb_query_model_reapply_query):
7253         Don't remove entries while iterating, as it breaks the sequence
7254         nodes.  Instead, collect a list of removed entries and process it
7255         after iterating the sequence.  Fixes #334642.
7257 2006-03-29  James Livingston  <doclivingston@gmail.com>
7259         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7260         (row_activated_cb), (plugin_manager_toggle_all):
7261         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7262         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7263         (button_press_cb), (source_name_edited_cb):
7264         * widgets/rb-property-view.c: (rb_property_view_set_property),
7265         (rb_property_view_post_row_deleted_cb),
7266         (rb_property_view_row_activated_cb),
7267         (rb_property_view_selection_changed_cb),
7268         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7269         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7271 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7273         * rhythmdb/rhythmdb-query-model.c:
7274         (rhythmdb_query_model_drag_data_received):
7275         Increment the reference count for entries added by drag and drop.
7276         Fixes #336045.
7278 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7280         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7281         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7282         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7284 2006-03-27  James Livingston  <doclivingston@gmail.com>
7286         * shell/rb-shell.c: (rb_shell_constructor),
7287         (rb_shell_sync_window_state): fix a maximise-realise race that would
7288         cause some widgets to be resized after we had explicity set theri
7289         size. Hopefully fixes bug 331927.
7291 2006-03-27  James Livingston  <doclivingston@gmail.com>
7293         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7294         (row_activated_cb), (plugin_manager_set_active),
7295         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7296         configure button sensitivity when a plugin is enabled/disabled.
7298 2006-03-27  James Livingston  <doclivingston@gmail.com>
7300         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7301         stop warnings, only the vbos is used anyway
7303         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7304         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7305         collection every now an then.
7307         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7308         if we are finalising because the python object couldn't be created.
7310         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7311         NULL if the python-side object couldn't be created. Stops crashes when
7312         the object is later used when it doesn't exist in Python.
7314         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7315         (rb_python_shutdown): do better garbage collection when shutting down.
7316         Fixes the problem where Python was holding a reference to the shell,
7317         causing RB not to exit.
7319 2006-03-27  James Livingston  <doclivingston@gmail.com>
7321         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7322         336131.
7324 2006-03-27  James Livingston  <doclivingston@gmail.com>
7326         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7327         From bug 334829.
7329 2006-03-26  James Livingston  <doclivingston@gmail.com>
7331         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7332         library location list to NULL after we free it. Fixes bug 336047.
7334 2006-03-26  James Livingston  <doclivingston@gmail.com>
7336         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7338         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7339         supplies. Fixes bug 335947.
7341 2006-03-25  James Livingston  <doclivingston@gmail.com>
7343         * data/glade/audioscrobbler-prefs.glade:
7344         * shell/rb-audioscrobbler.c:
7345         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7346         "submit songs" checkbox, and make it not disable username/password
7347         entry. This will be needed when we support other last.fm stuff
7348         (profile access, radio, etc).
7350 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7352         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7353         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7354         335777.
7356 2006-03-24  James Livingston  <doclivingston@gmail.com>
7358         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7359         (rb_shell_player_sync_play_order),
7360         (rb_shell_player_play_order_update_cb),
7361         (actually_set_playing_source): update the next/previous availablility
7362         in places where it was missing. Fixes bug 335490.
7364 2006-03-24  James Livingston  <doclivingston@gmail.com>
7366         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7367         can't find the widget
7369         * lib/rb-util.c: (rb_uri_list_parse):
7370         * lib/rb-util.h: add function for parsing a URI list into strings.
7372         * metadata/Makefile.am: make the metdata helper build when linking
7373         with --as-needed
7375         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7376         g_mkdir_with_parents instead of coding our own.
7378         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7379         <itunes:author> over <generator>, instead of using whichever comes
7380         last.
7382         * rhythmdb/rhythmdb-private.h:
7383         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7384         field, as we don't ever check it (to detect corruption). Saves a bit
7385         of memory.
7387 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7389         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7390         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7391         Escape '&' and '=' in the paths we get back from
7392         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7394 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7396         * shell/rb-shell.c: (rb_shell_constructor):
7397         Issue startup notification after creating the main window, so
7398         notification is issued whether the window is visible or not.
7399         Fixes #335086.
7401 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7403         * sources/rb-auto-playlist-source.c: (impl_search),
7404         (rb_auto_playlist_source_query_complete_cb),
7405         (rb_auto_playlist_source_do_query):
7406         * sources/rb-library-source.c: (impl_search),
7407         (rb_library_source_query_complete_cb),
7408         (rb_library_source_do_query):
7409         Defer subset searches (where text is appended to an existing search)
7410         until the original query is complete.
7412 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7414         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7416         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7417         (rb_refstring_get_sort_key): fixes for strict-aliasing
7419 2006-03-21  James Livingston  <jrl@ids.org.au>
7421         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7422         importing a single file. Fixes bug 335307.
7424 2006-03-21  James Livingston  <jrl@ids.org.au>
7426         * shell/Makefile.am: remove the reference to backends/ that I
7427         accidently included.
7429 2006-03-21  James Livingston  <jrl@ids.org.au>
7431         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7432         with Forte (on Solaris). Closes bug 335318.
7434         * configure.ac:
7435         * lib/Makefile.am:
7436         * player/rb-recorder-gst.c:
7437         * podcast/rb-podcast-parse.c:
7438         * remote/bonobo/Makefile.am:
7439         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7440         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7441         (rhythmdb_query_model_add_entry),
7442         (rhythmdb_query_model_add_results):
7443         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7444         * rhythmdb/rhythmdb.h:
7445         * shell/Makefile.am:
7446         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7447         (update_speed_combobox):
7448         * sources/rb-sourcelist-model.c:
7450 2006-03-21  James Livingston  <jrl@ids.org.au>
7452         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7454         * player/Makefile.am:
7455         * shell/Makefile.am: work correctly with a separate build root.
7457 2006-03-21  James Livingston  <jrl@ids.org.au>
7459         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7460         get handed NULL.
7462 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7464         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7465         Only create ignore entries when importing into the library.  
7466         Ignore entries for files in removable media sources don't help.
7468 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7470         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7471         * shell/rb-source-header.h:
7472         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7473         * widgets/rb-search-entry.h:
7474         Add functions to make the search box grab focus.
7476         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7477         Focus the search box after handling the 'view all' action.
7479 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7481         * rhythmdb/rhythmdb.h:
7482         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7483         (rhythmdb_execute_multi_stat_info_cb),
7484         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7485         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7486         (action_thread_main):
7487         Collect all the get_file_info requests on startup into one gnome-vfs
7488         job to reduce overhead and avoid contention for the rhythmdb lock.
7489         Add a new method to call when all initial query models are set up.
7490         
7491         * shell/rb-shell.c: (idle_handle_load_complete):
7492         Call rhythmdb startup complete function when we've loaded all the
7493         playlists.  Fixes #334106.
7495 2006-03-20  James Livingston  <jrl@ids.org.au>
7497         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7498         (rb_entry_view_selection_changed_cb),
7499         (rb_entry_view_have_complete_selection): make has_complete_selection
7500         not slow. Fixes a performance issue I added a week or so ago.
7502 2006-03-20  James Livingston  <jrl@ids.org.au>
7504         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7505         before passing to strcmp. From bug 334559.
7507 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7509         * configure.ac:
7510         * lib/Makefile.am:
7511         * lib/rb-proxy-config.c:
7512         * lib/rb-proxy-config.h:
7513         Add a new object to watch the HTTP proxy configuration and emit
7514         signals when it changes.
7516         * shell/rb-audioscrobbler.c:
7517         * shell/rb-audioscrobbler.h:
7518         Use rb-proxy-config to watch HTTP proxy configuration.
7520         * shell/rb-shell.c:
7521         Construct rb-proxy-config object on startup, and remove all
7522         audioscrobbler references.
7524         * shell/Makefile.am:
7525         * plugins/audioscrobbler/Makefile.am:
7526         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7527         Move all audioscrobbler code into the plugin.  We should move
7528         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7529         point.  Don't use a private data structure in the plugin, since the
7530         class definition isn't in a header file.  Fixes #335091.
7532 2006-03-20  James Livingston  <jrl@ids.org.au>
7534         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7535         don't enable Next if the source has an EOS type other than
7536         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7538 2006-03-20  James Livingston  <jrl@ids.org.au>
7540         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7541         (rb_song_info_forward_clicked_cb): deal with there being no
7542         next/previous entry.
7544         (rb_song_info_query_model_inserted_cb),
7545         (rb_song_info_query_model_deleted_cb),
7546         (rb_song_info_query_model_reordered_cb),
7547         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7548         to update the button status. Fixes bug 333293.
7550 2006-03-20  James Livingston  <jrl@ids.org.au>
7552         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7553         caused by my last commit
7555 2006-03-20  James Livingston  <jrl@ids.org.au>
7557         * bindings/python/Makefile.am:
7558         * bindings/python/rb.defs:
7559         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7561         * shell/rb-shell.c: (rb_shell_constructor),
7562         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7563         tray-icon detection slightly
7565 2006-03-19  Steve Frécinaux  <steve@istique.net>
7567         * data/ui/rhythmbox-ui.xml:
7568         * shell/rb-shell.c:
7570         Add an empty Tool Menu (hidden by default) containing placeholders for
7571         plugins.
7573         * configure.ac:
7574         * plugins/Makefile.am:
7575         * plugins/pythonconsole/Makefile.am:
7576         * plugins/pythonconsole/pythonconsole.py:
7577         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7578         
7579         Python Console plugin
7581 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7583         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7584         Extra step to encode '&' and '=' to match what gnome-vfs does
7585         internally.
7586         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7587         (rhythmdb_tree_save):
7588         Increment rhythmdb xml version to 1.2, and force another uri
7589         re-canonicalisation when loading v1.1 databases.
7590         Fixes bug #333998.
7592 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7594         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7595         (avahi_client_init), (browse_cb):
7596         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7597         (avahi_client_init):
7598         Fix compilation with Avahi 0.5.x (bug #334551).
7600 2006-03-19  James Livingston  <jrl@ids.org.au>
7602         Add Increase/Decrease Volume menu items and keybindings. From bug
7603         123383.
7605         * data/ui/rhythmbox-ui.xml:
7606         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7607         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7608         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7610 2006-03-19  James Livingston  <jrl@ids.org.au>
7612         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7614         * shell/Makefile.am: fix the link order, so that we compile with
7615         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7617 2006-03-19  James Livingston  <jrl@ids.org.au>
7619         patch by: Adam Petaccia  <adam@tpetaccia.com>
7621         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7622         plugins". Fixes bug 335037.
7624 2006-03-18  James Livingston  <jrl@ids.org.au>
7626         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7627         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7628         332992.
7630         * widgets/rb-header.c: don't make artist/album info in the header the
7631         small size, since it's hard to read.
7633 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7635         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7636         (rhythmdb_finalize): Don't leak the hash tables.
7637         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7638         (rhythmdb_commit_internal): Make sure to process the deletions.
7639         (rhythmdb_entry_delete): Use a hash.
7641         * podcast/rb-podcast-manager.c: Random analness about char*
7642         (rb_podcast_manager_remove_feed): Add debugging.
7643         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7644         the result of gnome_vfs_unlink.  Don't leak a uri.
7646         Fixes #334786
7648 2006-03-18  James Livingston  <jrl@ids.org.au>
7650         * NEWS: update NEWS file
7652 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7654         * rhythmdb/rhythmdb-property-model.c:
7655         (rhythmdb_property_model_prop_changed_cb):
7656         Remove entries from the hash table after processing visible->hidden
7657         changes.
7659 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7661         * sources/rb-daap-source.c (connection_connected_cb) 
7662         (connection_disconnected_cb): Add debug.
7663         (rb_daap_source_get_headers): Check for NULL connection.
7665         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7666         Check return value of rb_daap_source_get_headers.
7668         Fixes #332089
7670 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7672         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7673         Restore the selection after rebuilding the child model, so the
7674         selection is shown correctly after using the 'browse this
7675         album/artist/genre' menu items.
7677 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7679         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7680         Clear the selection before changing the active model.
7681         Fixes crash reported in bug 334549.
7683 2006-03-15  James Livingston  <jrl@ids.org.au>
7685         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7686         (rb_tray_icon_sync_action):
7687         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7688         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7689         for non-libnotify notification bubbles. Fixes bug 331721.
7691 2006-03-15  James Livingston  <jrl@ids.org.au>
7693         Add search-bar options to playlists. Fixes bug 334407.
7695         * sources/rb-auto-playlist-source.c:
7696         (rb_auto_playlist_source_class_init),
7697         (rb_auto_playlist_source_constructor),
7698         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7699         (search_action_to_prop), (search_action_changed):
7700         * sources/rb-static-playlist-source.c:
7701         (rb_static_playlist_source_class_init),
7702         (rb_static_playlist_source_constructor),
7703         (construct_query_from_selection), (impl_get_search_actions),
7704         (search_action_to_prop), (search_action_changed):
7706 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7708         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7709         Remove broken attempt at making the search bar buttons not
7710         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7712 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7714         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7715         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7717 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7719         * widgets/rb-header.c (rb_header_sync): Escape album and
7720         artist before adding to markup.
7722 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7724         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7725         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7726         (rb_header_set_property), (rb_header_get_property),
7727         (rb_header_sync):
7728         Remove the GnomeUrl song links until we can do it properly.
7729         Fixes #334453.
7731 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7733         * shell/rb-source-header.c: (rb_source_header_clear_search):
7734         Remove the stored search text from the hash table, so it doesn't
7735         reappear after switching to another source and back.
7737         * sources/rb-auto-playlist-source.c: (impl_search):
7738         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7739         * sources/rb-static-playlist-source.c: (impl_search):
7740         Make sure all sources treat impl_search(NULL) and impl_search("") the
7741         same.  Fixes #334525.
7743 2006-03-14  James Livingston  <jrl@ids.org.au>
7745         Store which thread created new entries, and make rhythmdb_commit only
7746         insert the entries for the thread that calls it. This stops one thread
7747         calling rhythmdb_commit inserting entries that are half-way through
7748         construction by another thread (as happens with audio cds). From bug
7749         330226.
7751         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7752         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7753         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7754         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7755         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7756         (rhythmdb_process_metadata_load),
7757         (rhythmdb_process_queued_entry_set_event),
7758         (rhythmdb_prop_get_type):
7760 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7762         * rhythmdb/rhythmdb-query-model.c:
7763         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7764         (rhythmdb_query_model_finalize):
7765         Move object unrefs from _finalize into _dispose.
7766         
7767         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7768         Remove extra g_object_ref that was causing query model leaks.
7769         
7770         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7771         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7772         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7773         Remove the cached 'all' query, since it doesn't really help and it
7774         makes the code more complicated.  Attach the genre property view to
7775         the query model build from the search text, so only genres for
7776         stations matching the search terms are displayed.  Preserve the genre
7777         selection across searches.
7779         * widgets/rb-library-browser.c: 
7780         (rb_library_browser_class_init), (rb_library_browser_get_property):
7781         Add properties for the input and output models for the browser, and
7782         remove the 'changed' signal as we can just use notify::output-model.
7783         (ignore_selection_changes),
7784         (selection_restore_data_destroy), (query_complete_cb),
7785         (restore_selection): Helper functions for preserving selections across
7786         query model rebuilds.
7787         (rebuild_output_model):  New function for creating a query model to
7788         use as the display model for a source using the browser.
7789         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7790         g_object_unrefs, reuse the parent's query model when there's no
7791         selection, and use ignore_selection_changes and restore_selection.
7792         (rb_library_browser_set_selection): rebuild_child_model emits the
7793         changed signal, so no need to do it here.
7794         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7795         ignore_selection_changes and restore_selection. 
7796         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7797         flag to rb_library_browser_set_model indicating whether the query is
7798         asynchronous.
7800         * sources/rb-static-playlist-source.c:
7801         (rb_static_playlist_source_class_init),
7802         (rb_static_playlist_source_dispose):
7803         (rb_static_playlist_source_constructor):  Add an extra reference on
7804         the base model, so it doesn't vanish when we set a new display model
7805         based on a search or browser selection.
7806         (impl_search): Ensure the search_text field in the source is NULL if
7807         the search box is empty.
7808         (construct_query_from_selection),
7809         (rb_static_playlist_source_do_query): Use the query model constructed
7810         from the search as the input model for the browser.
7811         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7812         output model as the query model for the source.
7814         * sources/rb-auto-playlist-source.c:
7815         (rb_auto_playlist_source_finalize): Free more stuff.
7816         (rb_auto_playlist_source_constructor),
7817         (rb_auto_playlist_source_browser_changed_cb):
7818         Update for rb-library-browser changes, use the browser's output query
7819         model as the query model for the source.
7820         (impl_reset_filters), (impl_search), 
7821         (rb_auto_playlist_source_do_query),
7822         (rb_auto_playlist_source_set_query):
7823         Use the query model constructed from the search text as the input to
7824         the library browser, and when adding text to an existing search, apply
7825         the new query to the existing query model.
7826         
7827         * sources/rb-library-source.c: (rb_library_source_dispose):
7828         (rb_library_source_finalize): Chain dispose up to the parent class.
7829         (rb_library_source_constructor): Update for rb-library-browser
7830         changes. 
7831         (impl_search): Ensure search_text is NULL if the search box is empty,
7832         and use the subset flag to _do_query if text has been appended to an
7833         existing search.
7834         (search_action_changed), (impl_reset_filters):
7835         (rb_library_source_browser_changed_cb),
7836         (rb_library_source_do_query): Use the browser's output model as the
7837         query model for the source.
7839         Rework library and playlist sources to use a single query chain,
7840         and to limit the entries shown in property views based on the search
7841         terms.  Fixes bug #322787.
7843 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7845         * configure.ac:  Enable metadata helper by default, and fix a typo.
7847 2006-03-13  James Livingston  <jrl@ids.org.au>
7849         Make RBRefStrings lazily create the folded and sort-key strings when
7850         they are first used. This will same some memory by not creating ones
7851         that are never used, and delaying some of the others to when the user
7852         resorts or performs a similar action. Fixes bug 332992.
7854         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7855         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7856         (rb_refstring_get), (rb_refstring_get_folded),
7857         (rb_refstring_get_sort_key), (rb_refstring_hash),
7858         (rb_refstring_equal):
7859         * rhythmdb/rb-refstring.h:
7860         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7862 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7864         * data/ui/rhythmbox-ui.xml:
7865         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7866         * lib/rb-stock-icons.h:
7867         * shell/rb-shell-player.c:
7868         * shell/rb-shell.c: (rb_shell_constructor):
7869         * shell/rb-source-header.c: (force_no_shadow),
7870         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7871         (rb_source_header_class_init), (rb_source_header_init),
7872         (merge_source_ui_cb), (toolbar_set_homogeneous),
7873         (rb_source_header_set_source_internal),
7874         (rb_source_header_set_property), (rb_source_header_get_property),
7875         (rb_source_header_set_source), (rb_source_header_new),
7876         (rb_source_header_filter_changed_cb):
7877         * shell/rb-source-header.h:
7878         * sources/rb-library-source.c: (rb_library_source_class_init),
7879         (rb_library_source_init), (search_action_to_prop),
7880         (search_action_changed), (rb_library_source_constructor),
7881         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7882         (construct_query_from_selection):
7883         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7884         (rb_podcast_source_init), (search_action_to_prop),
7885         (search_action_changed), (rb_podcast_source_constructor),
7886         (construct_query_from_selection), (impl_get_ui_actions),
7887         (impl_get_search_actions):
7888         * sources/rb-source.c: (rb_source_class_init),
7889         (rb_source_get_ui_actions), (default_get_search_actions),
7890         (rb_source_get_search_actions):
7891         * sources/rb-source.h:
7893         Add a search bar.  Fixes #328618
7895 2006-03-12  James Livingston  <jrl@ids.org.au>
7897         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7898         * shell/main.c: (main): make --no-update not stat files checking for
7899         changes, instead of doing nothing. Fixes bug 125177.
7901 2006-03-12  James Livingston  <jrl@ids.org.au>
7903         * podcast/rb-podcast-manager.c:
7904         (rb_podcast_manager_thread_parse_feed):
7905         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7906         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7907         having an invalid mime-type. Fixed bug 329813.
7909 2006-03-12  James Livingston  <jrl@ids.org.au>
7911         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7912         Finally lets us close bug 309609.
7914         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7915         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7916         0.10
7918         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7919         inverted logic of the editable check.
7921 2006-03-12  James Livingston  <jrl@ids.org.au>
7923         Make API doc generation work again. Fixes bug 334276.
7925         * doc/reference/Makefile.am:
7926         * doc/reference/tmpl/rb-debug.sgml:
7927         * doc/reference/tmpl/rb-druid.sgml:
7928         * doc/reference/tmpl/rb-entry-view.sgml:
7929         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7930         * doc/reference/tmpl/rb-metadata.sgml:
7931         * doc/reference/tmpl/rb-shell.sgml:
7932         * doc/reference/tmpl/rhythmbox-unused.sgml:
7933         * doc/reference/tmpl/rhythmdb.sgml:
7935 2006-03-12  James Livingston  <jrl@ids.org.au>
7937         * shell/rb-shell-clipboard.c:
7938         (rb_shell_clipboard_set_source_internal),
7939         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7940         it doesn't have one. Fixes bug 331673.
7942         * sources/rb-source.c: (rb_source_class_init): provide a default
7943         have_url implementation that returns FALSE.
7945 2006-03-12  James Livingston  <jrl@ids.org.au>
7947         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7948         doing a distclean. Fixes bug 334221.
7951         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7953         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7955 2006-03-11  James Livingston  <jrl@ids.org.au>
7957         * shell/rb-shell.c: (rb_shell_window_state_cb),
7958         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7959         update the window width/height when iconified. Stops the window
7960         changing size when it is restored from the tray, fixing bug 333824. 
7962 2006-03-11  James Livingston  <jrl@ids.org.au>
7964         Try to get cvs to actually add the necessary files for plugin support
7966 2006-03-11  James Livingston  <jrl@ids.org.au>
7968         Add a plugin framework, with basic support for Python plugins (based
7969         on gedit's). Closes bug 330523.
7971         * Makefile.am:
7972         * shell/Makefile.am:
7973         * configure.ac: necessary autofoo.
7975         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7977         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7978         * lib/rb-file-helpers.h:
7980         * data/glade/plugins/glade:
7981         * lib/rb-preferences.h:
7982         * plugins/*:
7983         * bindings/*: plugin framework
7985         * plugins/sample/*:
7986         * plugins/sample-python/*: sample plugins
7988         * plugins/audioscrobbler/*:
7989         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7990         (rb_audioscrobbler_set_property),
7991         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7992         submission into a plugin. shell/audioscrobbler.* should really be
7993         moved, but that sucks with cvs.
7995         * shell/rb-shell.h:
7996         * shell/rb-shell.c: (rb_shell_constructor),
7997         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7998         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7999         (rb_shell_quit): start and stop plugin framework.
8001 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8003         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8004         (rhythmdb_entry_delete):
8005         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8006         immediately, so we can't get change notifications afterwards.  
8007         Fixes #331732.
8008         (rhythmdb_process_metadata_load): Add a commit after removing an
8009         entry so we can recreate it with a different type without getting
8010         confused.
8012 2006-03-11  James Livingston  <jrl@ids.org.au>
8014         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8015         use the drive name for audio CDs, use "Unknown CD".
8017 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8019         patch by:  James Henstridge  <james@jamesh.id.au>
8021         * sources/rb-removable-media-source.c:
8022         (rb_removable_media_source_constructor):
8023         Get the device name from the GnomeVFSDrive if possible,
8024         since this is usually a more descriptive name.  Fixes #333080.
8026 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8028         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8030         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8031         Don't automatically download episodes when configured for manual
8032         updating.  Fixes #331564.
8034 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8036         * rhythmdb/rhythmdb-property-model.c:
8037         (rhythmdb_property_model_iter_from_string):
8038         Return an iterator for the 'all' property when name == NULL,
8039         and don't write to *iter if iter == NULL.
8041 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8043         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8044         When switching to the play queue, still call _go_next on the normal
8045         play order, so self-emptying auto playlists ("play count = 0" etc.)
8046         don't restart once the queue is empty.
8048         * shell/rb-tray-icon.c:
8049         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8050         with 'next'.
8052 2006-03-05  James Livingston  <jrl@ids.org.au>
8054         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8055         don't submit tracks which could not be played. Fixed bug 333013.
8057         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8058         tracks which could not be played.
8060 2006-03-05  James Livingston  <jrl@ids.org.au>
8062         Sync musicbrainz lookup code from Sound-Juicer cvs.
8064         * metadata/sj-metadata-musicbrainz.c:
8065         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8066         (get_offline_track_listing), (artist_and_title_from_title),
8067         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8068         (mb_list_albums), (mb_get_submit_url):
8069         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8070         * metadata/sj-metadata.h:
8071         * metadata/sj-structures.c: (track_details_free),
8072         (album_details_free):
8073         * metadata/sj-structures.h:
8075 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8077         * lib/rb-debug.h:
8078         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8079         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8080         (rb_profiler_reset), (rb_profiler_free):
8081         Filter debug output by matching the file and function names against a
8082         match string.
8084         * shell/main.c: (main):
8085         Add -D command line option to specify the debug match string.
8087         * shell/rb-removable-media-manager.c:
8088         (rb_removable_media_manager_mount_volume):
8089         Fix some typos in debug output.
8091 2006-03-03  James Livingston  <jrl@ids.org.au>
8093         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8094         * shell/rb-shell.c: (rb_shell_load_uri):
8095         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8096         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8097         use the new "recurse" property from totem-plparser, if present. Stop
8098         RB hanging for new users who don't have a 'net connection. From bug
8099         331508.
8101 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8103         * shell/rb-removable-media-manager.c:
8104         (rb_removable_media_manager_mount_volume):
8105         * sources/Makefile.am:
8106         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8107         Fix missing files on make dist (conditional files), only build the
8108         N770 support if there's HAL support, as we have no other ways of
8109         detecting it
8111 2006-03-03  James Livingston  <jrl@ids.org.au>
8113         * shell/rb-shell-clipboard.c:
8114         (rb_shell_clipboard_set_source_internal): really fix it this time.
8115         hopefully.
8117 2006-03-03  James Livingston  <jrl@ids.org.au>
8119         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8120         with the idle function not being removed.
8122 2006-03-02  James Livingston  <jrl@ids.org.au>
8124         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8125         * widgets/rb-entry-view.h: add function for determining whether all
8126         entries are selected.
8128         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8129         (rb_shell_clipboard_set_source_internal),
8130         (rb_shell_clipboard_finalize),
8131         (rb_shell_clipboard_idle_poll_deletions),
8132         (rb_shell_clipboard_entryview_changed_cb),
8133         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8134         removals, to update things.
8136         (rb_shell_clipboard_sync): update the Select All and Select None
8137         sensitivity, based on what is selected. Fixed bug 172220.
8139 2006-03-02  James Livingston  <jrl@ids.org.au>
8141         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8142         restore the selections of later models. This means that selecting the
8143         artist for the selected album does not reset the album selection.
8145 2006-03-02  James Livingston  <jrl@ids.org.au>
8147         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8148         Stops it emitting critical warnings.
8150 2006-03-02  James Livingston  <jrl@ids.org.au>
8152         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8153         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8154         second fragment is already escaped.
8156         * sources/rb-generic-player-source.c:
8157         (rb_generic_player_source_class_init),
8158         (rb_generic_player_source_constructor), (impl_show_popup),
8159         (rb_generic_player_source_load_playlists),
8160         (rb_generic_player_source_transform_playlist_uri),
8161         (handle_playlist_entry_cb), (visit_playlist_dirs),
8162         (default_load_playlists), (default_transform_playlist_uri):
8163         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8164         the device. Allow subclasses to override the playlist loading, and
8165         (playlist uri)->(actual uri) mapping. A lot of devices which have
8166         playlists won't work right now, but people will see them and hopefully
8167         file bugs.
8169         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8170         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8171         
8172         * sources/Makefile.am:
8173         + sources/rb-nokia770-source.{c,h}:
8174         * shell/rb-removable-media-manager.c:
8175         (rb_removable_media_manager_mount_volume): Add support for reading
8176         playlists of Nokia 770s.
8178 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8180         * data/glade/podcast-properties.glade:
8181         * podcast/rb-podcast-properties-dialog.c:
8182         (rb_podcast_properties_dialog_init),
8183         (rb_podcast_properties_dialog_update),
8184         (rb_podcast_properties_dialog_update_location),
8185         (rb_podcast_properties_dialog_update_download_location):
8186         Add 'download location' field showing the path to the downloaded copy.
8187         Fixes #330696.
8189 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8191         * configure.ac: simplify HAVE_HAL define
8193 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8195         * configure.ac:
8196         * lib/rb-file-helpers.c: (rb_uri_append_path):
8197         * lib/rb-file-helpers.h:
8198         * shell/rb-removable-media-manager.c:
8199         (rb_removable_media_manager_mount_volume):
8200         * sources/Makefile.am:
8201         * sources/rb-ipod-source.c:
8202         * sources/rb-psp-source.*:
8203         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8204         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8206 2006-03-02  James Livingston  <jrl@ids.org.au>
8208         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8209         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8210         (swap_playing_source), (rb_shell_player_playpause),
8211         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8212         (rb_shell_player_set_playing_source_internal): check for the entry
8213         view being NULL before trying to use it. Lets us support sources which
8214         don't have an entry view. From bug 331673.
8216 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8218         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8219         use gnome_vfs_read_entire_file with a URI, not a local filename
8221 2006-03-01  James Livingston  <jrl@ids.org.au>
8223         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8224         first-seen and last-seen when merging duplicate entries.
8226 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8228         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8229         * widgets/rb-property-view.h:  New function, allowing custom 
8230         interactive search functions for property views.
8231         
8232         * sources/rb-podcast-source.c: 
8233         (feed_select_change_cb): Only do a new query when the selection
8234         actually changes.
8235         (rb_podcast_source_constructor),
8236         (rb_podcast_source_feed_title_search_func):
8237         Interactive search function for podcast feed titles.  Fixes #327451.
8239 2006-03-01  James Livingston  <jrl@ids.org.au>
8241         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8242         the uri in the callback, since it causes symbols to not be escaped.
8243         Fixes bug 332976.
8245         * data/ui/rhythmbox-ui.xml:
8246         * sources/rb-import-errors-source.c:
8247         (rb_import_errors_source_class_init),
8248         (rb_import_errors_source_constructor), (impl_get_status),
8249         (impl_move_to_trash),
8250         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8251         import errors source
8252         
8253         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8254         (rb_entry_view_append_column): unescape the URI for display.
8256 2006-03-01  James Livingston  <jrl@ids.org.au>
8258         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8259         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8260         function fails.
8262 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8264         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8265         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8266         * sources/rb-play-queue-source.c:
8267         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8268         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8269         of "Queued Songs".
8271         Fixes #331637.
8273 2006-03-01  James Livingston  <jrl@ids.org.au>
8275         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8276         Fixes bug 332913.
8278 2006-03-01  James Livingston  <jrl@ids.org.au>
8280         * daapsharing/rb-daap-mdns-browser-howl.c:
8281         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8282         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8283         (rb_daap_mdns_publisher_class_init),
8284         (rb_daap_mdns_publisher_finalize):
8285         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8286         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8287         (rb_recorder_finalize):
8288         * rhythmdb/rhythmdb-query-model.c:
8289         (rhythmdb_query_model_constructor):
8290         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8291         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8292         * sources/rb-playlist-source-recorder.c:
8293         (rb_playlist_source_recorder_style_set),
8294         (rb_playlist_source_recorder_class_init),
8295         (rb_playlist_source_recorder_finalize):
8296         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8297         other classes in the same way, so they don't break when derived from.
8299 2006-03-01  James Livingston  <jrl@ids.org.au>
8301         * sources/rb-generic-player-source.c:
8302         (rb_generic_player_source_constructor): don't get the parent class in
8303         a dumb way, and it breaks when the class is derived from.
8305 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8307         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8309 2006-03-01  James Livingston  <jrl@ids.org.au>
8311         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8312         not work in glib 2.8 systems.
8314 2006-03-01  James Livingston  <jrl@ids.org.au>
8316         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8317         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8318         say it is crap.
8320         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8321         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8322         podcasts on ion-local places
8324         * rhythmdb/gsequence.c: (g_sequence_node_new),
8325         (g_sequence_node_free): use gslice if we are building against glib
8326         2.10.
8328         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8329         local files too, so it doesn't block.
8331 2006-02-28  James Livingston  <jrl@ids.org.au>
8333         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8334         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8335         stats the file. Stops the UI blocking while stats are done.
8337 2006-02-28  James Livingston  <jrl@ids.org.au>
8339         * sources/rb-static-playlist-source.c:
8340         (rb_static_playlist_source_class_init),
8341         (rb_static_playlist_source_constructor), (impl_reset_filters),
8342         (impl_get_property_views), (impl_browser_toggled),
8343         (rb_static_playlist_source_do_query),
8344         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8345         playlists. From bug 118862.
8347         * sources/rb-play-queue-source.c:
8348         (rb_play_queue_source_class_init): disable them for the play queue.
8350 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8352         * data/glade/library-prefs.glade:  Add a mnemonic.
8353         * sources/rb-library-source.c:
8354         (rb_library_source_location_button_clicked_cb):  Use title
8355         capitalization for window title.
8357 2006-02-28  James Livingston  <jrl@ids.org.au>
8359         * sources/rb-auto-playlist-source.c:
8360         (construct_query_from_selection): don't create a subquery for only one
8361         criteria, as it's a silly effifiency degredation.
8363 2006-02-28  James Livingston  <jrl@ids.org.au>
8365         * rhythmdb/rhythmdb.h:
8366         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8367         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8368         saved to disk
8370         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8371         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8372         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8373         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8374         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8375         This will make importing files quicker as we don't need to try files
8376         that we know are not going to be interesting - especially useful when
8377         using the library watching facility.
8379         Fixes bug 323179.
8381 2006-02-28  James Livingston  <jrl@ids.org.au>
8383         * shell/rb-shell.c: (rb_shell_constructor),
8384         (rb_shell_set_visibility): fix browser and source-list pane
8385         positioning, that I broke with the "remember visibility" patch.
8387 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8389         * metadata/rb-metadata-dbus-service.c: (main):
8390         Change argument handling so you can use --debug with the --load and
8391         --can-save test modes.
8392         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8393         Use a separate GMainContext, not the default one.  Probably fixes
8394         #332344.
8396 2006-02-27  James Livingston  <jrl@ids.org.au>
8398         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8399         first starting up. Fixes bug 330342.
8401 2006-02-27  James Livingston  <jrl@ids.org.au>
8403         * sources/rb-sourcelist-model.c:
8404         (rb_sourcelist_model_set_dnd_targets):
8405         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8406         COPY action for draging sources and tracks, not MOVE as well. Stops
8407         Nautilus moving file away, and fixes bug 332488.
8409 2006-02-27  James Livingston  <jrl@ids.org.au>
8411         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8413         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8414         and Last Played metadata off iPods. Closes bug 324648.
8416 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8418         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8419         Disable audioscrobbler when run with the --no-registration flag, since
8420         last.fm doesn't allow multiple concurrent clients per user.
8422 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8424         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8425         Rename renamable sources when F2 is pressed when the sourcelist has
8426         focus.  Fixes #330700.
8428 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8430         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8431         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8432         (rb_playlist_manager_cmd_edit_automatic_playlist):
8433         Fix various crashes when deleting auto playlists previously edited
8434         by disconnecting signal handlers when the query editor is closed or
8435         the playlist is deleted.
8437 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8439         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8440         removed load failure dialog, and actually use the friendly file type
8441         name in error messages.
8443 2006-02-24  James Livingston  <jrl@ids.org.au>
8445         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8447         * sources/rb-library-source.c:
8448         (rb_library_source_location_button_clicked_cb),
8449         (rb_library_source_preferences_sync),
8450         (rb_library_source_library_location_cb): convert the library URI to
8451         for display, and back again. Fixes bug 332356.
8453 2006-02-23  James Livingston  <jrl@ids.org.au>
8455         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8456         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8457         (rhythmdb_sync_library_location): don't monitor files at all if
8458         watching is turned off. From bug 323096.
8460 2006-02-23  James Livingston  <jrl@ids.org.au>
8462         * data/rhythmbox.schemas:
8463         * lib/rb-preferences.h:
8464         * shell/rb-shell.c: (rb_shell_constructor),
8465         (rb_shell_set_visibility): remember main window visibility between
8466         sessions. Fixes bug 127320.
8468 2006-02-23  James Livingston  <jrl@ids.org.au>
8470         * data/glade/library-prefs.glade:
8471         * sources/rb-library-source.c: (impl_get_config_widget),
8472         (rb_library_source_location_button_clicked_cb),
8473         (rb_library_source_preferences_sync),
8474         (rb_library_source_library_location_cb),
8475         (rb_library_source_watch_toggled_cb): change the library-location
8476         widgets from the file-chooser drop menu to a text entry and Browse
8477         button. This is needed to prevent the location from chaning if the
8478         directory cannot be found. Fixes bug 328414.
8480 2006-02-23  James Livingston  <jrl@ids.org.au>
8482         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8483         item. Fixes bug 329042.
8485 2006-02-23  James Livingston  <jrl@ids.org.au>
8487         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8489         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8490         comma in some podcast feeds. Fixes bug 332194.
8492 2006-02-23  James Livingston  <jrl@ids.org.au>
8494         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8495         lower priority.
8497         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8498         the internal audio cd URIs from "cdda://device:track" to
8499         "cdda://track#device" as it makes processing much easier.
8501         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8502         * player/rb-player-gst.c: don't have the shell close the player
8503         between songs, as doing that should be backend-specific. Make the
8504         gstreamer backend close before starting a new track, unless the old
8505         and new ones are both tracks on the same audio cd. Just seek in that
8506         case.
8508 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8510         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8512 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8514         * configure.ac: Enable more warnings in my stupid setup too.
8515         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8516         #332210.
8518 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8520         * sources/rb-missing-files-source.h,
8521         * sources/rb-missing-files-source.c,
8522         * sources/rb-import-errors-source.h,
8523         * sources/rb-import-errors-source.c:
8524         Add library meta-sources, showing missing files and import errors.
8525         Fixes #167763, #142322.
8527         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8528         * sources/rb-sourcelist-model.h:
8529         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8530         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8531         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8532         (visibility_notify_cb):
8533         Store source visibility in the sourcelist model, so we can determine
8534         child source counts correctly and get the sourcelist expander column
8535         right.
8536         
8537         * widgets/rb-entry-view.h:
8538         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8539         (rb_entry_view_append_column), (set_column_visibility):
8540         Allow the creator of the entry view to specify which columns are
8541         always visible.
8543         * sources/rb-source.h:
8544         * sources/rb-source.c: (_autohide_update_visibility),
8545         (_rb_autohide_source_row_deleted_cb),
8546         (_rb_autohide_source_row_inserted_cb),
8547         (_rb_source_hide_when_empty):
8548         Allow sources to automatically hide themselves when empty.
8549         
8550         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8551         * sources/rb-library-source.c: (rb_library_source_constructor):
8552         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8553         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8554         Explicitly specify which columns are always visible.
8555         
8556         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8557         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8558         Remove load error signal handling and load failure dialog.
8559         Create missing files and import errors sources for the library.
8561         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8562         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8563         Create DB entries for import errors rather than emitting the 'load
8564         error' signal; mark loaded entries visible.
8565         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8566         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8567         (rhythmdb_prop_get_type): Store string form of last seen time for
8568         hidden entries, since it's used in the missing files source.
8569         (rhythmdb_entry_import_error_get_type): 
8570         Add entry type for import errors.
8571         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8572         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8573         (rhythmdb_entry_move_to_trash_set_error),
8574         (rhythmdb_entry_move_to_trash):  
8575         Correct spelling, add missing rhythmdb_commit.
8576         * rhythmdb/rhythmdb.h:  
8577         Add import error entry type and last seen string property.
8578         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8579         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8580         (save_entry):  Ignore string form of 'last seen' property.
8582         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8583         Don't try to play hidden entries or import error entries.
8585         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8586         * sources/Makefile.am: Add meta-source files
8587         * widgets/Makefile.am: Remove load failure dialog files
8589 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8591         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8592         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8593         few bits and pieces.
8595 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8597         * metadata/test-metadata.c: (load_metadata_cb):
8598         Fix compile warning for ignoring return value from getcwd, #332064.
8600 2006-02-21  James Livingston  <jrl@ids.org.au>
8602         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8603         (edit_auto_playlist_deleted_cb),
8604         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8605         playlist editor non-modal. Fixes bug 320030.
8607 2006-02-21  James Livingston  <jrl@ids.org.au>
8609         * shell/rb-shell.c: (rb_shell_constructor):
8610         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8611         (rb_header_set_show_artist_album):
8612         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8613         (rb_song_display_box_sync): make the queue sidebar and song display
8614         not get affected by gtk_widget_show_all. Fixes bug 332001.
8616 2006-02-21  James Livingston  <jrl@ids.org.au>
8618         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8620         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8621         feeds which use timezone names instead of offsets. Doesn't actually
8622         parse the timezone name since they are not standardised. Fixes bug
8623         331691.
8625 2006-02-21  James Livingston  <jrl@ids.org.au>
8627         * help/C/figures/rb-notification-area.png:
8628         * help/C/figures/rb-sidebar.png:
8629         * help/C/quick-reference.xml: remove obsolete files from CVS.
8631         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8632         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8633         (rhythmdb_query_free), (rhythmdb_query_serialize),
8634         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8635         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8637         * widgets/rb-query-creator-properties.c: add prefix and suffix
8638         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8639         doesn't escape the ':' separator in uris.
8641 2006-02-21  James Livingston  <jrl@ids.org.au>
8643         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8644         on startup.
8646 2006-02-21  James Livingston  <jrl@ids.org.au>
8648         * NEWS: update with recent changes
8650 2006-02-21  James Livingston  <jrl@ids.org.au>
8652         * shell/rb-shell.c: (rb_shell_constructor),
8653         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8654         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8655         (rb_druid_browse_clicked_cb), (do_response):
8656         * widgets/rb-druid.h: Make running the druid not block RBShell
8657         starting up. This is required so that bonobo registration doesn't time
8658         out. Fixed bug 318766.
8660 2006-02-21  James Livingston  <jrl@ids.org.au>
8662         * rhythmdb/rhythmdb-property-model.c:
8663         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8664         hash table after using it, not before. Fixed bug 331922.
8666 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8668         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8669         (rb_shell_view_queue_as_sidebar_changed_cb):
8670         When playing from the queue, only attempt to highlight the queue
8671         source in the source list if it's actually visible there.  Otherwise,
8672         leave the preempted source highlighted.  Mostly fixes #330819.
8674 2006-02-20  James Livingston  <jrl@ids.org.au>
8676         * rhythmdb/rhythmdb-property-model.c:
8677         (rhythmdb_property_model_row_inserted_cb),
8678         (rhythmdb_property_model_prop_changed_cb),
8679         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8680         store the roperty value in the entry-mapping table, so that receiving
8681         the remove signal from a query model before we get notified of a
8682         change doesn't cause a crash. Fixes bug 331770.
8684 2006-02-20  James Livingston  <jrl@ids.org.au>
8686         * data/ui/rhythmbox-ui.xml:
8687         * sources/rb-play-queue-source.c:
8688         (rb_play_queue_source_class_init),
8689         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8690         playlist things in the queue popup source. From 330490.
8692         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8693         previous commit
8695 2006-02-20  James Livingston  <jrl@ids.org.au>
8697         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8698         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8699         attempt to sync data for non-editable entries when using
8700         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8701         331762.
8703 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8705         * .cvsignore:
8706         * Makefile.am:
8707         * autogen.sh:
8708         * configure.ac:
8709         * help/.cvsignore:
8710         * help/Makefile.am: ported to gnome-doc-utils
8711         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8712         * help/ChangeLog: added, for translators
8713         * help/C/rhytmbox-C.omf: removed, no longer used
8714         Know issue: figures are installed, but some are not showed; manual
8715         description added, but not showed in Yelp while browsing. I'll
8716         investigate, maybe are needed some little changes to
8717         help/C/rhythmbox.xml.
8719 2006-02-20  James Livingston  <jrl@ids.org.au>
8721         * data/ui/rhythmbox-ui.xml:
8722         * help/C/figures/rb-adv.png:
8723         * help/C/figures/rb-asst-finish.png:
8724         * help/C/figures/rb-asst-library.png:
8725         * help/C/figures/rb-asst-start.png:
8726         * help/C/figures/rb-basic.png:
8727         * help/C/figures/rb-browser.png:
8728         * help/C/figures/rb-context-menu.png:
8729         * help/C/figures/rb-empty.png:
8730         * help/C/figures/rb-full-play.png:
8731         * help/C/figures/rb-group-auto.png:
8732         * help/C/figures/rb-group-create.png:
8733         * help/C/figures/rb-group.png:
8734         * help/C/figures/rb-imported.png:
8735         * help/C/figures/rb-iradio-add.png:
8736         * help/C/figures/rb-iradio.png:
8737         * help/C/figures/rb-nextprev.png:
8738         * help/C/figures/rb-nobrowse-play.png:
8739         * help/C/figures/rb-notification-area-menu.png:
8740         * help/C/figures/rb-player.png:
8741         * help/C/figures/rb-prefs-general.png:
8742         * help/C/figures/rb-prefs-ipod.png:
8743         * help/C/figures/rb-prefs-library.png:
8744         * help/C/figures/rb-prefs.png:
8745         * help/C/figures/rb-repeat.png:
8746         * help/C/figures/rb-search.png:
8747         * help/C/figures/rb-shuffle.png:
8748         * help/C/figures/rb-stats.png:
8749         * help/C/figures/rb-toolbar-editor.png:
8750         * help/C/figures/rb-volume-mute.png:
8751         * help/C/figures/rhythmbox-group.png:
8752         * help/C/figures/rhythmbox-tray-icon.png:
8753         * help/C/user-guide.xml: remove old stuff from cvs
8755 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8757         * metadata/rb-metadata-dbus-client.c: 
8758         * metadata/rb-metadata-dbus-service.c:
8759         * metadata/rb-metadata-dbus.c:
8760         * metadata/rb-metadata-dbus.h:
8761         New files, adding an external service for reading and writing
8762         metadata, and an implementation of the RBMetaData interface that uses
8763         dbus to communicate with it.
8764         
8765         * metadata/rb-metadata.h,
8766         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8767         (rb_metadata_get_field_name): Put metadata details in a static array
8768         instead of using a hash table, and add a field for language code (not
8769         used for anything)
8770         * metadata/rb-metadata-gst.c: Updates for changes in
8771         rb-metadata-common.c, fix signal handler closure leak for the typefind
8772         element's have-type signal, and add XML to the list of types we ignore.
8773         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8774         Update for changes to rb_metadata_get_field_type
8775         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8776         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8777         here and there.
8778         
8779         * configure.ac: Add --enable-metadata-helper option (not enabled by
8780         default) to use the external metadata service
8781         * metadata/Makefile.am: Add new files
8782         * metadata/test-metadata.c:  Test program for the metadata service
8784         Fixes #329597. 
8786 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8788         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8789         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8790         (rb_podcast_source_cmd_new_podcast):
8791         Move 'new podcast' action to the podcast source, and add it to the
8792         toolbar.  Fixes #331562.
8794 2006-02-19  James Livingston  <jrl@ids.org.au>
8796         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8797         menus, and away from move-to-trash. Fixes bug 331013.
8799 2006-02-19  James Livingston  <jrl@ids.org.au>
8801         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8802         when deleting last entry. Fixes bug 331712.
8804 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8806         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8807         (rb_entry_view_button_press_cb):
8808         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8809         anywhere, and include a flag indicating whether the click was over an
8810         entry or not.
8811         
8812         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8813         (rb_playlist_source_songs_show_popup_cb):
8814         * sources/rb-playlist-source.h:
8815         Add the 'over entry' flag to the class show popup method, and in the
8816         default handler, ignore right clicks when not over an entry.
8817         
8818         * sources/rb-iradio-source.c:
8819         (rb_iradio_source_songs_show_popup_cb):
8820         * sources/rb-library-source.c:
8821         (rb_library_source_songs_show_popup_cb):
8822         * sources/rb-podcast-source.c:
8823         (rb_podcast_source_songs_show_popup_cb):
8824         Show the source list popup menu when right clicked while not over an
8825         entry.
8827         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8828         For the queue sidebar, always display the popup so the 'clear queue'
8829         action is available regardless of where you click.  For the queue
8830         source, only display the popup when right clicked over an entry.
8831         Fixes #331392.
8833 2006-02-19  James Livingston  <jrl@ids.org.au>
8835         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8836         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8837         entry view, when we're not even using it
8839         * rhythmdb/rhythmdb-property-model.c:
8840         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8841         function, rather than a copy of the code.
8843         * shell/rb-playlist-manager.c:
8844         (rb_playlist_manager_playlist_row_inserted_cb),
8845         (rb_playlist_manager_set_source_internal),
8846         (rb_playlist_manager_playlist_entries_changed): use the query-model
8847         directly, rather than the source's entry view.
8849         * shell/rb-source-header.c: don't use the entry view, just select the
8850         source widget.
8852 2006-02-18  James Livingston  <jrl@ids.org.au>
8854         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8856         * help/C/figures/rb-iradio-main.png:
8857         * help/C/figures/rb-notification-area-menu.png:
8858         * help/C/figures/rb-notification-window.png:
8859         * help/C/figures/rb-notification-zone.png:
8860         * help/C/figures/rb-podcast-main.png:
8861         * help/C/figures/rb-statusbar.png:
8862         * help/C/figures/rb-toolbar-prevplaynext.png:
8863         * help/C/figures/rb-toolbar-repeat.png:
8864         * help/C/figures/rb-toolbar-shuffle.png:
8865         * help/C/figures/rb-toolbar.png:
8866         * help/C/figures/rb-volume-changer.png:
8867         * help/C/figures/rb-window-small.png:
8868         * help/C/figures/rb-window.png:
8869         * help/C/rhythmbox.xml: Update user guide with some of the changes
8870         that have occurred after 0.8.8. From bug 314001.
8872 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8874         * rhythmdb/rhythmdb-query-results.h,
8875           rhythmdb/rhythmdb-query-results.c:
8876         New interface for objects that accept query results from RhythmDB.
8878         * rhythmdb/rhythmdb-query-model.c:
8879         (rhythmdb_query_model_query_results_init),
8880         (rhythmdb_query_model_set_query),
8881         (rhythmdb_query_model_add_results),
8882         (rhythmdb_query_model_query_complete):
8883         * rhythmdb/rhythmdb-query-model.h:
8884         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8886         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8887         (rhythmdb_tree_do_full_query):
8888         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8889         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8890         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8891         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8892         * rhythmdb/rhythmdb.h:
8893         Pass query results through the RhythmDBQueryResults interface, rather
8894         than directly to a RhythmDBQueryModel.
8896         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8897         (rb_podcast_manager_db_entry_deleted_cb):
8898         * sources/rb-auto-playlist-source.c:
8899         (rb_auto_playlist_source_do_query),
8900         (rb_auto_playlist_source_set_query):
8901         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8902         * sources/rb-library-source.c: (rb_library_source_constructor),
8903         (rb_library_source_do_query):
8904         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8905         (rb_podcast_source_do_query):
8906         * rhythmdb/rhythmdb-property-model.c:
8907         (rhythmdb_property_model_drag_data_get):
8908         Cast the query model to RhythmDBQueryResults when passing to one of
8909         the RhythmDB query methods.
8911         * rhythmdb/Makefile.am: Add new files.
8913 2006-02-18  James Livingston  <jrl@ids.org.au>
8915         * data/ui/rhythmbox-ui.xml:
8916         * shell/rb-playlist-manager.c:
8917         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8918         "queue playlist" item to source context menu. Fixes bug 330490.
8920 2006-02-18  James Livingston  <jrl@ids.org.au>
8922         * data/glade/general-prefs.glade:
8923         * shell/rb-shell-preferences.c:
8924         (rb_shell_preferences_column_check_changed_cb),
8925         (rb_shell_preferences_sync):
8926         * sources/rb-library-source.c: (rb_library_source_constructor):
8927         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8928         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8929         (rb_entry_view_append_column): Add a "quality" colume which indicates
8930         the bitrate of media. Part of bug 167659.
8932 2006-02-18  James Livingston  <jrl@ids.org.au>
8934         * shell/rb-play-order.c: (do_next_idle_cb),
8935         (default_playing_entry_removed): move to next track when playing entry
8936         is deleted. Fixes bug 131150.
8938         * shell/rb-shell-player.h: remove ancient stuff
8940 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8942         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8943         (rb_shell_clipboard_set_property): 
8944         * shell/rb-shell.c (rb_shell_sync_party_mode):
8945         Trigger a resync of the clipboard properties when changing party mode.
8947 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8949         * sources/rb-static-playlist-source.c: Fix includes.
8951         * sources/rb-source.c (rb_source_can_rename) 
8952         (rb_source_can_delete, rb_source_can_move_to_trash):
8953         Return FALSE if in party mode.
8955         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8956         Replace fullscreen with party mode.
8957         (rb_shell_window_delete_cb): Don't quit if in party mode.
8958         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8959         (window_state_event_cb): Try to deiconify shell when iconified
8960         in party mode.
8961         (rb_shell_sync_party_mode): Sync party mode properties.
8962         Currently, that means [de]sensitizing close, quit, and small-display,
8963         going into fullscreen mode with window stuck and kept above, and
8964         toggling queue-only for the shell player.
8965         (rb_shell_sync_smalldisplay): Sensitive party mode.
8966         (rb_shell_get_party_mode): Get party mode setting.
8968         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8969         (rb_shell_player_set_property, rb_shell_player_get_property):
8970         Add queue-only property.
8971         (rb_shell_player_entry_activated_cb): If in party mode
8972         only queue the entry on activation.
8974         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8975         Break out from set_properties.  Desensitize some actions when
8976         in party mode.
8977         (rb_playlist_manager_set_property): Break out set_source_internal.
8979         * data/rhythmbox.schemas: Remove fullscreen mode.
8981         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8982         action with party mode.
8984         Partial fix for #323933
8986 2006-02-17  James Livingston  <jrl@ids.org.au>
8988         * configure.ac:
8989         * shell/rb-removable-media-manager.c:
8990         (get_nautilus_burn_drive_for_path),
8991         (rb_removable_media_manager_playing_uri_changed_cb): only use
8992         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8993         over the list when it doesn't.
8995 2006-02-17  James Livingston  <jrl@ids.org.au>
8997         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8998         (rb_iradio_source_first_time_changed): Only do the import on the
8999         first change from FALSE to TRUE.
9001         * sources/rb-library-source.c:
9002         (rb_library_source_preferences_sync),
9003         (rb_library_source_library_location_cb): set the first-run done flag
9004         if the user presses close and then sets their watches library
9005         location. Fixes bug 325997.
9007 2006-02-17  James Livingston  <jrl@ids.org.au>
9009         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9010         removable media manager gobject properties
9012         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9013         (split_drive_from_cdda_uri),
9014         (rb_removable_media_manager_playing_uri_changed_cb),
9015         (rb_removable_media_manager_load_media): stop polling a cd drive
9016         when we are playing from it. Part of bug 330716.
9018 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9020         * rhythmdb/rhythmdb-query-model.c:
9021         (rhythmdb_query_model_set_property),
9022         (rhythmdb_query_model_finalize),
9023         (rhythmdb_query_model_base_entry_removed):
9024         Propagate entry removal from base models out to attached property
9025         models.  Fixes the rest of #331165.
9027 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9029         * rhythmdb/rhythmdb-property-model.c:
9030         (rhythmdb_property_model_row_inserted_cb),
9031         (rhythmdb_property_model_prop_changed_cb),
9032         (rhythmdb_property_model_insert):
9033         Don't store NULL as a hash table value if we want to use
9034         g_hash_table_lookup to check if a key exists, and get the checks for
9035         how and whether to handle entry changes the right way around.
9036         Fixes #331211 and half of #331165.
9038 2006-02-16  James Livingston  <jrl@ids.org.au>
9040         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9041         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9042         Fixes bug 329942.
9044 2006-02-16  James Livingston  <jrl@ids.org.au>
9046         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9047         actually reset the browsers.
9049 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9051         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9052         Escape the strings we pass into libnotify so we don't get blank
9053         notifications when the song name contains '&' etc.  Fixes #330784.
9055 2006-02-16  James Livingston  <jrl@ids.org.au>
9057         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9058         enable "View All" when there is only a search box and no browser.
9059         Fixes bug 331395.
9061 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9063         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9064         popup menu, which I forgot to commit with the patch for bug #330014.
9066 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9068         * shell/rb-shell-player.c: (open_location_thread):
9069         Sync button and entry view state once we've started the player, so the
9070         entry view gets into the playing state for iradio.
9072 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9074         * shell/rb-shell-player.c: (open_location_thread):
9075         Take GDK lock before doing anything UI-related.
9077 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9079         * shell/rb-shell.c: Move 'new iradio station' action to
9080         iradio source.
9082         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9083         (rb_iradio_source_init), (rb_iradio_source_finalize),
9084         (rb_iradio_source_constructor):
9085         Remove some unused stuff.
9087         (guess_uri_scheme), (rb_iradio_source_add_station),
9088         (rb_iradio_source_add_from_playlist),
9089         (impl_get_ui_actions), (new_station_location_added),
9090         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9091         action, include it in the toolbar, and make sure the URI we add has a
9092         scheme.  Fixes #327059, more or less.
9094 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9096         * sources/rb-play-queue-source.c:
9097         (rb_play_queue_source_class_init),
9098         (rb_play_queue_source_constructor),
9099         (rb_play_queue_source_update_count),
9100         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9101         Add a toolbar button to clear the play queue, and make it sensitive
9102         only when there are entries in the queue.  Fixes #330014.
9104         * sources/rb-source.c: (_rb_source_register_action_group):
9105         * sources/rb-source.h:  Add helper function to register an
9106         action group for a source.
9108         * sources/rb-library-source.c: (rb_library_source_constructor):
9109         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9110         (register_action_group):  Use _rb_source_register_action_group.
9112 2006-02-15  James Livingston  <jrl@ids.org.au>
9114         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9115         (rb_song_info_constructor), (rb_song_info_set_property): make
9116         tag-editing completion work for albums too.
9118 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9120         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9121         Check the 'limit' checkbox for time-limited playlists.
9123 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9125         * widgets/rb-song-info.c: Prove text-completion when editing title,
9126         artist or album
9128 2006-02-14  James Livingston  <jrl@ids.org.au>
9130         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9131         tray icon popup menu. Fixes bug 331026.
9133 2006-02-14  James Livingston  <jrl@ids.org.au>
9135         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9136         Ogg Vorbis streams, instead of the MP3 ones.
9138 2006-02-14  James Livingston  <jrl@ids.org.au>
9140         * rhythmdb/rhythmdb-property-model.c:
9141         (rhythmdb_property_model_class_init),
9142         (rhythmdb_property_model_drag_data_get):
9143         * rhythmdb/rhythmdb-query-model.c:
9144         (rhythmdb_query_model_title_sort_func):
9145         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9146         LOCATION as the key. Fixes bug 330601.
9148 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9150         * sources/rb-playlist-source.c: (playlist_iter_func):
9151         Make it compile with older versions of totem-plparser too.      
9153 2006-02-13  James Livingston  <jrl@ids.org.au>
9155         * rhythmdb/rhythmdb.h:
9156         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9157         structure private, since things should use the accessor functions
9158         rather than manipulating it directly - Only RhythmDB and the
9159         implementation classes should access it directly. Part of the RhythmDB
9160         cleanup of bug 330226.
9162         * iradio/rb-station-properties-dialog.c:
9163         (rb_station_properties_dialog_update_title),
9164         (rb_station_properties_dialog_update_title_entry),
9165         (rb_station_properties_dialog_update_genre),
9166         (rb_station_properties_dialog_update_location),
9167         (rb_station_properties_dialog_update_play_count),
9168         (rb_station_properties_dialog_update_bitrate),
9169         (rb_station_properties_dialog_update_last_played),
9170         (rb_station_properties_dialog_update_rating),
9171         (rb_station_properties_dialog_update_playback_error),
9172         (rb_station_properties_dialog_sync_entries):
9173         * podcast/rb-feed-podcast-properties-dialog.c:
9174         (rb_feed_podcast_properties_dialog_update_title),
9175         (rb_feed_podcast_properties_dialog_update_title_label),
9176         (rb_feed_podcast_properties_dialog_update_author),
9177         (rb_feed_podcast_properties_dialog_update_location),
9178         (rb_feed_podcast_properties_dialog_update_copyright),
9179         (rb_feed_podcast_properties_dialog_update_language),
9180         (rb_feed_podcast_properties_dialog_update_summary):
9181         * podcast/rb-podcast-manager.c:
9182         (rb_podcast_manager_entry_downloaded),
9183         (rb_podcast_manager_db_entry_added_cb),
9184         (download_progress_update_cb),
9185         (rb_podcast_manager_db_entry_deleted_cb):
9186         * podcast/rb-podcast-properties-dialog.c:
9187         (rb_podcast_properties_dialog_update_title),
9188         (rb_podcast_properties_dialog_update_title_label),
9189         (rb_podcast_properties_dialog_update_feed),
9190         (rb_podcast_properties_dialog_update_location),
9191         (rb_podcast_properties_dialog_update_play_count),
9192         (rb_podcast_properties_dialog_update_bitrate),
9193         (rb_podcast_properties_dialog_update_last_played),
9194         (rb_podcast_properties_dialog_update_rating),
9195         (rb_podcast_properties_dialog_update_date),
9196         (rb_podcast_properties_dialog_update_description):
9197         * rhythmdb/rhythmdb-query-model.c:
9198         (rhythmdb_query_model_entry_changed_cb),
9199         (rhythmdb_query_model_remove_from_main_list),
9200         (rhythmdb_query_model_update_limited_entries),
9201         (rhythmdb_query_model_drag_data_get),
9202         (rhythmdb_query_model_album_sort_func):
9203         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9204         (save_entry):
9205         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9206         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9207         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9208         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9209         (rhythmdb_entry_get_double):
9210         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9211         * shell/rb-play-order-random-by-age-and-rating.c:
9212         (rb_random_by_age_and_rating_get_entry_weight):
9213         * shell/rb-play-order-random-by-age.c:
9214         (rb_random_by_age_get_entry_weight):
9215         * shell/rb-play-order-random-by-rating.c:
9216         (rb_random_by_rating_get_entry_weight):
9217         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9218         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9219         (rb_shell_player_set_playing_entry),
9220         (rb_shell_player_sync_replaygain),
9221         (rb_shell_player_sync_with_source),
9222         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9223         * sources/rb-playlist-source.c: (playlist_iter_func),
9224         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9225         (rb_playlist_source_entry_added_cb):
9226         * sources/rb-podcast-source.c:
9227         (rb_podcast_source_post_status_cell_data_func):
9228         * sources/rb-source.c: (rb_source_update_play_statistics):
9229         * sources/rb-sourcelist-model.c:
9230         (rb_sourcelist_model_drag_data_get):
9231         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9232         (rb_static_playlist_source_add_entry),
9233         (rb_static_playlist_source_remove_entry):
9234         * widgets/rb-entry-view.c: (type_ahead_search_func),
9235         (rb_entry_view_playing_cell_data_func),
9236         (rb_entry_view_rating_cell_data_func),
9237         (rb_entry_view_pixbuf_clicked_cb):
9238         * widgets/rb-header.c: (rb_header_get_duration):
9239         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9240         (rb_song_info_populate_dialog),
9241         (rb_song_info_update_playback_error),
9242         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9243         (rb_song_info_update_location), (rb_song_info_update_play_count),
9244         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9245         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9246         (rb_song_info_sync_entry_single): fix the huge number of times that
9247         the internals got accessed directly.
9249 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9251         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9252         trash' are grouped together.
9253         * shell/main.c: (main): Pass no-registration flag in to RBShell
9254         constructor, rather than mysteriously always passing TRUE.
9255         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9256         Set dirty flag when entries are removed from the model, so the play
9257         queue is marked dirty appropriately.
9258         * AUTHORS: update my email address
9260 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9262         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9264         * widgets/rb-druid.c: (path_dialog_response_cb):
9265         If the URI is local, don't display the 'file://' prefix.  
9266         Fixes #330919.
9268 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9270         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9271         Attach the notification to the tray icon widget, so libnotify
9272         positions it less badly.  Fixes #330876.
9274 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9276         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9277         Reverse the selection list before returning it, so we get it in the
9278         right order.  Fixes #330283 and some other weirdness.
9280 2006-02-11  James Livingston  <jrl@ids.org.au>
9282         * shell/rb-shell.c: (rb_shell_constructor),
9283         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9284         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9285         make small-mode and fullscreen mutually exclusive, since they don't
9286         work together
9288         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9289         Mode.
9291 2006-02-10  James Livingston  <jrl@ids.org.au>
9293         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9294         since it can cause it to be slower than real-time. Should fix bug
9295         322270.
9297 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9299         * rhythmdb/rhythmdb-query-model.c:
9300         (rhythmdb_query_model_set_property):
9301         Think just a little bit harder about that last commit.
9303 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9305         * rhythmdb/rhythmdb-query-model.c:
9306         (rhythmdb_query_model_set_property):
9307         Get the check for hidden entries the right way around.
9308         Fixes #330527, #330514.
9310         (rhythmdb_query_model_set_sort_order):
9311         Ignore no-op sort order changes, so we don't get critical
9312         messages when selecting 'all' in auto playlist browsers.
9314 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9316         Patch by: Christophe Fergeau  <teuf@gnome.org>
9318         * sources/rb-removable-media-source.c:
9319         (rb_removable_media_source_init),
9320         (rb_removable_media_source_constructor):
9321         Move icon setup code to the constructor, as the volume property
9322         haven't been set yet when _init is called.
9324 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9326         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9327         Make the source pixbuf a dynamic property.
9329         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9330         (rb_source_set_pixbuf, rb_source_set_property) 
9331         (rb_source_get_property): Add icon property.
9333         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9334         (rb_auto_playlist_source_init):
9335         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9336         (rb_static_playlist_source_init):
9337         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9338         (rb_removable_media_source_init): 
9339         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9340         (rb_podcast_source_init): 
9341         * sources/rb-library-source.c (rb_library_source_class_init) 
9342         (rb_library_source_set_property, rb_library_source_get_property): 
9343         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9344         (rb_iradio_source_init): Remove impl_get_pixbuf and
9345         set icon property on source base class.
9347         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9348         a different icon for when the share is password protected
9349         and locked.
9350         (rb_daap_source_new): Set icon property.
9351         (composite_icons): Composite an emblem on a pixbuf.
9352         (create_pixbufs): Load global pixbufs.
9353         (destroy_pixbufs): unref global pixbufs.
9354         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9355         (connection_auth_cb, connection_connected_cb) 
9356         (connection_disconnected_cb): Update icon when connection
9357         status changes.
9358         (rb_daap_source_activate): Connect signals.
9360         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9361         dialog with parent.
9363         * daapsharing/rb-daap-marshal.list: Add new signal.
9365         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9366         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9368         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9369         Add authenticate, connected, and disconnected signals.
9370         (connection_get_password): emit authenticate signal instead
9371         of running dialog directly.
9372         (connection_connected, connection_disconnected): Emit signals.
9373         (handle_login): Emit connected signal.
9374         (handle_logout): Emit disconnected signal.
9375         (rb_daap_connection_do_something): Fix leak.
9377         Fixes #330291
9379 2006-02-09  James Livingston  <jrl@ids.org.au>
9381         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9382         entries from the base model if we don't have show-hidden set. Fixes
9383         bug 330514.
9385 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9387         * daapsharing/rb-daap-share.c (message_get_session_id):
9388         Ugh. Use strtoul instead of atoi.
9389         (session_id_validate): Add debug statements.
9391 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9393         * daapsharing/rb-daap-connection.c (http_response_handler):
9394         Report the actual uri from the message in debug statements.
9396 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9398         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9399         Add context argument.
9400         (message_get_session_id): New function to parse session id from
9401         the message.
9402         (message_get_revision_number): Break out function to parse
9403         revision number from the message.
9404         (session_id_validate): New function to validate given session id
9405         is valid for given context (ie. client address).
9406         (session_id_generate): Generate a random session id.
9407         (session_id_create): Create a unique session id and store it.
9408         (session_id_remove): Remove a session id from the store.
9409         (login_cb): Create a session id instead of using a constant one.
9410         (logout_cb): Validate session id.
9411         (update_cb): Use new message_get_revision_number function.
9412         (databases_cb): Validate session id.
9413         (server_cb): Add server context to argument list for callbacks.  It
9414         is needed to look up the remote host.
9415         (db_entry_changed_cb): Use braces.
9416         (soup_auth_callback): Remove FIXME.
9417         (rb_daap_share_server_start): Create session id store.
9418         (rb_daap_share_server_stop): Destroy session id store.
9420         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9421         Don't base64-encode password here since it needs to be
9422         combined with the username first.
9424         * daapsharing/rb-daap-connection.c (build_message):
9425         Add username to Authorization token.
9426         (handle_login, handle_song_listing) 
9427         (rb_daap_connection_do_something): Session id
9428         must be an unsigned int.
9430         Fixes #329814
9432 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9434         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9435         Don't check if we've got a playing entry, ask the player object (duh).
9436         Might actually fix #329993.     
9438 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9440         * sources/rb-static-playlist-source.c:
9441         (rb_static_playlist_source_add_list_uri):
9442         Canonicalise URIs before trying to add them to the playlist, and 
9443         don't try to add files to the database for which there is 
9444         already an entry.
9446 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9448         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9449         Don't ask the entry view if we're playing, just check if we've got a
9450         playing entry.  Fixes #329993.
9452 2006-02-08  James Livingston  <jrl@ids.org.au>
9454         * rhythmdb/rhythmdb-query-model.c:
9455         (rhythmdb_query_model_set_property),
9456         (rhythmdb_query_model_finalize),
9457         (rhythmdb_query_model_base_complete): remove
9458         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9459         don't get emitted for entry changes. Fixes bug 330301.
9461         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9462         (rb_library_browser_init), (rb_library_browser_constructor),
9463         (rb_library_browser_new): do stuff in the constructor, not the init
9464         function, so that the db property gets set on RBPropertyViews
9465         correctly. Fixes a crash when dragging properties to a playlist.
9467 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9469         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9470         Actually stop soup server.  Fixes #329816.
9472 2006-02-07  James Livingston  <jrl@ids.org.au>
9474         * lib/rb-util.h:
9475         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9476         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9477         (collate_values_cb), (rb_collate_hash_table_keys),
9478         (rb_collate_hash_table_values): add functions to compare, copy and
9479         free string-lists. add functions to collate the keys or values of a
9480         hash table into a list.
9482         * rhythmdb/rhythmdb-property-model.c:
9483         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9484         (_remove_entry_cb), (_add_entry_cb),
9485         (rhythmdb_property_model_set_property),
9486         (rhythmdb_property_model_get_property),
9487         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9488         (rhythmdb_property_model_row_inserted_cb),
9489         (rhythmdb_property_model_prop_changed_cb),
9490         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9491         that are hidden, storing those that we have counted in a hash-table.
9493         * shell/Makefile.am: fix build order issue
9495         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9496         * sources/rb-source.h:
9497         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9498         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9499         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9500         browser-toggled method, rename _get_exta_views to _get_property_views,
9501         since several things depend on returning only that.
9503         * sources/rb-source.c: (rb_source_class_init),
9504         (rb_source_browser_toggled), (default_get_property_views),
9505         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9506         (rb_source_gather_hash_keys),
9507         (rb_source_gather_selected_properties): above changes, and move some
9508         utility functions up from RBLibraryView
9510         * widgets/rb-property-view.c:
9511         (rb_property_view_selection_changed_cb): fix leak.
9513         * rhythmdb/rhythmdb-query-model.c:
9514         (rhythmdb_query_model_set_property),
9515         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9516         (rhythmdb_query_model_set_sort_order),
9517         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9518         query model being resorted.
9520         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9521         NULL query.
9523         * rhythmdb/rhythmdb.h:
9524         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9525         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9526         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9527         two queries. Add a function to append "property={X,Y,Z,...}" to a
9528         query.
9530         * sources/rb-library-source.c: (rb_library_source_class_init),
9531         (rb_library_source_finalize), (rb_library_source_constructor),
9532         (rb_library_source_cmd_choose_genre),
9533         (rb_library_source_cmd_choose_artist),
9534         (rb_library_source_cmd_choose_album), (impl_search),
9535         (impl_get_property_views), (impl_reset_filters),
9536         (rb_library_source_preferences_sync),
9537         (rb_library_source_browser_views_activated_cb),
9538         (rb_library_source_state_prefs_sync),
9539         (construct_query_from_selection), (rb_library_source_do_query),
9540         (rb_library_source_browser_changed_cb):
9541         * widgets/Makefile.am:
9542         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9543         browser" widgets, which contains several property views, based on the
9544         code from RBLibrarySource. Make RBLibrarySource use it.
9546         * sources/rb-auto-playlist-source.c:
9547         (rb_auto_playlist_source_class_init),
9548         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9549         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9550         (impl_get_property_views), (impl_browser_toggled),
9551         (construct_query_from_selection),
9552         (rb_auto_playlist_source_do_query),
9553         (rb_auto_playlist_source_set_query),
9554         (rb_auto_playlist_source_browser_changed_cb): Use the new
9555         library-browser widget to add browsers to automatic playlists.
9557 2006-02-07  James Livingston  <jrl@ids.org.au>
9559         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9560         properly.
9561         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9562         type of the source is taken into account. Fixes bug 329621.
9564 2006-02-07  James Livingston  <jrl@ids.org.au>
9566         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9567         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9568         1.1, and perform URI canonicalistion when first upgrading. This should
9569         fix our remaining canonicalisation issues, such as bug 329988.
9571 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9573         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9574         Track the playing entry when the entry view isn't in the playing
9575         state, so we don't have to get the state changes exactly right.
9576         Fixes #330135.
9578 2006-02-06  James Livingston  <jrl@ids.org.au>
9580         * shell/rb-shell-player.c: (open_location_thread),
9581         (rb_shell_player_open_location): fix several iradio issues: having to
9582         press play after double-clicking on a station, not working correctly
9583         without a http:// prefix, and ignoring totem-plparser results other
9584         than success or error (e.g. IGNORE).
9586 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9588         Addition of dbus methods for dealing with static playlists and the
9589         play queue.  Fixes #329958.
9591         * shell/Makefile.am:
9592         * shell/rb-playlist-manager.h:
9593         * shell/rb-playlist-manager.xml:
9594         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9595         (rb_playlist_manager_get_playlists),
9596         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9597         (rb_playlist_manager_create_static_playlist),
9598         (rb_playlist_manager_delete_playlist),
9599         (rb_playlist_manager_add_to_playlist),
9600         (rb_playlist_manager_remove_from_playlist),
9601         (rb_playlist_manager_export_playlist):
9602         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9603         to create, delete, list, modify, export, and import  static playlists.
9604         
9605         * shell/main.c: (main): Register playlist manager object with dbus.
9607         * shell/rb-shell.h:
9608         * shell/rb-shell.xml:
9609         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9610         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9611         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9612         object, and implement the addToQueue and removeFromQueue methods.
9613         
9614         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9615         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9616         formats.
9618 2006-02-05  James Livingston  <jrl@ids.org.au>
9620         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9621         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9622         (save_entry): allow storage of booleans in the on-disk db, and
9623         save/load the HIDDEN property.
9625         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9626         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9627         to the state it was when RB shutdown. This makes RB appear to start
9628         faster, as tracks can appear before the stat is done. Remote files
9629         still start hidden. From bug 325215.
9631 2006-02-05  James Livingston  <jrl@ids.org.au>
9633         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9634         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9635         really cares about the difference from "entry-added", and it isn't
9636         emitted by the tree backend anyway.
9638         * rhythmdb/rhythmdb-query-model.c:
9639         (rhythmdb_query_model_constructor):
9640         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9641         remove the references to the entry-restored signal.
9643 2006-02-05  James Livingston  <jrl@ids.org.au>
9645         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9646         issue.
9648 2006-02-05  James Livingston  <jrl@ids.org.au>
9650         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9651         things are NULL before using g_object_unref. Fixes bug 327452.
9653         * player/rb-recorder-gst.c: (rb_recorder_construct):
9654         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9655         rather than assertion.
9657         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9658         emit a warning, rather than asserting if an unknown playlist type is
9659         encountered.
9661 2006-02-05  James Livingston  <jrl@ids.org.au>
9663         * widgets/Makefile.am:
9664         * widgets/rb-simple-view.c:
9665         * widgets/rb-simple-view.h: Move the two features that this class
9666         provides into RBPropertyView, and remove this class. Closes bug
9667         327500.
9669         * podcast/rb-feed-podcast-properties-dialog.c:
9670         * podcast/rb-feed-podcast-properties-dialog.h:
9671         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9672         (rb_podcast_source_feeds_show_popup_cb):
9673         * sources/rb-podcast-source.h:
9674         * widgets/rb-property-view.c: (rb_property_view_class_init),
9675         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9676         (rb_property_view_append_column_custom),
9677         (rb_property_view_button_press_cb):
9678         * widgets/rb-property-view.h: Updated for the above change.
9680 2006-02-04  James Livingston  <jrl@ids.org.au>
9682         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9683         too close to Move to Trash and people aren't likely to use it often.
9685 2006-02-04  James Livingston  <jrl@ids.org.au>
9687         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9689 2006-02-04  James Livingston  <jrl@ids.org.au>
9691         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9692         passed a path instead of a URI.
9694         * sources/rb-generic-player-source.c: (default_get_mount_path):
9695         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9696         the path. This fixes bug 329723.
9698 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9700         * daapsharing/rb-daap-structure.c:
9701         (rb_daap_content_code_string_as_int32):
9702         Use network byte order.
9704 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9706         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9707         Use a hash for source lookup.
9708         (mdns_service_added, mdns_service_removed): Handle
9709         service-added and service-removed signals from RBDaapMdnsBrowser.
9710         (remove_source): GDestroyNotify function for when sources
9711         are removed from the hash.
9712         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9713         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9714         (rb_daap_sources_shutdown): Update.
9715         (source_host_find): GHRFunc for finding a source by ip.
9716         (rb_daap_source_find_for_uri): Use the hash source lookup.
9718         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9719         Namespace keys.
9720         (password_check_button_toggled_cb): Handle password enabled.
9721         (share_name_entry_focus_out_event_cb): Namespace keys.
9722         Handle changes more robustly.
9723         (share_password_entry_focus_out_event_cb): Handle password entry.
9724         (add_daap_preferences): Connect to password signals.
9726         * lib/rb-preferences.h: Add DAAP keys.
9728         * data/glade/daap-prefs.glade: Add password UI.
9730         * data/rhythmbox.schemas: Add password keys.
9732         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9733         assert with warning.
9735         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9736         gconf keys to lib/rb-preferences.h.  Namespace
9737         the gconf keys.
9738         (create_share): Add password support.
9739         (enable_sharing_changed_cb): Namespaced keys.
9740         (require_password_changed_cb): Handle key change.
9741         (share_name_changed_cb): Namespaced keys.
9742         (share_password_changed_cb): Handle key change.
9743         (rb_daap_sharing_init): Namespaced keys.
9744         (rb_daap_sharing_shutdown): Ditto.
9746         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9747         Add password property.
9748         (rb_daap_share_set_name): Break out prop set function.
9749         (published_cb): New RBDaapMdnsPublisher signal handler.
9750         (name_collision_cb): Ditto.
9751         (rb_daap_share_init): Create publisher object and
9752         connect to signals.
9753         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9754         (rb_daap_share_set_property): Break out prop set functions.
9755         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9756         Unref publisher.
9757         (rb_daap_share_new): Add password argument.  Start
9758         publishing and DAAP server.
9759         (message_set_from_rb_daap_structure): Change print to debug.
9760         (server_info_cb): Set auth method to publish.
9761         (logout_cb): Handle DAAP client logout.
9762         (update_cb): Remove C++ comments.
9763         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9764         (server_cb): Add debug.
9765         (soup_auth_callback): Handle auth requests.
9766         (rb_daap_share_server_start): Split up functions for starting
9767         server and publishing.  Add auth handling to server.
9768         (rb_daap_share_server_stop): Split stop server and publish.
9769         No C++ comments.
9770         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9771         Start and stop publishing.
9772         (rb_daap_share_restart): Restart server and publishing.
9773         (rb_daap_share_maybe_restart): Conditionally restart.
9775         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9776         (rb_daap_collision_dialog_new_run): Don't use
9777         separators in dialogs.
9779         * daapsharing/rb-daap-connection.h: Add private
9780         data to class structure.
9782         * daapsharing/rb-daap-connection.c: Move
9783         some includes to top of file.  Make private
9784         data struct name consistent with others.
9785         (rb_daap_connection_class_init): Rename
9786         private.
9787         (rb_daap_connection_init): Get and store the pointer
9788         to the private data once instead of in every
9789         function.  Create a username value "Rhythmbox_VERSION".
9790         (connection_get_password): Don't get private.
9791         (build_message): Ditto.
9792         (http_response_handler): Don't init variables in
9793         declaration.  Add debug.  Spacing.
9794         (http_get, entry_set_string_prop, handle_server_info) 
9795         (handle_login, handle_update, handle_database_info) 
9796         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9797         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9798         (rb_daap_connection_state_done): Don't get private.
9799         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9800         spacing.  Correctly base64 encode the Authentication token.
9801         Add username to auth token.
9802         (rb_daap_connection_get_playlists): Don't get private.
9803         (rb_daap_connection_dispose): Ditto.  Free username.
9804         (rb_daap_connection_set_property) 
9805         (rb_daap_connection_get_property): Don't get private.
9807         * daapsharing/Makefile.am: Conditionally
9808         compile MDNS backends.  Add marshall stuff.
9810         * daapsharing/.cvsignore: Update.
9812         * configure.ac: Add conditional to see which
9813         MDNS backend we should use.
9815         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9817         * daapsharing/rb-daap-marshal.list:
9818         * daapsharing/rb-daap-mdns-browser-avahi.c:
9819         * daapsharing/rb-daap-mdns-browser-howl.c:
9820         * daapsharing/rb-daap-mdns-browser.h:
9821         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9822         * daapsharing/rb-daap-mdns-publisher-howl.c:
9823         * daapsharing/rb-daap-mdns-publisher.h:
9824         Split rb-daap-mdns.c into two classes.  One for
9825         publishing and one for browsing.  Split out
9826         the avahi and howl backends into different files.
9828         Fixes #322966
9829         
9830 2006-02-04  James Livingston  <jrl@ids.org.au>
9832         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9834         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9835         crash if metadata reader gives us NULL for strings.
9837 2006-02-03  James Livingston  <jrl@ids.org.au>
9839         * shell/rb-shell-player.c: (open_location_thread),
9840         (rb_shell_player_open_location):
9841         retrieve iradio playlists files in a thread, so that with GStreamer
9842         0.10 the UI doesn't block while connecting to stations. The streamer
9843         connection is synchronous with 0.8, so that will still block (a bit).
9844         Fixed bug 128106.
9846         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9847         because _open_entry does that automatically when it is ready to.
9849 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9851         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9852         (rb_podcast_source_post_status_cell_data_func):
9853         Leave the podcast status column blank for episodes that have not been
9854         downloaded.
9856 2006-02-03  James Livingston  <jrl@ids.org.au>
9858         Add support for source-specific toolbar items, and make the Burn
9859         Playlist item only available for playlists. Also add Update All
9860         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9862         * data/ui/rhythmbox-ui.xml:
9863         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9864         (impl_get_ui_actions): make the Burn CD toolbar item only for
9865         playlists
9867         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9868         * lib/rb-stock-icons.h: load the Eject icon as stock.
9870         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9871         action
9873         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9874         (rb_shell_select_source):
9875         * sources/rb-source.c: (rb_source_class_init),
9876         (rb_source_disconnect), (default_get_ui_actions),
9877         (rb_source_get_ui_actions):
9878         * sources/rb-source.h: add support for source-specific toolbar items
9880         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9881         Eject and Rip toolbar items
9883         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9884         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9885         item.
9887 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9889         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9890         * shell/main.c: (main):
9891         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9892         Replace all g_critical calls with g_warning, since none of them are
9893         the sort of thing the process should die over.  Fixes #329398.
9895 2006-02-03  James Livingston  <jrl@ids.org.au>
9897         * configure.ac: mention gst-plugins-base in the error message for not
9898         finding GStreamer 0.10, since not having that will cause it to fail.
9900 2006-02-03  James Livingston  <jrl@ids.org.au>
9902         * configure.ac: fix typo that means you get the wrong error message if
9903         you explicity request a particular playback engine, and it can't be
9904         found.
9906 2006-02-03  James Livingston  <jrl@ids.org.au>
9908         * data/glade/library-prefs.glade: allow the watched library location
9909         to be a non-local place.
9911 ============ Version 0.9.3
9914 2006-02-02  James Livingston  <jrl@ids.org.au>
9916         * NEWS: update NEWS
9917         * configure.ac: bump version to 0.9.3
9919         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9920         <caillon@redhat.com>, fixed bug 329517. 
9922 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9924         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9926         * widgets/rb-song-info.c: (rb_song_info_constructor):
9927         Make year and disc number fields non-editable if tag editing
9928         is disabled.  Fixes #329463.
9930 2006-02-01  James Livingston  <jrl@ids.org.au>
9932         * rhythmdb/rhythmdb-property-model.c:
9933         (rhythmdb_property_model_row_inserted_cb),
9934         (rhythmdb_property_model_prop_changed_cb),
9935         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9936         correctly. Fixes bug 327061.
9938         * rhythmdb/rhythmdb-query-model.c:
9939         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9940         the HIDDEN property when an entry is removed for being hidden.
9942         * rhythmdb/rhythmdb-query-model.h:
9943         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9944         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9945         models's "connected" property. Whatever it was needed for seems to
9946         have gone.
9948 2006-02-01  James Livingston  <jrl@ids.org.au>
9950         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9952         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9953         (rb_shell_player_playing_changed_cb): block the signal to prevent
9954         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9955         button pausing.
9957 2006-02-01  James Livingston  <jrl@ids.org.au>
9959         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9960         /should/ now work, if the neccessary plugins get ported.
9962 2006-01-30  James Livingston  <jrl@ids.org.au>
9964         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9965         string properties to "Unknown" is the string is empty. Kind of fixes
9966         bug 327495.
9968         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9969         gettext calls once, rather than once per time the function is used.
9970         This stops us making tens of thousands of gettext calls on startup,
9971         which reduces the cpu-time of startup by 10-20%
9973 2006-01-29  James Livingston  <jrl@ids.org.au>
9975         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9976         (rhythmdb_add_uri):
9977         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9978         for files containing known video streams.
9981 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9983         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9984         required.
9986 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9988         * INSTALL.quick: More random updates
9990         * rhythmdb/rhythmdb-query-model.c:
9991         (rhythmdb_query_model_class_init),
9992         (rhythmdb_query_model_set_property),
9993         (rhythmdb_query_model_get_property),
9994         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9995         Remove user sort data handling, take a property ID and a reverse
9996         flag instead.
9997         (rhythmdb_query_model_insert_into_main_list),
9998         (rhythmdb_query_model_insert_into_limited_list),
9999         (rhythmdb_query_model_do_reorder),
10000         (_reverse_sorting_func):
10001         Handle reverse sorting by calling _reverse_sorting_func, which
10002         calls the real sort function and reverses the result.
10003         (rhythmdb_query_model_set_sort_order):
10004         Allow this to be called to set the initial sort order for limited
10005         queries, and handle reverse sorting when reordering.
10006         (rhythmdb_query_model_location_sort_func),
10007         (rhythmdb_query_model_album_sort_func),
10008         (rhythmdb_query_model_artist_sort_func),
10009         (rhythmdb_query_model_genre_sort_func),
10010         (rhythmdb_query_model_track_sort_func),
10011         (rhythmdb_query_model_double_ceiling_sort_func),
10012         (rhythmdb_query_model_ulong_sort_func),
10013         (rhythmdb_query_model_date_sort_func),
10014         (rhythmdb_query_model_string_sort_func):
10015         Sort functions moved from rb-entry-view.c.
10016         * rhythmdb/rhythmdb-query-model.h:
10017         Add the sort functions, and update the changed functions.
10018         
10019         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10020         Just call _resort_model when the query model is set, since it
10021         does all the same things.
10022         (rb_entry_view_append_column):
10023         Rework bits so the rating column doesn't have to be so much of a
10024         special case.
10025         (rb_entry_view_append_column_custom):
10026         Take a property ID to sort on, rather than arbitrary custom data.
10027         (rb_entry_view_resort_model):
10028         Query model does all the reverse sort handling now.
10029         * widgets/rb-entry-view.h: Update _append_column_custom.
10031         * sources/rb-play-queue-source.c:
10032         (rb_play_queue_source_constructor):
10033         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10034         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10035         (rb_podcast_source_post_date_cell_sort_func),
10036         (rb_podcast_source_post_status_cell_sort_func),
10037         (rb_podcast_source_post_feed_cell_sort_func):
10038         Updates required by all the other changes.
10040         * rhythmdb/rhythmdb-property-model.c:
10041         (rhythmdb_property_model_drag_data_get):
10042         Sort the query results on the selected property,
10043         so they arrive in the expected order.  All the other changes were made
10044         to make this possible.  Fixes bug #327494.
10046 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10047         
10048         * shell/rb-shell-clipboard.c:
10049         Use GTK_STOCK_REMOVE icon for the remove action in
10050         the play queue too.
10052 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10054         * sources/rb-play-queue-source.c:
10055         (rb_play_queue_source_constructor),
10056         (rb_play_queue_source_update_count):
10057         Don't make the 'queued songs' column clickable,
10058         and add the queued song count to the column title.
10060 2006-01-29  James Livingston  <jrl@ids.org.au>
10062         * configure.ac: remove "experimental" marking from DAAP, and enable by
10063         default if the dependencies are found.
10065 2006-01-29  James Livingston  <jrl@ids.org.au>
10067         * NEWS: update NEWS
10069 2006-01-29  James Livingston  <jrl@ids.org.au>
10071         patch by: William Jon McCann  <mccann@jhu.edu>
10073         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10074         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10075         property used for the feed list. Fixes problem with feeds with no
10076         episodes not showing up.
10078 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10079         
10080         * shell/rb-play-order-random-by-age-and-rating.c:
10081         (rb_random_by_age_and_rating_get_entry_weight):
10082         Fix compile errors, bug #328978.
10084 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10086         * INSTALL.quick, README: Random updates
10087         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10089 2006-01-28  James Livingston  <jrl@ids.org.au>
10091         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10092         default rating back to 0 (from 2.5, which was needed for autorating).
10094         * shell/rb-play-order-random-by-age-and-rating.c:
10095         (rb_random_by_age_and_rating_get_entry_weight):
10096         * shell/rb-play-order-random-by-rating.c:
10097         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10098         2.5 for the purposes of weighting entries.
10100 2006-01-28  James Livingston  <jrl@ids.org.au>
10102         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10103         translator comments, to make it clearer what the "friendly time"
10104         formatting strings mean.
10106 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10108         * daapsharing/rb-daap-connection.c: (http_response_handler):
10109         Fix the sense of the overflow check so it'll accept valid input.
10111 2006-01-27  James Livingston  <jrl@ids.org.au>
10113         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10115         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10116         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10118 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10120         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10121         
10122         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10123         Don't include the artist field in the window title if it's blank.
10124         Fixes #325973.
10126 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10128         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10129         Use stock delete icon for move to trash and stock remove
10130         for remove menu item.
10132 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10134         * shell/rb-shell.c: (rb_shell_constructor),
10135         (idle_handle_load_complete):  Don't start the playlist save
10136         timeout until we've loaded the playlists, otherwise we'll
10137         write an empty playlist file if startup takes too long.
10139 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10141         * shell/rb-shell.c: Make view toolbar toggle use
10142         shift+ctrl+t.  Fixes #327585.
10144 2006-01-25  James Livingston  <jrl@ids.org.au>
10146         patch by: Christope Fergeau  <teuf@gnome.org>
10148         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10149         (http_response_handler): fix a potential buffer overflow issue.
10151 2006-01-25  James Livingston  <jrl@ids.org.au>
10153         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10154         Year column wide enough to display "Unknown"
10156 2006-01-25  James Livingston  <jrl@ids.org.au>
10158         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10159         (rb_podcast_source_post_status_cell_data_func): make the episode
10160         status wording better. Part of bug 321607.
10162 2006-01-25  James Livingston  <jrl@ids.org.au>
10164         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10165         others with a separator.
10167         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10168         stock Delete icon.
10170 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10172         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10174 2006-01-23  James Livingston  <jrl@ids.org.au>
10176         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10177         0.3.2. Fixed bug 328158.
10179 2006-01-23  James Livingston  <jrl@ids.org.au>
10181         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10182         (gulong_gst_date_transform), (rb_metadata_class_init):
10183         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10185 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10187         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10188         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10189         (record_entry_change): Protect added_entries and changed_entries with
10190         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10192 2006-01-23  James Livingston  <jrl@ids.org.au>
10194         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10195         the browser for audio CDs.
10197 2006-01-22  James Livingston  <jrl@ids.org.au>
10199         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10200         NEVER_FAIL as it causes the daemon-not-running error to never be
10201         reported, resulting in bug 319438 re-occurring.
10203 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10205         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10206         Just call the podcast manager's update method.  Unbreaks the 'update
10207         all feeds' command.
10209 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10211         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10213 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10215         * configure.ac: Don't disable DAAP with gstreamer 0.10
10217         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10218         (rb_daap_src_class_init), (rb_daap_src_init),
10219         (rb_daap_src_finalize), (rb_daap_src_set_property),
10220         (rb_daap_src_get_property), (rb_daap_src_write),
10221         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10222         (_split_uri), (rb_daap_src_open):
10223         * daapsharing/rb-daap-src.h:
10224         Mostly fix seeking, handle chunked transfer encoding, and port to
10225         gstreamer 0.10.
10226         
10227         * player/rb-player-gst.c:
10228         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10229         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10231         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10232         being fixed.
10234 2006-01-21  James Livingston  <jrl@ids.org.au>
10236         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10237         for Year metadata in DAAP sources. Fixes bug 327700.
10239         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10241 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10243         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10244         enum values instead of magic numbers.
10246         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10247         Add number of songs that match each property title into
10248         the cell.  Also show the number of properties that match
10249         in the All entry.
10250         (rb_property_view_constructor): Use enum values instead of
10251         magic numbers.
10253         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10254         Query podcast posts instead of feeds for browser.  Use
10255         post SUBTITLE which is the location for the property view.
10256         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10257         (construct_query_from_selection) 
10258         (rb_podcast_source_cmd_delete_feed) 
10259         (rb_podcast_source_cmd_properties_feed) 
10260         (rb_podcast_source_cmd_update_feed): Use variable to make
10261         it clear what the selection data represents.
10262         (rb_podcast_source_feed_title_cell_data_func): Add number
10263         of posts that belong to each feed in the browser.
10265         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10266         (rhythmdb_property_model_delete_prop): Decrement the refcount
10267         for the All entry.
10268         (rhythmdb_property_model_get_column_type): Use column enum
10269         values instead of magic numbers.  Add NUMBER column.
10270         (rhythmdb_property_model_get_value): Use enum.
10271         Add NUMBER column that represents the refcount for
10272         the title of that property.
10273         (rhythmdb_property_model_perform_sync): Don't fake up
10274         a title for All here.
10276         Fixes #327372.
10277         
10278 2006-01-21  James Livingston  <jrl@ids.org.au>
10280         Make Rhythmbox start faster by not blocking the UI while database
10281         initialisation and loading occurs. Closes bug 323348.
10283         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10284         start 10 seconds later instead of immediately.
10285         
10286         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10287         safe to call from any thread.
10289         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10290         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10291         so the UI doesn't block.
10293 2006-01-18  James Livingston  <jrl@ids.org.au>
10295         * sources/rb-static-playlist-source.c:
10296         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10297         cause crashes. Oops. fixes bug 327477.
10299 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10301         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10302         Set GST element state to NULL before unreffing.
10303         Fixes #327422.
10305 2006-01-18  James Livingston  <jrl@ids.org.au>
10307         * sources/rb-static-playlist-source.c:
10308         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10309         type, since the playlists can contain non-song entries. Fixes bug
10310         327448.
10312         * sources/rb-play-queue-source.c:
10313         (rb_play_queue_source_class_init): disable the search box for the
10314         queue.
10316 2006-01-18  James Livingston  <jrl@ids.org.au>
10318         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10319         dragging of podcast episodes. Fixed bug 327450.
10321 2006-01-18  James Livingston  <jrl@ids.org.au>
10323         * rhythmdb/rhythmdb-query-model.c:
10324         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10325         dragging to an emoty playlist.
10327 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10329         * sources/rb-playlist-source-recorder.c:
10330         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10332 2006-01-17  James Livingston  <jrl@ids.org.au>
10334         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10336         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10337         different number of tracks than exist on the cd, since that happens
10338         with audio+data hybrid CDs. Part of bug 325046.
10340 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10342         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10343         Remove useless call to gtk_tree_view_column_set_clickable().
10345         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10346         Don't store sort data for columns if the sort function is NULL,
10347         so only sortable columns will be in the column sort data map.
10348         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10349         on clickable.
10350         (rb_entry_view_constructor):  The 'playing icon' column is never
10351         clickable, so don't connect a signal handler for it.
10353         Fixes bug 326811.
10355 2006-01-17  James Livingston  <jrl@ids.org.au>
10357         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10358         are 0.8 only. Fix element detection.
10360         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10361         saving the new metadata failed
10363 2006-01-17  James Livingston  <jrl@ids.org.au>
10365         * shell/rb-shell-player.c: (do_next_idle),
10366         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10367         (eos_cb): release audio device when a playlist finishes. Fixes bug
10368         323679.
10370 2006-01-17  James Livingston  <jrl@ids.org.au>
10372         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10373         canonicalise the URIs when things are added via library watching.
10375 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10377         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10378         Off by one error in default speed index.
10380 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10382         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10383         (update_speed_combobox, update_speed_combobox):
10384         Get a list of the actually supported write speeds from
10385         n-c-b >= 2.13.90.  Otherwise use fallback list.
10387 2006-01-17  James Livingston  <jrl@ids.org.au>
10389         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10390         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10391         don't get stuck on recursive symlinks. Fixed bug 125452.
10393 2006-01-17  James Livingston  <jrl@ids.org.au>
10395         Add support for mass-storage audio players. Players are detected via
10396         either the HAL "audio_player" capability, or a ".is_audio_player" file
10397         in the root of the volume. Closes bug 325602.
10399         * configure.ac: separate using HAL from ipod support.
10401         * lib/rb-file-helpers.c: (rb_uri_is_local):
10402         * lib/rb-file-helpers.h: add function to determine whether a URI is
10403         local.
10405         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10406         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10407         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10408         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10409         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10410         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10411         directories can be scanned for files to add as  non-SONG entries.
10413         * shell/rb-removable-media-manager.c:
10414         (rb_removable_media_manager_mount_volume): add checking for
10415         mass-storage players.
10417         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10418         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10419         (hal_udi_is_ipod):
10420         * sources/rb-removable-media-source.c:
10421         (rb_removable_media_source_class_init),
10422         (rb_removable_media_source_constructor): move some things up to the
10423         RBRemovableMediaSource, rather than making subclasses do it.
10425         * sources/Makefile.am:
10426         * sources/rb-generic-player-source.c:
10427         * sources/rb-generic-player-source.h: add mass-storage player source.
10429 2006-01-16  James Livingston  <jrl@ids.org.au>
10431         patch by: William Jon McCann  <mccann@jhu.edu>
10433         * rhythmdb/rhythmdb-query-model.c:
10434         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10435         commit.
10437 2006-01-16  James Livingston  <jrl@ids.org.au>
10439         Patch to add support for "chained queries" and putting hidden tracks
10440         in query models. Use chained queries to add search box support to
10441         normal playlists, and to make hidden entries not get lost. Fixes bug
10442         319278.
10444         * rhythmdb/rhythmdb-query-model.h:
10445         * rhythmdb/rhythmdb-query-model.c:
10446         (rhythmdb_query_model_class_init),
10447         (rhythmdb_query_model_set_property),
10448         (rhythmdb_query_model_get_property):
10449         (rhythmdb_query_model_finalize): add "show-hidden" and
10450         "base-model" properties.
10452         (rhythmdb_query_model_set_connected),
10453         (rhythmdb_query_model_has_pending_changes),     
10454         (rhythmdb_query_model_entry_added_cb),
10455         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10456         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10457         (rhythmdb_query_model_remove_entry),
10458         (rhythmdb_query_model_drag_data_received),
10459         (rhythmdb_query_model_base_row_inserted),
10460         (rhythmdb_query_model_base_row_deleted),
10461         (rhythmdb_query_model_base_non_entry_dropped),
10462         (rhythmdb_query_model_base_complete),
10463         (rhythmdb_query_model_base_entry_prop_changed),
10464         (rhythmdb_query_model_base_rows_reordered),
10465         (rhythmdb_query_model_row_drop_possible): handle base-model by
10466         chaining events and operations where necessary. Make hidden entries
10467         not get added only if "show-hidden" is false.
10469         (rhythmdb_query_model_child_index_to_base_index),
10470         (rhythmdb_query_model_base_index_to_child_index),
10471         (rhythmdb_query_model_get_entry_index): utility functions for handling
10472         base-model entries.
10474         (rhythmdb_query_model_reapply_query): apply the current query, and
10475         remove entries that don't match it.
10477         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10478         empty queries.
10480         * sources/rb-source.c: (rb_source_set_property): move the unref later
10481         to fix problem if it is the last reference.
10483         * sources/rb-static-playlist-source.c:
10484         (rb_static_playlist_source_class_init),
10485         (rb_static_playlist_source_init),
10486         (rb_static_playlist_source_finalize),
10487         (rb_static_playlist_source_constructor), (impl_reset_filters),
10488         (impl_search), (rb_static_playlist_source_do_query),
10489         (impl_save_contents_to_xml),
10490         (rb_static_playlist_source_add_location_internal): use a chained query
10491         model to filter out hidden entries and implement the search box.
10493 2006-01-15  James Livingston  <jrl@ids.org.au>
10495         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10496         the default playlist loading, which I broke earlier.
10498 2006-01-15  James Livingston  <jrl@ids.org.au>
10500         patch by: William Jon McCann  <mccann@jhu.edu>
10502         * sources/rb-playlist-source.c: (playlist_iter_func): use
10503         totem-plparser's new API version macros to check for API changes.
10504         Handle the recent API change.
10506 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10508         * sources/rb-library-source.c: (impl_get_config_widget):
10509         Ref the preferences object to match the unref in the
10510         finalizer.  Fixes some portion of #323505.
10512 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10514         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10515         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10516         Fix valgrind warnings about accessing uninitialised values.
10518 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10520         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10522 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10524         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10525         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10526         Stops the 'now playing' icon from being displayed after the play
10527         order finishes.
10529 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10531         * podcast/rb-podcast-manager.c:
10532         (rb_podcast_manager_db_entry_deleted_cb):
10533         Don't try to delete files we never downloaded, and cancel downloads
10534         for deleted episodes.  Fixes bug #326862.
10535         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10536         Don't complain about NULL data items in the selection list.
10538 2006-01-14  James Livingston  <jrl@ids.org.au>
10540         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10541         Make the name ofthe queue non editable. Fixes bug 326918.
10543 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10545         * sources/rb-playlist-source-recorder.c (burn_cd) 
10546         (ask_rewrite_disc): Don't use our locally copied functions
10547         if we have at least 2.13.
10549 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10551         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10552         Correct the argument type for the process_error signal.
10553         May fix bug #323154.
10555 2006-01-13  James Livingston  <jrl@ids.org.au>
10557         save the queue to disk when exiting, and reload on startup. Fixed bug
10558         326677 .
10560         * shell/rb-playlist-manager.c:
10561         (rb_playlist_manager_load_playlists),
10562         (rb_playlist_manager_save_playlists_async): don't disable saving of
10563         the queue
10565         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10566         add the queue source as a gobject property.
10568         * sources/rb-play-queue-source.c:
10569         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10570         code to save the queue to xml
10572         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10573         load the queue from xml.
10574         * sources/rb-playlist-xml.h:
10576         * sources/rb-static-playlist-source.c:
10577         (rb_static_playlist_source_load_from_xml),
10578         (rb_static_playlist_source_new_from_xml):
10579         * sources/rb-static-playlist-source.h: split the playlist xml loading
10580         from the static playlist creation function, so the queue can use it.
10582 2006-01-13  James Livingston  <jrl@ids.org.au>
10584         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10585         assertion that should be there. Fixes bug 325923.
10586         
10587         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10588         return NULL if the entry already exists (e.g. as another type).
10589         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10590         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10591         (rb_podcast_manager_insert_feed):
10592         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10593         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10594         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10595         for the above function returning NULL.
10597 2006-01-12  James Livingston  <jrl@ids.org.au>
10599         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10600         is enabled. Fixes bug 326673.
10601         
10602         * doc/reference/tmpl/eggtrayicon.sgml:
10603         * doc/reference/tmpl/rb-daap-src.sgml:
10604         * doc/reference/tmpl/rb-source.sgml:
10605         * doc/reference/tmpl/rb-statusbar.sgml:
10606         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10607         * doc/reference/tmpl/rhythmbox-unused.sgml:
10608         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10610 2006-01-11  James Livingston  <jrl@ids.org.au>
10612         * widgets/rb-song-info.c: (rb_song_info_constructor),
10613         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10614         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10615         the same value for properties. From bug 326054.
10617 2006-01-11  James Livingston  <jrl@ids.org.au>
10619         * sources/rb-source.h:
10620         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10621         (rb_shell_player_set_playing_source_internal), (eos_cb):
10622         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10623         every entry.
10625         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10626         source use this. Closes bug 322077.
10628 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10630         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10631         In order for set_icon_data_from_pixbuf() to be
10632         effective, one must not set an icon in _new().
10634 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10636         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10637         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10638         (egg_tray_icon_notify): Add support for libnotify 0.3.
10639         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10640         * configure.ac: Determine the version of libnotify.
10641         Fixes #326333.
10643 2006-01-08  James Livingston  <jrl@ids.org.au>
10645         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10646         trying to share a track with unknown length.
10648 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10650         * shell/rb-shell-player.c: (rb_shell_player_init):
10651         Sync volume on startup so it doesn't default to 0.
10653 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10655         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10656         (rb_shell_player_get_property), (rb_shell_player_open_location),
10657         (info_available_cb):  Add the iradio streamed song title as a
10658         property, and emit a signal when it changes.
10660         * shell/rb-shell.c: (rb_shell_constructor),
10661         (rb_shell_player_elapsed_changed_cb),
10662         (rb_shell_player_stream_song_changed_cb):
10663         Issue a notification when the iradio song title changes.
10664         Fixes #326166.
10666 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10668         * shell/rb-shell-player.c: (rb_shell_player_init),
10669         (rb_shell_player_finalize), (rb_shell_player_set_property),
10670         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10671         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10672         (rb_shell_player_set_volume_relative),
10673         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10674         (rb_shell_player_get_mute):
10675         * shell/rb-shell-player.h:
10676         * shell/rb-shell-player.xml:
10677         Store volume as a property on RBShellPlayer, rather than in gconf.
10678         Add some methods to control volume via dbus.
10680         * shell/rb-shell.c: (rb_shell_constructor),
10681         (rb_shell_volume_widget_changed_cb),
10682         (rb_shell_player_volume_changed_cb):
10683         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10684         Update volume using player properties rather than gconf, and sync the
10685         volume with the volume control button when something else changes it.
10686         Fixes #323840.
10688 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10690         * shell/rb-tray-icon.c (tray_popup_position_menu):
10691         Make tray menu align with edge of panel.
10693         patch from Jaap A. Haitsma <jaap@haitsma.org>
10694         Fixes #319913
10696 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10697         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10698         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10699         (rb_playlist_manager_new_playlist_from_selection_data):
10700         Make a reasonable default name for playlists created from
10701         dropped data.  Fixes #326116.
10703 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10705         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10706         Use new gconf key.
10707         (burn_cd): Always eject CD after burning.  Too many drives
10708         get confused if we don't.  Save the speed used if the burn
10709         was completed successfully.
10711         * data/rhythmbox.schemas: Use our own speed instead of from
10712         n-c-b. The situation is that the default_speed for n-c-b is most
10713         likely the maximum write speed.  This is fine for n-c-b because it
10714         has burn-proof turned on.  We can't turn it on for audio CDs
10715         because the results are poor in quality.  So we'll just pick a
10716         default that should work for everyone (4).
10718 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10719         
10720         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10721         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10723 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10725         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10726         in my previous commit.  Fixes #326037.
10728 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10730         patch by: Jonathan Matthew
10732         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10733         error on Fedora Rawhide.
10735 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10737         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10738         Assume HTTP URLs ending with .xml or .rss are podcasts.
10739         (rb_shell_add_uri): Handle adding podcast feeds.
10741         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10742         Register as the source for podcast feeds.
10744 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10746         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10747         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10748         (rb_shell_preferences_append_view_page):
10749         * shell/rb-shell-preferences.h:
10750         Fix typo in function name.  Fixes #325992.
10752 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10754         * shell/rb-audioscrobbler.c:
10755         Add '+' to the list of characters to URI-encode, so it doesn't get
10756         interpreted as a space.
10758 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10760         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10761         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10762         goes away while we're still trying to log in.
10764 2006-01-06  James Livingston  <jrl@ids.org.au>
10766         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10768 2006-01-06  James Livingston  <jrl@ids.org.au>
10770         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10771         support for Year to automatic playlists. Closes bug 321341.
10773         * rhythmdb/rhythmdb-query-model.c:
10774         (rhythmdb_query_model_set_property):
10775         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10776         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10777         (rhythmdb_query_free), (rhythmdb_query_serialize),
10778         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10779         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10780         * rhythmdb/rhythmdb.h: Support special
10781         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10782         year in date.
10784         * widgets/rb-query-creator-properties.c:
10785         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10786         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10788 2006-01-06  James Livingston  <jrl@ids.org.au>
10790         * configure.ac: make the playback backend selection work correctly
10792         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10793         (rb_daap_src_class_init), (rb_daap_src_dispose),
10794         (rb_daap_src_change_state), (rb_daap_src_initialize):
10795         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10796         doesn't work for this class. Fixes bug 325934
10798 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10800         * configure.ac: Fix check for libnotify.
10802 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10804         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10805         Get name element for current lang and remove all name nodes
10806         from the XML tree.
10807         (get_playlist_name_from_xml): Try to get name element or
10808         fall back to name attribute.
10809         (rb_playlist_source_new_from_xml): Get name before turning over
10810         to sub-types for parsing so that we can remove name elements
10811         from the tree if necessary.
10813         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10814         Load default playlists file if per user playlists are not found.
10816         * data/playlists.xml.in: 
10817         * data/Makefile.am: 
10818         * data/.cvsignore: Add default set of playlists.
10819         Fixes #323004
10821 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10823         * shell/main.c: (main): Don't use the dbus interface to show the
10824         window if we're also going to use the bonobo interface.
10826 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10828         * shell/rb-history.c: (rb_history_set_playing):
10829         Allow setting the playing song to NULL.
10830         (rb_history_append), (rb_history_delete_link):
10831         Don't randomly change position when entries are added and removed,
10832         it confuses play orders.
10833         
10834         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10835         Random orders always have a next entry if the model is not empty.
10836         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10837         Go back to the start of the history if we're past its end.
10839         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10840         (rb_shuffle_play_order_go_next): Go back to the start of the history
10841         if we're past its end.
10842         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10843         the history if the current entry is removed.
10845         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10846         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10847         the play order when the query has finished. This wasted about 10% CPU
10848         while the query was running.
10850         Fixes #324641: assertion failures when the query model was changed
10851         such that the playing song was no longer present.
10853 2006-01-05  James Livingston  <jrl@ids.org.au>
10855         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10856         (rb_daap_src_dispose), (rb_daap_src_change_state):
10857         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10858         (rhythmdb_gda_finalize):
10859         * widgets/rb-cell-renderer-pixbuf.c:
10860         * widgets/rb-cell-renderer-rating.c:
10861         (rb_cell_renderer_rating_class_init),
10862         (rb_cell_renderer_rating_finalize):
10863         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10864         * widgets/rb-load-failure-dialog.c:
10865         (rb_load_failure_dialog_class_init),
10866         (rb_load_failure_dialog_finalize):
10867         * widgets/rb-rating.c: (rb_rating_class_init),
10868         (rb_rating_finalize):
10869         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10870         (rb_search_entry_finalize): use G_DEFINE_TYPE
10872         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10874 2006-01-05  James Livingston  <jrl@ids.org.au>
10876         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10878         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10879         the tarball.
10881         * shell/rb-history.c: (rb_history_class_init),
10882         (rb_history_finalize):
10883         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10884         (rb_playlist_manager_finalize):
10885         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10886         (rb_remote_init): use G_DEFINE_TYPE.
10888 2006-01-05  James Livingston  <jrl@ids.org.au>
10890         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10891         changes
10893 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10895         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10896         Disable burn action when source is not a playlist.
10897         Fixes #323578.
10899 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10901         Optionally use libnotify to display song change and other
10902         notifications, and provide an option to disable notifications.
10903         Fixes #320355 and innumerable informal complaints.
10905         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10906         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10907         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10908         (egg_tray_icon_notify):
10909         * widgets/eggtrayicon.h:
10910         * configure.ac:
10911         * shell/Makefile.am:
10912         Optionally use libnotify instead of eggnotificationbubble.
10914         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10915         (rb_tray_icon_constructor), 
10916         (rb_tray_icon_show_notifications_changed_cb),
10917         (rb_tray_icon_hide_notify_cb)
10918         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10919         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10920         EggNotificationBubble pointer to eggtrayicon.
10922         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10923         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10924         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10926 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10928         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10929         Request a minimum size for the progress bar so that
10930         the window doesn't shrink too small.
10932 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10934         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10935         (add_db_entry), (db_entry_deleted_cb):
10936         Don't track the number of songs currently present, track the next ID
10937         to assign.  Fixes potential ID conflict problems.
10938         
10939         (db_entry_changed_cb), (rb_daap_share_start_publish),
10940         (rb_daap_share_stop_publish):
10941         Watch for db entry changes, and when songs become non-hidden after
10942         a successful stat, add them to the mapping tables.   Fixes #325178,
10943         making the DAAP server usable again.
10945 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10946         
10947         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10948         (rb_statusbar_construct), (rb_statusbar_init),
10949         (rb_statusbar_finalize), (rb_statusbar_set_property),
10950         (rb_statusbar_get_property), (rb_statusbar_new),
10951         (rb_statusbar_sync_with_source):
10952         * shell/rb-statusbar.h:
10953         Remove visibility management code, stop watching for play order
10954         changes (status bar doesn't show play order any more), remove unused
10955         'player' property, and some other minor cleanup.
10956         
10957         * shell/rb-shell.c: (rb_shell_constructor),
10958         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10959         (rb_shell_sync_statusbar_visibility):
10960         Manage status bar visibility here rather than in the status bar
10961         itself, so we can take small mode into account.  Fixes #323589.
10963 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10965         * widgets/eggnotificationbubble.c: (draw_bubble):
10966         Move the bubble off the visible screen while setting up bevels.  
10967         Fixes #316810.
10969 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10971         * shell/rb-shell-player.c: (rb_shell_player_init),
10972         (rb_shell_player_finalize): 
10973         Remove unused structure members.
10974         
10975         (do_next_idle), (rb_shell_player_error):
10976         Only queue one call to do_next_idle, so we don't skip tracks if we get
10977         two errors for the same song.  Fixes #325216.
10979 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10981         * data/glade/podcast-feed-properties.glade,
10982          podcast/rb-feed-podcast-properties-dialog.c:
10983         (rb_feed_podcast_properties_dialog_init),
10984         (rb_feed_podcast_properties_dialog_update):
10985         Add 'last episode' field to the podcast feed properties dialog.
10987         * podcast/rb-feed-podcast-properties-dialog.c:
10988         (rb_feed_podcast_properties_dialog_update_last_update),
10989         (rb_feed_podcast_properties_dialog_update_last_episode),
10990          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10991         Use last-seen property for the time at which we last updated the feed,
10992         and post-time for the time the last episode was published.
10994         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10995         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10996         feed, use last-seen (which in 0.9.2 was the last post time).
10998         Fixes #323894.
11000 2006-01-01  James Livingston  <jrl@ids.org.au>
11002         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11004         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11005         year from the ipod database.
11007 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11009         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11010         Only set the pipeline back to NULL state for really uninteresting
11011         files.  This was causing deadlocks with various video files.
11012         Fixes #324912.
11014 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11016         * data/glade/song-info-multiple.glade:
11017         Add disc number label and field.
11018         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11019         (rb_song_info_constructor): 
11020         Handle widgets for disc number.
11021         (rb_song_info_sync_entries_multiple):
11022         Set disc number property on selected entries.
11023         Fixes #324777.
11025 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11027         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11028         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11029         Activate the default widget when enter is pressed in these dialogs.
11030         Fixes #322887.
11032 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11034         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11035         Use rb_shell_player_get_playing_entry, so we get the right entry
11036         when playing from the queue.  Fixes #325379.
11038 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11040         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11041         Include podcast posts with no publication date.  Typically
11042         seen in static collections rather than feeds.
11044 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11046         * shell/main.c: (main): Don't attempt to handle
11047         bonobo-only arguments if we couldn't get a bonobo
11048         client proxy.
11050 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11052         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11053         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11054         abort if daap sharing is disabled and then re-enabled.
11056 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11058         * podcast/rb-podcast-parse.c (rb_insert_item):
11059         Add debugging.
11060         (rb_podcast_parser_start_element): Support itunes:image.
11061         Add debugging.  Don't abuse the break statement.  Warn
11062         if state is unknown.
11063         (rb_podcast_parser_end_element): Add debugging.  Warn
11064         if state is unknown.
11065         (rb_podcast_parser_characters): Warn if state is unknown.
11067         Fixes parsing of feeds that use the itunes:image element.
11068         Fixes #324632
11070 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11072         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11073         (stations_view_drag_data_received_cb):
11074         Remove calls to rhythmdb_entry_lookup_by_location, as
11075         rb_iradio_source_add_station does that anyway.
11076         
11077         (rb_iradio_source_add_from_playlist):
11078         If the URL doesn't point to a playlist, add it as the stream
11079         URL instead.
11081 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11083         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11084         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11085         so we don't get an assertion failure.
11086         Fixes #325025.
11088 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11090         * shell/main.c: (load_uri_args): don't compile this in if
11091         neither bonobo nor dbus are enabled.  Fixes #324890.
11093 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11095         * sources/rb-audiocd-source.c:
11096         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11097         so it closes the device.
11099 2005-12-20  James Livingston  <jrl@ids.org.au>
11101         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11102         so that it doesn't spend forever getting stuck on the one file. Don't
11103         report errors for failing to change state on known non-audio files.
11105         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11106         audio sink creation if we can't create the gconfaudiosink. This lets
11107         it work with only gst-plugins-base on 0.10.
11109 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11111         * rhythmdb/rhythmdb-query-model.c:
11112         (rhythmdb_query_model_set_sort_order):
11113         Fix a tiny memory leak in the previous commit.
11115 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11117         * rhythmdb/rhythmdb-query-model.c:
11118         (rhythmdb_query_model_set_sort_order):
11119         Don't try to emit reorders for empty query models, since it doesn't
11120         achieve anything and it results in a few warnings.
11122 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11124         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11125         Make burn dialog non-resizable so that the expander can shrink.
11126         Fixes #308951.
11128 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11130         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11131         add entries without a location, rather than those with one.
11133 2005-12-19  James Livingston  <jrl@ids.org.au>
11135         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11136         the error isn't set.
11138 2005-12-19  James Livingston  <jrl@ids.org.au>
11139         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11140         add entries without a location. Fixes bug 324290.
11142         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11143         without a location.
11145         * shell/main.c: (main): don't crash if dbus initialisation fails
11146         without setting an error
11148 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11150         * sources/rb-library-source.c: Remove unused structure members
11151         (rb_library_source_do_query): Actually use the cached 'all' query.
11152         Fixes #324025.
11153         
11154 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11156         * sources/rb-audiocd-source.c 
11157         (rb_audiocd_get_cd_info): tab
11158         (rb_audiocd_scan_songs): Return boolean success/failure,
11159         fix error messages a bit.
11160         (metadata_cb): Don't crash if we have no tracks
11161         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11162         the CD.
11163         Fixes #324222.
11165 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11167         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11168         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11169         key.
11171         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11172         Fixes #324157
11174 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11176         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11177         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11178         (fullscreen_changed_cb): 
11179         * lib/rb-preferences.h: 
11180         * data/ui/rhythmbox-ui.xml: 
11181         * data/rhythmbox.schemas:
11182         Add fullscreen mode.
11184         Fixes #324075.
11186 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11188         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11189         configure.  It was not working with RPM.
11190         * data/Makefile.am: Switched dbus directory location to use
11191         datadir instead of variable that was not working.
11193 2005-12-13  James Livingston  <jrl@ids.org.au>
11195         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11197         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11198         the podcast browser work again. Closes bug 323856.
11200 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11202         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11203         Remove C99ism.
11205         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11206         (rb_utf_friendly_time):
11207         * lib/rb-cut-and-paste-code.h:
11209         * podcast/rb-feed-podcast-properties-dialog.c:
11210         (rb_feed_podcast_properties_dialog_parse_time):
11211         * podcast/rb-podcast-properties-dialog.c:
11212         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11213         to display the date in a more user friendly way.
11214         For example, if the feed was updated yesterday it will say:
11215         Last updated: Yesterday 10:00 AM
11216         instead of printing the date.
11218 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11220         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11221         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11222         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11223         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11224         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11225         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11226         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11227         (rb_podcast_parse_date): Add support for some real world
11228         date formats.
11229         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11230         (rb_podcast_parse_item_free): Style and no need to check
11231         for NULL before g_free.
11233         May fix #323742
11235 2005-12-12  James Livingston  <jrl@ids.org.au>
11237         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11238         with gstreamer 0.10, which replaced audioscale.
11240         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11241         function to free the SoupSession
11243         * shell/rb-source-header.c: (rb_source_header_set_property),
11244         (rb_source_header_disclosure_toggled_cb),
11245         (rb_source_header_view_browser_changed_cb),
11246         (rb_source_header_sync_control_state):
11247         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11248         * sources/rb-library-source.c: (rb_library_source_class_init):
11249         * sources/rb-source.c: (rb_source_class_init),
11250         (rb_source_get_status), (default_get_browser_key),
11251         (rb_source_get_browser_key), (rb_source_can_browse),
11252         (rb_source_notify_status_changed),
11253         (rb_source_notify_filter_changed):
11254         * sources/rb-source.h: seperate the enabling of browsers from the use
11255         of a gconf key.
11257 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11259         * data/glade/podcast-feed-properties.glade: 
11260         * data/glade/podcast-properties.glade: Use scrolled viewports
11261         for description text.  Fix regression of #320509.
11263 2005-12-11  James Livingston  <jrl@ids.org.au>
11265         * sources/rb-auto-playlist-source.c:
11266         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11267         (impl_search), (rb_auto_playlist_source_do_query),
11268         (rb_auto_playlist_source_set_query),
11269         (rb_auto_playlist_source_get_query): add support for the search box
11270         to automatic playlists.
11272         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11273         memory leak.
11275 2005-12-11  James Livingston  <jrl@ids.org.au>
11277         * NEWS: update NEWS
11279 2005-12-11  James Livingston  <jrl@ids.org.au>
11281         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11282         (rhythmdb_load), (monitor_subdirectory),
11283         (rhythmdb_sync_library_location):  start the library sync and
11284         monitoring in an idle callback.
11286 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11288         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11289         (rb_podcast_source_constructor): Remove unused pixbuf column.
11290         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11291         Use consistent style.
11293         Fixes #322961.
11295 2005-12-11  James Livingston  <jrl@ids.org.au>
11297         * rhythmdb/rhythmdb-property-model.c:
11298         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11299         (rhythmdb_property_model_insert),
11300         (rhythmdb_property_model_delete_prop):
11301         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11302         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11303         (destroy_tree_property):
11304         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11305         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11306         GMemChunks, they are crap and deprecated. Improves startup-time and
11307         memory usage slightly.
11309 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11311         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11312         Added license and website info.
11314         * MAINTAINERS.old: Add Colin.
11315         * MAINTAINERS: Add James.
11316         * AUTHORS: Put back in order.  Add extra space between name and email
11317         to make it easier to read.  Add James and jonathan.
11319         * widgets/rb-song-info.c (rb_song_info_init) 
11320         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11322 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11324         Play queue implementation. Closes bug 107787.
11326         * data/rhythmbox.schemas: add items for whether the queue should be
11327         displayed as a sidebar, and the height of the sourcelist if it is.
11329         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11330         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11331         add popups for queue as source and as sidebar.  We need a separate
11332         popup for the sidebar view because otherwise it's hard to tell which
11333         of the visible entry views the action came from.
11335         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11337         * po/POTFILES.in: Add new file
11339         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11340         Add helper function for deciding if a podcast episode is available for
11341         playback.
11343         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11344         reorder entries in the query model.
11345         (idle_process_update): Handle new update type used to insert entries
11346         at a particular position in the query model.
11347         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11348         parameter to specify the position (-1 meaning 'at the end').
11349         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11350         parameter.
11351         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11352         bad entry removal updates for entries that aren't in the model.
11353         (rhythmdb_query_model_emit_reorder): Add helper function for
11354         reordering rows.
11355         (rhythmdb_query_model_move_entry): New method for moving entries
11356         around in the model
11357         (rhythmdb_query_model_entry_added_cb),
11358         (rhythmdb_query_model_update_limited_entries),
11359         (rhythmdb_query_model_do_reorder),
11360         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11361         use rhythmdb_query_model_emit_reorder where appropriate.
11363         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11364         Don't allow the queue to be deleted.
11365         (handle_playlist_entry_cb): Update for method signature change
11366         (rb_playlist_manager_save_playlists_async),
11367         (rb_playlist_manager_get_playlists): Don't save the play queue,
11368         don't report it as a playlist.
11370         * shell/rb-play-order.c: Include queue play order in the list of
11371         available orders.
11373         * shell/rb-shell.c
11374         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11375         for access to the clipboard object.
11376         (rb_shell_constructor): Handle playing-from-queue signal to update the
11377         sourcelist display; add queue sidebar in to UI, listen for queue
11378         sidebar pane changes, and read initial settings from gconf.
11379         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11380         Only tell the sourcelist the source has changed if the new source is 
11381         not the queue, as we update the sourcelist differently in that case.
11382         (rb_shell_set_window_title): Only use the cached window title if the
11383         playing state was the same when it was created.
11384         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11385         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11386         sourcelist is hidden and the queue is shown as a source.
11387         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11388         mode, since it doesn't make any sense.
11389         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11390         too.
11391         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11392         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11393         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11394         playing from queue shown as sidebar.
11396         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11397         MusicProperties action here from rb-shell-player.c, since it acts like
11398         cut/copy/paste etc.
11399         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11400         (rb_shell_clipboard_get_property): new property for queue source.
11401         Watch for selection changes in the sidebar entry view as well as the
11402         normal one.
11403         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11404         actions and MusicProperties.
11405         (rb_shell_clipboard_cmd_queue_delete),
11406         (rb_shell_clipboard_cmd_add_song_to_queue),
11407         (rb_shell_clipboard_cmd_song_info),
11408         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11410         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11411         actually came from (could be the playing source, or the queue), add a 
11412         new play order object for the queue, add a property for the queue
11413         source, add a signal for when we switch between playing from the
11414         source and from the queue.
11415         (rb_shell_player_set_property): Handle playing directly from the
11416         queue so we stop once the queue is empty.  Create queue play order
11417         when we get the queue source.
11418         (rb_shell_player_get_playing_source): Return the source we're actually
11419         playing from.
11420         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11421         that's where it is.
11422         (rb_shell_player_set_playing_entry): Update the queue play order if 
11423         that's where we're playing from.
11424         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11425         queue into consideration too.
11426         (swap_playing_source): Helper function for switching the playing
11427         source.
11428         (rb_shell_player_do_previous): Check the queue, even though there's
11429         never a previous entry in it (yet), swap playing source if it changed.
11430         (rb_shell_player_do_next): Check the queue for entries to play before
11431         the normal play order, and swap playing source if it changed.
11432         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11433         entries to go to as well.
11434         (rb_shell_player_playpause): Check the queue before the selection and
11435         the play order, and swap playing source if it changed.
11436         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11437         (rb_shell_player_entry_activated_cb): Use
11438         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11439         activating queue entries work properly (move the activated entry to
11440         the start of the queue and then play it); if we were playing from the
11441         queue, clear its playing entry so it'll start again from the start
11442         after the activated entry.
11443         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11444         to rb-shell-clipboard.c
11445         (actually_set_playing_source): Add helper for updating the playing
11446         source.
11447         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11448         signal if we stop or start doing so; use actually_set_playing_source; 
11449         emit playing-source-changed if we actually did change source.
11451         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11452         rb_static_playlist_source_add_location.
11454         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11455         enqueueing of songs from the library.
11457         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11458         enqueueing of sonsg from playlists.
11459         (rb_playlist_source_entry_added_cb): Add extra parameter for
11460         rhythmdb_query_model_add_entry.
11461         
11462         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11463         Implement (can_)add_to_queue for this class.
11464         (rb_podcast_source_entry_activated): Use
11465         rb_podcast_manager_entry_downloaded.
11466         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11467         been downloaded is selected.
11468         (impl_add_to_queue): Only add downloaded entries to the queue.
11470         * sources/rb-source.{c,h}:
11471         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11472         methods.
11473         (rb_source_class_init): Don't allow enqueueing by default; implement 
11474         add_to_queue though.
11475         (default_add_to_queue): Add all selected entries to the queue.
11476         
11477         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11478         would be playing if there wasn't anything in the queue).
11479         (set_source_playing): Helper function for manipulating tree store.
11480         (rb_sourcelist_set_playing_source): Use set_source_playing
11481         (rb_sourcelist_preempt_playing_source): Update preempted source
11482         pointer, manipulate source states.
11484         * sources/rb-static-playlist-source.{c,h}:
11485         (rb_static_playlist_source_add_location_internal),
11486         (rb_static_playlist_source_add_location),
11487         (rb_static_playlist_source_add_entry): Add index parameter for
11488         specifying where in the playlist the new entry goes.
11489         (rb_static_playlist_source_new_from_xml), (impl_paste),
11490         (rb_static_playlist_source_add_list_uri),
11491         (rb_static_playlist_source_add_location_swapped),
11492         (rb_static_playlist_source_add_locations),
11493         (rb_static_playlist_source_non_entry_dropped),
11494         (rb_static_playlist_source_row_inserted):
11495         Handle new index parameter everywhere it appears
11496         (rb_static_playlist_source_move_entry): New method for moving entries
11497         around in the playlist.
11499         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11500         warnings when trying to scroll entry views that have never been
11501         displayed.
11503         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11504         play order that removes the old entry when switching to a new one.
11506         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11507         static playlist subclass that has a second entry view for the sidebar
11508         view using alternate formatting, and that displays the number of
11509         entries it contains in its source list entry.
11511 2005-12-10  James Livingston  <jrl@ids.org.au>
11513         * rhythmdb/rhythmdb-query-model.c:
11514         (rhythmdb_query_model_add_entry),
11515         (rhythmdb_query_model_drag_data_received):
11516         * sources/rb-static-playlist-source.c:
11517         (rb_static_playlist_source_non_entry_dropped): when things are
11518         dropped, ignore any blank lines in the list of uris. Make the source
11519         responsible for adding new items to the db.
11521         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11522         empty string.
11524 2005-12-10  James Livingston  <jrl@ids.org.au>
11526         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11527         (rb_shell_player_sync_buttons),
11528         (rb_shell_player_selection_changed_cb): watch for the
11529         "selection-changed" signal, so that the Song Properties get enabled.
11530         Closes bug 323694.
11532 2005-12-10  James Livingston  <jrl@ids.org.au>
11534         * data/rhythmbox.schemas: fix the gconf schema
11536 2005-12-10  James Livingston  <jrl@ids.org.au>
11538         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11539         the decoded-pad callback with gstreamer 0.8, it causes problems.
11541 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11543         Remove more junk from RBEntryView. Closes bug 323640.
11545         * widgets/rb-entry-view.{c,h}:
11546         Remove unused private structure members, replace 'playing' boolean
11547         with an enum (so we know if we're paused too), and store a pointer to
11548         the RBShellPlayer too.  
11549         (rb_entry_view_class_init), (rb_entry_view_set_property),
11550         (rb_entry_view_get_property):
11551         Remove 'entry-selected' and 'changed' signals and
11552         'playing-entry' property, add 'selection-changed' signal and
11553         'shell-player' and 'playing-state' properties.
11554         (rb_entry_view_new): Take the shell player object reference
11555         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11556         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11557         No longer needed, shell player is the place to get this information.
11558         (rb_entry_view_busy), (rb_entry_view_get_duration),
11559         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11560         (rb_entry_view_get_next_from_entry),
11561         (rb_entry_view_get_previous_from_entry),
11562         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11563         (rb_entry_view_get_num_entries):
11564         Removed, callers should go to the query model directly.
11565         (rb_entry_view_playing_song_changed): Update active query model, emit
11566         row changed signals to update pixbufs, and scroll to the playing song
11567         when the playing song changes, based on a signal from the shell
11568         player.
11569         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11570         (emit_entry_changed): Evil, removed.
11571         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11572         selection-changed signal.
11573         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11574         Remove selection lock.  It didn't work anyway.
11575         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11576         (rb_entry_view_emit_row_changed): Simple helper function to emit
11577         row-changed signals.
11579         * widgets/Makefile.am: Entry view needs headers from the shell/
11580         directory.
11581         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11583         scrolling the entry view to show the entry being displayed.
11584         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11585         'source' property so we can watch for query model changes.
11586         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11587         (rb_song_info_set_property): Watch for query model changes, don't
11588         watch for entry view changes.
11589         (rb_song_info_new): Take source as a parameter, use the source's entry
11590         view unless one was specifically supplied.
11591         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11592         Use query model rather than entry view to move between songs.
11593         (rb_song_info_update_buttons): Use query model.
11594         (rb_song_info_query_model_changed_cb): Handle query model changes.
11596         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11597         Only one copy of the code to enable/disable the CD burning action
11598         (rb_playlist_manager_playlist_entries_changed):
11599         Use the query model to get the number of entries, not the entry view.
11601         * shell/rb-play-order-random-by-age-and-rating.c,
11602         shell/rb-play-order-random-by-age.c,
11603         shell/rb-play-order-random-by-rating.c,
11604         shell/rb-play-order-random-equal-weights.c:
11605         Use G_DEFINE_TYPE
11607         * shell/rb-shell-player.{c,h}:
11608         Remove a few unused entries from the structure.
11609         (rb_shell_player_set_property):
11610         Don't use the 'changed' signal on the entry view (it's evil)
11611         (rb_shell_player_have_first): No longer needed
11612         (rb_shell_player_play): Just tell the entry view it's playing
11613         (rb_shell_player_playpause): Tell the entry view it's paused
11614         when pausing.
11615         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11616         (rb_shell_player_property_row_activated_cb):
11617         Get the entry to play using the query model, not the entry view.
11618         (rb_shell_player_sync_buttons): Update entry view state while we're
11619         here.
11620         (rb_shell_player_set_playing_source_internal): Update entry view state
11621         (rb_shell_player_get_playing): Ask the entry view, not the player.
11622         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11623         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11624         the window title and tray icon tooltip.
11625         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11627         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11628         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11629         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11630         view constructor, pass the source in to the song info widget
11631         constructor.
11633         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11634         Use 'selection-changed' instead of 'changed', since that's what the
11635         clipboard cares about.
11636         (rb_shell_clipboard_set_source): Don't die if source == NULL
11638 2005-12-10  James Livingston  <jrl@ids.org.au>
11640         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11641         * sources/rb-playlist-source-recorder.c:
11642         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11643         stuff not use the deprecated API when compiled against 2.13
11645 2005-12-10  James Livingston  <jrl@ids.org.au>
11647         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11649         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11650         problem where the genre tag was getting set to the artist. Closes bug
11651         323642.
11653 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11655         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11656         Return NULL if can't get first iter.
11658         Fixes #323663
11660 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11662         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11663         updated rb_station_properties_dialog_new API.
11664         (rb_iradio_source_add_from_playlist): New public function.
11665         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11667         * shell/rb-shell.c (new_station_location_added): Handle
11668         iradio location added signal.
11669         (rb_shell_cmd_new_station): Use new iradio station dialog.
11671         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11672         (rb_station_properties_dialog_new): Don't squeeze new
11673         station functionality into this class.
11674         (rb_station_properties_dialog_response_cb): ditto.
11675         (rb_station_properties_dialog_update_title): Make
11676         consistent with other properties dialogs.
11677         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11679         * iradio/rb-new-station-dialog.[ch]: 
11680         * iradio/Makefile.am: Add new station dialog.
11682         * data/glade/station-new.glade: New file based on
11683         new podcast feed dialog.
11684         * data/glade/station-properties.glade: Updated to
11685         be consistent with song properties dialog.
11687         Fixes #323306.
11689 2005-12-10  James Livingston  <jrl@ids.org.au>
11691         patch by: Ståle Lyngaas <staale@lyngaas.com>
11693         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11694         submit songs longer than 30 minutes. Fixes bug 323639.
11696 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11698         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11699         async save function.
11700         (rb_shell_finalize): Remove save timeout sources.  Reorder
11701         steps a bit to make saving db and playlists a bit more
11702         failsafe in case something goes wrong later.
11703         (rb_shell_constructor): Keep track of save timeout source.
11704         (add_to_library_response_cb): Keep track of db save timeout source.
11706         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11707         g_atomic.
11708         (rb_playlist_manager_shutdown): New function to shutdown
11709         threads etc. before exit.
11710         (rb_playlist_manager_finalize): Moved handling outstanding
11711         threads stuff to shutdown since if there are outstanding threads
11712         they hold a ref and finalize is never called.
11713         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11714         of signal which may be required for sync save.
11715         (rb_playlist_manager_save_playlists_async): Renamed old
11716         save_playlists to save_playlists_async.  Use g_atomic.
11717         (rb_playlist_manager_save_playlists): New function to
11718         perform sync saves (symmetric with RhythmDB API).
11719         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11721         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11722         Style consistency anality.
11723         (rhythmdb_finalize): Remove save timeout source.
11724         (rhythmdb_set_property, rhythmdb_get_property) 
11725         (rhythmdb_process_events): More anality and keep track of
11726         save timeout source.
11727         (action_thread_main): No need to call g_thread_exit.
11728         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11729         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11730         (write_encoded_gvalue, read_encoded_property): La la la.
11732         Fixes #322940.
11734 2005-12-10  James Livingston  <jrl@ids.org.au>
11736         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11737         non-audio files.
11739 2005-12-10  James Livingston  <jrl@ids.org.au>
11741         * Makefile.am:
11742         * configure.ac: remove the rpm spec files, so that automake works.
11743         oops
11745         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11746         locking issue
11748 2005-12-09  James Livingston  <jrl@ids.org.au>
11750         * debian/: try to get cvs to actually remove the files
11752 2005-12-09  James Livingston  <jrl@ids.org.au>
11754         * rhythmbox.spec.in:
11755         * debian/: remove the distro package stuff, they are *really* old, and
11756         downstream manage it anyway.
11758 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11760         Rework play orders to work off query models rather than 
11761         entry views, and track the playing entry themselves rather
11762         than relying on the entry view to do it.  This makes the entry
11763         view mostly just a widget. Closes bug 323612.
11765         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11766         Use query model rather than entry view to get the number
11767         of entries in playlists.
11769         * rhythmdb/rhythmdb-query-model.{c.h}
11770         (rhythmdb_query_model_tree_path_to_entry),
11771         (rhythmdb_query_model_iter_to_entry),
11772         (rhythmdb_query_model_get_next_from_entry),
11773         (rhythmdb_query_model_get_previous_from_entry):
11774         New utility functions for iterating through query models.
11775         (rhythmdb_query_model_compute_status_normal):
11776         Have one copy of this code, not four.
11778         * shell/rb-play-order.{c,h}:
11779         Add signals for when next/previous availability changes, and
11780         when the playing entry is removed, and add a property for
11781         the current playing entry.  Add gtkdoc comments too.
11782         (rb_play_order_class_init): Add new property and signals.
11783         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11784         (rb_play_orer_query_model_changed_cb),
11785         (rb_play_order_query_model_changed): 
11786         Use query model rather than entry view.
11787         (rb_play_order_set_property), (rb_play_order_get_property):
11788         Handle new playing-entry property.  Call playing_entry_changed virtual
11789         method so subclasses can do any processing required.
11790         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11791         (rb_play_order_set_playing_entry):
11792         Just use the playing-entry property.
11793         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11794         Utility methods for subclasses.
11795         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11796         Update next/previous availability, check if the playing entry
11797         was removed.
11798         (default_playing_entry_removed):
11799         Keep the current behaviour of just stopping playback when the 
11800         playing entry is deleted.
11801         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11802         these for subclasses that don't have go_next/go_previous, but do
11803         have get_next/get_previous.
11804         (rb_play_order_update_have_next_previous): Emit signal if the
11805         availability of next/previous entries has changed.
11807         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11808         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11809         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11810         methods.
11811         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11812         on the last song in the shuffled order, go back to the start. This
11813         means if you press 'play' again you'll get the whole order again, not
11814         just one song.
11816         * shell/rb-shell-player.c:
11817         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11818         play order rather than the entry view.
11819         (rb_shell_player_set_property): Update the play order when the
11820         selected source changes and we aren't playing anything.
11821         (rb_shell_player_sync_play_order): Copy the playing entry across to
11822         the new play order so playback continues from the same song, and watch
11823         for updates to have_next/have_previous.
11824         (rb_shell_player_play_order_update_cb): Enable/disable the
11825         next/previous actions when next/previous entry availability changes.
11826         (rb_shell_player_jump_to_current): Just use the play order's idea of
11827         what's playing, not the entry view's; if not playing anything, clear
11828         the selection, so when a playlist ends and you hit play again, it'll
11829         start at the start rather than the end.
11830         (rb_shell_player_do_previous): restructure a bit.
11831         (rb_shell_player_do_next): restructure, jump to new playing entry in
11832         an idle handler instead of directly.
11833         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11834         song if there is one.
11835         (rb_shell_player_playpause): Jump to playing song, don't update the
11836         play order if we got the song from the selection.
11837         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11838         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11839         looks after next/previous actions now.  Don't break if called while
11840         there is no selected source.
11841         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11842         (rb_shell_player_set_playing_source_internal),
11843         (rb_shell_player_error): No need to track the attempted playing entry
11844         any more, since the play order does that.
11846         * shell/rb-shell.c:
11847         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11848         rb_shell_player_get_playing_entry rather than going through the entry
11849         view.
11851         * shell/rb-statusbar.c (rb_statusbar_set_property),
11852         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11853         than the entry view for status bar text changes.
11854         (rb_statusbar_sync_status): Ask the query model directly
11856         * sources/rb-source.{c}: Add query model property.
11857         (default_get_status): Get status text from query model, should be
11858         suitable for most sources.
11859         (rb_source_set_property): Listen for changes to the query model 
11860         to update the status text.
11861         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11862         (idle_emit_status_changed): Emit status-changed signals when query
11863         model changes. 
11865         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11866         (impl_get_status): Not needed, RBSource does this now
11867         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11868         Update RBSource's query model reference.
11870         * sources/rb-playlist-source.c:
11871         Remove query-model property, since RBSource has one now
11872         (impl_get_status): Not needed, RBSource does this now
11873         (rb_playlist_source_row_deleted): Use query model iterator helper
11874         function.
11875         (rb_playlist_source_set_query_model): Update RBSource's query model
11876         reference too.
11878         * sources/rb-iradio-source.c:
11879         (impl_get_status): Ask the query model directly.
11880         (rb_iradio_source_do_query): Update RBSource's query model reference
11881         when we create a new query.
11883         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11884         Use query model rather than entry view.
11886         * widgets/rb-entry-view.{c,h}: 
11887         Remove playing_entry_deleted signal (now in play order).
11888         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11889          as RhythmDBQueryModel has equivalent helper functions.
11890         (rb_entry_view_*): Use query model helpers instead of the above two
11891         functions.
11893 2005-12-09  James Livingston  <jrl@ids.org.au>
11895         * configure.ac:
11896         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11897         (rb_recorder_enabled):
11898         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11899         * sources/rb-playlist-source-recorder.c:
11900         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11901         whether libnautilusburn has the _drive_unref function, and if so use
11902         it. Stops it complaining about deprecated API.
11904 2005-12-09  James Livingston  <jrl@ids.org.au>
11906         * configure.ac: drop the minimum gstreamer version back down, it
11907         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11909 2005-12-09  James Livingston  <jrl@ids.org.au>
11911         * widgets/rb-song-info.c: (rb_song_info_class_init),
11912         (rb_song_info_show), (rb_song_info_constructor),
11913         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11914         (rb_song_info_forward_clicked_cb): save metadata changes when the
11915         Next/Previous buttons are pressed (closes bug 320952). use
11916         G_DEFINE_TYPE.
11918 2005-12-09  James Livingston  <jrl@ids.org.au>
11920         Patch by: <jonathan@kaolin.hn.org>
11922         * sources/rb-iradio-source.c:
11923         (stations_view_drag_data_received_cb):
11924         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11925         of urls. Fixes bug 323610.
11927 2005-12-09  James Livingston  <jrl@ids.org.au>
11929          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11930          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11932         * configure.ac:
11933         * metadata/rb-metadata-gst.c:
11934         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11935         (rb_player_construct), (rb_player_new):
11936         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11937         (rb_recorder_gst_signal_error), (pipe_message),
11938         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11939         (rb_recorder_new):
11940         * shell/main.c: (main):
11941         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11942         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11944 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11946         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11948         * shell/rb-playlist-manager.c:
11949           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11950           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11951           (rb_playlist_manager_set_automatic_playlist),
11952           (rb_playlist_manager_cmd_new_automatic_playlist),
11953           (rb_playlist_manager_cmd_edit_automatic_playlist):
11954            Use new playlist subclasses.
11955           (rb_playlist_manager_save_playlists): Only read the dirty flag
11956            for local playlists, minor pointless reformatting
11958         * sources/Makefile.am: add new files
11960         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11961           split lots of stuff out into two
11962           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11963           make RBPlaylistSource abstract, add virtual methods for showing a
11964           popup for the entry view and saving the playlist to XML.
11965           Other stuff is subclass-specific, or already virtual in RBSource.
11967         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11968           in one place, since they're used across three source files now
11970         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11971           Use new static playlist class
11973         * sources/rb-ipod-source.c: (add_rb_playlist):
11974           Use new static playlist class
11976         * sources/rb-static-playlist-source.{c,h},
11977         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11978         files.
11980         * po/POTFILES.in: add new files
11982 2005-12-07  James Livingston  <jrl@ids.org.au>
11984         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11985         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11986         metadata loads not attempt to write changes to disk.
11988 2005-12-07  James Livingston  <jrl@ids.org.au>
11990         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11992         * data/glade/song-info-multiple.glade:
11993         * widgets/rb-song-info.c: (rb_song_info_constructor),
11994         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11995         multiple songs at once.
11997 2005-12-06  James Livingston  <jrl@ids.org.au>
11999         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12000         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12002 2005-12-06  James Livingston  <jrl@ids.org.au>
12004         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12005         names rather than adding a horizontal scroll bar.
12007 2005-12-06  James Livingston  <jrl@ids.org.au>
12009         * rhythmdb/rhythmdb-query-model.c:
12010         (rhythmdb_query_model_update_limited_entries),
12011         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12012         messages
12014         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12015         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12016         always hide rather than remove DB entries, which will make RB not lose
12017         information when tag editing happens or people move files to trash and
12018         then change their mind. Also fix some races where the monitoring code
12019         would notice the temporary files generated by saving metadata.
12021 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12023         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12024         Hide internals and add tooltips.
12025         (rb_song_display_box_size_allocate): Hide internals.
12026         (sanitize_string, info_url): Copied from rb-header.
12027         (rb_song_display_box_sync): New public function.
12029         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12030         (rb_header_init): Use a separate row for the seek bar.
12031         (rb_header_finalize): Don't unref widgets.
12032         (rb_header_sync): Use rb_song_display_box_sync.
12033         (rb_header_set_urldata)
12034         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12035         (rb_header_set_show_position_slider): Set visibility of seek bar.
12036         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12037         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12039         * shell/rb-statusbar.c (rb_statusbar_init)
12040         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12042         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12043         (rb_shell_constructor): Remove hseparator.  Monitor
12044         toolbar visibility settings.  Add toolbar.  Add
12045         volume button to toolbar.  Add tooltips for volume button.
12046         (rb_shell_view_toolbar_changed_cb) 
12047         (rb_shell_sync_toolbar_visibility)
12048         (toolbar_visibility_changed_cb): Set visibility of
12049         toolbar.
12050         (rb_shell_sync_smalldisplay): Set the toolbar style to
12051         icons only when in small display mode.
12052         (rb_shell_volume_widget_changed_cb): Save volume setting.
12054         * shell/rb-shell-player.c (rb_shell_player_constructor):
12055         Remove pause and stop actions.  Make play action "important"
12056         so that text is visible in horizontal toolbar position.
12057         Remove control buttons.
12058         (rb_shell_player_init) 
12059         (rb_shell_player_sync_song_position_slider_visibility):
12060         Set visbibility of seek bar.
12061         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12062         Make play action a toggle.
12063         (rb_shell_player_sync_volume): Volume control moved
12064         to player.
12065         (gconf_song_position_slider_visibility_changed):
12066         Set visbibility of seek bar.
12067         (rb_shell_player_sync_buttons):
12068         Set sensitivity of actions instead of buttons.
12069         (rb_shell_player_playing_changed_cb): Add callback
12070         for player notify::playing changes.
12072         * lib/rb-preferences.h: Add hide toolbar and seek
12073         bar key names.
12075         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12076         seek bar menu items.  Remove pause and stop actions
12077         from the control menu.  Add a toolbar.
12079         * data/rhythmbox.schemas: Add toolbar_hidden
12080         song_position_slider_hidden keys.
12082         Patch by: James Livingston  <jrl@ids.org.au>
12083                   William Jon McCann  <mccann@jhu.edu>
12084         Fixes #316238.
12086 2005-12-05  James Livingston  <jrl@ids.org.au>
12088         * data/glade/library-prefs.glade:
12089         * data/rhythmbox.schemas:
12090         * lib/rb-preferences.h:
12091         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12092         (rhythmdb_sync_library_location):
12093         * sources/rb-library-source.c: (rb_library_source_class_init),
12094         (rb_library_source_finalize), (rb_library_source_constructor),
12095         (impl_get_config_widget), (rb_library_source_preferences_sync),
12096         (rb_library_source_watch_toggled_cb): allow people to disable library
12097         monitoring, because with nothing set the file chooser button selects
12098         the Home folder (and hence that will get monitored).
12100 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12102         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12103         attempt to fix problem with RSS parsing showing invalid feed types.
12104         Fixes bug 323153
12106 2005-12-04  James Livingston  <jrl@ids.org.au>
12108         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12109         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12110         importing a remote directory not block the UI.
12112 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12114         * data/glade/podcast-feed-properties.glade:
12115         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12117 2005-12-04  James Livingston  <jrl@ids.org.au>
12119         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12121         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12122         to && to fix a mistake in the earlier podcast patch.
12124 2005-12-03  James Livingston  <jrl@ids.org.au>
12126         * data/glade/podcast-new.glade:
12127         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12128         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12130         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12131         GValue, which stops occasional errors.
12133         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12134         compile issue.
12136 2005-12-03  James Livingston  <jrl@ids.org.au>
12138         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12140         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12141         crasher with some podcasts feeds.
12143 2005-12-03  James Livingston  <jrl@ids.org.au>
12145         * data/rhythmbox.schemas: fix the gconf schema
12147 2005-12-03  James Livingston  <jrl@ids.org.au>
12149         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12150         add a selection timeout to the sourcelist. This lets you hold a track
12151         over the playlist source, and then have the view switch so you can
12152         insert the track in the middle of the playlist. Closes bug 323044.
12154         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12155         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12156         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12157         (rb_tree_dnd_add_drag_dest_support):
12158         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12159         timeout.
12161         * sources/rb-sourcelist-model.c:
12162         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12163         the source list.
12165 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12167         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12168         links, so that the text doesn't touch the button
12170 2005-12-02  James Livingston  <jrl@ids.org.au>
12172         Add full support for gnome-vfs remote files. Closes bug 140355.
12174         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12175         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12176         for authentication information from the user doesn't block the UI.
12178         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12180         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12181         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12182         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12183         (rhythmdb_process_stat_event), (emit_load_error_idle),
12184         (rhythmdb_process_metadata_load),
12185         (rhythmdb_process_queued_entry_set_event),
12186         (rhythmdb_process_file_created_or_modified),
12187         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12188         (queue_stat_uri), (add_thread_main),
12189         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12190         (rhythmdb_load), (rhythmdb_save_thread_main),
12191         (threadsafe_entry_set), (rhythmdb_query_internal),
12192         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12193         (rhythmdb_do_full_query_internal),
12194         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12195         (rhythmdb_volume_unmounted_cb),
12196         (rhythmdb_check_changed_file): trivial changes to support the
12197         asynchronous stats.
12199         * shell/main.c: (main): activate the authentication manager.
12201         * shell/rb-playlist-manager.c:
12202         (rb_playlist_manager_cmd_load_playlist),
12203         (rb_playlist_manager_cmd_save_playlist):
12204         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12205         (rb_shell_cmd_add_file_to_library):
12206         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12207         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12208         remote files.
12210 2005-12-02  James Livingston  <jrl@ids.org.au>
12212         * shell/rb-playlist-manager.c: makes playlist menu items use the
12213         elipses correctly. Fixes bug 322283.
12215 2005-12-02  James Livingston  <jrl@ids.org.au>
12217         * shell/rb-playlist-manager.c:
12218         (rb_playlist_manager_load_playlists): fix silly mistake
12220 2005-12-02  James Livingston  <jrl@ids.org.au>
12222         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12223         print out metadata-write unless --debug was passed.
12225         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12226         * shell/rb-playlist-manager.c:
12227         (rb_playlist_manager_load_playlists): block writes to disk if they are
12228         still being loaded.
12230 2005-12-02  James Livingston  <jrl@ids.org.au>
12232         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12233         ctrl-T, because Ctrl-D is used by "small mode"
12235 2005-12-02  James Livingston  <jrl@ids.org.au>
12237         * shell/rb-shell-preferences.c:
12238         (rb_shell_preferences_append_view_page):
12239         * sources/rb-library-source.c: (impl_get_config_widget):
12240         * sources/rb-podcast-source.c: (impl_get_config_widget):
12241         * sources/rb-source.c: (rb_source_get_config_widget):
12242         * sources/rb-source.h: Make the preference actually work.
12244         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12245         if Rhythmbox is being run for the first time.
12247 2005-12-02  James Livingston  <jrl@ids.org.au>
12249         Add support for Rhythmbox to watch your library, and automatically add
12250         new tracks. Fixes bug 160159.
12252         * data/glade/library-prefs.glade: add "library location" preference
12253         * data/rhythmbox.schemas: add gconf key for the library location
12255         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12256         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12257         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12258         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12259         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12260         (rhythmdb_load_thread_main), (rhythmdb_load),
12261         (monitor_subdirectory), (monitor_library_directory),
12262         (monitor_entry_file), (rhythmdb_sync_library_location),
12263         (library_location_changed_cb), (rhythmdb_check_changed_file),
12264         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12265         specifiec in the gconf key for new additions. Also fix monitoring code
12266         so that it works properly, and notices deletions.
12268         * lib/rb-preferences.h:
12269         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12270         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12271         * shell/rb-audioscrobbler.h:
12272         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12273         (rb_shell_preferences_append_view_page),
12274         (rb_shell_preferences_new):
12275         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12276         it's preferences pane, so that we don't need #ifdef's through
12277         rb-shell-preferences.
12279         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12280         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12281         "preferences" property, so that sources can acccess it. This is needed
12282         because the library location pref needs to take effect when the window
12283         is closed.
12285         * sources/rb-library-source.c:
12286         (rb_library_source_library_location_changed),
12287         (rb_library_source_dispose), (rb_library_source_finalize),
12288         (rb_library_source_constructor), (impl_get_config_widget),
12289         (rb_library_source_preferences_sync),
12290         (rb_library_source_process_library_location_change),
12291         (rb_library_source_prefs_update),
12292         (rb_library_source_process_library_handle_selection),
12293         (rb_library_source_library_location_cb): set up and control the
12294         "library location" preference.
12296         * sources/rb-audiocd-source.c:(rb_source_class_init):
12297         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12298         code.
12300 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12302         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12303         (rb_feed_podcast_properties_dialog_update_title): 
12304         * data/glade/podcast-feed-properties.glade:
12305         Make the feed properties dialog consistent with the podcast
12306         properties dialog.
12308 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12310         * metadata/.cvsignore: 
12311         * po/.cvsignore: 
12312         * podcast/.cvsignore: Updated.
12314         * shell/main.c (main): Support DBus 0.6 flags.
12316 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12318         * data/ui/rhythmbox-ui.xml:
12319         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12320         (rhythmbd_entry_move_to_trash_set_error),
12321         (rhythmdb_entry_move_to_trash):
12322         * rhythmdb/rhythmdb.h:
12323         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12324         (rb_shell_clipboard_cmd_delete),
12325         (rb_shell_clipboard_cmd_move_to_trash):
12326         * sources/rb-library-source.c: (rb_library_source_class_init),
12327         (impl_delete), (impl_move_to_trash):
12328         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12329         (impl_delete), (impl_move_to_trash):
12330         * sources/rb-removable-media-source.c:
12331         (rb_removable_media_source_class_init):
12332         * sources/rb-source.c: (rb_source_class_init),
12333         (rb_source_can_move_to_trash), (rb_source_delete),
12334         (rb_source_move_to_trash):
12335         * sources/rb-source.h:
12336         Add move_to_trash member for the sources, implement move to trash for
12337         the library and playlists
12338         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12339         local files to the trash, and deleting them from the database
12340         (Closes: #315389)
12342 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12344         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12345         (rb_tray_icon_init, rb_tray_icon_finalize): 
12346         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12347         (rb_statusbar_init, rb_statusbar_finalize): 
12348         * shell/rb-source-header.c (rb_source_header_class_init) 
12349         (rb_source_header_init, rb_source_header_finalize): 
12350         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12351         (rb_shell_finalize): 
12352         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12353         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12354         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12355         (rb_shell_player_init, rb_shell_player_finalize): 
12356         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12357         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12358         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12359         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12360         * shell/rb-play-order.c (rb_play_order_class_init) 
12361         (rb_play_order_init, rb_play_order_finalize): 
12362         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12363         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12364         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12365         (rb_random_play_order_init, rb_random_play_order_finalize): 
12366         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12367         (rb_history_finalize): 
12368         * shell/rb-commander.c (rb_commander_class_init) 
12369         (rb_commander_init, rb_commander_finalize): 
12370         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12371         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12372         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12373         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12374         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12375         (rb_podcast_properties_dialog_init) 
12376         (rb_podcast_properties_dialog_finalize): 
12377         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12378         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12379         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12380         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12381         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12382         (rb_feed_podcast_properties_dialog_init) 
12383         (rb_feed_podcast_properties_dialog_finalize): 
12384         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12385         (rb_metadata_init, rb_metadata_finalize): 
12386         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12387         (rb_station_properties_dialog_init) 
12388         (rb_station_properties_dialog_finalize): 
12389         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12390         (rb_daap_share_init, rb_daap_share_dispose): 
12392         Use g_type_class_add_private in all classes. Closes bug 313688.
12393         
12394 2005-11-30  James Livingston  <jrl@ids.org.au>
12396         patch by: William Jon McCann <mccann@jhu.edu> to use
12397         g_type_class_add_private in all classes. Closes bug 313688.
12399         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12400         (rb_thread_finalize):
12401         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12402         (rb_player_finalize):
12403         * rhythmdb/rhythmdb-property-model.c:
12404         (rhythmdb_property_model_class_init),
12405         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12406         * rhythmdb/rhythmdb-query-model.c:
12407         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12408         (rhythmdb_query_model_finalize):
12409         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12410         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12411         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12412         (rhythmdb_finalize):
12413         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12414         (rb_daap_source_init), (rb_daap_source_dispose):
12415         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12416         (rb_iradio_source_init), (rb_iradio_source_finalize):
12417         * sources/rb-library-source.c: (rb_library_source_class_init),
12418         (rb_library_source_init), (rb_library_source_finalize):
12419         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12420         (rb_playlist_source_init), (rb_playlist_source_dispose):
12421         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12422         (rb_podcast_source_init), (rb_podcast_source_finalize):
12423         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12424         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12425         * sources/rb-sourcelist-model.h:
12426         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12427         (rb_sourcelist_init), (rb_sourcelist_finalize):
12428         * sources/rb-sourcelist.h:
12429         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12430         * widgets/rb-cell-renderer-rating.c:
12431         (rb_cell_renderer_rating_init),
12432         (rb_cell_renderer_rating_class_init),
12433         (rb_cell_renderer_rating_finalize):
12434         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12435         (rb_druid_finalize):
12436         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12437         (rb_entry_view_init), (rb_entry_view_finalize):
12438         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12439         (rb_header_finalize):
12440         * widgets/rb-load-failure-dialog.c:
12441         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12442         (rb_load_failure_dialog_finalize):
12443         * widgets/rb-property-view.c: (rb_property_view_class_init),
12444         (rb_property_view_init), (rb_property_view_finalize):
12445         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12446         (rb_rating_finalize):
12447         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12448         (rb_search_entry_init), (rb_search_entry_finalize):
12449         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12450         (rb_simple_view_init), (rb_simple_view_finalize):
12451         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12452         (rb_song_display_box_init), (rb_song_display_box_finalize):
12453         * widgets/rb-song-info.c: (rb_song_info_class_init),
12454         (rb_song_info_init), (rb_song_info_finalize):
12455         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12456         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12458 2005-11-30  James Livingston  <jrl@ids.org.au>
12460         * iradio/rb-station-properties-dialog.c:
12461         (rb_station_properties_dialog_init),
12462         (rb_station_properties_dialog_new):
12463         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12464         * lib/rb-glade-helpers.h:
12465         * podcast/rb-feed-podcast-properties-dialog.c:
12466         (rb_feed_podcast_properties_dialog_init),
12467         (rb_feed_podcast_properties_dialog_new):
12468         * podcast/rb-podcast-properties-dialog.c:
12469         (rb_podcast_properties_dialog_init),
12470         (rb_podcast_properties_dialog_new):
12471         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12472         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12473         * sources/rb-library-source.c: (impl_get_config_widget):
12474         * sources/rb-playlist-source-recorder.c:
12475         (rb_playlist_source_recorder_init):
12476         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12477         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12478         in rb-glade-helpers, rather than having eight implementation
12479         throughout the code.
12481 2005-11-30  James Livingston  <jrl@ids.org.au>
12483         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12484         * lib/rb-util.h:
12485         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12486         move the duration->string function into rb-utils, as it gets used in a
12487         few places.
12489         patch by: William Jon McCann <mccann@jhu.edu>
12491         * data/glade/podcast-properties.glade:
12492         * podcast/rb-podcast-properties-dialog.c:
12493         (rb_podcast_properties_dialog_init),
12494         (rb_podcast_properties_dialog_update),
12495         (rb_podcast_properties_dialog_update_title),
12496         (rb_podcast_properties_dialog_update_feed),
12497         (rb_podcast_properties_dialog_update_duration),
12498         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12499         info dialog look more like the song info dialog. Use the same "Feed"
12500         value that is displayed in the treeview (ie. the album field), displays
12501         the duration, uses units in the bitrate field, and sort the fields in
12502         the same order.
12504 2005-11-29  James Livingston  <jrl@ids.org.au>
12506         * rhythmdb/rhythmdb-marshal.list:
12507         * rhythmdb/rhythmdb.h:
12508         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12509         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12510         (entry_to_rb_metadata), (emit_save_error_idle),
12511         (action_thread_main): emit error signal when metadata write fails.
12513         * shell/rb-shell.c: (rb_shell_constructor),
12514         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12515         "metadata save" error and display it to the user.
12517 2005-11-29  James Livingston  <jrl@ids.org.au>
12519         * data/ui/rhythmbox-ui.xml:
12520         * sources/rb-podcast-source.c:
12521         (rb_podcast_source_songs_show_popup_cb),
12522         (rb_podcast_source_cmd_download_post),
12523         (rb_podcast_source_cmd_cancel_download): split download and cancel
12524         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12525         321653.
12527 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12529         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12530         title on alert dialogs per the HIG.
12532         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12533         the term Burn.
12534         (free_song_list): Routine to free song list.
12535         (rb_playlist_source_recorder_finalize): Use free_song_list.
12536         (rb_playlist_source_recorder_add_from_model): Return FALSE
12537         if unable to add all songs.  Check that duration of all
12538         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12539         Fixes #321753.
12541         * sources/rb-playlist-source-recorder.c (check_media_length)
12542         (rb_playlist_source_recorder_start): Only check the duration
12543         and current media if the playlist length is longer than a
12544         standard CD (74 min).  Otherwise, just let the Recorder do the
12545         check.
12546         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12547         drive at init.
12548         (rb_recorder_set_device): Don't leak drives.
12549         (rb_recorder_get_media_length): Use drive that was already set.
12550         (rb_recorder_burn): Let the recorder handle checking media type/size.
12551         Fixes bug 321754.
12553 2005-11-29  James Livingston  <jrl@ids.org.au>
12555         * rhythmdb/rhythmdb-query-model.c:
12556         (rhythmdb_query_model_set_sort_order):
12557         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12558         emitting the tree-model "resorted" signal.
12560         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12561         (rb_entry_view_finalize), (rb_entry_view_set_property),
12562         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12563         * widgets/rb-entry-view.h: add a function to resort the entry view,
12564         using the above function.
12566         * sources/rb-iradio-source.c:
12567         (rb_iradio_source_songs_view_sort_order_changed_cb):
12568         * sources/rb-library-source.c: (rb_library_source_finalize),
12569         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12570         * sources/rb-playlist-source.c:
12571         (rb_playlist_source_songs_sort_order_changed_cb):
12572         * sources/rb-podcast-source.c:
12573         (rb_podcast_source_posts_view_sort_order_changed_cb),
12574         (rb_podcast_source_do_query): use the above function instead of
12575         re-creating the query model. This makes changing the sorting an order
12576         of magnitude faster, as it uses a single resorted signal rather than
12577         deleting and re-adding everything (which emits 2N signals). Closes bug
12578         315389.
12580 2005-11-29  James Livingston  <jrl@ids.org.au>
12582         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12583         autosizing, which results in large speedups. Closes bug 312122.
12585         * po/ja.po: change the date format, so that it is a constant width
12587         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12588         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12589         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12590         (rb_entry_view_constructor): make columns use fixed widths,
12591         disable column autosizing, and enable fixed-height mode.
12593         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12594         (rb_entry_view_get_time_date_column_sample):
12595         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12596         and get the canonical date format for the locale.
12598 ============ Version 0.9.2
12600 2005-11-28  James Livingston  <jrl@ids.org.au>
12602         * configure.ac: bump version to 0.9.2
12603         * NEWS: update with changes for 0.9.2
12605 2005-11-28  James Livingston  <jrl@ids.org.au>
12607         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12609         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12610         Disable saving, renaming and delting for DAAP playlists.
12611         Fixes bug 322627.
12613 2005-11-28  James Livingston  <jrl@ids.org.au>
12615         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12616         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12617         prevent bug 322619.
12619         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12620         * sources/rb-removable-media-source.c:
12621         (rb_removable_media_source_class_init): fix ipod browser visibility
12622         problem.
12624 2005-11-28  James Livingston  <jrl@ids.org.au>
12626         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12627         Avahi 0.6 support actually work. Fixes bug 322519.
12629 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12631         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12632         avahi is specified in --with-mdns
12634 2005-11-27  James Livingston  <jrl@ids.org.au>
12636         patch by: Bastien Nocera <hadess@hadess.net>
12638         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12639         not the private one. Fixes bug 322485.
12641 2005-11-26  James Livingston  <jrl@ids.org.au>
12643         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12644         Avahi 0.6, as well as 0.5.
12646         * configure.ac:
12647         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12648         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12649         (add_service):
12651 2005-11-25  James Livingston  <jrl@ids.org.au>
12653         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12654         321926.
12656 2005-11-25  James Livingston  <jrl@ids.org.au>
12658         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12659         correct type for checking the date against 0. Stops a warning when
12660         saving metadata.
12662 2005-11-25  James Livingston  <jrl@ids.org.au>
12664         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12665         adjustment to be inside the element's limits. Without this songs that
12666         have large ReplayGain values will recieve no increase because they are
12667         outside the acceptable range, causing them to remain quiet.
12669 2005-11-25  James Livingston  <jrl@ids.org.au>
12671         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12672         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12673         * sources/rb-ipod-source.c:
12674         * sources/rb-source.h:
12675         * sources/rb-library-source.h:
12676         * sources/rb-library-source.c: (rb_library_source_class_init),
12677         (rb_library_source_constructor),
12678         (rb_library_source_has_first_added_column),
12679         (rb_library_source_has_drop_support):
12680         * sources/rb-removable-media-source.c:
12681         (rb_removable_media_source_class_init): Make library-derived sources
12682         not show the Date Added column, as it doesn't make sense. Fixes bug
12683         322269.
12684         Move some of the feature funcs from the ipod and audio cd sources up to
12685         the removable media source.
12687 2005-11-24  James Livingston  <jrl@ids.org.au>
12689         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12690         errors. oops.
12692 2005-11-24  James Livingston  <jrl@ids.org.au>
12694         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12695         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12696         (rb_iradio_source_constructor): Chain up dispose method and use
12697         G_DEFINE_TYPE
12699 2005-11-24  James Livingston  <jrl@ids.org.au>
12701         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12702         mistake in the last commit that can cause crashes.
12704 2005-11-24  James Livingston  <jrl@ids.org.au>
12706         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12707         instead of g_printerr.
12709         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12710         rb_debug instead of g_warning. The message happens every time for
12711         removable media/daap shares, so it's not unusual.
12713 2005-11-24  James Livingston  <jrl@ids.org.au>
12715         patch by: Tom Parker <palfrey@tevp.net>
12717         * configure.ac: fix libsoup test for enabling daap
12719 2005-11-23  James Livingston  <jrl@ids.org.au>
12721         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12722         (rb_query_creator_init), (rb_query_creator_constructor),
12723         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12724         empty row to queries with no criteria. Fixes bug 322078. use
12725         G_DEFINE_TYPE.
12727 2005-11-23  James Livingston  <jrl@ids.org.au>
12729         patch by:  <baptiste.millemathias@gmail.com>
12731         * help/C/quick-reference.xml: update the quick reference to have the
12732         correct key bindings.
12734 2005-11-22  James Livingston  <jrl@ids.org.au>
12736         * sources/rb-library-source.c: (genres_selection_reset_cb),
12737         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12738         reset the query when all browser selections are removed.
12740 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12742         * podcast/rb-podcast-manager.c:
12743         (rb_podcast_manager_db_entry_deleted_cb):
12744         Use a custom loop to remove podcast posts, rather than
12745         gtk_tree_model_foreach(), as deleting the entries within
12746         that loop causes the iterator to return the first entry
12747         twice.  Instead, we need to find the next entry before
12748         removing the current one. Fixes bug 321956.
12749         (rb_podcast_manager_entry_remove_cb): No longer needed.
12751 2005-11-22  James Livingston  <jrl@ids.org.au>
12753         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12754         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12755         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12757 2005-11-22  James Livingston  <jrl@ids.org.au>
12759         * sources/rb-podcast-source.c:
12760         (rb_podcast_source_post_date_cell_sort_func),
12761         (rb_podcast_source_post_status_cell_sort_func),
12762         (rb_podcast_source_post_feed_cell_sort_func):
12763         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12764         (rb_entry_view_album_sort_func),
12765         (rb_entry_view_double_ceiling_sort_func),
12766         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12767         the entry's location as a last resort when sorting, so the sort order
12768         is stable. This will stop entries moving around when two entries have
12769         the same sorting, and one of them gets played.
12771 2005-11-22  James Livingston  <jrl@ids.org.au>
12773         * daapsharing/rb-daap-connection.c:
12774         (rb_daap_connection_class_init), (rb_daap_connection_init),
12775         (connection_get_password), (build_message),
12776         (http_response_handler), (http_get), (handle_server_info),
12777         (handle_login), (handle_update), (handle_database_info),
12778         (handle_song_listing), (handle_playlists),
12779         (handle_playlist_entries), (rb_daap_connection_new),
12780         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12781         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12782         (rb_daap_connection_get_headers),
12783         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12784         (rb_daap_connection_set_property),
12785         (rb_daap_connection_get_property):
12786         * daapsharing/rb-daap-connection.h:
12787         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12788         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12789         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12790         of destroying the object when it is going to be used by a callback and
12791         fixes a double-free. Fixes bugs 321930 and 322007.
12793 2005-11-22  James Livingston  <jrl@ids.org.au>
12795         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12796         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12797         notification if there aren't any. Fixes bug 321968.
12799 2005-11-22  James Livingston  <jrl@ids.org.au>
12801         * rhythmdb/rhythmdb-property-model.c:
12802         (rhythmdb_property_model_set_property),
12803         (rhythmdb_property_model_finalize),
12804         (rhythmdb_property_model_compare),
12805         (rhythmdb_property_model_insert),
12806         (rhythmdb_property_model_delete_prop): Fix property model sorting
12807         where the display and sort keys are different. Fixes bug 321980.
12809 2005-11-22  James Livingston  <jrl@ids.org.au>
12811         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12812         when import as a file or passed on the command line, and load them as
12813         playlists.
12815 2005-11-22  James Livingston  <jrl@ids.org.au>
12817         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12819         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12820         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12821         a broken daap server. Fixes bug 321919.
12823 2005-11-22  James Livingston  <jrl@ids.org.au>
12825         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12826         drag-and-drop for both the episodes and feeds list.
12827         
12828         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12829         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12830         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12832         * widgets/rb-property-view.c: (rb_property_view_class_init),
12833         (rb_property_view_set_property), (rb_property_view_get_property),
12834         (rb_property_view_new), (rb_property_view_constructor):
12835         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12836         (rb_simple_view_new), (rb_simple_view_constructor):
12837         * widgets/rb-simple-view.h: add a "draggable" property to property
12838         views and set it to false for the feed list. Fixes bug 321284.
12840 2005-11-22  James Livingston  <jrl@ids.org.au>
12842         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12844         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12845         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12846         * sources/rb-ipod-source.c: (add_rb_playlist):
12847         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12848         (rb_playlist_source_set_property),
12849         (rb_playlist_source_get_property), (rb_playlist_source_new),
12850         (impl_receive_drag), (rb_playlist_source_add_location),
12851         (rb_playlist_source_new_from_xml):
12852         * sources/rb-playlist-source.h: give playlists and (optional)
12853         entry-type, and reject entries that don't match. Fixes bug 322006.
12855 2005-11-21  James Livingston  <jrl@ids.org.au>
12857         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12858         (rb_source_header_finalize): remove the weak references when the
12859         source header is finalised. Stops the callbacks being called after the
12860         object is destroyed.
12862 2005-11-21  James Livingston  <jrl@ids.org.au>
12864         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12865         --no-registration was passed. It causes warnings that make it
12866         impossible to run with --no-registration --g-fatal-warnings
12868 2005-11-21  James Livingston  <jrl@ids.org.au>
12870         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12871         of strings when they are still in use. Fixes bug 321547.
12873         (rb_daap_connection_destroy): fix memory leak
12875 2005-11-21  James Livingston  <jrl@ids.org.au>
12877         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12878         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12879         (rb_daap_mdns_resolve_cancel), (publish_cb),
12880         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12881         support.
12883 2005-11-21  James Livingston  <jrl@ids.org.au>
12885         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12886         sorting by genre
12888 2005-11-20  James Livingston  <jrl@ids.org.au>
12890         * podcast/rb-podcast-manager.c:
12891         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12892         that we don't leak thread structures. Fixes bug 321636, and probably
12893         321775.
12895 2005-11-20  James Livingston  <jrl@ids.org.au>
12897         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12898         (lookup_cd):
12899         * podcast/rb-podcast-manager.c: (start_job),
12900         (rb_podcast_manager_db_entry_deleted_cb),
12901         (rb_podcast_manager_entry_remove_cb):
12902         * podcast/rb-podcast-parse.c: (rb_insert_item),
12903         (rb_podcast_parse_load_feed):
12904         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12905         * shell/rb-removable-media-manager.c:
12906         (rb_removable_media_manager_append_media_source):
12907         * shell/rb-shell.c: (add_to_library_response_cb):
12908         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12909         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12910         * sources/rb-iradio-source.c:
12911         (stations_view_drag_data_received_cb):
12912         * sources/rb-library-source.c: (string_list_equal),
12913         (impl_get_extra_views), (impl_receive_drag):
12914         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12915         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12916         (impl_receive_drag):
12917         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12918         (rb_entry_view_append_column_custom), (harvest_entries):
12919         * widgets/rb-property-view.c:
12920         (rb_property_view_selection_changed_cb):
12921         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12922         switch from using g_list_append to g_list_prepend. This changes
12923         operations from O(n^2) to O(n), which in cases like deleting a lot of
12924         tracks can give huge improvements in speed. Closes bug 321696.
12926 2005-11-20  James Livingston  <jrl@ids.org.au>
12928         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12929         (rb_sourcelist_update_expander_visibility): fix indenting of child
12930         sources.
12932 2005-11-20  James Livingston  <jrl@ids.org.au>
12934         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12935         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12936         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12937         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12938         (add_service), (entry_group_cb): dynamically allocate memory, rather
12939         than using static variables.
12941         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12942         re-enable the daap share if the name hasn't changed.
12943         * shell/rb-shell-preferences.c:
12944         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12945         change it's name when the checkbox is disabled. Fixed bug 321748.
12947 2005-11-18  James Livingston  <jrl@ids.org.au>
12949         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12950         as hidden if it is on the current workspace.
12952 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12954         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12955         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12956         (rb_podcast_properties_dialog_parse_time): 
12957         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12958         (rb_feed_podcast_properties_dialog_parse_time):
12959         Rework the way the last mod time strings are created.  It was using
12960         thread unsafe functions, not creating value UTF, and not not checking
12961         the value of the result before modifying it.  This new method fixes
12962         these problems.
12964 2005-11-18  James Livingston  <jrl@ids.org.au>
12966         Don't reset the search box when viewing a different source, because it
12967         will change what is being played. Closes 321593.
12969         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12970         the search box
12972         * shell/rb-source-header.c: (rb_source_header_class_init),
12973         (rb_source_header_init), (rb_source_header_finalize): use
12974         G_DEFINE_TYPE.
12976         (rb_source_header_set_property),
12977         (rb_source_header_source_weak_destroy_cb),
12978         (rb_source_header_search_cb): store the search text when leaving a
12979         source and put it in the search box when viewing it again.
12981 2005-11-18  James Livingston  <jrl@ids.org.au>
12983         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12984         (save_entry):
12985         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12986         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12987         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12988         time stamp.
12990         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12991         last-seen as the timestamp of the last update of the feed. Don't
12992         re-add episodes that have been deleted. Closes 319759.
12994 2005-11-18  James Livingston  <jrl@ids.org.au>
12996         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12997         that don't have the day name at the start. Closes 321645.
12999 2005-11-18  James Livingston  <jrl@ids.org.au>
13001         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13002         (rb_podcast_manager_copy_post),
13003         (rb_podcast_manager_get_podcast_dir):
13004         * podcast/rb-podcast-manager.h:
13005         * sources/rb-podcast-source.c: (impl_get_config_widget),
13006         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13007         download location switching to / if the prefs were opened before
13008         downloading an episode. Closes 321611.
13010 2005-11-18  James Livingston  <jrl@ids.org.au>
13012         * data/glade/podcast-new.glade:
13013         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13014         (rb_new_podcast_dialog_set_property),
13015         (rb_new_podcast_dialog_get_property),
13016         (rb_new_podcast_dialog_response_cb),
13017         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13018         for entering new podcast urls in. Closes bug 321610.
13020 2005-11-18  James Livingston  <jrl@ids.org.au>
13022         * sources/rb-podcast-source.c: (construct_query_from_selection),
13023         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13024         without restarting RB. Closes bug 321612.
13026 2005-11-18  James Livingston  <jrl@ids.org.au>
13028         * widgets/rb-entry-view.c: (set_column_visibility),
13029         (rb_entry_view_sync_columns_visible): when changing visibility of one
13030         column, don't hide and re-show all the others. Makes a show/hide
13031         column operation a lot faster.
13033 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13035         Closes bug 321702.
13037         * iradio/rb-station-properties-dialog.c
13038          (rb_station_properties_dialog_update_bitrate):
13039         Mark the bitrate value as being kbps, using the same
13040         translatable format string as rb-song-info.c
13042         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13043          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13045         * shell/rb-shell-player.c (info_available_cb):
13046          Use RB_METADATA_FIELD_BITRATE to update the iradio
13047          station's bitrate value.
13049 2005-11-17  James Livingston  <jrl@ids.org.au>
13051         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13053         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13054         free a NULL date.
13056 2005-11-17  James Livingston  <jrl@ids.org.au>
13058         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13060         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13061         assertions. Lookup the icon size correctly.
13063 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13065         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13066         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13067         Fix build errors.
13069 2005-11-16  James Livingston  <jrl@ids.org.au>
13071         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13072         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13073         (rb_shell_preferences_sync_column_button): block the toggle signal of
13074         the column checkboxes while setting their initial state. This stops
13075         the visibility being re-set, which causes a lot of time being spent
13076         measuring the columns aagin when opening the prefs window.
13078         Use G_DEFINE_TYPE.
13080 2005-11-16  James Livingston  <jrl@ids.org.au>
13082         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13083         (rb_sourcelist_edit_source_name): don't assume that the editable
13084         source name is in the first column, because it isn't. Fixes bug
13085         320137.
13087 2005-11-16  James Livingston  <jrl@ids.org.au>
13089         * daapsharing/rb-daap-mdns.h:
13090         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13091         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13092         parts can know why operations failed. Avahi can report that the daemon
13093         was not running. Howl doesn't do this (yet).
13094         
13095         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13096         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13097         (browse_cb): don't display mdns errors to the user, if it wa because
13098         the daemon was not running.
13100 2005-11-16  James Livingston  <jrl@ids.org.au>
13102         * rhythmdb/rhythmdb-property-model.c:
13103         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13104         (rhythmdb_property_model_compare),
13105         (rhythmdb_property_model_insert),
13106         (rhythmdb_property_model_insert_prop),
13107         (rhythmdb_property_model_delete),
13108         (rhythmdb_property_model_delete_prop),
13109         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13110         copying the string and re-creating the sort key. Saves a little bit of
13111         memory and time.
13113         (rhythmdb_property_model_perform_sync),
13114         (rhythmdb_property_model_sync): perform the count sync in an idle
13115         callback, so that it doesn't have to be re-run once per value when
13116         loading.
13118 2005-11-16  James Livingston  <jrl@ids.org.au>
13120         * rhythmdb/rhythmdb-query-model.c:
13121         (rhythmdb_query_model_entry_deleted_cb),
13122         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13123         limited list. Stops problems if they are deleted, and then things on
13124         the main list are
13126 2005-11-16  James Livingston  <jrl@ids.org.au>
13128         * NEWS: update NEWS
13130         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13131         button's minimise-to-tray action
13133 2005-11-16  James Livingston  <jrl@ids.org.au>
13135         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13136         leak. Disable adding newly created files for now, because it doesn't
13137         work properly.
13139         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13140         (rb_sourcelist_model_finalize):
13141         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13142         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13144 2005-11-16  James Livingston  <jrl@ids.org.au>
13146         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13147         problem where a GError* wasn't being set to NULL. Actually check the
13148         result.
13150 2005-11-16  James Livingston  <jrl@ids.org.au>
13152         * doc/reference/tmpl/rb-entry-view.sgml:
13153         * doc/reference/tmpl/rhythmbox-unused.sgml:
13154         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13155         * doc/reference/tmpl/rhythmdb.sgml:
13156         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13157         docs, including the patch that was on bug 
13159         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13160         API, because it should only be used by RhythmDB itself.
13162 2005-11-16  James Livingston  <jrl@ids.org.au>
13164         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13165         pausing by middle clicking on the tray icon.
13167 2005-11-15  James Livingston  <jrl@ids.org.au>
13169         * configure.ac: enable audioscrobbler support by default, if libsoup
13170         is present.
13172 2005-11-15  James Livingston  <jrl@ids.org.au>
13174         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13175         Closes bug 321157.
13177         * configure.ac:
13178         * daapsharing/rb-daap-connection.c: (build_message),
13179         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13180         support gzip encoded daap connections.
13182         (handle_song_listing): fix leak
13184 2005-11-15  James Livingston  <jrl@ids.org.au>
13186         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13187         * sources/rb-podcast-source.c:
13188         (rb_podcast_source_post_date_cell_data_func): make the date format
13189         translatable again, so that translators can choose the best format for
13190         their locale (%x is huge in some locales)
13192 2005-11-15  James Livingston  <jrl@ids.org.au>
13194         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13195         (end_job): mark podcast episodes as failed, if the metadata load
13196         fails. This will prevent people playing non-audio enclosures, helping
13197         stop bug 320366.
13199 2005-11-14  James Livingston  <jrl@ids.org.au>
13201         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13202         video sink to fakesink. This will stop problems (potentially crashers)
13203         that will occur if the file contains a video stream.
13205         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13206         rather than using magic numbers everywhere.
13208         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13209         * sources/rb-podcast-source.c:
13210         (rb_podcast_source_songs_show_popup_cb),
13211         (rb_podcast_source_cmd_download_post),
13212         (rb_podcast_source_post_status_cell_data_func),
13213         (rb_podcast_source_entry_activated_cb): use the above constants.
13215         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13216         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13217         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13218         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13219         (cancel_job), (download_progress_cb),
13220         (rb_podcast_manager_cancel_download),
13221         (rb_podcast_manager_insert_feed): use the constants, and fix a
13222         trhead-safety issue.
13224 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13226         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13227         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13228         entry-changed events after stats on startup, fixes entry deleted from
13229         filtered views not disappearing
13231 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13233         Fix rhythmdb query model refcount and polling problems. Closes bug
13234         321410.
13236         * rhythmdb/rhythmdb-property-model.c:
13237         (rhythmdb_property_model_finalize):
13238          Unref the query model if we have one.
13240         * rhythmdb/rhythmdb-query-model.h:
13241          Remove poll and cancel methods.  Query cancellation
13242          never did anything anyway.
13244         * rhythmdb/rhythmdb-query-model.c:
13245         (rhythmdb_query_model_init): Remove GAsyncQueues.
13246          Replace the GAsyncQueue-based update processing
13247          with a simpler g_idle_add approach; still has the
13248          same queueing properties, but now we don't poll the
13249          model forever and updates are processed immediately.
13251         (_unref_entry), (rhythmdb_query_model_finalize):
13252          Unref DB entries when finalized
13254         (rhythmdb_query_model_has_pending_changes):
13255          Use our own counter to decide if there are updates pending
13257         (rhythmdb_query_model_process_update), (idle_process_update):
13258          Process updates using g_idle_add, or directly if possible
13260         (rhythmdb_query_model_signal_complete),
13261         (rhythmdb_query_model_add_entries):
13262          Change to new update processing method
13264         (idle_poll_model), (rhythmdb_query_model_poll):
13265          Remove GAsyncQueue-based update processing.
13267         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13268          No need to poll the model any more - updates are processed
13269          directly for synchronous queries.
13271         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13272          Property model needs to be unref'd here
13274         * sources/rb-library-source.c: (rb_library_source_do_query):
13275          Don't try to cancel the active query (it never worked anyway),
13276          remove obsolete poll call, unref property models as required,
13277          and don't unref the cached 'all' query, since hold on to it.
13278          We unref it when the sort order changes, which forces the query
13279          to be rerun.
13281         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13282          Unref the property model as required
13284         (rb_podcast_source_do_query):
13285          Treat any query with no selected feeds and no search text as
13286          an 'all' query.  Unref query models except for the cached
13287          'all' query, since we hold on to that.
13289         (rb_podcast_source_cmd_update_all):
13290          Unref the property model as required.
13292         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13293          Don't try to cancel the query (it never worked anyway)
13295         (rb_entry_view_poll_model):
13296          No need for this any more.
13298         * widgets/rb-entry-view.h:
13299          Remove obsolete function rb_entry_view_poll_model
13301         * widgets/rb-property-view.c: (rb_property_view_set_property):
13302          Ref and unref the property model as required.
13304 2005-11-14  James Livingston  <jrl@ids.org.au>
13306         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13308         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13309         for error. Closes bug 321416.
13311 2005-11-14  James Livingston  <jrl@ids.org.au>
13313         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13315         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13316         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13318 2005-11-14  James Livingston  <jrl@ids.org.au>
13320         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13321         * shell/rb-removable-media-manager.c:
13322         (rb_removable_media_manager_set_uimanager):
13323         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13324         translation domain for GTK action groups.
13326 2005-11-12  James Livingston  <jrl@ids.org.au>
13328         * po/POTFILES.in: remove the old station-new files
13330 2005-11-12  James Livingston  <jrl@ids.org.au>
13332         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13333         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13334         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13335         when upgrading from a pre-Date-supporting version to a version that
13336         supports Date metadata. Closes bug 320760.
13338 2005-11-12  James Livingston  <jrl@ids.org.au>
13340         Add "update all podcast feeds" command. Closes bug 319954.
13342         * data/ui/rhythmbox-ui.xml: add to source context menu.
13344         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13345         (register_action_group), (rb_podcast_source_cmd_download_post),
13346         (rb_podcast_source_cmd_delete_feed),
13347         (rb_podcast_source_cmd_properties_feed),
13348         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13349         rather than the shell.
13351         (rb_podcast_source_update_feed_func),
13352         (rb_podcast_source_cmd_update_all): update every feed.
13354 2005-11-11  James Livingston  <jrl@ids.org.au>
13356         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13357         (rb_shell_player_constructor), (rb_shell_player_finalize):
13358         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13359         others follow the HIG recommentations.
13361 2005-11-11  James Livingston  <jrl@ids.org.au>
13363         * podcast/rb-podcast-manager.c:
13364         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13365         before trying to use it.
13367 2005-11-11  James Livingston  <jrl@ids.org.au>
13369         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13370         (rb_entry_view_append_column): When sorting by year, sort by album
13371         within a particular year.
13373 2005-11-11  James Livingston  <jrl@ids.org.au>
13375         * NEWS: updates
13377 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13378         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13379         spelling of "Language."
13381 2005-11-11  James Livingston  <jrl@ids.org.au>
13383         * rhythmdb/rhythmdb-property-model.c:
13384         (rhythmdb_property_model_row_inserted_cb),
13385         (rhythmdb_property_model_prop_changed_cb),
13386         (rhythmdb_property_model_entry_removed_cb),
13387         (rhythmdb_property_model_insert_prop),
13388         (rhythmdb_property_model_sync): display the count after the "All"
13389         entry of a property model.
13391         * widgets/rb-property-view.c: (rb_property_view_class_init),
13392         (rb_property_view_finalize), (rb_property_view_constructor): use
13393         G_DEFINE_TYPE
13395 2005-11-10  James Livingston  <jrl@ids.org.au>
13397         * rhythmdb/rhythmdb-query-model.c:
13398         (rhythmdb_query_model_remove_entry):
13399         * rhythmdb/rhythmdb-query-model.h: make
13400         rhythmdb_query_model_remove_entry return whether the entry was in the
13401         model.
13403         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13404         don't add non-SONG entries, as it doesn't really work and can cause
13405         crashes.
13407         (rb_playlist_source_remove_location): assert if the playlist and model
13408         differ on whether the entry is in the playlist
13410 2005-11-10  James Livingston  <jrl@ids.org.au>
13412         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13413         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13414         (rb_podcast_manager_thread_parse_feed),
13415         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13416         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13417         emulating one with a list and mutex. Fixes a couple of threading
13418         issues.
13419         
13420         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13421         updated feeds.
13422         
13423         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13424         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13425         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13426         * podcast/rb-podcast-parse.c: (rb_insert_item),
13427         (rb_podcast_parse_channel_free):
13428         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13429         fix some typos, and make a bit of code clearer.
13431 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13433         Make the "delete podcast" dialog better. Closes bug 320899.
13435         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13436         Add PROP_WINDOW for rb_shell_get_property so we can access the
13437         GtkWindow widget of the main window. 
13438         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13439         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13440         podcast feed delete dialog less confusing as well.
13442 2005-11-09  James Livingston  <jrl@ids.org.au>
13444         * shell/rb-removable-media-manager.c:
13445         (rb_removable_media_manager_mount_volume),
13446         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13447         NULL for a cd volume.
13449 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13451         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13452         method return a gboolean indicating whether the changes
13453         to the entry have already been applied.
13455         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13456         only modify the entry if impl_entry_set returns FALSE.
13458         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13459         When setting the location of an entry, update the
13460         hash table mapping locations to entries.
13462 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13464         * data/glade/Makefile.am:
13465         * iradio/Makefile.am:
13466           Remove 'new station' dialog.
13468         * iradio/rb-station-properties-dialog.h:
13469         * sources/rb-iradio-source.c: (impl_song_properties):
13470         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13471          Add 'new station' mode parameter to
13472          rb_station_properties_dialog_new.
13474         * (rb_station_properties_dialog_response_cb),
13475         (rb_station_properties_dialog_create_station):
13476          When in 'new station' mode, create the station
13477          when OK button is pressed.
13479         * iradio/rb-station-properties-dialog.c:
13480         (rb_station_properties_dialog_location_changed_cb):
13481          Only enable OK button if a location is specified
13482         (rb_station_properties_dialog_init),
13483         (rb_station_properties_dialog_new),
13484         (rb_station_properties_dialog_update),
13485         (rb_station_properties_dialog_update_title),
13486         (rb_station_properties_dialog_rated_cb),
13487         (rb_station_properties_dialog_update_play_count),
13488         (rb_station_properties_dialog_update_bitrate),
13489         (rb_station_properties_dialog_update_last_played),
13490         (rb_station_properties_dialog_update_rating),
13491         (rb_station_properties_dialog_update_playback_error),
13492         (rb_station_properties_dialog_show):
13493          Handle 'new station' mode, where there's no current
13494          station to edit.
13496 2005-11-08  James Livingston  <jrl@ids.org.au>
13498         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13499         keybinding for track columns consistent between library and playlist
13500         sources.
13502 2005-11-07  James Livingston  <jrl@ids.org.au>
13504         * data/ui/rhythmbox-ui.xml:
13505         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13506         "Edit" item to playlist menu. Closes bug 311470.
13508 2005-11-07  James Livingston  <jrl@ids.org.au>
13510         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13512         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13513         confirmation to save dialogs, with gtk 2.8 or higher.
13515 2005-11-07 James Livingston  <jrl@ids.org.au>
13516         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13517         requirement to a general on, because people are going to have it for
13518         the other dependencies.
13520 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13522         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13523         delete dialog less confusing.  Use HIG recommended button order.
13524         Closes bug 320840.
13526 2005-11-06  James Livingston  <jrl@ids.org.au>
13528         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13529         drag-and-drop error.
13530         
13531         * sources/rb-library-source.c: (rb_library_source_constructor): only
13532         add drag-and-drop for the Library itself, subclasses can add support
13533         themselves if they want it.
13535         * sources/rb-removable-media-source.c:
13536         (rb_removable_media_source_class_init): by default removable media
13537         sources do not support dnd
13539 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13541         * data/glade/station-properties.glade:
13542          Add box containing error icon and error message label
13543         * iradio/rb-station-properties-dialog.c:
13544         (rb_station_properties_dialog_class_init),
13545         (rb_station_properties_dialog_finalize):
13546          Change this class to use G_DEFINE_TYPE
13547         (rb_station_properties_dialog_init),
13548         (rb_station_properties_dialog_update),
13549         (rb_station_properties_dialog_update_playback_error):
13550          Display error icon and message when there is one, and hide the error
13551          box otherwise.
13552         (rb_station_properties_dialog_show): Hack widget show
13553          method to update the visibility of the error info box when showing
13554          the widget.  Otherwise the icon is displayed all the time (same thing
13555          is done in rb-song-info). Closes bug 320749.
13557 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13559         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13560         parsing of the duration of podcast episodes from the feed. Closes bug
13561         320748.
13563 2005-11-05  James Livingston  <jrl@ids.org.au>
13565         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13566         release date metadata ("Year"). Closes bug 166093.
13568         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13569         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13570         (rb_metadata_gst_add_tag_data):
13571         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13572         (save_entry):
13573         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13574         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13575         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13576         (rhythmdb_prop_get_type):
13577         * rhythmdb/rhythmdb.h: add support for "date" property
13578         
13579         * data/glade/general-prefs.glade:
13580         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13581         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13582         (rb_entry_view_append_column):
13583         * widgets/rb-entry-view.h:
13584         * sources/rb-library-source.c: (rb_library_source_constructor):
13585         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13586         "Year" colums
13588         * data/glade/song-info.glade:
13589         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13590         (rb_song_info_construct_single), (rb_song_info_constructor),
13591         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13592         (rb_song_info_sync_entry_single): Add "Year" to song info window
13594         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13595         sorted by year.
13597 2005-11-05  James Livingston  <jrl@ids.org.au>
13599         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13600         description if it's very long.
13602 2005-11-05  James Livingston  <jrl@ids.org.au>
13604         pathc by: Artem Baguinski <femistofel@gmail.com>
13606         * help/C/Makefile.am:
13607         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13608         Closes bug 320613.
13610 2005-11-05  James Livingston  <jrl@ids.org.au>
13612         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13614         * daapsharing/rb-daap-share.c: (write_next_chunk),
13615         (message_finished), (databases_cb): Use chunked file loading and
13616         sending in the DAAP server. This should reduce the amount of memory
13617         required to send files to the client.
13619 2005-11-05  James Livingston  <jrl@ids.org.au>
13621         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13622         work better on some systems. Closes 320622.
13624 2005-11-05  James Livingston  <jrl@ids.org.au>
13626         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13627         homepage, so that users can find out what AudioScrobbler is. Add
13628         access keys.
13630         * data/glade/daap-prefs.glade:
13631         * data/glade/general-prefs.glade:
13632         * data/glade/library-prefs.glade: make the indent be more consistent
13634         * data/glade/podcast-prefs.glade: 
13635         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13636         (impl_get_config_widget): move thing out of code into glade, where
13637         they belong
13639 2005-11-05  James Livingston  <jrl@ids.org.au>
13641         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13642         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13644 2005-11-04  James Livingston  <jrl@ids.org.au>
13646         * configure.ac: don't print DAAP configure info twice
13648 2005-11-04  James Livingston  <jrl@ids.org.au>
13650         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13651         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13652         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13653         #ifdefs, since we removed the symbol. Oops
13655 2005-11-04  James Livingston  <jrl@ids.org.au>
13657         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13658         after the connect line, not before. Oops.
13660 2005-11-04  James Livingston  <jrl@ids.org.au>
13662         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13663         fix some warnings
13665 2005-11-03  James Livingston  <jrl@ids.org.au>
13667         * NEWS: update the news file
13669         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13670         "duration" column.
13672         * data/ui/rhythmbox-ui.xml:
13673         * shell/rb-playlist-manager.c:
13674         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13675         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13676         and "delete" for feeds.
13678 2005-11-03  James Livingston  <jrl@ids.org.au>
13680         * sources/rb-podcast-source.c: (impl_delete),
13681         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13682         feed. Closes 319760.
13684 2005-11-03  James Livingston  <jrl@ids.org.au>
13686         Don't start playing from the remote site when a un-downloaded podcast
13687         is activated. Closes 319983.
13688         
13690         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13691         (write_job_data), (download_progress_cb): write the local location as
13692         soon as any data is recieved
13694         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13695         the mountpoint to NULL for podcast episodes that haven't yet been
13696         downloaded.
13697         
13698         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13699         start playing a podcast if it hasn't been downloaded.
13700         
13701         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13702         (rb_podcast_source_entry_activated_cb): begin downloading when the
13703         podcast is activated.
13705 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13707         * data/glade/general-prefs.glade:  Fix capitalization.
13708         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13709         * sources/rb-podcast-source.c:
13710         (rb_podcast_source_songs_show_popup_cb),
13711         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13713 2005-11-03  James Livingston  <jrl@ids.org.au>
13715         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13717         * shell/rb-removable-media-manager.c:
13718         (rb_removable_media_manager_mount_volume): don't check network or
13719         autofs mounts, as they're not going to be removable media. Stops
13720         sending lots of warnings to syslog. Closes 320571.
13722         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13723         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13724         320570.
13726 2005-11-03  James Livingston  <jrl@ids.org.au>
13728         Add support for playing audio CDs. Metadata lookup is done using
13729         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13730         the library when it gets broken out of S-J.
13731         
13732         Add a "rescan media" menu item, and commands for ejecting removable
13733         media.
13735         Move nautilus-cd-burner from optional to required depenency.
13737         * configure.ac:
13738         * data/ui/rhythmbox-ui.xml:
13739         * metadata/Makefile.am:
13740         + metadata/sj-error.c:
13741         + metadata/sj-error.h:
13742         + metadata/sj-metadata-marshal.list:
13743         + metadata/sj-metadata-musicbrainz.c:
13744         + metadata/sj-metadata-musicbrainz.h:
13745         + metadata/sj-metadata.c:
13746         + metadata/sj-metadata.h:
13747         + metadata/sj-structures.c:
13748         + metadata/sj-structures.h:
13749         * player/Makefile.am:
13750         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13751         * po/POTFILES.in:
13752         * shell/Makefile.am:
13753         * shell/rb-removable-media-manager.c:
13754         (rb_removable_media_manager_dispose), (poll_tray_opened),
13755         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13756         (rb_removable_media_manager_load_media),
13757         (rb_removable_media_manager_mount_volume),
13758         (rb_removable_media_manager_cmd_eject_medium),
13759         (rb_removable_media_manager_cmd_scan_media),
13760         (rb_removable_media_manager_check_volume),
13761         (rb_removable_media_manager_unmount_volume_swap),
13762         (rb_removable_media_manager_scan):
13763         * sources/Makefile.am:
13764         + sources/rb-audiocd-source.c:
13765         + sources/rb-audiocd-source.h:
13766         * tests/Makefile.am:
13768 2005-11-02  James Livingston  <jrl@ids.org.au>
13770         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13772         * sources/rb-iradio-source.c:
13773         (stations_view_drag_data_received_cb):
13774         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13775         don't crash when the second uri is missing frm the drop, which
13776         browsers sometimes do.
13778 2005-11-01  James Livingston  <jrl@ids.org.au>
13780         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13781         (rb_podcast_manager_insert_feed):
13782         * podcast/rb-podcast-manager.h:
13783         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13784         (rb_set_item_value), (rb_validate_item_propert),
13785         (rb_podcast_parse_date), (rb_podcast_parse_time):
13786         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13787         from the feed.
13789 2005-10-31  James Livingston  <jrl@ids.org.au>
13791         * ChangeLog:
13792         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13793         huge
13795 2005-10-31  James Livingston  <jrl@ids.org.au>
13797         * sources/rb-podcast-source.c:
13798         (rb_podcast_source_post_date_cell_data_func): generate the date string
13799         in a way that is correct in all locales.
13800         
13801         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13802         (rhythmdb_entry_sync_mirrored): make the last played/date added
13803         columns use the same format.
13805 2005-10-30  James Livingston  <jrl@ids.org.au>
13808         * podcast/rb-podcast-manager.c:
13809         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13810         
13811         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13812         iradio errors better.
13814 2005-10-30  James Livingston  <jrl@ids.org.au>
13816         patch by: Artem Baguinski <femistofel@gmail.com>
13818         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13820 2005-10-30  James Livingston  <jrl@ids.org.au>
13822         * podcast/rb-podcast-manager.c:
13823         (rb_podcast_manager_subscribe_feed),
13824         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13825         already been added, usually as a radio station. Closes 319434.
13827 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13829         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13830         mnemonics & resize issues)
13831         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13832         & mnemonics)
13833         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13834         widget for the "download location" label.
13836         Closes bug 320184.
13838 2005-10-29  James Livingston  <jrl@ids.org.au>
13840         Allow the search box to match words from multiple properties. Closes
13841         bug 139196. Thanks to the person from IRC who did a lot of the initial
13842         work.
13845         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13846         * lib/rb-util.h: Add functions to split a string into words, and one
13847         to perform "search folding" which is currently like casefolding but
13848         also strips punctuation
13849         
13850         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13851         (rhythmdb_query_preprocess):
13852         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13853         against title, artist, album and genre (for the search box)
13854         
13855         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13856         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13857         (save_entry), (search_match_properties),
13858         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13859         splitting into words and matching across multiple properties.
13860         
13861         * sources/rb-library-source.c: (construct_query_from_selection): use
13862         the new SEARCH_MATCH property for the search box
13863         
13864         * widgets/rb-entry-view.c: (type_ahead_search_func):
13866 2005-10-29  James Livingston  <jrl@ids.org.au>
13868         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13869         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13870         
13871         * shell/rb-playlist-manager.c:
13872         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13873         correctly.
13874         
13875         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13876         initial state of the shuffle/repeat menu items correctly. Patch from
13877         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13879 2005-10-29  James Livingston  <jrl@ids.org.au>
13881         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13882         double-free.
13883         
13884         * widgets/rb-cell-renderer-pixbuf.c:
13885         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13886         icon go black when row is not selected
13887         
13888         * doc/reference/tmpl/rb-daap-connection.sgml:
13889         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13891 2005-10-29  James Livingston  <jrl@ids.org.au>
13893         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13894         silly mistake, where it could think partial downloads has been
13895         completed.
13897 2005-10-29  James Livingston  <jrl@ids.org.au>
13899         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13901         * data/glade/song-info.glade:
13902         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13903         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13904         (rb_song_info_sync_entry_single): show the disc number in the song
13905         info window. From bug 311199.
13907 2005-10-29  James Livingston  <jrl@ids.org.au>
13909         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13910         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13911         regularly. Closes 155306.
13913 2005-10-29  James Livingston  <jrl@ids.org.au>
13915         * podcast/rb-podcast-manager.c:
13916         (rb_podcast_manager_download_entry),
13917         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13918         (rb_podcast_manager_insert_feed):
13919         * podcast/rb-podcast-manager.h:
13920         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13921         (rb_podcast_parser_start_element):
13922         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13923         don't download them again. However, it can't resume
13924         partially-downloaded ones.
13926 2005-10-28  James Livingston  <jrl@ids.org.au>
13928         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13929         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13930         work. Don't attempt to write duration as a tag.
13932         Thanks to Artem Baguinski <femistofel@gmail.com>
13934 2005-10-28  James Livingston  <jrl@ids.org.au>
13936         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13937         don't disable the status-bar menu item when the current source doesn't
13938         use the search box.
13940 2005-10-28  James Livingston  <jrl@ids.org.au>
13942         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13943         crash if the file has unknown length
13945 2005-10-27  James Livingston  <jrl@ids.org.au>
13947         * daapsharing/rb-daap-connection.c:
13948         (rb_daap_connection_state_done): don't assert when a daap server
13949         doesn't have any playlists
13951 2005-10-27  James Livingston  <jrl@ids.org.au>
13953         * sources/rb-sourcelist-model.c:
13954         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13955         source for the sourcelist. Closes bug 319817.
13957 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13959         Patch by: Renato Araujo <renatox@gmail.com>
13961         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13962           Fix for a crasher caused by previous patch.
13964 2005-10-26  James Livingston  <jrl@ids.org.au>
13966         * data/glade/podcast-prefs.glade:
13967         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13968         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13969         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13970         * podcast/rb-podcast-manager.c:
13971         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13972         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13973         * shell/rb-shell.c: Change some strings to make them more consistent.
13974         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13975         makes it clearer which is which. "Episode" may not be the best term,
13976         but it seems to be widely used.
13977         
13978         Also fix some strings that weren't marked as translatable.
13979         
13980         * podcast/rb-feed-podcast-properties-dialog.c:
13981         (rb_feed_podcast_properties_dialog_class_init),
13982         (rb_feed_podcast_properties_dialog_finalize):
13983         * podcast/rb-new-podcast-dialog.c:
13984         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13985         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13986         (rb_simple_view_finalize), (rb_simple_view_constructor):
13987         * podcast/rb-podcast-properties-dialog.c:
13988         (rb_podcast_properties_dialog_class_init),
13989         (rb_podcast_properties_dialog_finalize):
13990         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13991         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13992         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13993         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13994         use G_DEFINE_TYPE, instead of doing it manually.
13996 2005-10-26  James Livingston  <jrl@ids.org.au>
13998         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13999         <jrl@ids.org.au>
14001         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14002         (rb_metadata_init): Check that the necessary plugins are present to do
14003         id3 editing.
14004         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14005         corrupted before replacing the original.
14007 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14009         reviewed by: James Livingston <jrl@ids.org.au>
14011         Assign sequential IDs to playlists for DAAP rather than using the
14012         address of the playlist object.  Less flaky, and should work on 64bit
14013         platforms. Closes bug 319304.
14015         * daapsharing/rb-daap-share.c: 
14016         (rb_daap_share_set_property): watch for playlist creation
14017         (_find_by_id), (_find_by_source): playlist list search functions
14018         (rb_daap_share_playlist_created),
14019         (rb_daap_share_process_playlist),
14020         (rb_daap_share_playlist_destroyed):
14021          update playlist list as it changes, use weak refs on 
14022          playlists to get notified on destroy.
14023         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14024          destroy playlist list on shutdown
14025         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14026          DAAP response
14027         (databases_cb): search for playlist ID in list rather than just
14028          converting it to a pointer; return HTTP 404 if playlist not 
14029          found.
14030         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14031          is already used for the main library
14033 2005-10-26  James Livingston  <jrl@ids.org.au>
14035         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14037         * daapsharing/rb-daap-connection.c: (build_message),
14038         (http_response_handler), (http_get), (handle_server_info),
14039         (handle_login), (handle_update), (handle_database_info),
14040         (handle_song_listing), (handle_playlists),
14041         (handle_playlist_entries), (handle_logout),
14042         (rb_daap_connection_new), (rb_daap_connection_logout),
14043         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14044         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14045         * daapsharing/rb-daap-connection.h:
14046         * sources/rb-daap-source.c: (rb_daap_source_activate),
14047         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14048         (rb_daap_source_disconnect): Make connecting to DAAP sources
14049         asynchronous, so that non-responsive servers don't hang the UI. Closes
14050         316225.
14052 2005-10-26  James Livingston  <jrl@ids.org.au>
14054         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14056         * rhythmdb/rhythmdb-query-model.c:
14057         (rhythmdb_query_model_do_reorder): generate the row re-order map
14058         correctly.
14059         
14060         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14061         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14062         Update selection when rows get re-ordered. Closes 319718.
14064 2005-10-26  James Livingston  <jrl@ids.org.au>
14066         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14068         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14069         actually set the db pointer in play orders. Closes 319818.
14071 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14073         Patch by: Renato Araujo <renatox@gmail.com>
14075         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14076         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14077         (rb_podcast_manager_update_synctime),
14078         (rb_podcast_manager_config_changed),
14079         (rb_podcast_manager_insert_feed):
14080         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14081         (save_entry):
14082         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14083         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14084         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14086 2005-10-25  James Livingston  <jrl@ids.org.au>
14088         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14089         (db_entry_deleted_cb): don't share tracks that are hidden because the
14090         file is missing.
14092 2005-10-22  James Livingston  <jrl@ids.org.au>
14094         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14095         crash if an entry couldn't be playerd, without streamer setting an
14096         error.
14098         
14099         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14101         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14102         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14103         is pasted into the dialog.
14104         
14105         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14106         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14107         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14108         (rb_podcast_parse_channel_free):
14109         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14110         feeds
14112 2005-10-22  James Livingston  <jrl@ids.org.au>
14114         * sources/rb-iradio-source.c:
14115         (rb_iradio_source_first_time_changed): Make merging the default
14116         stations actually work.
14117         
14118         * sources/rb-podcast-source.c:
14119         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14120         people weren't seing the percentages in the stats column.
14122 2005-10-21  James Livingston  <jrl@ids.org.au>
14124         Patch from Caio Marcelo <cmarcelo@gmail.com>
14126         * shell/rb-shell.c: (rb_shell_window_state_cb),
14127         (rb_shell_get_visibility), (idle_hide_mainwindow),
14128         (rb_shell_set_visibility): Make the "show window" item in the tray
14129         icon menu show the toggle state correctly. Use a better policy on
14130         deciding whether the window is "visible" or not. Closes bug 308053.
14132 2005-10-21  James Livingston  <jrl@ids.org.au>
14134         * doc/reference/tmpl/rb-shell-preferences.sgml:
14135         * shell/Makefile.am: fix building with gtk-doc
14137         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14138         don't submit podcasts to audioscrobbler
14139         
14140         
14141         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14142         
14143         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14144         (rb_set_item_value): strip spaces surrounding podcast urls
14145         
14147         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14148         
14149         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14151 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14153         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14154          Audioscrobbler/Last.fm support
14156         * configure.ac:
14157         * data/glade/Makefile.am:
14158         * data/glade/audioscrobbler-prefs.glade:
14159         * data/rhythmbox.schemas:
14160         * lib/Makefile.am:
14161         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14162         * lib/md5.h:
14163         * lib/rb-preferences.h:
14164         * po/POTFILES.in:
14165         * shell/Makefile.am:
14166         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14167         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14168         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14169         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14170         (rb_audioscrobbler_timeout_cb), (mkmd5),
14171         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14172         (rb_audioscrobbler_do_handshake),
14173         (rb_audioscrobbler_do_handshake_cb),
14174         (rb_audioscrobbler_submit_queue),
14175         (rb_audioscrobbler_submit_queue_cb),
14176         (rb_audioscrobbler_import_settings),
14177         (rb_audioscrobbler_preferences_sync),
14178         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14179         (rb_audioscrobbler_gconf_changed_cb),
14180         (rb_audioscrobbler_song_changed_cb),
14181         (rb_audioscrobbler_username_entry_changed_cb),
14182         (rb_audioscrobbler_username_entry_activate_cb),
14183         (rb_audioscrobbler_password_entry_changed_cb),
14184         (rb_audioscrobbler_password_entry_activate_cb),
14185         (rb_audioscrobbler_enabled_check_changed_cb),
14186         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14187         (rb_audioscrobbler_load_entry_from_string),
14188         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14189         (rb_audioscrobbler_print_queue),
14190         (rb_audioscrobbler_free_queue_entries):
14191         * shell/rb-audioscrobbler.h:
14192         * shell/rb-shell-preferences.c:
14193         (rb_shell_preferences_append_audioscrobbler_config):
14194         * shell/rb-shell-preferences.h:
14195         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14196         (rb_shell_select_source), (rb_shell_cmd_preferences):
14197         * sources/Makefile.am:
14199 2005-10-21  James Livingston  <jrl@ids.org.au>
14201         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14203         * Makefile.am:
14204         * NEWS:
14205         * configure.ac:
14206         * data/art/Makefile.am:
14207         * data/glade/Makefile.am:
14208         * data/rhythmbox.schemas:
14209         * data/ui/rhythmbox-ui.xml:
14210         * doc/reference/Makefile.am:
14211         * doc/reference/tmpl/rhythmdb.sgml:
14212         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14213         * lib/rb-stock-icons.h:
14214         * po/POTFILES.in:
14215         * podcast/Makefile.am:
14216         + podcast/rb-feed-podcast-properties-dialog.c:
14217         + podcast/rb-feed-podcast-properties-dialog.h:
14218         + podcast/rb-new-podcast-dialog.c:
14219         + podcast/rb-new-podcast-dialog.h:
14220         + podcast/rb-podcast-manager.c:
14221         + podcast/rb-podcast-manager.h:
14222         + podcast/rb-podcast-marshal.list:
14223         + podcast/rb-podcast-parse.c:
14224         + podcast/rb-podcast-parse.h:
14225         + podcast/rb-podcast-properties-dialog.c:
14226         + podcast/rb-podcast-properties-dialog.h:
14227         * rhythmdb/rhythmdb-property-model.c:
14228         (rhythmdb_property_model_set_property),
14229         (rhythmdb_property_model_enable_drag):
14230         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14231         (rhythmdb_tree_parser_end_element), (save_entry),
14232         (rhythmdb_tree_save):
14233         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14234         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14235         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14236         (rhythmdb_entry_podcast_feed_get_type):
14237         * rhythmdb/rhythmdb.h:
14238         * shell/Makefile.am:
14239         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14240         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14241         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14242         (rb_shell_quit):
14243         * sources/Makefile.am:
14244         + sources/rb-podcast-source.c:
14245         + sources/rb-podcast-source.h:
14246         * widgets/Makefile.am:
14247         * widgets/rb-property-view.c: (rb_property_view_class_init),
14248         (rb_property_view_constructor),
14249         (rb_property_view_selection_changed_cb),
14250         (rb_property_view_get_treeview):
14251         * widgets/rb-property-view.h:
14252         + widgets/rb-simple-view.c:
14253         + widgets/rb-simple-view.h:
14255 2005-10-20  James Livingston  <jrl@ids.org.au>
14257         * NEWS: update with changes since 0.9.1
14259         * configure.ac: check whether collate_key_for_filename is available
14260         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14261         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14262         it if it isn't available in glib (i.e. building against 2.6)
14263         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14264         collation to get "natural sorting". Closes bug 158599.
14266 2005-10-20  James Livingston  <jrl@ids.org.au>
14268         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14270         * doc/reference/tmpl/rb-shell-player.sgml:
14271         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14272         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14273         (rb_shell_player_get_playing),
14274         (rb_shell_player_get_playing_time_string),
14275         (rb_shell_player_get_playing_time),
14276         (rb_shell_player_set_playing_time), (tick_cb),
14277         (rb_shell_player_get_playing_path), (filter_mmkeys):
14278         * shell/rb-shell-player.h:
14279         * shell/rb-shell-player.xml:
14280         * shell/rb-shell.c: (rb_shell_constructor),
14281         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14282         (rb_shell_set_window_title), (rb_shell_playing_impl),
14283         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14284         Merge the duration_changed and elapsed_changed DBUS signals into one
14285         elapsed_changed signal. Check that the output argument isn't NULL
14286         before trying to put things in it.
14288 2005-10-20  James Livingston  <jrl@ids.org.au>
14290         * rhythmdb/rhythmdb-query-model.c:
14291         (rhythmdb_query_model_entry_added_cb),
14292         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14293         problem where hidden entries could be shown in playlists.
14294         
14295         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14296         issues when switching in and out of small mode.
14298 2005-10-19  James Livingston  <jrl@ids.org.au>
14300         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14301         (rb_shell_constructor), (rb_shell_window_state_cb),
14302         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14303         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14304         (rb_shell_view_smalldisplay_changed_cb),
14305         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14306         (rb_shell_sync_paned): remove gconf window-state races, prevent
14307         changing small mode too often, fix window event races. Closes 122806.
14309         
14310         Patch from Caio Marcelo <cmarcelo@gmail.com>
14312         * data/rhythmbox.schemas:
14313         * shell/rb-shell.c: (rb_shell_window_state_cb),
14314         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14315         Remember the position of the window. Closes 315289.
14317 2005-10-19  James Livingston  <jrl@ids.org.au>
14319         Patch from Christophe Fergeau  <teuf@gnome.org>
14321         * configure.ac: determine whether libgpod is present when neither
14322         --with-ipod nor --without-ipod is passed
14324 2005-10-19  James Livingston  <jrl@ids.org.au>
14326         Patch from Caio Marcelo <cmarcelo@gmail.com>
14328         * shell/rb-shell-player.c: (do_next_idle),
14329         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14330         (rb_shell_player_do_previous_or_seek),
14331         (rb_shell_player_previous_button_cb),
14332         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14333         (rb_shell_player_cmd_next), (eos_cb):
14334         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14335         end of the playlist is reached.
14337 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14339         * lib/rb-thread.c: fix a few GSource leaks
14341 2005-10-19  James Livingston  <jrl@ids.org.au>
14343         * doc/reference/tmpl/bacon-volume.sgml:
14344         * doc/reference/tmpl/disclosure-widget.sgml:
14345         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14346         * doc/reference/tmpl/eggnotificationbubble.sgml:
14347         * doc/reference/tmpl/eggtrayicon.sgml:
14348         * doc/reference/tmpl/gsequence.sgml:
14349         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14350         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14351         * doc/reference/tmpl/rb-daap-connection.sgml:
14352         * doc/reference/tmpl/rb-daap-dialog.sgml:
14353         * doc/reference/tmpl/rb-daap-mdns.sgml:
14354         * doc/reference/tmpl/rb-daap-share.sgml:
14355         * doc/reference/tmpl/rb-daap-sharing.sgml:
14356         * doc/reference/tmpl/rb-daap-source.sgml:
14357         * doc/reference/tmpl/rb-daap-src.sgml:
14358         * doc/reference/tmpl/rb-daap-structure.sgml:
14359         * doc/reference/tmpl/rb-debug.sgml:
14360         * doc/reference/tmpl/rb-dialog.sgml:
14361         * doc/reference/tmpl/rb-druid.sgml:
14362         * doc/reference/tmpl/rb-entry-view.sgml:
14363         * doc/reference/tmpl/rb-enums.sgml:
14364         * doc/reference/tmpl/rb-file-helpers.sgml:
14365         * doc/reference/tmpl/rb-glade-helpers.sgml:
14366         * doc/reference/tmpl/rb-header.sgml:
14367         * doc/reference/tmpl/rb-history.sgml:
14368         * doc/reference/tmpl/rb-ipod-source.sgml:
14369         * doc/reference/tmpl/rb-iradio-source.sgml:
14370         * doc/reference/tmpl/rb-library-source.sgml:
14371         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14372         * doc/reference/tmpl/rb-metadata.sgml:
14373         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14374         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14375         * doc/reference/tmpl/rb-play-order-linear.sgml:
14376         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14377         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14378         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14379         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14380         * doc/reference/tmpl/rb-play-order-random.sgml:
14381         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14382         * doc/reference/tmpl/rb-play-order.sgml:
14383         * doc/reference/tmpl/rb-player.sgml:
14384         * doc/reference/tmpl/rb-playlist-manager.sgml:
14385         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14386         * doc/reference/tmpl/rb-playlist-source.sgml:
14387         * doc/reference/tmpl/rb-preferences.sgml:
14388         * doc/reference/tmpl/rb-property-view.sgml:
14389         * doc/reference/tmpl/rb-query-creator-private.sgml:
14390         * doc/reference/tmpl/rb-query-creator.sgml:
14391         * doc/reference/tmpl/rb-rating-helper.sgml:
14392         * doc/reference/tmpl/rb-rating.sgml:
14393         * doc/reference/tmpl/rb-recorder.sgml:
14394         * doc/reference/tmpl/rb-refstring.sgml:
14395         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14396         * doc/reference/tmpl/rb-removable-media-source.sgml:
14397         * doc/reference/tmpl/rb-search-entry.sgml:
14398         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14399         * doc/reference/tmpl/rb-shell-glue.sgml:
14400         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14401         * doc/reference/tmpl/rb-shell-player.sgml:
14402         * doc/reference/tmpl/rb-shell-preferences.sgml:
14403         * doc/reference/tmpl/rb-shell.sgml:
14404         * doc/reference/tmpl/rb-song-display-box.sgml:
14405         * doc/reference/tmpl/rb-song-info.sgml:
14406         * doc/reference/tmpl/rb-source-header.sgml:
14407         * doc/reference/tmpl/rb-source.sgml:
14408         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14409         * doc/reference/tmpl/rb-sourcelist.sgml:
14410         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14411         * doc/reference/tmpl/rb-statusbar.sgml:
14412         * doc/reference/tmpl/rb-stock-icons.sgml:
14413         * doc/reference/tmpl/rb-string-helpers.sgml:
14414         * doc/reference/tmpl/rb-thread.sgml:
14415         * doc/reference/tmpl/rb-tray-icon.sgml:
14416         * doc/reference/tmpl/rb-tree-dnd.sgml:
14417         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14418         * doc/reference/tmpl/rb-util.sgml:
14419         * doc/reference/tmpl/rhythmbox-unused.sgml:
14420         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14421         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14422         * doc/reference/tmpl/rhythmdb-tree.sgml:
14423         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14424         
14425         * doc/reference/Makefile.am: make docs build with changed ipod support
14426         
14427         * po/POTFILES.in: remove sources/itunesdb
14429 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14431         * sources/itunesdb.c:
14432         * sources/itunesdb.h: removed now useless files
14434 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14436         * configure.ac:
14437         * shell/Makefile.am:
14438         * sources/Makefile.am:
14439         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14440         code
14441         [1]: http://www.gtkpod.org/libgpod.html
14444 2005-10-18  James Livingston  <jrl@ids.org.au>
14446         patch from Funda Wang <fundawang@linux.net.cn>
14448         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14449         the notification bubble string translatable.
14451 ============ Version 0.9.1
14453 2005-10-16  James Livingston  <jrl@ids.org.au>
14455         * configure.ac: bump version to 0.9.1
14456         * NEWS: update translation credits
14458 2005-10-16  James Livingston  <jrl@ids.org.au>
14460         * rhythmdb/rhythmdb-query-model.c:
14461         (rhythmdb_query_model_class_init),
14462         (rhythmdb_query_model_drag_data_received): 
14463         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14464         notified when things are dropped into the entry view.
14465         
14466         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14467         (rb_playlist_source_add_location_swapped),
14468         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14469         (rb_playlist_source_non_entry_dropped),
14470         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14471         things onto a playlist's entry view work correctly, and doesn't cause
14472         crashes. Allow folders to be dropped as well. (Closes 318308)
14474 2005-10-16  James Livingston  <jrl@ids.org.au>
14476         * NEWS: Update some more
14478         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14479         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14480         with the paned size, so that it doesn't move when the window is
14481         maximised/restored. Closes bug 315852.
14483         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14484         display the playcount column, as it's useless (it never get changed).
14486 2005-10-14  James Livingston  <jrl@ids.org.au>
14488         * Makefile.am:
14489         * data/Makefile.am:
14490         * doc/reference/Makefile.am: get "make distcheck" to pass again
14492 2005-10-11  James Livingston  <jrl@ids.org.au>
14494         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14495         destroy the connection when retrieving the playlists fails, because
14496         tracks have already been added. Closes 318380.
14498 2005-10-11  James Livingston  <jrl@ids.org.au>
14500         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14501         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14502         (source_name_edited_cb): Ask for the columns to be resized when a
14503         source is added, deleted or changes name.
14505 2005-10-11  James Livingston  <jrl@ids.org.au>
14507         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14508         create a thread when processing a directory. This stops up created one
14509         thread for each file in a playlist we're trying to load. Closes
14510         317850.
14512         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14513         typo that made sort-by-artist not work correctly.
14515 2005-10-11  James Livingston  <jrl@ids.org.au>
14517         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14518         support is enabled
14520 2005-10-11  James Livingston  <jrl@ids.org.au>
14522         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14523         * lib/rb-file-helpers.h: add a function to turn uris into our
14524         canonical path-escaped form
14525         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14526         above function when import playlists. This will fix the problem of
14527         duplicate entries due to different representations of the uri (bug
14528         158211).
14530 2005-10-11  James Livingston  <jrl@ids.org.au>
14532         * shell/rb-shell.c: (rb_shell_get_visibility),
14533         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14534         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14535         window hiding so that Alt-F4 works again.
14537         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14538         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14539         (rb_entry_view_string_sort_func): Stop some crashes where a string
14540         property was set to NULL.
14542 2005-10-10  James Livingston  <jrl@ids.org.au>
14544         * doc/reference/rhythmbox.types: fix gtk-doc generation
14546 2005-10-09  James Livingston  <jrl@ids.org.au>
14548         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14549         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14550         accelerators, so that we don't have as many conflicting keys.
14552 2005-10-08  James Livingston  <jrl@ids.org.au>
14554         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14555         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14556         bug 129285.
14558 2005-10-07  James Livingston  <jrl@ids.org.au>
14560         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14561         local path names in the same way as every other URI. This should stop
14562         duplicates occurring due to different escapings. Closes bug 158211.
14564 2005-10-06  James Livingston  <jrl@ids.org.au>
14566         * NEWS: more updates
14567         
14568         patch from Jaap Haitsma <jaap@haitsma.org>:
14570         * configure.ac:
14571         * data/Makefile.am:
14572         * data/art/Makefile.am:
14573         - data/art/rhythmbox-paused.png:
14574         - data/art/rhythmbox-playback-error.png:
14575         - data/art/rhythmbox-playing.png:
14576         - data/art-clearlooks/:
14577         * lib/rb-file-helpers.c: (rb_file):
14578         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14579         * lib/rb-stock-icons.h:
14580         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14581         * widgets/rb-cell-renderer-pixbuf.c:
14582         (rb_cell_renderer_pixbuf_render):
14583         * widgets/rb-entry-view.c: (rb_entry_view_init),
14584         (rb_entry_view_set_playing):
14585         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14586         stock icons instead of custom art. Drop remanents of art-clearlooks.
14588 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14590         * configure.ac: Added ne in ALL_LINGUAS
14592 2005-10-02  James Livingston  <jrl@ids.org.au>
14594         * data/glade/Makefile.am: actually install the daap prefs glade file
14596 2005-09-30  James Livingston  <jrl@ids.org.au>
14598         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14599         translatable files, so that make check works and we don't annoy the
14600         translators.
14601         
14602         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14603         sanity checking, in case a db entry is missing some properties.
14605 2005-09-29  James Livingston  <jrl@ids.org.au>
14607         - lib/rb-string-helpers.c:
14608         - lib/rb-string-helpers.h:
14609         * lib/Makefile.am:
14610         * rhythmdb/rhythmdb-tree.c:
14611         * rhythmdb/rhythmdb.c:
14612         * shell/main.c: (main):
14613         * shell/rb-shell.c:
14614         * widgets/rb-entry-view.c:
14615         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14616         utility functions haven't been used in a while.
14618 2005-09-27  James Livingston  <jrl@ids.org.au>
14620         * data/art-clearlooks/Makefile.am:
14621         - data/art-clearlooks/rhythmbox-album.png:
14622         - data/art-clearlooks/rhythmbox-audiocd.png:
14623         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14624         - data/art-clearlooks/rhythmbox-dnd.png:
14625         - data/art-clearlooks/rhythmbox-ipod.png:
14626         - data/art-clearlooks/rhythmbox-iradio.png:
14627         - data/art-clearlooks/rhythmbox-library.png:
14628         - data/art-clearlooks/rhythmbox-next.png:
14629         - data/art-clearlooks/rhythmbox-pause.png:
14630         - data/art-clearlooks/rhythmbox-play.png:
14631         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14632         - data/art-clearlooks/rhythmbox-playlist.png:
14633         - data/art-clearlooks/rhythmbox-previous.png:
14634         - data/art-clearlooks/rhythmbox-repeat.png:
14635         - data/art-clearlooks/rhythmbox-rewind.png:
14636         - data/art-clearlooks/rhythmbox-shuffle.png:
14637         - data/art-clearlooks/rhythmbox-stop.png:
14638         - data/art-clearlooks/rhythmbox-visuals.png:
14639         - data/art-clearlooks/rhythmbox-volume-max.png:
14640         - data/art-clearlooks/rhythmbox-volume-medium.png:
14641         - data/art-clearlooks/rhythmbox-volume-min.png:
14642         - data/art-clearlooks/rhythmbox-volume-mute.png:
14643         - data/art-clearlooks/rhythmbox-volume-zero.png:
14644         * data/art/Makefile.am:
14645         - data/art/rhythmbox-album.png:
14646         - data/art/rhythmbox-audiocd.png:
14647         - data/art/rhythmbox-automatic-playlist.png:
14648         - data/art/rhythmbox-dnd.png:
14649         - data/art/rhythmbox-ipod.png:
14650         - data/art/rhythmbox-iradio.png:
14651         - data/art/rhythmbox-library.png:
14652         - data/art/rhythmbox-next.png:
14653         - data/art/rhythmbox-pause.png:
14654         - data/art/rhythmbox-play.png:
14655         - data/art/rhythmbox-playlist-menu.png:
14656         - data/art/rhythmbox-playlist.png:
14657         - data/art/rhythmbox-previous.png:
14658         - data/art/rhythmbox-repeat.png:
14659         - data/art/rhythmbox-rewind.png:
14660         - data/art/rhythmbox-shuffle.png:
14661         - data/art/rhythmbox-stop.png:
14662         - data/art/rhythmbox-visuals.png:
14663         - data/art/rhythmbox-volume-max.png:
14664         - data/art/rhythmbox-volume-medium.png:
14665         - data/art/rhythmbox-volume-min.png:
14666         - data/art/rhythmbox-volume-mute.png:
14667         - data/art/rhythmbox-volume-zero.png:
14668         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14669         * lib/rb-stock-icons.h:
14670         * shell/rb-playlist-manager.c:
14671         * shell/rb-shell-player.c:
14672         * sources/rb-daap-source.c: (rb_daap_get_icon):
14673         * sources/rb-ipod-source.c:
14674         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14675         * sources/rb-library-source.c: (rb_library_source_new):
14676         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14677         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14678         that hasn't been used in a LONG time, and also remove art that are
14679         now stock icons.
14681 2005-09-27  James Livingston  <jrl@ids.org.au>
14683         * README: point to the gnome.org web sites, and update the example
14684         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14685         
14686         * rhythmdb/rhythmdb-query-model.c:
14687         (rhythmdb_query_model_set_property),
14688         (rhythmdb_query_model_get_property),
14689         (rhythmdb_query_model_finalize):
14690         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14691         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14692         * rhythmdb/rhythmdb.h:
14693         * sources/rb-iradio-source.c: (impl_search):
14694         * sources/rb-library-source.c: (impl_search): Add query
14695         "preprocessing", which performs operations such as casefolding any
14696         strings that will be compared to any of the *_FOLDED properties.
14697         Closes bug 316039
14699 2005-09-27  James Livingston  <jrl@ids.org.au>
14701         * data/glade/daap-prefs.glade:
14702         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14703         file for the daap preferences pane
14704         
14705         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14706         (rb_sourcelist_append), (rb_sourcelist_remove),
14707         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14708         don't display the column for source expanders unless there is an
14709         expandable source.
14711 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14713         * .cvsignore:
14714         * Makefile.am:
14715         * configure.ac:
14716         * doc/.cvsignore:
14717         * doc/Makefile.am:
14718         * doc/reference/.cvsignore:
14719         * doc/reference/Makefile.am:
14720         * doc/reference/rhythmbox-docs.sgml:
14721         * doc/reference/rhythmbox-sections.txt:
14722         * doc/reference/rhythmbox.types:
14723         * doc/reference/tmpl/bacon-volume.sgml:
14724         * doc/reference/tmpl/disclosure-widget.sgml:
14725         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14726         * doc/reference/tmpl/eggnotificationbubble.sgml:
14727         * doc/reference/tmpl/eggtrayicon.sgml:
14728         * doc/reference/tmpl/gsequence.sgml:
14729         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14730         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14731         * doc/reference/tmpl/rb-daap-connection.sgml:
14732         * doc/reference/tmpl/rb-daap-dialog.sgml:
14733         * doc/reference/tmpl/rb-daap-mdns.sgml:
14734         * doc/reference/tmpl/rb-daap-share.sgml:
14735         * doc/reference/tmpl/rb-daap-sharing.sgml:
14736         * doc/reference/tmpl/rb-daap-source.sgml:
14737         * doc/reference/tmpl/rb-daap-src.sgml:
14738         * doc/reference/tmpl/rb-daap-structure.sgml:
14739         * doc/reference/tmpl/rb-debug.sgml:
14740         * doc/reference/tmpl/rb-dialog.sgml:
14741         * doc/reference/tmpl/rb-druid.sgml:
14742         * doc/reference/tmpl/rb-entry-view.sgml:
14743         * doc/reference/tmpl/rb-enums.sgml:
14744         * doc/reference/tmpl/rb-file-helpers.sgml:
14745         * doc/reference/tmpl/rb-glade-helpers.sgml:
14746         * doc/reference/tmpl/rb-header.sgml:
14747         * doc/reference/tmpl/rb-history.sgml:
14748         * doc/reference/tmpl/rb-ipod-source.sgml:
14749         * doc/reference/tmpl/rb-iradio-source.sgml:
14750         * doc/reference/tmpl/rb-library-source.sgml:
14751         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14752         * doc/reference/tmpl/rb-metadata.sgml:
14753         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14754         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14755         * doc/reference/tmpl/rb-play-order-linear.sgml:
14756         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14757         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14758         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14759         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14760         * doc/reference/tmpl/rb-play-order-random.sgml:
14761         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14762         * doc/reference/tmpl/rb-play-order.sgml:
14763         * doc/reference/tmpl/rb-player.sgml:
14764         * doc/reference/tmpl/rb-playlist-manager.sgml:
14765         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14766         * doc/reference/tmpl/rb-playlist-source.sgml:
14767         * doc/reference/tmpl/rb-preferences.sgml:
14768         * doc/reference/tmpl/rb-property-view.sgml:
14769         * doc/reference/tmpl/rb-query-creator-private.sgml:
14770         * doc/reference/tmpl/rb-query-creator.sgml:
14771         * doc/reference/tmpl/rb-rating-helper.sgml:
14772         * doc/reference/tmpl/rb-rating.sgml:
14773         * doc/reference/tmpl/rb-recorder.sgml:
14774         * doc/reference/tmpl/rb-refstring.sgml:
14775         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14776         * doc/reference/tmpl/rb-removable-media-source.sgml:
14777         * doc/reference/tmpl/rb-search-entry.sgml:
14778         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14779         * doc/reference/tmpl/rb-shell-glue.sgml:
14780         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14781         * doc/reference/tmpl/rb-shell-player.sgml:
14782         * doc/reference/tmpl/rb-shell-preferences.sgml:
14783         * doc/reference/tmpl/rb-shell.sgml:
14784         * doc/reference/tmpl/rb-song-display-box.sgml:
14785         * doc/reference/tmpl/rb-song-info.sgml:
14786         * doc/reference/tmpl/rb-source-header.sgml:
14787         * doc/reference/tmpl/rb-source.sgml:
14788         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14789         * doc/reference/tmpl/rb-sourcelist.sgml:
14790         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14791         * doc/reference/tmpl/rb-statusbar.sgml:
14792         * doc/reference/tmpl/rb-stock-icons.sgml:
14793         * doc/reference/tmpl/rb-string-helpers.sgml:
14794         * doc/reference/tmpl/rb-thread.sgml:
14795         * doc/reference/tmpl/rb-tray-icon.sgml:
14796         * doc/reference/tmpl/rb-tree-dnd.sgml:
14797         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14798         * doc/reference/tmpl/rb-util.sgml:
14799         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14800         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14801         * doc/reference/tmpl/rhythmdb-tree.sgml:
14802         * doc/reference/tmpl/rhythmdb.sgml:
14803         * macros/.cvsignore:
14804         * shell/Makefile.am:
14805         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14806         (rb_source_finalize), (rb_source_set_property),
14807         (rb_source_get_property), (default_get_pixbuf),
14808         (_rb_source_show_popup):
14809         * sources/rb-source.h:
14810         Add support for gtk-doc in rhythmbox.
14811         Convert RBSource to use newer glib functions, such as add_private.
14812         Gives RBSource a default get_pixbuf implementation.
14814 2005-09-25  James Livingston  <jrl@ids.org.au>
14816         * NEWS: Update with about a months worth of changes
14818         * data/glade/song-info-multiple.glade:
14819         * data/glade/song-info.glade:
14820         * data/rhythmbox.schemas:
14821         * lib/rb-preferences.h:
14822         * rhythmdb/rhythmdb.h:
14823         * shell/rb-shell-player.c:
14824         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14825         few remaining parts of autorating.
14827 2005-09-24  James Livingston  <jrl@ids.org.au>
14829         * shell/rb-shell.c: (rb_shell_constructor),
14830         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14831         (rb_shell_window_configure_cb): store window state in the gconf keys,
14832         so that it gets used. Closes bugs 313893 and 137068.
14834 2005-09-20  James Livingston  <jrl@ids.org.au>
14836         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14837         crash if the entry has a NULL string in a property
14838         
14839         * shell/rb-removable-media-manager.c:
14840         (rb_removable_media_manager_load_media): fix some memory leaks
14841         
14842         (rb_removable_media_manager_mount_volume),
14843         (rb_removable_media_manager_eject_medium_cb),
14844         (rb_removable_media_manager_cmd_eject_medium): use
14845         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14846         
14847         * sources/rb-removable-media-source.c:
14848         (rb_removable_media_source_set_property),
14849         (rb_removable_media_source_get_property): use
14850         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14852 2005-09-18  James Livingston  <jrl@ids.org.au>
14854         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14855         column
14857         * data/glade/general-prefs.glade:
14858         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14859         (rb_shell_preferences_column_check_changed_cb),
14860         (rb_shell_preferences_sync): add checkbox to control visibility
14861         of the column
14862         
14863         
14864         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14865         (save_entry):
14866         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14867         (rhythmdb_prop_get_type):
14868         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14869         was as "last played" is handled
14870         
14871         * sources/rb-library-source.c: (rb_library_source_constructor):
14872         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14873         Make the column show in the library and playlists
14874         
14875         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14876         * widgets/rb-entry-view.h: add the column
14877         
14878         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14879         be sorted by the column
14881 2005-09-16  James Livingston  <jrl@ids.org.au>
14883         * shell/rb-shell-player.c: (rb_shell_player_init),
14884         (rb_shell_player_do_previous_or_seek),
14885         (rb_shell_player_previous_button_cb),
14886         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14887         (rb_shell_player_playpause_button_cb): Make the previous button act
14888         the same as the menu item. Fix an inversion of the "previous track or
14889         seek" logic.
14890         
14891         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14892         
14893         (rb_shell_player_playpause): make --play-pause stop source that can't
14894         be paused
14896 2005-09-15  James Livingston  <jrl@ids.org.au>
14898         * configure.ac: increase totem-plparser requirements to 1.1.5
14900         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14901         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14902         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14903         use the newer playlist APIs to save the name of the playlist, and use
14904         the name of a loaded playlist.
14906         Closes bug 309817.
14908 2005-09-15  James Livingston  <jrl@ids.org.au>
14910         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14912         * shell/Makefile.am: stop some linker warnings
14914         * shell/main.c: (main): make --no-registration work with dbus
14916 2005-09-15  James Livingston  <jrl@ids.org.au>
14918         * daapsharing/rb-daap-sharing.c: (create_share):
14919         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14920         reference sinking and counting issues that I caused.
14922 2005-09-15  James Livingston  <jrl@ids.org.au>
14924         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14925         playing" icon in the "now playing" column header.
14927 2005-09-14  James Livingston  <jrl@ids.org.au>
14929         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14930         daap shares, when sharing is turned off.
14932 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14934         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14935         the GConf value's default, especially for badly installed schema
14936         files
14938 2005-09-12  James Livingston  <jrl@ids.org.au>
14940         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14942         Patch from Paolo Borelli <pborelli@katamail.com>
14944         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14945         grip when maximised. Closes bug 316055.
14947 2005-09-11  James Livingston  <jrl@ids.org.au>
14949         Patch from William Jon McCann <mccann@jhu.edu>
14951         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14952         subclass of GtkStatusbar instead of GtkHBox.
14953         (rb_statusbar_construct): Don't set border width.
14954         (rb_statusbar_init): Use resize grip.  Don't use
14955         markup.
14956         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14957         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14958         Connect tooltips for actions.
14959         (rb_statusbar_sync_status): Push new message to statusbar.
14960         (rb_statusbar_set_progress): Don't use markup.
14961         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14962         flag here since it prevents actually showing or hiding.
14963         (rb_statusbar_sync_with_source): Push new message to statusbar.
14965 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14967         * daapsharing/rb-daap-structure.c:
14968         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14969         around debugging definition.
14971 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14972         
14973         * daapsharing/rb-daap-structure.c:
14974         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14975         type = version.
14977         * daapsharing/rb-daap-mdns.c/h:
14978         (resolve_cb): Updated mDNS resolve callback to send service-name &
14979         name (read from Machine Name in the TXT data or equal to service-name
14980         if not in TXT).
14982         * daapsharing/rb-daap-source.c:
14983         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14984         (rb_daap_source_get_property), (rb_daap_source_new),
14985         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14986         (stop_resolver), (start_browsing), (stop_browsing), 
14987         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14988         and added 'host' and 'port' gobject properties.  Updated to use new
14989         mDNS resolve callback sending service-name & name arguments.
14991 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14993         * daapsharing/rb-daap-mdns.c:
14994         (howl_strerror): New function to report errors from Howl
14995         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14996         (get_sw_discovery), (get_avahi_client): Better error reporting from
14997         Howl & Avahi.
14999         * sources/rb-daap-source.:
15000         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15001         not get started or stopped in some situations.
15002         
15003 2005-09-12  James Livingston  <jrl@ids.org.au>
15005         * shell/rb-removable-media-manager.c: add a missing include, that
15006         would stop compilation if ipod support wasn't turned on
15008 2005-09-11  James Livingston  <jrl@ids.org.au>
15010         * daapsharing/rb-daap-dialog.c: (encode_base64),
15011         (rb_daap_password_dialog_new_run),
15012         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15013         it is no broken in to two pieces, and remove a use of a goto
15014         
15015         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15016         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15017         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15018         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15019         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15020         memory leaks, and some code style things.
15021         
15022         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15023         (rb_daap_share_init), (rb_daap_share_set_property),
15024         (rb_daap_share_dispose), (rb_daap_share_new),
15025         (rb_daap_share_get_property): make the DB and the playlist manager
15026         gobject properties.
15027         
15028         (message_add_standard_headers),
15029         (message_set_from_rb_daap_structure), (server_info_cb),
15030         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15031         (server_cb), (add_db_entry), (db_entry_added_cb),
15032         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15033         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15034         style and use CONF_PREFIX in the gconf keys
15035         
15036         * daapsharing/rb-daap-sharing.c: (create_share),
15037         (enable_sharing_changed_cb), (share_name_changed_cb),
15038         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15039         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15040         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15041         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15042         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15043         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15044         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15045         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15046         hasn't actually changed, fix some memory leaks, code style and release
15047         gconf notifications when the object is destroyed.
15048         
15049         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15050         (rb_daap_source_class_init), (rb_daap_source_init),
15051         (rb_daap_source_dispose), (rb_daap_source_set_property),
15052         (rb_daap_source_get_property), (rb_daap_source_new),
15053         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15054         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15055         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15056         (rb_daap_source_activate), (rb_daap_source_disconnect),
15057         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15058         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15059         release gconf notifications, handle gconf callbacks where the key
15060         hasn't changed, make "real name" and "password protected" gobject
15061         properties, fix some code style and fix a memory leak.
15063 2005-09-11  James Livingston  <jrl@ids.org.au>
15065         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15067         * shell/rb-playlist-manager.c:
15068         (rb_playlist_manager_save_playlists),
15069         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15070         when we aren't supposed to. (Closes bug 315886)
15072 2005-09-11  James Livingston  <jrl@ids.org.au>
15074         * shell/rb-removable-media-manager.c:
15075         (rb_removable_media_manager_class_init),
15076         (rb_removable_media_manager_init),
15077         (rb_removable_media_manager_dispose),
15078         (rb_removable_media_manager_set_property),
15079         (rb_removable_media_manager_get_property),
15080         (rb_removable_media_manager_new),
15081         (rb_removable_media_manager_load_media),
15082         (rb_removable_media_manager_volume_mounted_cb),
15083         (rb_removable_media_manager_volume_unmounted_cb),
15084         (rb_removable_media_manager_mount_volume),
15085         (rb_removable_media_manager_unmount_volume),
15086         (rb_removable_media_manager_source_deleted_cb),
15087         (rb_removable_media_manager_append_media_source),
15088         (rb_removable_media_manager_set_uimanager),
15089         (rb_removable_media_manager_eject_medium_cb),
15090         (rb_removable_media_manager_cmd_eject_medium):
15091         * shell/rb-removable-media-manager.h:
15092         * sources/rb-removable-media-source.c:
15093         (rb_removable_media_source_class_init),
15094         (rb_removable_media_source_init),
15095         (rb_removable_media_source_dispose),
15096         (rb_removable_media_source_set_property),
15097         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15098         (impl_delete_thyself):
15099         * sources/rb-removable-media-source.h: Add the four files that I
15100         somehow managed not to add to cvs in the last commit. Oops.
15102 2005-09-11  James Livingston  <jrl@ids.org.au>
15104         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15105         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15106         
15107         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15108         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15109         removable-media-manager on startup, and handle creation of sources.
15110         
15111         * sources/rb-ipod-source.h:
15112         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15113         (rb_ipod_source_init), (rb_ipod_source_constructor),
15114         (rb_ipod_source_dispose), (rb_ipod_source_new),
15115         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15116         the iPod source over to the removable media framework.
15117         
15118         * sources/rb-library-source.c: (paned_size_allocate_cb),
15119         (rb_library_source_get_paned_key): fix a potential bug is a
15120         library-derived source doesn't have a paned-key
15122 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15124         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15125         mp3 when we can't get the suffix of a file (Closes: #315941)
15127 2005-09-10  James Livingston  <jrl@ids.org.au>
15129         * configure.ac: fix the mdns tests, so that it doesn't complain about
15130         not finding one, if daap support isn't being compiled in
15132 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15134         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15136         * daapsharing/rb-daap-dialog.c:
15137         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15138         HIG compliancy & images.
15140         * daapsharing/rb-daap-mdns.c:
15141         (browse_cb), (resolve_cb): Better detection of local services.  
15142         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15143         Howl's limitations.  Fix the way collision handling is done under
15144         Avahi.
15146         * daapsharing/rb-daap-share.c:
15147         (publish_cb): Better name collision handling (at least for Avahi).
15149 2005-09-10  James Livingston  <jrl@ids.org.au>
15151         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15152         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15153         preferences more HIG compliant (Closes #315889)
15154         
15155         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15156         list of files to be translated
15158 2005-09-10  James Livingston  <jrl@ids.org.au>
15160         * configure.ac: fix it so that --enable-daap=no works
15161         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15162         uninstalled
15164 2005-09-10  James Livingston  <jrl@ids.org.au>
15166         Patch from Christophe Fergeau <teuf@gnome.org>
15168         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15169         the ipod code.
15171 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15172         * README.daap: Updating documentation
15174 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15175         * AUTHORS: Added myself.
15177         * daapsharing/rb-daap-connection.c:
15178         (connection_login), (rb_connection_new): Reorganized password
15179         handling.
15181         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15183         * shell/rb-shell.c:
15184         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15186         * sources/rb-daap-source.c:
15187         (rb_daap_source_activate): Better error handling when we are unable to
15188         connect.
15189         
15190 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15191         * README.daap: Fixed some terminology.
15193         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15194         New --with-mdns=auto|howl|avahi flag to specify.
15196         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15197         name collision dialogs.
15199         * daapsharing/rb-daap-connection.c:
15200         (connection_get_password), (build_message), (http_get)
15201         (connection_login): Ask for & use a password if the share demands it.
15203         * daapsharing/rb-daap-connection.h: Changed prototype of
15204         rb_daap_connection_new.
15205         
15206         * daapsharing/rb-daap-mdns.c: 
15207         (resolve_cb): Better detection of your own music share so it doesn't 
15208         appear in the sourcelist.
15210         * daapsharing/rb-daap-share.c:
15211         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15212         that start on any available port.
15214         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15216         * sources/rb-daap-source.c:
15217         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15218         (browse_cb): Handle passworded shares. Resolve the host immediately
15219         instead of when activated.
15220         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15221         (rb_daap_source_new): New GConf keys for UI state.
15222         (rb_daap_source_activate): Use RBPlaylistSource instead of
15223         RBDAAPPlaylistSource
15224         
15225         * sources/rb-daap-playlist-source.c/h: Removed
15227         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15228         if the playlist is local (i.e. not DAAP or iPod).
15229         
15230         * shell/rb-playlist-manager.c:
15231         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15232         wouldn't get saved if the last playlist hadn't changed.  Only save
15233         local playlists.
15234         
15235 2005-09-09  James Livingston  <jrl@ids.org.au>
15237         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15238         iPod preferences pane, as it already uses the browser views as the
15239         library.
15241 2005-09-09  James Livingston  <jrl@ids.org.au>
15243         * sources/rb-library-source.c: (rb_library_source_finalize),
15244         (rb_library_source_constructor): fix gconf monitoring of library
15245         preference keys.
15246         * sources/rb-library-source.h: remove declaration of function that
15247         does not exist
15249 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15251         * player/rb-player-gst.c:
15252         (rb_player_set_time): Fix seeking in daap streams.
15254 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15256         * data/rhythmbox.schemas: Turn music share browsing on by default.
15258 2005-09-07  James Livingston  <jrl@ids.org.au>
15260         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15262 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15263         * player/rb-player-gst.c: 
15264         (rb_player_get_time): Fix for extra << & == that accidentally made
15265         it in.
15267         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15268         
15269 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15270         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15271         it in last time.  Sorry.
15273 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15274         
15275         * player/rb-player-gst.c:
15276         (rb_player_get_time): Fix a small crash appearing when
15277         the uri isn't set in the player, but rb_player_get_time() is
15278         still called.
15280         * configure.ac: Also check for libsoup 2.4, which is what ships with
15281         Gnome 2.12.
15283         * po/POTFILES.in: Added music sharing files that have translatable 
15284         strings.
15286         * README.daap: New file explaining "How Music Sharing Works"  
15288 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15290         * daapsharing/.cvsignore: added
15292 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15294         * daapsharing/*: Music sharing library.
15295         
15296         * sources/rb-daap-source.c/h: Music share RBSource.
15297         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15299         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15300         libsoup and a mutlicast DNS implementation (howl or avahi).
15302         * data/rhythmbox.schemas: New GConf keys for music sharing.
15304         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15305         source right click menu.
15307         * player/rb-player-gst.c: Changes to properly play & seek in remote
15308         music share files.
15310         * shell/rb-playlist-manager.c/h:
15311         (rb_playlist_manager_get_playlists): New function to get a GList * of
15312         the playlists.
15313         (rb_playlist_manager_save_playlists): Don't save music share playlists
15314         and fixed a GObject reference leak.
15316         * shell/rb-shell.c/h:
15317         (rb_shell_append_source): No longer a local function.  Now takes a
15318         parent RBSource * argument, NULL to append a toplevel source.
15319         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15320         source (useful for disconnecting from remote music share,
15321         specifically).
15322         (rb_shell_quit): Stop music sharing/browsing.
15323         (rb_shell_playlist_added_cb): Work with tree source structure.
15324         (rb_shell_get_property): "playlist-manager" property accessor.
15325         (rb_shell_class_init): New "playlist-manager" property.
15326         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15327         daap sharing/browsing.
15328         (rb_shell_select_source): Notify source of activation/deactivation.
15330         * shell/rb-shell-prefernces.c: Music sharing preferences.
15332         * sources/rb-source.c/h: New activate, deactivate and disconnect
15333         class functions.  Activate & deactivate are notification style 
15334         functions that will tell a source when it is selected/unselected.
15335         Disconnect can be hooked up to a UI object to disconnect the source.
15337         * sources/rb-sourcelist-model.c:
15338         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15339         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15340         append a toplevel source.
15342 2005-09-05  James Livingston  <jrl@ids.org.au>
15344         * rhythmdb/rhythmdb-query-model.c:
15345         (rhythmdb_query_model_entry_changed_cb),
15346         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15347         the duration of filesize of an entry changes.  Emit the row-changed
15348         signals that I forgot to put back in, when I was doing query sorting.
15350         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15351         out "0 minutes" or "0 bytes".
15353 2005-09-04  James Livingston  <jrl@ids.org.au>
15355         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15356         remove a leftover bit of the "internal-name" property of sources.
15358 2005-09-03  James Livingston  <jrl@ids.org.au>
15360         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15361         extraneous debug message
15362         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15363         crasher would affect any library-derived sources (which was also a
15364         memory leak).
15366 2005-09-02  Colin Walters  <walters@verbum.org>
15368         * configure.ac: Fix sytnax error.
15370         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15371         code to disable minimization icons - need to figure out
15372         why it doesn't work...
15374 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15376         * data/glade/song-info-multiple.glade:
15377         * data/glade/song-info.glade:
15378         * widgets/rb-song-info.c: (rb_song_info_constructor):
15379         Add a mnemonic to the newly added "Automatically rate" label
15380         in the properties dialog and use a bold typeface like all the 
15381         other labels in the dialog. (Closes bug 315089)
15383 2005-09-03  James Livingston  <jrl@ids.org.au>
15385         * sources/rb-library-source.c: (rb_library_source_class_init),
15386         (rb_library_source_finalize), (rb_library_source_constructor),
15387         (rb_library_source_set_property), (rb_library_source_get_property),
15388         (impl_get_paned_key), (paned_size_allocate_cb),
15389         (rb_library_source_state_prefs_sync), (impl_show_popup),
15390         (rb_library_source_get_paned_key):
15391         * sources/rb-library-source.h: Allow sources derived from
15392         RBLibrarySource to use different gconf keys for sort order, browser
15393         visibility and browser pane position. Fix a crasher if a derived
15394         source overrides _get_pixbuf.
15396 2005-09-02  Colin Walters  <walters@verbum.org>
15398         * shell/rb-shell.c (rb_shell_set_visibility): Move
15399         hint setting which seems to avoid races more.
15400         
15401 2005-09-03  James Livingston  <jrl@ids.org.au>
15403         * shell/rb-shell.c: fix compilation with iPod support enabled
15404         
15405 2005-09-02  Colin Walters  <walters@verbum.org>
15407         * shell/rb-shell.c (struct RBShellPrivate): Add
15408         idle_hide_mainwindow_id.
15409         (rb_shell_constructor): Move taskbar skipping hint into
15410         rb_shell_set_visibility.
15411         (idle_hide_mainwindow): New function.
15412         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15413         racy hack to avoid rb appearing in taskbar when minimized.
15415 2005-09-01  Colin Walters  <walters@verbum.org>
15417         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15419         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15420         from gtkstatusicion.c.
15422         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15424         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15425         TrayShowWindow entry.
15426         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15427         (rb_tray_icon_constructor): Create action group here.
15428         (rb_tray_icon_finalize): Destroy action group.
15429         (rb_tray_icon_set_property): Don't take an action group.
15430         (rb_tray_icon_new): Ditto.
15431         (tray_popup_position_menu): Some mostly boilerplate code
15432         to position menu.
15433         (rb_tray_icon_button_press_event_cb): Position menu.
15434         (rb_tray_icon_get_geom): New function used for the shell
15435         to set minimization hints.
15437         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15439         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15440         (struct RBShellPrivate): Change visible to iconified.
15441         (set_icon_geometry): New function from Søren Sandmann to
15442         tell Metacity where to draw the minimization animiation.
15443         (rb_shell_window_state_cb): Update iconified.
15444         (rb_shell_get_visibility): New function to say whether
15445         or not we're currently visible.
15446         (rb_shell_set_visibility): Update to minimize to
15447         tray or present as appropriate.
15448         (rb_shell_window_delete_cb): On window close, just
15449         minimize to tray if we're deleted.
15450         (rb_shell_set_window_title): Kill old notification code.
15451         (rb_shell_toggle_visibility): Nwe function.
15452         (rb_shell_cmd_toggle_visibility): Call it.
15453         (rb_shell_constructor): Skip the taskbar.
15454         (tray_destroy_cb): Better debugging.
15455         
15456 2005-09-01  Colin Walters  <walters@verbum.org>
15458         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15460         * configure.ac: Enable bonobo by default.
15461         
15462 2005-09-01  Colin Walters  <walters@verbum.org>
15464         * configure.ac: Default to old art.  Add macros subdir.
15466         * Makefile.am (SUBDIRS): Add macros.
15468         * macros/Makefile.am: New.
15469         
15470 2005-09-01  Colin Walters  <walters@verbum.org>
15472         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15473         rb-shell-player.xml.
15475         * remote/dbus/rb-remote-dbus.h: Deleted.
15476         
15477         * remote/dbus/Makefile.am: Delete all the junk, just dist
15478         rb-print-playing.py and rb-set-rating.py.
15480         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15482         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15484 2005-09-02  James Livingston  <jrl@ids.org.au>
15486         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15487         file from cvs
15489         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15490         (rb_shell_constructor): Patches from Jonathan Matthew
15491         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15492         a crash when using "browse this artist".
15494 2005-08-31  Colin Walters  <walters@verbum.org>
15496         * configure.ac: Add --with-old-art configure switch.  Also
15497         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15498         but it doesn't work.
15500         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15501         Don't use eel_create_colorized_pixbuf for new art.
15502         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15504         * data/art-clearlooks: New artwork.
15505         
15506 2005-08-31  Colin Walters  <walters@verbum.org>
15508         * shell/main.c (main): Fix Bastien's commit to continue to focus
15509         the window with GTK+ 2.8 at least.
15510         
15511 2005-08-31  Colin Walters  <walters@verbum.org>
15513         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15514         is already loaded.
15516         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15518 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15520         * README: remove mentions of the xine-lib backend
15521         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15523 2005-08-30  Colin Walters  <walters@verbum.org>
15525         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15526         Make non-visible sources insensitive.
15527         
15528 2005-08-30  Colin Walters  <walters@verbum.org>
15530         * shell/rb-shell.c: Don't use GConf for selected source; it's
15531         confusing to have the selected source change after startup,
15532         and since we don't save other things it's not worth saving this.
15534         * sources/rb-playlist-source.c:
15535         * sources/rb-library-source.c:
15536         * sources/rb-iradio-source.c:
15537         * sources/rb-ipod-source.c: Delete internal-name property usage.
15538         * sources/rb-source.c: Delete internal-name property.
15540         * data/rhythmbox.schemas: Delete selected_source.
15541         
15542 2005-08-30  Colin Walters  <walters@verbum.org>
15544         * sources/rb-sourcelist.c: Make playing source bold instead of
15545         displaying a pixbuf; it's much less ugly.
15546         
15547 2005-08-30  Colin Walters  <walters@verbum.org>
15549         * sources/rb-source.c:
15550         * sources/rb-source.h: New virtual method try_playlist.
15552         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15553         impl_try_playlist.
15554         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15555         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15556         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15557         need to.
15558         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15559         in theory we should though...
15561         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15562         list in rb_shell_construct now.
15563         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15564         RBiPodSource.
15565         (rb_shell_constructor): Create library, iradio, ipod here.
15566         (rb_shell_source_deleted_cb): Use source directly instead of
15567         indirecting through type.
15568         (rb_shell_sync_selected_source): Ditto.
15569         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15570         from the type instead of special-casing.
15571         (rb_shell_guess_type_for_uri) 
15572         (rb_shell_add_uri)
15573         (handle_one_uri_with_possible_metadata): New functions.
15574         (rb_shell_load_uri): Refactor to allow loading playlists again,
15575         also use other URI infrastructure.
15577         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15578         (rb_shell_player_error): Always set entry error on error, instead
15579         of depending on EOF behavior.
15581         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15582         to just invoke rb_shell_add_uri.
15583         (rb_playlist_manager_parse_file): Return error instead of tossing
15584         up dialog box directly.
15585         (load_playlist_response_cb): Display error here.
15586         (add_uri_to_playlist): Delete.
15587         (handle_playlist_entry_into_playlist_cb): Renamed to
15588         handle_playlist_entry_cb.
15590         * shell/rb-playlist-manager.h: Add error, update prototype.
15592         * lib/rb-file-helpers.c:
15593         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15595 2005-08-29  Colin Walters  <walters@verbum.org>
15597         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15598         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15600         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15601         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15602         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15604         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15605         Prototype rb_shell_set_song_property.
15607         * shell/rb-shell.xml: Export setSongProperty.
15609         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15610         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15611         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15613         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15614         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15615         want to notify of the change.
15616         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15618         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15619         logic error; idle functions would be enqueued for each set.
15620         (rhythmdb_entry_set): Fix assertion logic error.
15622         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15623         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15624         Return if the entry already exists.
15625         
15626 2005-08-29  Colin Walters  <walters@verbum.org>
15628         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15629         "inserted" member which we use to keep track of
15630         whether or not an entry is in the DB.  Prototype
15631         rhythmdb_entry_set_uninserted.
15633         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15634         flag.
15635         (rhythmdb_entry_insert): Assert entry is not already inserted.
15636         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15637         just after creating entry.
15638         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15639         (rhythmdb_entry_set_nonotify): Ditto.
15640         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15641         entries.
15642         (rhythmdb_entry_set_internal): Change notify flag to
15643         notify_if_inserted.  Also move notification after assertions.
15645         Update all existing callers of rhythmdb_entry_set_internal
15646         to give TRUE for notify_if_inserted; this should be what
15647         we want but may be an efficiency hit.
15648         
15649 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15651         * shell/rb-shell-player.c: (rb_shell_player_init),
15652         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15653         (rb_shell_player_set_playing_source_internal),
15654         (rb_shell_player_sync_with_selected_source): Notify the player when an
15655         entry has updated the title, album or artist field, and resync the big
15656         display.
15657         
15658         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15659         * sources/rb-library-source.c: (rb_library_source_class_init),
15660         (impl_get_config_widget):
15661         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15662         * sources/rb-source.c:
15663         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15664         get_album functions in rb-source and adapted other sources accordingly.
15665         
15666 2005-08-29  Colin Walters  <walters@verbum.org>
15668         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15669         signal_change member.
15670         (threadsafe_entry_set): New function.
15671         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15672         (rhythmdb_entry_set_nonotify): New function; just call
15673         threadsafe_entry_set with FALSE.
15674         (rhythmdb_entry_set_internal): Take a notify flag; if true
15675         add the change to our pending set.
15677         Also update all internal callers of rhythmdb_entry_set_internal
15678         to pass FALSE.  Some of these may be bugs however and need to
15679         pass TRUE...
15681         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15682         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15683         rhythmdb_entry_set_nonotify.
15685         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15686         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15688         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15690         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15691         * sources/rb-source.c (rb_source_update_play_statistics): 
15692         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15693         * sources/rb-ipod-source.c (entry_set_string_prop) 
15694         (load_ipod_db_idle_cb): 
15695         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15696         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15697         (info_available_cb): 
15698         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15699         (rb_station_properties_dialog_sync_entries): 
15700         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15702         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15703         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15704         
15705 2005-08-29  Colin Walters  <walters@verbum.org>
15707         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15709         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15710         linking insanity.
15712         * widgets/rb-header.c (sanitize_string): New function, extracted
15713         from old info_url.  Be sure to always strip the string.
15714         (info_url): Rewrite to take artist/album, and generate a sane
15715         URL for them from last.fm, which is better than allmusic.com in
15716         that they support Rhythmbox, and have a *SANE* URL scheme.
15717         (artist_info_url, album_info_url): Delete.
15718         (rb_header_sync): Use info_url.
15720 2005-08-29  James Livingston  <jrl@ids.org.au>
15722         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15723         is implemented before calling it. Many sources don't implement the
15724         method.
15726 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15728         * data/glade/create-playlist.glade:  Cleanup the layout,
15729         and add a few more mnemonics.
15730         * shell/rb-playlist-manager.c:
15731         (rb_playlist_manager_cmd_load_playlist),
15732         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15733         capitalization for window titles.
15734         * widgets/rb-query-creator-properties.c: Add mnemonics
15735         to checkbutton labels.
15736         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15737         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15739 2005-08-28  Colin Walters  <walters@verbum.org>
15741         * data/rhythmbox.schemas: Delete search_text for library
15742         and iradio; this isn't a persistent value anymore.
15743         Closes #313757.
15744         
15745         * sources/rb-source.h:
15746         * sources/rb-source.c: Delete impl_can_search.
15748         * sources/rb-iradio-source.c: Delete search_text usage.
15749         * sources/rb-library-source.c: Ditto.
15751         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15752         search when source is set, and just do rb_source_search in
15753         rb_source_header_search_cb.
15755         * shell/rb-shell.c (rb_shell_append_source): Don't
15756         initiate search.
15758         * shell/Makefile.am: Don't dist dashboard.c.
15760 2005-08-28  Colin Walters  <walters@verbum.org>
15762         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15763         
15764 2005-08-28  Colin Walters  <walters@verbum.org>
15766         * data/org.gnome.Rhythmbox.service.in: New.
15768         * data/Makefile.am: Install service file.
15770         * configure.ac: Define DBUS_SERVICES_DIR.
15772         * autogen.sh: Set ACLOCAL_FLAGS.
15774         * macros/acinclude.m4: New.
15775         
15776 2005-08-28  Colin Walters  <walters@verbum.org>
15778         Initial patch from Jonathan Matthew; closes 313684.
15780         * rhythmdb/rhythmdb-tree.c:
15781         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15782         (save_entry): Return on error.
15783         (rhythmdb_tree_save): Handle error when saving the
15784         db; additionally, handle errors from fclose and unlink,
15785         and print error too.
15787 2005-08-28  Colin Walters  <walters@verbum.org>
15789         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15790         extra _.
15791         
15792 2005-08-28  Colin Walters  <walters@verbum.org>
15794         * configure.ac: Change iPod support to --with-ipod;
15795           automatically enable it if we have HAL.  Try to
15796           support both HAL 0.5 and HAL 0.2.  Break out
15797           totem-plparser into its own check so later we
15798           can do version tests there too.
15799           Kill dashboard support.
15800         
15801         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15802         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15803         Closes #310017.
15804         
15805         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15806         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15808         * sources/Makefile.am: Also handle
15809         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15811         * shell/dashboard.c: Delete; someone should just write a little
15812         python shim which lists on the D-BUS interface and writes the
15813         stuff to Dashboard.  Even better Dashboard should be ported
15814         to D-BUS and do the listening itself, perhaps on an abstract
15815         "org.gnome.MusicPlayer" interface or something.
15817         * shell/rb-shell.c: Kill dashboard support.
15819 2005-08-28  Colin Walters  <walters@verbum.org>
15821         * remote/dbus/rb-print-playing.py: New file.
15823 2005-08-28  Colin Walters  <walters@verbum.org>
15825         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15826         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15828         * shell/rb-shell-player.h:
15829         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15830         * shell/rb-shell-player.xml: Export it.
15832         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15833         (rb_shell_error_quark): New.
15835         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15836         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15837         
15838 2005-08-28  Colin Walters  <walters@verbum.org>
15840         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15841         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15842         bonobo_unlock.
15843         (rb_remote_bonobo_preinit): Lock setting moved here.
15844         (rb_remote_bonobo_init): From here.
15846         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15847         Also invoke handle_cmdline in the right place.
15848         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15849         GFunc.
15851 2005-08-28  James Livingston  <jrl@ids.org.au>
15853         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15854         when 0.9.1 comes around.
15856 2005-08-28  James Livingston  <jrl@ids.org.au>
15858         * iradio/rb-new-station-dialog.c:
15859         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15860         bug 314477.
15862 2005-08-28  James Livingston  <jrl@ids.org.au>
15864         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15866         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15867         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15868         is a song is longer than 60 minutes. Closes bug 313311.
15870 2005-08-27  James Livingston  <jrl@ids.org.au>
15872         * data/glade/create-playlist.glade:
15873         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15874         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15875         "minutes" as an option in the playlist limit menu.
15877         * rhythmdb/rhythmdb-query-model.c:
15878         (rhythmdb_query_model_class_init),
15879         (rhythmdb_query_model_set_property),
15880         (rhythmdb_query_model_get_property),
15881         (rhythmdb_query_model_update_limited_entries): Allow query models to
15882         have a time limit
15883         
15884         * shell/rb-playlist-manager.c:
15885         (rb_playlist_manager_set_automatic_playlist),
15886         (rb_playlist_manager_cmd_edit_automatic_playlist):
15887         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15888         (rb_playlist_source_get_query), (impl_receive_drag),
15889         (rb_playlist_source_new_from_xml),
15890         (rb_playlist_source_save_to_xml),
15891         (rb_playlist_source_songs_sort_order_changed_cb),
15892         (rb_playlist_source_do_query):
15893         * sources/rb-playlist-source.h:
15894         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15896 2005-08-27  James Livingston  <jrl@ids.org.au>
15898         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15900         * configure.ac:
15901         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15902         non-standard location. Closes bug 314640.
15904 2005-08-26  Colin Walters  <walters@verbum.org>
15905         
15906         Patch from Olivier Blin <oblin@mandriva.com>
15908         * widgets/eggnotificationbubble.c (draw_bubble): 
15909         Handle extreme-left case as well.
15910         
15911 2005-08-26  Colin Walters  <walters@verbum.org>
15913         * shell/rb-shell.c (idle_save_state): Don't do this.
15914         (rb_shell_construct): Remove idle calls to idle_save_state.
15915         We should save the playlists automatically when they're
15916         modified.
15917         (rb_shell_load_uri): Don't try to re-stat entry if it already
15918         exists.
15920         * shell/rb-shell-player.c: Keep track of entry we are attempting
15921         to play.
15922         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15923         Don't double-free error.
15924         (rb_shell_player_play_entry): Signal errors.
15925         (rb_shell_player_entry_activated_cb): Ditto.
15926         (rb_shell_player_property_row_activated_cb): Ditto.
15927         (rb_shell_player_set_playing_source_internal): Unset attempted
15928         playing entry.
15929         (rb_shell_player_error): Refactor to be usable both sync and
15930         async.  Handle case where displayed entry differs from entry.
15931         (error_cb): Move GDK locking here.
15933         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15934         people can just use dbus-send or python.  We only support focusing
15935         and loading files.
15936         (load_uri_args): New function, extracted from handle_cmdline.
15937         (dbus_load_uri, bonobo_load_uri): New functions.
15939         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15940         appropriate.
15942         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15943         * remote/dbus/rb-remote-dbus.c: Deleted.
15945         * player/rb-player-gst.c: Clear any pending idle handlers when we
15946         close the player.  Signal errors generated during open/play etc
15947         as synchronous errors.
15949         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15950         
15951 2005-08-26  Colin Walters  <walters@verbum.org>
15953         * shell/rb-shell.c (rb_shell_present): Try harder.
15955 2005-08-26  Colin Walters  <walters@verbum.org>
15957         * shell/rb-shell.c (rb_shell_present): Try to handle
15958         GTK_MINOR_VERSION < 8.
15960 2005-08-26  James Livingston  <jrl@ids.org.au>
15962         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15963         <pbrobinson@gmail.com>
15965 2005-08-26  Colin Walters  <walters@verbum.org>
15967         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15969 2005-08-25  Colin Walters  <walters@verbum.org>
15971         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15972         Delete.
15973         (rb_shell_player_do_next_with_rating): Move back into
15974         rb_shell_player_do_next.
15975         (rb_shell_player_entry_activated_cb): Remove call to
15976         rb_shell_player_auto_adjust_rating.
15977         (do_next_idle): Just call rb_shell_player_do_next.
15979         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15981 2005-08-25  Colin Walters  <walters@verbum.org>
15983         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15984         before gtk_window_present_with_time.
15985         
15986 2005-08-25  Colin Walters  <walters@verbum.org>
15988         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15989         default.
15991         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15992         rb_shell_construct.  This is so we only have to do g_object_new.
15993         (rb_shell_get_player): New function.
15994         (rb_shell_get_player_path): Ditto.
15995         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15996         
15997         * shell/rb-shell.h: Prototype them.
15999         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16000         export over D-BUS.
16001         (reemit_playing_signal): New function.
16002         (rb_shell_player_open_playlist_location): Use return values from
16003         rb_player_open, rb_player_close, etc. instead of checking "error".
16004         Return a gboolean on failure.
16005         (rb_shell_player_open_entry): Just open entry location, don't
16006         print to stderr.
16007         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16008         a gboolean.
16009         (do_next_idle): Move logic for handling of end of playlist here.
16010         (rb_shell_player_set_playing_entry): Take a GError, return a
16011         gboolean.  Update to use gboolean return values.
16012         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16013         logic.  Signal an error on end of playlist.  Also signal error if
16014         we're not playing.  Move heuristic for replaying the song into
16015         rb_shell_player_cmd_previous.
16016         (rb_shell_player_do_next_with_rating): Signal error on end of
16017         playlist.
16018         (rb_shell_player_do_next): Return errors.
16019         (rb_shell_player_cmd_previous): Heuristic for restarting song
16020         moved here; the idea is you generally only want that from the GUI.
16021         (rb_shell_player_cmd_play): Handle error.
16022         (rb_shell_player_playpause): Signal errors.
16023         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16024         rb_shell_player_cmd_next in favor of the internal _do functions.
16025         
16026         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16027         errors.  Update prototypes for above changes.
16029         * shell/main.c: More tightly integrate D-BUS; register various
16030         major singleton objects here.  Fix handle_cmdline so we only
16031         process extra arguments, not every argument.
16033         * shell/Makefile.am: Generate D-BUS glue headers.
16035         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16036         into shell/main.c.  Now this file just acts as a client library.
16037         Not heavily tested.
16039         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16040         Moved here.
16041         (rb_remote_bonobo_init): Move long CORBA rant here along with
16042         setting of lock functions.
16044         * player/rb-player-gst.c (rb_player_construct)
16045         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16046         on error.
16048         * player/rb-player.h: Update prototypes.
16050         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16051         rb-remote-bonobo.c.
16052         (rb_threads_init): Don't set gdk lock functions here.
16054 2005-08-25  James Livingston  <jrl@ids.org.au>
16056         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16058         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16059         * lib/rb-tree-dnd.h:
16060         * rhythmdb/rhythmdb-property-model.c:
16061         (rhythmdb_property_model_class_init),
16062         (rhythmdb_property_model_drag_source_init),
16063         (rhythmdb_property_model_iter_parent),
16064         (rhythmdb_property_model_row_draggable),
16065         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16066         (rhythmdb_property_model_drag_data_get),
16067         (rhythmdb_property_model_enable_drag):
16068         * rhythmdb/rhythmdb-property-model.h:
16069         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16070         (rb_playlist_manager_set_property), (append_new_playlist_source),
16071         (rb_playlist_manager_save_playlists):
16072         * shell/rb-shell.c: (rb_shell_construct),
16073         (sourcelist_drag_received_cb):
16074         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16075         * sources/rb-playlist-source.c: (impl_receive_drag):
16076         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16077         (rb_sourcelist_model_drag_dest_init),
16078         (rb_sourcelist_model_set_dnd_targets),
16079         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16080         (rb_sourcelist_model_row_drop_position),
16081         (rb_sourcelist_model_get_drag_target),
16082         (rb_sourcelist_model_drag_data_get):
16083         * sources/rb-sourcelist-model.h:
16084         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16085         (rb_sourcelist_init), (rb_sourcelist_get_property),
16086         (rb_sourcelist_selection_changed_cb):
16087         * sources/rb-sourcelist.h:
16088         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16089         improve drag-n-drop support. Allow dragging of item from property
16090         views to the source list, to create new automatic playlists. Allow
16091         playlist re-ordering. Fix dragging from Rhythmbox to other
16092         applications. (Closes bug 147337)
16094 2005-08-24  Colin Walters  <walters@verbum.org>
16096         Patch from Olivier Blin <oblin@mandriva.com>
16098         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16099         correctly in the case where the window is next to monitor edge.
16101 2005-08-24  James Livingston  <jrl@ids.org.au>
16103         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16104         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16105         a gobject property to get the query model that backs the playlist.
16107 2005-08-24  James Livingston  <jrl@ids.org.au>
16109         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16110         (handle_playlist_entry_into_playlist_cb),
16111         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16112         audio cd" menu item when a non-playlist source is selected, or the
16113         playlist is empty. (Closes Bug 313253)
16115 2005-08-24  James Livingston  <jrl@ids.org.au>
16117         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16118         Fix the playlist length checkso it doesn't report 0 for automatic
16119         playlists. This was stopping automati playlists being burnt to cd.
16121 2005-08-24  James Livingston  <jrl@ids.org.au>
16123         * configure.ac:
16124         * sources/rb-playlist-source-recorder.c: (burn_cd):
16125         * sources/rb-playlist-source.c:
16126         (rb_playlist_source_songs_sort_order_changed_cb):
16127         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16128         more warnings that occur when compiling RPMs on Fedora.
16130 2005-08-24  James Livingston  <jrl@ids.org.au>
16132         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16133         was stopping some distros gcc version compiling.
16135 2005-08-24  James Livingston  <jrl@ids.org.au>
16137         * NEWS:
16138         * data/glade/create-playlist.glade:
16139         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16140         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16141         (rhythmdb_query_free), (rhythmdb_query_serialize),
16142         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16143         * rhythmdb/rhythmdb.h:
16144         * shell/rb-playlist-manager.c:
16145         (rb_playlist_manager_set_automatic_playlist),
16146         (rb_playlist_manager_cmd_edit_automatic_playlist):
16147         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16148         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16149         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16150         (rb_playlist_source_save_to_xml),
16151         (rb_playlist_source_songs_sort_order_changed_cb),
16152         (rb_playlist_source_do_query):
16153         * sources/rb-playlist-source.h:
16154         * widgets/Makefile.am:
16155         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16156         (rb_entry_view_set_sorting_order):
16157         * widgets/rb-query-creator-private.h:
16158         * widgets/rb-query-creator-properties.c:
16159         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16160         (stringCriteriaGetWidgetData),
16161         (escapedStringCriteriaSetWidgetData),
16162         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16163         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16164         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16165         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16166         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16167         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16168         (relativeTimeCriteriaCreateWidget),
16169         (relativeTimeCriteriaSetWidgetData),
16170         (relativeTimeCriteriaGetWidgetData):
16171         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16172         (rb_query_creator_class_init), (rb_query_creator_constructor),
16173         (rb_query_creator_dispose), (rb_query_creator_set_property),
16174         (rb_query_creator_get_property), (rb_query_creator_load_query),
16175         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16176         (get_entry_for_property), (rb_query_creator_get_query),
16177         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16178         (limit_toggled_cb), (lookup_row_by_widget),
16179         (remove_button_click_cb), (append_row),
16180         (get_property_index_from_proptype), (select_criteria_from_value),
16181         (property_option_menu_changed), (create_property_option_menu),
16182         (create_criteria_option_menu), (sort_option_menu_changed),
16183         (setup_sort_option_menu):
16184         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16185         playlists. The two most notable improvements are 1) adding more
16186         properties to the query creator, making it much easier to add more in
16187         the future, and 2) allow playlists to be sorted, from the query editor
16188         if they gave limits, and by clicking on column headers if they don't.
16190         Files added: widgets/rb-query-creator-private.h,
16191         sources/rb-query-creator-properties.c
16193 2005-08-21  James Livingston  <jrl@ids.org.au>
16195         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16196         error=NULL. This stops some crashes.
16198 2005-08-19  Colin Walters  <walters@verbum.org>
16200         Patch from Olivier Blin <oblin@mandriva.com>
16202         * widgets/eggnotificationbubble.c (force_window): Support top
16203         orientation.
16204         * widgets/eggnotificationbubble.h: Remove
16205         egg_notification_bubble_force_window from header.
16206         
16207 2005-08-18  James Livingston  <jrl@ids.org.au>
16209         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16210         with the changes since then.
16212 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16214         * shell/rb-shell-player.c: (rb_shell_player_init),
16215         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16216         (rb_shell_player_volume_widget_changed_cb):
16217         * sources/rb-iradio-source.c:
16218         * sources/rb-library-source.c:
16219         * sources/rb-playlist-source.c:
16220         * widgets/Makefile.am:
16221         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16222         (bacon_volume_button_class_init), (bacon_volume_button_init),
16223         (bacon_volume_button_dispose), (bacon_volume_button_new),
16224         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16225         (bacon_volume_button_scroll), (bacon_volume_button_press),
16226         (cb_button_timeout), (cb_button_press), (cb_button_release),
16227         (bacon_volume_release_grab), (cb_dock_press),
16228         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16229         (bacon_volume_scale_new), (bacon_volume_scale_press),
16230         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16231         * widgets/bacon-volume.h:
16232         * widgets/rb-volume.c:
16233         * widgets/rb-volume.h:
16234           Use BaconVolumeButton (#300867).
16236 2005-08-17  James Livingston  <jrl@ids.org.au>
16238         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16239         (rhythmdb_process_metadata_load): don't reset the First Seen time
16240         whenever we recheck the metadata.
16242 2005-08-17  James Livingston  <jrl@ids.org.au>
16244         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16245         temporary workaround to stop crashes when trying to burn an empty
16246         playlist. Doesn't disable the menu item which is the better solution
16247         (Bug 313253).
16249 2005-08-15  James Livingston  <jrl@ids.org.au>
16251         * shell/rb-source-header.c: (rb_source_header_init),
16252         (rb_source_header_sync_control_state),
16253         (rb_source_header_search_activate_cb):
16254         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16255         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16256         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16257         (rb_search_entry_init), (rb_search_entry_searching),
16258         (rb_search_entry_activate_cb):
16259         * widgets/rb-search-entry.h: Move focus to the entry view when user
16260         presses enter in the search box. Patch from Paolo Borelli
16261         <pborelli@katamail.com> (Closes bug 128110)
16263 2005-08-15  James Livingston  <jrl@ids.org.au>
16265         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16266         (rb_playlist_manager_new_playlist):
16267         * shell/rb-playlist-manager.h:
16268         * shell/rb-shell.c: (rb_shell_construct),
16269         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16270         the source list to be shown when a new playlist is created. (Closes
16271         bug 161935)
16273 2005-08-15  James Livingston  <jrl@ids.org.au>
16275         * widgets/rb-header.c: (rb_header_init),
16276         (rb_header_set_show_timeline): disable the seek slider, rather than
16277         hiding it, which more closely follows the HIG. (Closes bug 139102)
16279 2005-08-13  Colin Walters  <walters@verbum.org>
16281         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16282         rb_shell_hidden_notify.
16283         (rb_shell_hidden_notify): Notify if the shell is hidden.
16284         (rb_shell_set_visibility_impl): Debug goo.
16286         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16288         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16289         when the user clicks on notification.
16291         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16292         CD burn is complete.
16293         (rb_playlist_source_recorder_finalize): Unref shell.
16294         (rb_playlist_source_recorder_new): Take shell.
16296         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16297         Pass shell to RBPlaylistSourceRecorder.
16298         
16299 2005-08-13  Colin Walters  <walters@verbum.org>
16301         * lib/rb-thread.c:
16302         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16303           time to convert.
16305 2005-08-13  Colin Walters  <walters@verbum.org>
16307         * widgets/eggnotificationbubble.h:
16308         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16309         * widgets/eggtrayicon.c:
16310         * widgets/eggtrayicon.h: Add notification API.
16311         * shell/rb-tray-icon.c:
16312         * shell/rb-tray-icon.h: Add notification API.
16313         * shell/rb-shell.c: Notify on song change.
16315 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16317         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16318         Correct an inversion of two lines causing NULL to be unreffed
16320 ============ Version 0.9.0
16322 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16324         * configure.ac: 0.9.0, whee!
16325         * NEWS: badly updated
16326         * remote/bonobo/Makefile.am:
16327         * remote/bonobo/rb-remote-bonobo.h:
16328         * shell/Makefile.am:
16329         * shell/main.c: make distcheck fixes