2006-10-30 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob4bb59bc558b505eef487b5ca0b8a39bc4521df45
1 2006-10-30  James Livingston  <doclivingston@gmail.com>
3         patch by: Brian McKenna  <puffnfresh@gmail.com>
5         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
6         handle blocks. Fixes #366696.
8 2006-10-30  James Livingston  <doclivingston@gmail.com>
10         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
12 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
14         * shell/rb-shell-player.c: (rb_shell_player_class_init),
15         (rb_shell_player_sync_with_source),
16         (rb_shell_player_get_playing_time_string), (tick_cb):
17         * widgets/rb-header.c: (rb_header_sync_time),
18         (slider_moved_callback), (rb_header_update_elapsed),
19         (rb_header_elapsed_changed_cb):
20         Revert dbus interface breakage introduced in the fix for #365908.
22 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
24         patch by: Luca Ferretti  <elle.uca@libero.it>
26         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
27         Remove the access keys from the podcast-specific column headers.
28         Fixes #360640 again.
30 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
32         patch by: James Livingston <doclivingston@gmail.com>
34         * sources/rb-browser-source.c: (rb_browser_source_constructor):
35         Only register the search actions once.  From #346801.
37 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
39         * shell/rb-shell-player.c: (rb_shell_player_error):
40         When handling an error, try playing the next stream URL if we have
41         one, rather than stopping playback.  From #358140.
43 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
45         * shell/rb-shell.c: (handle_playlist_entry_cb):
46         Don't crash if we can't guess a source for a URI in the playlist.
47         Fixes #366261.
49 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
51         * shell/rb-shell-player.c: (rb_shell_player_class_init),
52         (rb_shell_player_sync_with_source),
53         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
54         (tick_cb):
55         * widgets/rb-header.c: (rb_header_sync_time),
56         (rb_header_elapsed_changed_cb):
57         Treat elapsed time as signed, since rb_player_get_time returns a
58         signed value.  When actually using the value, mostly treat negative
59         values as 0.  Fixes #365908.
61 2006-10-27  James Livingston  <doclivingston@gmail.com>
63         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
65         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
66         returning 0 for the year/month/day. Fixes #364837.
68 2006-10-27  James Livingston  <doclivingston@gmail.com>
70         patch by: Luca Ferretti  <elle.uca@libero.it>
72         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
73         access keys from the entry view columns headers - they cause
74         keybindings conflicts, headaches for translators and the HIG says
75         they are bad. Fixes #360640.
77 2006-10-27  James Livingston  <doclivingston@gmail.com>
79         patch by: Luca Ferretti  <elle.uca@libero.it>
81         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
82         access keys from the entry view columns headers - they cause
83         keybindings conflicts, headaches for translators and the HIG says
84         they are bad. Fixes #360640.
86 2006-10-27  James Livingston  <doclivingston@gmail.com>
88         * rhythmdb/rhythmdb-private.h:
89         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
90         issues
92 2006-10-27  James Livingston  <doclivingston@gmail.com>
94         * plugins/artdisplay/Makefile.am:
95         * plugins/audioscrobbler/Makefile.am:
96         * plugins/iradio/Makefile.am: fix make clean
98 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
100         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
101         Fall back to strtod() if g_ascii_strtod() doesn't work.
103         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
104         Write floating point values using g_ascii_dtostr() to avoid
105         problems with locale-specific representations.  From #353205.
107 2006-10-25  James Livingston  <doclivingston@gmail.com>
109         * plugins/artdisplay/Makefile.am:
110         * plugins/audioscrobbler/Makefile.am:
111         * plugins/iradio/Makefile.am: fix "make distcheck"
113 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
115         patch by: Brian Cameron <brian.cameron@sun.com>
117         * plugins/audiocd/Makefile.am:
118         Link audiocd plugin with libnautilus-burn as required to get it to work
119         on Solaris.  Fixes #363288.
121 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
123         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
125         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
126         Clarify that we don't submit actual songs to last.fm, just information
127         on what you're listening to.  Fixes #364014.
129 2006-10-24  Bastien Nocera  <hadess@hadess.net>
131         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
132         (bacon_volume_button_class_init), (bacon_volume_button_new),
133         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
134         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
135         (bacon_volume_scale_value_changed): update from libbacon, to get
136         better accessibility support (Closes: #364637)
138 2006-10-24  James Livingston  <doclivingston@gmail.com>
140         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
142         * configure.ac: fix some typos and leftovers from disabled->enabled
143         changes. Fixes #364217
145 2006-10-23  William Jon McCann  <mccann@jhu.edu>
147         * shell/rb-source-header.c (rb_source_header_init):
148         Don't require source header cells to be homogeneous.
149         Patch from #359188
151 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
153         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
154         Pause the pipeline while buffering.  Fixes #358290.
156 2006-10-23  Bastien Nocera  <hadess@hadess.net>
158         * configure.ac: update required libgpod version to avoid crashes
159         when starting up with an iPod connect (Closes: #352972)
160         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
161         (hal_udi_is_ipod): remove outdated ifdefs
163 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
165         * plugins/Makefile.am:
166         * plugins/power-manager/rb-power-manager-plugin.c:
167         Don't try to build the power-manager plugin with dbus < 0.35.
169 2006-10-22  James Livingston  <doclivingston@gmail.com>
171         patch by: Ed Catmur  <ed@catmur.co.uk>
173         * plugins/artdisplay/Makefile.am:
174         * plugins/artdisplay/artdisplay/__init__.py:
175         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
176         placeholder art when none is available, to avoid having the widget pop
177         in and out of existance.
179 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
181         * plugins/lyrics/lyrics.py:
182         Set the lyrics window transient for the main window so it can
183         actually be seen in party mode.  Fixes #362981.
185 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
187         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
188         * sources/rb-source.c: (rb_source_class_init),
189         (rb_source_can_show_properties), (rb_source_song_properties):
190         * sources/rb-source.h:
191         Only enable the 'properties' item in the 'music' menu if the selected
192         source implements the show_properties method.  Fixes #356485.
194 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
196         * shell/rb-shell-player.c:
197         (rb_shell_player_property_row_activated_cb):
198         Take the entry to play from the play order, rather than grabbing the
199         first entry in the query model.  Fixes #362042.
201 2006-10-16  James Livingston  <doclivingston@gmail.com>
203         * shell/main.c: (main): save custom menu accelerators before exiting.
204         Fixed #362300
206 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
208         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
209         I HATE adding this patch, but I'm sick of hitting Yes once
210         and hour.  Working around brain-dead podcasts.
212 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
214         * plugins/lyrics/lyrics.py:
215         Disconnect the create-song-info handler when deactivated.
216         Fixes #361882.
218 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
220         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
221         Reset the style when clearing the search text.  Fixes #361295.
223 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
225         * rhythmdb/rhythmdb-query-model.c:
226         (rhythmdb_query_model_entry_changed_cb):
227         Don't emit entry-prop-changed for hidden signals from chained query
228         models, as the model will also propagate the parent model's
229         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
231 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
233         * sources/rb-ipod-source.c: (generate_ipod_filename):
234         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
235         * lib/rb-cut-and-paste-code.h:
236         Move eel_make_valid_utf8 to lib/, make the replacement
237         character a parameter.
239         * rhythmdb/rhythmdb.c: (make_access_failed_error),
240         (rhythmdb_execute_multi_stat_info_cb),
241         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
242         When constructing an error message that includes a URI, make sure the
243         URI is valid utf-8.  Fixes #353588.
245 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
247         * player/rb-recorder-gst.c: (rb_recorder_construct),
248         (acb_wave_time):
249         Add an extra audioconvert element to allow endianness conversion on
250         big-endian machines, and fix a few endianness issues in the .wav
251         reading code.  Fixes #355611.
253 2006-10-09  James Livingston  <doclivingston@gmail.com>
255         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
257         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
258         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
259         Fixes #357553.
261 2006-10-09  James Livingston  <doclivingston@gmail.com>
263         patch by: Luca Ferretti  <elle.uca@libero.it>
265         * data/glade/song-info-multiple.glade:
266         * data/glade/song-info.glade: Fix a few HIG issues.
268 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
270         * plugins/audioscrobbler/rb-lastfm-source.c:
271         (rb_lastfm_source_class_init):
272         Return TRUE from impl_try_playlist so playback starts in a separate
273         thread.
275 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
277         * shell/main.c: (main):
278         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
279         UTF-8 GStreamer messages.  Fixes #357973.
281 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
283         * shell/rb-shell.c: (rb_shell_constructor):
284         Remove a line that accidentally slipped in from some other universe.
286 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
288         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
289         Don't remove sources from the hash table while iterating it on
290         shutdown.  Fixes #359583.
292 2006-10-07  James Livingston  <doclivingston@gmail.com>
294         patch from Alex Lancaster  <alexl@users.sourceforge.net>
296         * shell/rb-shell.c: change the keybinding for "Plugins" to not
297         conflict with others. Fixes #355904
299 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
301         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
302         (rhythmdb_query_model_chain),
303         (rhythmdb_query_model_entry_changed_cb),
304         (rhythmdb_query_model_base_entry_prop_changed),
305         (rhythmdb_query_model_base_entry_removed):
306         For chained models, propagate the parent model's entry-prop-changed
307         signal rather than emitting one from the db entry-changed handler.
308         This ensures that when the change filters the entry out of the parent
309         model, property models attached to the child model get the entry
310         change signal before the post-entry-delete signal, so they can
311         decrement the refcount for the right property value.  Fixes #359083.
313 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
315         * plugins/audioscrobbler/Makefile.am:
316         define NULL
318 2006-10-07  James Livingston  <doclivingston@gmail.com>
320         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
321         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
322         * plugins/audioscrobbler/rb-lastfm-source.c:
323         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
324         hypens in URI schemes.
326 2006-10-06  William Jon McCann  <mccann@jhu.edu>
328         * plugins/iradio/Makefile.am:
329         * plugins/audioscrobbler/Makefile.am:
330         * plugins/cd-recorder/Makefile.am:
331         Don't clean all plugin_DATA.
332         Fixes #360210
334 2006-10-06  James Livingston  <doclivingston@gmail.com>
336         patch from Matt N  <fisxoj@gmail.com>
338         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
339         (rb_player_gst_bus_cb):
340         * backends/rb-player.c: (rb_player_interface_init),
341         (_rb_player_emit_tick), (_rb_player_emit_event):
342         * backends/rb-player.h: let the backend emit named "events", for
343         things that the core shouldn't know about.
345         * rhythmdb/rhythmdb.h:
346         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
347         support for streams containing album metadata.
349         * plugins/audioscrobbler/Makefile.am:
350         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
351         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
352         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
353         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
354         * plugins/audioscrobbler/rb-lastfm-source.c:
355         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
356         of last.fm streams. From #313049.
358 2006-10-06  James Livingston  <doclivingston@gmail.com>
360         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
361         committing. Oops.
363 2006-10-06  James Livingston  <doclivingston@gmail.com>
365         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
367         * configure.ac:
368         * data/rhythmbox.schemas:
369         * plugins/Makefile.am:
370         * plugins/magnatune/Makefile.am:
371         * plugins/magnatune/magnatune-loading.glade:
372         * plugins/magnatune/magnatune-prefs.glade:
373         * plugins/magnatune/magnatune-purchase.glade:
374         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
375         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
376         * plugins/magnatune/magnatune/MagnatuneSource.py:
377         * plugins/magnatune/magnatune/TrackListHandler.py:
378         * plugins/magnatune/magnatune/__init__.py:
379         * plugins/magnatune/magnatune_circle_small.png:
380         * plugins/magnatune/magnatune_logo_color_small.png:
381         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
382         play and download tracks from the MagnaTune online music store. From
383         #345783.
385 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
387         * lib/rb-proxy-config.c: (rb_proxy_config_init),
388         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
389         (check_auto_proxy_config), (get_proxy_config):
390         Don't crash when eel_gconf_get_string returns NULL.
391         Fixes #359974.
393 2006-10-04  James Livingston  <doclivingston@gmail.com>
395         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
397         * plugins/audiocd/Makefile.am: fix the plugin when linking with
398         --as-needed. Fixes #358730
400 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
402         patch by:  William Jon McCann  <mccann@jhu.edu>
404         * sources/rb-iradio-source.c: (playing_source_changed_cb):
405         Fix some stupidity I introduced that caused crashes on shutdown.
406         Fixes #359181.
408 2006-10-02  William Jon McCann  <mccann@jhu.edu>
410         * plugins/audiocd/Makefile.am:
411         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
412         * plugins/iradio/.cvsignore:
413         * plugins/iradio/Makefile.am:
414         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
415         (impl_deactivate):
416         * plugins/power-manager/.cvsignore:
417         Install missing iradio ui file.  Don't leak ui filename.
418         Fix iradio install dir. Fix audiocd install dir.
419         Remove unused code from audio cd plugin.
421         Fixes #359170
423 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
425         * sources/rb-ipod-source.c: (impl_move_to_trash):
426         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
427         commented out while fixing bug 355235.  Oops.
429 2006-10-03  James Livingston  <doclivingston@gmail.com>
431         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
432         non-unicode warnings to debug statements, since they can occur with
433         slightly broken files.
435         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
436         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
437         iradio plugin is disabled and re-enabled.
439 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
441         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
442         (rhythmdb_entry_podcast_post_get_type):
443         * rhythmdb/rhythmdb.h:
444         * tests/bench-rhythmdb-load.c: (main):
445         Add definitions for some common extra-metadata fields,
446         remove iradio entry type definition, add the concept of entry type
447         categories, define categories for the core entry types.
448         Categories are used to decide if an entry can be copied to a removable
449         device, if it should be reported to audioscrobbler, etc.
451         * shell/Makefile.am:
452         * shell/rb-shell-player.c: (rb_shell_player_class_init),
453         (rb_shell_player_constructor), (rb_shell_player_init),
454         (rb_shell_player_get_property), (open_location_thread),
455         (rb_shell_player_open_location),
456         (rb_shell_player_sync_with_source),
457         (rb_shell_player_set_playing_source_internal), (tick_cb):
458         * shell/rb-shell.c: (construct_widgets), (construct_sources),
459         (rb_shell_player_elapsed_changed_cb):
460         Remove iradio-specific code, use extra metadata fields for streaming
461         title and artist name.
463         * data/ui/rhythmbox-ui.xml:
464         Add a placeholder for 'new ...' menu items.
466         * Makefile.am:
467         * sources/Makefile.am:
468         * configure.ac:
469         * data/rhythmbox.schemas:
470         * plugins/Makefile.am:
471         * plugins/iradio/Makefile.am:
472         * plugins/iradio/iradio-ui.xml:
473         * plugins/iradio/iradio.rb-plugin.desktop.in:
474         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
475         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
476         (rb_iradio_plugin_class_init):
477         iradio plugin, enabled and hidden by default.
479         * plugins/audioscrobbler/rb-audioscrobbler.c:
480         (rb_audioscrobbler_song_changed_cb):
481         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
482         * sources/rb-daap-source.c: (rb_daap_source_new):
483         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
484         Define entry type categories, and use them where appropriate.
486         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
487         (rb_iradio_source_constructor), (rb_iradio_source_new),
488         (impl_get_status), (impl_want_uri), (buffering_cb),
489         (check_entry_type), (streaming_title_request_cb),
490         (streaming_artist_request_cb), (extra_metadata_gather_cb),
491         (info_available_cb), (playing_entry_changed_cb),
492         (playing_source_changed_cb):
493         Move streaming metadata and buffering handling here from
494         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
495         title or artist changes, and handle request and gather signals for
496         those.
498         * widgets/rb-header.c: (rb_header_class_init),
499         (rb_header_set_property), (rb_header_get_property),
500         (rb_header_new), (append_and_free), (rb_header_sync):
501         * widgets/rb-header.h:
502         Rework to use streaming artist and title extra-metadata.
503         streaming-artist overrides entry artist, and streaming-title means
504         entry title is a stream name, displayed in brackets.
506         * doc/reference/Makefile.am:
507         * doc/reference/rhythmbox.types:
508         Remove iradio stuff from gtk-doc build.
510         Fixed #347097.
512 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
514         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
516         * bindings/python/rhythmdb.defs:
517         * lib/rb-marshal.list:
518         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
519         (rhythmdb_emit_entry_deleted),
520         (rhythmdb_entry_extra_metadata_accumulator),
521         (rhythmdb_entry_request_extra_metadata),
522         (rhythmdb_emit_entry_extra_metadata_notify),
523         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
524         * rhythmdb/rhythmdb.h:
525         Add signals for dealing with transient metadata outside the set stored
526         in RhythmDBEntry:
527         - entry_extra_metadata_request returns a value for the requested
528           metadata field
529         - entry_extra_metadata_notify notifies observers of a change to an
530           extra metadata field
531         - entry_extra_metadata_gather returns the values of all extra metadata
532           fields
534         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
535         (rb_shell_player_extra_metadata_cb):
536         Sync the display on extra metadata changes and emit dbus signals when
537         we can marshal the value.
539         * shell/rb-shell.c: (rb_shell_get_song_properties):
540         Implement rb_shell_song_get_properties using
541         rhythmdb_entry_gather_metadata.
543         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
544         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
545         * configure.ac:
546         Add GValue marshaller for python (until bug 351072 is fixed)
548         From #345592.
550 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
552         * configure.ac:
553         * data/rhythmbox.schemas:
554         * plugins/Makefile.am:
555         * plugins/power-manager/Makefile.am:
556         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
557         * plugins/power-manager/rb-power-manager-plugin.c:
558         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
559         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
560         (playing_changed_cb), (impl_activate), (impl_deactivate):
561         gnome-power-manager integration: inhibit suspend while playing.
562         Fixes #344979.
564 2006-10-02  James Livingston  <doclivingston@gmail.com>
566         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
567         and Alex Lancaster  <alexl@users.sourceforge.net>
569         * help/C/rhythmbox.xml: fix some mispellings and grammer.
570         Fixes #353143, #353146 and #353147.
572 ============ Version 0.9.6
574 2006-10-01  James Livingston  <doclivingston@gmail.com>
576         * configure.ac: bump version to 0.9.6. enable tag-writing and
577         ipod-writing by default
579         * NEWS: update NEWS
581 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
583         patch by:  William Jon McCann  <mccann@jhu.edu>
585         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
586         Use a local GError in case no error pointer pointer is passed in.
587         From bug #358396.
589 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
591         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
592         Don't reference members of freed structures.
594 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
596         patch by:  William Jon McCann  <mccann@jhu.edu>
598         * player/rb-recorder-gst.c: (rb_recorder_burn):
599         Drop GDK lock before entering n-c-b.  Fixes #353894?
601 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
603         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
604         (impl_activate):
605         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
607 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
609         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
610         Call lirc_init before lirc_readconfig so we don't crash if the user's
611         .lircrc file has any mode sections. Fixes #357419.
613 2006-09-24  James Livingston  <doclivingston@gmail.com>
615         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
616         if we get called twice, as that can happen. Fixes #357214.
618 2006-09-24  James Livingston  <doclivingston@gmail.com>
620         * backends/rb-encoder.h: add "file access" error
622         * lib/rb-file-helpers.c: (rb_dot_dir):
623         * podcast/rb-podcast-manager.c:
624         (rb_podcast_manager_download_file_info_cb): remove directory creation
625         race condition.
627         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
628         (create_parent_dirs), (rb_encoder_gst_encode): check result of
629         directory creation. Fixes #347743
631 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
633         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
634         Strip trailing whitespace
636 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
638         * rhythmdb/Makefile.am:
639         * rhythmdb/rhythmdb-private.h:
640         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
641         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
642         * rhythmdb/rhythmdb-tree.h:
643         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
644         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
645         * rhythmdb/rhythmdb.h:
646         Rather than aborting, show an error and refuse to load the database when
647         it appears to come from the future.  From bug #350304.
649 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
651         * bindings/python/rhythmdb.override:
652         Make entry_foreach usable.
654 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
656         * sources/rb-podcast-source.c: (rb_podcast_source_init):
657         Scale the icon so it matches the rest of the sources.
658         Fixes #351410.
660 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
662         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
663         (rhythmdb_property_model_set_query_model_internal),
664         (rhythmdb_property_model_row_inserted_cb),
665         (rhythmdb_property_model_prop_changed_cb),
666         (rhythmdb_property_model_entry_removed_cb),
667         (rhythmdb_property_model_delete),
668         (rhythmdb_property_model_perform_sync):
669         Use the hash table to track hidden entries, rather than visible
670         entries.  Cuts memory usage fairly significantly.  From bug #347425.
672 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
674         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
675         Patch from Christian Becke to fix compilation with -O3, bug #355945.
677 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
679         * sources/rb-ipod-source.c: (add_rb_playlist),
680         (impl_move_to_trash), (impl_delete_thyself):
681         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
683         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
684         Make sure we don't leave the sourcelist thinking a deleted source is
685         still playing.  Fixes nothing.
687 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
689         * shell/rb-shell.c:
690         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
691         'Music->Import Folder' menu item for better icon theme coverage.
692         Fixes #354575.
694 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
696         * rhythmdb/rhythmdb-private.h:
697         * rhythmdb/rhythmdb.c: (rhythmdb_init),
698         (rhythmdb_start_action_thread), (rhythmdb_finalize),
699         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
700         (rhythmdb_load), (rhythmdb_save_async):
701         Use a limited thread pool for adding URIs to the database.
702         Fixes #352494.
704 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
706         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
707         Do something like the previous change, but for gstreamer 0.10
708         this time.  Oops.  Really fixes #349569.
710 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
712         * backends/gstreamer/rb-player-gst.c: (error_cb):
713         Ignore 'internal data flow error' messages if we've already got an
714         error for the file.  Fixes #349569.
716 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
718         * shell/rb-shell-clipboard.c:
719         (rb_shell_clipboard_playlist_deleted_cb):
720         Rebuild 'add to playlist' menu before removing actions for deleted
721         playlists, and don't unref the action, as we never had a reference on
722         it to begin with.  Fixes #354599.
724 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
726         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
727         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
728         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
730 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
732         * daapsharing/rb-daap-connection.c: (handle_playlists):
733         Reverse the list of playlists on the DAAP server so it ends up in the
734         right order.  Fixes #353926.
736 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
738         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
739         Fully process each code so the LIRC client returns to its normal state
740         when we're done.  Makes LIRC actually work properly for me.
742 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
744         patch by: Ed Catmur  <ed@catmur.co.uk>
746         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
747         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
748         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
750 2006-09-02  William Jon McCann  <mccann@jhu.edu>
752         patch by: James Livingston <doclivingston@gmail.com>
754         * configure.ac:
755         * data/rhythmbox.schemas:
756         * metadata/Makefile.am:
757         * plugins/Makefile.am:
758         * plugins/audiocd/.cvsignore:
759         * plugins/audiocd/Makefile.am:
760         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
761         * plugins/audiocd/rb-audiocd-plugin.c:
762         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
763         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
764         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
765         (end_cd_drive_monitor), (begin_cd_drive_monitor),
766         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
767         (rb_audiocd_plugin_playing_uri_changed_cb),
768         (nautilus_burn_drive_get_device),
769         (rb_audiocd_plugin_source_deleted), (create_source_cb),
770         (impl_activate), (_delete_cb), (impl_deactivate):
771         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
772         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
773         * shell/main.c: (main):
774         * shell/rb-removable-media-manager.c:
775         (rb_removable_media_manager_finalize),
776         (rb_removable_media_manager_load_media),
777         (rb_removable_media_manager_mount_volume),
778         (rb_removable_media_manager_scan):
779         * sources/Makefile.am:
780         * sources/rb-audiocd-source.c:
781         * sources/rb-audiocd-source.h:
782         Make auto CD support a plugin.
784         Fixes #349415.
786 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
788         * daapsharing/rb-daap-connection.c: (handle_song_listing):
789         Add a final rhythmdb_commit to make sure all songs from the share show
790         up in the daap source.  Fixes #353913.
792 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
794         * sources/rb-sourcelist-model.c:
795         (rb_sourcelist_model_drag_data_received),
796         (rb_sourcelist_model_row_drop_possible):
797         Re-enable dragging of a set of tracks to the source list to create a
798         new static playlist.  Fixes #353893.
800 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
802         * widgets/bacon-volume.c: (cb_button_timeout):
803         Actually drop the GDK lock, rather than returning while holding it.
804         Fixes #353895.
806 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
808         * plugins/generic-player/rb-generic-player-source.c:
809         (rb_generic_player_source_constructor),
810         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
811         (rb_generic_player_source_load_songs), (load_playlist_file),
812         (default_load_playlists), (get_hal_context):
813         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
814         Fixes #353483.
816 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
818         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
819         Canonicalise URIs received from gnome-vfs file monitor.
820         Fixes #353447.
822 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
824         * help/C/rhythmbox.xml: unbreak help build
825         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
826         Unbuffer the IO channel.  Fixes some weirdness for me.
828 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
830         * help/C/rhythmbox.xml:
831         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
832         (impl_activate), (impl_deactivate):
833         Add 'playpause' LIRC command.
835 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
838         (rb_source_finalize):
839         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
840         when disconnecting generic audio players.
842 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
844         patch by: Paolo Borelli  <pborelli@katamail.com>
846         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
847         Fix a small leak.
849 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
851         * backends/gstreamer/rb-player-gst.c:
852         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
853         Don't actually disable the seek bar for non-seekable songs,
854         because we can't reliably tell yet.
856 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
858         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
859         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
860         (db_entry_deleted_cb), (rb_daap_share_server_start),
861         (rb_daap_share_server_stop):
862         * rhythmdb/rhythmdb-private.h:
863         * rhythmdb/rhythmdb-tree.c: (save_entry):
864         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
865         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
866         (rhythmdb_entry_get_ulong):
867         * rhythmdb/rhythmdb.h:
868         Give db entries a numeric ID property, replacing the daap server's
869         entry->id map.  From #347665.
871 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
873         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
874         * widgets/rb-header.c: (rb_header_class_init),
875         (rb_header_set_property), (rb_header_get_property),
876         (rb_header_set_playing_entry), (rb_header_sync),
877         (rb_header_sync_time):
878         * widgets/rb-header.h:
879         Add a 'seekable' property on RBHeader, and use it to make the seek bar
880         insensitive when the player backend tells us we can't seek in the
881         current song.  From #330410.
883 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
885         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
886         Don't try to unref previous/next entries if they aren't there.
887         Fixes #351806.
889 2006-08-15  James Livingston  <doclivingston@gmail.com>
891         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
892         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
893         mountpoint into a RBRefString and compare equality of those, rather
894         than doign lots of strcmp()s.
896         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
897         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
898         status notification as well as the visibility update in an idle
899         callback. Makes it take much less time to update after a volume
900         mount/unmount event.
902 2006-08-15  James Livingston  <doclivingston@gmail.com>
904         patch by: Christian Becke  <christianbecke@web.de>
906         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
907         multiple selections in the Import Folder dialog. Fixes #351414.
909 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
911         * shell/rb-shell.c: (construct_widgets):
912         * shell/rb-statusbar.c: (rb_statusbar_class_init),
913         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
914         (rb_statusbar_get_property), (rb_statusbar_new):
915         * shell/rb-statusbar.h:
916         Use the connect-proxy signal from the UI manager, which covers all
917         action groups, rather than just one.  Fixes #351280.
919 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
921         * widgets/rb-library-browser.c: (rebuild_child_model):
922         Fix query model reference counts (bug #349601).
924 2006-08-15  James Livingston  <doclivingston@gmail.com>
926         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
927         Error signals be non-recursive. Fixes a highly-unlikely issue that
928         could have caused #322972.
930 2006-08-14  James Livingston  <doclivingston@gmail.com>
932         * sources/rb-auto-playlist-source.c:
933         (rb_auto_playlist_source_init):
934         * sources/rb-static-playlist-source.c:
935         (rb_static_playlist_source_init):
937 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
939         * sources/rb-browser-source.c:
940         * sources/rb-import-errors-source.c:
941         * sources/rb-iradio-source.c:
942         * sources/rb-library-source.c:
943         * sources/rb-missing-files-source.c:
944         * sources/rb-play-queue-source.c:
945         * sources/rb-playlist-source.c:
946         * sources/rb-podcast-source.c:
947         * sources/rb-source.c:
948         Make entry-type a property on RBSource, rather than on most of its
949         subclasses.  Fixes #347288.
951 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
953         * remote/dbus/rb-client.c: (parse_pattern),
954         (create_rb_shell_proxies), (main):
955         Actually implement %ag and %aG (genre) for --print-playing-format
957 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
959         * lib/rb-debug.c: (rb_debug_real):
960         No point allocating a buffer for the timestamp when we can just put it
961         on the stack.
963 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
965         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
966         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
968 2006-08-11  James Livingston  <doclivingston@gmail.com>
970         * podcast/rb-podcast-manager.c:
971         (rb_podcast_manager_update_synctime): fix accidental commit in the
972         last, which caused a warning.
974 2006-08-11  James Livingston  <doclivingston@gmail.com>
976         * data/rhythmbox.schemas:
977         * podcast/rb-podcast-manager.c:
978         (rb_podcast_manager_update_synctime): change the schema's
979         update-inteval value from 0 to 1, which causes it to update on
980         startup, rather than never. Should fixs #343818.
982 2006-08-11  James Livingston  <doclivingston@gmail.com>
984         * configure.ac:
985         * data/Makefile.am:
986         - data/rhythmbox.desktop.in:
987         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
988         the @VERSION@ can be substituted in. Fix some issues with newer
989         bug-buddy versions. Fixes #348853.
991 2006-08-10  William Jon McCann  <mccann@jhu.edu>
993         * data/rhythmbox.schemas:
994         * plugins/Makefile.am:
995         * plugins/artdisplay/Makefile.am:
996         * plugins/audioscrobbler/Makefile.am:
997         * plugins/cd-recorder/Makefile.am:
998         * plugins/generic-player/Makefile.am:
999         * plugins/ipod/Makefile.am:
1000         * plugins/lirc/Makefile.am:
1001         * plugins/lyrics/Makefile.am:
1002         * plugins/pythonconsole/Makefile.am:
1003         * plugins/rb-module.c:
1004         * plugins/rb-module.h:
1005         * plugins/rb-plugin-manager.c: (configure_button_cb),
1006         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1007         (plugin_manager_populate_lists), (plugin_manager_set_active),
1008         (plugin_manager_toggle_active),
1009         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1010         (rb_plugin_manager_finalize):
1011         * plugins/rb-plugin-manager.h:
1012         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1013         (rb_plugin_find_file):
1014         * plugins/rb-plugin.h:
1015         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1016         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1017         (rb_plugins_engine_init), (rb_plugin_info_free),
1018         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1019         (rb_plugins_engine_deactivate_plugin),
1020         (rb_plugins_engine_plugin_is_active),
1021         (rb_plugins_engine_plugin_is_visible),
1022         (rb_plugins_engine_plugin_is_configurable),
1023         (rb_plugins_engine_configure_plugin),
1024         (rb_plugins_engine_get_plugin_name),
1025         (rb_plugins_engine_get_plugin_description),
1026         (rb_plugins_engine_get_plugin_authors),
1027         (rb_plugins_engine_get_plugin_website),
1028         (rb_plugins_engine_get_plugin_copyright),
1029         (rb_plugins_engine_get_plugin_icon):
1030         * plugins/rb-plugins-engine.h:
1031         * plugins/rb-python-module.c: (rb_python_module_init_python),
1032         (rb_python_module_load), (rb_python_module_unload),
1033         (rb_python_module_class_init), (rb_python_module_new),
1034         (finalise_collect_cb), (rb_python_shutdown):
1035         * plugins/rb-python-module.h:
1036         * plugins/rb-python-plugin.c: (call_python_method),
1037         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1038         (impl_is_configurable), (rb_python_object_get_type):
1039         * plugins/rb-python-plugin.h:
1040         * plugins/rb/Makefile.am:
1042         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1043         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1044         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1045         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1046         special case loading of dirs.  Install plugins to subdirectors of
1047         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1048         not DATADIR.  Fixes #350352
1050 2006-08-10  James Livingston  <doclivingston@gmail.com>
1052         * daapsharing/rb-daap-connection.c: (connection_connected),
1053         (connection_disconnected), (connection_operation_done):
1054         * daapsharing/rb-daap-share.c: (name_collision_cb):
1055         * plugins/generic-player/rb-generic-player-source.c:
1056         (rb_generic_player_source_load_playlists):
1057         * podcast/rb-podcast-manager.c:
1058         (rb_podcast_manager_download_entry),
1059         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1060         (end_job), (rb_podcast_manager_event_loop):
1061         * rhythmdb/rhythmdb-property-model.c:
1062         (rhythmdb_property_model_perform_sync):
1063         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1064         (rhythmdb_query_model_process_update), (idle_process_update),
1065         (rhythmdb_query_model_reapply_query_cb):
1066         * shell/rb-play-order.c: (sync_playing_entry_cb):
1067         * shell/rb-removable-media-manager.c:
1068         (rb_removable_media_manager_load_media):
1069         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1070         (rb_shell_clipboard_sync),
1071         (rb_shell_clipboard_entryview_changed_cb),
1072         (rb_shell_clipboard_entries_changed_cb),
1073         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1074         (rebuild_playlist_menu_idle),
1075         (rb_shell_clipboard_playlist_added_cb):
1076         * shell/rb-shell-player.c: (notify_playing_idle),
1077         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1078         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1079         (rb_shell_quit):
1080         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1081         * sources/rb-library-source.c: (add_child_sources_idle):
1082         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1083         (burn_cd_idle):
1084         * sources/rb-source.c: (update_visibility_idle):
1085         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1086         (cb_button_press):
1087         * widgets/rb-druid.c: (idle_set_sensitive):
1088         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1089         take the GDK lock when we should be, from #348588
1091 2006-08-09  James Livingston  <doclivingston@gmail.com>
1093         * rhythmdb/rhythmdb-property-model.c:
1094         (rhythmdb_property_model_get_path),
1095         (rhythmdb_property_model_get_value),
1096         (rhythmdb_property_model_iter_next): don't attempt to verify the
1097         iterator if it's the All value, since it isn't valid. Fixes a
1098         potential crasher.
1100 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1102         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1103         (rb_podcast_manager_download_file_info_cb),
1104         (rb_podcast_manager_abort_download), (download_info_free),
1105         (download_info_new):
1106         Use gnome_vfs_async_get_file_info to figure out the local filename for
1107         a podcast episode, so we get the filename from the target of any
1108         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1109         the query string, then append it later, to stop gnome-vfs from
1110         converting 'http://' to 'http:/'.  If the local filename ends with the
1111         query string, remove it.  Fixes #330766 and #321991.
1113 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1115         * sources/rb-library-source.c: (impl_want_uri):
1116         * sources/rb-static-playlist-source.c: (impl_want_uri):
1117         Treat sftp:// URIs as likely indicators of songness.
1119 2006-08-07  James Livingston  <doclivingston@gmail.com>
1121         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1122         remote tracks with GStreamer 0.10, and remember their visibility like
1123         local ones.
1125 2006-08-07  James Livingston  <doclivingston@gmail.com>
1127         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1128         apparently it's a borrowed reference. Should fix #347072.
1130 2006-08-06  James Livingston  <doclivingston@gmail.com>
1132         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1133         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1134         (rb_shuffle_play_order_get_previous),
1135         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1136         (remove_from_history), (add_randomly_to_history),
1137         (rb_shuffle_sync_history_with_query_model),
1138         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1139         (query_model_and_history_contents_match): remove the tentatative
1140         history stuff, which is from older code, like we did for -random a few
1141         weeks ago.
1143 2006-08-06  James Livingston  <doclivingston@gmail.com>
1145         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1146         (rb_queue_play_order_get_previous):
1147         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1148         (rb_random_play_order_go_next),
1149         (rb_random_play_order_get_previous), (rb_random_db_changed):
1150         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1151         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1152         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1153         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1154         (rb_shuffle_entry_removed),
1155         (query_model_and_history_contents_match):
1156         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1157         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1158         (default_has_next), (default_has_previous),
1159         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1160         various play orders, after reviewing the code. Should fix #349601.
1162 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1164         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1165         Pass the items_per_notification parameter to
1166         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1167         with some versions of python.
1169 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1171         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1172         Don't try to draw the icon if the drawable area is too small.
1173         Fixes #349838.
1175 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1177         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1179         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1181 2006-08-05  James Livingston  <doclivingston@gmail.com>
1183         * configure.ac: tell libtool not to check for C++/fortran/ etc
1184         compilers
1186         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1187         watch, to fix some gconf warnings.
1189 2006-08-04  James Livingston  <doclivingston@gmail.com>
1191         patch by: William Jon McCann  <mccann@jhu.edu>
1193         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1195 2006-08-04  James Livingston  <doclivingston@gmail.com>
1197         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1198         actually fix #349722 this time
1200 2006-08-04  James Livingston  <doclivingston@gmail.com>
1202         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1203         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1204         know about. Fixes #348571.
1206 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1208         various fixes for valgrind complaints:
1209         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1210         (init_rb_tree_dnd_data):
1211           free the associated target list, too
1212         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1213           initialize allocation.{x,y,width,height} correctly
1214         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1215         (rb_entry_view_constructor):
1216           free strings when no longer needed
1218 2006-08-03  James Livingston  <doclivingston@gmail.com>
1220         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1221         real GtkTreeModel not the filter. Fixes #349722
1223 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1225         * backends/gstreamer/rb-player-gst.c:
1226         Only use DAAP seek hacks for GStreamer 0.8 builds.
1228         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1229         (rb_daap_src_open):
1230         * daapsharing/rb-daap-src.h:
1231         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1233         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1234         (rb_daap_source_get_headers):
1235         * sources/rb-daap-source.h:
1236         Reimplement rb_daap_source_get_headers for the case where we've
1237         already got the byte offset.  Add a small hack to
1238         rb_daap_source_class_init to prevent the linker from dropping
1239         rb-daap-src.o entirely.
1241         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1243 2006-08-02  James Livingston  <doclivingston@gmail.com>
1245         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1246         (handle_song_listing), (handle_playlist_entries),
1247         (rb_daap_connection_dispose):
1248         * sources/rb-daap-source.c: (_add_location_to_playlist),
1249         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1250         for playlist URIs, not pointless duplicate strings. From #347425.
1252 2006-08-02  James Livingston  <doclivingston@gmail.com>
1254         * data/rhythmbox.schemas:
1255         * lib/rb-preferences.h:
1256         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1257         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1258         (plugin_manager_set_active), (plugin_manager_toggle_active),
1259         (plugin_manager_get_selected_plugin), (name_search_cb),
1260         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1261         (rb_plugin_manager_finalize):
1262         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1263         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1264         (rb_plugins_engine_plugin_is_visible),
1265         (rb_plugins_engine_plugin_visible_cb):
1266         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1267         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1269 2006-08-02  James Livingston  <doclivingston@gmail.com>
1271         * sources/rb-sourcelist-model.c:
1272         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1273         drop on a source. Fixes #349580.
1275 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1277         * configure.ac:
1278         * daapsharing/rb-daap-dialog.c:
1279         * daapsharing/rb-daap-dialog.h:
1280         * shell/Makefile.am:
1281         * sources/Makefile.am:
1282         * sources/rb-daap-source.c: (connection_auth_cb),
1283         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1284         Add gnome-keyring support for DAAP passwords and use
1285         gnome-password-dialog instead of our own.  
1286         Patch mostly by James Livingston.  Fixes bug #330346.
1288 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1290         * shell/rb-shell-player.c:
1291         (rb_shell_player_set_playing_source_internal),
1292         (rb_shell_player_sync_with_selected_source):
1293         Remove call to rb_source_have_url, as we never did anything with the
1294         result.
1296         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1297         * sources/rb-import-errors-source.c:
1298         (rb_import_errors_source_class_init):
1299         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1300         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1301         * sources/rb-library-source.c: (rb_library_source_class_init),
1302         (impl_want_uri), (impl_add_uri):
1303         * sources/rb-missing-files-source.c:
1304         (rb_missing_files_source_class_init):
1305         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1306         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1307         (impl_want_uri), (impl_add_uri):
1308         * sources/rb-source.c: (rb_source_class_init),
1309         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1310         * sources/rb-source.h:
1311         * sources/rb-static-playlist-source.c:
1312         (rb_static_playlist_source_class_init), (search_action_changed),
1313         (impl_want_uri):
1314         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1315         When adding a URI, want_uri gets called for each source; the one that
1316         wants it most gets the URI passed to its add_uri method.
1317         
1318         * shell/rb-shell.h:
1319         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1320         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1321         (handle_playlist_entry_cb), (rb_shell_load_uri):
1322         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1323         Use want_uri and add_uri to simplify and make generic
1324         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1326         If a source that returns TRUE from try_playlist wants all the URIs in
1327         the playlist, give it the playlist URI instead.  This retains the
1328         existing behaviour for adding iradio playlists.
1330         * bindings/python/rb.defs: Update for above changes.
1332         From bug #347097.
1334 2006-07-31  James Livingston  <doclivingston@gmail.com>
1336         * data/Makefile.am:
1337         * data/generate-keys.sh: fix the build I broke with the last commit.
1338         Oops.
1340 2006-07-31  James Livingston  <doclivingston@gmail.com>
1342         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1343         in a long time. Fixes #349179.
1345 2006-07-30  James Livingston  <doclivingston@gmail.com>
1347         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1348         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1349         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1351 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1353         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1354         Don't tell the browser the query is still pending when doing a subset
1355         search.  Fixes #348617 again.
1357 2006-07-30  James Livingston  <doclivingston@gmail.com>
1359         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1360         override definition. Fixes #348893.
1362 2006-07-30  James Livingston  <doclivingston@gmail.com>
1364         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1365         rb_error_dialog, as it's above this in the stack.
1367         * lib/rb-util.c: (rb_gvalue_compare):
1368         * lib/rb-util.h: change the return type to int, as we're returning
1369         -1/0/1
1371         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1372         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1373         (rb_query_creator_set_sorting): minor leak fixes
1375 2006-07-28  James Livingston  <doclivingston@gmail.com>
1377         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1378         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1379         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1380         (get_or_create_genre), (remove_entry_from_album),
1381         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1382         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1383         (rhythmdb_tree_entry_lookup_by_location),
1384         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1385         (rhythmdb_hash_tree_foreach),
1386         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1387         threadsafe. Fix a nasty problem if the _foreach callback function
1388         caused the addition/removal of entries.
1390 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1392         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1393         Clear selection before changing our idea of the model.  Fixes crashes
1394         on model changes while playing.
1396 2006-07-27  James Livingston  <doclivingston@gmail.com>
1398         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1399         a missing rb_refstring_unref.
1401         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1402         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1403         oops. should hopefully fix the crash reported on #347425.
1405 2006-07-27  James Livingston  <doclivingston@gmail.com>
1407         * backends/gstreamer/rb-encoder-gst.c:
1408         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1410         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1411         thread-safety issue.
1413 2006-07-27  James Livingston  <doclivingston@gmail.com>
1415         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1416         * rhythmdb/rb-refstring.h: add a new function which returns the
1417         RBRefString that matches a string, but never creates a new one.
1419         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1420         (monitor_entry_file), (rhythmdb_check_changed_file),
1421         (rhythmdb_directory_change_cb):
1422         * rhythmdb/rhythmdb-private.h:
1423         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1424         (unparent_entries), (free_unknown_entries),
1425         (rhythmdb_tree_parser_start_element),
1426         (rhythmdb_tree_parser_end_element), (save_entry),
1427         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1428         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1429         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1430         (rhythmdb_tree_entry_type_registered):
1431         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1432         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1433         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1434         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1435         (rhythmdb_process_metadata_load),
1436         (rhythmdb_process_file_created_or_modified),
1437         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1438         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1439         (action_thread_main), (rhythmdb_entry_set_internal),
1440         (rhythmdb_entry_move_to_trash_set_error),
1441         (rhythmdb_entry_move_to_trash),
1442         (rhythmdb_entry_lookup_by_location),
1443         (rhythmdb_entry_lookup_by_location_refstring),
1444         (default_sync_metadata), (rhythmdb_entry_get_string),
1445         (rhythmdb_entry_get_refstring):
1446         * rhythmdb/rhythmdb.h:
1447         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1448         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1449         (rb_playlist_source_row_deleted),
1450         (rb_playlist_source_entry_added_cb),
1451         (rb_playlist_source_location_in_map),
1452         (rb_playlist_source_add_to_map): Make the LOCATION field of
1453         RhythmDBEntry be a RBRefString instead, which reduces some of the
1454         memory-fragmentation on startup and saves RBStaticPlaylistSource
1455         duplicating all the strings.
1457 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1459         * rhythmdb/rhythmdb-query-model.c:
1460         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1461         * rhythmdb/rhythmdb-query-model.h:
1462         Add function to copy contents from one query model to another,
1463         filtered by the destination model's query.
1465         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1466         Use the above to create a new query model for subset searches, rather
1467         than filtering the existing model. Fixes #348617.
1469 2006-07-25  James Livingston  <doclivingston@gmail.com>
1471         * rhythmdb/rhythmdb-query-model.c:
1472         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1473         lost from static playlists. Yet again. Fixes #323095.
1475         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1476         case for the above, so that we should know if a change will break it
1477         again.
1479 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1481         * data/rhythmbox.schemas: Fix for last commit.
1483         * podcast/rb-podcast-manager.c:
1484         (rb_podcast_manager_download_entry),
1485         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1486         (rb_podcast_manager_db_entry_deleted_cb):
1487         * rhythmdb/rhythmdb-property-model.c:
1488         (rhythmdb_property_model_set_query_model_internal),
1489         (rhythmdb_property_model_set_property),
1490         (rhythmdb_property_model_finalize),
1491         (rhythmdb_property_model_drag_data_get):
1492         * rhythmdb/rhythmdb-query-model.c:
1493         (rhythmdb_query_model_set_query_internal),
1494         (rhythmdb_query_model_set_property),
1495         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1496         * rhythmdb/rhythmdb-query-model.h:
1497         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1498         (rb_browser_source_do_query):
1499         * sources/rb-import-errors-source.c:
1500         (rb_import_errors_source_constructor):
1501         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1502         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1503         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1504         (impl_search), (impl_get_status),
1505         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1506         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1507         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1508         * sources/rb-missing-files-source.c:
1509         (rb_missing_files_source_constructor),
1510         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1511         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1512         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1513         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1514         (rb_playlist_source_save_playlist),
1515         (rb_playlist_source_new_from_xml),
1516         (rb_playlist_source_save_to_xml),
1517         (rb_playlist_source_setup_entry_view),
1518         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1519         (rb_playlist_source_get_query_model),
1520         (rb_playlist_source_mark_dirty),
1521         (rb_playlist_source_location_in_map),
1522         (rb_playlist_source_add_to_map):
1523         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1524         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1525         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1526         (impl_delete), (rb_podcast_source_state_prefs_sync),
1527         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1528         (impl_get_config_widget), (rb_podcast_source_add_feed),
1529         (rb_podcast_source_cmd_download_post),
1530         (rb_podcast_source_cmd_cancel_download),
1531         (rb_podcast_source_cmd_delete_feed),
1532         (rb_podcast_source_cmd_update_feed),
1533         (rb_podcast_source_cmd_update_all),
1534         (rb_podcast_source_cb_interval_changed_cb),
1535         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1536         (rb_podcast_source_entry_activated_cb):
1537         * sources/rb-source.c: (rb_source_finalize),
1538         (rb_source_set_query_model_internal), (rb_source_set_property),
1539         (default_get_status):
1540         * sources/rb-static-playlist-source.c:
1541         (rb_static_playlist_source_dispose),
1542         (rb_static_playlist_source_finalize),
1543         (rb_static_playlist_source_constructor),
1544         (rb_static_playlist_source_do_query):
1545         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1546         (rb_entry_view_set_shell_player_internal),
1547         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1548         (rb_entry_view_set_model), (rb_entry_view_append_column),
1549         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1550         (rb_entry_view_set_state):
1551         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1552         (rb_library_browser_finalize), (rb_library_browser_new),
1553         (update_browser_property_visibilty), (view_selection_reset_cb),
1554         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1555         (restore_selection), (rebuild_child_model),
1556         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1557         * widgets/rb-property-view.c:
1558         (rb_property_view_set_model_internal),
1559         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1560         (rb_property_view_get_model), (rb_property_view_set_model),
1561         (rb_property_view_get_num_properties),
1562         (rb_property_view_set_selection),
1563         (rb_property_view_append_column_custom),
1564         (rb_property_view_set_search_func):
1565         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1566         From #347446
1568 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1570         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1571         Work around a small n-c-b API change.
1573 2006-07-25  James Livingston  <doclivingston@gmail.com>
1575         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1577         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1578         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1579         aborting entry-emission on finalise
1581 2006-07-25  James Livingston  <doclivingston@gmail.com>
1583         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1584         warning when entry is NULL.
1586 2006-07-25  James Livingston  <doclivingston@gmail.com>
1588         * help/sv/.cvsignore:
1589         * lib/.cvsignore:
1590         * plugins/generic-player/.cvsignore:
1591         * remote/.cvsignore:
1592         * remote/dbus/.cvsignore:
1593         * shell/.cvsignore:
1594         * tests/.cvsignore: more .cvsignore updates
1596 2006-07-24  James Livingston  <doclivingston@gmail.com>
1598         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1599         (transparent_expose_event), (make_transparent_again),
1600         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1601         apply a patch for EggTrayIcon so that it handled transparent panels
1602         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1603         Fixes #348208.
1605 2006-07-24  James Livingston  <doclivingston@gmail.com>
1607         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1608         queries rather than taking ownership when parsing a subquery. Fixed a
1609         crash exposed by the recent leak fixes.
1611         * doc/reference/tmpl/disclosure-widget.sgml:
1612         * doc/reference/tmpl/rb-debug.sgml:
1613         * doc/reference/tmpl/rb-metadata.sgml:
1614         * doc/reference/tmpl/rb-play-order.sgml:
1615         * doc/reference/tmpl/rb-playlist-manager.sgml:
1616         * doc/reference/tmpl/rb-playlist-source.sgml:
1617         * doc/reference/tmpl/rb-shell-player.sgml:
1618         * doc/reference/tmpl/rb-shell.sgml:
1619         * doc/reference/tmpl/rb-song-display-box.sgml:
1620         * doc/reference/tmpl/rhythmbox-unused.sgml:
1621         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1623 2006-07-24  James Livingston  <doclivingston@gmail.com>
1625         * lib/.cvsignore:
1626         * plugins/artdisplay/.cvsignore:
1627         * plugins/artdisplay/artdisplay/.cvsignore:
1628         * plugins/lyrics/.cvsignore:
1629         * plugins/pythonconsole/.cvsignore:
1630         * plugins/rb/.cvsignore: add/update various .cvsignore files
1632 2006-07-24  James Livingston  <doclivingston@gmail.com>
1634         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1635         (rb_refstring_ref): don't emit critical warnings when the refstring
1636         is NULL, as that happens often for podcast metadata.
1638         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1639         missing rhythmdb_entry_ref call
1641 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1643         * bindings/python/rb.override:
1644         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1645         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1646         (playlist_row_inserted_cb):
1647         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1648         * plugins/rb-plugin-manager.c:
1649         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1650         (rb_podcast_manager_copy_post),
1651         (rb_podcast_manager_db_entry_deleted_cb),
1652         (rb_podcast_manager_insert_feed):
1653         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1654         (rb_refstring_ref), (rb_refstring_get_sort_key):
1655         * rhythmdb/rhythmdb-private.h:
1656         * rhythmdb/rhythmdb-property-model.c:
1657         (rhythmdb_property_model_set_property),
1658         (rhythmdb_property_model_get_property),
1659         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1660         (rhythmdb_property_model_row_inserted_cb),
1661         (rhythmdb_property_model_prop_changed_cb),
1662         (rhythmdb_property_model_compare),
1663         (rhythmdb_property_model_insert),
1664         (rhythmdb_property_model_iter_from_string),
1665         (rhythmdb_property_model_get_column_type),
1666         (rhythmdb_property_model_get_iter),
1667         (rhythmdb_property_model_get_value),
1668         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1669         (rhythmdb_property_model_enable_drag):
1670         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1671         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1672         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1673         (rhythmdb_query_model_chain),
1674         (rhythmdb_query_model_entry_added_cb),
1675         (rhythmdb_query_model_entry_changed_cb),
1676         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1677         (rhythmdb_query_model_add_entry),
1678         (rhythmdb_query_model_insert_into_main_list),
1679         (rhythmdb_query_model_insert_into_limited_list),
1680         (rhythmdb_query_model_remove_from_main_list),
1681         (rhythmdb_query_model_remove_from_limited_list),
1682         (rhythmdb_query_model_update_limited_entries),
1683         (rhythmdb_query_model_emit_reorder),
1684         (rhythmdb_query_model_do_reorder),
1685         (rhythmdb_query_model_do_insert),
1686         (rhythmdb_query_model_move_entry),
1687         (rhythmdb_query_model_remove_entry),
1688         (rhythmdb_query_model_entry_to_iter),
1689         (rhythmdb_query_model_iter_to_entry),
1690         (rhythmdb_query_model_get_previous_from_entry),
1691         (rhythmdb_query_model_row_draggable),
1692         (rhythmdb_query_model_drag_data_delete),
1693         (rhythmdb_query_model_drag_data_get),
1694         (rhythmdb_query_model_drag_data_received),
1695         (rhythmdb_query_model_row_drop_possible),
1696         (rhythmdb_query_model_row_drop_position),
1697         (rhythmdb_query_model_add_results),
1698         (rhythmdb_query_model_query_complete),
1699         (rhythmdb_query_model_get_column_type),
1700         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1701         (rhythmdb_query_model_iter_nth_child),
1702         (apply_updated_entry_sequence),
1703         (rhythmdb_query_model_child_index_to_base_index),
1704         (rhythmdb_query_model_get_entry_index),
1705         (rhythmdb_query_model_base_row_inserted),
1706         (rhythmdb_query_model_base_row_deleted),
1707         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1708         (rhythmdb_query_model_location_sort_func),
1709         (rhythmdb_query_model_title_sort_func),
1710         (rhythmdb_query_model_album_sort_func),
1711         (rhythmdb_query_model_artist_sort_func),
1712         (rhythmdb_query_model_track_sort_func),
1713         (rhythmdb_query_model_double_ceiling_sort_func),
1714         (rhythmdb_query_model_ulong_sort_func),
1715         (rhythmdb_query_model_date_sort_func),
1716         (rhythmdb_query_model_string_sort_func),
1717         (rhythmdb_query_model_within_limit):
1718         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1719         (rhythmdb_tree_parser_start_element),
1720         (rhythmdb_tree_parser_end_element),
1721         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1722         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1723         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1724         (save_entry_uint64), (save_entry_double), (save_entry),
1725         (set_entry_album), (rhythmdb_tree_entry_new),
1726         (get_genres_hash_for_type), (get_or_create_genre),
1727         (get_or_create_artist), (get_or_create_album), (remove_child),
1728         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1729         (rhythmdb_tree_entry_delete), (remove_one_song),
1730         (rhythmdb_tree_entry_delete_by_type),
1731         (rhythmdb_tree_evaluate_query), (search_match_properties),
1732         (evaluate_conjunctive_subquery), (do_conjunction),
1733         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1734         (conjunctive_query_albums), (conjunctive_query_artists),
1735         (conjunctive_query_genre), (conjunctive_query),
1736         (split_query_by_disjunctions), (do_query_recurse),
1737         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1738         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1739         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1740         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1741         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1742         (extract_gtype_from_enum_entry),
1743         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1744         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1745         (rhythmdb_event_free), (rhythmdb_finalize),
1746         (rhythmdb_set_property), (rhythmdb_get_property),
1747         (rhythmdb_thread_create), (free_entry_changes),
1748         (emit_entry_changed), (sync_entry_changed),
1749         (process_added_entries_cb), (process_deleted_entries_cb),
1750         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1751         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1752         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1753         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1754         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1755         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1756         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1757         (rhythmdb_process_metadata_load),
1758         (rhythmdb_process_file_created_or_modified),
1759         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1760         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1761         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1762         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1763         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1764         (record_entry_change), (rhythmdb_entry_set_internal),
1765         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1766         (rhythmdb_entry_move_to_trash_cb),
1767         (rhythmdb_entry_move_to_trash_set_error),
1768         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1769         (rhythmdb_nice_elt_name_from_propid),
1770         (rhythmdb_propid_from_nice_elt_name),
1771         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1772         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1773         (rhythmdb_compute_status_normal), (default_sync_metadata),
1774         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1775         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1776         (podcast_get_playback_uri), (podcast_data_destroy),
1777         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1778         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1779         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1780         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1781         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1782         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1783         * rhythmdb/rhythmdb.h:
1784         * shell/rb-play-order-linear-loop.c:
1785         (rb_linear_play_order_loop_get_next),
1786         (rb_linear_play_order_loop_get_previous):
1787         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1788         (rb_linear_play_order_get_previous):
1789         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1790         * shell/rb-play-order-random.c: (get_query_model_contents):
1791         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1792         (get_query_model_contents):
1793         * shell/rb-play-order.c: (rb_play_order_constructor),
1794         (rb_play_order_finalize),
1795         (rb_play_order_set_playing_entry_internal),
1796         (rb_play_order_set_property), (rb_play_order_new),
1797         (rb_play_order_get_player), (rb_play_order_get_source),
1798         (rb_play_order_get_db), (rb_play_order_get_query_model),
1799         (rb_play_order_player_is_playing),
1800         (rb_play_order_set_playing_entry),
1801         (rb_play_order_get_playing_entry),
1802         (rb_play_order_playing_source_changed),
1803         (rb_play_order_query_model_changed),
1804         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1805         (default_has_next), (default_has_previous),
1806         (sync_playing_entry_cb), (default_playing_entry_removed),
1807         (rb_play_order_has_next), (rb_play_order_get_next),
1808         (rb_play_order_go_next), (rb_play_order_has_previous),
1809         (rb_play_order_get_previous), (rb_play_order_go_previous),
1810         (rb_play_order_model_not_empty),
1811         (rb_play_order_update_have_next_previous):
1812         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1813         (rb_playlist_manager_save_playlists),
1814         (rb_playlist_manager_set_automatic_playlist),
1815         (rb_playlist_manager_cmd_edit_automatic_playlist),
1816         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1817         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1818         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1819         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1820         (volume_pre_unmount_cb), (reemit_playing_signal),
1821         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1822         (rb_shell_player_handle_eos_unlocked),
1823         (rb_shell_player_handle_eos), (rb_shell_player_init),
1824         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1825         (playlist_entry_cb), (rb_shell_player_open_entry),
1826         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1827         (rb_shell_player_set_play_order),
1828         (rb_shell_player_set_playback_state),
1829         (rb_shell_player_sync_play_order),
1830         (rb_shell_player_play_order_update_cb),
1831         (rb_shell_player_jump_to_current), (swap_playing_source),
1832         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1833         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1834         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1835         (rb_shell_player_entry_activated_cb),
1836         (rb_shell_player_property_row_activated_cb),
1837         (rb_shell_player_entry_changed_cb),
1838         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1839         (rb_shell_player_pause),
1840         (rb_shell_player_get_playing_song_duration),
1841         (rb_shell_player_error), (error_cb), (tick_cb),
1842         (info_available_cb), (buffering_cb),
1843         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1844         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1845         (rb_shell_jump_to_current):
1846         * sources/rb-auto-playlist-source.c:
1847         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1848         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1849         (rb_auto_playlist_source_get_query):
1850         * sources/rb-auto-playlist-source.h:
1851         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1852         * sources/rb-import-errors-source.c:
1853         (rb_import_errors_source_constructor):
1854         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1855         * sources/rb-library-source.c: (filepath_parse_pattern):
1856         * sources/rb-missing-files-source.c:
1857         (rb_missing_files_source_constructor):
1858         * sources/rb-play-queue-source.c:
1859         (rb_play_queue_source_clear_queue),
1860         (rb_play_queue_source_track_info_cell_data_func):
1861         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1862         (rb_playlist_source_get_property), (playlist_iter_func),
1863         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1864         (rb_playlist_source_track_cell_data_func):
1865         * sources/rb-podcast-source.c: (construct_query_from_selection),
1866         (rb_podcast_source_post_status_cell_data_func),
1867         (rb_podcast_source_post_feed_cell_data_func),
1868         (rb_podcast_source_feed_title_search_func),
1869         (rb_podcast_source_post_date_cell_data_func):
1870         * sources/rb-source.c: (default_get_status),
1871         (rb_source_get_status), (rb_source_browser_toggled),
1872         (rb_source_update_play_statistics), (rb_source_search),
1873         (rb_source_get_config_widget), (default_add_to_queue),
1874         (rb_source_add_to_queue), (rb_source_receive_drag),
1875         (rb_source_gather_hash_keys):
1876         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1877         (rb_sourcelist_model_is_row_visible),
1878         (rb_sourcelist_model_row_is_separator),
1879         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1880         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1881         (rb_sourcelist_model_drag_data_get):
1882         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1883         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1884         (rb_sourcelist_visible_source_to_iter),
1885         (rb_sourcelist_edit_source_name), (set_source_playing),
1886         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1887         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1888         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1889         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1890         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1891         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1892         (rb_static_playlist_source_add_location_internal),
1893         (rb_static_playlist_source_row_inserted):
1894         * widgets/rb-entry-view.c: (type_ahead_search_func),
1895         (rb_entry_view_finalize), (rb_entry_view_set_model),
1896         (rb_entry_view_playing_cell_data_func),
1897         (rb_entry_view_rating_cell_data_func),
1898         (rb_entry_view_long_cell_data_func),
1899         (rb_entry_view_play_count_cell_data_func),
1900         (rb_entry_view_duration_cell_data_func),
1901         (rb_entry_view_year_cell_data_func),
1902         (rb_entry_view_quality_cell_data_func),
1903         (rb_entry_view_location_cell_data_func),
1904         (rb_entry_view_string_cell_data_func),
1905         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1906         (rb_entry_view_get_sorting_order),
1907         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1908         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1909         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1910         (rb_entry_view_playing_song_changed), (harvest_entries),
1911         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1912         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1913         (set_column_visibility):
1914         * widgets/rb-entry-view.h:
1915         * widgets/rb-header.c: (rb_header_new),
1916         (rb_header_set_playing_entry), (rb_header_set_title):
1917         * widgets/rb-library-browser.c: (rebuild_child_model),
1918         (rb_library_browser_set_model):
1919         * widgets/rb-property-view.c:
1920         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1921         (rb_property_view_set_property), (rb_property_view_get_property),
1922         (rb_property_view_reset), (rb_property_view_get_model),
1923         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1924         (rb_property_view_button_press_cb):
1925         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1926         (rb_query_creator_get_property), (rb_query_creator_load_query),
1927         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1928         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1929         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1930         (lookup_row_by_widget), (remove_button_click_cb),
1931         (add_button_click_cb), (create_property_option_menu):
1932         * widgets/rb-song-info.c: (rb_song_info_constructor),
1933         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1934         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1935         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1936         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1938 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1940         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1941         (rb_shell_player_get_property):
1942         Add a property providing access to the player backend object.
1944 2006-07-23  James Livingston  <doclivingston@gmail.com>
1946         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1947         (get_history), (rb_random_filter_history),
1948         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1949         remove the tentative history, since it appears to be a remanent from
1950         older play order code. The only thing it was doing was using up
1951         CPU-time and memory. From #345857
1953 2006-07-23  James Livingston  <doclivingston@gmail.com>
1955         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1957         * shell/main.c: (main):
1958         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1959         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1960         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1961         (rb_playlist_manager_load_playlists),
1962         (rb_playlist_manager_save_data):
1963         * shell/rb-playlist-manager.h:
1964         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1965         (rb_shell_get_property), (rb_shell_sync_state),
1966         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1967         (construct_sources), (idle_handle_load_complete):
1968         * shell/rb-shell.h: Add a command-line option for changing the
1969         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1971 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1973         * daapsharing/rb-daap-share.c: (databases_cb):
1974         Make sure we set status codes on HTTP responses.
1976 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1978         * configure.ac:
1979         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1980         (chunked_message_finished), (send_chunked_file),
1981         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1982         Use GMappedFile to send local files to DAAP clients where possible.  
1983         iTunes can't seek properly in files sent using chunked transfer 
1984         encoding.  Also remove the useless bitrate calculation code, as we
1985         never even used the result anyway.  From #330410.
1987 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1989         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1991         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1992         Enable multiple selection for 'import file'.  Fixes #347478.
1994 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1996         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1997         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1998         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1999         Fixes #348098.
2001 2006-07-20  James Livingston  <doclivingston@gmail.com>
2003         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2004         aren't NULL before calling strstr. Fixes #347998.
2006 2006-07-19  James Livingston  <doclivingston@gmail.com>
2008         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2010         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2011         MB that only have years. Fixes #347906.
2013 2006-07-19  James Livingston  <doclivingston@gmail.com>
2015         * rhythmdb/rhythmdb-private.h:
2016         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2017         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2018         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2019         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2020         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2021         (rhythmdb_execute_stat), (queue_stat_uri),
2022         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2023         (rhythmdb_load), (rhythmdb_entry_register_type),
2024         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2025         asynchronous vfs operations, and cancel them when shutting down the
2026         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2028         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2029         (test_rhythmdb_shutdown): wait until the db has been finalised before
2030         continuing on to the next test.
2032 2006-07-19  James Livingston  <doclivingston@gmail.com>
2034         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2035         right thing in the #ifdef. From #347832.
2037 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2039         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2040         Fix compile warning.
2042 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2044         * rhythmdb/rhythmdb-query-model.c:
2045         (rhythmdb_query_model_set_property),
2046         (rhythmdb_query_model_reapply_query_cb):
2047         Ignore old query == new query case.
2048         Fixes auto playlists with time-relative queries.
2050         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2051         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2052         (rhythmdb_query_to_string):
2053         * rhythmdb/rhythmdb.h:
2054         Add debug helper for printing queries in case someone needs it again.
2056 2006-07-18  James Livingston  <doclivingston@gmail.com>
2058         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2059         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2060         Fixes #347832
2062         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2063         write then into files.
2065 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2067         * daapsharing/rb-daap-connection.c:
2068         (rb_daap_connection_set_property):
2069         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2070         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2071         (add_playlist_to_mlcl), (databases_cb):
2072         * daapsharing/rb-daap-sharing.c: (create_share):
2073         * iradio/rb-new-station-dialog.c:
2074         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2075         * iradio/rb-station-properties-dialog.c:
2076         (rb_station_properties_dialog_finalize),
2077         (rb_station_properties_dialog_set_property),
2078         (rb_station_properties_dialog_get_current_entry):
2079         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2080         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2081         * plugins/generic-player/rb-generic-player-source.c:
2082         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2083         (handle_playlist_entry_cb):
2084         * plugins/generic-player/rb-nokia770-source.c:
2085         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2086         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2087         (visit_playlist_dirs), (hal_udi_is_psp):
2088         * podcast/rb-podcast-manager.c:
2089         * podcast/rb-podcast-properties-dialog.c:
2090         (rb_podcast_properties_dialog_finalize),
2091         (rb_podcast_properties_dialog_set_entry_view),
2092         (rb_podcast_properties_dialog_set_property):
2093         * rhythmdb/rhythmdb-property-model.c:
2094         * rhythmdb/rhythmdb-query-model.c:
2095         (rhythmdb_query_model_set_property),
2096         (rhythmdb_query_model_reapply_query_cb):
2097         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2098         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2099         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2100         (rhythmdb_event_free), (rhythmdb_shutdown),
2101         (rhythmdb_thread_create), (action_thread_main),
2102         (rhythmdb_do_full_query_async_parsed),
2103         (rhythmdb_do_full_query_internal):
2104         * shell/main.c: (main):
2105         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2106         * shell/rb-play-order.c: (rb_play_order_finalize),
2107         (rb_play_order_set_player),
2108         (rb_play_order_set_playing_entry_internal),
2109         (rb_play_order_set_property),
2110         (rb_play_order_playing_source_changed),
2111         (rb_play_order_query_model_changed):
2112         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2113         (rb_playlist_manager_set_source),
2114         (rb_playlist_manager_set_shell_internal),
2115         (rb_playlist_manager_set_property):
2116         * shell/rb-removable-media-manager.c:
2117         (rb_removable_media_manager_set_property),
2118         (rb_removable_media_manager_set_uimanager),
2119         (rb_removable_media_manager_cmd_eject_medium),
2120         (rb_removable_media_manager_cmd_copy_tracks):
2121         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2122         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2123         (rb_shell_clipboard_set),
2124         (rb_shell_clipboard_cmd_add_to_playlist_new),
2125         (rb_shell_clipboard_playlist_add_cb),
2126         (rb_shell_clipboard_playlist_renamed_cb),
2127         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2128         (rebuild_playlist_menu):
2129         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2130         (rb_shell_player_set_queue_source_internal),
2131         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2132         (rb_shell_player_entry_activated_cb),
2133         (rb_shell_player_property_row_activated_cb),
2134         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2135         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2136         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2137         (rb_shell_finalize), (construct_widgets),
2138         (rb_shell_playing_from_queue_cb),
2139         (rb_shell_player_stream_song_changed_cb),
2140         (rb_shell_player_volume_changed_cb):
2141         * shell/rb-statusbar.c: (rb_statusbar_new):
2142         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2143         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2144         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2145         * sources/rb-auto-playlist-source.c:
2146         (rb_auto_playlist_source_class_init),
2147         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2148         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2149         (rb_auto_playlist_source_do_query),
2150         (rb_auto_playlist_source_set_query),
2151         (rb_auto_playlist_source_browser_changed_cb),
2152         (search_action_changed):
2153         * sources/rb-auto-playlist-source.h:
2154         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2155         (search_action_changed), (rb_browser_source_constructor),
2156         (rb_browser_source_cmd_choose_artist), (impl_delete),
2157         (rb_browser_source_browser_changed_cb),
2158         (rb_browser_source_do_query):
2159         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2160         (rb_daap_source_finalize), (rb_daap_source_class_init),
2161         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2162         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2163         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2164         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2165         (rb_daap_source_get_headers):
2166         * sources/rb-import-errors-source.c:
2167         (rb_import_errors_source_constructor),
2168         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2169         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2170         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2171         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2172         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2173         (impl_paste), (impl_receive_drag):
2174         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2175         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2176         (impl_song_properties):
2177         * sources/rb-library-source.c: (rb_library_source_constructor),
2178         (rb_library_source_new), (impl_paste),
2179         (rb_library_source_add_child_source):
2180         * sources/rb-missing-files-source.c: (impl_delete),
2181         (impl_get_status):
2182         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2183         (rb_play_queue_source_class_init),
2184         (rb_play_queue_source_constructor):
2185         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2186         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2187         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2188         (rb_playlist_source_new_from_xml),
2189         (rb_playlist_source_save_to_xml):
2190         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2191         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2192         (search_action_changed), (rb_podcast_source_constructor),
2193         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2194         (construct_query_from_selection),
2195         (rb_podcast_source_cmd_download_post),
2196         (rb_podcast_source_cmd_cancel_download),
2197         (rb_podcast_source_cmd_delete_feed),
2198         (rb_podcast_source_start_download_cb),
2199         (rb_podcast_source_finish_download_cb),
2200         (rb_podcast_source_feed_updates_avaliable_cb),
2201         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2202         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2203         (impl_get_status):
2204         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2205         * sources/rb-source.c: (rb_source_get_property),
2206         (default_add_to_queue), (default_move_to_trash),
2207         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2208         (_rb_source_register_action_group):
2209         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2210         (rb_sourcelist_model_is_row_visible),
2211         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2212         (rb_sourcelist_model_row_draggable),
2213         (rb_sourcelist_model_drag_data_get):
2214         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2215         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2216         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2217         (visibility_notify_cb):
2218         * sources/rb-static-playlist-source.c:
2219         (rb_static_playlist_source_class_init),
2220         (rb_static_playlist_source_init),
2221         (rb_static_playlist_source_finalize),
2222         (rb_static_playlist_source_constructor), (impl_delete),
2223         (rb_static_playlist_source_browser_changed_cb),
2224         (rb_static_playlist_source_add_location_internal),
2225         (search_action_changed):
2226         * sources/rb-static-playlist-source.h:
2227         * widgets/rb-druid.c:
2228         * widgets/rb-entry-view.c:
2229         (rb_entry_view_set_shell_player_internal),
2230         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2231         (rb_entry_view_get_property), (rb_entry_view_new),
2232         (rb_entry_view_button_press_cb):
2233         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2234         (rb_library_browser_set_property),
2235         (rb_library_browser_get_property):
2236         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2237         (get_entry_for_property), (get_property_index_from_proptype):
2238         * widgets/rb-song-info.c: (rb_song_info_constructor),
2239         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2240         (rb_song_info_set_property), (rb_song_info_get_property):
2242         More leak and reference counting fixes.  From bug #347446.
2244 2006-07-17  James Livingston  <doclivingston@gmail.com>
2246         * sources/rb-auto-playlist-source.c:
2247         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2248         rather than setting the base model, as that lets us not import all the
2249         entries from the base model. This fixes some issues whether the search
2250         box wasn't filting automatic playlists.
2252 2006-07-17  James Livingston  <doclivingston@gmail.com>
2254         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2255         error, which caused blacklist creation to fail.
2257 2006-07-17  James Livingston  <doclivingston@gmail.com>
2259         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2260         running with -n, because we don't start it then. Fixes a crash on
2261         exit.
2263 2006-07-17  James Livingston  <doclivingston@gmail.com>
2265         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2267         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2268         Save not Open for the button. Fixes #345816
2270 2006-07-17  James Livingston  <doclivingston@gmail.com>
2272         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2274         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2275         when track transfer is disabled. Fixes #347705
2277 2006-07-17  James Livingston  <doclivingston@gmail.com>
2279         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2281         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2282         with track transfer disabled. Fixes #347705
2284 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2286         * rhythmdb/rhythmdb-query-model.c:
2287         (rhythmdb_query_model_set_property):
2288         * shell/main.c: (main):
2289         * shell/rb-shell-clipboard.c: (unset_source_internal),
2290         (rb_shell_clipboard_finalize),
2291         (rb_shell_clipboard_set_source_internal),
2292         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2293         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2294         (rb_shell_player_set_db_internal),
2295         (rb_shell_player_set_queue_source_internal),
2296         (rb_shell_player_finalize), (rb_shell_player_set_property):
2297         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2298         * sources/rb-auto-playlist-source.c:
2299         (rb_auto_playlist_source_constructor),
2300         (rb_auto_playlist_source_new_from_xml):
2301         * sources/rb-daap-source.c: (create_pixbufs):
2302         * sources/rb-ipod-source.c:
2303         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2304         * sources/rb-library-source.c:
2305         (rb_library_source_add_child_source):
2306         * sources/rb-play-queue-source.c:
2307         (rb_play_queue_sync_playing_state),
2308         (rb_play_queue_source_track_info_cell_data_func):
2309         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2310         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2311         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2312         (impl_can_add_to_queue), (impl_add_to_queue):
2313         * sources/rb-source.c: (rb_source_set_property):
2314         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2315         * sources/rb-static-playlist-source.c:
2316         (rb_static_playlist_source_constructor),
2317         (rb_static_playlist_source_load_from_xml):
2318         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2319         * widgets/rb-entry-view.c: (rb_entry_view_init),
2320         (rb_entry_view_finalize), (rb_entry_view_append_column),
2321         (rb_entry_view_constructor):
2322         * widgets/rb-song-info.c: (rb_song_info_set_property):
2323         Fix leaks.  From bug #347446.
2325 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2327         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2328         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2329         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2330         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2331         (add_decoding_pipeline), (profile_bin_find_encoder),
2332         (get_profile_from_mime_type), (extract_track), (transcode_track),
2333         (rb_encoder_gst_encode):
2334         * backends/gstreamer/rb-encoder-gst.h:
2335         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2336         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2337         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2338         (rb_player_gst_construct):
2339         * backends/gstreamer/rb-player-gst.h:
2340         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2341         * backends/rb-encoder.h:
2342         * backends/rb-player.c: (_rb_player_emit_tick):
2343         * backends/rb-player.h:
2344         * daapsharing/rb-daap-connection.c: (build_message),
2345         (actual_http_response_handler), (http_response_handler),
2346         (http_get), (entry_set_string_prop), (emit_progress_idle),
2347         (handle_server_info), (handle_database_info),
2348         (handle_song_listing), (handle_playlists),
2349         (handle_playlist_entries), (rb_daap_connection_new),
2350         (connected_cb), (rb_daap_connection_do_something),
2351         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2352         (rb_daap_connection_get_property):
2353         * daapsharing/rb-daap-connection.h:
2354         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2355         (rb_daap_collision_dialog_new_run):
2356         * daapsharing/rb-daap-dialog.h:
2357         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2358         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2359         (DigestToString), (rb_daap_hash_generate):
2360         * daapsharing/rb-daap-hash.h:
2361         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2362         (resolve_cb), (browse_cb):
2363         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2364         (resolve_cb), (rb_daap_mdns_browser_resolve),
2365         (rb_daap_mdns_browser_start), (resolver_free):
2366         * daapsharing/rb-daap-mdns-browser.h:
2367         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2368         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2369         (publish_cb):
2370         * daapsharing/rb-daap-mdns-publisher.h:
2371         * daapsharing/rb-daap-share.c: (name_collision_cb),
2372         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2373         (message_set_from_rb_daap_structure), (content_codes_cb),
2374         (session_id_validate), (logout_cb), (update_cb),
2375         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2376         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2377         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2378         (rb_daap_share_publish_start):
2379         * daapsharing/rb-daap-share.h:
2380         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2381         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2382         * daapsharing/rb-daap-sharing.h:
2383         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2384         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2385         (rb_daap_src_open):
2386         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2387         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2388         (rb_daap_structure_parse_container_buffer),
2389         (rb_daap_structure_parse), (gnode_find_node),
2390         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2391         (print_rb_daap_item):
2392         * daapsharing/rb-daap-structure.h:
2393         * iradio/rb-new-station-dialog.c:
2394         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2395         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2396         (rb_new_station_dialog_text_changed):
2397         * iradio/rb-station-properties-dialog.c:
2398         (rb_station_properties_dialog_init),
2399         (rb_station_properties_dialog_new),
2400         (rb_station_properties_dialog_response_cb),
2401         (rb_station_properties_dialog_get_current_entry),
2402         (rb_station_properties_dialog_rated_cb),
2403         (rb_station_properties_dialog_update_rating),
2404         (rb_station_properties_dialog_update_playback_error),
2405         (rb_station_properties_dialog_sync_entries):
2406         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2407         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2408         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2409         (rb_metadata_can_save), (rb_metadata_save):
2410         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2411         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2412         (_handle_message), (_new_connection), (main):
2413         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2414         (rb_metadata_dbus_read_from_message):
2415         * metadata/rb-metadata-dbus.h:
2416         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2417         (rb_add_id3_tagger), (rb_metadata_init),
2418         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2419         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2420         (rb_metadata_gst_new_decoded_pad_cb),
2421         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2422         * metadata/sj-error.c: (sj_error_quark):
2423         * metadata/sj-error.h:
2424         * metadata/sj-metadata-musicbrainz.c:
2425         (sj_metadata_musicbrainz_instance_init),
2426         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2427         (get_rdf), (lookup_cd):
2428         * metadata/sj-metadata.c: (sj_metadata_get_type):
2429         * metadata/sj-structures.c:
2430         * metadata/sj-structures.h:
2431         * metadata/test-metadata.c: (load_metadata_cb), (main):
2432         * podcast/rb-feed-podcast-properties-dialog.c:
2433         (rb_feed_podcast_properties_dialog_init),
2434         (rb_feed_podcast_properties_dialog_update_title):
2435         * podcast/rb-feed-podcast-properties-dialog.h:
2436         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2437         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2438         (rb_new_podcast_dialog_text_changed):
2439         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2440         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2441         (rb_podcast_manager_set_property),
2442         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2443         (rb_podcast_manager_download_entry),
2444         (rb_podcast_manager_update_feeds),
2445         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2446         (rb_podcast_manager_copy_post),
2447         (rb_podcast_manager_thread_parse_feed),
2448         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2449         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2450         (download_info_free), (download_info_new), (start_job),
2451         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2452         (download_progress_cb), (download_progress_update_cb),
2453         (rb_podcast_manager_remove_feed),
2454         (rb_podcast_manager_db_entry_deleted_cb),
2455         (rb_podcast_manager_cancel_download),
2456         (rb_podcast_manager_update_synctime),
2457         (rb_podcast_manager_set_remove_files),
2458         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2459         (rb_podcast_manager_abort_subscribe),
2460         (rb_podcast_manager_get_podcast_dir):
2461         * podcast/rb-podcast-manager.h:
2462         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2463         (rb_validate_channel_propert), (rb_validate_item_propert),
2464         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2465         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2466         (rb_podcast_parse_date), (rb_podcast_parse_time),
2467         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2468         * podcast/rb-podcast-parse.h:
2469         * podcast/rb-podcast-properties-dialog.c:
2470         (rb_podcast_properties_dialog_init),
2471         (rb_podcast_properties_dialog_get_current_entry),
2472         (rb_podcast_properties_dialog_update_title),
2473         (rb_podcast_properties_dialog_update_duration),
2474         (rb_podcast_properties_dialog_update_date):
2475         * podcast/rb-podcast-properties-dialog.h:
2476         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2477         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2478         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2479         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2480         (g_sequence_search), (g_sequence_set_aggregate_data),
2481         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2482         (find_min), (g_sequence_node_find_by_pos),
2483         (g_sequence_node_find_closest), (g_sequence_node_free),
2484         (g_sequence_node_split), (g_sequence_node_insert_before),
2485         (g_sequence_node_get_length), (g_sequence_node_remove),
2486         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2487         (g_sequence_calc_tree_height):
2488         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2489         (rb_refstring_get):
2490         * rhythmdb/rb-refstring.h:
2491         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2492         (rhythmdb_gda_init), (dump_model), (execute_query),
2493         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2494         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2495         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2496         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2497         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2498         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2499         * rhythmdb/rhythmdb-gda.h:
2500         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2501         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2502         (monitor_library_directory), (rhythmdb_check_changed_file),
2503         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2504         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2505         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2506         * rhythmdb/rhythmdb-private.h:
2507         * rhythmdb/rhythmdb-property-model.c:
2508         (rhythmdb_property_model_set_property),
2509         (rhythmdb_property_model_row_inserted_cb),
2510         (rhythmdb_property_model_prop_changed_cb),
2511         (rhythmdb_property_model_compare),
2512         (rhythmdb_property_model_get_value),
2513         (rhythmdb_property_model_iter_nth_child),
2514         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2515         (rhythmdb_property_model_drag_data_get),
2516         (rhythmdb_property_model_enable_drag),
2517         (rhythmdb_property_model_column_get_type):
2518         * rhythmdb/rhythmdb-property-model.h:
2519         * rhythmdb/rhythmdb-query-model.c:
2520         (rhythmdb_query_model_class_init),
2521         (rhythmdb_query_model_set_property),
2522         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2523         (rhythmdb_query_model_has_pending_changes),
2524         (rhythmdb_query_model_entry_changed_cb),
2525         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2526         (rhythmdb_query_model_add_entry),
2527         (rhythmdb_query_model_remove_from_main_list),
2528         (rhythmdb_query_model_remove_entry),
2529         (rhythmdb_query_model_drag_data_received),
2530         (rhythmdb_query_model_row_drop_possible),
2531         (rhythmdb_query_model_compute_status_normal),
2532         (rhythmdb_query_model_set_sort_order),
2533         (rhythmdb_query_model_get_entry_index),
2534         (rhythmdb_query_model_base_row_inserted),
2535         (rhythmdb_query_model_base_row_deleted),
2536         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2537         (rhythmdb_query_model_date_sort_func),
2538         (rhythmdb_query_model_within_limit):
2539         * rhythmdb/rhythmdb-query-model.h:
2540         * rhythmdb/rhythmdb-query-results.c:
2541         (rhythmdb_query_results_query_complete):
2542         * rhythmdb/rhythmdb-query-results.h:
2543         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2544         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2545         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2546         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2547         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2548         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2549         (rhythmdb_tree_parser_start_element),
2550         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2551         (save_entry), (save_entry_type), (save_unknown_entry_type),
2552         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2553         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2554         (get_or_create_genre), (remove_entry_from_album),
2555         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2556         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2557         (search_match_properties), (evaluate_conjunctive_subquery),
2558         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2559         (conjunctive_query_artists), (conjunctive_query_genre),
2560         (conjunctive_query), (split_query_by_disjunctions),
2561         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2562         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2563         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2564         (rhythmdb_hash_tree_foreach),
2565         (rhythmdb_tree_entry_type_registered):
2566         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2567         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2568         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2569         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2570         (rhythmdb_shutdown), (rhythmdb_finalize),
2571         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2572         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2573         (rhythmdb_entry_example_new),
2574         (set_metadata_string_default_unknown), (is_ghost_entry),
2575         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2576         (rhythmdb_process_metadata_load),
2577         (rhythmdb_process_queued_entry_set_event),
2578         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2579         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2580         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2581         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2582         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2583         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2584         (rhythmdb_entry_delete_by_type),
2585         (rhythmdb_propid_from_nice_elt_name),
2586         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2587         (rhythmdb_compute_status_normal),
2588         (rhythmdb_entry_register_type_alias),
2589         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2590         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2591         (rhythmdb_entry_import_error_get_type),
2592         (rhythmdb_entry_podcast_post_get_type),
2593         (rhythmdb_entry_podcast_feed_get_type),
2594         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2595         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2596         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2597         * rhythmdb/rhythmdb.h:
2598         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2599         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2600         (rb_history_limit_size):
2601         * shell/rb-history.h:
2602         * shell/rb-play-order-linear-loop.c:
2603         (rb_linear_play_order_loop_get_next):
2604         * shell/rb-play-order-linear-loop.h:
2605         * shell/rb-play-order-linear.c:
2606         * shell/rb-play-order-linear.h:
2607         * shell/rb-play-order-queue.c:
2608         (rb_queue_play_order_playing_entry_removed):
2609         * shell/rb-play-order-queue.h:
2610         * shell/rb-play-order-random-by-age-and-rating.c:
2611         * shell/rb-play-order-random-by-age-and-rating.h:
2612         * shell/rb-play-order-random-by-age.c:
2613         (rb_random_by_age_get_entry_weight):
2614         * shell/rb-play-order-random-by-age.h:
2615         * shell/rb-play-order-random-by-rating.c:
2616         * shell/rb-play-order-random-by-rating.h:
2617         * shell/rb-play-order-random-equal-weights.c:
2618         * shell/rb-play-order-random-equal-weights.h:
2619         * shell/rb-play-order-random.c: (rb_random_filter_history),
2620         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2621         (rb_random_db_changed), (rb_random_playing_entry_changed),
2622         (rb_random_db_entry_deleted):
2623         * shell/rb-play-order-shuffle.c: (remove_from_history),
2624         (add_randomly_to_history), (get_query_model_contents),
2625         (rb_shuffle_playing_entry_changed):
2626         * shell/rb-play-order-shuffle.h:
2627         * shell/rb-play-order.c: (rb_play_order_class_init),
2628         (rb_play_order_set_property),
2629         (rb_play_order_playing_source_changed),
2630         (rb_play_order_query_model_changed_cb),
2631         (rb_play_order_query_model_changed),
2632         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2633         * shell/rb-play-order.h:
2634         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2635         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2636         (rb_playlist_manager_set_property),
2637         (rb_playlist_manager_parse_file),
2638         (rb_playlist_manager_load_playlists),
2639         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2640         (rb_playlist_manager_save_playlists),
2641         (rb_playlist_manager_new_playlist),
2642         (rb_playlist_manager_new_playlist_from_selection_data),
2643         (rb_playlist_manager_cmd_new_automatic_playlist),
2644         (rb_playlist_manager_cmd_edit_automatic_playlist),
2645         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2646         (save_playlist_response_cb), (export_set_extension_cb),
2647         (filter_get_export_filter_label), (setup_format_menu),
2648         (rb_playlist_manager_cmd_save_playlist),
2649         (rb_playlist_manager_get_playlists),
2650         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2651         (rb_playlist_manager_delete_playlist),
2652         (rb_playlist_manager_export_playlist):
2653         * shell/rb-playlist-manager.h:
2654         * shell/rb-removable-media-manager.c:
2655         (rb_removable_media_manager_class_init),
2656         (rb_removable_media_manager_dispose),
2657         (rb_removable_media_manager_finalize),
2658         (rb_removable_media_manager_set_property),
2659         (split_drive_from_cdda_uri),
2660         (rb_removable_media_manager_playing_uri_changed_cb),
2661         (rb_removable_media_manager_load_media),
2662         (rb_removable_media_manager_volume_mounted_cb),
2663         (remove_volume_by_source),
2664         (rb_removable_media_manager_source_deleted_cb),
2665         (rb_removable_media_manager_volume_unmounted_cb),
2666         (rb_removable_media_manager_mount_volume),
2667         (rb_removable_media_manager_set_uimanager),
2668         (rb_removable_media_manager_scan), (do_transfer),
2669         (rb_removable_media_manager_cmd_copy_tracks):
2670         * shell/rb-removable-media-manager.h:
2671         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2672         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2673         (rb_shell_clipboard_sync),
2674         (rb_shell_clipboard_idle_poll_deletions),
2675         (rb_shell_clipboard_cmd_add_to_playlist_new),
2676         (rb_shell_clipboard_playlist_add_cb),
2677         (rb_shell_clipboard_playlist_deleted_cb),
2678         (rb_shell_clipboard_playlist_renamed_cb),
2679         (rb_shell_clipboard_playlist_visible_cb),
2680         (rb_shell_clipboard_playlist_added_cb):
2681         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2682         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2683         (rb_shell_player_init), (rb_shell_player_set_property),
2684         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2685         (rb_shell_player_open_location),
2686         (rb_shell_player_set_playing_entry),
2687         (rb_shell_player_play_order_update_cb),
2688         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2689         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2690         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2691         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2692         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2693         (gconf_song_position_slider_visibility_changed),
2694         (rb_shell_player_entry_activated_cb),
2695         (rb_shell_player_property_row_activated_cb),
2696         (rb_shell_player_entry_changed_cb),
2697         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2698         (actually_set_playing_source),
2699         (rb_shell_player_set_playing_source_internal),
2700         (rb_shell_player_get_playing_song_duration), (eos_cb),
2701         (rb_shell_player_error), (error_cb), (info_available_cb),
2702         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2703         (rb_shell_player_error_get_type):
2704         * shell/rb-shell-player.h:
2705         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2706         (rb_shell_preferences_append_page),
2707         (share_check_button_toggled_cb),
2708         (password_check_button_toggled_cb), (add_daap_preferences),
2709         (rb_shell_preferences_column_check_changed_cb),
2710         (rb_shell_preferences_sync_column_button),
2711         (rb_shell_preferences_sync),
2712         (rb_shell_preferences_browser_views_activated_cb):
2713         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2714         (rb_shell_set_property), (rb_shell_get_property),
2715         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2716         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2717         (rb_shell_get_visibility), (rb_shell_set_visibility),
2718         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2719         (rb_shell_register_entry_type_for_source),
2720         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2721         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2722         (rb_shell_player_stream_song_changed_cb),
2723         (rb_shell_set_window_title),
2724         (rb_shell_view_smalldisplay_changed_cb),
2725         (rb_shell_view_queue_as_sidebar_changed_cb),
2726         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2727         (rb_shell_cmd_add_folder_to_library),
2728         (rb_shell_cmd_add_file_to_library),
2729         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2730         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2731         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2732         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2733         (handle_playlist_entry_cb), (rb_shell_load_uri),
2734         (rb_shell_add_to_queue), (rb_shell_present),
2735         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2736         (rb_shell_volume_widget_changed_cb),
2737         (rb_shell_player_volume_changed_cb),
2738         (rb_shell_ui_location_get_type):
2739         * shell/rb-shell.h:
2740         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2741         (rb_source_header_init), (rb_source_header_set_source_internal),
2742         (rb_source_state_sync), (rb_source_header_clear_search),
2743         (rb_source_header_view_browser_changed_cb):
2744         * shell/rb-source-header.h:
2745         * shell/rb-statusbar.c: (rb_statusbar_construct),
2746         (rb_statusbar_init), (rb_statusbar_finalize),
2747         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2748         (rb_statusbar_source_status_changed_cb):
2749         * shell/rb-statusbar.h:
2750         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2751         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2752         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2753         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2754         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2755         (rb_audiocd_create_track_entry):
2756         * sources/rb-auto-playlist-source.c:
2757         (rb_auto_playlist_source_class_init),
2758         (rb_auto_playlist_source_constructor),
2759         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2760         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2761         (rb_auto_playlist_source_query_complete_cb),
2762         (rb_auto_playlist_source_do_query),
2763         (rb_auto_playlist_source_set_query),
2764         (rb_auto_playlist_source_browser_changed_cb),
2765         (search_action_to_prop):
2766         * sources/rb-auto-playlist-source.h:
2767         * sources/rb-browser-source.c: (rb_browser_source_init),
2768         (rb_browser_source_dispose), (search_action_to_prop),
2769         (rb_browser_source_constructor),
2770         (rb_browser_source_cmd_choose_genre),
2771         (rb_browser_source_cmd_choose_artist),
2772         (rb_browser_source_cmd_choose_album), (impl_search),
2773         (rb_browser_source_browser_changed_cb),
2774         (rb_browser_source_do_query):
2775         * sources/rb-browser-source.h:
2776         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2777         (rb_daap_source_init), (rb_daap_source_dispose),
2778         (rb_daap_source_set_property), (start_browsing),
2779         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2780         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2781         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2782         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2783         * sources/rb-daap-source.h:
2784         * sources/rb-import-errors-source.h:
2785         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2786         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2787         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2788         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2789         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2790         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2791         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2792         (generate_ipod_filename), (ipod_path_from_unix_path),
2793         (impl_delete_thyself):
2794         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2795         (rb_iradio_source_init), (rb_iradio_source_constructor),
2796         (rb_iradio_source_new), (guess_uri_scheme),
2797         (rb_iradio_source_add_station),
2798         (rb_iradio_source_async_update_play_statistics),
2799         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2800         (stations_view_drag_data_received_cb),
2801         (rb_iradio_source_cmd_new_station):
2802         * sources/rb-iradio-source.h:
2803         * sources/rb-library-source.c: (rb_library_source_dispose),
2804         (rb_library_source_constructor),
2805         (rb_library_source_location_button_clicked_cb),
2806         (impl_get_config_widget), (rb_library_source_library_location_cb),
2807         (sanitize_path), (filepath_parse_pattern),
2808         (layout_example_label_update),
2809         (rb_library_source_layout_filename_changed), (build_filename),
2810         (impl_can_paste), (impl_paste),
2811         (rb_library_source_add_child_source),
2812         (rb_library_source_sync_child_sources):
2813         * sources/rb-library-source.h:
2814         * sources/rb-missing-files-source.h:
2815         * sources/rb-play-queue-source.c:
2816         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2817         * sources/rb-play-queue-source.h:
2818         * sources/rb-playlist-source-recorder.c:
2819         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2820         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2821         (rb_playlist_source_recorder_init),
2822         (rb_playlist_source_recorder_new):
2823         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2824         (rb_playlist_source_save_playlist),
2825         (rb_playlist_source_entry_added_cb),
2826         (rb_playlist_source_set_query_model),
2827         (rb_playlist_source_add_to_map):
2828         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2829         (rb_podcast_source_init), (rb_podcast_source_dispose),
2830         (rb_podcast_source_finalize), (search_action_to_prop),
2831         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2832         (rb_podcast_source_get_property), (rb_podcast_source_new),
2833         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2834         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2835         (rb_podcast_source_show_browser), (construct_query_from_selection),
2836         (rb_podcast_source_do_query), (impl_get_config_widget),
2837         (rb_podcast_source_btn_file_change_cb),
2838         (posts_view_drag_data_received_cb),
2839         (rb_podcast_source_cmd_download_post),
2840         (rb_podcast_source_cmd_cancel_download),
2841         (rb_podcast_source_cmd_delete_feed),
2842         (rb_podcast_source_cmd_properties_feed),
2843         (rb_podcast_source_cmd_update_feed),
2844         (rb_podcast_source_post_status_cell_data_func),
2845         (rb_podcast_source_post_feed_cell_data_func),
2846         (rb_podcast_source_post_date_cell_data_func),
2847         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2848         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2849         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2850         (impl_get_status):
2851         * sources/rb-podcast-source.h:
2852         * sources/rb-removable-media-source.c:
2853         (rb_removable_media_source_constructor):
2854         * sources/rb-removable-media-source.h:
2855         * sources/rb-source.h:
2856         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2857         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2858         (rb_sourcelist_model_row_is_separator),
2859         (rb_sourcelist_model_drag_data_received),
2860         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2861         (rb_sourcelist_model_row_drop_position),
2862         (rb_sourcelist_model_get_drag_target),
2863         (rb_sourcelist_model_row_draggable),
2864         (rb_sourcelist_model_drag_data_get),
2865         (rb_sourcelist_model_row_inserted_cb),
2866         (rb_sourcelist_model_get_group_path):
2867         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2868         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2869         (rb_sourcelist_visible_source_to_iter),
2870         (rb_sourcelist_edit_source_name),
2871         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2872         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2873         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2874         * sources/rb-static-playlist-source.c:
2875         (rb_static_playlist_source_class_init),
2876         (rb_static_playlist_source_constructor),
2877         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2878         (impl_search), (rb_static_playlist_source_do_query),
2879         (rb_static_playlist_source_browser_changed_cb),
2880         (impl_receive_drag), (impl_save_contents_to_xml),
2881         (rb_static_playlist_source_add_location_swapped),
2882         (search_action_to_prop):
2883         * sources/rb-static-playlist-source.h:
2884         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2885         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2886         (egg_tray_icon_get_orientation_property),
2887         (egg_tray_icon_send_manager_message),
2888         (egg_tray_icon_update_manager_window),
2889         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2890         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2891         * widgets/eggtrayicon.h:
2892         * widgets/rb-cell-renderer-pixbuf.c:
2893         (rb_cell_renderer_pixbuf_get_property),
2894         (rb_cell_renderer_pixbuf_set_property),
2895         (rb_cell_renderer_pixbuf_get_size),
2896         (rb_cell_renderer_pixbuf_render),
2897         (rb_cell_renderer_pixbuf_activate):
2898         * widgets/rb-cell-renderer-rating.c:
2899         (rb_cell_renderer_rating_class_init),
2900         (rb_cell_renderer_rating_get_property),
2901         (rb_cell_renderer_rating_set_property),
2902         (rb_cell_renderer_rating_get_size),
2903         (rb_cell_renderer_rating_render),
2904         (rb_cell_renderer_rating_activate):
2905         * widgets/rb-dialog.c:
2906         * widgets/rb-dialog.h:
2907         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2908         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2909         (rb_druid_page3_finish_cb):
2910         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2911         (rb_entry_view_init), (rb_entry_view_set_property),
2912         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2913         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2914         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2915         (rb_entry_view_set_sorting_order),
2916         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2917         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2918         (rb_entry_view_playing_song_changed),
2919         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2920         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2921         (rb_entry_view_set_fixed_column_width),
2922         (rb_entry_view_get_time_date_column_sample),
2923         (rb_entry_view_state_get_type):
2924         * widgets/rb-entry-view.h:
2925         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2926         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2927         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2928         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2929         (update_browser_property_visibilty),
2930         (rb_library_browser_construct_query), (restore_selection),
2931         (rebuild_child_model), (rb_library_browser_set_selection),
2932         (rb_library_browser_set_model):
2933         * widgets/rb-library-browser.h:
2934         * widgets/rb-property-view.c: (rb_property_view_class_init),
2935         (rb_property_view_set_property), (rb_property_view_reset),
2936         (rb_property_view_get_model), (rb_property_view_constructor),
2937         (rb_property_view_set_selection),
2938         (rb_property_view_selection_changed_cb),
2939         (rb_property_view_button_press_cb),
2940         (rb_property_view_set_search_func):
2941         * widgets/rb-query-creator-private.h:
2942         * widgets/rb-query-creator-properties.c:
2943         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2944         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2945         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2946         (relativeTimeCriteriaCreateWidget),
2947         (relativeTimeCriteriaSetWidgetData):
2948         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2949         (rb_query_creator_dispose), (rb_query_creator_load_query),
2950         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2951         (get_property_index_from_proptype), (select_criteria_from_value),
2952         (create_property_option_menu), (create_criteria_option_menu),
2953         (sort_option_menu_changed), (setup_sort_option_menu):
2954         * widgets/rb-query-creator.h:
2955         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2956         (rb_rating_render_stars):
2957         * widgets/rb-rating-helper.h:
2958         * widgets/rb-rating.c: (rb_rating_expose):
2959         * widgets/rb-rating.h:
2960         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2961         (rb_search_entry_timeout_cb):
2962         * widgets/rb-search-entry.h:
2963         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2964         (rb_song_info_constructor), (rb_song_info_new),
2965         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2966         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2967         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2968         (rb_song_info_query_model_changed_cb),
2969         (rb_song_info_sync_entries_multiple),
2970         (rb_song_info_sync_entry_single):
2971         Strip all trailing whitespace.  Fixes #344293.
2973 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2975         * doc/reference/Makefile.am: Fix GTK Doc Build
2977 2006-07-13  James Livingston  <doclivingston@gmail.com>
2979         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2981         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2982         instead of the LOCATION, and don't try to get the directory listing
2983         for http URI schemes
2985         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2986         invalid utf8 in the error message, since apparently it can happen.
2988 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2990         * sources/rb-import-errors-source.c:
2991         (rb_import_errors_source_class_init),
2992         (rb_import_errors_source_init),
2993         (rb_import_errors_source_constructor),
2994         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2995         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2996         * sources/rb-missing-files-source.c:
2997         (rb_missing_files_source_class_init),
2998         (rb_missing_files_source_init),
2999         (rb_missing_files_source_constructor),
3000         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3001         (rb_missing_files_source_songs_sort_order_changed_cb),
3002         (impl_get_status):
3003         * sources/rb-source.c: (rb_source_class_init),
3004         (rb_source_finalize), (update_visibility_idle),
3005         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3006         (rb_source_set_property), (rb_source_get_property),
3007         (default_get_status), (rb_source_update_play_statistics),
3008         (default_add_to_queue), (_rb_source_show_popup),
3009         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3010         (rb_source_gather_selected_properties),
3011         (_rb_source_register_action_group):
3012         * sources/rb-source.h:
3013         * sources/rb-sourcelist.c: (visibility_notify_cb):
3014         Don't use a fake model for import-errors and missing-files
3015         sources.  Add a new source property "hidden-when-empty".
3016         Update source visibility in an idle.  Clean up some whitespace.
3017         From bug #346800
3019 2006-07-12  James Livingston  <doclivingston@gmail.com>
3021         * bindings/python/rb.defs:
3022         * bindings/python/rb.override: bind rb_error_dialog
3024         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3025         the current working directory for uninstalled plugins, and add the
3026         class name to the method name.
3028 2006-07-12  James Livingston  <doclivingston@gmail.com>
3030         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3031         the sources EOF type if it's NULL. Fixes #346284.
3033 2006-07-12  James Livingston  <doclivingston@gmail.com>
3035         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3036         I accidently committed. Nothing to see here, move along...
3038 2006-07-11  James Livingston  <doclivingston@gmail.com>
3040         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3041         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3042         Unknown.
3044 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3046         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3048 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3050         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3051         Don't try to set mtime if we've deleted the entry.
3053 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3055         * bindings/python/rhythmdb.defs:
3056         * rhythmdb/rhythmdb.c:
3057         * rhythmdb/rhythmdb.h:
3058         * rhythmdb/rhythmdb-private.h:
3059         * rhythmdb/rhythmdb-query.c:
3060         Move data structures holding registered entry types inside the
3061         RhythmDB object, and add a vfunc called when new types are registered.
3062         Add a flag to RhythmDBEntryType specifying whether entries of the type
3063         should be saved to the on-disk database.
3065         * sources/rb-audiocd-source.c:
3066         * sources/rb-daap-source.c:
3067         * sources/rb-ipod-source.c:
3068         * plugins/generic-player/rb-generic-player-source.c:
3069         * plugins/generic-player/rb-nokia770-source.c:
3070         * plugins/generic-player/rb-psp-source.c:
3071         Adjust to the above changes.
3073         * rhythmdb/rhythmdb-tree.c:
3074         If the type for an entry hasn't been registered yet, store the entry's
3075         properties as-is, and convert them to a real entry when the type is
3076         registered.  If the type doesn't get registered, save the entry back
3077         to the database unmodified.  From #330226.
3079 2006-07-10  James Livingston  <doclivingston@gmail.com>
3081         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3082         os.path.unlink to os.unlink, so removing stuff works.
3084 2006-07-10  James Livingston  <doclivingston@gmail.com>
3086         patch by: Ed Catmur  <ed@catmur.co.uk>
3087               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3089         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3090         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3091         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3092         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3093         internals of the cover database and Amazon lookup engine, and add
3094         support for loading art from the local file system. Fixes #345688.
3096         * plugins/rb/Coroutine.py:
3097         * plugins/rb/Makefile.am:
3098         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3099         plugin classes.
3101 2006-07-10  James Livingston  <doclivingston@gmail.com>
3103         * tests/Makefile.am: don't run the benchmark when doing "make check"
3105         * po/POTFILES.in: more build fixes, from Matti Lindell
3106         <feenixx@hotmail.com>. Fixes #347049.
3109 2006-07-10  James Livingston  <doclivingston@gmail.com>
3111         * plugins/cd-recorder/Makefile.am: build fixes
3113         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3114         attempt to change properties if we couldn't create an entry.
3116         * shell/rb-source-header.c: (rb_source_header_init),
3117         (rb_source_header_view_browser_changed_cb),
3118         (rb_source_header_sync_control_state):
3119         * shell/rb-tray-icon.c:
3120         * widgets/Makefile.am:
3121         * widgets/disclosure-widget.c:
3122         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3123         widget, as it hasn't been used for a while.
3125 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3127         * Makefile.am:
3128         * configure.ac:
3129         * data/ui/rhythmbox-ui.xml:
3130         * plugins/Makefile.am:
3131         * plugins/cd-recorder/.cvsignore:
3132         * plugins/cd-recorder/Makefile.am:
3133         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3134         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3135         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3136         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3137         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3138         (playlist_row_inserted_cb), (update_source),
3139         (shell_selected_source_notify_cb), (impl_activate),
3140         (impl_deactivate):
3141         * shell/Makefile.am:
3142         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3143         (rb_playlist_manager_cmd_save_playlist):
3144         * shell/rb-shell.c: (rb_shell_select_source):
3145         * sources/Makefile.am:
3146         * sources/rb-playlist-source-recorder.c:
3147         (rb_playlist_source_recorder_new):
3148         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3149         (rb_playlist_source_add_to_map):
3150         * sources/rb-playlist-source.h:
3151         Move cd burning into a plugin.  Fixes #344300.
3153 2006-07-10  James Livingston  <doclivingston@gmail.com>
3155         * lib/eel-gconf-extensions.c:
3156         * shell/rb-shell.c: remove some ununsed gnomeui includes
3158         * widgets/Makefile.am:
3159         * widgets/rb-song-display-box.c:
3160         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3161         since it isn't acutally used anywhere. Fixes #346926
3163 2006-07-09  James Livingston  <doclivingston@gmail.com>
3165         * bindings/python/rb.defs:
3166         * bindings/python/rb.override:
3167         * lib/rb-debug.c: (rb_debug_real):
3168         * lib/rb-debug.h:
3169         * plugins/rb/__init__.py: don't print out an extra newline when
3170         diverting python print statements to RB's debug log.
3172 2006-07-09  James Livingston  <doclivingston@gmail.com>
3174         * rhythmdb/rhythmdb-property-model.c:
3175         (rhythmdb_property_model_drag_data_get):
3176         * sources/rb-sourcelist-model.c:
3177         (rb_sourcelist_model_row_draggable),
3178         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3179         from the row reference is still valid. Fixes #346709.
3181 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3183         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3185         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3186         If all selected entries have the same rating, use that as the initial
3187         rating for the multiple song info dialog.  Fixes #345970.
3189 2006-07-09  James Livingston  <doclivingston@gmail.com>
3191         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3192         to prevent #343345:
3193                 - don't ever scale to 1x1, just hide the image in that case
3194                 - don't fade when the window is minimised
3195                 - use the last-good allocation width, not the current one - as
3196                   it sometimes get weird values.
3198 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3200         * data/ui/rhythmbox-ui.xml:
3201         * shell/rb-shell.c:
3202         Remove Import audio CD from menu.  Fixes #339732
3204 2006-07-08  James Livingston  <doclivingston@gmail.com>
3206         * metadata/test-metadata.c: (print_metadata_string),
3207         (load_metadata_cb): print out all the metadata we have read, not just
3208         a few.
3210         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3211         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3213 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3215         * plugins/lyrics/lyrics.py:
3216         Change the lyrics cache location to match Quod Libet's,
3217         and fix the '&' -> 'and' substitution to require spaces.
3219 2006-07-08  James Livingston  <doclivingston@gmail.com>
3221         * bindings/python/rb.defs:
3222         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3224         * configure.ac:
3225         * plugins/Makefile.am:
3226         * plugins/rb-python-module.c: (rb_python_module_init_python):
3227         * plugins/rb/Makefile.am: add a place to put common python classes.
3228         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3229         rb module/
3231         * plugins/lyrics/Makefile.am:
3232         * plugins/lyrics/Loader.py:
3233         * plugins/artdisplay/artdisplay/Makefile.am:
3234         * plugins/artdisplay/artdisplay/Loader.py:
3235         * plugins/rb/Loader.py: move the loader class to rb.Loader
3237         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3238         "print ...") to rb_debug. error output (e.g. exceptions) are still
3239         printed on stderr.
3241         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3242         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3243         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3244         instead of Loader.
3246         Fixes #346895.
3248 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3250         * shell/rb-shell-player.xml:
3251         * shell/rb-shell-player.h:
3252         Correct the details of the playing-song-property-changed signal.
3254 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3256         * lib/rb-marshal.list:
3257         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3258         (rb_shell_player_entry_changed_cb):
3259         * shell/rb-shell-player.h:
3260         * shell/rb-shell-player.xml:
3261         Emit a dbus signal when a property is changed on the playing entry.
3262         Fixes #332461.
3264 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3266         * rhythmdb/rhythmdb-private.h:
3267         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3268         Fix build break with gcc 4.1 by changing RBRefString pointers into
3269         gpointers.
3271 2006-07-07  James Livingston  <doclivingston@gmail.com>
3273         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3274         remove an extraneous !, which caused it not to monitor folders in the
3275         library with no tracks in them. Fixes #346759.
3277 2006-07-07  James Livingston  <doclivingston@gmail.com>
3279         * rhythmdb/rhythmdb-private.h:
3280         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3281         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3282         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3283         (rhythmdb_entry_get_string):
3284         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3285         flags for the affected properties. _sync_mirrored will get run
3286         automatically when a dirty property is accessed, which improves
3287         performance a bit (especially during startup) as we don't need to sync
3288         every time they change. From #325215.
3290         * tests/bench-rhythmdb-load.c
3291         * tests/Makefile.am: add a RhythmDB loading benchmark.
3293 2006-07-06  James Livingston  <doclivingston@gmail.com>
3295         * bindings/python/rb.defs:
3296         * bindings/python/rb.override: some more fixes, so that
3297         python classes derived from RBSource work correctly.
3299 2006-07-06  James Livingston  <doclivingston@gmail.com>
3301         * configure.ac: bump pygtk requirements to 2.8, since we're already
3302         using some features of it, and weird things will happen if people are
3303         actually trying to use pygtk 2.6.
3305         * bindings/python/rb.override:
3306         * bindings/python/rhythmdb.defs:
3307         * bindings/python/rhythmdb.override: allow python to set
3308         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3310         * sources/rb-browser-source.c: remove some left over member variables
3312 2006-07-06  James Livingston  <doclivingston@gmail.com>
3314         * rhythmdb/rhythmdb.c:
3315         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3316         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3317         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3318         former is pointless (as rhythmdb already knows which it should use)
3319         and the latter doesn't seem useful at all, and possibly bad. From
3320         #330226.
3322         * bindings/python/rhythmdb.defs:
3323         * bindings/python/rhythmdb.override:
3324         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3325         (handle_song_listing):
3326         * podcast/rb-podcast-manager.c:
3327         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3328         (rb_podcast_manager_insert_feed):
3329         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3330         (rb_audiocd_create_track_entry):
3331         * sources/rb-ipod-source.c: (entry_set_string_prop),
3332         (add_ipod_song_to_db):
3333         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3334         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3336 2006-07-05  James Livingston  <doclivingston@gmail.com>
3338         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3339         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3340         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3341         totem-plparser gives us, or the file name if it doesn't give us
3342         anything. Set the default file name when saving too. Fixes #345261
3344 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3346         patch by: Ed Catmur  <ed@catmur.co.uk>
3348         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3349         Skip all hidden directories, not just trash, and skip unreadable
3350         files.  Fixes #346322.
3352 2006-07-04  James Livingston  <doclivingston@gmail.com>
3354         * plugins/rb-module.h:
3355         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3356         (rb_module_new):
3357         * plugins/rb-plugin.h:
3358         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3359         (rb_plugin_finalise), (rb_plugin_set_property),
3360         (rb_plugin_get_property), (rb_plugin_activate),
3361         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3362         (rb_plugin_find_file):
3363         * plugins/rb-plugins-engine.c: (load_plugin_module):
3364         * plugins/rb-python-module.c: (rb_python_module_new_object),
3365         (rb_python_module_new):
3366         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3367         rb_plugin_find_file method for locating plugin-specific data. Fixes
3368         346473.
3370         * bindings/python/rb.defs:
3371         * plugins/Makefile.am:
3372         * plugins/generic-player/rb-generic-player-plugin.c:
3373         (create_source_cb):
3374         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3376 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3378         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3379         (rb_metadata_can_save), (rb_metadata_save):
3380         Protect the dbus connection with a mutex.
3382 2006-07-03  James Livingston  <doclivingston@gmail.com>
3384         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3385         case of the parser/tagger not being able to be created.
3387 2006-07-03  James Livingston  <doclivingston@gmail.com>
3389         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3391         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3392         window resizable, as it used to be. Fixes #345940.
3394 2006-07-01  James Livingston  <doclivingston@gmail.com>
3396         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3398         * rhythmdb/rhythmdb.h:
3399         * rhythmdb/rhythmdb-private.h:
3400         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3401         (rhythmdb_tree_parser_end_element), (save_entry):
3402         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3403         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3404         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3405         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3406         MusicBrainz track IDs in the database, and bump the on-disk version
3407         number to trigger a metadata reload.
3409         * backends/gstreamer/rb-player-gst.c: (process_tag):
3410         * metadata/rb-metadata-common.c:
3411         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3412         (rb_metadata_gst_field_to_gst_tag):
3413         * metadata/rb-metadata.h: grab MB track IDs and use them.
3415         * plugins/audioscrobbler/rb-audioscrobbler.c:
3416         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3417         (rb_audioscrobbler_timeout_cb),
3418         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3419         the other metadata. Fixes #343491.
3421 2006-06-30  James Livingston  <doclivingston@gmail.com>
3423         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3424         method.
3426 2006-06-30  James Livingston  <doclivingston@gmail.com>
3428         * bindings/python/rb.defs:
3429         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3430         (rb_browser_source_songs_show_popup_cb),
3431         (default_show_entry_popup):
3432         * sources/rb-browser-source.h:
3433         * sources/rb-library-source.c: (rb_library_source_class_init),
3434         (rb_library_source_constructor), (impl_show_popup): allow
3435         RBBrowserSource-derived sources to override the entry context menu
3436         properly - by making it a virtual function, rather than relying on
3437         signal handler order (which doesn't really work).
3439 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3441         * rhythmdb/rhythmdb-query-model.c:
3442         (rhythmdb_query_model_reapply_query_cb):
3443         Use the original query, not the preprocessed query, when redoing
3444         the query to pick up entries that previously didn't match.
3445         Preprocessing the query twice is bad.  Fixes #346186.
3447 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3449         * plugins/audioscrobbler/rb-audioscrobbler.c:
3450         (rb_audioscrobbler_song_changed_cb):
3451         Just check if the elapsed time has been reset, rather
3452         than checking if it's a different track.  Fixes #344827.
3454 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3456         * backends/gstreamer/rb-player-gst.c:
3457         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3458         drive spins up, #344576.
3460 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3462         * plugins/audioscrobbler/rb-audioscrobbler.c:
3463         (rb_audioscrobbler_perform):
3464         Use HTTP/1.1.  Fixes #345895.
3466 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3468         * lib/rb-preferences.h:
3469         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3470         (check_auto_proxy_config), (get_proxy_config):
3471         Don't try to use a HTTP proxy if no proxy host is specified.
3472         Alert the user to the fact that we don't support automatic proxy
3473         configuration as infrequently as possible.  From #345712.
3475 2006-06-25  James Livingston  <doclivingston@gmail.com>
3477         * rhythmdb/rhythmdb-property-model.c:
3478         (rhythmdb_property_model_set_property): connect to the
3479         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3480         things get removed correctly, fixes #338183.
3482 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3484         * rhythmdb/rhythmdb-query-model.c:
3485         (rhythmdb_query_model_drag_data_received):
3486         Fix build break.
3488 2006-06-25  James Livingston  <doclivingston@gmail.com>
3490         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3492         * widgets/rb-search-entry.c: (rb_search_entry_init),
3493         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3494         search box have a pale yellow background when it's in use, except for
3495         when the user has an "accessability" theme. Code based heavily on
3496         Epiphany's. Fixes #344416.
3498 2006-06-25  James Livingston  <doclivingston@gmail.com>
3500         * plugins/lyrics/lyrics.py:
3501         * plugins/pythonconsole/pythonconsole.py:
3502         * plugins/sample-python/sample-python.py: don't import gettext stuff
3503         as _, as the C code does this for us. Fixes i18n for python plugins,
3504         #343081
3506 2006-06-25  James Livingston  <doclivingston@gmail.com>
3508         * rhythmdb/rhythmdb-query-model.c:
3509         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3510         a model use a reorder rather then deleting and re-adding the entry.
3511         This means it does do weird things like stop playback of a track that
3512         is dragged, fixing #337657.
3514 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3516         * metadata/rb-metadata-dbus-service.c:
3517         Add missing #include <glib/gi18n.h> from previous commit.
3519 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3521         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3523         * metadata/rb-metadata-dbus-service.c: (main):
3524         Initialize gettext in the metadata helper.
3525         * metadata/rb-metadata-gst.c:
3526         Make some strings translatable.  Fixes #345286.
3528 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3530         * configure.ac:
3531         * lib/Makefile.am:
3532         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3533         Inline the custom icons so they can always be loaded, but are still
3534         themable.  Fixes #345796.
3536 2006-06-23  James Livingston  <doclivingston@gmail.com>
3538         * sources/rb-auto-playlist-source.c:
3539         (rb_auto_playlist_source_do_query): stop the search box being applied
3540         for limits in auto playlists. Fixes #345307.
3542 2006-06-23  James Livingston  <doclivingston@gmail.com>
3544         * shell/rb-shell-clipboard.c:
3545         (rb_shell_clipboard_set_source_internal),
3546         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3547         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3548         non-library tracks, as we don't supprot it yet. From #345248.
3550 2006-06-23  James Livingston  <doclivingston@gmail.com>
3552         patch by: Brian Cameron  <brian.cameron@sun.com>
3554         * plugins/generic-player/rb-generic-player-plugin.c:
3555         * plugins/generic-player/rb-generic-player-source.c:
3556         * plugins/generic-player/rb-nokia770-source.c:
3557         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3558         Fixes 345673.
3560 2006-06-22  James Livingston  <doclivingston@gmail.com>
3562         * backends/rb-player.c: (rb_player_interface_init):
3563         * lib/rb-marshal.list:
3564         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3565         * rhythmdb/rhythmdb-query-model.c:
3566         (rhythmdb_query_model_class_init):
3567         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3568         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3569         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3570         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3571         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3572         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3573         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3574         possible not.
3576 2006-06-20  James Livingston  <doclivingston@gmail.com>
3578         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3580         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3581         metadata to clients. Fixes #345276.
3583 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3585         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3586         (rb_add_id3_tagger):
3587         Fix plugin/element version detection for id3v2mux.
3589 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3591         * sources/rb-source.c: (rb_source_finalize),
3592         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3593         (_autohide_update_visibility),
3594         (_rb_autohide_source_post_entry_deleted_cb),
3595         (_rb_autohide_source_row_inserted_cb),
3596         (_rb_source_hide_when_empty):
3597         Use post-entry-delete signal to update status and autohide sources.
3599 2006-06-20  James Livingston  <doclivingston@gmail.com>
3601         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3602         "selection changed" idle callback, if present.
3604 2006-06-19  James Livingston  <doclivingston@gmail.com>
3606         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3608         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3609         don't try to translate the empty string. Fixes #345285.
3611 2006-06-19  James Livingston  <doclivingston@gmail.com>
3613         * bindings/python/rhythmdb.override: more python binding fixes
3615 2006-06-19  James Livingston  <doclivingston@gmail.com>
3617         * lib/rb-util.c: (rb_copy_function):
3618         * lib/rb-util.h: add a function that returns the same pointer it was
3619         passed.
3621         * rhythmdb/rhythmdb.h:
3622         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3623         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3624         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3625         and RhythmDBEntryType into boxed types. This allows them to be used
3626         from python. Note that entry-types aren't actually reference counted
3627         (yet).
3629         * bindings/python/rb.defs:
3630         * bindings/python/rhythmdb.defs:
3631         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3632         return types of some bindings.
3634         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3635         (process_added_entries_cb), (rhythmdb_entry_finalize),
3636         (rhythmdb_entry_delete):
3637         * daapsharing/rb-daap-connection.c:
3638         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3639         (rb_daap_connection_get_property):
3640         * plugins/generic-player/rb-generic-player-source.c:
3641         (rb_generic_player_source_load_songs), (load_playlist_file):
3642         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3643         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3644         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3645         (idle_process_update), (rhythmdb_query_model_add_entry),
3646         (rhythmdb_query_model_insert_into_main_list),
3647         (rhythmdb_query_model_insert_into_limited_list),
3648         (rhythmdb_query_model_remove_from_main_list),
3649         (rhythmdb_query_model_remove_from_limited_list),
3650         (rhythmdb_query_model_drag_data_received),
3651         (rhythmdb_query_model_add_results),
3652         (rhythmdb_query_model_get_column_type),
3653         (rhythmdb_query_model_get_value):
3654         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3655         (rhythmdb_tree_entry_delete), (remove_one_song):
3656         * shell/rb-play-order-linear-loop.c:
3657         (rb_linear_play_order_loop_get_next),
3658         (rb_linear_play_order_loop_get_previous):
3659         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3660         (rb_linear_play_order_get_previous):
3661         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3662         (rb_queue_play_order_get_previous):
3663         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3664         (rb_random_filter_history), (rb_random_play_order_get_next),
3665         (rb_random_play_order_go_next), (rb_random_db_changed),
3666         (rb_random_playing_entry_changed):
3667         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3668         (remove_from_history), (add_randomly_to_history),
3669         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3670         * shell/rb-play-order.c: (rb_play_order_class_init),
3671         (rb_play_order_set_property), (rb_play_order_get_property),
3672         (rb_play_order_update_have_next_previous):
3673         * shell/rb-play-order.h:
3674         * shell/rb-shell-clipboard.c:
3675         (rb_shell_clipboard_process_deletions),
3676         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3677         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3678         * sources/rb-auto-playlist-source.c:
3679         (rb_auto_playlist_source_constructor):
3680         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3681         (rb_browser_source_set_property), (rb_browser_source_get_property),
3682         (rb_browser_source_do_query):
3683         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3684         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3685         * sources/rb-ipod-source.c: (add_rb_playlist),
3686         (add_ipod_song_to_db), (impl_paste):
3687         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3688         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3689         * sources/rb-library-source.c: (layout_example_label_update):
3690         * sources/rb-missing-files-source.c:
3691         (rb_missing_files_source_class_init),
3692         (rb_missing_files_source_set_property),
3693         (rb_missing_files_source_get_property),
3694         (rb_missing_files_source_new):
3695         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3696         (rb_playlist_source_set_property),
3697         (rb_playlist_source_get_property):
3698         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3699         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3700         (construct_query_from_selection):
3701         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3702         * sources/rb-static-playlist-source.c:
3703         (rb_static_playlist_source_constructor),
3704         (rb_static_playlist_source_add_location_internal):
3705         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3706         * widgets/rb-header.c: (rb_header_class_init),
3707         (rb_header_set_property), (rb_header_get_property):
3708         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3709         (rb_library_browser_set_property),
3710         (rb_library_browser_get_property):
3711         * widgets/rb-song-info.c: (rb_song_info_class_init),
3712         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3713         change, do s/pointer/boxed/ in many places and free entry-types
3714         properly.
3716 2006-06-18  James Livingston  <doclivingston@gmail.com>
3718         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3719         unushed GThreadPool non-exclusive threads every now and then.
3721         * rhythmdb/rhythmdb-private.h:
3722         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3723         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3724         threads. Fixes #341593
3726 2006-06-19  James Livingston  <doclivingston@gmail.com>
3728         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3729         the "Track number" checkbox actually work for playlists. From #329986.
3731 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3733         * plugins/generic-player/rb-generic-player-source.c:
3734         Get playlist and audio folder information from HAL.  Fixes #333845.
3736 2006-06-18  James Livingston  <doclivingston@gmail.com>
3738         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3740         * widgets/rb-entry-view.h:
3741         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3742         (rb_entry_view_append_column_custom),
3743         (rb_entry_view_insert_column_custom): add support for inserting custom
3744         columns at arbitrary locations, rather than just appending to the end.
3746         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3747         the playlists "track number" column go at the start, and add a normal
3748         track number column. Fixes #329986.
3750 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3752         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3753         a mnemonic conflict.  Add ellipses to the edit button.
3754         * sources/rb-library-source.c:
3755         (rb_library_source_edit_profile_clicked_cb),
3756         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3757         mnemonic widget to the labels. Fixes #344114.
3759 2006-06-18  James Livingston  <doclivingston@gmail.com>
3761         * configure.ac: bump version
3762         * NEWS: add NEWS for 0.9.5
3764 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3766         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3767         (rb_uri_handle_recursively):
3768         Don't attempt to recurse into directories we can't open.  
3769         Fixes #341485.
3771 2006-06-18  James Livingston  <doclivingston@gmail.com>
3773         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3775         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3776         #344610.
3778 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3780         * bindings/python/rb.defs:
3781         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3782         * shell/rb-shell-player.h:
3783         * shell/rb-shell.c: (rb_shell_play_entry):
3784         Add source parameter to rb_shell_player_play_entry, using the selected
3785         source if not specified.
3787         * shell/rb-play-order.c: (rb_play_order_class_init),
3788         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3789         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3790         (default_playing_entry_removed):
3791         * shell/rb-play-order.h:
3792         Move entry removal handling back to the row-deleted signal, as we need
3793         the entry to be present in the model.  When changing to the next entry
3794         after the playing entry is deleted, set the new entry as the playing
3795         entry and then sync it to the player in an idle handler, so we don't
3796         end up playing it if it was removed too.
3797         * shell/rb-play-order-queue.c:
3798         (rb_queue_play_order_playing_entry_changed),
3799         (rb_queue_play_order_playing_entry_removed):
3800         Use the playing-entry-removed handler from the play order class,
3801         setting a flag so we don't try to remove the already-removed entry
3802         from the model.
3804         This makes removal of the playing entry from playlists etc. work more
3805         or less correctly for all play orders.  Fixes #344627.
3807 2006-06-17  James Livingston  <doclivingston@gmail.com>
3809         patch by: Elijah Newren  <newren@gmail.com>
3811         * tests/test-rhythmdb.c: fix the build with older versions of check
3812         (again). Fixes #343718.
3814 2006-06-17  James Livingston  <doclivingston@gmail.com>
3816         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3817         name for capsfilter's "caps" property. Fixes #344968.
3819 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3821         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3822         Don't leak the selected entry list when finding an entry to play.
3824 2006-06-17  James Livingston  <doclivingston@gmail.com>
3826         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3827         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3828         as a O(1) one works fine, and it will get called often when the user
3829         deleted multiple tracks. Part of #344922.
3831 2006-06-17  James Livingston  <doclivingston@gmail.com>
3833         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3834         rb_shell_player_stop and rb_shell_player_playpause not mutually
3835         recursive. Fixed #336912.
3837 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3839         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3840         Treat nested elements inside properties as unknown.  Fixes parsing of
3841         podcast feeds with unescaped HTML in description tags, bug #344532.
3843 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3845         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3846         when quitting.  Fixes #344875.
3848 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3850         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3851         Move the playing-entry-removed handling to after the normal entry
3852         delete handling, since we're called after the entry has been removed
3853         from the query model now.  Fixes crashes described in #344627.
3855 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3857         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3858         (rb_rating_get_rating_from_widget):
3859         * widgets/rb-rating.c: (rb_rating_class_init),
3860         (rb_rating_finalize), (rb_rating_get_property),
3861         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3862         (rb_rating_button_press_cb):
3863         Don't crash when ratings icons can't be found.  Fixes #344533.
3865 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3867         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3869 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3871         * Makefile.am:
3872         * configure.ac:
3873         * remote/Makefile.am:
3874         * remote/dbus/Makefile.am:
3875         * remote/dbus/rb-client.c:
3876         * shell/Makefile.am:
3877         New dbus client program providing --play/--next etc. arguments.
3878         Fixes #340863, #155763.
3880 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3882         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3883         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3885 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3887         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3889         * rhythmdb/rhythmdb-query-model.c:
3890         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3891         to Library incorrectly
3893 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3895         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3896         Return input string untouched if gnome_vfs_uri_new returns NULL.
3897         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3898         (rb_static_playlist_source_add_list_uri):
3899         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3900         URIs don't break it.  Fixes #339033.
3902 2006-06-08  James Livingston  <doclivingston@gmail.com>
3904         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3905         for sources on the edge (i.e. the queue). Fixes #328409.
3907         * sources/rb-ipod-source.c: fix typo
3909 2006-06-08  James Livingston  <doclivingston@gmail.com>
3911         * configure.ac:
3912         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3913         --enable-ipod-writing to enable the ipod syncing code.
3915 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3917         * sources/rb-library-source.c: (layout_example_label_update):
3918         add missing comma so we don't generate broken markup.
3920 2006-06-08  James Livingston  <doclivingston@gmail.com>
3922         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3923         tag-merging with id3v2mux as well as id3mux. From #342330.
3925 2006-06-07  James Livingston  <doclivingston@gmail.com>
3927         * tests/test-rhythmdb.c: #define fail_if for old version of check
3928         which don't have it. Hopefully fixes #343718.
3930 2006-06-07  James Livingston  <doclivingston@gmail.com>
3932         * shell/rb-playlist-manager.c:
3933         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3934         g_value_array_free with NULL. Fixes #341053.
3936 2006-06-07  James Livingston  <doclivingston@gmail.com>
3938         * shell/rb-playlist-manager.c:
3939         (rb_playlist_manager_playlist_entries_changed),
3940         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3941         instead of "row-removed", which fixes updating "burn playlist"
3942         sensitivity. Fixes #331119.
3944 2006-06-07  James Livingston  <doclivingston@gmail.com>
3946         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3947         rather than restarting if the source uses _RETRY and there is an
3948         actual error (like an undecodable stream) rather than it just dropping
3949         out and causing EOS.
3951 2006-06-07  James Livingston  <doclivingston@gmail.com>
3953         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3954         free the pixbufs if they couldn't be loaded. Fixed #343852.
3956 2006-06-07  James Livingston  <doclivingston@gmail.com>
3958         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3959         the close button on the dialog work. Fixes #335346.
3961 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3963         * sources/rb-sourcelist-model.c: (path_is_droppable),
3964         (path_is_reorderable):
3965         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3966         (row_activated_cb), (emit_show_popup), (key_release_cb),
3967         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3968         Ignore group marker rows in the source list.  Fixes #344089, a couple
3969         of other crashers, and some weird UI glitches too.
3971 2006-06-07  James Livingston  <doclivingston@gmail.com>
3973         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3974         the seeking query fails. This is needed because many gst elements
3975         don't implement the seeking query yet. Should fix 329977.
3977 2006-06-06  James Livingston  <doclivingston@gmail.com>
3979         * configure.ac: bump version for a prerelease, turn on track transfer
3980         by default.
3982         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3983         ipod transfer stuff, since it has big issues and we'll hopefully land
3984         real support (bug 310774) after 0.9.5
3986 2006-06-06  James Livingston  <doclivingston@gmail.com>
3988         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3989         id3v2mux once we've detected it.
3991 2006-06-06  James Livingston  <doclivingston@gmail.com>
3993         * lib/Makefile.am:
3994         * tests/test-rhythmdb.c: undo accidental commit which caused
3995         rb-thread.c to be built (which it isn't normally)
3997 2006-06-06  James Livingston  <doclivingston@gmail.com>
3999         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4000         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4001         fail_{if/unless} calls, as some versions of check need them (they are
4002         optional in others). Should fix bug 343718.
4004 2006-06-06  James Livingston  <doclivingston@gmail.com>
4006         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4007         343836.
4008         
4009         * lib/Makefile.am:
4010         * lib/rb-thread.c: (process_actions):
4011         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4012         tests that don't pass.
4014 2006-06-05  James Livingston  <doclivingston@gmail.com>
4016         * data/glade/Makefile.am:
4017         * data/glade/load-failure.glade:
4018         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4019         dialog.
4021 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4023         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4024         checked in.
4026 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4028         * bindings/python/rb.defs:
4029         * sources/rb-source.h:
4030         * sources/rb-source.c: (rb_source_class_init),
4031         (rb_source_set_property), (rb_source_get_property),
4032         (rb_sourcelist_group_get_type):
4033         Add 'sourcelist-group' property on the RBSource class, describing how
4034         sources should be grouped in the source list.
4036         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4037         (rb_sourcelist_model_new), (real_row_is_separator),
4038         (rb_sourcelist_model_is_row_visible),
4039         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4040         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4041         (rb_sourcelist_model_row_draggable),
4042         (rb_sourcelist_model_row_inserted_cb),
4043         (rb_sourcelist_model_row_deleted_cb),
4044         (rb_sourcelist_model_get_group_path):
4045         * sources/rb-sourcelist-model.h:
4046         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4047         (rb_sourcelist_append):
4048         Add group marker rows for each sourcelist group, and use these to
4049         insert sources in the right place.  Sort transient sources (DAAP
4050         shares) by name.  Show the group marker rows as separators when the
4051         next visible row is a source.  Make persistant sources (playlists) and
4052         removable sources reorderable using drag and drop, restricting them
4053         within the source groups.
4054         
4055         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4056         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4057         * sources/rb-daap-source.c: (rb_daap_source_new):
4058         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4059         * sources/rb-static-playlist-source.c:
4060         (rb_static_playlist_source_new):
4061         * plugins/generic-player/rb-generic-player-source.c:
4062         (rb_generic_player_source_new):
4063         * plugins/generic-player/rb-nokia770-source.c:
4064         (rb_nokia770_source_new):
4065         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4066         Add source list group information to existing source classes.
4068         Fixes #318754 and #336492.
4070 2006-06-04  James Livingston  <doclivingston@gmail.com>
4072         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4073         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4074         win32 build fixes.
4076 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4078         * rhythmdb/rhythmdb-query-model.c:
4079         (rhythmdb_query_model_class_init),
4080         (rhythmdb_query_model_remove_from_main_list):
4081         * rhythmdb/rhythmdb-query-model.h:
4082         Add a new 'post-entry-delete' signal, emitted when the entry has been
4083         removed from the model's data structures.
4085         * shell/rb-play-order.c: (rb_play_order_finalize),
4086         (rb_play_order_query_model_changed),
4087         (rb_play_order_post_entry_delete_cb):
4088         Use the new signal to update the play order, so the queue play order
4089         doesn't try to scroll to entries that don't exist in a way that causes
4090         the tree view to crash.  Fixes #340216.
4092 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4094         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4095         Fix rb_debug call I missed previously.
4097 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4099         * metadata/rb-metadata-gst.c:
4100         Don't use NULL as the error message for ignored files, as it crashes
4101         with some C libraries.  Fixes #343713.
4103 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4105         * widgets/rb-dialog.c: (rb_error_dialog):
4106         * widgets/rb-dialog.h:
4107         Mark rb_error_dialog as taking printf-like arguments, and use a format
4108         string for the primary message rather than passing in the message
4109         directly.
4111         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4112         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4113         (info_available_cb):
4114         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4115         * shell/rb-removable-media-manager.c:
4116         (rb_removable_media_manager_eject_medium_cb):
4117         Make sure all calls to rb_error_dialog use string constants for the
4118         format string rather than passing the error message directly.  Remove
4119         an extra %s from the message used when playback fails.  Fixes #343562.
4121         * lib/rb-debug.h:
4122         * sources/rb-audiocd-source.c:
4123         * plugins/audioscrobbler/rb-audioscrobbler.c:
4124         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4125         Mark rb_debug as taking printf-like arguments and fix a few resulting
4126         warnings.
4128 2006-06-02  James Livingston  <doclivingston@gmail.com>
4130         * configure.ac:
4131         + macros/check.m4: add support for using check for unit tests, the .m4
4132         files is so autogen can run without check being installed
4134         * tests/Makefile.am:
4135         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4136         some of the old tests, and add some new ones. Currently
4137         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4138         yet (the query doesn't return any entries).
4140         - tests/deserialization-test1.xml:
4141         - tests/deserialization-test2.xml:
4142         - tests/deserialization-test3.xml:
4143         - tests/test-rhythmdb-indexing.c:
4144         - tests/test-rhythmdb-simple.c:
4145         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4146         have been ported
4148         - tests/test-cd.c:
4149         - tests/test-cmdline.c: remove obsolete tests
4151 2006-06-02  James Livingston  <doclivingston@gmail.com>
4153         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4154         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4155         id3v2mux, and check whether we are using a version of id3mux that has
4156         the correct merge-mode behaviour.
4158         * plugins/sample-python/Makefile.am: fix distcheck.
4160         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4161         the changed-files source was added before trying to remove it.
4163         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4164         *old* bug which would crash if a query with top-level disjunctions
4165         tried to check later disjunctive parts. Hooray for unit-testing.
4167 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4169         * player/rb-recorder-gst.c (rb_recorder_set_device):
4170         Check for a null drive.
4172 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4174         * lib/Makefile.am:
4175         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4176         Register the app icon as a builtin if the icon theme can't find it.
4178 2006-05-31  James Livingston  <doclivingston@gmail.com>
4180         * player/rb-recorder-gst.c: add missing include.
4182 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4184         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4185         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4186         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4187         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4188         (rb_recorder_set_device), (rb_recorder_get_default_device):
4189         * shell/main.c: (main):
4190         * shell/rb-removable-media-manager.c:
4191         (rb_removable_media_manager_finalize),
4192         (get_nautilus_burn_drive_for_path),
4193         (rb_removable_media_manager_playing_uri_changed_cb),
4194         (rb_removable_media_manager_load_media),
4195         (nautilus_burn_drive_get_device),
4196         (rb_removable_media_manager_scan):
4197         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4199         Update for libnautilus-burn 2.15.3 API changes.
4200         Fixes #342604
4202 2006-05-30  James Livingston  <doclivingston@gmail.com>
4204         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4205         "return" to that it asks for the password again if it was wrong.
4207 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4209         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4210         typefind element.
4212 2006-05-30  James Livingston  <doclivingston@gmail.com>
4214         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4215         (download_progress_cb): don't do wonky things if the transfer
4216         "suceeds" without transferring any data.
4218 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4220         * sources/rb-library-source.c: (layout_example_label_update),
4221         (build_filename):  Fix crash when no audio profile is selected.
4222         Fixes #341447.
4224 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4226         * shell/rb-shell.c: (rb_shell_clear_queue):
4227         * shell/rb-shell.h:
4228         * shell/rb-shell.xml:
4229         * sources/rb-play-queue-source.c:
4230         (rb_play_queue_source_clear_queue),
4231         (rb_play_queue_source_cmd_clear):
4232         * sources/rb-play-queue-source.h:
4233         Add clearQueue dbus method.
4235 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4237         * shell/main.c: (main):  Implement --quit option.
4239 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4241         * rhythmdb/rhythmdb-private.h:
4242         * rhythmdb/rhythmdb-tree.h:
4243         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4244         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4245         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4246         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4247         (rhythmdb_entry_get_boolean):
4248         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4249         bitmask, giving the db backend anything past the first 16 bits for 
4250         its own private use.
4252         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4253         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4254         Add a 'loading' flag to indicate that an entry is being loaded from
4255         disk, and use that to ignore entry_set operations on such entries
4256         rather than the 'inserted' flag, which doesn't quite mean the same
4257         thing.  Fixes #342694.
4259 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4261         * shell/rb-shell.xml: Remove visibility property, since it causes
4262         crashes (dbus bug 7057) and doesn't do much else.
4264 2006-05-28  James Livingston  <doclivingston@gmail.com>
4266         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4268         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4269         * po/POTFILES.in: fix some more i18n issues.
4271 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4273         * bindings/python/rb.defs:
4274         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4275         (filter_mmkeys):
4276         * shell/rb-shell-player.h:
4277         Deprecate the useless 'ignore_stop' parameter to
4278         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4279         API.  From bug #334829.
4281 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4283         * plugins/generic-player/rb-generic-player-source.c:
4284         (visit_playlist_dirs), (default_transform_playlist_uri):
4285         When playlist parsing fails, unref the playlist, not the parent
4286         source.  Fix memory leak in playlist uri transform.
4287         * plugins/generic-player/rb-nokia770-source.c:
4288         (impl_transform_playlist_uri):
4289         Fix memory leak in playlist uri transform.
4291 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4293         * doc/reference/Makefile.am: fix grk-doc build
4295 2006-05-27  James Livingston  <doclivingston@gmail.com>
4297         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4299         * plugins/lyrics/lyrics.py:
4300         * po/POTFILES.in: Make strings in plugins translatable. From bug
4301         343081.
4303 2006-05-27  James Livingston  <doclivingston@gmail.com>
4305         * backends/Makefile.am:
4306         * backends/gstreamer/Makefile.am:
4307         * lib/Makefile.am:
4308         * plugins/audioscrobbler/Makefile.am:
4309         * plugins/generic-player/Makefile.am:
4310         * po/POTFILES.in:
4311         * rhythmdb/rhythmdb-monitor.c:
4312         * rhythmdb/rhythmdb.c:
4313         * sources/Makefile.am:
4314         * widgets/Makefile.am: fix compilation after some CVS surgery was
4315         done.
4317 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4319         * bindings/python/rhythmdb.defs:
4320         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4321         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4322         (rhythmdb_query_deserialize):
4323         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4324         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4325         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4326         (rhythmdb_entry_register_type_alias),
4327         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4328         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4329         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4330         (rhythmdb_entry_podcast_feed_get_type),
4331         (rhythmdb_entry_import_error_get_type),
4332         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4333         * rhythmdb/rhythmdb.h:
4334         Allocate a specified amount of extra memory for each db entry, to be
4335         used to store fields specific to the entry type.  Optionally associate
4336         a name with each entry type, to be used when saving entries and
4337         auto playlists to disk.  Allow entry types to have multiple names
4338         to handle older playlist files that used '0' to represent 'song'.
4339         Use private data to store podcast fields.
4341         * rhythmdb/rhythmdb-private.h:
4342         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4343         (rhythmdb_tree_parser_end_element), (save_entry),
4344         (rhythmdb_tree_entry_set):
4345         Simplify property handling by using existing code to convert
4346         properties from strings to GValues and to set properties on entries.
4347         Other assorted changes due to the above.
4349         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4350         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4351         * sources/rb-generic-player-source.c:
4352         (rb_generic_player_source_new):
4353         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4354         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4355         * sources/rb-psp-source.c: (rb_psp_source_new):
4356         Update for changes to rhythmdb_entry_register_type.  None of these
4357         entry types need names or use private data.
4359         Fixes #337429.
4361 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4363         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4364         Fix creation of ignored-file db entries - need to check for
4365         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4367 2006-05-25  James Livingston  <doclivingston@gmail.com>
4369         * AUTHORS:
4370         * MAINTAINERS: update my email address
4372 2006-05-25  James Livingston  <doclivingston@gmail.com>
4374         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4375         "(... mix)" when searching for lyrics. Cache the lyrics under
4376         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4378 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4380         * sources/rb-import-errors-source.c:
4381         (rb_import_errors_source_class_init):
4382         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4383         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4384         * sources/rb-source.c: (rb_source_class_init),
4385         (default_move_to_trash):
4386         Implement the basic move-to-trash operation once in rb-source.c, 
4387         rather than in each source type that supports it.
4389         * plugins/ipod/rb-ipod-plugin.c:
4390         * shell/rb-removable-media-manager.c:
4391         * shell/rb-shell.c: (rb_shell_constructor):
4392         Only scan removable media once after loading plugins.  Add a flag
4393         plugins can use to check if the initial scan has been done.
4395         * data/rhythmbox.schemas:
4396         Enable ipod and generic-player plugins by default.
4397         
4398         * configure.ac:
4399         * data/ui/Makefile.am:
4400         * data/ui/generic-player-ui.xml:
4401         * data/ui/rhythmbox-ui.xml:
4402         * plugins/Makefile.am:
4403         * plugins/generic-player/Makefile.am:
4404         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4405         * plugins/generic-player/rb-generic-player-plugin.c:
4406         * sources/Makefile.am:
4407         * sources/rb-generic-player-source.c:
4408         * sources/rb-generic-player-source.h:
4409         * sources/rb-nokia770-source.c:
4410         * sources/rb-nokia770-source.h:
4411         * sources/rb-psp-source.c: (visit_playlist_dirs):
4412         * sources/rb-psp-source.h:
4413         Pluginise generic player (and nokia770 and PSP) support and add
4414         move-to-trash for players not mounted read-only.
4415         Fixes #342868.
4417 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4419         * daapsharing/rb-daap-connection.c (handle_song_listing):
4420         Lower bound check for batch commit.  Fixes #342848
4422         * sources/rb-daap-source.c (rb_daap_source_get_status):
4423         Always set output variables if provided.
4425 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4427         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4428         (rhythmdb_tree_entry_delete), (remove_one_song):
4429         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4430         Fix two db entry reference counting problems.
4431         The initial reference on the entry is held by the db backend, but it
4432         was never being dropped.  The reference count was incremented when
4433         adding an entry to the deleted_entries map and to the
4434         deleted_entries_to_emit list, but only decremented for one of those.
4436 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4438         * daapsharing/rb-daap-connection.c (http_response_handler) 
4439         (rb_daap_connection_dispose):
4440         Call soup_session_abort to make sure there are no outstanding
4441         requests when we dispose of the connection.  Ignore cancelled
4442         messages in the callback.
4444 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4446         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4447         (rb_daap_source_disconnect): Set a flag when disconnecting
4448         the source.  Check this flag in connection callback
4449         to see if we should release the connection.
4451 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4453         * daapsharing/Makefile.am:
4454         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4455         (rb_daap_connection_class_init), (connection_connected),
4456         (connection_disconnected), (connection_operation_done),
4457         (build_message), (connection_set_error_message),
4458         (actual_http_response_handler), (http_get),
4459         (entry_set_string_prop), (emit_progress_idle),
4460         (handle_server_info), (handle_login), (handle_update),
4461         (handle_database_info), (handle_song_listing), (handle_playlists),
4462         (handle_playlist_entries), (handle_logout),
4463         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4464         (connection_response_data_free), (connected_cb),
4465         (rb_daap_connection_connect), (disconnected_cb),
4466         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4467         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4468         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4469         (rb_daap_connection_get_property):
4470         * daapsharing/rb-daap-connection.h:
4471         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4472         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4473         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4474         (rb_daap_hash_generate):
4475         * daapsharing/rb-daap-hash.h:
4476         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4477         (rb_daap_get_icon), (remove_source), (stop_browsing),
4478         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4479         (connection_connecting_cb), (connection_disconnected_cb),
4480         (release_connection), (rb_daap_source_connection_cb),
4481         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4482         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4484         Adds a better async API for connect and disconnect.  Doesn't share
4485         callback data for every async call.  Adds a connect signal.  Uses
4486         an operation-done signal to trigger the callbacks.  Displays an
4487         error when connections fail.  A few refcounting fixes to fix
4488         crashes.  Uses a weak pointer to set the connection to NULL so we
4489         don't clobber references.  Wait for each disconnect when shutting
4490         down sources.  Split out DAAP hash stuff into its own file.  Fix
4491         typo in header.
4493         Fixes #342643
4494         
4495 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4497         * sources/rb-auto-playlist-source.c:
4498         (rb_auto_playlist_source_new_from_xml):
4499         Initialize the gvalue used to hold the size limit correctly.
4500         Fixes #342744.
4502 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4504         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4505         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4506         * shell/rb-shell.h:
4507         * shell/rb-shell.xml:
4508         Convert rb_shell_quit into a dbus method, and add visibility dbus
4509         property.
4511 2006-05-22  James Livingston  <doclivingston@gmail.com>
4513         * rhythmdb/rhythmdb.h:
4514         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4515         (rhythmdb_entry_is_editable), (action_thread_main),
4516         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4517         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4518         false, and syncing into the file.
4520         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4521         (rhythmdb_entry_iradio_get_type),
4522         (rhythmdb_entry_import_error_get_type):
4523         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4524         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4525         change the DB.
4527 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4529         * rhythmdb/Makefile.am:
4530         * rhythmdb/rhythmdb-monitor.c:
4531         * rhythmdb/rhythmdb-private.h:
4532         * rhythmdb/rhythmdb-query.c:
4533         * rhythmdb/rhythmdb.c:
4534         Split up rhythmdb.c a bit.
4536 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4538         * data/glade/audioscrobbler-prefs.glade:
4539         Add a link to the last.fm server status page.
4541 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4543         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4544         Capitalization fix.
4545         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4546         (impl_create_configure_dialog):  UI layout fixes, remove
4547         dialog separator, and capitalization fix for window title.
4548         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4549         and remove dialog separator.
4550         * data/glade/plugins.glade:  UI layout fixes.
4551         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4552         and capitalization fix.  Fixes #342438.
4554 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4556         * data/glade/podcast-properties.glade:  Fix layout of the download 
4557         location.  Fixes #342431.
4559 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4561         * data/ui/rhythmbox-ui.xml:
4562         We only need one copy of the 'add to queue' action in the edit menu.
4564 2006-05-20  James Livingston  <doclivingston@gmail.com>
4566         * data/ui/rhythmbox-ui.xml:
4567         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4568         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4569         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4570         (rb_shell_clipboard_sync),
4571         (rb_shell_clipboard_cmd_add_to_playlist_new),
4572         (rb_shell_clipboard_cmd_queue_song_info),
4573         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4574         (rb_shell_clipboard_playlist_deleted_cb),
4575         (rb_shell_clipboard_playlist_renamed_cb),
4576         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4577         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4578         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4579         dynamically generated with all the static playlists. Fixes bug 323364.
4581         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4582         right child, so it doesn't go weird when art appears and disappears.
4584 2006-05-20  James Livingston  <doclivingston@gmail.com>
4586         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4588         * rhythmdb/rhythmdb-query-model.c:
4589         (rhythmdb_query_model_set_property),
4590         (rhythmdb_query_model_finalize),
4591         (rhythmdb_query_model_reapply_query_cb):
4592         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4593         (rhythmdb_query_append_prop_multiple),
4594         (rhythmdb_query_is_time_relative):
4595         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4596         time-based criteria, fixes bug 341131.
4598 2006-05-20  James Livingston  <doclivingston@gmail.com>
4600         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4601         we have already changed playing entries. Interpolate the art size so
4602         it doesn't jump when the old and new images have different aspect
4603         ratios.
4605 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4607         * rhythmdb/rhythmdb-private.h:
4608         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4609         (save_entry):
4610         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4611         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4612         (rhythmdb_entry_get_ulong):
4613         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4614         and elsewhere, use them on the stack rather than allocating on 
4615         the heap.  From bug #342333.
4617 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4619         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4620         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4621         (add_track), (eos_cb), (error_signal_idle),
4622         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4623         (rb_recorder_construct), (recorder_track_free),
4624         (rb_recorder_finalize):
4625         * sources/rb-playlist-source-recorder.c:
4626         Support libnautilus-burn size -> capacity API change.  Add
4627         some braces to blocks.
4629 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4631         * metadata/sj-metadata-musicbrainz.c:
4632         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4633         Sync with sound-juicer in CVS.  Fixes #342177
4634         * sources/rb-audiocd-source.c: Don't declare variables
4635         in the middle of a block (c99ism).  Fix order of #includes.
4636         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4637         one variable per line.  Update copyright date.
4639 2006-05-19  James Livingston  <doclivingston@gmail.com>
4641         patch by: Hendrik Richter  <hendi@gnome-de.org>
4643         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4644         "translator_credits" to a hyphen, so it doesn't cause problems for
4645         tools that check access keys. Fixes bug 341832.
4647 2006-05-19  James Livingston  <doclivingston@gmail.com>
4649         * po/POTFILES.in: remove references to files that don't exist any more
4650         (fixes make distcheck).
4652 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4654         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4655         Song Lyrics dialog. Fixes bug 342322.
4657 2006-05-19  James Livingston  <doclivingston@gmail.com>
4659         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4661         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4662         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4663         version checks not break when libnotify goes to 1.0.0. Fixes bug
4664         342244.
4666 2006-05-18  James Livingston  <doclivingston@gmail.com>
4668         * shell/rb-shell-clipboard.c:
4669         * shell/rb-shell.c:
4670         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4672 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4674         * sources/rb-playlist-source-recorder.c (get_song_description):
4675         Reverse artist and title in song description.  This
4676         is useful because at least the title will be visible
4677         when there is limited space.
4679 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4681         * daapsharing/rb-daap-connection.c: (connection_get_password):
4682         Take gdk lock before emitting authenticate signal.
4683         * sources/rb-daap-source.c: (connection_connecting_cb):
4684         Get rid of the unnecessary idle handler (it's already called from one)
4685         Fixes #342047 once more.
4687 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4689         * shell/rb-shell.c: (rb_shell_class_init):
4690         * shell/rb-shell.h:
4691         * widgets/rb-song-info.c: (rb_song_info_class_init),
4692         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4693         (rb_song_info_constructor), (rb_song_info_get_property),
4694         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4695         (rb_song_info_forward_clicked_cb):
4696         * widgets/rb-song-info.h:
4697         * data/glade/song-info-multiple.glade:
4698         * lib/rb-marshal.list:
4699         * bindings/python/Makefile.am:
4700         * bindings/python/rb.defs:
4701         * bindings/python/rb.override:
4702         Allow plugins to add pages to the notebooks used in song info windows,
4703         and to track the current song displayed in single-entry windows.
4704         
4705         * configure.ac:
4706         * plugins/Makefile.am:
4707         * plugins/lyrics/Loader.py:
4708         * plugins/lyrics/Makefile.am:
4709         * plugins/lyrics/lyrics.py:
4710         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4711         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4712         as a separate window (for the playing song) or as a page in the song
4713         info window.  A few TODO items left, but this fixes #319320.
4715 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4717         Patch by:  Roozbeh Pournader
4719         * configure.ac:
4720         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4721         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4723 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4724         
4725         * sources/rb-daap-source.c: (update_connection_status):
4726         Correct return value.  Fixes #342047 again.
4728 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4730         * sources/rb-daap-source.c: (update_connection_status),
4731         (connection_connecting_cb):
4732         Update status in an idle handler so we don't rely on the gdk lock
4733         being recursive (because it isn't any more).  Fixes #342047.
4735 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4737         * lib/rb-util.c: (rb_make_duration_string),
4738         (rb_make_elapsed_time_string):
4739         * lib/rb-util.h:
4740         Add a function for formatting an elapsed time string.
4742         * shell/rb-shell-player.c: (rb_shell_player_init),
4743         (rb_shell_player_sync_with_source),
4744         (rb_shell_player_get_playing_time_string), (tick_cb):
4745         Store elapsed time in the private data structure, and use the above
4746         function.
4747         
4748         * widgets/rb-header.c:
4749         * widgets/rb-header.h:
4750         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4751         object, so everything has the same idea of the elapsed time.
4752         Fixes #339693.
4754 2006-05-16  James Livingston  <doclivingston@gmail.com>
4756         * bindings/python/rhythmdb.defs:
4757         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4758         some parametre defaults, so you don't have to pass None, False for the
4759         sorting order.
4761 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4763         * bindings/python/rhythmdb.defs:
4764         * rhythmdb/rhythmdb-query-model.c:
4765         (rhythmdb_query_model_compute_status_normal):
4766         * rhythmdb/rhythmdb-query-model.h:
4767         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4768         * rhythmdb/rhythmdb.h:
4769         Change the various compute_status methods to accept a singular/plural
4770         pair to use in the status string.
4771         
4772         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4773         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4774         * sources/rb-source.c: (default_get_status):
4775         Call entries 'songs' by default, and 'episodes' in the podcast source.
4776         Fixes #340227.
4778 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4780         patch by:  Paul Drain
4782         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4783         Fixes #341817.
4785 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4787         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4788         Generate reorder maps correctly.
4789         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4790         Scroll to the first entry from the old selection.
4791         Fixes #322992.
4793 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4795         * data/ui/rhythmbox-ui.xml:
4796         * lib/rb-preferences.h:
4797         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4798         (rb_shell_playlist_created_cb),
4799         (rb_shell_view_sidepane_changed_cb),
4800         (rb_shell_sync_sidepane_visibility),
4801         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4802         (sidepane_visibility_changed_cb):
4803         * sources/rb-podcast-source.c:
4804         Convert sourcelist visibility to side-pane visbility.
4805         Fixes #339733
4807 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4809         * widgets/rb-header.c:
4810         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4811         'player', and make it use the private data structure allocated for it.
4813 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4815         * configure.ac: enable metadata helper with dbus < 0.35.
4817 2006-05-15  James Livingston  <doclivingston@gmail.com>
4819         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4821         * data/glade/song-info.glade:
4822         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4823         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4824         (rb_song_info_update_filesize): Add the file size into the song info
4825         window. Fixes bug 340861.
4827 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4829         * bindings/python/rhythmdb.defs:
4830         * rhythmdb/rhythmdb-query-model.c:
4831         (rhythmdb_query_model_set_property),
4832         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4833         * rhythmdb/rhythmdb-query-model.h:
4834         Add a new method to chain query models without importing entries from
4835         the parent into the child.  This is useful when the subset of entries
4836         in the child can be more easily determined by running a query than by
4837         filtering entries from the parent.
4839         * bindings/python/rb.defs:
4840         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4841         (rb_library_browser_set_property),
4842         (rb_library_browser_get_property), (rb_library_browser_new),
4843         (rebuild_child_model):
4844         * widgets/rb-library-browser.h:
4845         * sources/rb-auto-playlist-source.c:
4846         (rb_auto_playlist_source_constructor):
4847         * sources/rb-static-playlist-source.c:
4848         (rb_static_playlist_source_constructor):
4849         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4850         Use more efficient queries for constructing the browser query model
4851         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4852         backend to optimise the query) and run new queries rather than
4853         filtering entries from the parent.  Fixes #341402.
4855         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4857 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4859         * configure.ac:
4860         * shell/Makefile.am:
4861         * shell/main.c: (main), (load_uri_args), (send_present_message),
4862         (unregister_dbus_handler), (handle_dbus_message),
4863         (register_dbus_handler):
4864         Add minimal support for dbus 0.31 - 0.35.
4866         * doc/reference/Makefile.am:
4867         * doc/reference/rhythmbox.types:
4868         * data/Makefile.am:
4869         * data/GNOME_Rhythmbox.server.in:
4870         * data/rhythmbox.pc.in:
4871         * remote/*:
4872         * remote/bonobo/*:
4873         Remove remaining bonobo and generic remote interface files.
4875 2006-05-14  James Livingston  <doclivingston@gmail.com>
4877         * shell/rb-shell.c: (construct_widgets):
4878         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4879         resize the browser and queue-sidebar section of their panes, unless
4880         the other section is below the minimum size. Fixes bug 331927.
4882 2006-05-13  James Livingston  <doclivingston@gmail.com>
4884         * rhythmdb/rhythmdb-query-model.c:
4885         (rhythmdb_query_model_class_init),
4886         (rhythmdb_query_model_set_property),
4887         (rhythmdb_query_model_get_property),
4888         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4889         (rhythmdb_query_model_insert_into_main_list),
4890         (rhythmdb_query_model_insert_into_limited_list),
4891         (rhythmdb_query_model_do_reorder),
4892         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4893         (rhythmdb_query_model_location_sort_func),
4894         (rhythmdb_query_model_title_sort_func),
4895         (rhythmdb_query_model_album_sort_func),
4896         (rhythmdb_query_model_artist_sort_func),
4897         (rhythmdb_query_model_genre_sort_func),
4898         (rhythmdb_query_model_track_sort_func),
4899         (rhythmdb_query_model_double_ceiling_sort_func),
4900         (rhythmdb_query_model_ulong_sort_func),
4901         (rhythmdb_query_model_date_sort_func),
4902         (rhythmdb_query_model_string_sort_func):
4903         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4904         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4905         "data destroy" property. Fixed bug 341543.
4907         * bindings/python/rhythmdb.defs:
4908         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4909         rhythmdb_query_model_set_sorting_order
4911         * rhythmdb/rhythmdb-property-model.c:
4912         (rhythmdb_property_model_drag_data_get):
4913         * sources/rb-import-errors-source.c:
4914         (rb_import_errors_source_constructor):
4915         * sources/rb-missing-files-source.c:
4916         (rb_missing_files_source_constructor):
4917         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4918         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4919         * widgets/rb-entry-view.h: adapt to the above change.
4921 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4923         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4924         (rhythmdb_tree_load):
4925         Commit loaded entries in batches, rather than individually.  
4926         More startup time reduction.
4928 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4930         * doc/reference/Makefile.am: fix gtk-doc compilation
4932 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4934         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4935         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4936         * plugins/artdisplay/artdisplay/Loader.py:
4937         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4938         Only call the first artist the best match when album==Unknown.
4939         Don't perform each query twice if album doesn't include "Vol N".
4940         Fix searching for compilations.  Fix blacklisting.
4941         Part of bug #307848
4943 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4945         * Makefile.am:
4946         * bindings/python/Makefile.am:
4947         * bindings/python/rb.defs:
4948         * bindings/python/rb.override:
4949         * configure.ac:
4950         * doc/reference/Makefile.am:
4951         * plugins/Makefile.am:
4952         * plugins/audioscrobbler/Makefile.am:
4953         * plugins/ipod/Makefile.am:
4954         * plugins/lirc/Makefile.am:
4955         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4956         (impl_activate), (impl_deactivate):
4957         * plugins/sample/Makefile.am:
4958         * remote/Makefile.am:
4959         * shell/Makefile.am:
4960         * shell/main.c: (main), (main_shell_weak_ref_cb):
4961         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4962         (rb_shell_get_property), (rb_shell_window_state_cb),
4963         (idle_hide_mainwindow), (rb_shell_set_visibility),
4964         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4965         (rb_shell_set_song_property):
4966         * shell/rb-shell.h:
4967         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4968         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4969         (rb_tray_icon_get_property), (rb_tray_icon_new),
4970         (rb_tray_icon_button_press_event_cb),
4971         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4972         (rb_tray_icon_show_window_changed_cb):
4973         * shell/rb-tray-icon.h:
4975         Remove bonobo, require DBUS.
4976         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4977         Fixes #339720
4979 2006-05-13  James Livingston  <doclivingston@gmail.com>
4981         * bindings/python/rb.override: fix some pointer-type warnings
4983 2006-05-12  James Livingston  <doclivingston@gmail.com>
4985         * lib/rb-util.c: (rb_value_free):
4986         * lib/rb-util.h: Add function to unset and free a GValue* that was
4987         allocated in the heap.
4989         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4990         the metadata hastable values
4991         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4992         leak the metadata hashtable structure
4993         * metadata/rb-metadata-dbus.c:
4994         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4995         using g_strdup and then _take_string
4997         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4998         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4999         stat something.
5001         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5002         leak the encoded string
5004         * widgets/rb-property-view.c:
5005         (rb_property_view_selection_changed_cb): set some variables to have
5006         inital values, because some code paths may not set them before we use
5007         them.
5009         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5010         don't have python warning into a debug message".
5012 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5014         * data/rhythmbox.schemas: Use zero instead of null for
5015         default burn speed.  Fixes #341283.
5017 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5019         * bindings/python/rb.defs:
5020         * widgets/rb-library-browser.c:
5021         (rb_library_browser_get_property_view):
5022         * widgets/rb-library-browser.h:
5023         Add a method to get the property view for a given property.
5025         * sources/rb-browser-source.c:
5026         (rb_browser_source_cmd_choose_genre),
5027         (rb_browser_source_cmd_choose_artist),
5028         (rb_browser_source_cmd_choose_album):
5029         Change the browser selection by changing the property view selection. 
5030         Makes the selection change visible, fixing #331740.
5032 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5034         * bindings/python/rb.defs:
5035         * bindings/python/rb.override:
5036         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5037         * shell/rb-statusbar.c: (*),
5038         * sources/rb-import-errors-source.c: (impl_get_status):
5039         * sources/rb-iradio-source.c: (impl_get_status):
5040         * sources/rb-missing-files-source.c: (impl_get_status):
5041         * sources/rb-source.c: (default_get_status),
5042         (rb_source_get_status):
5043         * sources/rb-source.h:
5044         Allow sources to provide a progress value for the status bar.
5045         Simplify status bar processing (much less polling).
5046         Consider rhythmdb busy while it's still loading the database.
5048         * daapsharing/rb-daap-connection.c: (*)
5049         * daapsharing/rb-daap-connection.h:
5050         * lib/rb-marshal.list:
5051         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5052         (rb_daap_source_init), (connection_connecting_cb),
5053         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5054         (rb_daap_source_get_status):
5055         Provide status information for DAAP connections, and move processing
5056         of large responses into a separate thread.
5057         Fixes bugs #322020 and #338978.
5059 2006-05-09  James Livingston  <doclivingston@gmail.com>
5061         Split the artdisplay plugin into several files.
5062         Fix loader and amazon-search re-use issues.
5063         Add some better search heuristics.
5065         * configure.ac:
5066         * plugins/artdisplay/Makefile.am:
5067         * plugins/artdisplay/artdisplay.py:
5068         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5069         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5070         * plugins/artdisplay/artdisplay/Loader.py:
5071         * plugins/artdisplay/artdisplay/Makefile.am:
5072         * plugins/artdisplay/artdisplay/__init__.py:
5074 2006-05-09  James Livingston  <doclivingston@gmail.com>
5076         * sources/rb-browser-source.h: remove the _has_first_added_column
5077         stuff since it isn't actually used anywhere. Sources that want it
5078         should just add it themselves, as the library already does
5080         * bindings/python/rb.defs:
5081         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5082         * sources/rb-library-source.c: (rb_library_source_class_init):
5083         * sources/rb-removable-media-source.c:
5084         (rb_removable_media_source_class_init): Remove the remanants of the
5085         above.
5087 2006-05-09  James Livingston  <doclivingston@gmail.com>
5089         * bindings/python/rb.defs:
5090         * sources/rb-browser-source.h: remove a function that was declared in
5091         the header, but not defined anywhere.
5093 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5095         * plugins/artdisplay/.cvsignore:
5096         * plugins/ipod/.cvsignore: Added.
5098 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5100         * sources/rb-auto-playlist-source.c:
5101         (rb_auto_playlist_source_new_from_xml):
5102         Fix reading of older playlist files where all three limits were
5103         specified so we take the first nonzero limit.  From #341053.
5105 2006-05-09  James Livingston  <doclivingston@gmail.com>
5107         * bindings/python/Makefile.am:
5108         * bindings/python/rb.defs:
5109         * bindings/python/rb.override: bind RBBrowserSource,
5110         RBRemovableMediaSource and RBRemovableMediamanager.
5112 2006-05-09  James Livingston  <doclivingston@gmail.com>
5114         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5116         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5117         Fixes bug 339221.
5119 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5121         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5122         Don't explode when trying to edit a query with no limit set.
5124 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5126         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5127         Clear the should_queue flag when switching to a non-submittable entry,
5128         so we don't submit songs that played for three seconds before
5129         switching to a podcast episode.
5131         * rhythmdb/rhythmdb-query-model.c
5132         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5133         in the drag data list.
5135 2006-05-08  James Livingston  <doclivingston@gmail.com>
5137         * lib/rb-util.c: (rb_value_array_append_data):
5138         * lib/rb-util.h: add function which is basically a combination of
5139         G_VALUE_COLLECT and g_value_array_append.
5141         * rhythmdb/rhythmdb-query-model.h:
5142         * rhythmdb/rhythmdb-query-model.c:
5143         (rhythmdb_query_model_class_init),
5144         (rhythmdb_query_model_set_property),
5145         (rhythmdb_query_model_get_property),
5146         (rhythmdb_query_model_finalize),
5147         (rhythmdb_query_model_update_limited_entries),
5148         (rhythmdb_query_model_set_sort_order),
5149         (rhythmdb_query_model_within_limit),
5150         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5151         saner. Rather than having <count=N, time=N, size=N> we now have a
5152         <type, value> pair. This will also make it much easier to add new
5153         limit types in the future.
5155         * shell/rb-playlist-manager.c:
5156         (rb_playlist_manager_set_automatic_playlist),
5157         (rb_playlist_manager_cmd_edit_automatic_playlist):
5158         * sources/rb-auto-playlist-source.c:
5159         (rb_auto_playlist_source_finalize),
5160         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5161         (_save_write_ulong), (_save_write_uint64),
5162         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5163         (rb_auto_playlist_source_set_query),
5164         (rb_auto_playlist_source_get_query):
5165         * sources/rb-auto-playlist-source.h:
5166         * sources/rb-library-source.c:
5167         (rb_library_source_add_child_source):
5168         * sources/rb-psp-source.c: (visit_playlist_dirs):
5169         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5170         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5171         * widgets/rb-query-creator.h: Adapt to the above change.
5173 2006-05-08  James Livingston  <doclivingston@gmail.com>
5175         * shell/rb-playlist-manager.c:
5176         (rb_playlist_manager_cmd_edit_automatic_playlist):
5177         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5178         (rb_auto_playlist_source_set_query),
5179         (rb_auto_playlist_source_get_query): copy the query in the _get method
5180         and free it in things calling that. Fixes a crasher.
5182 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5184         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5185         Make entries on newly mounted volumes visible immediately, hiding them
5186         later if they turn out to be missing.  Fixes #340068.
5188 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5190         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5191         Ignore zip files and ignore errors for files we've decided to ignore.
5193 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5195         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5196         Add missing }, should fix #340844.
5198 2006-05-06  James Livingston  <doclivingston@gmail.com>
5200         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5201         typo.
5203 2006-05-06  James Livingston  <doclivingston@gmail.com>
5205         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5206         that we work with libnotify >= 0.4
5208 2006-05-06  James Livingston  <doclivingston@gmail.com>
5210         patch by: Joe Barnett  <thejoe@gmail.com>
5212         * configure.ac: check if we're using a version of libgpod that
5213         supports the Motorola ROKR
5215         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5216         for the db path, if we using the newer version.
5218         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5220 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5222         * rhythmdb/rhythmdb-query-model.c:
5223         (rhythmdb_query_model_drag_data_get):
5224         Use playback URI, not location, for drag data.  Fixes #322597.
5226 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5228         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5230 2006-05-03  James Livingston  <doclivingston@gmail.com>
5232         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5233         (rb_add_id3_tagger), (rb_metadata_save):
5234         Set the tags on the tagging element when it is
5235         created, not during pipeline creation - which is required for
5236         dynamically created elements.
5238         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5239         support for using the "vorbistag" element to re-tag ogg vorbis files.
5240         Fixes bug 339878.
5242 2006-05-03  James Livingston  <doclivingston@gmail.com>
5244         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5246         * plugins/artdisplay/artdisplay.py:
5247         - Fix small bug callback of data loader getting overwritten on fast
5248         connections.
5249         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5250         Jonathan Matthew)
5251         - Fix Rhythmbox UI blocking while loading/searching cover art
5252         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5253         - Initial approach to allow additional "art search engines"
5254         - Further modularization in a couple of places
5255         - Minor fixes for empty entries (iradio, album, artist etc.)
5257 2006-05-03  James Livingston  <doclivingston@gmail.com>
5259         * shell/rb-playlist-manager.c:
5260         (rb_playlist_manager_playlist_entries_changed),
5261         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5262         options for non-local sources, rather than showing disabled ones.
5264         * sources/rb-library-source.c: (add_child_sources_idle),
5265         (rb_library_source_constructor), (rb_library_source_new),
5266         (rb_library_source_library_location_changed),
5267         (rb_library_source_add_child_source),
5268         (rb_library_source_sync_child_sources): Create "child library" sources
5269         when the user has multiple library locations set. Fixes bug 100552.
5271 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5273         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5274         * plugins/sample/sample.rb-plugin.desktop.in:
5275         Finish changing 'Author' to 'Authors'
5276         
5277         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5278         (rhythmdb_entry_import_error_get_type):
5279         Implement get_playback_uri for import errors (returns NULL)
5281         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5282         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5283         entry, rather than doing entry type checks.
5285 2006-05-02  James Livingston  <doclivingston@gmail.com>
5287         patch from Alessandro Decina  <alessandro@nnva.org>
5289         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5290         the signal emission in the case of fatal-on-init errors. From bug
5291         322268.
5293 2006-05-02  James Livingston  <doclivingston@gmail.com>
5295         * rhythmdb/rhythmdb.h:
5296         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5297         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5298         (rhythmdb_entry_podcast_post_get_type),
5299         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5300         virtual function to entry-types for getting the playback URI. From bug
5301         330226.
5303         * backends/gstreamer/rb-encoder-gst.c:
5304         (create_pipeline_and_source), (extract_track):
5305         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5306         to get the URI.
5308 2006-05-02  James Livingston  <doclivingston@gmail.com>
5310         patch by: Brian Cameron  <brian.cameron@sun.com>
5312         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5313         340337.
5315 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5317         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5318         instead of clear.  Use regex matching to strip "disc N"
5319         from album.  Match titles in ProductName.  Perform
5320         fallback queries including various artist compilations.
5321         Include "us" locale.  Improve queries when artist or album
5322         is unknown.  Use medium size image if large is unavailable.
5324         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5325         William Jon McCann  <mccann@jhu.edu>
5326         
5327 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5329         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5330         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5331         (conjunctive_query): Sanity check.
5332         (evaluate_conjunctive_subquery): 
5333         Don't return TRUE immediately when a relative-time query criterion
5334         matches.  Fixes #339972.
5336 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5338         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5339         Don't crash if primary or secondary are NULL.
5341 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5343         * doc/reference/Makefile.am: fix gtk-doc build yet again
5345 2006-04-28  James Livingston  <doclivingston@gmail.com>
5347         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5348         python console. Fixes bug 339934.
5350 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5352         * rhythmdb/rhythmdb-property-model.c:
5353         (rhythmdb_property_model_drag_data_get):
5354         When creating uri list drag data, create a new query model based on
5355         the query model the property model is attached to.  Makes the
5356         resulting query use the right entry type and include the upstream
5357         query criteria.  Fixes half of #327540.
5359 2006-04-27  James Livingston  <doclivingston@gmail.com>
5361         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5362         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5363         build fixes.
5365 2006-04-27  James Livingston  <doclivingston@gmail.com>
5367         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5369 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5371         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5372         (rb_playlist_manager_save_data),
5373         (rb_playlist_manager_save_playlists):
5374         * shell/rb-playlist-manager.h:
5375         * shell/rb-shell.c: (rb_shell_sync_state),
5376         (idle_save_playlist_manager):
5377         Remove a bit more threading insanity from the playlist manager.
5379 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5381         * shell/rb-playlist-manager.c: 
5382         * shell/rb-playlist-manager.h:
5383         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5384         
5385         * shell/rb-shell.c: (rb_shell_sync_state),
5386         (idle_save_playlist_manager), (construct_sources),
5387         (rb_shell_select_source), (rb_shell_sync_party_mode):
5388         Adjustments for above changes.
5390 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5392         * sources/rb-browser-source.c (impl_browser_toggled):
5393         Reset browser when hidden.  Fixes #339617.
5395 2006-04-26  James Livingston  <doclivingston@gmail.com>
5397         * backends/Makefile.am:
5398         * backends/gstreamer/Makefile.am: work again with separated
5399         built-roots
5401 2006-04-26  James Livingston  <doclivingston@gmail.com>
5403         * shell/rb-removable-media-manager.c:
5404         (rb_removable_media_manager_set_uimanager): fix compilation with
5405         -Werror and --enable-track-transfer.
5407 2006-04-26  James Livingston  <doclivingston@gmail.com>
5409         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5410         implementing class. In theory allows alternate player implementations
5411         to be selected at run-time rather than compile-time. Fixes bug 338667.
5413         * Makefile.am:
5414         * backends/Makefile.am:
5415         * backends/gstreamer/Makefile.am:
5416         * backends/gstreamer/rb-player-gst.h:
5417         * backends/rb-player.c: (rb_player_interface_init),
5418         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5419         (rb_player_close), (rb_player_play), (rb_player_pause),
5420         (rb_player_playing), (rb_player_set_volume),
5421         (rb_player_get_volume), (rb_player_set_replaygain),
5422         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5423         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5424         (_rb_player_emit_buffering), (_rb_player_emit_error),
5425         (_rb_player_emit_tick), (rb_player_error_quark):
5426         * player/Makefile.am:
5427         * player/rb-player-gst.c: (rb_player_gst_class_init),
5428         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5429         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5430         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5431         (process_tag), (found_tag_cb), (buffering_cb),
5432         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5433         (rb_player_gst_new):
5434         * player/rb-player.h:
5435         * shell/Makefile.am:
5436         * sources/rb-audiocd-source.c:
5437         * widgets/Makefile.am:
5438         * widgets/rb-header.c: (rb_header_class_init):
5440 2006-04-26  James Livingston  <doclivingston@gmail.com>
5442         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5443         don't try to download an episode if it couldn't be parsed. Fixes bug
5444         339712.
5446         * shell/rb-removable-media-manager.c:
5447         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5448         Library" option when track transfer is disabled. Fixes bug 339728.
5450 2006-04-26  James Livingston  <doclivingston@gmail.com>
5452         * data/ui/Makefile.am:
5453         * data/ui/daap-ui.xml:
5454         * data/ui/rhythmbox-ui.xml:
5455         * sources/rb-daap-source.c: (rb_daap_sources_init),
5456         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5457         way that the ipod ui is. Fixes bug 339743.
5459 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5461         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5462         (process_added_entries_cb), (process_deleted_entries_cb),
5463         (rhythmdb_commit_internal): 
5464         Combine the idle functions to emit entry-added and entry-deleted,
5465         and combine as many invocations of same as possible.  Another
5466         significant reduction in startup time.
5467         
5468         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5469         Delay the next call to rhythmdb_process_events if the queue is
5470         empty or if we can't process any of the events in the queue because
5471         the database is read only.
5473         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5475 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5477         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5479         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5480         Don't special case errors quite so much.
5482 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5484         * data/rhythmbox.schemas: Remove default speed.
5486         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5487         Add n-c-b 2.15 support.  Make the default speed to slowest since
5488         that is all that works reliably.
5490 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5492         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5493         Fix compiler error from last commit.
5495 2006-04-25  James Livingston  <doclivingston@gmail.com>
5497         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5498         transcoding-related issues. From bug 322268.
5500         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5501         don't emit the signal, since the object is being finalised, which os a
5502         Bad Thing To Do.
5504         (profile_bin_find_encoder), (get_profile_from_mime_type),
5505         (transcode_track): find the encoding element by iterating looking for
5506         element in the class Codec/Encoder/Audio rather than the one named
5507         "enc".
5509 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5511         * shell/rb-shell-player.xml:
5512         * shell/rb-shell.xml:
5513         Add signal argument information.  
5514         Patch by Tim Moloney  <t.moloney@verizon.net>
5516         * shell/rb-shell.c: (rb_shell_window_state_cb):
5517         Use the right value for the visibility_changed signal.  Most of the
5518         time, anyway.
5520 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5522         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5523         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5524         (impl_create_configure_dialog):
5525         * data/glade/audioscrobbler-prefs.glade:
5526         * shell/rb-audioscrobbler.c (*):
5527         * lib/rb-preferences.h:
5528         * data/rhythmbox.schemas:
5529         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5530         Add status information (# tracks submitted, # queued, last submit
5531         time, result of last submission) to the plugin config window.
5532         Remove 'enabled' setting, since it's easier to just disable the
5533         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5534         nonexistant (so far) 'last.fm streaming' plugin.
5535         
5536         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5537         plugin
5539         Fixes some of #325848.  We still don't provide a way to view the
5540         submission queue.
5542 2006-04-25  James Livingston  <doclivingston@gmail.com>
5544         patch by: Anders Petersson  <demitar@worldforge.org>
5546         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5547         the YY-MM-DD format.
5549 2006-04-23  James Livingston  <doclivingston@gmail.com>
5551         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5552         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5553         * bindings/python/override_common.h:
5554         * bindings/python/rb.override: python binding fixes
5556 2006-04-23  James Livingston  <doclivingston@gmail.com>
5558         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5559         (rb_statusbar_sync_with_source),
5560         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5561         callback, rather than immediately every time. Takes ~5% off my warm-cache
5562         startup time.
5564         * bindings/python/rhythmdb.defs: fix the types using for
5565         RhythmDBEntryTypes.
5567 2006-04-22  James Livingston  <doclivingston@gmail.com>
5569         * data/ui/rhythmbox-ui.xml:
5570         * shell/rb-shell.c:
5571         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5572         (remove_source), (rb_daap_sources_init),
5573         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5574         (rb_daap_source_disconnect):
5575         * sources/rb-source.c: (rb_source_class_init),
5576         (rb_source_deactivate):
5577         * sources/rb-source.h: move the "disconnect" functionality from into
5578         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5580 2006-04-22  James Livingston  <doclivingston@gmail.com>
5582         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5583         actually get the translated strings for browser headers (they were
5584         already marked as translatable). Fixes bug 339380.
5586 2006-04-22  James Livingston  <doclivingston@gmail.com>
5588         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5589         submission timeout when the object is finalised.
5591         * bindings/python/Makefile.am:
5592         * bindings/python/rb.defs:
5593         * bindings/python/rb.override:
5594         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5596         * widgets/rb-library-browser.c:
5597         (rb_library_browser_construct_query), (rebuild_output_model),
5598         (rebuild_child_model):
5599         * widgets/rb-library-browser.h: change from GPtrArray to
5600         RhythmDBQuery (which in C is the same thing).
5602 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5604         * shell/rb-shell.c: (rb_shell_get_song_properties):
5605         Don't try to include entry-type (or anything else not easily
5606         marshallable) in the song properties hash table.
5608         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5610         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5611         (rb_playlist_source_constructor): Fix entry-type initialization as
5612         with previous commit.
5614 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5616         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5617         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5618         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5619         (rb_podcast_source_constructor):
5620         Set default values for entry-type after base class construction,
5621         rather than in _init, because gobject will set the entry-type property
5622         to NULL after _init if no value is provided.  Fixes #339206.
5624 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5626         patch by: Gunnar Steinn Magnusson
5628         * COPYING:
5629         * backends/gstreamer/rb-encoder-gst.c:
5630         * backends/gstreamer/rb-encoder-gst.h:
5631         * backends/rb-encoder.c:
5632         * backends/rb-encoder.h:
5633         * bindings/python/override_common.c:
5634         * bindings/python/override_common.h:
5635         * daapsharing/rb-daap-connection.c:
5636         * daapsharing/rb-daap-connection.h:
5637         * daapsharing/rb-daap-dialog.c:
5638         * daapsharing/rb-daap-dialog.h:
5639         * daapsharing/rb-daap-mdns-browser-avahi.c:
5640         * daapsharing/rb-daap-mdns-browser-howl.c:
5641         * daapsharing/rb-daap-mdns-browser.h:
5642         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5643         * daapsharing/rb-daap-mdns-publisher-howl.c:
5644         * daapsharing/rb-daap-mdns-publisher.h:
5645         * daapsharing/rb-daap-share.c:
5646         * daapsharing/rb-daap-share.h:
5647         * daapsharing/rb-daap-sharing.c:
5648         * daapsharing/rb-daap-sharing.h:
5649         * daapsharing/rb-daap-src.c:
5650         * daapsharing/rb-daap-src.h:
5651         * daapsharing/rb-daap-structure.c:
5652         * daapsharing/rb-daap-structure.h:
5653         * help/C/fdl-appendix.xml:
5654         * help/es/es.po:
5655         * help/ja/fdl-appendix.xml:
5656         * iradio/rb-new-station-dialog.c:
5657         * iradio/rb-new-station-dialog.h:
5658         * iradio/rb-station-properties-dialog.c:
5659         * iradio/rb-station-properties-dialog.h:
5660         * lib/mkdtemp.c:
5661         * lib/mkdtemp.h:
5662         * lib/rb-cut-and-paste-code.c:
5663         * lib/rb-cut-and-paste-code.h:
5664         * lib/rb-debug.c:
5665         * lib/rb-debug.h:
5666         * lib/rb-file-helpers.c:
5667         * lib/rb-file-helpers.h:
5668         * lib/rb-glade-helpers.c:
5669         * lib/rb-glade-helpers.h:
5670         * lib/rb-preferences.h:
5671         * lib/rb-proxy-config.c:
5672         * lib/rb-stock-icons.c:
5673         * lib/rb-stock-icons.h:
5674         * lib/rb-thread.c:
5675         * lib/rb-thread.h:
5676         * lib/rb-tree-dnd.c:
5677         * lib/rb-tree-dnd.h:
5678         * lib/rb-util.c:
5679         * lib/rb-util.h:
5680         * metadata/rb-metadata-common.c:
5681         * metadata/rb-metadata-dbus-client.c:
5682         * metadata/rb-metadata-dbus-service.c:
5683         * metadata/rb-metadata-dbus.c:
5684         * metadata/rb-metadata-dbus.h:
5685         * metadata/rb-metadata-gst.c:
5686         * metadata/rb-metadata.h:
5687         * metadata/sj-error.c:
5688         * metadata/sj-error.h:
5689         * metadata/sj-metadata-musicbrainz.c:
5690         * metadata/sj-metadata-musicbrainz.h:
5691         * metadata/sj-metadata.c:
5692         * metadata/sj-metadata.h:
5693         * metadata/sj-structures.c:
5694         * metadata/sj-structures.h:
5695         * metadata/test-metadata.c:
5696         * player/rb-player-gst.c:
5697         * player/rb-player.h:
5698         * player/rb-recorder-gst.c:
5699         * player/rb-recorder.h:
5700         * plugins/artdisplay/artdisplay.py:
5701         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5702         * plugins/ipod/rb-ipod-plugin.c:
5703         * plugins/lirc/rb-lirc-plugin.c:
5704         * plugins/pythonconsole/pythonconsole.py:
5705         * plugins/rb-module.c:
5706         * plugins/rb-module.h:
5707         * plugins/rb-plugin-manager.c:
5708         * plugins/rb-plugin-manager.h:
5709         * plugins/rb-plugin.c:
5710         * plugins/rb-plugin.h:
5711         * plugins/rb-plugins-engine.c:
5712         * plugins/rb-plugins-engine.h:
5713         * plugins/rb-python-module.c:
5714         * plugins/rb-python-module.h:
5715         * plugins/rb-python-plugin.c:
5716         * plugins/rb-python-plugin.h:
5717         * plugins/sample/rb-sample-plugin.c:
5718         * po/de.po:
5719         * po/el.po:
5720         * po/en_CA.po:
5721         * po/eu.po:
5722         * po/fi.po:
5723         * po/fr.po:
5724         * po/it.po:
5725         * po/ja.po:
5726         * po/mk.po:
5727         * po/pt_BR.po:
5728         * po/ru.po:
5729         * podcast/rb-feed-podcast-properties-dialog.c:
5730         * podcast/rb-feed-podcast-properties-dialog.h:
5731         * podcast/rb-new-podcast-dialog.c:
5732         * podcast/rb-new-podcast-dialog.h:
5733         * podcast/rb-podcast-manager.c:
5734         * podcast/rb-podcast-manager.h:
5735         * podcast/rb-podcast-parse.c:
5736         * podcast/rb-podcast-parse.h:
5737         * podcast/rb-podcast-properties-dialog.c:
5738         * podcast/rb-podcast-properties-dialog.h:
5739         * remote/bonobo/libmain.c:
5740         * remote/bonobo/rb-nautilus-context-menu.c:
5741         * remote/bonobo/rb-nautilus-context-menu.h:
5742         * remote/bonobo/rb-remote-bonobo.c:
5743         * remote/bonobo/rb-remote-bonobo.h:
5744         * remote/rb-remote-client-proxy.c:
5745         * remote/rb-remote-client-proxy.h:
5746         * remote/rb-remote-common.c:
5747         * remote/rb-remote-common.h:
5748         * remote/rb-remote-proxy.c:
5749         * remote/rb-remote-proxy.h:
5750         * rhythmdb/gsequence.c:
5751         * rhythmdb/gsequence.h:
5752         * rhythmdb/rb-refstring.c:
5753         * rhythmdb/rb-refstring.h:
5754         * rhythmdb/rhythmdb-gda.c:
5755         * rhythmdb/rhythmdb-gda.h:
5756         * rhythmdb/rhythmdb-private.h:
5757         * rhythmdb/rhythmdb-property-model.c:
5758         * rhythmdb/rhythmdb-property-model.h:
5759         * rhythmdb/rhythmdb-query-model.c:
5760         * rhythmdb/rhythmdb-query-model.h:
5761         * rhythmdb/rhythmdb-query-results.c:
5762         * rhythmdb/rhythmdb-query-results.h:
5763         * rhythmdb/rhythmdb-tree.c:
5764         * rhythmdb/rhythmdb-tree.h:
5765         * rhythmdb/rhythmdb.c:
5766         * rhythmdb/rhythmdb.h:
5767         * shell/main.c:
5768         * shell/rb-audioscrobbler.c:
5769         * shell/rb-audioscrobbler.h:
5770         * shell/rb-history.c:
5771         * shell/rb-history.h:
5772         * shell/rb-play-order-linear-loop.c:
5773         * shell/rb-play-order-linear-loop.h:
5774         * shell/rb-play-order-linear.c:
5775         * shell/rb-play-order-linear.h:
5776         * shell/rb-play-order-queue.c:
5777         * shell/rb-play-order-queue.h:
5778         * shell/rb-play-order-random-by-age-and-rating.c:
5779         * shell/rb-play-order-random-by-age-and-rating.h:
5780         * shell/rb-play-order-random-by-age.c:
5781         * shell/rb-play-order-random-by-age.h:
5782         * shell/rb-play-order-random-by-rating.c:
5783         * shell/rb-play-order-random-by-rating.h:
5784         * shell/rb-play-order-random-equal-weights.c:
5785         * shell/rb-play-order-random-equal-weights.h:
5786         * shell/rb-play-order-random.c:
5787         * shell/rb-play-order-random.h:
5788         * shell/rb-play-order-shuffle.c:
5789         * shell/rb-play-order-shuffle.h:
5790         * shell/rb-play-order.c:
5791         * shell/rb-play-order.h:
5792         * shell/rb-playlist-manager.c:
5793         * shell/rb-playlist-manager.h:
5794         * shell/rb-removable-media-manager.c:
5795         * shell/rb-removable-media-manager.h:
5796         * shell/rb-shell-clipboard.c:
5797         * shell/rb-shell-clipboard.h:
5798         * shell/rb-shell-player.c:
5799         * shell/rb-shell-player.h:
5800         * shell/rb-shell-preferences.c:
5801         * shell/rb-shell-preferences.h:
5802         * shell/rb-shell.c:
5803         * shell/rb-shell.h:
5804         * shell/rb-source-header.c:
5805         * shell/rb-source-header.h:
5806         * shell/rb-statusbar.c:
5807         * shell/rb-statusbar.h:
5808         * shell/rb-tray-icon.c:
5809         * shell/rb-tray-icon.h:
5810         * sources/rb-audiocd-source.c:
5811         * sources/rb-audiocd-source.h:
5812         * sources/rb-auto-playlist-source.c:
5813         * sources/rb-auto-playlist-source.h:
5814         * sources/rb-browser-source.c:
5815         * sources/rb-browser-source.h:
5816         * sources/rb-daap-source.c:
5817         * sources/rb-daap-source.h:
5818         * sources/rb-generic-player-source.c:
5819         * sources/rb-generic-player-source.h:
5820         * sources/rb-import-errors-source.c:
5821         * sources/rb-import-errors-source.h:
5822         * sources/rb-ipod-source.c:
5823         * sources/rb-ipod-source.h:
5824         * sources/rb-iradio-source.c:
5825         * sources/rb-iradio-source.h:
5826         * sources/rb-library-source.c:
5827         * sources/rb-library-source.h:
5828         * sources/rb-missing-files-source.c:
5829         * sources/rb-missing-files-source.h:
5830         * sources/rb-nokia770-source.c:
5831         * sources/rb-nokia770-source.h:
5832         * sources/rb-play-queue-source.c:
5833         * sources/rb-play-queue-source.h:
5834         * sources/rb-playlist-source-recorder.c:
5835         * sources/rb-playlist-source-recorder.h:
5836         * sources/rb-playlist-source.c:
5837         * sources/rb-playlist-source.h:
5838         * sources/rb-playlist-xml.h:
5839         * sources/rb-podcast-source.c:
5840         * sources/rb-podcast-source.h:
5841         * sources/rb-psp-source.c:
5842         * sources/rb-psp-source.h:
5843         * sources/rb-removable-media-source.c:
5844         * sources/rb-removable-media-source.h:
5845         * sources/rb-source.c:
5846         * sources/rb-source.h:
5847         * sources/rb-sourcelist-model.c:
5848         * sources/rb-sourcelist-model.h:
5849         * sources/rb-sourcelist.c:
5850         * sources/rb-sourcelist.h:
5851         * sources/rb-static-playlist-source.c:
5852         * sources/rb-static-playlist-source.h:
5853         * tests/test-cd.c:
5854         * tests/test-cmdline.c:
5855         * tests/test-rhythmdb-indexing.c:
5856         * tests/test-rhythmdb-query.c:
5857         * tests/test-rhythmdb-simple.c:
5858         * tests/test-rhythmdb-tree-deserialization.c:
5859         * tests/test-rhythmdb-tree-serialization.c:
5860         * tests/test-rhythmdb-view.c:
5861         * widgets/bacon-volume.c:
5862         * widgets/bacon-volume.h:
5863         * widgets/disclosure-widget.c:
5864         * widgets/disclosure-widget.h:
5865         * widgets/eel-gconf-extensions.c:
5866         * widgets/eel-gconf-extensions.h:
5867         * widgets/eggtrayicon.c:
5868         * widgets/eggtrayicon.h:
5869         * widgets/libsexy/sexy-icon-entry.c:
5870         * widgets/libsexy/sexy-icon-entry.h:
5871         * widgets/rb-cell-renderer-pixbuf.c:
5872         * widgets/rb-cell-renderer-pixbuf.h:
5873         * widgets/rb-cell-renderer-rating.c:
5874         * widgets/rb-cell-renderer-rating.h:
5875         * widgets/rb-dialog.c:
5876         * widgets/rb-dialog.h:
5877         * widgets/rb-druid.c:
5878         * widgets/rb-druid.h:
5879         * widgets/rb-entry-view.c:
5880         * widgets/rb-entry-view.h:
5881         * widgets/rb-header.c:
5882         * widgets/rb-header.h:
5883         * widgets/rb-library-browser.c:
5884         * widgets/rb-library-browser.h:
5885         * widgets/rb-property-view.c:
5886         * widgets/rb-property-view.h:
5887         * widgets/rb-query-creator-private.h:
5888         * widgets/rb-query-creator-properties.c:
5889         * widgets/rb-query-creator.c:
5890         * widgets/rb-query-creator.h:
5891         * widgets/rb-rating-helper.c:
5892         * widgets/rb-rating-helper.h:
5893         * widgets/rb-rating.c:
5894         * widgets/rb-rating.h:
5895         * widgets/rb-search-entry.c:
5896         * widgets/rb-search-entry.h:
5897         * widgets/rb-song-display-box.c:
5898         * widgets/rb-song-display-box.h:
5899         * widgets/rb-song-info.c:
5900         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5902 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5904         patch by: Gareth Murphy, James Livingston
5906         * bindings/python/rb.defs:
5907         * configure.ac:
5908         * plugins/Makefile.am:
5909         * plugins/artdisplay/Makefile.am:
5910         * plugins/artdisplay/artdisplay.py:
5911         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5912         * plugins/rb-python-module.c: (rb_python_module_init_python):
5913         * shell/rb-shell.c: (construct_widgets),
5914         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5915         (rb_shell_add_widget), (rb_shell_remove_widget),
5916         (rb_shell_ui_location_get_type):
5917         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5919 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5921         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5922         Fix build failure caused by the combination of the previous two
5923         commits.
5925 2006-04-20  James Livingston  <doclivingston@gmail.com>
5927         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5928         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5929         table to the entry types, which will allow us to get rid of some of
5930         the "if entry type == WHATEVER" code everywhere. From bug 
5932         * bindings/python/rb.defs:
5933         * bindings/python/rb.override:
5934         * bindings/python/rhythmdb.defs:
5935         * bindings/python/rhythmdb.override:
5936         * daapsharing/rb-daap-connection.c:
5937         (rb_daap_connection_class_init), (rb_daap_connection_init),
5938         (rb_daap_connection_set_property),
5939         (rb_daap_connection_get_property):
5940         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5941         * podcast/rb-podcast-manager.c:
5942         (rb_podcast_manager_entry_downloaded),
5943         (rb_podcast_manager_subscribe_feed),
5944         (rb_podcast_manager_db_entry_added_cb),
5945         (rb_podcast_manager_db_entry_deleted_cb),
5946         (rb_podcast_manager_insert_feed):
5947         * rhythmdb/rhythmdb-private.h:
5948         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5949         (conjunctive_query):
5950         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5951         (process_added_entries_cb), (rhythmdb_entry_allocate),
5952         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5953         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5954         (rhythmdb_process_metadata_load),
5955         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5956         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5957         (write_encoded_gvalue), (read_encoded_property),
5958         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5959         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5960         (rhythmdb_entry_iradio_get_type),
5961         (rhythmdb_entry_podcast_post_get_type),
5962         (rhythmdb_entry_podcast_feed_get_type),
5963         (rhythmdb_entry_import_error_get_type),
5964         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5965         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5966         (rhythmdb_entry_type_get_type):
5967         * rhythmdb/rhythmdb.h:
5968         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5969         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5970         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5971         (rb_shell_player_entry_activated_cb), (info_available_cb):
5972         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5973         (rb_shell_register_entry_type_for_source),
5974         (rb_shell_playing_from_queue_cb),
5975         (rb_shell_playing_entry_changed_cb),
5976         (rb_shell_player_stream_song_changed_cb),
5977         (rb_shell_jump_to_entry_with_source),
5978         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5979         (handle_playlist_entry_cb), (rb_shell_load_uri):
5980         * shell/rb-shell.h:
5981         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5982         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5983         (rb_browser_source_init), (rb_browser_source_set_property),
5984         (rb_browser_source_get_property):
5985         * sources/rb-ipod-source.c: (impl_paste):
5986         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5987         (rb_iradio_source_init), (rb_iradio_source_set_property),
5988         (rb_iradio_source_get_property):
5989         * sources/rb-library-source.c: (impl_paste):
5990         * sources/rb-missing-files-source.c:
5991         (rb_missing_files_source_class_init),
5992         (rb_missing_files_source_init),
5993         (rb_missing_files_source_set_property),
5994         (rb_missing_files_source_get_property):
5995         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5996         (rb_playlist_source_init), (rb_playlist_source_set_property),
5997         (rb_playlist_source_get_property):
5998         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5999         (rb_podcast_source_init), (rb_podcast_source_set_property),
6000         (rb_podcast_source_get_property):
6001         * sources/rb-static-playlist-source.c:
6002         (rb_static_playlist_source_add_location_internal):
6004 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6006         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6007         (rhythmdb_add_import_error_entry),
6008         (entry_volume_mounted_or_unmounted),
6009         (rhythmdb_volume_unmounted_cb):
6010         When a volume is unmounted, delete import errors for files stored on
6011         it.  When a volume is mounted, stat all tracks stored on it, rather
6012         than assuming they're present.  Fixes #339023.
6014 2006-04-20  James Livingston  <doclivingston@gmail.com>
6016         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6017         browser visibility for non-gconf-using sources (like playlists). Part
6018         of bug 118862.
6020         * shell/rb-source-header.c: (sourcestate_free),
6021         (rb_source_header_init), (rb_source_header_finalize),
6022         (rb_source_header_source_weak_destroy_cb): switch from storing the
6023         search string to storing a "source state" structure
6025         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6026         (rb_source_header_search_cb), (rb_source_header_clear_search),
6027         (rb_source_header_disclosure_toggled_cb): as well as storing the
6028         string, stop the visibility of the source's browser.
6030 2006-04-20  James Livingston  <doclivingston@gmail.com>
6032         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6033         library entries back into the library. Fixes bug 339065.
6035 2006-04-20  James Livingston  <doclivingston@gmail.com>
6037         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6038         only exists in glib 2.10.
6040 2006-04-20  James Livingston  <doclivingston@gmail.com>
6042         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6043         Solaris. From bug 335318.
6045         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6046         * shell/rb-audioscrobbler.c:
6047         * sources/rb-psp-source.c:
6049 2006-04-20  James Livingston  <doclivingston@gmail.com>
6051         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6052         issues for some people.
6054         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6055         accidental s/suffix/prefix/
6057         * sources/rb-auto-playlist-source.c:
6058         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6059         you from sorting playlists which aren't limited by time.
6061 2006-04-19  James Livingston  <doclivingston@gmail.com>
6063         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6064         duration or bitrate back to the file, since they are properties of the
6065         audio data, not tags we can set.
6067 2006-04-19  James Livingston  <doclivingston@gmail.com>
6069         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6070         of libtool, to fix builds which are using a different version. Fixes
6071         bug 338996.
6073         * shell/Makefile.am:
6075 2006-04-19  James Livingston  <doclivingston@gmail.com>
6077         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6078         to sync data to a file which is uneditable.
6080 2006-04-19  James Livingston  <doclivingston@gmail.com>
6082         patch by: Gavin Stewart  <gavin@brokentrain.net>
6084         * data/glade/playlist-save.glade:
6085         * data/glade/Makefile.am:
6086         * po/POTFILES.in: add the playlist saving dialog.
6088         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6089         (export_set_extension_cb), (filter_get_export_filter_label),
6090         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6091         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6092         formats (PLS and M3U at the moment). Fixes bug 316295.
6094 2006-04-19  James Livingston  <doclivingston@gmail.com>
6096         * shell/rb-playlist-manager.c:
6097         (rb_playlist_manager_set_source_internal): don't let you edit remove
6098         auto playlists.
6100         * sources/rb-auto-playlist-source.c:
6101         (rb_auto_playlist_source_set_query): correctly handle time-limited
6102         playlists.
6104 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6106         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6108         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6109         Don't crash if the queue file contains no newlines.
6110         Fixes #338924.
6112 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6114         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6115         condition
6117 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6119         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6120         case. Moreover, they may not exist yet, so take that into account when
6121         generating the iPod filename.
6123 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6125         * sources/rb-ipod-source.c: added support for drag and drop from the
6126         library to the iPod (only enabled if --enable-track-transfer was
6127         passed to configure)
6129 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6131         * configure.ac:
6132         * lib/rb-marshal.list:
6133         * lib/rb-util.c: 
6134         * lib/rb-util.h:
6135         * plugins/Makefile.am:
6136         * plugins/ipod/Makefile.am:
6137         * plugins/ipod/ipod.rb-plugin.desktop.in:
6138         * plugins/ipod/rb-ipod-plugin.c: 
6139         * plugins/rb-plugin.h:
6140         * shell/Makefile.am:
6141         * shell/rb-removable-media-manager.c:
6142         * shell/rb-removable-media-manager.h:
6143         * shell/rb-shell.c: 
6144         * sources/Makefile.am:
6145         * sources/rb-ipod-source.c: 
6146         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6147         various iPod related files should be moved to plugins/ipod/ now...
6149 2006-04-17  James Livingston  <doclivingston@gmail.com>
6151         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6152         and "vic".
6154         * help/C/figures/rb-iradio-main.png:
6155         * help/C/figures/rb-notification-area-menu.png:
6156         * help/C/figures/rb-notification-window.png:
6157         * help/C/figures/rb-notification-zone.png:
6158         * help/C/figures/rb-podcast-main.png:
6159         * help/C/figures/rb-statusbar.png:
6160         * help/C/figures/rb-volume-changer.png:
6161         * help/C/figures/rb-window-small.png:
6162         * help/C/figures/rb-window.png:
6163         * help/C/rhythmbox.xml:
6165 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6167         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6168         more obviously.
6170         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6171         (make_undecodable_error), (rb_metadata_gst_error_cb),
6172         (rb_metadata_gst_new_decoded_pad_cb),
6173         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6174         Ignore really small files (<4kB) for which typefinding fails.
6175         Always link decoded pads from decodebin to fakesink.
6176         Shut the pipeline down by posting an error on the bus when decodebin
6177         emits unknown-type signals.  Fixes bug #338062.
6179 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6181         * shell/rb-shell.c: (rb_shell_load_uri):
6182         Fix glaring mistakes in previous commit: actually pass arguments to
6183         rb_debug, and specify the right entry type when adding a new iradio
6184         station so we don't try to add local playlist files to the library.
6186 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6188         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6189         before trying to add them, as iradio streams often fail rb_uri_exists().
6191         * shell/rb-shell-player.c: (notify_playing_idle),
6192         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6193         (open_location_thread), (rb_shell_player_open_location),
6194         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6195         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6196         of all the stream URLs, and try them in turn.  If we get through the
6197         whole playlist too quickly, error out.  Various other fixes that make
6198         iradio work a lot better.
6200         * shell/rb-shell.c: (add_to_library_response_cb),
6201         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6202         (handle_playlist_entry_cb), (rb_shell_load_uri):
6203         Add playlists containing streams as iradio stations.  If the playlist
6204         is local, add each stream URL, but if the playlist is remote, just add
6205         the playlist URL.
6206         
6207         * sources/rb-iradio-source.c: (new_station_location_added):
6208         Add new station URLs as-is, rather than parsing the playlist and
6209         adding the streams.
6210         
6211         * rhythmdb/rhythmdb-query-model.c:
6212         (rhythmdb_query_model_entry_changed_cb),
6213         (rhythmdb_query_model_emit_reorder),
6214         (rhythmdb_query_model_do_reorder):
6215         Emit row-changed notifications when an entry changes but is not
6216         reordered.
6218         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6219         Display the playback error icon when the entry has an error and
6220         there's nothing else to display.
6221         
6222         Fixes bug #320336 and some of #324402.
6223         
6224 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6226         * sources/rb-ipod-source.c: use a GHashTable for the
6227         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6228         time, this fixes compilation breakage for people not having libgpod
6229         CVS HEAD
6231 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6233         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6235         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6236         (rb_podcast_manager_insert_feed):
6237         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6238         fixes bug 321945
6240 2006-04-16  James Livingston  <doclivingston@gmail.com>
6242         * sources/rb-library-source.c:
6243         (rb_library_source_library_location_cb): return FALSE like we are
6244         supposed to, not void.
6246         patch by: FreeBSD GNOME Project
6247         * configure.ac: fix some bash-isms.
6249         patch by: Pawel Worach  <pawel.worach@gmail.com>
6250         * metadata/rb-metadata-dbus-client.c:
6251         * rhythmdb/rhythmdb-query-model.c:
6252         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6255 2006-04-16  James Livingston  <doclivingston@gmail.com>
6257         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6258         for transcoding to RBEncoderGst.
6260         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6261         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6262         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6263         (add_decoding_pipeline), (encoder_match_mime),
6264         (get_profile_from_mime_type), (extract_track), (transcode_track),
6265         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6267 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6269         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6270         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6271         load_ipod_db_idle_cb to a new separate function
6273 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6275         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6276         source
6278 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6280         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6281         variables
6283 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6285         * data/ui/Makefile.am:
6286         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6287         menu
6288         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6289         NULL before using it as a popup menu
6290         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6291         'eject' an iPod
6293 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6295         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6296         iPod, check if it contains an iPod database before using it (in case
6297         the iPod was repartitionned somehow). Should fix bug #325034
6299 2006-04-16  Steve Frécinaux  <steve@istique.net>
6301         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6303         * data/Makefile.am: install application icon into the default theme.
6305         * data/rhythmbox.desktop.in: don't specify icon file extension.
6306         
6307         * shell/main.c: (main): set default window icon from theme.
6308         
6309         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6310         code concerning window icon, and fix leak by unreferencing the about
6311         logo pixbuf once it's not used anymore.
6313 2006-04-16  James Livingston  <doclivingston@gmail.com>
6315         * configure.ac: bump version to 0.9.4
6316         * NEWS: update NEWS and 0.9.4 insert translations
6318 2006-04-16  James Livingston  <doclivingston@gmail.com>
6320         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6321         namespace automatically.
6323 2006-04-16  James Livingston  <doclivingston@gmail.com>
6325         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6327         * doc/reference/Makefile.am:
6328         * doc/reference/rhythmbox.types: make distcheck work again
6330         * doc/reference/tmpl/eggnotificationbubble.sgml:
6331         * doc/reference/tmpl/eggtrayicon.sgml:
6332         * doc/reference/tmpl/rb-debug.sgml:
6333         * doc/reference/tmpl/rb-entry-view.sgml:
6334         * doc/reference/tmpl/rb-enums.sgml:
6335         * doc/reference/tmpl/rb-metadata.sgml:
6336         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6337         * doc/reference/tmpl/rb-playlist-manager.sgml:
6338         * doc/reference/tmpl/rb-refstring.sgml:
6339         * doc/reference/tmpl/rb-shell-player.sgml:
6340         * doc/reference/tmpl/rb-shell-preferences.sgml:
6341         * doc/reference/tmpl/rb-shell.sgml:
6342         * doc/reference/tmpl/rb-song-info.sgml:
6343         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6344         * doc/reference/tmpl/rb-statusbar.sgml:
6345         * doc/reference/tmpl/rhythmbox-unused.sgml:
6346         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6347         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6349 2006-04-16  James Livingston  <doclivingston@gmail.com>
6351         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6353         * po/LINGUAS: don't split the variable across two lines, as it breaks
6354         the build. Fixes bug 338625.
6356 2006-04-15  James Livingston  <doclivingston@gmail.com>
6358         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6359         add a "sourcelist-model" gobject property.
6361 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6363         * .cvsignore:
6364         * backends/.cvsignore:
6365         * backends/gstreamer/.cvsignore:
6366         * bindings/.cvsignore:
6367         * bindings/python/.cvsignore:
6368         * help/es/.cvsignore:
6369         * metadata/.cvsignore:
6370         * plugins/.cvsignore:
6371         * plugins/audioscrobbler/.cvsignore:
6372         * plugins/lirc/.cvsignore:
6373         * plugins/pythonconsole/.cvsignore:
6374         * plugins/sample-python/.cvsignore:
6375         * plugins/sample/.cvsignore:
6376         * shell/.cvsignore:
6377         * widgets/libsexy/.cvsignore:
6378         Make CVS ignore files.
6380 2006-04-14  James Livingston  <doclivingston@gmail.com>
6382         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6383         the track-loading thread hold a reference on the source, so it doesn't
6384         explode if the cd is removed before it is done. Fixes bug 337237.
6386 2006-04-14  James Livingston  <doclivingston@gmail.com>
6388         * bindings/python/override_common.c:
6389         (_helper_unwrap_pointer_pylist):
6390         * bindings/python/override_common.h:
6391         * bindings/python/rb.override:
6392         * bindings/python/rhythmdb.override: Bind some more functions and
6393         virtual functions.
6395         * shell/rb-shell.c: (rb_shell_select_source):
6396         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6397         * sources/rb-audiocd-source.c:
6398         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6399         * sources/rb-browser-source.c: (impl_get_search_actions):
6400         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6401         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6402         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6403         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6404         (impl_get_search_actions):
6405         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6406         the impl_get_ui_actions and impl_get_search_actions functions return
6407         lists that contain copies of the strings, instead of constant ones.
6408         Needed to bindings
6410 2006-04-14  James Livingston  <doclivingston@gmail.com>
6412         * bindings/python/rhythmdb.defs:
6413         * bindings/python/rhythmdb.override: fix the method argument format
6414         specifiers.
6416 2006-04-14  James Livingston  <doclivingston@gmail.com>
6418         * bindings/python/rhythmdb.defs:
6419         * bindings/python/rhythmdb.override:
6420         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6421         (entry_to_rb_metadata), (record_entry_change),
6422         (rhythmdb_entry_set_visibility):
6423         * rhythmdb/rhythmdb.h:
6424         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6425         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6426         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6427         since they are used in too many places, and not in the Python
6428         bindings.
6430 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6432         * lib/rb-debug.c: (_rb_profile_log):
6433         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6434         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6435         * shell/main.c: (main):
6436         * shell/rb-shell.c: (rb_shell_constructor),
6437         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6438         (rb_shell_present):
6439         Fix profile output indentation.  Add more profiling points.
6440         Fixes part of #338114
6442 2006-04-13  James Livingston  <doclivingston@gmail.com>
6444         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6445         library source being deleted, by setting the active source to NULL.
6446         From bug 338116.
6448 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6450         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6451         Update the last-seen string when hiddenness changes.
6453 2006-04-12  James Livingston  <doclivingston@gmail.com>
6455         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6456         which caused the first-seen time to be reset when a metadata load was
6457         done. Fixes bug 336874.
6459         * shell/rb-shell.h: remove old function declaration.
6461         * bindings/python/rhythmdb.defs:
6462         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6464 2006-04-11  James Livingston  <doclivingston@gmail.com>
6466         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6467         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6468         interaction. Fixes bug 337999.
6470 2006-04-11  James Livingston  <doclivingston@gmail.com>
6472         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6473         track transfer. Fixes bug 338056.
6475         * shell/Makefile.am:
6477 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6479         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6481 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6483         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6484         (_rb_profile_log):
6485         * lib/rb-debug.h:
6486         * shell/rb-shell.c: (construct_db), (construct_widgets),
6487         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6488         Add profiling.  Fixes #337387
6490 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6492         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6493         * widgets/rb-header.c:
6494         Use italics for artist and album. Fixes #336748
6496 2006-04-10  James Livingston  <doclivingston@gmail.com>
6498         * Makefile.am:
6499         * backends/gstreamer/Makefile.am:
6500         * configure.ac:
6501         * data/glade/library-prefs.glade:
6502         * shell/Makefile.am:
6503         * shell/rb-removable-media-manager.c:
6504         * shell/rb-removable-media-manager.h:
6505         * sources/Makefile.am:
6506         * sources/rb-audiocd-source.c:
6507         * sources/rb-library-source.c: (rb_library_source_class_init),
6508         (rb_library_source_finalize), (impl_get_config_widget),
6509         (rb_library_source_preferences_sync), (impl_can_paste): add a
6510         --enable-track-transfer configure option, abd make cd ripping disabled
6511         by default.
6513         * shell/rb-source-header.c:
6514         * sources/rb-source.c: (rb_source_class_init),
6515         (rb_source_delete_thyself), (default_get_entry_view):
6516         * lib/rb-glade-helpers.c:
6517         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6518         some compiler warnings, and also bug 337427.
6520 2006-04-10  James Livingston  <doclivingston@gmail.com>
6522         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6523         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6524         if the gconf key is missing. Fixes bug 337742.
6526 2006-04-10  James Livingston  <doclivingston@gmail.com>
6528         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6529         to fix build problems I caused with a commit yesterday. Fixed bug
6530         337806.
6532         * daapsharing/rb-daap-mdns-browser-howl.c:
6533         (rb_daap_mdns_browser_class_init):
6534         * podcast/Makefile.am:
6535         * rhythmdb/Makefile.am:
6536         * widgets/eggtrayicon.h:
6538 2006-04-09  Steve Frécinaux  <steve@istique.net>
6540         * configure.ac:
6541         * po/LINGUAS:
6542         
6543         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6544         translators' life easier.
6546 2006-04-09  James Livingston  <doclivingston@gmail.com>
6548         * bindings/python/rb.defs:
6549         * bindings/python/rb.override: add bindings for most RBSource virtual
6550         functions.
6552         * sources/rb-source.h:
6553         * sources/rb-source.c: (rb_source_class_init): make
6554         impl_get_browser_key return a non-consht string, since Python can't
6555         really give us constant strings.
6557         * shell/rb-source-header.c: (rb_source_header_finalize),
6558         (rb_source_header_set_source_internal):
6559         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6560         * sources/rb-iradio-source.c: (impl_get_browser_key):
6561         * sources/rb-library-source.c: (impl_get_browser_key):
6562         * sources/rb-playlist-source.c:
6563         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6564         (rb_browser_source_state_prefs_sync):
6565         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6566         above change.
6568         * plugins/sample-python/sample-python.py: show how to add a new
6569         source.
6571 2006-04-09  James Livingston  <doclivingston@gmail.com>
6573         * daapsharing/Makefile.am:
6574         * daapsharing/rb-daap-connection.c:
6575         (rb_daap_connection_class_init):
6576         * daapsharing/rb-daap-marshal.list:
6577         * daapsharing/rb-daap-mdns-browser-avahi.c:
6578         (rb_daap_mdns_browser_class_init):
6579         * lib/rb-marshal.list:
6580         * player/Makefile.am:
6581         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6582         * player/rb-recorder-marshal.list:
6583         * podcast/Makefile.am:
6584         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6585         * podcast/rb-podcast-marshal.list:
6586         * rhythmdb/Makefile.am:
6587         * rhythmdb/rhythmdb-marshal.list:
6588         * rhythmdb/rhythmdb-query-model.c:
6589         (rhythmdb_query_model_class_init):
6590         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6591         into one file, as there is no point having several of them.
6593 2006-04-09  James Livingston  <doclivingston@gmail.com>
6595         * lib/Makefile.am:
6596         * lib/rb-enums.h:
6597         * widgets/Makefile.am:
6598         * widgets/eggnotificationbubble.c:
6599         * widgets/eggnotificationbubble.h:
6600         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6601         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6603         * rhythmdb/rhythmdb-property-model.h:
6604         * rhythmdb/rhythmdb-query-model.h:
6605         * rhythmdb/rhythmdb.h:
6606         * shell/rb-playlist-manager.h:
6607         * widgets/rb-cell-renderer-pixbuf.h:
6608         * widgets/rb-cell-renderer-rating.h:
6609         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6611 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6613         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6614         so we can build without a system-wide installed copy.
6616 2006-04-09  James Livingston  <doclivingston@gmail.com>
6618         * data/glade/general-prefs.glade:
6619         * data/rhythmbox.schemas:
6620         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6621         (rb_combo_box_hyphen_separator_func):
6622         * lib/rb-glade-helpers.h:
6623         * lib/rb-preferences.h:
6624         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6625         (rb_shell_preferences_sync),
6626         (rb_shell_preferences_toolbar_style_cb),
6627         (rb_shell_preferences_browser_views_activated_cb):
6628         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6629         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6630         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6632 2006-04-09  James Livingston  <doclivingston@gmail.com>
6634         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6635         data that MusicBrainz returns to us. Last part of bug 334167.
6637 2006-04-09  James Livingston  <doclivingston@gmail.com>
6639         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6640         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6642 2006-04-09  James Livingston  <doclivingston@gmail.com>
6644         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6645         the entry view properly when the rows are reordered. Fixes bug 337019.
6647 2006-04-09  James Livingston  <doclivingston@gmail.com>
6649         * configure.ac:
6650         * widgets/Makefile.am:
6651         * widgets/libsexy/Makefile.am:
6652         * widgets/libsexy/sexy-icon-entry.c:
6653         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6654         libsexy, and allow building against it or a system-wide installed
6655         copy.
6658         * widgets/rb-search-entry.c: (rb_search_entry_init),
6659         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6660         search box. Fixes bug 128109.
6662 2006-04-09  James Livingston  <doclivingston@gmail.com>
6664         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6666         * widgets/rb-entry-view.c: (rb_entry_view_init),
6667         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6668         and Pause icons rather than the volume ones in the Now Playing column.
6669         Closes bug 336482.
6671 2006-04-08  James Livingston  <doclivingston@gmail.com>
6673         * bindings/python/override_common.h:
6674         * bindings/python/rb.override:
6675         * bindings/python/rhythmdb.override: bind some more functions 
6677 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6679         * metadata/rb-metadata-dbus-service.c: (_send_error):
6680         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6681         are sent properly and we don't get 'method doesn't exist' messages
6682         from dbus instead.
6684 2006-04-08  James Livingston  <doclivingston@gmail.com>
6686         * bindings/python/override_common.h:
6687         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6688         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6689         more utility functions for C<->Python conversions
6691         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6692         (rb_entry_view_state_get_type):
6693         * widgets/rb-entry-view.h: make the colume type and entry view state
6694         GTypes
6696         * bindings/python/Makefile.am:
6697         * bindings/python/rb.defs:
6698         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6699         RBSource.
6701 2006-04-08  James Livingston  <doclivingston@gmail.com>
6703         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6704         initialiser for a GError
6706         * sources/rb-source.c: (rb_source_eof_type_get_type):
6707         * sources/rb-source.h: add a GType for RBSourceEOFType
6709         * bindings/python/Makefile.am:
6710         * bindings/python/rb.defs:
6711         * bindings/python/rb.override: bind RBSource and RBSourceList
6713 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6715         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6716         (rb_shell_player_get_property),
6717         (rb_shell_player_get_active_source),
6718         (rb_shell_player_set_playing_source_internal):
6719         * shell/rb-shell-player.h:
6720         Change 'playing-from-queue' from being a signal to being a property.
6722         * shell/rb-shell.c: (rb_shell_constructor),
6723         (rb_shell_playing_from_queue_cb),
6724         (rb_shell_view_queue_as_sidebar_changed_cb),
6725         (rb_shell_jump_to_entry_with_source):
6726         When the queue side pane is used, make 'jump to current' jump to the
6727         entry in the registered source for its type, rather than in the queue,
6728         and show it as playing in that source.
6729         
6730         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6731         * sources/rb-sourcelist.h:
6732         Remove the 'preempted source' stuff, since it wasn't doing anything
6733         anyway.
6735 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6737         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6738         (download_progress_cb): Canonicalise downloaded file location before
6739         setting the mountpoint property of the corresponding entry.
6740         Fixes #337287 and a couple of memory leaks.
6742 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6744         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6745         (test_load), (main): Call g_set_prgname, report errors more
6746         usefully in test mode.
6747         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6748         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6749         files.  Run the event loop when the state change fails so we get the
6750         error messages from the bus.  Fixes #336921.
6752 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6754         * data/art/Makefile.am: Install media-eject.
6756         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6757         return value of rb_file.
6759         Fixes #337209
6761 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6763         Patch by: William Jon McCann  <mccann@jhu.edu>
6765         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6766         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6767         Fix GError leak.
6769 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6771         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6772         Don't try to add a date when we don't have one.  Fixes #336741.
6774         Also fix variable declaration in middle of block.
6776 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6778         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6779         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6781 2006-04-02  James Livingston  <doclivingston@gmail.com>
6783         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6784         inverted logic causing imports to fail.
6786 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6788         * shell/main.c: (main): Fix dbusless build.
6790 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6792         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6793         wav header for non-gcc compilers (not tested much, was only written
6794         according to docs)
6796 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6798         * shell/main.c: (main): Check if we got a dbus connection before
6799         trying to create a proxy for the shell object.  Fixes #336634.
6801 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6803         * doc/reference/Makefile.am:
6804         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6805         * shell/rb-source-header.c:
6806         * sources/rb-generic-player-source.c:
6807         (default_transform_playlist_uri):
6808         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6809         <alexl@users.sourceforge.net>
6811 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6813         * configure.ac: Detect LIRC.
6814         
6815         * plugins/Makefile.am:
6816         * plugins/lirc/Makefile.am:
6817         * plugins/lirc/lirc.rb-plugin.desktop.in:
6818         * plugins/lirc/rb-lirc-plugin.c:
6819         LIRC plugin.
6821         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6822         Remove obsolete files.
6824 2006-04-02  James Livingston  <doclivingston@gmail.com>
6826         * sources/rb-generic-player-source.c:
6827         (default_transform_playlist_uri): consider playlist paths as relative
6828         to the volume root by default, since that is what most players use.
6830 2006-04-02  James Livingston  <doclivingston@gmail.com>
6832         * lib/rb-util.c: (rb_mime_get_friendly_name):
6833         * lib/rb-util.h: add helper function to get the "friendly" name for a
6834         mime-type
6836         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6837         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6838         the user better error messages about undecodable streams, using the
6839         "friendly" name if possible. Fixes bug 128109.
6841 2006-04-02  James Livingston  <doclivingston@gmail.com>
6843         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6844         (start_pipeline): fix building with gstreamer 0.8
6846 2006-04-02  James Livingston  <doclivingston@gmail.com>
6848         * sources/rb-podcast-source.c: (impl_delete),
6849         (rb_podcast_source_cmd_delete_feed),
6850         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6851         it, since it may change during traversal. Fixes bug 336204.
6853 2006-04-01  James Livingston  <doclivingston@gmail.com>
6855         * data/art/media-eject.png: add the media-eject icon from Banshee
6856         (BSD-licensed), for use when the user's icon theme doesn't have one.
6858         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6859         bug 334897.
6861 2006-04-01  James Livingston  <doclivingston@gmail.com>
6863         * shell/rb-shell-player.h:
6864         * shell/rb-shell-player.c: (rb_shell_player_play),
6865         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6866         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6867         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6869         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6870         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6871         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6873         * bindings/python/rb.defs: bind the above to Python, and remove some
6874         useless stuff from the bindings.
6876 2006-04-01  James Livingston  <doclivingston@gmail.com>
6878         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6879         number tag.
6881         * shell/rb-shell.c:
6882         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6884         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6885         to true.
6887         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6888         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6889         method assigning, so it's understandable
6891         * sources/rb-library-source.c: (rb_library_source_class_init),
6892         (impl_paste): rather than hard-coding the types to ignore, use
6893         rb_source_can_copy.
6895 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6897         * sources/rb-library-source.c:
6898         (rb_library_source_preferences_sync):
6899         Don't crash if no audio profile is selected and the gconf schemas are 
6900         not installed.
6902 2006-03-31  James Livingston  <doclivingston@gmail.com>
6904         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6905         "*" which caused compilation to fail
6907 2006-03-31  James Livingston  <doclivingston@gmail.com>
6909         * configure.ac:
6910         * Makefile.am:
6911         * backends/Makefile.am:
6912         * backends/gstreamer/Makefile.am:
6913         * backends/gstreamer/rb-encoder-gst.c:
6914         * backends/gstreamer/rb-encoder-gst.h:
6915         * backends/rb-encoder.c:
6916         * backends/rb-encoder.h: add a interface for transcoding, and a
6917         GStreamer implementation of it (based on Sound-Juicer's code).
6919         * shell/Makefile.am:
6920         * shell/rb-removable-media-manager.c:
6921         (rb_removable_media_manager_class_init),
6922         (rb_removable_media_manager_init),
6923         (rb_removable_media_manager_dispose),
6924         (rb_removable_media_manager_finalize),
6925         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6926         (progress_cb), (completed_cb), (do_transfer),
6927         (rb_removable_media_manager_queue_transfer), (copy_entry),
6928         (rb_removable_media_manager_cmd_copy_tracks):
6929         * shell/rb-removable-media-manager.h: use the encoder interface to
6930         perform transfers of entries to other locations
6932         * shell/rb-shell-player.c: (open_location_thread):
6933         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6934         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6935         (rb_shell_quit):
6936         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6937         progress in the status bar.
6939         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6940         (rb_shell_preferences_sync),
6941         (rb_shell_preferences_browser_views_activated_cb):
6942         * data/glade/general-prefs.glade: move the browser views setting from
6943         the library tab to the general one.
6945         * data/glade/library-prefs.glade: add settings for the layout of the
6946         user's library, and their preferred encoding format (e.g. for CD
6947         ripping).
6949         * lib/rb-preferences.h:
6950         * data/rhythmbox.schemas: add keys for the above options (and a few
6951         other minor ones)
6953         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6954         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6955         entry, that isn't inserted into the database.
6957         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6958         (rb_audiocd_create_track_entry):
6959         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6960         cds, and set the mime-type of audio cd tracks correctly.
6962         * sources/rb-library-source.c: (rb_library_source_class_init),
6963         (rb_library_source_finalize),
6964         (rb_library_source_edit_profile_clicked_cb),
6965         (impl_get_config_widget), (rb_library_source_preferences_sync),
6966         (impl_receive_drag), (rb_library_source_path_changed_cb),
6967         (rb_library_source_filename_changed_cb),
6968         (rb_library_source_format_changed_cb), (sanitize_path),
6969         (filepath_parse_pattern), (layout_example_label_update),
6970         (rb_library_source_layout_path_changed),
6971         (rb_library_source_layout_filename_changed), (build_filename),
6972         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6973         entries to the library. Large chunks of code for determining the
6974         destination file name stolen from Sound-Juicer.
6976         * sources/rb-sourcelist-model.c: (path_is_droppable):
6977         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6978         * sources/rb-static-playlist-source.c:
6979         (rb_static_playlist_source_class_init):
6980         * sources/rb-removable-media-source.c:
6981         (rb_removable_media_source_class_init):
6982         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6983         (rb_source_can_paste):
6984         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6985         than _can_copy) to determine whether we can paste into the source.
6988 2006-03-31  Steve Frécinaux  <steve@istique.net>
6990         * plugins/rb-python-module.c: allow import of python modules with a '.'
6991         (gedit's bug 336403). Patch by Johan Dahlin.
6993 2006-03-31  James Livingston  <doclivingston@gmail.com>
6995         * sources/rb-library-source.c: 
6996         * sources/rb-library-source.h:
6997         * sources/rb-browser-source.c:
6998         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6999         RBBrowserSource now contains all the stuff for having a source which
7000         views a particular entry type (including browsers and searching).
7001         RBLibrarySource derives from this, and includes the library-specific
7002         stuff, like importing and library watching. Fixes some issues where
7003         library-derived sources were doing things that should be
7004         library-specific. Fixes bug 335185.
7006         * data/ui/rhythmbox-ui.xml:
7007         * sources/Makefile.am: modifications for the above
7009         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7010         (rb_daap_source_get_paned_key):
7011         * sources/rb-daap-source.h:
7012         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7013         * sources/rb-removable-media-source.c:
7014         (rb_removable_media_source_class_init):
7015         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7016         instead of RBLibrarySource.
7018 2006-03-31  James Livingston  <doclivingston@gmail.com>
7020         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7021         I buggered up when changing from GnomeVFSFileSize.
7023 2006-03-30  James Livingston  <doclivingston@gmail.com>
7025         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7026         for "-Wno-error".
7028         * bindings/python/rb.override:
7029         * bindings/python/Makefile.am: make the RB python bindings depend on
7030         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7031         code sometimes emits warnings.
7033         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7034         (rb_shell_player_error_get_type):
7035         * shell/rb-shell-player.h:
7036         * bindings/python/rb.defs: add bindings for RBShellPlayer
7038         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7039         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7040         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7041         * rhythmdb/rhythmdb.h:
7042         * shell/rb-shell.c: (rb_shell_get_song_properties):
7043         * widgets/rb-entry-view.c: (propid_from_name):
7044         * widgets/rb-property-view.c: (rb_property_view_class_init):
7045         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7046         than just plain GPtrArray, and add bindings for it.
7048         * bindings/python/rhythmdb.override: wrap some functions that use
7049         GValues
7051 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7053         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7054         Only watch directories from which entries of type SONG have been
7055         added.
7057 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7059         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7060         No need to restore the selection after rebuilding the child model,
7061         since that can't have changed the selection.
7063 2006-03-29  James Livingston  <doclivingston@gmail.com>
7065         * bindings/python/override_common.c:
7066         * bindings/python/override_common.h: add some for missing files to
7067         cvs.
7069 2006-03-29  James Livingston  <doclivingston@gmail.com>
7071         * configure.ac:
7072         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7073         copied from gedit's autofoo and we don't need it
7075         * bindings/python/rhythmdb.defs:
7076         * bindings/python/rhythmdb.override: add missing files to cvs
7078 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7080         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7081         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7082         before running any of the debug/test modes.
7083         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7084         Make plugin loading work when running uninstalled from the shell/
7085         directory.
7087 2006-03-29  James Livingston  <doclivingston@gmail.com>
7089         * rhythmdb/rhythmdb-property-model.c:
7090         (rhythmdb_property_model_sync),
7091         (rhythmdb_property_model_column_get_type):
7092         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7094         * rhythmdb/rhythmdb-private.h:
7095         * rhythmdb/rhythmdb-query-model.c:
7096         (rhythmdb_query_model_class_init):
7097         * rhythmdb/rhythmdb-query-model.h:
7098         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7099         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7100         (rhythmdb_entry_get_type):
7101         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7103         * widgets/rb-query-creator-properties.c:
7104         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7105         was missing.
7107         * bindings/python/Makefile.am:
7108         * bindings/python/rb.defs:
7109         * bindings/python/rb.override:
7110         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7111         Python bindings for RhythmDB.
7113 2006-03-29  James Livingston  <doclivingston@gmail.com>
7115         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7116         sharing when using --no-registration
7118 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7120         * rhythmdb/rhythmdb-query-model.c:
7121         (rhythmdb_query_model_reapply_query):
7122         Don't remove entries while iterating, as it breaks the sequence
7123         nodes.  Instead, collect a list of removed entries and process it
7124         after iterating the sequence.  Fixes #334642.
7126 2006-03-29  James Livingston  <doclivingston@gmail.com>
7128         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7129         (row_activated_cb), (plugin_manager_toggle_all):
7130         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7131         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7132         (button_press_cb), (source_name_edited_cb):
7133         * widgets/rb-property-view.c: (rb_property_view_set_property),
7134         (rb_property_view_post_row_deleted_cb),
7135         (rb_property_view_row_activated_cb),
7136         (rb_property_view_selection_changed_cb),
7137         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7138         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7140 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7142         * rhythmdb/rhythmdb-query-model.c:
7143         (rhythmdb_query_model_drag_data_received):
7144         Increment the reference count for entries added by drag and drop.
7145         Fixes #336045.
7147 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7149         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7150         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7151         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7153 2006-03-27  James Livingston  <doclivingston@gmail.com>
7155         * shell/rb-shell.c: (rb_shell_constructor),
7156         (rb_shell_sync_window_state): fix a maximise-realise race that would
7157         cause some widgets to be resized after we had explicity set theri
7158         size. Hopefully fixes bug 331927.
7160 2006-03-27  James Livingston  <doclivingston@gmail.com>
7162         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7163         (row_activated_cb), (plugin_manager_set_active),
7164         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7165         configure button sensitivity when a plugin is enabled/disabled.
7167 2006-03-27  James Livingston  <doclivingston@gmail.com>
7169         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7170         stop warnings, only the vbos is used anyway
7172         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7173         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7174         collection every now an then.
7176         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7177         if we are finalising because the python object couldn't be created.
7179         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7180         NULL if the python-side object couldn't be created. Stops crashes when
7181         the object is later used when it doesn't exist in Python.
7183         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7184         (rb_python_shutdown): do better garbage collection when shutting down.
7185         Fixes the problem where Python was holding a reference to the shell,
7186         causing RB not to exit.
7188 2006-03-27  James Livingston  <doclivingston@gmail.com>
7190         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7191         336131.
7193 2006-03-27  James Livingston  <doclivingston@gmail.com>
7195         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7196         From bug 334829.
7198 2006-03-26  James Livingston  <doclivingston@gmail.com>
7200         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7201         library location list to NULL after we free it. Fixes bug 336047.
7203 2006-03-26  James Livingston  <doclivingston@gmail.com>
7205         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7207         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7208         supplies. Fixes bug 335947.
7210 2006-03-25  James Livingston  <doclivingston@gmail.com>
7212         * data/glade/audioscrobbler-prefs.glade:
7213         * shell/rb-audioscrobbler.c:
7214         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7215         "submit songs" checkbox, and make it not disable username/password
7216         entry. This will be needed when we support other last.fm stuff
7217         (profile access, radio, etc).
7219 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7221         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7222         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7223         335777.
7225 2006-03-24  James Livingston  <doclivingston@gmail.com>
7227         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7228         (rb_shell_player_sync_play_order),
7229         (rb_shell_player_play_order_update_cb),
7230         (actually_set_playing_source): update the next/previous availablility
7231         in places where it was missing. Fixes bug 335490.
7233 2006-03-24  James Livingston  <doclivingston@gmail.com>
7235         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7236         can't find the widget
7238         * lib/rb-util.c: (rb_uri_list_parse):
7239         * lib/rb-util.h: add function for parsing a URI list into strings.
7241         * metadata/Makefile.am: make the metdata helper build when linking
7242         with --as-needed
7244         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7245         g_mkdir_with_parents instead of coding our own.
7247         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7248         <itunes:author> over <generator>, instead of using whichever comes
7249         last.
7251         * rhythmdb/rhythmdb-private.h:
7252         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7253         field, as we don't ever check it (to detect corruption). Saves a bit
7254         of memory.
7256 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7258         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7259         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7260         Escape '&' and '=' in the paths we get back from
7261         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7263 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7265         * shell/rb-shell.c: (rb_shell_constructor):
7266         Issue startup notification after creating the main window, so
7267         notification is issued whether the window is visible or not.
7268         Fixes #335086.
7270 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7272         * sources/rb-auto-playlist-source.c: (impl_search),
7273         (rb_auto_playlist_source_query_complete_cb),
7274         (rb_auto_playlist_source_do_query):
7275         * sources/rb-library-source.c: (impl_search),
7276         (rb_library_source_query_complete_cb),
7277         (rb_library_source_do_query):
7278         Defer subset searches (where text is appended to an existing search)
7279         until the original query is complete.
7281 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7283         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7285         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7286         (rb_refstring_get_sort_key): fixes for strict-aliasing
7288 2006-03-21  James Livingston  <jrl@ids.org.au>
7290         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7291         importing a single file. Fixes bug 335307.
7293 2006-03-21  James Livingston  <jrl@ids.org.au>
7295         * shell/Makefile.am: remove the reference to backends/ that I
7296         accidently included.
7298 2006-03-21  James Livingston  <jrl@ids.org.au>
7300         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7301         with Forte (on Solaris). Closes bug 335318.
7303         * configure.ac:
7304         * lib/Makefile.am:
7305         * player/rb-recorder-gst.c:
7306         * podcast/rb-podcast-parse.c:
7307         * remote/bonobo/Makefile.am:
7308         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7309         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7310         (rhythmdb_query_model_add_entry),
7311         (rhythmdb_query_model_add_results):
7312         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7313         * rhythmdb/rhythmdb.h:
7314         * shell/Makefile.am:
7315         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7316         (update_speed_combobox):
7317         * sources/rb-sourcelist-model.c:
7319 2006-03-21  James Livingston  <jrl@ids.org.au>
7321         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7323         * player/Makefile.am:
7324         * shell/Makefile.am: work correctly with a separate build root.
7326 2006-03-21  James Livingston  <jrl@ids.org.au>
7328         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7329         get handed NULL.
7331 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7333         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7334         Only create ignore entries when importing into the library.  
7335         Ignore entries for files in removable media sources don't help.
7337 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7339         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7340         * shell/rb-source-header.h:
7341         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7342         * widgets/rb-search-entry.h:
7343         Add functions to make the search box grab focus.
7345         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7346         Focus the search box after handling the 'view all' action.
7348 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7350         * rhythmdb/rhythmdb.h:
7351         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7352         (rhythmdb_execute_multi_stat_info_cb),
7353         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7354         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7355         (action_thread_main):
7356         Collect all the get_file_info requests on startup into one gnome-vfs
7357         job to reduce overhead and avoid contention for the rhythmdb lock.
7358         Add a new method to call when all initial query models are set up.
7359         
7360         * shell/rb-shell.c: (idle_handle_load_complete):
7361         Call rhythmdb startup complete function when we've loaded all the
7362         playlists.  Fixes #334106.
7364 2006-03-20  James Livingston  <jrl@ids.org.au>
7366         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7367         (rb_entry_view_selection_changed_cb),
7368         (rb_entry_view_have_complete_selection): make has_complete_selection
7369         not slow. Fixes a performance issue I added a week or so ago.
7371 2006-03-20  James Livingston  <jrl@ids.org.au>
7373         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7374         before passing to strcmp. From bug 334559.
7376 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7378         * configure.ac:
7379         * lib/Makefile.am:
7380         * lib/rb-proxy-config.c:
7381         * lib/rb-proxy-config.h:
7382         Add a new object to watch the HTTP proxy configuration and emit
7383         signals when it changes.
7385         * shell/rb-audioscrobbler.c:
7386         * shell/rb-audioscrobbler.h:
7387         Use rb-proxy-config to watch HTTP proxy configuration.
7389         * shell/rb-shell.c:
7390         Construct rb-proxy-config object on startup, and remove all
7391         audioscrobbler references.
7393         * shell/Makefile.am:
7394         * plugins/audioscrobbler/Makefile.am:
7395         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7396         Move all audioscrobbler code into the plugin.  We should move
7397         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7398         point.  Don't use a private data structure in the plugin, since the
7399         class definition isn't in a header file.  Fixes #335091.
7401 2006-03-20  James Livingston  <jrl@ids.org.au>
7403         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7404         don't enable Next if the source has an EOS type other than
7405         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7407 2006-03-20  James Livingston  <jrl@ids.org.au>
7409         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7410         (rb_song_info_forward_clicked_cb): deal with there being no
7411         next/previous entry.
7413         (rb_song_info_query_model_inserted_cb),
7414         (rb_song_info_query_model_deleted_cb),
7415         (rb_song_info_query_model_reordered_cb),
7416         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7417         to update the button status. Fixes bug 333293.
7419 2006-03-20  James Livingston  <jrl@ids.org.au>
7421         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7422         caused by my last commit
7424 2006-03-20  James Livingston  <jrl@ids.org.au>
7426         * bindings/python/Makefile.am:
7427         * bindings/python/rb.defs:
7428         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7430         * shell/rb-shell.c: (rb_shell_constructor),
7431         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7432         tray-icon detection slightly
7434 2006-03-19  Steve Frécinaux  <steve@istique.net>
7436         * data/ui/rhythmbox-ui.xml:
7437         * shell/rb-shell.c:
7439         Add an empty Tool Menu (hidden by default) containing placeholders for
7440         plugins.
7442         * configure.ac:
7443         * plugins/Makefile.am:
7444         * plugins/pythonconsole/Makefile.am:
7445         * plugins/pythonconsole/pythonconsole.py:
7446         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7447         
7448         Python Console plugin
7450 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7452         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7453         Extra step to encode '&' and '=' to match what gnome-vfs does
7454         internally.
7455         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7456         (rhythmdb_tree_save):
7457         Increment rhythmdb xml version to 1.2, and force another uri
7458         re-canonicalisation when loading v1.1 databases.
7459         Fixes bug #333998.
7461 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7463         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7464         (avahi_client_init), (browse_cb):
7465         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7466         (avahi_client_init):
7467         Fix compilation with Avahi 0.5.x (bug #334551).
7469 2006-03-19  James Livingston  <jrl@ids.org.au>
7471         Add Increase/Decrease Volume menu items and keybindings. From bug
7472         123383.
7474         * data/ui/rhythmbox-ui.xml:
7475         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7476         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7477         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7479 2006-03-19  James Livingston  <jrl@ids.org.au>
7481         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7483         * shell/Makefile.am: fix the link order, so that we compile with
7484         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7486 2006-03-19  James Livingston  <jrl@ids.org.au>
7488         patch by: Adam Petaccia  <adam@tpetaccia.com>
7490         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7491         plugins". Fixes bug 335037.
7493 2006-03-18  James Livingston  <jrl@ids.org.au>
7495         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7496         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7497         332992.
7499         * widgets/rb-header.c: don't make artist/album info in the header the
7500         small size, since it's hard to read.
7502 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7504         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7505         (rhythmdb_finalize): Don't leak the hash tables.
7506         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7507         (rhythmdb_commit_internal): Make sure to process the deletions.
7508         (rhythmdb_entry_delete): Use a hash.
7510         * podcast/rb-podcast-manager.c: Random analness about char*
7511         (rb_podcast_manager_remove_feed): Add debugging.
7512         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7513         the result of gnome_vfs_unlink.  Don't leak a uri.
7515         Fixes #334786
7517 2006-03-18  James Livingston  <jrl@ids.org.au>
7519         * NEWS: update NEWS file
7521 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7523         * rhythmdb/rhythmdb-property-model.c:
7524         (rhythmdb_property_model_prop_changed_cb):
7525         Remove entries from the hash table after processing visible->hidden
7526         changes.
7528 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7530         * sources/rb-daap-source.c (connection_connected_cb) 
7531         (connection_disconnected_cb): Add debug.
7532         (rb_daap_source_get_headers): Check for NULL connection.
7534         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7535         Check return value of rb_daap_source_get_headers.
7537         Fixes #332089
7539 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7541         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7542         Restore the selection after rebuilding the child model, so the
7543         selection is shown correctly after using the 'browse this
7544         album/artist/genre' menu items.
7546 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7548         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7549         Clear the selection before changing the active model.
7550         Fixes crash reported in bug 334549.
7552 2006-03-15  James Livingston  <jrl@ids.org.au>
7554         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7555         (rb_tray_icon_sync_action):
7556         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7557         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7558         for non-libnotify notification bubbles. Fixes bug 331721.
7560 2006-03-15  James Livingston  <jrl@ids.org.au>
7562         Add search-bar options to playlists. Fixes bug 334407.
7564         * sources/rb-auto-playlist-source.c:
7565         (rb_auto_playlist_source_class_init),
7566         (rb_auto_playlist_source_constructor),
7567         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7568         (search_action_to_prop), (search_action_changed):
7569         * sources/rb-static-playlist-source.c:
7570         (rb_static_playlist_source_class_init),
7571         (rb_static_playlist_source_constructor),
7572         (construct_query_from_selection), (impl_get_search_actions),
7573         (search_action_to_prop), (search_action_changed):
7575 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7577         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7578         Remove broken attempt at making the search bar buttons not
7579         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7581 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7583         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7584         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7586 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7588         * widgets/rb-header.c (rb_header_sync): Escape album and
7589         artist before adding to markup.
7591 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7593         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7594         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7595         (rb_header_set_property), (rb_header_get_property),
7596         (rb_header_sync):
7597         Remove the GnomeUrl song links until we can do it properly.
7598         Fixes #334453.
7600 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7602         * shell/rb-source-header.c: (rb_source_header_clear_search):
7603         Remove the stored search text from the hash table, so it doesn't
7604         reappear after switching to another source and back.
7606         * sources/rb-auto-playlist-source.c: (impl_search):
7607         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7608         * sources/rb-static-playlist-source.c: (impl_search):
7609         Make sure all sources treat impl_search(NULL) and impl_search("") the
7610         same.  Fixes #334525.
7612 2006-03-14  James Livingston  <jrl@ids.org.au>
7614         Store which thread created new entries, and make rhythmdb_commit only
7615         insert the entries for the thread that calls it. This stops one thread
7616         calling rhythmdb_commit inserting entries that are half-way through
7617         construction by another thread (as happens with audio cds). From bug
7618         330226.
7620         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7621         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7622         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7623         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7624         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7625         (rhythmdb_process_metadata_load),
7626         (rhythmdb_process_queued_entry_set_event),
7627         (rhythmdb_prop_get_type):
7629 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7631         * rhythmdb/rhythmdb-query-model.c:
7632         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7633         (rhythmdb_query_model_finalize):
7634         Move object unrefs from _finalize into _dispose.
7635         
7636         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7637         Remove extra g_object_ref that was causing query model leaks.
7638         
7639         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7640         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7641         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7642         Remove the cached 'all' query, since it doesn't really help and it
7643         makes the code more complicated.  Attach the genre property view to
7644         the query model build from the search text, so only genres for
7645         stations matching the search terms are displayed.  Preserve the genre
7646         selection across searches.
7648         * widgets/rb-library-browser.c: 
7649         (rb_library_browser_class_init), (rb_library_browser_get_property):
7650         Add properties for the input and output models for the browser, and
7651         remove the 'changed' signal as we can just use notify::output-model.
7652         (ignore_selection_changes),
7653         (selection_restore_data_destroy), (query_complete_cb),
7654         (restore_selection): Helper functions for preserving selections across
7655         query model rebuilds.
7656         (rebuild_output_model):  New function for creating a query model to
7657         use as the display model for a source using the browser.
7658         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7659         g_object_unrefs, reuse the parent's query model when there's no
7660         selection, and use ignore_selection_changes and restore_selection.
7661         (rb_library_browser_set_selection): rebuild_child_model emits the
7662         changed signal, so no need to do it here.
7663         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7664         ignore_selection_changes and restore_selection. 
7665         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7666         flag to rb_library_browser_set_model indicating whether the query is
7667         asynchronous.
7669         * sources/rb-static-playlist-source.c:
7670         (rb_static_playlist_source_class_init),
7671         (rb_static_playlist_source_dispose):
7672         (rb_static_playlist_source_constructor):  Add an extra reference on
7673         the base model, so it doesn't vanish when we set a new display model
7674         based on a search or browser selection.
7675         (impl_search): Ensure the search_text field in the source is NULL if
7676         the search box is empty.
7677         (construct_query_from_selection),
7678         (rb_static_playlist_source_do_query): Use the query model constructed
7679         from the search as the input model for the browser.
7680         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7681         output model as the query model for the source.
7683         * sources/rb-auto-playlist-source.c:
7684         (rb_auto_playlist_source_finalize): Free more stuff.
7685         (rb_auto_playlist_source_constructor),
7686         (rb_auto_playlist_source_browser_changed_cb):
7687         Update for rb-library-browser changes, use the browser's output query
7688         model as the query model for the source.
7689         (impl_reset_filters), (impl_search), 
7690         (rb_auto_playlist_source_do_query),
7691         (rb_auto_playlist_source_set_query):
7692         Use the query model constructed from the search text as the input to
7693         the library browser, and when adding text to an existing search, apply
7694         the new query to the existing query model.
7695         
7696         * sources/rb-library-source.c: (rb_library_source_dispose):
7697         (rb_library_source_finalize): Chain dispose up to the parent class.
7698         (rb_library_source_constructor): Update for rb-library-browser
7699         changes. 
7700         (impl_search): Ensure search_text is NULL if the search box is empty,
7701         and use the subset flag to _do_query if text has been appended to an
7702         existing search.
7703         (search_action_changed), (impl_reset_filters):
7704         (rb_library_source_browser_changed_cb),
7705         (rb_library_source_do_query): Use the browser's output model as the
7706         query model for the source.
7708         Rework library and playlist sources to use a single query chain,
7709         and to limit the entries shown in property views based on the search
7710         terms.  Fixes bug #322787.
7712 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7714         * configure.ac:  Enable metadata helper by default, and fix a typo.
7716 2006-03-13  James Livingston  <jrl@ids.org.au>
7718         Make RBRefStrings lazily create the folded and sort-key strings when
7719         they are first used. This will same some memory by not creating ones
7720         that are never used, and delaying some of the others to when the user
7721         resorts or performs a similar action. Fixes bug 332992.
7723         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7724         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7725         (rb_refstring_get), (rb_refstring_get_folded),
7726         (rb_refstring_get_sort_key), (rb_refstring_hash),
7727         (rb_refstring_equal):
7728         * rhythmdb/rb-refstring.h:
7729         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7731 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7733         * data/ui/rhythmbox-ui.xml:
7734         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7735         * lib/rb-stock-icons.h:
7736         * shell/rb-shell-player.c:
7737         * shell/rb-shell.c: (rb_shell_constructor):
7738         * shell/rb-source-header.c: (force_no_shadow),
7739         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7740         (rb_source_header_class_init), (rb_source_header_init),
7741         (merge_source_ui_cb), (toolbar_set_homogeneous),
7742         (rb_source_header_set_source_internal),
7743         (rb_source_header_set_property), (rb_source_header_get_property),
7744         (rb_source_header_set_source), (rb_source_header_new),
7745         (rb_source_header_filter_changed_cb):
7746         * shell/rb-source-header.h:
7747         * sources/rb-library-source.c: (rb_library_source_class_init),
7748         (rb_library_source_init), (search_action_to_prop),
7749         (search_action_changed), (rb_library_source_constructor),
7750         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7751         (construct_query_from_selection):
7752         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7753         (rb_podcast_source_init), (search_action_to_prop),
7754         (search_action_changed), (rb_podcast_source_constructor),
7755         (construct_query_from_selection), (impl_get_ui_actions),
7756         (impl_get_search_actions):
7757         * sources/rb-source.c: (rb_source_class_init),
7758         (rb_source_get_ui_actions), (default_get_search_actions),
7759         (rb_source_get_search_actions):
7760         * sources/rb-source.h:
7762         Add a search bar.  Fixes #328618
7764 2006-03-12  James Livingston  <jrl@ids.org.au>
7766         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7767         * shell/main.c: (main): make --no-update not stat files checking for
7768         changes, instead of doing nothing. Fixes bug 125177.
7770 2006-03-12  James Livingston  <jrl@ids.org.au>
7772         * podcast/rb-podcast-manager.c:
7773         (rb_podcast_manager_thread_parse_feed):
7774         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7775         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7776         having an invalid mime-type. Fixed bug 329813.
7778 2006-03-12  James Livingston  <jrl@ids.org.au>
7780         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7781         Finally lets us close bug 309609.
7783         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7784         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7785         0.10
7787         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7788         inverted logic of the editable check.
7790 2006-03-12  James Livingston  <jrl@ids.org.au>
7792         Make API doc generation work again. Fixes bug 334276.
7794         * doc/reference/Makefile.am:
7795         * doc/reference/tmpl/rb-debug.sgml:
7796         * doc/reference/tmpl/rb-druid.sgml:
7797         * doc/reference/tmpl/rb-entry-view.sgml:
7798         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7799         * doc/reference/tmpl/rb-metadata.sgml:
7800         * doc/reference/tmpl/rb-shell.sgml:
7801         * doc/reference/tmpl/rhythmbox-unused.sgml:
7802         * doc/reference/tmpl/rhythmdb.sgml:
7804 2006-03-12  James Livingston  <jrl@ids.org.au>
7806         * shell/rb-shell-clipboard.c:
7807         (rb_shell_clipboard_set_source_internal),
7808         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7809         it doesn't have one. Fixes bug 331673.
7811         * sources/rb-source.c: (rb_source_class_init): provide a default
7812         have_url implementation that returns FALSE.
7814 2006-03-12  James Livingston  <jrl@ids.org.au>
7816         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7817         doing a distclean. Fixes bug 334221.
7820         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7822         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7824 2006-03-11  James Livingston  <jrl@ids.org.au>
7826         * shell/rb-shell.c: (rb_shell_window_state_cb),
7827         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7828         update the window width/height when iconified. Stops the window
7829         changing size when it is restored from the tray, fixing bug 333824. 
7831 2006-03-11  James Livingston  <jrl@ids.org.au>
7833         Try to get cvs to actually add the necessary files for plugin support
7835 2006-03-11  James Livingston  <jrl@ids.org.au>
7837         Add a plugin framework, with basic support for Python plugins (based
7838         on gedit's). Closes bug 330523.
7840         * Makefile.am:
7841         * shell/Makefile.am:
7842         * configure.ac: necessary autofoo.
7844         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7846         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7847         * lib/rb-file-helpers.h:
7849         * data/glade/plugins/glade:
7850         * lib/rb-preferences.h:
7851         * plugins/*:
7852         * bindings/*: plugin framework
7854         * plugins/sample/*:
7855         * plugins/sample-python/*: sample plugins
7857         * plugins/audioscrobbler/*:
7858         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7859         (rb_audioscrobbler_set_property),
7860         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7861         submission into a plugin. shell/audioscrobbler.* should really be
7862         moved, but that sucks with cvs.
7864         * shell/rb-shell.h:
7865         * shell/rb-shell.c: (rb_shell_constructor),
7866         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7867         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7868         (rb_shell_quit): start and stop plugin framework.
7870 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7872         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7873         (rhythmdb_entry_delete):
7874         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7875         immediately, so we can't get change notifications afterwards.  
7876         Fixes #331732.
7877         (rhythmdb_process_metadata_load): Add a commit after removing an
7878         entry so we can recreate it with a different type without getting
7879         confused.
7881 2006-03-11  James Livingston  <jrl@ids.org.au>
7883         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7884         use the drive name for audio CDs, use "Unknown CD".
7886 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7888         patch by:  James Henstridge  <james@jamesh.id.au>
7890         * sources/rb-removable-media-source.c:
7891         (rb_removable_media_source_constructor):
7892         Get the device name from the GnomeVFSDrive if possible,
7893         since this is usually a more descriptive name.  Fixes #333080.
7895 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7897         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7899         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7900         Don't automatically download episodes when configured for manual
7901         updating.  Fixes #331564.
7903 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7905         * rhythmdb/rhythmdb-property-model.c:
7906         (rhythmdb_property_model_iter_from_string):
7907         Return an iterator for the 'all' property when name == NULL,
7908         and don't write to *iter if iter == NULL.
7910 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7912         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7913         When switching to the play queue, still call _go_next on the normal
7914         play order, so self-emptying auto playlists ("play count = 0" etc.)
7915         don't restart once the queue is empty.
7917         * shell/rb-tray-icon.c:
7918         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7919         with 'next'.
7921 2006-03-05  James Livingston  <jrl@ids.org.au>
7923         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7924         don't submit tracks which could not be played. Fixed bug 333013.
7926         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7927         tracks which could not be played.
7929 2006-03-05  James Livingston  <jrl@ids.org.au>
7931         Sync musicbrainz lookup code from Sound-Juicer cvs.
7933         * metadata/sj-metadata-musicbrainz.c:
7934         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7935         (get_offline_track_listing), (artist_and_title_from_title),
7936         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7937         (mb_list_albums), (mb_get_submit_url):
7938         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7939         * metadata/sj-metadata.h:
7940         * metadata/sj-structures.c: (track_details_free),
7941         (album_details_free):
7942         * metadata/sj-structures.h:
7944 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7946         * lib/rb-debug.h:
7947         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7948         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7949         (rb_profiler_reset), (rb_profiler_free):
7950         Filter debug output by matching the file and function names against a
7951         match string.
7953         * shell/main.c: (main):
7954         Add -D command line option to specify the debug match string.
7956         * shell/rb-removable-media-manager.c:
7957         (rb_removable_media_manager_mount_volume):
7958         Fix some typos in debug output.
7960 2006-03-03  James Livingston  <jrl@ids.org.au>
7962         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7963         * shell/rb-shell.c: (rb_shell_load_uri):
7964         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7965         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7966         use the new "recurse" property from totem-plparser, if present. Stop
7967         RB hanging for new users who don't have a 'net connection. From bug
7968         331508.
7970 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7972         * shell/rb-removable-media-manager.c:
7973         (rb_removable_media_manager_mount_volume):
7974         * sources/Makefile.am:
7975         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7976         Fix missing files on make dist (conditional files), only build the
7977         N770 support if there's HAL support, as we have no other ways of
7978         detecting it
7980 2006-03-03  James Livingston  <jrl@ids.org.au>
7982         * shell/rb-shell-clipboard.c:
7983         (rb_shell_clipboard_set_source_internal): really fix it this time.
7984         hopefully.
7986 2006-03-03  James Livingston  <jrl@ids.org.au>
7988         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7989         with the idle function not being removed.
7991 2006-03-02  James Livingston  <jrl@ids.org.au>
7993         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7994         * widgets/rb-entry-view.h: add function for determining whether all
7995         entries are selected.
7997         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7998         (rb_shell_clipboard_set_source_internal),
7999         (rb_shell_clipboard_finalize),
8000         (rb_shell_clipboard_idle_poll_deletions),
8001         (rb_shell_clipboard_entryview_changed_cb),
8002         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8003         removals, to update things.
8005         (rb_shell_clipboard_sync): update the Select All and Select None
8006         sensitivity, based on what is selected. Fixed bug 172220.
8008 2006-03-02  James Livingston  <jrl@ids.org.au>
8010         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8011         restore the selections of later models. This means that selecting the
8012         artist for the selected album does not reset the album selection.
8014 2006-03-02  James Livingston  <jrl@ids.org.au>
8016         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8017         Stops it emitting critical warnings.
8019 2006-03-02  James Livingston  <jrl@ids.org.au>
8021         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8022         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8023         second fragment is already escaped.
8025         * sources/rb-generic-player-source.c:
8026         (rb_generic_player_source_class_init),
8027         (rb_generic_player_source_constructor), (impl_show_popup),
8028         (rb_generic_player_source_load_playlists),
8029         (rb_generic_player_source_transform_playlist_uri),
8030         (handle_playlist_entry_cb), (visit_playlist_dirs),
8031         (default_load_playlists), (default_transform_playlist_uri):
8032         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8033         the device. Allow subclasses to override the playlist loading, and
8034         (playlist uri)->(actual uri) mapping. A lot of devices which have
8035         playlists won't work right now, but people will see them and hopefully
8036         file bugs.
8038         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8039         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8040         
8041         * sources/Makefile.am:
8042         + sources/rb-nokia770-source.{c,h}:
8043         * shell/rb-removable-media-manager.c:
8044         (rb_removable_media_manager_mount_volume): Add support for reading
8045         playlists of Nokia 770s.
8047 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8049         * data/glade/podcast-properties.glade:
8050         * podcast/rb-podcast-properties-dialog.c:
8051         (rb_podcast_properties_dialog_init),
8052         (rb_podcast_properties_dialog_update),
8053         (rb_podcast_properties_dialog_update_location),
8054         (rb_podcast_properties_dialog_update_download_location):
8055         Add 'download location' field showing the path to the downloaded copy.
8056         Fixes #330696.
8058 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8060         * configure.ac: simplify HAVE_HAL define
8062 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8064         * configure.ac:
8065         * lib/rb-file-helpers.c: (rb_uri_append_path):
8066         * lib/rb-file-helpers.h:
8067         * shell/rb-removable-media-manager.c:
8068         (rb_removable_media_manager_mount_volume):
8069         * sources/Makefile.am:
8070         * sources/rb-ipod-source.c:
8071         * sources/rb-psp-source.*:
8072         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8073         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8075 2006-03-02  James Livingston  <jrl@ids.org.au>
8077         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8078         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8079         (swap_playing_source), (rb_shell_player_playpause),
8080         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8081         (rb_shell_player_set_playing_source_internal): check for the entry
8082         view being NULL before trying to use it. Lets us support sources which
8083         don't have an entry view. From bug 331673.
8085 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8087         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8088         use gnome_vfs_read_entire_file with a URI, not a local filename
8090 2006-03-01  James Livingston  <jrl@ids.org.au>
8092         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8093         first-seen and last-seen when merging duplicate entries.
8095 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8097         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8098         * widgets/rb-property-view.h:  New function, allowing custom 
8099         interactive search functions for property views.
8100         
8101         * sources/rb-podcast-source.c: 
8102         (feed_select_change_cb): Only do a new query when the selection
8103         actually changes.
8104         (rb_podcast_source_constructor),
8105         (rb_podcast_source_feed_title_search_func):
8106         Interactive search function for podcast feed titles.  Fixes #327451.
8108 2006-03-01  James Livingston  <jrl@ids.org.au>
8110         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8111         the uri in the callback, since it causes symbols to not be escaped.
8112         Fixes bug 332976.
8114         * data/ui/rhythmbox-ui.xml:
8115         * sources/rb-import-errors-source.c:
8116         (rb_import_errors_source_class_init),
8117         (rb_import_errors_source_constructor), (impl_get_status),
8118         (impl_move_to_trash),
8119         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8120         import errors source
8121         
8122         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8123         (rb_entry_view_append_column): unescape the URI for display.
8125 2006-03-01  James Livingston  <jrl@ids.org.au>
8127         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8128         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8129         function fails.
8131 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8133         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8134         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8135         * sources/rb-play-queue-source.c:
8136         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8137         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8138         of "Queued Songs".
8140         Fixes #331637.
8142 2006-03-01  James Livingston  <jrl@ids.org.au>
8144         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8145         Fixes bug 332913.
8147 2006-03-01  James Livingston  <jrl@ids.org.au>
8149         * daapsharing/rb-daap-mdns-browser-howl.c:
8150         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8151         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8152         (rb_daap_mdns_publisher_class_init),
8153         (rb_daap_mdns_publisher_finalize):
8154         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8155         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8156         (rb_recorder_finalize):
8157         * rhythmdb/rhythmdb-query-model.c:
8158         (rhythmdb_query_model_constructor):
8159         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8160         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8161         * sources/rb-playlist-source-recorder.c:
8162         (rb_playlist_source_recorder_style_set),
8163         (rb_playlist_source_recorder_class_init),
8164         (rb_playlist_source_recorder_finalize):
8165         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8166         other classes in the same way, so they don't break when derived from.
8168 2006-03-01  James Livingston  <jrl@ids.org.au>
8170         * sources/rb-generic-player-source.c:
8171         (rb_generic_player_source_constructor): don't get the parent class in
8172         a dumb way, and it breaks when the class is derived from.
8174 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8176         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8178 2006-03-01  James Livingston  <jrl@ids.org.au>
8180         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8181         not work in glib 2.8 systems.
8183 2006-03-01  James Livingston  <jrl@ids.org.au>
8185         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8186         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8187         say it is crap.
8189         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8190         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8191         podcasts on ion-local places
8193         * rhythmdb/gsequence.c: (g_sequence_node_new),
8194         (g_sequence_node_free): use gslice if we are building against glib
8195         2.10.
8197         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8198         local files too, so it doesn't block.
8200 2006-02-28  James Livingston  <jrl@ids.org.au>
8202         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8203         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8204         stats the file. Stops the UI blocking while stats are done.
8206 2006-02-28  James Livingston  <jrl@ids.org.au>
8208         * sources/rb-static-playlist-source.c:
8209         (rb_static_playlist_source_class_init),
8210         (rb_static_playlist_source_constructor), (impl_reset_filters),
8211         (impl_get_property_views), (impl_browser_toggled),
8212         (rb_static_playlist_source_do_query),
8213         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8214         playlists. From bug 118862.
8216         * sources/rb-play-queue-source.c:
8217         (rb_play_queue_source_class_init): disable them for the play queue.
8219 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8221         * data/glade/library-prefs.glade:  Add a mnemonic.
8222         * sources/rb-library-source.c:
8223         (rb_library_source_location_button_clicked_cb):  Use title
8224         capitalization for window title.
8226 2006-02-28  James Livingston  <jrl@ids.org.au>
8228         * sources/rb-auto-playlist-source.c:
8229         (construct_query_from_selection): don't create a subquery for only one
8230         criteria, as it's a silly effifiency degredation.
8232 2006-02-28  James Livingston  <jrl@ids.org.au>
8234         * rhythmdb/rhythmdb.h:
8235         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8236         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8237         saved to disk
8239         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8240         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8241         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8242         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8243         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8244         This will make importing files quicker as we don't need to try files
8245         that we know are not going to be interesting - especially useful when
8246         using the library watching facility.
8248         Fixes bug 323179.
8250 2006-02-28  James Livingston  <jrl@ids.org.au>
8252         * shell/rb-shell.c: (rb_shell_constructor),
8253         (rb_shell_set_visibility): fix browser and source-list pane
8254         positioning, that I broke with the "remember visibility" patch.
8256 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8258         * metadata/rb-metadata-dbus-service.c: (main):
8259         Change argument handling so you can use --debug with the --load and
8260         --can-save test modes.
8261         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8262         Use a separate GMainContext, not the default one.  Probably fixes
8263         #332344.
8265 2006-02-27  James Livingston  <jrl@ids.org.au>
8267         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8268         first starting up. Fixes bug 330342.
8270 2006-02-27  James Livingston  <jrl@ids.org.au>
8272         * sources/rb-sourcelist-model.c:
8273         (rb_sourcelist_model_set_dnd_targets):
8274         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8275         COPY action for draging sources and tracks, not MOVE as well. Stops
8276         Nautilus moving file away, and fixes bug 332488.
8278 2006-02-27  James Livingston  <jrl@ids.org.au>
8280         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8282         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8283         and Last Played metadata off iPods. Closes bug 324648.
8285 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8287         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8288         Disable audioscrobbler when run with the --no-registration flag, since
8289         last.fm doesn't allow multiple concurrent clients per user.
8291 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8293         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8294         Rename renamable sources when F2 is pressed when the sourcelist has
8295         focus.  Fixes #330700.
8297 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8299         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8300         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8301         (rb_playlist_manager_cmd_edit_automatic_playlist):
8302         Fix various crashes when deleting auto playlists previously edited
8303         by disconnecting signal handlers when the query editor is closed or
8304         the playlist is deleted.
8306 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8308         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8309         removed load failure dialog, and actually use the friendly file type
8310         name in error messages.
8312 2006-02-24  James Livingston  <jrl@ids.org.au>
8314         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8316         * sources/rb-library-source.c:
8317         (rb_library_source_location_button_clicked_cb),
8318         (rb_library_source_preferences_sync),
8319         (rb_library_source_library_location_cb): convert the library URI to
8320         for display, and back again. Fixes bug 332356.
8322 2006-02-23  James Livingston  <jrl@ids.org.au>
8324         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8325         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8326         (rhythmdb_sync_library_location): don't monitor files at all if
8327         watching is turned off. From bug 323096.
8329 2006-02-23  James Livingston  <jrl@ids.org.au>
8331         * data/rhythmbox.schemas:
8332         * lib/rb-preferences.h:
8333         * shell/rb-shell.c: (rb_shell_constructor),
8334         (rb_shell_set_visibility): remember main window visibility between
8335         sessions. Fixes bug 127320.
8337 2006-02-23  James Livingston  <jrl@ids.org.au>
8339         * data/glade/library-prefs.glade:
8340         * sources/rb-library-source.c: (impl_get_config_widget),
8341         (rb_library_source_location_button_clicked_cb),
8342         (rb_library_source_preferences_sync),
8343         (rb_library_source_library_location_cb),
8344         (rb_library_source_watch_toggled_cb): change the library-location
8345         widgets from the file-chooser drop menu to a text entry and Browse
8346         button. This is needed to prevent the location from chaning if the
8347         directory cannot be found. Fixes bug 328414.
8349 2006-02-23  James Livingston  <jrl@ids.org.au>
8351         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8352         item. Fixes bug 329042.
8354 2006-02-23  James Livingston  <jrl@ids.org.au>
8356         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8358         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8359         comma in some podcast feeds. Fixes bug 332194.
8361 2006-02-23  James Livingston  <jrl@ids.org.au>
8363         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8364         lower priority.
8366         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8367         the internal audio cd URIs from "cdda://device:track" to
8368         "cdda://track#device" as it makes processing much easier.
8370         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8371         * player/rb-player-gst.c: don't have the shell close the player
8372         between songs, as doing that should be backend-specific. Make the
8373         gstreamer backend close before starting a new track, unless the old
8374         and new ones are both tracks on the same audio cd. Just seek in that
8375         case.
8377 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8379         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8381 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8383         * configure.ac: Enable more warnings in my stupid setup too.
8384         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8385         #332210.
8387 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8389         * sources/rb-missing-files-source.h,
8390         * sources/rb-missing-files-source.c,
8391         * sources/rb-import-errors-source.h,
8392         * sources/rb-import-errors-source.c:
8393         Add library meta-sources, showing missing files and import errors.
8394         Fixes #167763, #142322.
8396         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8397         * sources/rb-sourcelist-model.h:
8398         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8399         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8400         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8401         (visibility_notify_cb):
8402         Store source visibility in the sourcelist model, so we can determine
8403         child source counts correctly and get the sourcelist expander column
8404         right.
8405         
8406         * widgets/rb-entry-view.h:
8407         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8408         (rb_entry_view_append_column), (set_column_visibility):
8409         Allow the creator of the entry view to specify which columns are
8410         always visible.
8412         * sources/rb-source.h:
8413         * sources/rb-source.c: (_autohide_update_visibility),
8414         (_rb_autohide_source_row_deleted_cb),
8415         (_rb_autohide_source_row_inserted_cb),
8416         (_rb_source_hide_when_empty):
8417         Allow sources to automatically hide themselves when empty.
8418         
8419         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8420         * sources/rb-library-source.c: (rb_library_source_constructor):
8421         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8422         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8423         Explicitly specify which columns are always visible.
8424         
8425         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8426         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8427         Remove load error signal handling and load failure dialog.
8428         Create missing files and import errors sources for the library.
8430         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8431         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8432         Create DB entries for import errors rather than emitting the 'load
8433         error' signal; mark loaded entries visible.
8434         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8435         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8436         (rhythmdb_prop_get_type): Store string form of last seen time for
8437         hidden entries, since it's used in the missing files source.
8438         (rhythmdb_entry_import_error_get_type): 
8439         Add entry type for import errors.
8440         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8441         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8442         (rhythmdb_entry_move_to_trash_set_error),
8443         (rhythmdb_entry_move_to_trash):  
8444         Correct spelling, add missing rhythmdb_commit.
8445         * rhythmdb/rhythmdb.h:  
8446         Add import error entry type and last seen string property.
8447         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8448         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8449         (save_entry):  Ignore string form of 'last seen' property.
8451         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8452         Don't try to play hidden entries or import error entries.
8454         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8455         * sources/Makefile.am: Add meta-source files
8456         * widgets/Makefile.am: Remove load failure dialog files
8458 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8460         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8461         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8462         few bits and pieces.
8464 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8466         * metadata/test-metadata.c: (load_metadata_cb):
8467         Fix compile warning for ignoring return value from getcwd, #332064.
8469 2006-02-21  James Livingston  <jrl@ids.org.au>
8471         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8472         (edit_auto_playlist_deleted_cb),
8473         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8474         playlist editor non-modal. Fixes bug 320030.
8476 2006-02-21  James Livingston  <jrl@ids.org.au>
8478         * shell/rb-shell.c: (rb_shell_constructor):
8479         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8480         (rb_header_set_show_artist_album):
8481         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8482         (rb_song_display_box_sync): make the queue sidebar and song display
8483         not get affected by gtk_widget_show_all. Fixes bug 332001.
8485 2006-02-21  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): add support for
8490         feeds which use timezone names instead of offsets. Doesn't actually
8491         parse the timezone name since they are not standardised. Fixes bug
8492         331691.
8494 2006-02-21  James Livingston  <jrl@ids.org.au>
8496         * help/C/figures/rb-notification-area.png:
8497         * help/C/figures/rb-sidebar.png:
8498         * help/C/quick-reference.xml: remove obsolete files from CVS.
8500         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8501         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8502         (rhythmdb_query_free), (rhythmdb_query_serialize),
8503         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8504         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8506         * widgets/rb-query-creator-properties.c: add prefix and suffix
8507         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8508         doesn't escape the ':' separator in uris.
8510 2006-02-21  James Livingston  <jrl@ids.org.au>
8512         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8513         on startup.
8515 2006-02-21  James Livingston  <jrl@ids.org.au>
8517         * NEWS: update with recent changes
8519 2006-02-21  James Livingston  <jrl@ids.org.au>
8521         * shell/rb-shell.c: (rb_shell_constructor),
8522         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8523         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8524         (rb_druid_browse_clicked_cb), (do_response):
8525         * widgets/rb-druid.h: Make running the druid not block RBShell
8526         starting up. This is required so that bonobo registration doesn't time
8527         out. Fixed bug 318766.
8529 2006-02-21  James Livingston  <jrl@ids.org.au>
8531         * rhythmdb/rhythmdb-property-model.c:
8532         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8533         hash table after using it, not before. Fixed bug 331922.
8535 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8537         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8538         (rb_shell_view_queue_as_sidebar_changed_cb):
8539         When playing from the queue, only attempt to highlight the queue
8540         source in the source list if it's actually visible there.  Otherwise,
8541         leave the preempted source highlighted.  Mostly fixes #330819.
8543 2006-02-20  James Livingston  <jrl@ids.org.au>
8545         * rhythmdb/rhythmdb-property-model.c:
8546         (rhythmdb_property_model_row_inserted_cb),
8547         (rhythmdb_property_model_prop_changed_cb),
8548         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8549         store the roperty value in the entry-mapping table, so that receiving
8550         the remove signal from a query model before we get notified of a
8551         change doesn't cause a crash. Fixes bug 331770.
8553 2006-02-20  James Livingston  <jrl@ids.org.au>
8555         * data/ui/rhythmbox-ui.xml:
8556         * sources/rb-play-queue-source.c:
8557         (rb_play_queue_source_class_init),
8558         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8559         playlist things in the queue popup source. From 330490.
8561         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8562         previous commit
8564 2006-02-20  James Livingston  <jrl@ids.org.au>
8566         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8567         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8568         attempt to sync data for non-editable entries when using
8569         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8570         331762.
8572 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8574         * .cvsignore:
8575         * Makefile.am:
8576         * autogen.sh:
8577         * configure.ac:
8578         * help/.cvsignore:
8579         * help/Makefile.am: ported to gnome-doc-utils
8580         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8581         * help/ChangeLog: added, for translators
8582         * help/C/rhytmbox-C.omf: removed, no longer used
8583         Know issue: figures are installed, but some are not showed; manual
8584         description added, but not showed in Yelp while browsing. I'll
8585         investigate, maybe are needed some little changes to
8586         help/C/rhythmbox.xml.
8588 2006-02-20  James Livingston  <jrl@ids.org.au>
8590         * data/ui/rhythmbox-ui.xml:
8591         * help/C/figures/rb-adv.png:
8592         * help/C/figures/rb-asst-finish.png:
8593         * help/C/figures/rb-asst-library.png:
8594         * help/C/figures/rb-asst-start.png:
8595         * help/C/figures/rb-basic.png:
8596         * help/C/figures/rb-browser.png:
8597         * help/C/figures/rb-context-menu.png:
8598         * help/C/figures/rb-empty.png:
8599         * help/C/figures/rb-full-play.png:
8600         * help/C/figures/rb-group-auto.png:
8601         * help/C/figures/rb-group-create.png:
8602         * help/C/figures/rb-group.png:
8603         * help/C/figures/rb-imported.png:
8604         * help/C/figures/rb-iradio-add.png:
8605         * help/C/figures/rb-iradio.png:
8606         * help/C/figures/rb-nextprev.png:
8607         * help/C/figures/rb-nobrowse-play.png:
8608         * help/C/figures/rb-notification-area-menu.png:
8609         * help/C/figures/rb-player.png:
8610         * help/C/figures/rb-prefs-general.png:
8611         * help/C/figures/rb-prefs-ipod.png:
8612         * help/C/figures/rb-prefs-library.png:
8613         * help/C/figures/rb-prefs.png:
8614         * help/C/figures/rb-repeat.png:
8615         * help/C/figures/rb-search.png:
8616         * help/C/figures/rb-shuffle.png:
8617         * help/C/figures/rb-stats.png:
8618         * help/C/figures/rb-toolbar-editor.png:
8619         * help/C/figures/rb-volume-mute.png:
8620         * help/C/figures/rhythmbox-group.png:
8621         * help/C/figures/rhythmbox-tray-icon.png:
8622         * help/C/user-guide.xml: remove old stuff from cvs
8624 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8626         * metadata/rb-metadata-dbus-client.c: 
8627         * metadata/rb-metadata-dbus-service.c:
8628         * metadata/rb-metadata-dbus.c:
8629         * metadata/rb-metadata-dbus.h:
8630         New files, adding an external service for reading and writing
8631         metadata, and an implementation of the RBMetaData interface that uses
8632         dbus to communicate with it.
8633         
8634         * metadata/rb-metadata.h,
8635         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8636         (rb_metadata_get_field_name): Put metadata details in a static array
8637         instead of using a hash table, and add a field for language code (not
8638         used for anything)
8639         * metadata/rb-metadata-gst.c: Updates for changes in
8640         rb-metadata-common.c, fix signal handler closure leak for the typefind
8641         element's have-type signal, and add XML to the list of types we ignore.
8642         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8643         Update for changes to rb_metadata_get_field_type
8644         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8645         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8646         here and there.
8647         
8648         * configure.ac: Add --enable-metadata-helper option (not enabled by
8649         default) to use the external metadata service
8650         * metadata/Makefile.am: Add new files
8651         * metadata/test-metadata.c:  Test program for the metadata service
8653         Fixes #329597. 
8655 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8657         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8658         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8659         (rb_podcast_source_cmd_new_podcast):
8660         Move 'new podcast' action to the podcast source, and add it to the
8661         toolbar.  Fixes #331562.
8663 2006-02-19  James Livingston  <jrl@ids.org.au>
8665         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8666         menus, and away from move-to-trash. Fixes bug 331013.
8668 2006-02-19  James Livingston  <jrl@ids.org.au>
8670         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8671         when deleting last entry. Fixes bug 331712.
8673 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8675         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8676         (rb_entry_view_button_press_cb):
8677         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8678         anywhere, and include a flag indicating whether the click was over an
8679         entry or not.
8680         
8681         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8682         (rb_playlist_source_songs_show_popup_cb):
8683         * sources/rb-playlist-source.h:
8684         Add the 'over entry' flag to the class show popup method, and in the
8685         default handler, ignore right clicks when not over an entry.
8686         
8687         * sources/rb-iradio-source.c:
8688         (rb_iradio_source_songs_show_popup_cb):
8689         * sources/rb-library-source.c:
8690         (rb_library_source_songs_show_popup_cb):
8691         * sources/rb-podcast-source.c:
8692         (rb_podcast_source_songs_show_popup_cb):
8693         Show the source list popup menu when right clicked while not over an
8694         entry.
8696         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8697         For the queue sidebar, always display the popup so the 'clear queue'
8698         action is available regardless of where you click.  For the queue
8699         source, only display the popup when right clicked over an entry.
8700         Fixes #331392.
8702 2006-02-19  James Livingston  <jrl@ids.org.au>
8704         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8705         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8706         entry view, when we're not even using it
8708         * rhythmdb/rhythmdb-property-model.c:
8709         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8710         function, rather than a copy of the code.
8712         * shell/rb-playlist-manager.c:
8713         (rb_playlist_manager_playlist_row_inserted_cb),
8714         (rb_playlist_manager_set_source_internal),
8715         (rb_playlist_manager_playlist_entries_changed): use the query-model
8716         directly, rather than the source's entry view.
8718         * shell/rb-source-header.c: don't use the entry view, just select the
8719         source widget.
8721 2006-02-18  James Livingston  <jrl@ids.org.au>
8723         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8725         * help/C/figures/rb-iradio-main.png:
8726         * help/C/figures/rb-notification-area-menu.png:
8727         * help/C/figures/rb-notification-window.png:
8728         * help/C/figures/rb-notification-zone.png:
8729         * help/C/figures/rb-podcast-main.png:
8730         * help/C/figures/rb-statusbar.png:
8731         * help/C/figures/rb-toolbar-prevplaynext.png:
8732         * help/C/figures/rb-toolbar-repeat.png:
8733         * help/C/figures/rb-toolbar-shuffle.png:
8734         * help/C/figures/rb-toolbar.png:
8735         * help/C/figures/rb-volume-changer.png:
8736         * help/C/figures/rb-window-small.png:
8737         * help/C/figures/rb-window.png:
8738         * help/C/rhythmbox.xml: Update user guide with some of the changes
8739         that have occurred after 0.8.8. From bug 314001.
8741 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8743         * rhythmdb/rhythmdb-query-results.h,
8744           rhythmdb/rhythmdb-query-results.c:
8745         New interface for objects that accept query results from RhythmDB.
8747         * rhythmdb/rhythmdb-query-model.c:
8748         (rhythmdb_query_model_query_results_init),
8749         (rhythmdb_query_model_set_query),
8750         (rhythmdb_query_model_add_results),
8751         (rhythmdb_query_model_query_complete):
8752         * rhythmdb/rhythmdb-query-model.h:
8753         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8755         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8756         (rhythmdb_tree_do_full_query):
8757         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8758         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8759         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8760         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8761         * rhythmdb/rhythmdb.h:
8762         Pass query results through the RhythmDBQueryResults interface, rather
8763         than directly to a RhythmDBQueryModel.
8765         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8766         (rb_podcast_manager_db_entry_deleted_cb):
8767         * sources/rb-auto-playlist-source.c:
8768         (rb_auto_playlist_source_do_query),
8769         (rb_auto_playlist_source_set_query):
8770         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8771         * sources/rb-library-source.c: (rb_library_source_constructor),
8772         (rb_library_source_do_query):
8773         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8774         (rb_podcast_source_do_query):
8775         * rhythmdb/rhythmdb-property-model.c:
8776         (rhythmdb_property_model_drag_data_get):
8777         Cast the query model to RhythmDBQueryResults when passing to one of
8778         the RhythmDB query methods.
8780         * rhythmdb/Makefile.am: Add new files.
8782 2006-02-18  James Livingston  <jrl@ids.org.au>
8784         * data/ui/rhythmbox-ui.xml:
8785         * shell/rb-playlist-manager.c:
8786         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8787         "queue playlist" item to source context menu. Fixes bug 330490.
8789 2006-02-18  James Livingston  <jrl@ids.org.au>
8791         * data/glade/general-prefs.glade:
8792         * shell/rb-shell-preferences.c:
8793         (rb_shell_preferences_column_check_changed_cb),
8794         (rb_shell_preferences_sync):
8795         * sources/rb-library-source.c: (rb_library_source_constructor):
8796         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8797         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8798         (rb_entry_view_append_column): Add a "quality" colume which indicates
8799         the bitrate of media. Part of bug 167659.
8801 2006-02-18  James Livingston  <jrl@ids.org.au>
8803         * shell/rb-play-order.c: (do_next_idle_cb),
8804         (default_playing_entry_removed): move to next track when playing entry
8805         is deleted. Fixes bug 131150.
8807         * shell/rb-shell-player.h: remove ancient stuff
8809 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8811         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8812         (rb_shell_clipboard_set_property): 
8813         * shell/rb-shell.c (rb_shell_sync_party_mode):
8814         Trigger a resync of the clipboard properties when changing party mode.
8816 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8818         * sources/rb-static-playlist-source.c: Fix includes.
8820         * sources/rb-source.c (rb_source_can_rename) 
8821         (rb_source_can_delete, rb_source_can_move_to_trash):
8822         Return FALSE if in party mode.
8824         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8825         Replace fullscreen with party mode.
8826         (rb_shell_window_delete_cb): Don't quit if in party mode.
8827         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8828         (window_state_event_cb): Try to deiconify shell when iconified
8829         in party mode.
8830         (rb_shell_sync_party_mode): Sync party mode properties.
8831         Currently, that means [de]sensitizing close, quit, and small-display,
8832         going into fullscreen mode with window stuck and kept above, and
8833         toggling queue-only for the shell player.
8834         (rb_shell_sync_smalldisplay): Sensitive party mode.
8835         (rb_shell_get_party_mode): Get party mode setting.
8837         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8838         (rb_shell_player_set_property, rb_shell_player_get_property):
8839         Add queue-only property.
8840         (rb_shell_player_entry_activated_cb): If in party mode
8841         only queue the entry on activation.
8843         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8844         Break out from set_properties.  Desensitize some actions when
8845         in party mode.
8846         (rb_playlist_manager_set_property): Break out set_source_internal.
8848         * data/rhythmbox.schemas: Remove fullscreen mode.
8850         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8851         action with party mode.
8853         Partial fix for #323933
8855 2006-02-17  James Livingston  <jrl@ids.org.au>
8857         * configure.ac:
8858         * shell/rb-removable-media-manager.c:
8859         (get_nautilus_burn_drive_for_path),
8860         (rb_removable_media_manager_playing_uri_changed_cb): only use
8861         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8862         over the list when it doesn't.
8864 2006-02-17  James Livingston  <jrl@ids.org.au>
8866         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8867         (rb_iradio_source_first_time_changed): Only do the import on the
8868         first change from FALSE to TRUE.
8870         * sources/rb-library-source.c:
8871         (rb_library_source_preferences_sync),
8872         (rb_library_source_library_location_cb): set the first-run done flag
8873         if the user presses close and then sets their watches library
8874         location. Fixes bug 325997.
8876 2006-02-17  James Livingston  <jrl@ids.org.au>
8878         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8879         removable media manager gobject properties
8881         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8882         (split_drive_from_cdda_uri),
8883         (rb_removable_media_manager_playing_uri_changed_cb),
8884         (rb_removable_media_manager_load_media): stop polling a cd drive
8885         when we are playing from it. Part of bug 330716.
8887 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8889         * rhythmdb/rhythmdb-query-model.c:
8890         (rhythmdb_query_model_set_property),
8891         (rhythmdb_query_model_finalize),
8892         (rhythmdb_query_model_base_entry_removed):
8893         Propagate entry removal from base models out to attached property
8894         models.  Fixes the rest of #331165.
8896 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8898         * rhythmdb/rhythmdb-property-model.c:
8899         (rhythmdb_property_model_row_inserted_cb),
8900         (rhythmdb_property_model_prop_changed_cb),
8901         (rhythmdb_property_model_insert):
8902         Don't store NULL as a hash table value if we want to use
8903         g_hash_table_lookup to check if a key exists, and get the checks for
8904         how and whether to handle entry changes the right way around.
8905         Fixes #331211 and half of #331165.
8907 2006-02-16  James Livingston  <jrl@ids.org.au>
8909         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8910         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8911         Fixes bug 329942.
8913 2006-02-16  James Livingston  <jrl@ids.org.au>
8915         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8916         actually reset the browsers.
8918 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8920         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8921         Escape the strings we pass into libnotify so we don't get blank
8922         notifications when the song name contains '&' etc.  Fixes #330784.
8924 2006-02-16  James Livingston  <jrl@ids.org.au>
8926         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8927         enable "View All" when there is only a search box and no browser.
8928         Fixes bug 331395.
8930 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8932         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8933         popup menu, which I forgot to commit with the patch for bug #330014.
8935 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8937         * shell/rb-shell-player.c: (open_location_thread):
8938         Sync button and entry view state once we've started the player, so the
8939         entry view gets into the playing state for iradio.
8941 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8943         * shell/rb-shell-player.c: (open_location_thread):
8944         Take GDK lock before doing anything UI-related.
8946 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8948         * shell/rb-shell.c: Move 'new iradio station' action to
8949         iradio source.
8951         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8952         (rb_iradio_source_init), (rb_iradio_source_finalize),
8953         (rb_iradio_source_constructor):
8954         Remove some unused stuff.
8956         (guess_uri_scheme), (rb_iradio_source_add_station),
8957         (rb_iradio_source_add_from_playlist),
8958         (impl_get_ui_actions), (new_station_location_added),
8959         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8960         action, include it in the toolbar, and make sure the URI we add has a
8961         scheme.  Fixes #327059, more or less.
8963 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8965         * sources/rb-play-queue-source.c:
8966         (rb_play_queue_source_class_init),
8967         (rb_play_queue_source_constructor),
8968         (rb_play_queue_source_update_count),
8969         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8970         Add a toolbar button to clear the play queue, and make it sensitive
8971         only when there are entries in the queue.  Fixes #330014.
8973         * sources/rb-source.c: (_rb_source_register_action_group):
8974         * sources/rb-source.h:  Add helper function to register an
8975         action group for a source.
8977         * sources/rb-library-source.c: (rb_library_source_constructor):
8978         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8979         (register_action_group):  Use _rb_source_register_action_group.
8981 2006-02-15  James Livingston  <jrl@ids.org.au>
8983         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8984         (rb_song_info_constructor), (rb_song_info_set_property): make
8985         tag-editing completion work for albums too.
8987 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8989         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8990         Check the 'limit' checkbox for time-limited playlists.
8992 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8994         * widgets/rb-song-info.c: Prove text-completion when editing title,
8995         artist or album
8997 2006-02-14  James Livingston  <jrl@ids.org.au>
8999         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9000         tray icon popup menu. Fixes bug 331026.
9002 2006-02-14  James Livingston  <jrl@ids.org.au>
9004         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9005         Ogg Vorbis streams, instead of the MP3 ones.
9007 2006-02-14  James Livingston  <jrl@ids.org.au>
9009         * rhythmdb/rhythmdb-property-model.c:
9010         (rhythmdb_property_model_class_init),
9011         (rhythmdb_property_model_drag_data_get):
9012         * rhythmdb/rhythmdb-query-model.c:
9013         (rhythmdb_query_model_title_sort_func):
9014         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9015         LOCATION as the key. Fixes bug 330601.
9017 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9019         * sources/rb-playlist-source.c: (playlist_iter_func):
9020         Make it compile with older versions of totem-plparser too.      
9022 2006-02-13  James Livingston  <jrl@ids.org.au>
9024         * rhythmdb/rhythmdb.h:
9025         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9026         structure private, since things should use the accessor functions
9027         rather than manipulating it directly - Only RhythmDB and the
9028         implementation classes should access it directly. Part of the RhythmDB
9029         cleanup of bug 330226.
9031         * iradio/rb-station-properties-dialog.c:
9032         (rb_station_properties_dialog_update_title),
9033         (rb_station_properties_dialog_update_title_entry),
9034         (rb_station_properties_dialog_update_genre),
9035         (rb_station_properties_dialog_update_location),
9036         (rb_station_properties_dialog_update_play_count),
9037         (rb_station_properties_dialog_update_bitrate),
9038         (rb_station_properties_dialog_update_last_played),
9039         (rb_station_properties_dialog_update_rating),
9040         (rb_station_properties_dialog_update_playback_error),
9041         (rb_station_properties_dialog_sync_entries):
9042         * podcast/rb-feed-podcast-properties-dialog.c:
9043         (rb_feed_podcast_properties_dialog_update_title),
9044         (rb_feed_podcast_properties_dialog_update_title_label),
9045         (rb_feed_podcast_properties_dialog_update_author),
9046         (rb_feed_podcast_properties_dialog_update_location),
9047         (rb_feed_podcast_properties_dialog_update_copyright),
9048         (rb_feed_podcast_properties_dialog_update_language),
9049         (rb_feed_podcast_properties_dialog_update_summary):
9050         * podcast/rb-podcast-manager.c:
9051         (rb_podcast_manager_entry_downloaded),
9052         (rb_podcast_manager_db_entry_added_cb),
9053         (download_progress_update_cb),
9054         (rb_podcast_manager_db_entry_deleted_cb):
9055         * podcast/rb-podcast-properties-dialog.c:
9056         (rb_podcast_properties_dialog_update_title),
9057         (rb_podcast_properties_dialog_update_title_label),
9058         (rb_podcast_properties_dialog_update_feed),
9059         (rb_podcast_properties_dialog_update_location),
9060         (rb_podcast_properties_dialog_update_play_count),
9061         (rb_podcast_properties_dialog_update_bitrate),
9062         (rb_podcast_properties_dialog_update_last_played),
9063         (rb_podcast_properties_dialog_update_rating),
9064         (rb_podcast_properties_dialog_update_date),
9065         (rb_podcast_properties_dialog_update_description):
9066         * rhythmdb/rhythmdb-query-model.c:
9067         (rhythmdb_query_model_entry_changed_cb),
9068         (rhythmdb_query_model_remove_from_main_list),
9069         (rhythmdb_query_model_update_limited_entries),
9070         (rhythmdb_query_model_drag_data_get),
9071         (rhythmdb_query_model_album_sort_func):
9072         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9073         (save_entry):
9074         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9075         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9076         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9077         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9078         (rhythmdb_entry_get_double):
9079         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9080         * shell/rb-play-order-random-by-age-and-rating.c:
9081         (rb_random_by_age_and_rating_get_entry_weight):
9082         * shell/rb-play-order-random-by-age.c:
9083         (rb_random_by_age_get_entry_weight):
9084         * shell/rb-play-order-random-by-rating.c:
9085         (rb_random_by_rating_get_entry_weight):
9086         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9087         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9088         (rb_shell_player_set_playing_entry),
9089         (rb_shell_player_sync_replaygain),
9090         (rb_shell_player_sync_with_source),
9091         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9092         * sources/rb-playlist-source.c: (playlist_iter_func),
9093         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9094         (rb_playlist_source_entry_added_cb):
9095         * sources/rb-podcast-source.c:
9096         (rb_podcast_source_post_status_cell_data_func):
9097         * sources/rb-source.c: (rb_source_update_play_statistics):
9098         * sources/rb-sourcelist-model.c:
9099         (rb_sourcelist_model_drag_data_get):
9100         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9101         (rb_static_playlist_source_add_entry),
9102         (rb_static_playlist_source_remove_entry):
9103         * widgets/rb-entry-view.c: (type_ahead_search_func),
9104         (rb_entry_view_playing_cell_data_func),
9105         (rb_entry_view_rating_cell_data_func),
9106         (rb_entry_view_pixbuf_clicked_cb):
9107         * widgets/rb-header.c: (rb_header_get_duration):
9108         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9109         (rb_song_info_populate_dialog),
9110         (rb_song_info_update_playback_error),
9111         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9112         (rb_song_info_update_location), (rb_song_info_update_play_count),
9113         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9114         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9115         (rb_song_info_sync_entry_single): fix the huge number of times that
9116         the internals got accessed directly.
9118 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9120         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9121         trash' are grouped together.
9122         * shell/main.c: (main): Pass no-registration flag in to RBShell
9123         constructor, rather than mysteriously always passing TRUE.
9124         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9125         Set dirty flag when entries are removed from the model, so the play
9126         queue is marked dirty appropriately.
9127         * AUTHORS: update my email address
9129 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9131         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9133         * widgets/rb-druid.c: (path_dialog_response_cb):
9134         If the URI is local, don't display the 'file://' prefix.  
9135         Fixes #330919.
9137 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9139         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9140         Attach the notification to the tray icon widget, so libnotify
9141         positions it less badly.  Fixes #330876.
9143 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9145         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9146         Reverse the selection list before returning it, so we get it in the
9147         right order.  Fixes #330283 and some other weirdness.
9149 2006-02-11  James Livingston  <jrl@ids.org.au>
9151         * shell/rb-shell.c: (rb_shell_constructor),
9152         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9153         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9154         make small-mode and fullscreen mutually exclusive, since they don't
9155         work together
9157         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9158         Mode.
9160 2006-02-10  James Livingston  <jrl@ids.org.au>
9162         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9163         since it can cause it to be slower than real-time. Should fix bug
9164         322270.
9166 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9168         * rhythmdb/rhythmdb-query-model.c:
9169         (rhythmdb_query_model_set_property):
9170         Think just a little bit harder about that last commit.
9172 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9174         * rhythmdb/rhythmdb-query-model.c:
9175         (rhythmdb_query_model_set_property):
9176         Get the check for hidden entries the right way around.
9177         Fixes #330527, #330514.
9179         (rhythmdb_query_model_set_sort_order):
9180         Ignore no-op sort order changes, so we don't get critical
9181         messages when selecting 'all' in auto playlist browsers.
9183 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9185         Patch by: Christophe Fergeau  <teuf@gnome.org>
9187         * sources/rb-removable-media-source.c:
9188         (rb_removable_media_source_init),
9189         (rb_removable_media_source_constructor):
9190         Move icon setup code to the constructor, as the volume property
9191         haven't been set yet when _init is called.
9193 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9195         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9196         Make the source pixbuf a dynamic property.
9198         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9199         (rb_source_set_pixbuf, rb_source_set_property) 
9200         (rb_source_get_property): Add icon property.
9202         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9203         (rb_auto_playlist_source_init):
9204         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9205         (rb_static_playlist_source_init):
9206         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9207         (rb_removable_media_source_init): 
9208         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9209         (rb_podcast_source_init): 
9210         * sources/rb-library-source.c (rb_library_source_class_init) 
9211         (rb_library_source_set_property, rb_library_source_get_property): 
9212         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9213         (rb_iradio_source_init): Remove impl_get_pixbuf and
9214         set icon property on source base class.
9216         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9217         a different icon for when the share is password protected
9218         and locked.
9219         (rb_daap_source_new): Set icon property.
9220         (composite_icons): Composite an emblem on a pixbuf.
9221         (create_pixbufs): Load global pixbufs.
9222         (destroy_pixbufs): unref global pixbufs.
9223         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9224         (connection_auth_cb, connection_connected_cb) 
9225         (connection_disconnected_cb): Update icon when connection
9226         status changes.
9227         (rb_daap_source_activate): Connect signals.
9229         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9230         dialog with parent.
9232         * daapsharing/rb-daap-marshal.list: Add new signal.
9234         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9235         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9237         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9238         Add authenticate, connected, and disconnected signals.
9239         (connection_get_password): emit authenticate signal instead
9240         of running dialog directly.
9241         (connection_connected, connection_disconnected): Emit signals.
9242         (handle_login): Emit connected signal.
9243         (handle_logout): Emit disconnected signal.
9244         (rb_daap_connection_do_something): Fix leak.
9246         Fixes #330291
9248 2006-02-09  James Livingston  <jrl@ids.org.au>
9250         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9251         entries from the base model if we don't have show-hidden set. Fixes
9252         bug 330514.
9254 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9256         * daapsharing/rb-daap-share.c (message_get_session_id):
9257         Ugh. Use strtoul instead of atoi.
9258         (session_id_validate): Add debug statements.
9260 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9262         * daapsharing/rb-daap-connection.c (http_response_handler):
9263         Report the actual uri from the message in debug statements.
9265 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9267         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9268         Add context argument.
9269         (message_get_session_id): New function to parse session id from
9270         the message.
9271         (message_get_revision_number): Break out function to parse
9272         revision number from the message.
9273         (session_id_validate): New function to validate given session id
9274         is valid for given context (ie. client address).
9275         (session_id_generate): Generate a random session id.
9276         (session_id_create): Create a unique session id and store it.
9277         (session_id_remove): Remove a session id from the store.
9278         (login_cb): Create a session id instead of using a constant one.
9279         (logout_cb): Validate session id.
9280         (update_cb): Use new message_get_revision_number function.
9281         (databases_cb): Validate session id.
9282         (server_cb): Add server context to argument list for callbacks.  It
9283         is needed to look up the remote host.
9284         (db_entry_changed_cb): Use braces.
9285         (soup_auth_callback): Remove FIXME.
9286         (rb_daap_share_server_start): Create session id store.
9287         (rb_daap_share_server_stop): Destroy session id store.
9289         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9290         Don't base64-encode password here since it needs to be
9291         combined with the username first.
9293         * daapsharing/rb-daap-connection.c (build_message):
9294         Add username to Authorization token.
9295         (handle_login, handle_song_listing) 
9296         (rb_daap_connection_do_something): Session id
9297         must be an unsigned int.
9299         Fixes #329814
9301 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9303         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9304         Don't check if we've got a playing entry, ask the player object (duh).
9305         Might actually fix #329993.     
9307 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9309         * sources/rb-static-playlist-source.c:
9310         (rb_static_playlist_source_add_list_uri):
9311         Canonicalise URIs before trying to add them to the playlist, and 
9312         don't try to add files to the database for which there is 
9313         already an entry.
9315 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9317         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9318         Don't ask the entry view if we're playing, just check if we've got a
9319         playing entry.  Fixes #329993.
9321 2006-02-08  James Livingston  <jrl@ids.org.au>
9323         * rhythmdb/rhythmdb-query-model.c:
9324         (rhythmdb_query_model_set_property),
9325         (rhythmdb_query_model_finalize),
9326         (rhythmdb_query_model_base_complete): remove
9327         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9328         don't get emitted for entry changes. Fixes bug 330301.
9330         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9331         (rb_library_browser_init), (rb_library_browser_constructor),
9332         (rb_library_browser_new): do stuff in the constructor, not the init
9333         function, so that the db property gets set on RBPropertyViews
9334         correctly. Fixes a crash when dragging properties to a playlist.
9336 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9338         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9339         Actually stop soup server.  Fixes #329816.
9341 2006-02-07  James Livingston  <jrl@ids.org.au>
9343         * lib/rb-util.h:
9344         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9345         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9346         (collate_values_cb), (rb_collate_hash_table_keys),
9347         (rb_collate_hash_table_values): add functions to compare, copy and
9348         free string-lists. add functions to collate the keys or values of a
9349         hash table into a list.
9351         * rhythmdb/rhythmdb-property-model.c:
9352         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9353         (_remove_entry_cb), (_add_entry_cb),
9354         (rhythmdb_property_model_set_property),
9355         (rhythmdb_property_model_get_property),
9356         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9357         (rhythmdb_property_model_row_inserted_cb),
9358         (rhythmdb_property_model_prop_changed_cb),
9359         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9360         that are hidden, storing those that we have counted in a hash-table.
9362         * shell/Makefile.am: fix build order issue
9364         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9365         * sources/rb-source.h:
9366         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9367         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9368         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9369         browser-toggled method, rename _get_exta_views to _get_property_views,
9370         since several things depend on returning only that.
9372         * sources/rb-source.c: (rb_source_class_init),
9373         (rb_source_browser_toggled), (default_get_property_views),
9374         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9375         (rb_source_gather_hash_keys),
9376         (rb_source_gather_selected_properties): above changes, and move some
9377         utility functions up from RBLibraryView
9379         * widgets/rb-property-view.c:
9380         (rb_property_view_selection_changed_cb): fix leak.
9382         * rhythmdb/rhythmdb-query-model.c:
9383         (rhythmdb_query_model_set_property),
9384         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9385         (rhythmdb_query_model_set_sort_order),
9386         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9387         query model being resorted.
9389         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9390         NULL query.
9392         * rhythmdb/rhythmdb.h:
9393         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9394         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9395         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9396         two queries. Add a function to append "property={X,Y,Z,...}" to a
9397         query.
9399         * sources/rb-library-source.c: (rb_library_source_class_init),
9400         (rb_library_source_finalize), (rb_library_source_constructor),
9401         (rb_library_source_cmd_choose_genre),
9402         (rb_library_source_cmd_choose_artist),
9403         (rb_library_source_cmd_choose_album), (impl_search),
9404         (impl_get_property_views), (impl_reset_filters),
9405         (rb_library_source_preferences_sync),
9406         (rb_library_source_browser_views_activated_cb),
9407         (rb_library_source_state_prefs_sync),
9408         (construct_query_from_selection), (rb_library_source_do_query),
9409         (rb_library_source_browser_changed_cb):
9410         * widgets/Makefile.am:
9411         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9412         browser" widgets, which contains several property views, based on the
9413         code from RBLibrarySource. Make RBLibrarySource use it.
9415         * sources/rb-auto-playlist-source.c:
9416         (rb_auto_playlist_source_class_init),
9417         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9418         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9419         (impl_get_property_views), (impl_browser_toggled),
9420         (construct_query_from_selection),
9421         (rb_auto_playlist_source_do_query),
9422         (rb_auto_playlist_source_set_query),
9423         (rb_auto_playlist_source_browser_changed_cb): Use the new
9424         library-browser widget to add browsers to automatic playlists.
9426 2006-02-07  James Livingston  <jrl@ids.org.au>
9428         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9429         properly.
9430         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9431         type of the source is taken into account. Fixes bug 329621.
9433 2006-02-07  James Livingston  <jrl@ids.org.au>
9435         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9436         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9437         1.1, and perform URI canonicalistion when first upgrading. This should
9438         fix our remaining canonicalisation issues, such as bug 329988.
9440 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9442         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9443         Track the playing entry when the entry view isn't in the playing
9444         state, so we don't have to get the state changes exactly right.
9445         Fixes #330135.
9447 2006-02-06  James Livingston  <jrl@ids.org.au>
9449         * shell/rb-shell-player.c: (open_location_thread),
9450         (rb_shell_player_open_location): fix several iradio issues: having to
9451         press play after double-clicking on a station, not working correctly
9452         without a http:// prefix, and ignoring totem-plparser results other
9453         than success or error (e.g. IGNORE).
9455 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9457         Addition of dbus methods for dealing with static playlists and the
9458         play queue.  Fixes #329958.
9460         * shell/Makefile.am:
9461         * shell/rb-playlist-manager.h:
9462         * shell/rb-playlist-manager.xml:
9463         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9464         (rb_playlist_manager_get_playlists),
9465         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9466         (rb_playlist_manager_create_static_playlist),
9467         (rb_playlist_manager_delete_playlist),
9468         (rb_playlist_manager_add_to_playlist),
9469         (rb_playlist_manager_remove_from_playlist),
9470         (rb_playlist_manager_export_playlist):
9471         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9472         to create, delete, list, modify, export, and import  static playlists.
9473         
9474         * shell/main.c: (main): Register playlist manager object with dbus.
9476         * shell/rb-shell.h:
9477         * shell/rb-shell.xml:
9478         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9479         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9480         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9481         object, and implement the addToQueue and removeFromQueue methods.
9482         
9483         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9484         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9485         formats.
9487 2006-02-05  James Livingston  <jrl@ids.org.au>
9489         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9490         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9491         (save_entry): allow storage of booleans in the on-disk db, and
9492         save/load the HIDDEN property.
9494         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9495         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9496         to the state it was when RB shutdown. This makes RB appear to start
9497         faster, as tracks can appear before the stat is done. Remote files
9498         still start hidden. From bug 325215.
9500 2006-02-05  James Livingston  <jrl@ids.org.au>
9502         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9503         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9504         really cares about the difference from "entry-added", and it isn't
9505         emitted by the tree backend anyway.
9507         * rhythmdb/rhythmdb-query-model.c:
9508         (rhythmdb_query_model_constructor):
9509         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9510         remove the references to the entry-restored signal.
9512 2006-02-05  James Livingston  <jrl@ids.org.au>
9514         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9515         issue.
9517 2006-02-05  James Livingston  <jrl@ids.org.au>
9519         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9520         things are NULL before using g_object_unref. Fixes bug 327452.
9522         * player/rb-recorder-gst.c: (rb_recorder_construct):
9523         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9524         rather than assertion.
9526         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9527         emit a warning, rather than asserting if an unknown playlist type is
9528         encountered.
9530 2006-02-05  James Livingston  <jrl@ids.org.au>
9532         * widgets/Makefile.am:
9533         * widgets/rb-simple-view.c:
9534         * widgets/rb-simple-view.h: Move the two features that this class
9535         provides into RBPropertyView, and remove this class. Closes bug
9536         327500.
9538         * podcast/rb-feed-podcast-properties-dialog.c:
9539         * podcast/rb-feed-podcast-properties-dialog.h:
9540         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9541         (rb_podcast_source_feeds_show_popup_cb):
9542         * sources/rb-podcast-source.h:
9543         * widgets/rb-property-view.c: (rb_property_view_class_init),
9544         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9545         (rb_property_view_append_column_custom),
9546         (rb_property_view_button_press_cb):
9547         * widgets/rb-property-view.h: Updated for the above change.
9549 2006-02-04  James Livingston  <jrl@ids.org.au>
9551         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9552         too close to Move to Trash and people aren't likely to use it often.
9554 2006-02-04  James Livingston  <jrl@ids.org.au>
9556         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9558 2006-02-04  James Livingston  <jrl@ids.org.au>
9560         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9561         passed a path instead of a URI.
9563         * sources/rb-generic-player-source.c: (default_get_mount_path):
9564         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9565         the path. This fixes bug 329723.
9567 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9569         * daapsharing/rb-daap-structure.c:
9570         (rb_daap_content_code_string_as_int32):
9571         Use network byte order.
9573 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9575         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9576         Use a hash for source lookup.
9577         (mdns_service_added, mdns_service_removed): Handle
9578         service-added and service-removed signals from RBDaapMdnsBrowser.
9579         (remove_source): GDestroyNotify function for when sources
9580         are removed from the hash.
9581         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9582         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9583         (rb_daap_sources_shutdown): Update.
9584         (source_host_find): GHRFunc for finding a source by ip.
9585         (rb_daap_source_find_for_uri): Use the hash source lookup.
9587         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9588         Namespace keys.
9589         (password_check_button_toggled_cb): Handle password enabled.
9590         (share_name_entry_focus_out_event_cb): Namespace keys.
9591         Handle changes more robustly.
9592         (share_password_entry_focus_out_event_cb): Handle password entry.
9593         (add_daap_preferences): Connect to password signals.
9595         * lib/rb-preferences.h: Add DAAP keys.
9597         * data/glade/daap-prefs.glade: Add password UI.
9599         * data/rhythmbox.schemas: Add password keys.
9601         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9602         assert with warning.
9604         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9605         gconf keys to lib/rb-preferences.h.  Namespace
9606         the gconf keys.
9607         (create_share): Add password support.
9608         (enable_sharing_changed_cb): Namespaced keys.
9609         (require_password_changed_cb): Handle key change.
9610         (share_name_changed_cb): Namespaced keys.
9611         (share_password_changed_cb): Handle key change.
9612         (rb_daap_sharing_init): Namespaced keys.
9613         (rb_daap_sharing_shutdown): Ditto.
9615         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9616         Add password property.
9617         (rb_daap_share_set_name): Break out prop set function.
9618         (published_cb): New RBDaapMdnsPublisher signal handler.
9619         (name_collision_cb): Ditto.
9620         (rb_daap_share_init): Create publisher object and
9621         connect to signals.
9622         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9623         (rb_daap_share_set_property): Break out prop set functions.
9624         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9625         Unref publisher.
9626         (rb_daap_share_new): Add password argument.  Start
9627         publishing and DAAP server.
9628         (message_set_from_rb_daap_structure): Change print to debug.
9629         (server_info_cb): Set auth method to publish.
9630         (logout_cb): Handle DAAP client logout.
9631         (update_cb): Remove C++ comments.
9632         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9633         (server_cb): Add debug.
9634         (soup_auth_callback): Handle auth requests.
9635         (rb_daap_share_server_start): Split up functions for starting
9636         server and publishing.  Add auth handling to server.
9637         (rb_daap_share_server_stop): Split stop server and publish.
9638         No C++ comments.
9639         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9640         Start and stop publishing.
9641         (rb_daap_share_restart): Restart server and publishing.
9642         (rb_daap_share_maybe_restart): Conditionally restart.
9644         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9645         (rb_daap_collision_dialog_new_run): Don't use
9646         separators in dialogs.
9648         * daapsharing/rb-daap-connection.h: Add private
9649         data to class structure.
9651         * daapsharing/rb-daap-connection.c: Move
9652         some includes to top of file.  Make private
9653         data struct name consistent with others.
9654         (rb_daap_connection_class_init): Rename
9655         private.
9656         (rb_daap_connection_init): Get and store the pointer
9657         to the private data once instead of in every
9658         function.  Create a username value "Rhythmbox_VERSION".
9659         (connection_get_password): Don't get private.
9660         (build_message): Ditto.
9661         (http_response_handler): Don't init variables in
9662         declaration.  Add debug.  Spacing.
9663         (http_get, entry_set_string_prop, handle_server_info) 
9664         (handle_login, handle_update, handle_database_info) 
9665         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9666         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9667         (rb_daap_connection_state_done): Don't get private.
9668         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9669         spacing.  Correctly base64 encode the Authentication token.
9670         Add username to auth token.
9671         (rb_daap_connection_get_playlists): Don't get private.
9672         (rb_daap_connection_dispose): Ditto.  Free username.
9673         (rb_daap_connection_set_property) 
9674         (rb_daap_connection_get_property): Don't get private.
9676         * daapsharing/Makefile.am: Conditionally
9677         compile MDNS backends.  Add marshall stuff.
9679         * daapsharing/.cvsignore: Update.
9681         * configure.ac: Add conditional to see which
9682         MDNS backend we should use.
9684         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9686         * daapsharing/rb-daap-marshal.list:
9687         * daapsharing/rb-daap-mdns-browser-avahi.c:
9688         * daapsharing/rb-daap-mdns-browser-howl.c:
9689         * daapsharing/rb-daap-mdns-browser.h:
9690         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9691         * daapsharing/rb-daap-mdns-publisher-howl.c:
9692         * daapsharing/rb-daap-mdns-publisher.h:
9693         Split rb-daap-mdns.c into two classes.  One for
9694         publishing and one for browsing.  Split out
9695         the avahi and howl backends into different files.
9697         Fixes #322966
9698         
9699 2006-02-04  James Livingston  <jrl@ids.org.au>
9701         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9703         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9704         crash if metadata reader gives us NULL for strings.
9706 2006-02-03  James Livingston  <jrl@ids.org.au>
9708         * shell/rb-shell-player.c: (open_location_thread),
9709         (rb_shell_player_open_location):
9710         retrieve iradio playlists files in a thread, so that with GStreamer
9711         0.10 the UI doesn't block while connecting to stations. The streamer
9712         connection is synchronous with 0.8, so that will still block (a bit).
9713         Fixed bug 128106.
9715         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9716         because _open_entry does that automatically when it is ready to.
9718 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9720         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9721         (rb_podcast_source_post_status_cell_data_func):
9722         Leave the podcast status column blank for episodes that have not been
9723         downloaded.
9725 2006-02-03  James Livingston  <jrl@ids.org.au>
9727         Add support for source-specific toolbar items, and make the Burn
9728         Playlist item only available for playlists. Also add Update All
9729         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9731         * data/ui/rhythmbox-ui.xml:
9732         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9733         (impl_get_ui_actions): make the Burn CD toolbar item only for
9734         playlists
9736         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9737         * lib/rb-stock-icons.h: load the Eject icon as stock.
9739         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9740         action
9742         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9743         (rb_shell_select_source):
9744         * sources/rb-source.c: (rb_source_class_init),
9745         (rb_source_disconnect), (default_get_ui_actions),
9746         (rb_source_get_ui_actions):
9747         * sources/rb-source.h: add support for source-specific toolbar items
9749         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9750         Eject and Rip toolbar items
9752         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9753         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9754         item.
9756 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9758         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9759         * shell/main.c: (main):
9760         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9761         Replace all g_critical calls with g_warning, since none of them are
9762         the sort of thing the process should die over.  Fixes #329398.
9764 2006-02-03  James Livingston  <jrl@ids.org.au>
9766         * configure.ac: mention gst-plugins-base in the error message for not
9767         finding GStreamer 0.10, since not having that will cause it to fail.
9769 2006-02-03  James Livingston  <jrl@ids.org.au>
9771         * configure.ac: fix typo that means you get the wrong error message if
9772         you explicity request a particular playback engine, and it can't be
9773         found.
9775 2006-02-03  James Livingston  <jrl@ids.org.au>
9777         * data/glade/library-prefs.glade: allow the watched library location
9778         to be a non-local place.
9780 ============ Version 0.9.3
9783 2006-02-02  James Livingston  <jrl@ids.org.au>
9785         * NEWS: update NEWS
9786         * configure.ac: bump version to 0.9.3
9788         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9789         <caillon@redhat.com>, fixed bug 329517. 
9791 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9793         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9795         * widgets/rb-song-info.c: (rb_song_info_constructor):
9796         Make year and disc number fields non-editable if tag editing
9797         is disabled.  Fixes #329463.
9799 2006-02-01  James Livingston  <jrl@ids.org.au>
9801         * rhythmdb/rhythmdb-property-model.c:
9802         (rhythmdb_property_model_row_inserted_cb),
9803         (rhythmdb_property_model_prop_changed_cb),
9804         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9805         correctly. Fixes bug 327061.
9807         * rhythmdb/rhythmdb-query-model.c:
9808         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9809         the HIDDEN property when an entry is removed for being hidden.
9811         * rhythmdb/rhythmdb-query-model.h:
9812         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9813         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9814         models's "connected" property. Whatever it was needed for seems to
9815         have gone.
9817 2006-02-01  James Livingston  <jrl@ids.org.au>
9819         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9821         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9822         (rb_shell_player_playing_changed_cb): block the signal to prevent
9823         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9824         button pausing.
9826 2006-02-01  James Livingston  <jrl@ids.org.au>
9828         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9829         /should/ now work, if the neccessary plugins get ported.
9831 2006-01-30  James Livingston  <jrl@ids.org.au>
9833         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9834         string properties to "Unknown" is the string is empty. Kind of fixes
9835         bug 327495.
9837         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9838         gettext calls once, rather than once per time the function is used.
9839         This stops us making tens of thousands of gettext calls on startup,
9840         which reduces the cpu-time of startup by 10-20%
9842 2006-01-29  James Livingston  <jrl@ids.org.au>
9844         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9845         (rhythmdb_add_uri):
9846         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9847         for files containing known video streams.
9850 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9852         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9853         required.
9855 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9857         * INSTALL.quick: More random updates
9859         * rhythmdb/rhythmdb-query-model.c:
9860         (rhythmdb_query_model_class_init),
9861         (rhythmdb_query_model_set_property),
9862         (rhythmdb_query_model_get_property),
9863         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9864         Remove user sort data handling, take a property ID and a reverse
9865         flag instead.
9866         (rhythmdb_query_model_insert_into_main_list),
9867         (rhythmdb_query_model_insert_into_limited_list),
9868         (rhythmdb_query_model_do_reorder),
9869         (_reverse_sorting_func):
9870         Handle reverse sorting by calling _reverse_sorting_func, which
9871         calls the real sort function and reverses the result.
9872         (rhythmdb_query_model_set_sort_order):
9873         Allow this to be called to set the initial sort order for limited
9874         queries, and handle reverse sorting when reordering.
9875         (rhythmdb_query_model_location_sort_func),
9876         (rhythmdb_query_model_album_sort_func),
9877         (rhythmdb_query_model_artist_sort_func),
9878         (rhythmdb_query_model_genre_sort_func),
9879         (rhythmdb_query_model_track_sort_func),
9880         (rhythmdb_query_model_double_ceiling_sort_func),
9881         (rhythmdb_query_model_ulong_sort_func),
9882         (rhythmdb_query_model_date_sort_func),
9883         (rhythmdb_query_model_string_sort_func):
9884         Sort functions moved from rb-entry-view.c.
9885         * rhythmdb/rhythmdb-query-model.h:
9886         Add the sort functions, and update the changed functions.
9887         
9888         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9889         Just call _resort_model when the query model is set, since it
9890         does all the same things.
9891         (rb_entry_view_append_column):
9892         Rework bits so the rating column doesn't have to be so much of a
9893         special case.
9894         (rb_entry_view_append_column_custom):
9895         Take a property ID to sort on, rather than arbitrary custom data.
9896         (rb_entry_view_resort_model):
9897         Query model does all the reverse sort handling now.
9898         * widgets/rb-entry-view.h: Update _append_column_custom.
9900         * sources/rb-play-queue-source.c:
9901         (rb_play_queue_source_constructor):
9902         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9903         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9904         (rb_podcast_source_post_date_cell_sort_func),
9905         (rb_podcast_source_post_status_cell_sort_func),
9906         (rb_podcast_source_post_feed_cell_sort_func):
9907         Updates required by all the other changes.
9909         * rhythmdb/rhythmdb-property-model.c:
9910         (rhythmdb_property_model_drag_data_get):
9911         Sort the query results on the selected property,
9912         so they arrive in the expected order.  All the other changes were made
9913         to make this possible.  Fixes bug #327494.
9915 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9916         
9917         * shell/rb-shell-clipboard.c:
9918         Use GTK_STOCK_REMOVE icon for the remove action in
9919         the play queue too.
9921 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9923         * sources/rb-play-queue-source.c:
9924         (rb_play_queue_source_constructor),
9925         (rb_play_queue_source_update_count):
9926         Don't make the 'queued songs' column clickable,
9927         and add the queued song count to the column title.
9929 2006-01-29  James Livingston  <jrl@ids.org.au>
9931         * configure.ac: remove "experimental" marking from DAAP, and enable by
9932         default if the dependencies are found.
9934 2006-01-29  James Livingston  <jrl@ids.org.au>
9936         * NEWS: update NEWS
9938 2006-01-29  James Livingston  <jrl@ids.org.au>
9940         patch by: William Jon McCann  <mccann@jhu.edu>
9942         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9943         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9944         property used for the feed list. Fixes problem with feeds with no
9945         episodes not showing up.
9947 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9948         
9949         * shell/rb-play-order-random-by-age-and-rating.c:
9950         (rb_random_by_age_and_rating_get_entry_weight):
9951         Fix compile errors, bug #328978.
9953 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9955         * INSTALL.quick, README: Random updates
9956         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9958 2006-01-28  James Livingston  <jrl@ids.org.au>
9960         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9961         default rating back to 0 (from 2.5, which was needed for autorating).
9963         * shell/rb-play-order-random-by-age-and-rating.c:
9964         (rb_random_by_age_and_rating_get_entry_weight):
9965         * shell/rb-play-order-random-by-rating.c:
9966         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9967         2.5 for the purposes of weighting entries.
9969 2006-01-28  James Livingston  <jrl@ids.org.au>
9971         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9972         translator comments, to make it clearer what the "friendly time"
9973         formatting strings mean.
9975 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9977         * daapsharing/rb-daap-connection.c: (http_response_handler):
9978         Fix the sense of the overflow check so it'll accept valid input.
9980 2006-01-27  James Livingston  <jrl@ids.org.au>
9982         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9984         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9985         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9987 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9989         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9990         
9991         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9992         Don't include the artist field in the window title if it's blank.
9993         Fixes #325973.
9995 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9997         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9998         Use stock delete icon for move to trash and stock remove
9999         for remove menu item.
10001 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10003         * shell/rb-shell.c: (rb_shell_constructor),
10004         (idle_handle_load_complete):  Don't start the playlist save
10005         timeout until we've loaded the playlists, otherwise we'll
10006         write an empty playlist file if startup takes too long.
10008 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10010         * shell/rb-shell.c: Make view toolbar toggle use
10011         shift+ctrl+t.  Fixes #327585.
10013 2006-01-25  James Livingston  <jrl@ids.org.au>
10015         patch by: Christope Fergeau  <teuf@gnome.org>
10017         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10018         (http_response_handler): fix a potential buffer overflow issue.
10020 2006-01-25  James Livingston  <jrl@ids.org.au>
10022         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10023         Year column wide enough to display "Unknown"
10025 2006-01-25  James Livingston  <jrl@ids.org.au>
10027         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10028         (rb_podcast_source_post_status_cell_data_func): make the episode
10029         status wording better. Part of bug 321607.
10031 2006-01-25  James Livingston  <jrl@ids.org.au>
10033         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10034         others with a separator.
10036         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10037         stock Delete icon.
10039 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10041         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10043 2006-01-23  James Livingston  <jrl@ids.org.au>
10045         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10046         0.3.2. Fixed bug 328158.
10048 2006-01-23  James Livingston  <jrl@ids.org.au>
10050         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10051         (gulong_gst_date_transform), (rb_metadata_class_init):
10052         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10054 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10056         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10057         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10058         (record_entry_change): Protect added_entries and changed_entries with
10059         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10061 2006-01-23  James Livingston  <jrl@ids.org.au>
10063         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10064         the browser for audio CDs.
10066 2006-01-22  James Livingston  <jrl@ids.org.au>
10068         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10069         NEVER_FAIL as it causes the daemon-not-running error to never be
10070         reported, resulting in bug 319438 re-occurring.
10072 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10074         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10075         Just call the podcast manager's update method.  Unbreaks the 'update
10076         all feeds' command.
10078 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10080         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10082 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10084         * configure.ac: Don't disable DAAP with gstreamer 0.10
10086         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10087         (rb_daap_src_class_init), (rb_daap_src_init),
10088         (rb_daap_src_finalize), (rb_daap_src_set_property),
10089         (rb_daap_src_get_property), (rb_daap_src_write),
10090         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10091         (_split_uri), (rb_daap_src_open):
10092         * daapsharing/rb-daap-src.h:
10093         Mostly fix seeking, handle chunked transfer encoding, and port to
10094         gstreamer 0.10.
10095         
10096         * player/rb-player-gst.c:
10097         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10098         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10100         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10101         being fixed.
10103 2006-01-21  James Livingston  <jrl@ids.org.au>
10105         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10106         for Year metadata in DAAP sources. Fixes bug 327700.
10108         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10110 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10112         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10113         enum values instead of magic numbers.
10115         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10116         Add number of songs that match each property title into
10117         the cell.  Also show the number of properties that match
10118         in the All entry.
10119         (rb_property_view_constructor): Use enum values instead of
10120         magic numbers.
10122         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10123         Query podcast posts instead of feeds for browser.  Use
10124         post SUBTITLE which is the location for the property view.
10125         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10126         (construct_query_from_selection) 
10127         (rb_podcast_source_cmd_delete_feed) 
10128         (rb_podcast_source_cmd_properties_feed) 
10129         (rb_podcast_source_cmd_update_feed): Use variable to make
10130         it clear what the selection data represents.
10131         (rb_podcast_source_feed_title_cell_data_func): Add number
10132         of posts that belong to each feed in the browser.
10134         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10135         (rhythmdb_property_model_delete_prop): Decrement the refcount
10136         for the All entry.
10137         (rhythmdb_property_model_get_column_type): Use column enum
10138         values instead of magic numbers.  Add NUMBER column.
10139         (rhythmdb_property_model_get_value): Use enum.
10140         Add NUMBER column that represents the refcount for
10141         the title of that property.
10142         (rhythmdb_property_model_perform_sync): Don't fake up
10143         a title for All here.
10145         Fixes #327372.
10146         
10147 2006-01-21  James Livingston  <jrl@ids.org.au>
10149         Make Rhythmbox start faster by not blocking the UI while database
10150         initialisation and loading occurs. Closes bug 323348.
10152         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10153         start 10 seconds later instead of immediately.
10154         
10155         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10156         safe to call from any thread.
10158         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10159         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10160         so the UI doesn't block.
10162 2006-01-18  James Livingston  <jrl@ids.org.au>
10164         * sources/rb-static-playlist-source.c:
10165         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10166         cause crashes. Oops. fixes bug 327477.
10168 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10170         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10171         Set GST element state to NULL before unreffing.
10172         Fixes #327422.
10174 2006-01-18  James Livingston  <jrl@ids.org.au>
10176         * sources/rb-static-playlist-source.c:
10177         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10178         type, since the playlists can contain non-song entries. Fixes bug
10179         327448.
10181         * sources/rb-play-queue-source.c:
10182         (rb_play_queue_source_class_init): disable the search box for the
10183         queue.
10185 2006-01-18  James Livingston  <jrl@ids.org.au>
10187         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10188         dragging of podcast episodes. Fixed bug 327450.
10190 2006-01-18  James Livingston  <jrl@ids.org.au>
10192         * rhythmdb/rhythmdb-query-model.c:
10193         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10194         dragging to an emoty playlist.
10196 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10198         * sources/rb-playlist-source-recorder.c:
10199         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10201 2006-01-17  James Livingston  <jrl@ids.org.au>
10203         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10205         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10206         different number of tracks than exist on the cd, since that happens
10207         with audio+data hybrid CDs. Part of bug 325046.
10209 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10211         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10212         Remove useless call to gtk_tree_view_column_set_clickable().
10214         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10215         Don't store sort data for columns if the sort function is NULL,
10216         so only sortable columns will be in the column sort data map.
10217         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10218         on clickable.
10219         (rb_entry_view_constructor):  The 'playing icon' column is never
10220         clickable, so don't connect a signal handler for it.
10222         Fixes bug 326811.
10224 2006-01-17  James Livingston  <jrl@ids.org.au>
10226         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10227         are 0.8 only. Fix element detection.
10229         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10230         saving the new metadata failed
10232 2006-01-17  James Livingston  <jrl@ids.org.au>
10234         * shell/rb-shell-player.c: (do_next_idle),
10235         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10236         (eos_cb): release audio device when a playlist finishes. Fixes bug
10237         323679.
10239 2006-01-17  James Livingston  <jrl@ids.org.au>
10241         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10242         canonicalise the URIs when things are added via library watching.
10244 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10246         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10247         Off by one error in default speed index.
10249 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10251         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10252         (update_speed_combobox, update_speed_combobox):
10253         Get a list of the actually supported write speeds from
10254         n-c-b >= 2.13.90.  Otherwise use fallback list.
10256 2006-01-17  James Livingston  <jrl@ids.org.au>
10258         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10259         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10260         don't get stuck on recursive symlinks. Fixed bug 125452.
10262 2006-01-17  James Livingston  <jrl@ids.org.au>
10264         Add support for mass-storage audio players. Players are detected via
10265         either the HAL "audio_player" capability, or a ".is_audio_player" file
10266         in the root of the volume. Closes bug 325602.
10268         * configure.ac: separate using HAL from ipod support.
10270         * lib/rb-file-helpers.c: (rb_uri_is_local):
10271         * lib/rb-file-helpers.h: add function to determine whether a URI is
10272         local.
10274         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10275         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10276         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10277         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10278         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10279         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10280         directories can be scanned for files to add as  non-SONG entries.
10282         * shell/rb-removable-media-manager.c:
10283         (rb_removable_media_manager_mount_volume): add checking for
10284         mass-storage players.
10286         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10287         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10288         (hal_udi_is_ipod):
10289         * sources/rb-removable-media-source.c:
10290         (rb_removable_media_source_class_init),
10291         (rb_removable_media_source_constructor): move some things up to the
10292         RBRemovableMediaSource, rather than making subclasses do it.
10294         * sources/Makefile.am:
10295         * sources/rb-generic-player-source.c:
10296         * sources/rb-generic-player-source.h: add mass-storage player source.
10298 2006-01-16  James Livingston  <jrl@ids.org.au>
10300         patch by: William Jon McCann  <mccann@jhu.edu>
10302         * rhythmdb/rhythmdb-query-model.c:
10303         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10304         commit.
10306 2006-01-16  James Livingston  <jrl@ids.org.au>
10308         Patch to add support for "chained queries" and putting hidden tracks
10309         in query models. Use chained queries to add search box support to
10310         normal playlists, and to make hidden entries not get lost. Fixes bug
10311         319278.
10313         * rhythmdb/rhythmdb-query-model.h:
10314         * rhythmdb/rhythmdb-query-model.c:
10315         (rhythmdb_query_model_class_init),
10316         (rhythmdb_query_model_set_property),
10317         (rhythmdb_query_model_get_property):
10318         (rhythmdb_query_model_finalize): add "show-hidden" and
10319         "base-model" properties.
10321         (rhythmdb_query_model_set_connected),
10322         (rhythmdb_query_model_has_pending_changes),     
10323         (rhythmdb_query_model_entry_added_cb),
10324         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10325         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10326         (rhythmdb_query_model_remove_entry),
10327         (rhythmdb_query_model_drag_data_received),
10328         (rhythmdb_query_model_base_row_inserted),
10329         (rhythmdb_query_model_base_row_deleted),
10330         (rhythmdb_query_model_base_non_entry_dropped),
10331         (rhythmdb_query_model_base_complete),
10332         (rhythmdb_query_model_base_entry_prop_changed),
10333         (rhythmdb_query_model_base_rows_reordered),
10334         (rhythmdb_query_model_row_drop_possible): handle base-model by
10335         chaining events and operations where necessary. Make hidden entries
10336         not get added only if "show-hidden" is false.
10338         (rhythmdb_query_model_child_index_to_base_index),
10339         (rhythmdb_query_model_base_index_to_child_index),
10340         (rhythmdb_query_model_get_entry_index): utility functions for handling
10341         base-model entries.
10343         (rhythmdb_query_model_reapply_query): apply the current query, and
10344         remove entries that don't match it.
10346         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10347         empty queries.
10349         * sources/rb-source.c: (rb_source_set_property): move the unref later
10350         to fix problem if it is the last reference.
10352         * sources/rb-static-playlist-source.c:
10353         (rb_static_playlist_source_class_init),
10354         (rb_static_playlist_source_init),
10355         (rb_static_playlist_source_finalize),
10356         (rb_static_playlist_source_constructor), (impl_reset_filters),
10357         (impl_search), (rb_static_playlist_source_do_query),
10358         (impl_save_contents_to_xml),
10359         (rb_static_playlist_source_add_location_internal): use a chained query
10360         model to filter out hidden entries and implement the search box.
10362 2006-01-15  James Livingston  <jrl@ids.org.au>
10364         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10365         the default playlist loading, which I broke earlier.
10367 2006-01-15  James Livingston  <jrl@ids.org.au>
10369         patch by: William Jon McCann  <mccann@jhu.edu>
10371         * sources/rb-playlist-source.c: (playlist_iter_func): use
10372         totem-plparser's new API version macros to check for API changes.
10373         Handle the recent API change.
10375 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10377         * sources/rb-library-source.c: (impl_get_config_widget):
10378         Ref the preferences object to match the unref in the
10379         finalizer.  Fixes some portion of #323505.
10381 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10383         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10384         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10385         Fix valgrind warnings about accessing uninitialised values.
10387 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10389         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10391 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10393         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10394         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10395         Stops the 'now playing' icon from being displayed after the play
10396         order finishes.
10398 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10400         * podcast/rb-podcast-manager.c:
10401         (rb_podcast_manager_db_entry_deleted_cb):
10402         Don't try to delete files we never downloaded, and cancel downloads
10403         for deleted episodes.  Fixes bug #326862.
10404         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10405         Don't complain about NULL data items in the selection list.
10407 2006-01-14  James Livingston  <jrl@ids.org.au>
10409         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10410         Make the name ofthe queue non editable. Fixes bug 326918.
10412 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10414         * sources/rb-playlist-source-recorder.c (burn_cd) 
10415         (ask_rewrite_disc): Don't use our locally copied functions
10416         if we have at least 2.13.
10418 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10420         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10421         Correct the argument type for the process_error signal.
10422         May fix bug #323154.
10424 2006-01-13  James Livingston  <jrl@ids.org.au>
10426         save the queue to disk when exiting, and reload on startup. Fixed bug
10427         326677 .
10429         * shell/rb-playlist-manager.c:
10430         (rb_playlist_manager_load_playlists),
10431         (rb_playlist_manager_save_playlists_async): don't disable saving of
10432         the queue
10434         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10435         add the queue source as a gobject property.
10437         * sources/rb-play-queue-source.c:
10438         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10439         code to save the queue to xml
10441         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10442         load the queue from xml.
10443         * sources/rb-playlist-xml.h:
10445         * sources/rb-static-playlist-source.c:
10446         (rb_static_playlist_source_load_from_xml),
10447         (rb_static_playlist_source_new_from_xml):
10448         * sources/rb-static-playlist-source.h: split the playlist xml loading
10449         from the static playlist creation function, so the queue can use it.
10451 2006-01-13  James Livingston  <jrl@ids.org.au>
10453         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10454         assertion that should be there. Fixes bug 325923.
10455         
10456         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10457         return NULL if the entry already exists (e.g. as another type).
10458         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10459         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10460         (rb_podcast_manager_insert_feed):
10461         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10462         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10463         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10464         for the above function returning NULL.
10466 2006-01-12  James Livingston  <jrl@ids.org.au>
10468         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10469         is enabled. Fixes bug 326673.
10470         
10471         * doc/reference/tmpl/eggtrayicon.sgml:
10472         * doc/reference/tmpl/rb-daap-src.sgml:
10473         * doc/reference/tmpl/rb-source.sgml:
10474         * doc/reference/tmpl/rb-statusbar.sgml:
10475         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10476         * doc/reference/tmpl/rhythmbox-unused.sgml:
10477         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10479 2006-01-11  James Livingston  <jrl@ids.org.au>
10481         * widgets/rb-song-info.c: (rb_song_info_constructor),
10482         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10483         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10484         the same value for properties. From bug 326054.
10486 2006-01-11  James Livingston  <jrl@ids.org.au>
10488         * sources/rb-source.h:
10489         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10490         (rb_shell_player_set_playing_source_internal), (eos_cb):
10491         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10492         every entry.
10494         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10495         source use this. Closes bug 322077.
10497 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10499         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10500         In order for set_icon_data_from_pixbuf() to be
10501         effective, one must not set an icon in _new().
10503 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10505         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10506         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10507         (egg_tray_icon_notify): Add support for libnotify 0.3.
10508         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10509         * configure.ac: Determine the version of libnotify.
10510         Fixes #326333.
10512 2006-01-08  James Livingston  <jrl@ids.org.au>
10514         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10515         trying to share a track with unknown length.
10517 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10519         * shell/rb-shell-player.c: (rb_shell_player_init):
10520         Sync volume on startup so it doesn't default to 0.
10522 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10524         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10525         (rb_shell_player_get_property), (rb_shell_player_open_location),
10526         (info_available_cb):  Add the iradio streamed song title as a
10527         property, and emit a signal when it changes.
10529         * shell/rb-shell.c: (rb_shell_constructor),
10530         (rb_shell_player_elapsed_changed_cb),
10531         (rb_shell_player_stream_song_changed_cb):
10532         Issue a notification when the iradio song title changes.
10533         Fixes #326166.
10535 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10537         * shell/rb-shell-player.c: (rb_shell_player_init),
10538         (rb_shell_player_finalize), (rb_shell_player_set_property),
10539         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10540         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10541         (rb_shell_player_set_volume_relative),
10542         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10543         (rb_shell_player_get_mute):
10544         * shell/rb-shell-player.h:
10545         * shell/rb-shell-player.xml:
10546         Store volume as a property on RBShellPlayer, rather than in gconf.
10547         Add some methods to control volume via dbus.
10549         * shell/rb-shell.c: (rb_shell_constructor),
10550         (rb_shell_volume_widget_changed_cb),
10551         (rb_shell_player_volume_changed_cb):
10552         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10553         Update volume using player properties rather than gconf, and sync the
10554         volume with the volume control button when something else changes it.
10555         Fixes #323840.
10557 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10559         * shell/rb-tray-icon.c (tray_popup_position_menu):
10560         Make tray menu align with edge of panel.
10562         patch from Jaap A. Haitsma <jaap@haitsma.org>
10563         Fixes #319913
10565 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10566         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10567         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10568         (rb_playlist_manager_new_playlist_from_selection_data):
10569         Make a reasonable default name for playlists created from
10570         dropped data.  Fixes #326116.
10572 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10574         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10575         Use new gconf key.
10576         (burn_cd): Always eject CD after burning.  Too many drives
10577         get confused if we don't.  Save the speed used if the burn
10578         was completed successfully.
10580         * data/rhythmbox.schemas: Use our own speed instead of from
10581         n-c-b. The situation is that the default_speed for n-c-b is most
10582         likely the maximum write speed.  This is fine for n-c-b because it
10583         has burn-proof turned on.  We can't turn it on for audio CDs
10584         because the results are poor in quality.  So we'll just pick a
10585         default that should work for everyone (4).
10587 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10588         
10589         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10590         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10592 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10594         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10595         in my previous commit.  Fixes #326037.
10597 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10599         patch by: Jonathan Matthew
10601         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10602         error on Fedora Rawhide.
10604 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10606         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10607         Assume HTTP URLs ending with .xml or .rss are podcasts.
10608         (rb_shell_add_uri): Handle adding podcast feeds.
10610         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10611         Register as the source for podcast feeds.
10613 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10615         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10616         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10617         (rb_shell_preferences_append_view_page):
10618         * shell/rb-shell-preferences.h:
10619         Fix typo in function name.  Fixes #325992.
10621 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10623         * shell/rb-audioscrobbler.c:
10624         Add '+' to the list of characters to URI-encode, so it doesn't get
10625         interpreted as a space.
10627 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10629         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10630         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10631         goes away while we're still trying to log in.
10633 2006-01-06  James Livingston  <jrl@ids.org.au>
10635         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10637 2006-01-06  James Livingston  <jrl@ids.org.au>
10639         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10640         support for Year to automatic playlists. Closes bug 321341.
10642         * rhythmdb/rhythmdb-query-model.c:
10643         (rhythmdb_query_model_set_property):
10644         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10645         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10646         (rhythmdb_query_free), (rhythmdb_query_serialize),
10647         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10648         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10649         * rhythmdb/rhythmdb.h: Support special
10650         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10651         year in date.
10653         * widgets/rb-query-creator-properties.c:
10654         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10655         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10657 2006-01-06  James Livingston  <jrl@ids.org.au>
10659         * configure.ac: make the playback backend selection work correctly
10661         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10662         (rb_daap_src_class_init), (rb_daap_src_dispose),
10663         (rb_daap_src_change_state), (rb_daap_src_initialize):
10664         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10665         doesn't work for this class. Fixes bug 325934
10667 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10669         * configure.ac: Fix check for libnotify.
10671 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10673         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10674         Get name element for current lang and remove all name nodes
10675         from the XML tree.
10676         (get_playlist_name_from_xml): Try to get name element or
10677         fall back to name attribute.
10678         (rb_playlist_source_new_from_xml): Get name before turning over
10679         to sub-types for parsing so that we can remove name elements
10680         from the tree if necessary.
10682         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10683         Load default playlists file if per user playlists are not found.
10685         * data/playlists.xml.in: 
10686         * data/Makefile.am: 
10687         * data/.cvsignore: Add default set of playlists.
10688         Fixes #323004
10690 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10692         * shell/main.c: (main): Don't use the dbus interface to show the
10693         window if we're also going to use the bonobo interface.
10695 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10697         * shell/rb-history.c: (rb_history_set_playing):
10698         Allow setting the playing song to NULL.
10699         (rb_history_append), (rb_history_delete_link):
10700         Don't randomly change position when entries are added and removed,
10701         it confuses play orders.
10702         
10703         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10704         Random orders always have a next entry if the model is not empty.
10705         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10706         Go back to the start of the history if we're past its end.
10708         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10709         (rb_shuffle_play_order_go_next): Go back to the start of the history
10710         if we're past its end.
10711         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10712         the history if the current entry is removed.
10714         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10715         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10716         the play order when the query has finished. This wasted about 10% CPU
10717         while the query was running.
10719         Fixes #324641: assertion failures when the query model was changed
10720         such that the playing song was no longer present.
10722 2006-01-05  James Livingston  <jrl@ids.org.au>
10724         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10725         (rb_daap_src_dispose), (rb_daap_src_change_state):
10726         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10727         (rhythmdb_gda_finalize):
10728         * widgets/rb-cell-renderer-pixbuf.c:
10729         * widgets/rb-cell-renderer-rating.c:
10730         (rb_cell_renderer_rating_class_init),
10731         (rb_cell_renderer_rating_finalize):
10732         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10733         * widgets/rb-load-failure-dialog.c:
10734         (rb_load_failure_dialog_class_init),
10735         (rb_load_failure_dialog_finalize):
10736         * widgets/rb-rating.c: (rb_rating_class_init),
10737         (rb_rating_finalize):
10738         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10739         (rb_search_entry_finalize): use G_DEFINE_TYPE
10741         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10743 2006-01-05  James Livingston  <jrl@ids.org.au>
10745         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10747         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10748         the tarball.
10750         * shell/rb-history.c: (rb_history_class_init),
10751         (rb_history_finalize):
10752         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10753         (rb_playlist_manager_finalize):
10754         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10755         (rb_remote_init): use G_DEFINE_TYPE.
10757 2006-01-05  James Livingston  <jrl@ids.org.au>
10759         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10760         changes
10762 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10764         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10765         Disable burn action when source is not a playlist.
10766         Fixes #323578.
10768 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10770         Optionally use libnotify to display song change and other
10771         notifications, and provide an option to disable notifications.
10772         Fixes #320355 and innumerable informal complaints.
10774         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10775         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10776         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10777         (egg_tray_icon_notify):
10778         * widgets/eggtrayicon.h:
10779         * configure.ac:
10780         * shell/Makefile.am:
10781         Optionally use libnotify instead of eggnotificationbubble.
10783         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10784         (rb_tray_icon_constructor), 
10785         (rb_tray_icon_show_notifications_changed_cb),
10786         (rb_tray_icon_hide_notify_cb)
10787         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10788         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10789         EggNotificationBubble pointer to eggtrayicon.
10791         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10792         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10793         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10795 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10797         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10798         Request a minimum size for the progress bar so that
10799         the window doesn't shrink too small.
10801 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10803         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10804         (add_db_entry), (db_entry_deleted_cb):
10805         Don't track the number of songs currently present, track the next ID
10806         to assign.  Fixes potential ID conflict problems.
10807         
10808         (db_entry_changed_cb), (rb_daap_share_start_publish),
10809         (rb_daap_share_stop_publish):
10810         Watch for db entry changes, and when songs become non-hidden after
10811         a successful stat, add them to the mapping tables.   Fixes #325178,
10812         making the DAAP server usable again.
10814 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10815         
10816         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10817         (rb_statusbar_construct), (rb_statusbar_init),
10818         (rb_statusbar_finalize), (rb_statusbar_set_property),
10819         (rb_statusbar_get_property), (rb_statusbar_new),
10820         (rb_statusbar_sync_with_source):
10821         * shell/rb-statusbar.h:
10822         Remove visibility management code, stop watching for play order
10823         changes (status bar doesn't show play order any more), remove unused
10824         'player' property, and some other minor cleanup.
10825         
10826         * shell/rb-shell.c: (rb_shell_constructor),
10827         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10828         (rb_shell_sync_statusbar_visibility):
10829         Manage status bar visibility here rather than in the status bar
10830         itself, so we can take small mode into account.  Fixes #323589.
10832 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10834         * widgets/eggnotificationbubble.c: (draw_bubble):
10835         Move the bubble off the visible screen while setting up bevels.  
10836         Fixes #316810.
10838 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10840         * shell/rb-shell-player.c: (rb_shell_player_init),
10841         (rb_shell_player_finalize): 
10842         Remove unused structure members.
10843         
10844         (do_next_idle), (rb_shell_player_error):
10845         Only queue one call to do_next_idle, so we don't skip tracks if we get
10846         two errors for the same song.  Fixes #325216.
10848 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10850         * data/glade/podcast-feed-properties.glade,
10851          podcast/rb-feed-podcast-properties-dialog.c:
10852         (rb_feed_podcast_properties_dialog_init),
10853         (rb_feed_podcast_properties_dialog_update):
10854         Add 'last episode' field to the podcast feed properties dialog.
10856         * podcast/rb-feed-podcast-properties-dialog.c:
10857         (rb_feed_podcast_properties_dialog_update_last_update),
10858         (rb_feed_podcast_properties_dialog_update_last_episode),
10859          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10860         Use last-seen property for the time at which we last updated the feed,
10861         and post-time for the time the last episode was published.
10863         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10864         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10865         feed, use last-seen (which in 0.9.2 was the last post time).
10867         Fixes #323894.
10869 2006-01-01  James Livingston  <jrl@ids.org.au>
10871         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10873         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10874         year from the ipod database.
10876 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10878         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10879         Only set the pipeline back to NULL state for really uninteresting
10880         files.  This was causing deadlocks with various video files.
10881         Fixes #324912.
10883 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10885         * data/glade/song-info-multiple.glade:
10886         Add disc number label and field.
10887         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10888         (rb_song_info_constructor): 
10889         Handle widgets for disc number.
10890         (rb_song_info_sync_entries_multiple):
10891         Set disc number property on selected entries.
10892         Fixes #324777.
10894 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10896         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10897         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10898         Activate the default widget when enter is pressed in these dialogs.
10899         Fixes #322887.
10901 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10903         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10904         Use rb_shell_player_get_playing_entry, so we get the right entry
10905         when playing from the queue.  Fixes #325379.
10907 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10909         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10910         Include podcast posts with no publication date.  Typically
10911         seen in static collections rather than feeds.
10913 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10915         * shell/main.c: (main): Don't attempt to handle
10916         bonobo-only arguments if we couldn't get a bonobo
10917         client proxy.
10919 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10921         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10922         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10923         abort if daap sharing is disabled and then re-enabled.
10925 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10927         * podcast/rb-podcast-parse.c (rb_insert_item):
10928         Add debugging.
10929         (rb_podcast_parser_start_element): Support itunes:image.
10930         Add debugging.  Don't abuse the break statement.  Warn
10931         if state is unknown.
10932         (rb_podcast_parser_end_element): Add debugging.  Warn
10933         if state is unknown.
10934         (rb_podcast_parser_characters): Warn if state is unknown.
10936         Fixes parsing of feeds that use the itunes:image element.
10937         Fixes #324632
10939 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10941         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10942         (stations_view_drag_data_received_cb):
10943         Remove calls to rhythmdb_entry_lookup_by_location, as
10944         rb_iradio_source_add_station does that anyway.
10945         
10946         (rb_iradio_source_add_from_playlist):
10947         If the URL doesn't point to a playlist, add it as the stream
10948         URL instead.
10950 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10952         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10953         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10954         so we don't get an assertion failure.
10955         Fixes #325025.
10957 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10959         * shell/main.c: (load_uri_args): don't compile this in if
10960         neither bonobo nor dbus are enabled.  Fixes #324890.
10962 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10964         * sources/rb-audiocd-source.c:
10965         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10966         so it closes the device.
10968 2005-12-20  James Livingston  <jrl@ids.org.au>
10970         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10971         so that it doesn't spend forever getting stuck on the one file. Don't
10972         report errors for failing to change state on known non-audio files.
10974         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10975         audio sink creation if we can't create the gconfaudiosink. This lets
10976         it work with only gst-plugins-base on 0.10.
10978 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10980         * rhythmdb/rhythmdb-query-model.c:
10981         (rhythmdb_query_model_set_sort_order):
10982         Fix a tiny memory leak in the previous commit.
10984 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10986         * rhythmdb/rhythmdb-query-model.c:
10987         (rhythmdb_query_model_set_sort_order):
10988         Don't try to emit reorders for empty query models, since it doesn't
10989         achieve anything and it results in a few warnings.
10991 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10993         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10994         Make burn dialog non-resizable so that the expander can shrink.
10995         Fixes #308951.
10997 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10999         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11000         add entries without a location, rather than those with one.
11002 2005-12-19  James Livingston  <jrl@ids.org.au>
11004         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11005         the error isn't set.
11007 2005-12-19  James Livingston  <jrl@ids.org.au>
11008         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11009         add entries without a location. Fixes bug 324290.
11011         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11012         without a location.
11014         * shell/main.c: (main): don't crash if dbus initialisation fails
11015         without setting an error
11017 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11019         * sources/rb-library-source.c: Remove unused structure members
11020         (rb_library_source_do_query): Actually use the cached 'all' query.
11021         Fixes #324025.
11022         
11023 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11025         * sources/rb-audiocd-source.c 
11026         (rb_audiocd_get_cd_info): tab
11027         (rb_audiocd_scan_songs): Return boolean success/failure,
11028         fix error messages a bit.
11029         (metadata_cb): Don't crash if we have no tracks
11030         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11031         the CD.
11032         Fixes #324222.
11034 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11036         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11037         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11038         key.
11040         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11041         Fixes #324157
11043 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11045         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11046         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11047         (fullscreen_changed_cb): 
11048         * lib/rb-preferences.h: 
11049         * data/ui/rhythmbox-ui.xml: 
11050         * data/rhythmbox.schemas:
11051         Add fullscreen mode.
11053         Fixes #324075.
11055 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11057         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11058         configure.  It was not working with RPM.
11059         * data/Makefile.am: Switched dbus directory location to use
11060         datadir instead of variable that was not working.
11062 2005-12-13  James Livingston  <jrl@ids.org.au>
11064         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11066         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11067         the podcast browser work again. Closes bug 323856.
11069 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11071         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11072         Remove C99ism.
11074         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11075         (rb_utf_friendly_time):
11076         * lib/rb-cut-and-paste-code.h:
11078         * podcast/rb-feed-podcast-properties-dialog.c:
11079         (rb_feed_podcast_properties_dialog_parse_time):
11080         * podcast/rb-podcast-properties-dialog.c:
11081         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11082         to display the date in a more user friendly way.
11083         For example, if the feed was updated yesterday it will say:
11084         Last updated: Yesterday 10:00 AM
11085         instead of printing the date.
11087 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11089         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11090         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11091         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11092         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11093         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11094         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11095         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11096         (rb_podcast_parse_date): Add support for some real world
11097         date formats.
11098         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11099         (rb_podcast_parse_item_free): Style and no need to check
11100         for NULL before g_free.
11102         May fix #323742
11104 2005-12-12  James Livingston  <jrl@ids.org.au>
11106         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11107         with gstreamer 0.10, which replaced audioscale.
11109         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11110         function to free the SoupSession
11112         * shell/rb-source-header.c: (rb_source_header_set_property),
11113         (rb_source_header_disclosure_toggled_cb),
11114         (rb_source_header_view_browser_changed_cb),
11115         (rb_source_header_sync_control_state):
11116         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11117         * sources/rb-library-source.c: (rb_library_source_class_init):
11118         * sources/rb-source.c: (rb_source_class_init),
11119         (rb_source_get_status), (default_get_browser_key),
11120         (rb_source_get_browser_key), (rb_source_can_browse),
11121         (rb_source_notify_status_changed),
11122         (rb_source_notify_filter_changed):
11123         * sources/rb-source.h: seperate the enabling of browsers from the use
11124         of a gconf key.
11126 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11128         * data/glade/podcast-feed-properties.glade: 
11129         * data/glade/podcast-properties.glade: Use scrolled viewports
11130         for description text.  Fix regression of #320509.
11132 2005-12-11  James Livingston  <jrl@ids.org.au>
11134         * sources/rb-auto-playlist-source.c:
11135         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11136         (impl_search), (rb_auto_playlist_source_do_query),
11137         (rb_auto_playlist_source_set_query),
11138         (rb_auto_playlist_source_get_query): add support for the search box
11139         to automatic playlists.
11141         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11142         memory leak.
11144 2005-12-11  James Livingston  <jrl@ids.org.au>
11146         * NEWS: update NEWS
11148 2005-12-11  James Livingston  <jrl@ids.org.au>
11150         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11151         (rhythmdb_load), (monitor_subdirectory),
11152         (rhythmdb_sync_library_location):  start the library sync and
11153         monitoring in an idle callback.
11155 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11157         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11158         (rb_podcast_source_constructor): Remove unused pixbuf column.
11159         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11160         Use consistent style.
11162         Fixes #322961.
11164 2005-12-11  James Livingston  <jrl@ids.org.au>
11166         * rhythmdb/rhythmdb-property-model.c:
11167         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11168         (rhythmdb_property_model_insert),
11169         (rhythmdb_property_model_delete_prop):
11170         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11171         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11172         (destroy_tree_property):
11173         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11174         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11175         GMemChunks, they are crap and deprecated. Improves startup-time and
11176         memory usage slightly.
11178 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11180         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11181         Added license and website info.
11183         * MAINTAINERS.old: Add Colin.
11184         * MAINTAINERS: Add James.
11185         * AUTHORS: Put back in order.  Add extra space between name and email
11186         to make it easier to read.  Add James and jonathan.
11188         * widgets/rb-song-info.c (rb_song_info_init) 
11189         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11191 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11193         Play queue implementation. Closes bug 107787.
11195         * data/rhythmbox.schemas: add items for whether the queue should be
11196         displayed as a sidebar, and the height of the sourcelist if it is.
11198         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11199         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11200         add popups for queue as source and as sidebar.  We need a separate
11201         popup for the sidebar view because otherwise it's hard to tell which
11202         of the visible entry views the action came from.
11204         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11206         * po/POTFILES.in: Add new file
11208         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11209         Add helper function for deciding if a podcast episode is available for
11210         playback.
11212         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11213         reorder entries in the query model.
11214         (idle_process_update): Handle new update type used to insert entries
11215         at a particular position in the query model.
11216         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11217         parameter to specify the position (-1 meaning 'at the end').
11218         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11219         parameter.
11220         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11221         bad entry removal updates for entries that aren't in the model.
11222         (rhythmdb_query_model_emit_reorder): Add helper function for
11223         reordering rows.
11224         (rhythmdb_query_model_move_entry): New method for moving entries
11225         around in the model
11226         (rhythmdb_query_model_entry_added_cb),
11227         (rhythmdb_query_model_update_limited_entries),
11228         (rhythmdb_query_model_do_reorder),
11229         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11230         use rhythmdb_query_model_emit_reorder where appropriate.
11232         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11233         Don't allow the queue to be deleted.
11234         (handle_playlist_entry_cb): Update for method signature change
11235         (rb_playlist_manager_save_playlists_async),
11236         (rb_playlist_manager_get_playlists): Don't save the play queue,
11237         don't report it as a playlist.
11239         * shell/rb-play-order.c: Include queue play order in the list of
11240         available orders.
11242         * shell/rb-shell.c
11243         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11244         for access to the clipboard object.
11245         (rb_shell_constructor): Handle playing-from-queue signal to update the
11246         sourcelist display; add queue sidebar in to UI, listen for queue
11247         sidebar pane changes, and read initial settings from gconf.
11248         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11249         Only tell the sourcelist the source has changed if the new source is 
11250         not the queue, as we update the sourcelist differently in that case.
11251         (rb_shell_set_window_title): Only use the cached window title if the
11252         playing state was the same when it was created.
11253         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11254         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11255         sourcelist is hidden and the queue is shown as a source.
11256         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11257         mode, since it doesn't make any sense.
11258         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11259         too.
11260         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11261         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11262         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11263         playing from queue shown as sidebar.
11265         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11266         MusicProperties action here from rb-shell-player.c, since it acts like
11267         cut/copy/paste etc.
11268         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11269         (rb_shell_clipboard_get_property): new property for queue source.
11270         Watch for selection changes in the sidebar entry view as well as the
11271         normal one.
11272         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11273         actions and MusicProperties.
11274         (rb_shell_clipboard_cmd_queue_delete),
11275         (rb_shell_clipboard_cmd_add_song_to_queue),
11276         (rb_shell_clipboard_cmd_song_info),
11277         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11279         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11280         actually came from (could be the playing source, or the queue), add a 
11281         new play order object for the queue, add a property for the queue
11282         source, add a signal for when we switch between playing from the
11283         source and from the queue.
11284         (rb_shell_player_set_property): Handle playing directly from the
11285         queue so we stop once the queue is empty.  Create queue play order
11286         when we get the queue source.
11287         (rb_shell_player_get_playing_source): Return the source we're actually
11288         playing from.
11289         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11290         that's where it is.
11291         (rb_shell_player_set_playing_entry): Update the queue play order if 
11292         that's where we're playing from.
11293         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11294         queue into consideration too.
11295         (swap_playing_source): Helper function for switching the playing
11296         source.
11297         (rb_shell_player_do_previous): Check the queue, even though there's
11298         never a previous entry in it (yet), swap playing source if it changed.
11299         (rb_shell_player_do_next): Check the queue for entries to play before
11300         the normal play order, and swap playing source if it changed.
11301         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11302         entries to go to as well.
11303         (rb_shell_player_playpause): Check the queue before the selection and
11304         the play order, and swap playing source if it changed.
11305         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11306         (rb_shell_player_entry_activated_cb): Use
11307         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11308         activating queue entries work properly (move the activated entry to
11309         the start of the queue and then play it); if we were playing from the
11310         queue, clear its playing entry so it'll start again from the start
11311         after the activated entry.
11312         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11313         to rb-shell-clipboard.c
11314         (actually_set_playing_source): Add helper for updating the playing
11315         source.
11316         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11317         signal if we stop or start doing so; use actually_set_playing_source; 
11318         emit playing-source-changed if we actually did change source.
11320         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11321         rb_static_playlist_source_add_location.
11323         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11324         enqueueing of songs from the library.
11326         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11327         enqueueing of sonsg from playlists.
11328         (rb_playlist_source_entry_added_cb): Add extra parameter for
11329         rhythmdb_query_model_add_entry.
11330         
11331         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11332         Implement (can_)add_to_queue for this class.
11333         (rb_podcast_source_entry_activated): Use
11334         rb_podcast_manager_entry_downloaded.
11335         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11336         been downloaded is selected.
11337         (impl_add_to_queue): Only add downloaded entries to the queue.
11339         * sources/rb-source.{c,h}:
11340         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11341         methods.
11342         (rb_source_class_init): Don't allow enqueueing by default; implement 
11343         add_to_queue though.
11344         (default_add_to_queue): Add all selected entries to the queue.
11345         
11346         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11347         would be playing if there wasn't anything in the queue).
11348         (set_source_playing): Helper function for manipulating tree store.
11349         (rb_sourcelist_set_playing_source): Use set_source_playing
11350         (rb_sourcelist_preempt_playing_source): Update preempted source
11351         pointer, manipulate source states.
11353         * sources/rb-static-playlist-source.{c,h}:
11354         (rb_static_playlist_source_add_location_internal),
11355         (rb_static_playlist_source_add_location),
11356         (rb_static_playlist_source_add_entry): Add index parameter for
11357         specifying where in the playlist the new entry goes.
11358         (rb_static_playlist_source_new_from_xml), (impl_paste),
11359         (rb_static_playlist_source_add_list_uri),
11360         (rb_static_playlist_source_add_location_swapped),
11361         (rb_static_playlist_source_add_locations),
11362         (rb_static_playlist_source_non_entry_dropped),
11363         (rb_static_playlist_source_row_inserted):
11364         Handle new index parameter everywhere it appears
11365         (rb_static_playlist_source_move_entry): New method for moving entries
11366         around in the playlist.
11368         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11369         warnings when trying to scroll entry views that have never been
11370         displayed.
11372         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11373         play order that removes the old entry when switching to a new one.
11375         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11376         static playlist subclass that has a second entry view for the sidebar
11377         view using alternate formatting, and that displays the number of
11378         entries it contains in its source list entry.
11380 2005-12-10  James Livingston  <jrl@ids.org.au>
11382         * rhythmdb/rhythmdb-query-model.c:
11383         (rhythmdb_query_model_add_entry),
11384         (rhythmdb_query_model_drag_data_received):
11385         * sources/rb-static-playlist-source.c:
11386         (rb_static_playlist_source_non_entry_dropped): when things are
11387         dropped, ignore any blank lines in the list of uris. Make the source
11388         responsible for adding new items to the db.
11390         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11391         empty string.
11393 2005-12-10  James Livingston  <jrl@ids.org.au>
11395         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11396         (rb_shell_player_sync_buttons),
11397         (rb_shell_player_selection_changed_cb): watch for the
11398         "selection-changed" signal, so that the Song Properties get enabled.
11399         Closes bug 323694.
11401 2005-12-10  James Livingston  <jrl@ids.org.au>
11403         * data/rhythmbox.schemas: fix the gconf schema
11405 2005-12-10  James Livingston  <jrl@ids.org.au>
11407         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11408         the decoded-pad callback with gstreamer 0.8, it causes problems.
11410 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11412         Remove more junk from RBEntryView. Closes bug 323640.
11414         * widgets/rb-entry-view.{c,h}:
11415         Remove unused private structure members, replace 'playing' boolean
11416         with an enum (so we know if we're paused too), and store a pointer to
11417         the RBShellPlayer too.  
11418         (rb_entry_view_class_init), (rb_entry_view_set_property),
11419         (rb_entry_view_get_property):
11420         Remove 'entry-selected' and 'changed' signals and
11421         'playing-entry' property, add 'selection-changed' signal and
11422         'shell-player' and 'playing-state' properties.
11423         (rb_entry_view_new): Take the shell player object reference
11424         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11425         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11426         No longer needed, shell player is the place to get this information.
11427         (rb_entry_view_busy), (rb_entry_view_get_duration),
11428         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11429         (rb_entry_view_get_next_from_entry),
11430         (rb_entry_view_get_previous_from_entry),
11431         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11432         (rb_entry_view_get_num_entries):
11433         Removed, callers should go to the query model directly.
11434         (rb_entry_view_playing_song_changed): Update active query model, emit
11435         row changed signals to update pixbufs, and scroll to the playing song
11436         when the playing song changes, based on a signal from the shell
11437         player.
11438         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11439         (emit_entry_changed): Evil, removed.
11440         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11441         selection-changed signal.
11442         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11443         Remove selection lock.  It didn't work anyway.
11444         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11445         (rb_entry_view_emit_row_changed): Simple helper function to emit
11446         row-changed signals.
11448         * widgets/Makefile.am: Entry view needs headers from the shell/
11449         directory.
11450         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11452         scrolling the entry view to show the entry being displayed.
11453         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11454         'source' property so we can watch for query model changes.
11455         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11456         (rb_song_info_set_property): Watch for query model changes, don't
11457         watch for entry view changes.
11458         (rb_song_info_new): Take source as a parameter, use the source's entry
11459         view unless one was specifically supplied.
11460         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11461         Use query model rather than entry view to move between songs.
11462         (rb_song_info_update_buttons): Use query model.
11463         (rb_song_info_query_model_changed_cb): Handle query model changes.
11465         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11466         Only one copy of the code to enable/disable the CD burning action
11467         (rb_playlist_manager_playlist_entries_changed):
11468         Use the query model to get the number of entries, not the entry view.
11470         * shell/rb-play-order-random-by-age-and-rating.c,
11471         shell/rb-play-order-random-by-age.c,
11472         shell/rb-play-order-random-by-rating.c,
11473         shell/rb-play-order-random-equal-weights.c:
11474         Use G_DEFINE_TYPE
11476         * shell/rb-shell-player.{c,h}:
11477         Remove a few unused entries from the structure.
11478         (rb_shell_player_set_property):
11479         Don't use the 'changed' signal on the entry view (it's evil)
11480         (rb_shell_player_have_first): No longer needed
11481         (rb_shell_player_play): Just tell the entry view it's playing
11482         (rb_shell_player_playpause): Tell the entry view it's paused
11483         when pausing.
11484         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11485         (rb_shell_player_property_row_activated_cb):
11486         Get the entry to play using the query model, not the entry view.
11487         (rb_shell_player_sync_buttons): Update entry view state while we're
11488         here.
11489         (rb_shell_player_set_playing_source_internal): Update entry view state
11490         (rb_shell_player_get_playing): Ask the entry view, not the player.
11491         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11492         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11493         the window title and tray icon tooltip.
11494         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11496         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11497         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11498         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11499         view constructor, pass the source in to the song info widget
11500         constructor.
11502         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11503         Use 'selection-changed' instead of 'changed', since that's what the
11504         clipboard cares about.
11505         (rb_shell_clipboard_set_source): Don't die if source == NULL
11507 2005-12-10  James Livingston  <jrl@ids.org.au>
11509         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11510         * sources/rb-playlist-source-recorder.c:
11511         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11512         stuff not use the deprecated API when compiled against 2.13
11514 2005-12-10  James Livingston  <jrl@ids.org.au>
11516         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11518         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11519         problem where the genre tag was getting set to the artist. Closes bug
11520         323642.
11522 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11524         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11525         Return NULL if can't get first iter.
11527         Fixes #323663
11529 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11531         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11532         updated rb_station_properties_dialog_new API.
11533         (rb_iradio_source_add_from_playlist): New public function.
11534         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11536         * shell/rb-shell.c (new_station_location_added): Handle
11537         iradio location added signal.
11538         (rb_shell_cmd_new_station): Use new iradio station dialog.
11540         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11541         (rb_station_properties_dialog_new): Don't squeeze new
11542         station functionality into this class.
11543         (rb_station_properties_dialog_response_cb): ditto.
11544         (rb_station_properties_dialog_update_title): Make
11545         consistent with other properties dialogs.
11546         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11548         * iradio/rb-new-station-dialog.[ch]: 
11549         * iradio/Makefile.am: Add new station dialog.
11551         * data/glade/station-new.glade: New file based on
11552         new podcast feed dialog.
11553         * data/glade/station-properties.glade: Updated to
11554         be consistent with song properties dialog.
11556         Fixes #323306.
11558 2005-12-10  James Livingston  <jrl@ids.org.au>
11560         patch by: Ståle Lyngaas <staale@lyngaas.com>
11562         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11563         submit songs longer than 30 minutes. Fixes bug 323639.
11565 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11567         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11568         async save function.
11569         (rb_shell_finalize): Remove save timeout sources.  Reorder
11570         steps a bit to make saving db and playlists a bit more
11571         failsafe in case something goes wrong later.
11572         (rb_shell_constructor): Keep track of save timeout source.
11573         (add_to_library_response_cb): Keep track of db save timeout source.
11575         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11576         g_atomic.
11577         (rb_playlist_manager_shutdown): New function to shutdown
11578         threads etc. before exit.
11579         (rb_playlist_manager_finalize): Moved handling outstanding
11580         threads stuff to shutdown since if there are outstanding threads
11581         they hold a ref and finalize is never called.
11582         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11583         of signal which may be required for sync save.
11584         (rb_playlist_manager_save_playlists_async): Renamed old
11585         save_playlists to save_playlists_async.  Use g_atomic.
11586         (rb_playlist_manager_save_playlists): New function to
11587         perform sync saves (symmetric with RhythmDB API).
11588         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11590         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11591         Style consistency anality.
11592         (rhythmdb_finalize): Remove save timeout source.
11593         (rhythmdb_set_property, rhythmdb_get_property) 
11594         (rhythmdb_process_events): More anality and keep track of
11595         save timeout source.
11596         (action_thread_main): No need to call g_thread_exit.
11597         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11598         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11599         (write_encoded_gvalue, read_encoded_property): La la la.
11601         Fixes #322940.
11603 2005-12-10  James Livingston  <jrl@ids.org.au>
11605         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11606         non-audio files.
11608 2005-12-10  James Livingston  <jrl@ids.org.au>
11610         * Makefile.am:
11611         * configure.ac: remove the rpm spec files, so that automake works.
11612         oops
11614         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11615         locking issue
11617 2005-12-09  James Livingston  <jrl@ids.org.au>
11619         * debian/: try to get cvs to actually remove the files
11621 2005-12-09  James Livingston  <jrl@ids.org.au>
11623         * rhythmbox.spec.in:
11624         * debian/: remove the distro package stuff, they are *really* old, and
11625         downstream manage it anyway.
11627 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11629         Rework play orders to work off query models rather than 
11630         entry views, and track the playing entry themselves rather
11631         than relying on the entry view to do it.  This makes the entry
11632         view mostly just a widget. Closes bug 323612.
11634         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11635         Use query model rather than entry view to get the number
11636         of entries in playlists.
11638         * rhythmdb/rhythmdb-query-model.{c.h}
11639         (rhythmdb_query_model_tree_path_to_entry),
11640         (rhythmdb_query_model_iter_to_entry),
11641         (rhythmdb_query_model_get_next_from_entry),
11642         (rhythmdb_query_model_get_previous_from_entry):
11643         New utility functions for iterating through query models.
11644         (rhythmdb_query_model_compute_status_normal):
11645         Have one copy of this code, not four.
11647         * shell/rb-play-order.{c,h}:
11648         Add signals for when next/previous availability changes, and
11649         when the playing entry is removed, and add a property for
11650         the current playing entry.  Add gtkdoc comments too.
11651         (rb_play_order_class_init): Add new property and signals.
11652         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11653         (rb_play_orer_query_model_changed_cb),
11654         (rb_play_order_query_model_changed): 
11655         Use query model rather than entry view.
11656         (rb_play_order_set_property), (rb_play_order_get_property):
11657         Handle new playing-entry property.  Call playing_entry_changed virtual
11658         method so subclasses can do any processing required.
11659         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11660         (rb_play_order_set_playing_entry):
11661         Just use the playing-entry property.
11662         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11663         Utility methods for subclasses.
11664         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11665         Update next/previous availability, check if the playing entry
11666         was removed.
11667         (default_playing_entry_removed):
11668         Keep the current behaviour of just stopping playback when the 
11669         playing entry is deleted.
11670         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11671         these for subclasses that don't have go_next/go_previous, but do
11672         have get_next/get_previous.
11673         (rb_play_order_update_have_next_previous): Emit signal if the
11674         availability of next/previous entries has changed.
11676         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11677         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11678         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11679         methods.
11680         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11681         on the last song in the shuffled order, go back to the start. This
11682         means if you press 'play' again you'll get the whole order again, not
11683         just one song.
11685         * shell/rb-shell-player.c:
11686         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11687         play order rather than the entry view.
11688         (rb_shell_player_set_property): Update the play order when the
11689         selected source changes and we aren't playing anything.
11690         (rb_shell_player_sync_play_order): Copy the playing entry across to
11691         the new play order so playback continues from the same song, and watch
11692         for updates to have_next/have_previous.
11693         (rb_shell_player_play_order_update_cb): Enable/disable the
11694         next/previous actions when next/previous entry availability changes.
11695         (rb_shell_player_jump_to_current): Just use the play order's idea of
11696         what's playing, not the entry view's; if not playing anything, clear
11697         the selection, so when a playlist ends and you hit play again, it'll
11698         start at the start rather than the end.
11699         (rb_shell_player_do_previous): restructure a bit.
11700         (rb_shell_player_do_next): restructure, jump to new playing entry in
11701         an idle handler instead of directly.
11702         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11703         song if there is one.
11704         (rb_shell_player_playpause): Jump to playing song, don't update the
11705         play order if we got the song from the selection.
11706         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11707         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11708         looks after next/previous actions now.  Don't break if called while
11709         there is no selected source.
11710         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11711         (rb_shell_player_set_playing_source_internal),
11712         (rb_shell_player_error): No need to track the attempted playing entry
11713         any more, since the play order does that.
11715         * shell/rb-shell.c:
11716         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11717         rb_shell_player_get_playing_entry rather than going through the entry
11718         view.
11720         * shell/rb-statusbar.c (rb_statusbar_set_property),
11721         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11722         than the entry view for status bar text changes.
11723         (rb_statusbar_sync_status): Ask the query model directly
11725         * sources/rb-source.{c}: Add query model property.
11726         (default_get_status): Get status text from query model, should be
11727         suitable for most sources.
11728         (rb_source_set_property): Listen for changes to the query model 
11729         to update the status text.
11730         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11731         (idle_emit_status_changed): Emit status-changed signals when query
11732         model changes. 
11734         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11735         (impl_get_status): Not needed, RBSource does this now
11736         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11737         Update RBSource's query model reference.
11739         * sources/rb-playlist-source.c:
11740         Remove query-model property, since RBSource has one now
11741         (impl_get_status): Not needed, RBSource does this now
11742         (rb_playlist_source_row_deleted): Use query model iterator helper
11743         function.
11744         (rb_playlist_source_set_query_model): Update RBSource's query model
11745         reference too.
11747         * sources/rb-iradio-source.c:
11748         (impl_get_status): Ask the query model directly.
11749         (rb_iradio_source_do_query): Update RBSource's query model reference
11750         when we create a new query.
11752         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11753         Use query model rather than entry view.
11755         * widgets/rb-entry-view.{c,h}: 
11756         Remove playing_entry_deleted signal (now in play order).
11757         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11758          as RhythmDBQueryModel has equivalent helper functions.
11759         (rb_entry_view_*): Use query model helpers instead of the above two
11760         functions.
11762 2005-12-09  James Livingston  <jrl@ids.org.au>
11764         * configure.ac:
11765         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11766         (rb_recorder_enabled):
11767         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11768         * sources/rb-playlist-source-recorder.c:
11769         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11770         whether libnautilusburn has the _drive_unref function, and if so use
11771         it. Stops it complaining about deprecated API.
11773 2005-12-09  James Livingston  <jrl@ids.org.au>
11775         * configure.ac: drop the minimum gstreamer version back down, it
11776         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11778 2005-12-09  James Livingston  <jrl@ids.org.au>
11780         * widgets/rb-song-info.c: (rb_song_info_class_init),
11781         (rb_song_info_show), (rb_song_info_constructor),
11782         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11783         (rb_song_info_forward_clicked_cb): save metadata changes when the
11784         Next/Previous buttons are pressed (closes bug 320952). use
11785         G_DEFINE_TYPE.
11787 2005-12-09  James Livingston  <jrl@ids.org.au>
11789         Patch by: <jonathan@kaolin.hn.org>
11791         * sources/rb-iradio-source.c:
11792         (stations_view_drag_data_received_cb):
11793         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11794         of urls. Fixes bug 323610.
11796 2005-12-09  James Livingston  <jrl@ids.org.au>
11798          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11799          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11801         * configure.ac:
11802         * metadata/rb-metadata-gst.c:
11803         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11804         (rb_player_construct), (rb_player_new):
11805         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11806         (rb_recorder_gst_signal_error), (pipe_message),
11807         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11808         (rb_recorder_new):
11809         * shell/main.c: (main):
11810         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11811         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11813 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11815         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11817         * shell/rb-playlist-manager.c:
11818           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11819           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11820           (rb_playlist_manager_set_automatic_playlist),
11821           (rb_playlist_manager_cmd_new_automatic_playlist),
11822           (rb_playlist_manager_cmd_edit_automatic_playlist):
11823            Use new playlist subclasses.
11824           (rb_playlist_manager_save_playlists): Only read the dirty flag
11825            for local playlists, minor pointless reformatting
11827         * sources/Makefile.am: add new files
11829         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11830           split lots of stuff out into two
11831           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11832           make RBPlaylistSource abstract, add virtual methods for showing a
11833           popup for the entry view and saving the playlist to XML.
11834           Other stuff is subclass-specific, or already virtual in RBSource.
11836         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11837           in one place, since they're used across three source files now
11839         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11840           Use new static playlist class
11842         * sources/rb-ipod-source.c: (add_rb_playlist):
11843           Use new static playlist class
11845         * sources/rb-static-playlist-source.{c,h},
11846         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11847         files.
11849         * po/POTFILES.in: add new files
11851 2005-12-07  James Livingston  <jrl@ids.org.au>
11853         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11854         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11855         metadata loads not attempt to write changes to disk.
11857 2005-12-07  James Livingston  <jrl@ids.org.au>
11859         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11861         * data/glade/song-info-multiple.glade:
11862         * widgets/rb-song-info.c: (rb_song_info_constructor),
11863         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11864         multiple songs at once.
11866 2005-12-06  James Livingston  <jrl@ids.org.au>
11868         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11869         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11871 2005-12-06  James Livingston  <jrl@ids.org.au>
11873         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11874         names rather than adding a horizontal scroll bar.
11876 2005-12-06  James Livingston  <jrl@ids.org.au>
11878         * rhythmdb/rhythmdb-query-model.c:
11879         (rhythmdb_query_model_update_limited_entries),
11880         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11881         messages
11883         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11884         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11885         always hide rather than remove DB entries, which will make RB not lose
11886         information when tag editing happens or people move files to trash and
11887         then change their mind. Also fix some races where the monitoring code
11888         would notice the temporary files generated by saving metadata.
11890 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11892         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11893         Hide internals and add tooltips.
11894         (rb_song_display_box_size_allocate): Hide internals.
11895         (sanitize_string, info_url): Copied from rb-header.
11896         (rb_song_display_box_sync): New public function.
11898         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11899         (rb_header_init): Use a separate row for the seek bar.
11900         (rb_header_finalize): Don't unref widgets.
11901         (rb_header_sync): Use rb_song_display_box_sync.
11902         (rb_header_set_urldata)
11903         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11904         (rb_header_set_show_position_slider): Set visibility of seek bar.
11905         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11906         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11908         * shell/rb-statusbar.c (rb_statusbar_init)
11909         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11911         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11912         (rb_shell_constructor): Remove hseparator.  Monitor
11913         toolbar visibility settings.  Add toolbar.  Add
11914         volume button to toolbar.  Add tooltips for volume button.
11915         (rb_shell_view_toolbar_changed_cb) 
11916         (rb_shell_sync_toolbar_visibility)
11917         (toolbar_visibility_changed_cb): Set visibility of
11918         toolbar.
11919         (rb_shell_sync_smalldisplay): Set the toolbar style to
11920         icons only when in small display mode.
11921         (rb_shell_volume_widget_changed_cb): Save volume setting.
11923         * shell/rb-shell-player.c (rb_shell_player_constructor):
11924         Remove pause and stop actions.  Make play action "important"
11925         so that text is visible in horizontal toolbar position.
11926         Remove control buttons.
11927         (rb_shell_player_init) 
11928         (rb_shell_player_sync_song_position_slider_visibility):
11929         Set visbibility of seek bar.
11930         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11931         Make play action a toggle.
11932         (rb_shell_player_sync_volume): Volume control moved
11933         to player.
11934         (gconf_song_position_slider_visibility_changed):
11935         Set visbibility of seek bar.
11936         (rb_shell_player_sync_buttons):
11937         Set sensitivity of actions instead of buttons.
11938         (rb_shell_player_playing_changed_cb): Add callback
11939         for player notify::playing changes.
11941         * lib/rb-preferences.h: Add hide toolbar and seek
11942         bar key names.
11944         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11945         seek bar menu items.  Remove pause and stop actions
11946         from the control menu.  Add a toolbar.
11948         * data/rhythmbox.schemas: Add toolbar_hidden
11949         song_position_slider_hidden keys.
11951         Patch by: James Livingston  <jrl@ids.org.au>
11952                   William Jon McCann  <mccann@jhu.edu>
11953         Fixes #316238.
11955 2005-12-05  James Livingston  <jrl@ids.org.au>
11957         * data/glade/library-prefs.glade:
11958         * data/rhythmbox.schemas:
11959         * lib/rb-preferences.h:
11960         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11961         (rhythmdb_sync_library_location):
11962         * sources/rb-library-source.c: (rb_library_source_class_init),
11963         (rb_library_source_finalize), (rb_library_source_constructor),
11964         (impl_get_config_widget), (rb_library_source_preferences_sync),
11965         (rb_library_source_watch_toggled_cb): allow people to disable library
11966         monitoring, because with nothing set the file chooser button selects
11967         the Home folder (and hence that will get monitored).
11969 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11971         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11972         attempt to fix problem with RSS parsing showing invalid feed types.
11973         Fixes bug 323153
11975 2005-12-04  James Livingston  <jrl@ids.org.au>
11977         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11978         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11979         importing a remote directory not block the UI.
11981 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11983         * data/glade/podcast-feed-properties.glade:
11984         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11986 2005-12-04  James Livingston  <jrl@ids.org.au>
11988         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11990         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11991         to && to fix a mistake in the earlier podcast patch.
11993 2005-12-03  James Livingston  <jrl@ids.org.au>
11995         * data/glade/podcast-new.glade:
11996         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11997         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11999         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12000         GValue, which stops occasional errors.
12002         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12003         compile issue.
12005 2005-12-03  James Livingston  <jrl@ids.org.au>
12007         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12009         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12010         crasher with some podcasts feeds.
12012 2005-12-03  James Livingston  <jrl@ids.org.au>
12014         * data/rhythmbox.schemas: fix the gconf schema
12016 2005-12-03  James Livingston  <jrl@ids.org.au>
12018         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12019         add a selection timeout to the sourcelist. This lets you hold a track
12020         over the playlist source, and then have the view switch so you can
12021         insert the track in the middle of the playlist. Closes bug 323044.
12023         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12024         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12025         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12026         (rb_tree_dnd_add_drag_dest_support):
12027         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12028         timeout.
12030         * sources/rb-sourcelist-model.c:
12031         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12032         the source list.
12034 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12036         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12037         links, so that the text doesn't touch the button
12039 2005-12-02  James Livingston  <jrl@ids.org.au>
12041         Add full support for gnome-vfs remote files. Closes bug 140355.
12043         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12044         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12045         for authentication information from the user doesn't block the UI.
12047         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12049         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12050         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12051         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12052         (rhythmdb_process_stat_event), (emit_load_error_idle),
12053         (rhythmdb_process_metadata_load),
12054         (rhythmdb_process_queued_entry_set_event),
12055         (rhythmdb_process_file_created_or_modified),
12056         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12057         (queue_stat_uri), (add_thread_main),
12058         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12059         (rhythmdb_load), (rhythmdb_save_thread_main),
12060         (threadsafe_entry_set), (rhythmdb_query_internal),
12061         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12062         (rhythmdb_do_full_query_internal),
12063         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12064         (rhythmdb_volume_unmounted_cb),
12065         (rhythmdb_check_changed_file): trivial changes to support the
12066         asynchronous stats.
12068         * shell/main.c: (main): activate the authentication manager.
12070         * shell/rb-playlist-manager.c:
12071         (rb_playlist_manager_cmd_load_playlist),
12072         (rb_playlist_manager_cmd_save_playlist):
12073         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12074         (rb_shell_cmd_add_file_to_library):
12075         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12076         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12077         remote files.
12079 2005-12-02  James Livingston  <jrl@ids.org.au>
12081         * shell/rb-playlist-manager.c: makes playlist menu items use the
12082         elipses correctly. Fixes bug 322283.
12084 2005-12-02  James Livingston  <jrl@ids.org.au>
12086         * shell/rb-playlist-manager.c:
12087         (rb_playlist_manager_load_playlists): fix silly mistake
12089 2005-12-02  James Livingston  <jrl@ids.org.au>
12091         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12092         print out metadata-write unless --debug was passed.
12094         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12095         * shell/rb-playlist-manager.c:
12096         (rb_playlist_manager_load_playlists): block writes to disk if they are
12097         still being loaded.
12099 2005-12-02  James Livingston  <jrl@ids.org.au>
12101         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12102         ctrl-T, because Ctrl-D is used by "small mode"
12104 2005-12-02  James Livingston  <jrl@ids.org.au>
12106         * shell/rb-shell-preferences.c:
12107         (rb_shell_preferences_append_view_page):
12108         * sources/rb-library-source.c: (impl_get_config_widget):
12109         * sources/rb-podcast-source.c: (impl_get_config_widget):
12110         * sources/rb-source.c: (rb_source_get_config_widget):
12111         * sources/rb-source.h: Make the preference actually work.
12113         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12114         if Rhythmbox is being run for the first time.
12116 2005-12-02  James Livingston  <jrl@ids.org.au>
12118         Add support for Rhythmbox to watch your library, and automatically add
12119         new tracks. Fixes bug 160159.
12121         * data/glade/library-prefs.glade: add "library location" preference
12122         * data/rhythmbox.schemas: add gconf key for the library location
12124         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12125         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12126         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12127         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12128         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12129         (rhythmdb_load_thread_main), (rhythmdb_load),
12130         (monitor_subdirectory), (monitor_library_directory),
12131         (monitor_entry_file), (rhythmdb_sync_library_location),
12132         (library_location_changed_cb), (rhythmdb_check_changed_file),
12133         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12134         specifiec in the gconf key for new additions. Also fix monitoring code
12135         so that it works properly, and notices deletions.
12137         * lib/rb-preferences.h:
12138         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12139         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12140         * shell/rb-audioscrobbler.h:
12141         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12142         (rb_shell_preferences_append_view_page),
12143         (rb_shell_preferences_new):
12144         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12145         it's preferences pane, so that we don't need #ifdef's through
12146         rb-shell-preferences.
12148         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12149         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12150         "preferences" property, so that sources can acccess it. This is needed
12151         because the library location pref needs to take effect when the window
12152         is closed.
12154         * sources/rb-library-source.c:
12155         (rb_library_source_library_location_changed),
12156         (rb_library_source_dispose), (rb_library_source_finalize),
12157         (rb_library_source_constructor), (impl_get_config_widget),
12158         (rb_library_source_preferences_sync),
12159         (rb_library_source_process_library_location_change),
12160         (rb_library_source_prefs_update),
12161         (rb_library_source_process_library_handle_selection),
12162         (rb_library_source_library_location_cb): set up and control the
12163         "library location" preference.
12165         * sources/rb-audiocd-source.c:(rb_source_class_init):
12166         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12167         code.
12169 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12171         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12172         (rb_feed_podcast_properties_dialog_update_title): 
12173         * data/glade/podcast-feed-properties.glade:
12174         Make the feed properties dialog consistent with the podcast
12175         properties dialog.
12177 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12179         * metadata/.cvsignore: 
12180         * po/.cvsignore: 
12181         * podcast/.cvsignore: Updated.
12183         * shell/main.c (main): Support DBus 0.6 flags.
12185 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12187         * data/ui/rhythmbox-ui.xml:
12188         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12189         (rhythmbd_entry_move_to_trash_set_error),
12190         (rhythmdb_entry_move_to_trash):
12191         * rhythmdb/rhythmdb.h:
12192         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12193         (rb_shell_clipboard_cmd_delete),
12194         (rb_shell_clipboard_cmd_move_to_trash):
12195         * sources/rb-library-source.c: (rb_library_source_class_init),
12196         (impl_delete), (impl_move_to_trash):
12197         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12198         (impl_delete), (impl_move_to_trash):
12199         * sources/rb-removable-media-source.c:
12200         (rb_removable_media_source_class_init):
12201         * sources/rb-source.c: (rb_source_class_init),
12202         (rb_source_can_move_to_trash), (rb_source_delete),
12203         (rb_source_move_to_trash):
12204         * sources/rb-source.h:
12205         Add move_to_trash member for the sources, implement move to trash for
12206         the library and playlists
12207         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12208         local files to the trash, and deleting them from the database
12209         (Closes: #315389)
12211 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12213         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12214         (rb_tray_icon_init, rb_tray_icon_finalize): 
12215         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12216         (rb_statusbar_init, rb_statusbar_finalize): 
12217         * shell/rb-source-header.c (rb_source_header_class_init) 
12218         (rb_source_header_init, rb_source_header_finalize): 
12219         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12220         (rb_shell_finalize): 
12221         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12222         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12223         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12224         (rb_shell_player_init, rb_shell_player_finalize): 
12225         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12226         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12227         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12228         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12229         * shell/rb-play-order.c (rb_play_order_class_init) 
12230         (rb_play_order_init, rb_play_order_finalize): 
12231         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12232         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12233         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12234         (rb_random_play_order_init, rb_random_play_order_finalize): 
12235         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12236         (rb_history_finalize): 
12237         * shell/rb-commander.c (rb_commander_class_init) 
12238         (rb_commander_init, rb_commander_finalize): 
12239         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12240         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12241         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12242         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12243         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12244         (rb_podcast_properties_dialog_init) 
12245         (rb_podcast_properties_dialog_finalize): 
12246         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12247         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12248         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12249         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12250         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12251         (rb_feed_podcast_properties_dialog_init) 
12252         (rb_feed_podcast_properties_dialog_finalize): 
12253         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12254         (rb_metadata_init, rb_metadata_finalize): 
12255         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12256         (rb_station_properties_dialog_init) 
12257         (rb_station_properties_dialog_finalize): 
12258         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12259         (rb_daap_share_init, rb_daap_share_dispose): 
12261         Use g_type_class_add_private in all classes. Closes bug 313688.
12262         
12263 2005-11-30  James Livingston  <jrl@ids.org.au>
12265         patch by: William Jon McCann <mccann@jhu.edu> to use
12266         g_type_class_add_private in all classes. Closes bug 313688.
12268         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12269         (rb_thread_finalize):
12270         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12271         (rb_player_finalize):
12272         * rhythmdb/rhythmdb-property-model.c:
12273         (rhythmdb_property_model_class_init),
12274         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12275         * rhythmdb/rhythmdb-query-model.c:
12276         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12277         (rhythmdb_query_model_finalize):
12278         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12279         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12280         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12281         (rhythmdb_finalize):
12282         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12283         (rb_daap_source_init), (rb_daap_source_dispose):
12284         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12285         (rb_iradio_source_init), (rb_iradio_source_finalize):
12286         * sources/rb-library-source.c: (rb_library_source_class_init),
12287         (rb_library_source_init), (rb_library_source_finalize):
12288         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12289         (rb_playlist_source_init), (rb_playlist_source_dispose):
12290         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12291         (rb_podcast_source_init), (rb_podcast_source_finalize):
12292         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12293         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12294         * sources/rb-sourcelist-model.h:
12295         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12296         (rb_sourcelist_init), (rb_sourcelist_finalize):
12297         * sources/rb-sourcelist.h:
12298         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12299         * widgets/rb-cell-renderer-rating.c:
12300         (rb_cell_renderer_rating_init),
12301         (rb_cell_renderer_rating_class_init),
12302         (rb_cell_renderer_rating_finalize):
12303         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12304         (rb_druid_finalize):
12305         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12306         (rb_entry_view_init), (rb_entry_view_finalize):
12307         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12308         (rb_header_finalize):
12309         * widgets/rb-load-failure-dialog.c:
12310         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12311         (rb_load_failure_dialog_finalize):
12312         * widgets/rb-property-view.c: (rb_property_view_class_init),
12313         (rb_property_view_init), (rb_property_view_finalize):
12314         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12315         (rb_rating_finalize):
12316         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12317         (rb_search_entry_init), (rb_search_entry_finalize):
12318         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12319         (rb_simple_view_init), (rb_simple_view_finalize):
12320         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12321         (rb_song_display_box_init), (rb_song_display_box_finalize):
12322         * widgets/rb-song-info.c: (rb_song_info_class_init),
12323         (rb_song_info_init), (rb_song_info_finalize):
12324         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12325         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12327 2005-11-30  James Livingston  <jrl@ids.org.au>
12329         * iradio/rb-station-properties-dialog.c:
12330         (rb_station_properties_dialog_init),
12331         (rb_station_properties_dialog_new):
12332         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12333         * lib/rb-glade-helpers.h:
12334         * podcast/rb-feed-podcast-properties-dialog.c:
12335         (rb_feed_podcast_properties_dialog_init),
12336         (rb_feed_podcast_properties_dialog_new):
12337         * podcast/rb-podcast-properties-dialog.c:
12338         (rb_podcast_properties_dialog_init),
12339         (rb_podcast_properties_dialog_new):
12340         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12341         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12342         * sources/rb-library-source.c: (impl_get_config_widget):
12343         * sources/rb-playlist-source-recorder.c:
12344         (rb_playlist_source_recorder_init):
12345         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12346         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12347         in rb-glade-helpers, rather than having eight implementation
12348         throughout the code.
12350 2005-11-30  James Livingston  <jrl@ids.org.au>
12352         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12353         * lib/rb-util.h:
12354         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12355         move the duration->string function into rb-utils, as it gets used in a
12356         few places.
12358         patch by: William Jon McCann <mccann@jhu.edu>
12360         * data/glade/podcast-properties.glade:
12361         * podcast/rb-podcast-properties-dialog.c:
12362         (rb_podcast_properties_dialog_init),
12363         (rb_podcast_properties_dialog_update),
12364         (rb_podcast_properties_dialog_update_title),
12365         (rb_podcast_properties_dialog_update_feed),
12366         (rb_podcast_properties_dialog_update_duration),
12367         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12368         info dialog look more like the song info dialog. Use the same "Feed"
12369         value that is displayed in the treeview (ie. the album field), displays
12370         the duration, uses units in the bitrate field, and sort the fields in
12371         the same order.
12373 2005-11-29  James Livingston  <jrl@ids.org.au>
12375         * rhythmdb/rhythmdb-marshal.list:
12376         * rhythmdb/rhythmdb.h:
12377         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12378         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12379         (entry_to_rb_metadata), (emit_save_error_idle),
12380         (action_thread_main): emit error signal when metadata write fails.
12382         * shell/rb-shell.c: (rb_shell_constructor),
12383         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12384         "metadata save" error and display it to the user.
12386 2005-11-29  James Livingston  <jrl@ids.org.au>
12388         * data/ui/rhythmbox-ui.xml:
12389         * sources/rb-podcast-source.c:
12390         (rb_podcast_source_songs_show_popup_cb),
12391         (rb_podcast_source_cmd_download_post),
12392         (rb_podcast_source_cmd_cancel_download): split download and cancel
12393         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12394         321653.
12396 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12398         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12399         title on alert dialogs per the HIG.
12401         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12402         the term Burn.
12403         (free_song_list): Routine to free song list.
12404         (rb_playlist_source_recorder_finalize): Use free_song_list.
12405         (rb_playlist_source_recorder_add_from_model): Return FALSE
12406         if unable to add all songs.  Check that duration of all
12407         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12408         Fixes #321753.
12410         * sources/rb-playlist-source-recorder.c (check_media_length)
12411         (rb_playlist_source_recorder_start): Only check the duration
12412         and current media if the playlist length is longer than a
12413         standard CD (74 min).  Otherwise, just let the Recorder do the
12414         check.
12415         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12416         drive at init.
12417         (rb_recorder_set_device): Don't leak drives.
12418         (rb_recorder_get_media_length): Use drive that was already set.
12419         (rb_recorder_burn): Let the recorder handle checking media type/size.
12420         Fixes bug 321754.
12422 2005-11-29  James Livingston  <jrl@ids.org.au>
12424         * rhythmdb/rhythmdb-query-model.c:
12425         (rhythmdb_query_model_set_sort_order):
12426         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12427         emitting the tree-model "resorted" signal.
12429         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12430         (rb_entry_view_finalize), (rb_entry_view_set_property),
12431         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12432         * widgets/rb-entry-view.h: add a function to resort the entry view,
12433         using the above function.
12435         * sources/rb-iradio-source.c:
12436         (rb_iradio_source_songs_view_sort_order_changed_cb):
12437         * sources/rb-library-source.c: (rb_library_source_finalize),
12438         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12439         * sources/rb-playlist-source.c:
12440         (rb_playlist_source_songs_sort_order_changed_cb):
12441         * sources/rb-podcast-source.c:
12442         (rb_podcast_source_posts_view_sort_order_changed_cb),
12443         (rb_podcast_source_do_query): use the above function instead of
12444         re-creating the query model. This makes changing the sorting an order
12445         of magnitude faster, as it uses a single resorted signal rather than
12446         deleting and re-adding everything (which emits 2N signals). Closes bug
12447         315389.
12449 2005-11-29  James Livingston  <jrl@ids.org.au>
12451         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12452         autosizing, which results in large speedups. Closes bug 312122.
12454         * po/ja.po: change the date format, so that it is a constant width
12456         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12457         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12458         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12459         (rb_entry_view_constructor): make columns use fixed widths,
12460         disable column autosizing, and enable fixed-height mode.
12462         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12463         (rb_entry_view_get_time_date_column_sample):
12464         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12465         and get the canonical date format for the locale.
12467 ============ Version 0.9.2
12469 2005-11-28  James Livingston  <jrl@ids.org.au>
12471         * configure.ac: bump version to 0.9.2
12472         * NEWS: update with changes for 0.9.2
12474 2005-11-28  James Livingston  <jrl@ids.org.au>
12476         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12478         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12479         Disable saving, renaming and delting for DAAP playlists.
12480         Fixes bug 322627.
12482 2005-11-28  James Livingston  <jrl@ids.org.au>
12484         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12485         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12486         prevent bug 322619.
12488         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12489         * sources/rb-removable-media-source.c:
12490         (rb_removable_media_source_class_init): fix ipod browser visibility
12491         problem.
12493 2005-11-28  James Livingston  <jrl@ids.org.au>
12495         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12496         Avahi 0.6 support actually work. Fixes bug 322519.
12498 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12500         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12501         avahi is specified in --with-mdns
12503 2005-11-27  James Livingston  <jrl@ids.org.au>
12505         patch by: Bastien Nocera <hadess@hadess.net>
12507         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12508         not the private one. Fixes bug 322485.
12510 2005-11-26  James Livingston  <jrl@ids.org.au>
12512         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12513         Avahi 0.6, as well as 0.5.
12515         * configure.ac:
12516         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12517         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12518         (add_service):
12520 2005-11-25  James Livingston  <jrl@ids.org.au>
12522         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12523         321926.
12525 2005-11-25  James Livingston  <jrl@ids.org.au>
12527         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12528         correct type for checking the date against 0. Stops a warning when
12529         saving metadata.
12531 2005-11-25  James Livingston  <jrl@ids.org.au>
12533         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12534         adjustment to be inside the element's limits. Without this songs that
12535         have large ReplayGain values will recieve no increase because they are
12536         outside the acceptable range, causing them to remain quiet.
12538 2005-11-25  James Livingston  <jrl@ids.org.au>
12540         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12541         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12542         * sources/rb-ipod-source.c:
12543         * sources/rb-source.h:
12544         * sources/rb-library-source.h:
12545         * sources/rb-library-source.c: (rb_library_source_class_init),
12546         (rb_library_source_constructor),
12547         (rb_library_source_has_first_added_column),
12548         (rb_library_source_has_drop_support):
12549         * sources/rb-removable-media-source.c:
12550         (rb_removable_media_source_class_init): Make library-derived sources
12551         not show the Date Added column, as it doesn't make sense. Fixes bug
12552         322269.
12553         Move some of the feature funcs from the ipod and audio cd sources up to
12554         the removable media source.
12556 2005-11-24  James Livingston  <jrl@ids.org.au>
12558         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12559         errors. oops.
12561 2005-11-24  James Livingston  <jrl@ids.org.au>
12563         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12564         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12565         (rb_iradio_source_constructor): Chain up dispose method and use
12566         G_DEFINE_TYPE
12568 2005-11-24  James Livingston  <jrl@ids.org.au>
12570         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12571         mistake in the last commit that can cause crashes.
12573 2005-11-24  James Livingston  <jrl@ids.org.au>
12575         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12576         instead of g_printerr.
12578         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12579         rb_debug instead of g_warning. The message happens every time for
12580         removable media/daap shares, so it's not unusual.
12582 2005-11-24  James Livingston  <jrl@ids.org.au>
12584         patch by: Tom Parker <palfrey@tevp.net>
12586         * configure.ac: fix libsoup test for enabling daap
12588 2005-11-23  James Livingston  <jrl@ids.org.au>
12590         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12591         (rb_query_creator_init), (rb_query_creator_constructor),
12592         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12593         empty row to queries with no criteria. Fixes bug 322078. use
12594         G_DEFINE_TYPE.
12596 2005-11-23  James Livingston  <jrl@ids.org.au>
12598         patch by:  <baptiste.millemathias@gmail.com>
12600         * help/C/quick-reference.xml: update the quick reference to have the
12601         correct key bindings.
12603 2005-11-22  James Livingston  <jrl@ids.org.au>
12605         * sources/rb-library-source.c: (genres_selection_reset_cb),
12606         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12607         reset the query when all browser selections are removed.
12609 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12611         * podcast/rb-podcast-manager.c:
12612         (rb_podcast_manager_db_entry_deleted_cb):
12613         Use a custom loop to remove podcast posts, rather than
12614         gtk_tree_model_foreach(), as deleting the entries within
12615         that loop causes the iterator to return the first entry
12616         twice.  Instead, we need to find the next entry before
12617         removing the current one. Fixes bug 321956.
12618         (rb_podcast_manager_entry_remove_cb): No longer needed.
12620 2005-11-22  James Livingston  <jrl@ids.org.au>
12622         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12623         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12624         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12626 2005-11-22  James Livingston  <jrl@ids.org.au>
12628         * sources/rb-podcast-source.c:
12629         (rb_podcast_source_post_date_cell_sort_func),
12630         (rb_podcast_source_post_status_cell_sort_func),
12631         (rb_podcast_source_post_feed_cell_sort_func):
12632         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12633         (rb_entry_view_album_sort_func),
12634         (rb_entry_view_double_ceiling_sort_func),
12635         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12636         the entry's location as a last resort when sorting, so the sort order
12637         is stable. This will stop entries moving around when two entries have
12638         the same sorting, and one of them gets played.
12640 2005-11-22  James Livingston  <jrl@ids.org.au>
12642         * daapsharing/rb-daap-connection.c:
12643         (rb_daap_connection_class_init), (rb_daap_connection_init),
12644         (connection_get_password), (build_message),
12645         (http_response_handler), (http_get), (handle_server_info),
12646         (handle_login), (handle_update), (handle_database_info),
12647         (handle_song_listing), (handle_playlists),
12648         (handle_playlist_entries), (rb_daap_connection_new),
12649         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12650         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12651         (rb_daap_connection_get_headers),
12652         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12653         (rb_daap_connection_set_property),
12654         (rb_daap_connection_get_property):
12655         * daapsharing/rb-daap-connection.h:
12656         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12657         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12658         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12659         of destroying the object when it is going to be used by a callback and
12660         fixes a double-free. Fixes bugs 321930 and 322007.
12662 2005-11-22  James Livingston  <jrl@ids.org.au>
12664         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12665         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12666         notification if there aren't any. Fixes bug 321968.
12668 2005-11-22  James Livingston  <jrl@ids.org.au>
12670         * rhythmdb/rhythmdb-property-model.c:
12671         (rhythmdb_property_model_set_property),
12672         (rhythmdb_property_model_finalize),
12673         (rhythmdb_property_model_compare),
12674         (rhythmdb_property_model_insert),
12675         (rhythmdb_property_model_delete_prop): Fix property model sorting
12676         where the display and sort keys are different. Fixes bug 321980.
12678 2005-11-22  James Livingston  <jrl@ids.org.au>
12680         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12681         when import as a file or passed on the command line, and load them as
12682         playlists.
12684 2005-11-22  James Livingston  <jrl@ids.org.au>
12686         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12688         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12689         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12690         a broken daap server. Fixes bug 321919.
12692 2005-11-22  James Livingston  <jrl@ids.org.au>
12694         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12695         drag-and-drop for both the episodes and feeds list.
12696         
12697         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12698         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12699         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12701         * widgets/rb-property-view.c: (rb_property_view_class_init),
12702         (rb_property_view_set_property), (rb_property_view_get_property),
12703         (rb_property_view_new), (rb_property_view_constructor):
12704         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12705         (rb_simple_view_new), (rb_simple_view_constructor):
12706         * widgets/rb-simple-view.h: add a "draggable" property to property
12707         views and set it to false for the feed list. Fixes bug 321284.
12709 2005-11-22  James Livingston  <jrl@ids.org.au>
12711         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12713         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12714         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12715         * sources/rb-ipod-source.c: (add_rb_playlist):
12716         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12717         (rb_playlist_source_set_property),
12718         (rb_playlist_source_get_property), (rb_playlist_source_new),
12719         (impl_receive_drag), (rb_playlist_source_add_location),
12720         (rb_playlist_source_new_from_xml):
12721         * sources/rb-playlist-source.h: give playlists and (optional)
12722         entry-type, and reject entries that don't match. Fixes bug 322006.
12724 2005-11-21  James Livingston  <jrl@ids.org.au>
12726         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12727         (rb_source_header_finalize): remove the weak references when the
12728         source header is finalised. Stops the callbacks being called after the
12729         object is destroyed.
12731 2005-11-21  James Livingston  <jrl@ids.org.au>
12733         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12734         --no-registration was passed. It causes warnings that make it
12735         impossible to run with --no-registration --g-fatal-warnings
12737 2005-11-21  James Livingston  <jrl@ids.org.au>
12739         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12740         of strings when they are still in use. Fixes bug 321547.
12742         (rb_daap_connection_destroy): fix memory leak
12744 2005-11-21  James Livingston  <jrl@ids.org.au>
12746         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12747         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12748         (rb_daap_mdns_resolve_cancel), (publish_cb),
12749         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12750         support.
12752 2005-11-21  James Livingston  <jrl@ids.org.au>
12754         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12755         sorting by genre
12757 2005-11-20  James Livingston  <jrl@ids.org.au>
12759         * podcast/rb-podcast-manager.c:
12760         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12761         that we don't leak thread structures. Fixes bug 321636, and probably
12762         321775.
12764 2005-11-20  James Livingston  <jrl@ids.org.au>
12766         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12767         (lookup_cd):
12768         * podcast/rb-podcast-manager.c: (start_job),
12769         (rb_podcast_manager_db_entry_deleted_cb),
12770         (rb_podcast_manager_entry_remove_cb):
12771         * podcast/rb-podcast-parse.c: (rb_insert_item),
12772         (rb_podcast_parse_load_feed):
12773         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12774         * shell/rb-removable-media-manager.c:
12775         (rb_removable_media_manager_append_media_source):
12776         * shell/rb-shell.c: (add_to_library_response_cb):
12777         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12778         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12779         * sources/rb-iradio-source.c:
12780         (stations_view_drag_data_received_cb):
12781         * sources/rb-library-source.c: (string_list_equal),
12782         (impl_get_extra_views), (impl_receive_drag):
12783         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12784         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12785         (impl_receive_drag):
12786         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12787         (rb_entry_view_append_column_custom), (harvest_entries):
12788         * widgets/rb-property-view.c:
12789         (rb_property_view_selection_changed_cb):
12790         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12791         switch from using g_list_append to g_list_prepend. This changes
12792         operations from O(n^2) to O(n), which in cases like deleting a lot of
12793         tracks can give huge improvements in speed. Closes bug 321696.
12795 2005-11-20  James Livingston  <jrl@ids.org.au>
12797         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12798         (rb_sourcelist_update_expander_visibility): fix indenting of child
12799         sources.
12801 2005-11-20  James Livingston  <jrl@ids.org.au>
12803         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12804         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12805         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12806         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12807         (add_service), (entry_group_cb): dynamically allocate memory, rather
12808         than using static variables.
12810         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12811         re-enable the daap share if the name hasn't changed.
12812         * shell/rb-shell-preferences.c:
12813         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12814         change it's name when the checkbox is disabled. Fixed bug 321748.
12816 2005-11-18  James Livingston  <jrl@ids.org.au>
12818         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12819         as hidden if it is on the current workspace.
12821 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12823         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12824         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12825         (rb_podcast_properties_dialog_parse_time): 
12826         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12827         (rb_feed_podcast_properties_dialog_parse_time):
12828         Rework the way the last mod time strings are created.  It was using
12829         thread unsafe functions, not creating value UTF, and not not checking
12830         the value of the result before modifying it.  This new method fixes
12831         these problems.
12833 2005-11-18  James Livingston  <jrl@ids.org.au>
12835         Don't reset the search box when viewing a different source, because it
12836         will change what is being played. Closes 321593.
12838         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12839         the search box
12841         * shell/rb-source-header.c: (rb_source_header_class_init),
12842         (rb_source_header_init), (rb_source_header_finalize): use
12843         G_DEFINE_TYPE.
12845         (rb_source_header_set_property),
12846         (rb_source_header_source_weak_destroy_cb),
12847         (rb_source_header_search_cb): store the search text when leaving a
12848         source and put it in the search box when viewing it again.
12850 2005-11-18  James Livingston  <jrl@ids.org.au>
12852         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12853         (save_entry):
12854         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12855         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12856         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12857         time stamp.
12859         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12860         last-seen as the timestamp of the last update of the feed. Don't
12861         re-add episodes that have been deleted. Closes 319759.
12863 2005-11-18  James Livingston  <jrl@ids.org.au>
12865         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12866         that don't have the day name at the start. Closes 321645.
12868 2005-11-18  James Livingston  <jrl@ids.org.au>
12870         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12871         (rb_podcast_manager_copy_post),
12872         (rb_podcast_manager_get_podcast_dir):
12873         * podcast/rb-podcast-manager.h:
12874         * sources/rb-podcast-source.c: (impl_get_config_widget),
12875         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12876         download location switching to / if the prefs were opened before
12877         downloading an episode. Closes 321611.
12879 2005-11-18  James Livingston  <jrl@ids.org.au>
12881         * data/glade/podcast-new.glade:
12882         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12883         (rb_new_podcast_dialog_set_property),
12884         (rb_new_podcast_dialog_get_property),
12885         (rb_new_podcast_dialog_response_cb),
12886         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12887         for entering new podcast urls in. Closes bug 321610.
12889 2005-11-18  James Livingston  <jrl@ids.org.au>
12891         * sources/rb-podcast-source.c: (construct_query_from_selection),
12892         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12893         without restarting RB. Closes bug 321612.
12895 2005-11-18  James Livingston  <jrl@ids.org.au>
12897         * widgets/rb-entry-view.c: (set_column_visibility),
12898         (rb_entry_view_sync_columns_visible): when changing visibility of one
12899         column, don't hide and re-show all the others. Makes a show/hide
12900         column operation a lot faster.
12902 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12904         Closes bug 321702.
12906         * iradio/rb-station-properties-dialog.c
12907          (rb_station_properties_dialog_update_bitrate):
12908         Mark the bitrate value as being kbps, using the same
12909         translatable format string as rb-song-info.c
12911         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12912          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12914         * shell/rb-shell-player.c (info_available_cb):
12915          Use RB_METADATA_FIELD_BITRATE to update the iradio
12916          station's bitrate value.
12918 2005-11-17  James Livingston  <jrl@ids.org.au>
12920         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12922         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12923         free a NULL date.
12925 2005-11-17  James Livingston  <jrl@ids.org.au>
12927         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12929         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12930         assertions. Lookup the icon size correctly.
12932 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12934         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12935         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12936         Fix build errors.
12938 2005-11-16  James Livingston  <jrl@ids.org.au>
12940         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12941         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12942         (rb_shell_preferences_sync_column_button): block the toggle signal of
12943         the column checkboxes while setting their initial state. This stops
12944         the visibility being re-set, which causes a lot of time being spent
12945         measuring the columns aagin when opening the prefs window.
12947         Use G_DEFINE_TYPE.
12949 2005-11-16  James Livingston  <jrl@ids.org.au>
12951         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12952         (rb_sourcelist_edit_source_name): don't assume that the editable
12953         source name is in the first column, because it isn't. Fixes bug
12954         320137.
12956 2005-11-16  James Livingston  <jrl@ids.org.au>
12958         * daapsharing/rb-daap-mdns.h:
12959         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12960         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12961         parts can know why operations failed. Avahi can report that the daemon
12962         was not running. Howl doesn't do this (yet).
12963         
12964         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12965         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12966         (browse_cb): don't display mdns errors to the user, if it wa because
12967         the daemon was not running.
12969 2005-11-16  James Livingston  <jrl@ids.org.au>
12971         * rhythmdb/rhythmdb-property-model.c:
12972         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12973         (rhythmdb_property_model_compare),
12974         (rhythmdb_property_model_insert),
12975         (rhythmdb_property_model_insert_prop),
12976         (rhythmdb_property_model_delete),
12977         (rhythmdb_property_model_delete_prop),
12978         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12979         copying the string and re-creating the sort key. Saves a little bit of
12980         memory and time.
12982         (rhythmdb_property_model_perform_sync),
12983         (rhythmdb_property_model_sync): perform the count sync in an idle
12984         callback, so that it doesn't have to be re-run once per value when
12985         loading.
12987 2005-11-16  James Livingston  <jrl@ids.org.au>
12989         * rhythmdb/rhythmdb-query-model.c:
12990         (rhythmdb_query_model_entry_deleted_cb),
12991         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12992         limited list. Stops problems if they are deleted, and then things on
12993         the main list are
12995 2005-11-16  James Livingston  <jrl@ids.org.au>
12997         * NEWS: update NEWS
12999         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13000         button's minimise-to-tray action
13002 2005-11-16  James Livingston  <jrl@ids.org.au>
13004         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13005         leak. Disable adding newly created files for now, because it doesn't
13006         work properly.
13008         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13009         (rb_sourcelist_model_finalize):
13010         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13011         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13013 2005-11-16  James Livingston  <jrl@ids.org.au>
13015         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13016         problem where a GError* wasn't being set to NULL. Actually check the
13017         result.
13019 2005-11-16  James Livingston  <jrl@ids.org.au>
13021         * doc/reference/tmpl/rb-entry-view.sgml:
13022         * doc/reference/tmpl/rhythmbox-unused.sgml:
13023         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13024         * doc/reference/tmpl/rhythmdb.sgml:
13025         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13026         docs, including the patch that was on bug 
13028         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13029         API, because it should only be used by RhythmDB itself.
13031 2005-11-16  James Livingston  <jrl@ids.org.au>
13033         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13034         pausing by middle clicking on the tray icon.
13036 2005-11-15  James Livingston  <jrl@ids.org.au>
13038         * configure.ac: enable audioscrobbler support by default, if libsoup
13039         is present.
13041 2005-11-15  James Livingston  <jrl@ids.org.au>
13043         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13044         Closes bug 321157.
13046         * configure.ac:
13047         * daapsharing/rb-daap-connection.c: (build_message),
13048         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13049         support gzip encoded daap connections.
13051         (handle_song_listing): fix leak
13053 2005-11-15  James Livingston  <jrl@ids.org.au>
13055         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13056         * sources/rb-podcast-source.c:
13057         (rb_podcast_source_post_date_cell_data_func): make the date format
13058         translatable again, so that translators can choose the best format for
13059         their locale (%x is huge in some locales)
13061 2005-11-15  James Livingston  <jrl@ids.org.au>
13063         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13064         (end_job): mark podcast episodes as failed, if the metadata load
13065         fails. This will prevent people playing non-audio enclosures, helping
13066         stop bug 320366.
13068 2005-11-14  James Livingston  <jrl@ids.org.au>
13070         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13071         video sink to fakesink. This will stop problems (potentially crashers)
13072         that will occur if the file contains a video stream.
13074         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13075         rather than using magic numbers everywhere.
13077         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13078         * sources/rb-podcast-source.c:
13079         (rb_podcast_source_songs_show_popup_cb),
13080         (rb_podcast_source_cmd_download_post),
13081         (rb_podcast_source_post_status_cell_data_func),
13082         (rb_podcast_source_entry_activated_cb): use the above constants.
13084         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13085         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13086         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13087         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13088         (cancel_job), (download_progress_cb),
13089         (rb_podcast_manager_cancel_download),
13090         (rb_podcast_manager_insert_feed): use the constants, and fix a
13091         trhead-safety issue.
13093 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13095         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13096         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13097         entry-changed events after stats on startup, fixes entry deleted from
13098         filtered views not disappearing
13100 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13102         Fix rhythmdb query model refcount and polling problems. Closes bug
13103         321410.
13105         * rhythmdb/rhythmdb-property-model.c:
13106         (rhythmdb_property_model_finalize):
13107          Unref the query model if we have one.
13109         * rhythmdb/rhythmdb-query-model.h:
13110          Remove poll and cancel methods.  Query cancellation
13111          never did anything anyway.
13113         * rhythmdb/rhythmdb-query-model.c:
13114         (rhythmdb_query_model_init): Remove GAsyncQueues.
13115          Replace the GAsyncQueue-based update processing
13116          with a simpler g_idle_add approach; still has the
13117          same queueing properties, but now we don't poll the
13118          model forever and updates are processed immediately.
13120         (_unref_entry), (rhythmdb_query_model_finalize):
13121          Unref DB entries when finalized
13123         (rhythmdb_query_model_has_pending_changes):
13124          Use our own counter to decide if there are updates pending
13126         (rhythmdb_query_model_process_update), (idle_process_update):
13127          Process updates using g_idle_add, or directly if possible
13129         (rhythmdb_query_model_signal_complete),
13130         (rhythmdb_query_model_add_entries):
13131          Change to new update processing method
13133         (idle_poll_model), (rhythmdb_query_model_poll):
13134          Remove GAsyncQueue-based update processing.
13136         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13137          No need to poll the model any more - updates are processed
13138          directly for synchronous queries.
13140         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13141          Property model needs to be unref'd here
13143         * sources/rb-library-source.c: (rb_library_source_do_query):
13144          Don't try to cancel the active query (it never worked anyway),
13145          remove obsolete poll call, unref property models as required,
13146          and don't unref the cached 'all' query, since hold on to it.
13147          We unref it when the sort order changes, which forces the query
13148          to be rerun.
13150         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13151          Unref the property model as required
13153         (rb_podcast_source_do_query):
13154          Treat any query with no selected feeds and no search text as
13155          an 'all' query.  Unref query models except for the cached
13156          'all' query, since we hold on to that.
13158         (rb_podcast_source_cmd_update_all):
13159          Unref the property model as required.
13161         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13162          Don't try to cancel the query (it never worked anyway)
13164         (rb_entry_view_poll_model):
13165          No need for this any more.
13167         * widgets/rb-entry-view.h:
13168          Remove obsolete function rb_entry_view_poll_model
13170         * widgets/rb-property-view.c: (rb_property_view_set_property):
13171          Ref and unref the property model as required.
13173 2005-11-14  James Livingston  <jrl@ids.org.au>
13175         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13177         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13178         for error. Closes bug 321416.
13180 2005-11-14  James Livingston  <jrl@ids.org.au>
13182         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13184         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13185         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13187 2005-11-14  James Livingston  <jrl@ids.org.au>
13189         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13190         * shell/rb-removable-media-manager.c:
13191         (rb_removable_media_manager_set_uimanager):
13192         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13193         translation domain for GTK action groups.
13195 2005-11-12  James Livingston  <jrl@ids.org.au>
13197         * po/POTFILES.in: remove the old station-new files
13199 2005-11-12  James Livingston  <jrl@ids.org.au>
13201         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13202         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13203         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13204         when upgrading from a pre-Date-supporting version to a version that
13205         supports Date metadata. Closes bug 320760.
13207 2005-11-12  James Livingston  <jrl@ids.org.au>
13209         Add "update all podcast feeds" command. Closes bug 319954.
13211         * data/ui/rhythmbox-ui.xml: add to source context menu.
13213         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13214         (register_action_group), (rb_podcast_source_cmd_download_post),
13215         (rb_podcast_source_cmd_delete_feed),
13216         (rb_podcast_source_cmd_properties_feed),
13217         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13218         rather than the shell.
13220         (rb_podcast_source_update_feed_func),
13221         (rb_podcast_source_cmd_update_all): update every feed.
13223 2005-11-11  James Livingston  <jrl@ids.org.au>
13225         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13226         (rb_shell_player_constructor), (rb_shell_player_finalize):
13227         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13228         others follow the HIG recommentations.
13230 2005-11-11  James Livingston  <jrl@ids.org.au>
13232         * podcast/rb-podcast-manager.c:
13233         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13234         before trying to use it.
13236 2005-11-11  James Livingston  <jrl@ids.org.au>
13238         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13239         (rb_entry_view_append_column): When sorting by year, sort by album
13240         within a particular year.
13242 2005-11-11  James Livingston  <jrl@ids.org.au>
13244         * NEWS: updates
13246 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13247         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13248         spelling of "Language."
13250 2005-11-11  James Livingston  <jrl@ids.org.au>
13252         * rhythmdb/rhythmdb-property-model.c:
13253         (rhythmdb_property_model_row_inserted_cb),
13254         (rhythmdb_property_model_prop_changed_cb),
13255         (rhythmdb_property_model_entry_removed_cb),
13256         (rhythmdb_property_model_insert_prop),
13257         (rhythmdb_property_model_sync): display the count after the "All"
13258         entry of a property model.
13260         * widgets/rb-property-view.c: (rb_property_view_class_init),
13261         (rb_property_view_finalize), (rb_property_view_constructor): use
13262         G_DEFINE_TYPE
13264 2005-11-10  James Livingston  <jrl@ids.org.au>
13266         * rhythmdb/rhythmdb-query-model.c:
13267         (rhythmdb_query_model_remove_entry):
13268         * rhythmdb/rhythmdb-query-model.h: make
13269         rhythmdb_query_model_remove_entry return whether the entry was in the
13270         model.
13272         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13273         don't add non-SONG entries, as it doesn't really work and can cause
13274         crashes.
13276         (rb_playlist_source_remove_location): assert if the playlist and model
13277         differ on whether the entry is in the playlist
13279 2005-11-10  James Livingston  <jrl@ids.org.au>
13281         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13282         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13283         (rb_podcast_manager_thread_parse_feed),
13284         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13285         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13286         emulating one with a list and mutex. Fixes a couple of threading
13287         issues.
13288         
13289         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13290         updated feeds.
13291         
13292         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13293         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13294         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13295         * podcast/rb-podcast-parse.c: (rb_insert_item),
13296         (rb_podcast_parse_channel_free):
13297         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13298         fix some typos, and make a bit of code clearer.
13300 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13302         Make the "delete podcast" dialog better. Closes bug 320899.
13304         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13305         Add PROP_WINDOW for rb_shell_get_property so we can access the
13306         GtkWindow widget of the main window. 
13307         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13308         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13309         podcast feed delete dialog less confusing as well.
13311 2005-11-09  James Livingston  <jrl@ids.org.au>
13313         * shell/rb-removable-media-manager.c:
13314         (rb_removable_media_manager_mount_volume),
13315         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13316         NULL for a cd volume.
13318 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13320         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13321         method return a gboolean indicating whether the changes
13322         to the entry have already been applied.
13324         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13325         only modify the entry if impl_entry_set returns FALSE.
13327         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13328         When setting the location of an entry, update the
13329         hash table mapping locations to entries.
13331 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13333         * data/glade/Makefile.am:
13334         * iradio/Makefile.am:
13335           Remove 'new station' dialog.
13337         * iradio/rb-station-properties-dialog.h:
13338         * sources/rb-iradio-source.c: (impl_song_properties):
13339         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13340          Add 'new station' mode parameter to
13341          rb_station_properties_dialog_new.
13343         * (rb_station_properties_dialog_response_cb),
13344         (rb_station_properties_dialog_create_station):
13345          When in 'new station' mode, create the station
13346          when OK button is pressed.
13348         * iradio/rb-station-properties-dialog.c:
13349         (rb_station_properties_dialog_location_changed_cb):
13350          Only enable OK button if a location is specified
13351         (rb_station_properties_dialog_init),
13352         (rb_station_properties_dialog_new),
13353         (rb_station_properties_dialog_update),
13354         (rb_station_properties_dialog_update_title),
13355         (rb_station_properties_dialog_rated_cb),
13356         (rb_station_properties_dialog_update_play_count),
13357         (rb_station_properties_dialog_update_bitrate),
13358         (rb_station_properties_dialog_update_last_played),
13359         (rb_station_properties_dialog_update_rating),
13360         (rb_station_properties_dialog_update_playback_error),
13361         (rb_station_properties_dialog_show):
13362          Handle 'new station' mode, where there's no current
13363          station to edit.
13365 2005-11-08  James Livingston  <jrl@ids.org.au>
13367         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13368         keybinding for track columns consistent between library and playlist
13369         sources.
13371 2005-11-07  James Livingston  <jrl@ids.org.au>
13373         * data/ui/rhythmbox-ui.xml:
13374         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13375         "Edit" item to playlist menu. Closes bug 311470.
13377 2005-11-07  James Livingston  <jrl@ids.org.au>
13379         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13381         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13382         confirmation to save dialogs, with gtk 2.8 or higher.
13384 2005-11-07 James Livingston  <jrl@ids.org.au>
13385         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13386         requirement to a general on, because people are going to have it for
13387         the other dependencies.
13389 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13391         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13392         delete dialog less confusing.  Use HIG recommended button order.
13393         Closes bug 320840.
13395 2005-11-06  James Livingston  <jrl@ids.org.au>
13397         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13398         drag-and-drop error.
13399         
13400         * sources/rb-library-source.c: (rb_library_source_constructor): only
13401         add drag-and-drop for the Library itself, subclasses can add support
13402         themselves if they want it.
13404         * sources/rb-removable-media-source.c:
13405         (rb_removable_media_source_class_init): by default removable media
13406         sources do not support dnd
13408 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13410         * data/glade/station-properties.glade:
13411          Add box containing error icon and error message label
13412         * iradio/rb-station-properties-dialog.c:
13413         (rb_station_properties_dialog_class_init),
13414         (rb_station_properties_dialog_finalize):
13415          Change this class to use G_DEFINE_TYPE
13416         (rb_station_properties_dialog_init),
13417         (rb_station_properties_dialog_update),
13418         (rb_station_properties_dialog_update_playback_error):
13419          Display error icon and message when there is one, and hide the error
13420          box otherwise.
13421         (rb_station_properties_dialog_show): Hack widget show
13422          method to update the visibility of the error info box when showing
13423          the widget.  Otherwise the icon is displayed all the time (same thing
13424          is done in rb-song-info). Closes bug 320749.
13426 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13428         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13429         parsing of the duration of podcast episodes from the feed. Closes bug
13430         320748.
13432 2005-11-05  James Livingston  <jrl@ids.org.au>
13434         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13435         release date metadata ("Year"). Closes bug 166093.
13437         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13438         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13439         (rb_metadata_gst_add_tag_data):
13440         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13441         (save_entry):
13442         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13443         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13444         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13445         (rhythmdb_prop_get_type):
13446         * rhythmdb/rhythmdb.h: add support for "date" property
13447         
13448         * data/glade/general-prefs.glade:
13449         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13450         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13451         (rb_entry_view_append_column):
13452         * widgets/rb-entry-view.h:
13453         * sources/rb-library-source.c: (rb_library_source_constructor):
13454         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13455         "Year" colums
13457         * data/glade/song-info.glade:
13458         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13459         (rb_song_info_construct_single), (rb_song_info_constructor),
13460         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13461         (rb_song_info_sync_entry_single): Add "Year" to song info window
13463         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13464         sorted by year.
13466 2005-11-05  James Livingston  <jrl@ids.org.au>
13468         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13469         description if it's very long.
13471 2005-11-05  James Livingston  <jrl@ids.org.au>
13473         pathc by: Artem Baguinski <femistofel@gmail.com>
13475         * help/C/Makefile.am:
13476         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13477         Closes bug 320613.
13479 2005-11-05  James Livingston  <jrl@ids.org.au>
13481         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13483         * daapsharing/rb-daap-share.c: (write_next_chunk),
13484         (message_finished), (databases_cb): Use chunked file loading and
13485         sending in the DAAP server. This should reduce the amount of memory
13486         required to send files to the client.
13488 2005-11-05  James Livingston  <jrl@ids.org.au>
13490         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13491         work better on some systems. Closes 320622.
13493 2005-11-05  James Livingston  <jrl@ids.org.au>
13495         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13496         homepage, so that users can find out what AudioScrobbler is. Add
13497         access keys.
13499         * data/glade/daap-prefs.glade:
13500         * data/glade/general-prefs.glade:
13501         * data/glade/library-prefs.glade: make the indent be more consistent
13503         * data/glade/podcast-prefs.glade: 
13504         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13505         (impl_get_config_widget): move thing out of code into glade, where
13506         they belong
13508 2005-11-05  James Livingston  <jrl@ids.org.au>
13510         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13511         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13513 2005-11-04  James Livingston  <jrl@ids.org.au>
13515         * configure.ac: don't print DAAP configure info twice
13517 2005-11-04  James Livingston  <jrl@ids.org.au>
13519         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13520         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13521         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13522         #ifdefs, since we removed the symbol. Oops
13524 2005-11-04  James Livingston  <jrl@ids.org.au>
13526         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13527         after the connect line, not before. Oops.
13529 2005-11-04  James Livingston  <jrl@ids.org.au>
13531         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13532         fix some warnings
13534 2005-11-03  James Livingston  <jrl@ids.org.au>
13536         * NEWS: update the news file
13538         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13539         "duration" column.
13541         * data/ui/rhythmbox-ui.xml:
13542         * shell/rb-playlist-manager.c:
13543         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13544         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13545         and "delete" for feeds.
13547 2005-11-03  James Livingston  <jrl@ids.org.au>
13549         * sources/rb-podcast-source.c: (impl_delete),
13550         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13551         feed. Closes 319760.
13553 2005-11-03  James Livingston  <jrl@ids.org.au>
13555         Don't start playing from the remote site when a un-downloaded podcast
13556         is activated. Closes 319983.
13557         
13559         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13560         (write_job_data), (download_progress_cb): write the local location as
13561         soon as any data is recieved
13563         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13564         the mountpoint to NULL for podcast episodes that haven't yet been
13565         downloaded.
13566         
13567         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13568         start playing a podcast if it hasn't been downloaded.
13569         
13570         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13571         (rb_podcast_source_entry_activated_cb): begin downloading when the
13572         podcast is activated.
13574 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13576         * data/glade/general-prefs.glade:  Fix capitalization.
13577         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13578         * sources/rb-podcast-source.c:
13579         (rb_podcast_source_songs_show_popup_cb),
13580         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13582 2005-11-03  James Livingston  <jrl@ids.org.au>
13584         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13586         * shell/rb-removable-media-manager.c:
13587         (rb_removable_media_manager_mount_volume): don't check network or
13588         autofs mounts, as they're not going to be removable media. Stops
13589         sending lots of warnings to syslog. Closes 320571.
13591         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13592         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13593         320570.
13595 2005-11-03  James Livingston  <jrl@ids.org.au>
13597         Add support for playing audio CDs. Metadata lookup is done using
13598         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13599         the library when it gets broken out of S-J.
13600         
13601         Add a "rescan media" menu item, and commands for ejecting removable
13602         media.
13604         Move nautilus-cd-burner from optional to required depenency.
13606         * configure.ac:
13607         * data/ui/rhythmbox-ui.xml:
13608         * metadata/Makefile.am:
13609         + metadata/sj-error.c:
13610         + metadata/sj-error.h:
13611         + metadata/sj-metadata-marshal.list:
13612         + metadata/sj-metadata-musicbrainz.c:
13613         + metadata/sj-metadata-musicbrainz.h:
13614         + metadata/sj-metadata.c:
13615         + metadata/sj-metadata.h:
13616         + metadata/sj-structures.c:
13617         + metadata/sj-structures.h:
13618         * player/Makefile.am:
13619         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13620         * po/POTFILES.in:
13621         * shell/Makefile.am:
13622         * shell/rb-removable-media-manager.c:
13623         (rb_removable_media_manager_dispose), (poll_tray_opened),
13624         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13625         (rb_removable_media_manager_load_media),
13626         (rb_removable_media_manager_mount_volume),
13627         (rb_removable_media_manager_cmd_eject_medium),
13628         (rb_removable_media_manager_cmd_scan_media),
13629         (rb_removable_media_manager_check_volume),
13630         (rb_removable_media_manager_unmount_volume_swap),
13631         (rb_removable_media_manager_scan):
13632         * sources/Makefile.am:
13633         + sources/rb-audiocd-source.c:
13634         + sources/rb-audiocd-source.h:
13635         * tests/Makefile.am:
13637 2005-11-02  James Livingston  <jrl@ids.org.au>
13639         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13641         * sources/rb-iradio-source.c:
13642         (stations_view_drag_data_received_cb):
13643         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13644         don't crash when the second uri is missing frm the drop, which
13645         browsers sometimes do.
13647 2005-11-01  James Livingston  <jrl@ids.org.au>
13649         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13650         (rb_podcast_manager_insert_feed):
13651         * podcast/rb-podcast-manager.h:
13652         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13653         (rb_set_item_value), (rb_validate_item_propert),
13654         (rb_podcast_parse_date), (rb_podcast_parse_time):
13655         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13656         from the feed.
13658 2005-10-31  James Livingston  <jrl@ids.org.au>
13660         * ChangeLog:
13661         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13662         huge
13664 2005-10-31  James Livingston  <jrl@ids.org.au>
13666         * sources/rb-podcast-source.c:
13667         (rb_podcast_source_post_date_cell_data_func): generate the date string
13668         in a way that is correct in all locales.
13669         
13670         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13671         (rhythmdb_entry_sync_mirrored): make the last played/date added
13672         columns use the same format.
13674 2005-10-30  James Livingston  <jrl@ids.org.au>
13677         * podcast/rb-podcast-manager.c:
13678         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13679         
13680         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13681         iradio errors better.
13683 2005-10-30  James Livingston  <jrl@ids.org.au>
13685         patch by: Artem Baguinski <femistofel@gmail.com>
13687         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13689 2005-10-30  James Livingston  <jrl@ids.org.au>
13691         * podcast/rb-podcast-manager.c:
13692         (rb_podcast_manager_subscribe_feed),
13693         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13694         already been added, usually as a radio station. Closes 319434.
13696 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13698         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13699         mnemonics & resize issues)
13700         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13701         & mnemonics)
13702         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13703         widget for the "download location" label.
13705         Closes bug 320184.
13707 2005-10-29  James Livingston  <jrl@ids.org.au>
13709         Allow the search box to match words from multiple properties. Closes
13710         bug 139196. Thanks to the person from IRC who did a lot of the initial
13711         work.
13714         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13715         * lib/rb-util.h: Add functions to split a string into words, and one
13716         to perform "search folding" which is currently like casefolding but
13717         also strips punctuation
13718         
13719         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13720         (rhythmdb_query_preprocess):
13721         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13722         against title, artist, album and genre (for the search box)
13723         
13724         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13725         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13726         (save_entry), (search_match_properties),
13727         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13728         splitting into words and matching across multiple properties.
13729         
13730         * sources/rb-library-source.c: (construct_query_from_selection): use
13731         the new SEARCH_MATCH property for the search box
13732         
13733         * widgets/rb-entry-view.c: (type_ahead_search_func):
13735 2005-10-29  James Livingston  <jrl@ids.org.au>
13737         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13738         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13739         
13740         * shell/rb-playlist-manager.c:
13741         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13742         correctly.
13743         
13744         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13745         initial state of the shuffle/repeat menu items correctly. Patch from
13746         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13748 2005-10-29  James Livingston  <jrl@ids.org.au>
13750         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13751         double-free.
13752         
13753         * widgets/rb-cell-renderer-pixbuf.c:
13754         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13755         icon go black when row is not selected
13756         
13757         * doc/reference/tmpl/rb-daap-connection.sgml:
13758         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13760 2005-10-29  James Livingston  <jrl@ids.org.au>
13762         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13763         silly mistake, where it could think partial downloads has been
13764         completed.
13766 2005-10-29  James Livingston  <jrl@ids.org.au>
13768         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13770         * data/glade/song-info.glade:
13771         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13772         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13773         (rb_song_info_sync_entry_single): show the disc number in the song
13774         info window. From bug 311199.
13776 2005-10-29  James Livingston  <jrl@ids.org.au>
13778         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13779         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13780         regularly. Closes 155306.
13782 2005-10-29  James Livingston  <jrl@ids.org.au>
13784         * podcast/rb-podcast-manager.c:
13785         (rb_podcast_manager_download_entry),
13786         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13787         (rb_podcast_manager_insert_feed):
13788         * podcast/rb-podcast-manager.h:
13789         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13790         (rb_podcast_parser_start_element):
13791         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13792         don't download them again. However, it can't resume
13793         partially-downloaded ones.
13795 2005-10-28  James Livingston  <jrl@ids.org.au>
13797         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13798         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13799         work. Don't attempt to write duration as a tag.
13801         Thanks to Artem Baguinski <femistofel@gmail.com>
13803 2005-10-28  James Livingston  <jrl@ids.org.au>
13805         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13806         don't disable the status-bar menu item when the current source doesn't
13807         use the search box.
13809 2005-10-28  James Livingston  <jrl@ids.org.au>
13811         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13812         crash if the file has unknown length
13814 2005-10-27  James Livingston  <jrl@ids.org.au>
13816         * daapsharing/rb-daap-connection.c:
13817         (rb_daap_connection_state_done): don't assert when a daap server
13818         doesn't have any playlists
13820 2005-10-27  James Livingston  <jrl@ids.org.au>
13822         * sources/rb-sourcelist-model.c:
13823         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13824         source for the sourcelist. Closes bug 319817.
13826 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13828         Patch by: Renato Araujo <renatox@gmail.com>
13830         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13831           Fix for a crasher caused by previous patch.
13833 2005-10-26  James Livingston  <jrl@ids.org.au>
13835         * data/glade/podcast-prefs.glade:
13836         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13837         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13838         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13839         * podcast/rb-podcast-manager.c:
13840         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13841         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13842         * shell/rb-shell.c: Change some strings to make them more consistent.
13843         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13844         makes it clearer which is which. "Episode" may not be the best term,
13845         but it seems to be widely used.
13846         
13847         Also fix some strings that weren't marked as translatable.
13848         
13849         * podcast/rb-feed-podcast-properties-dialog.c:
13850         (rb_feed_podcast_properties_dialog_class_init),
13851         (rb_feed_podcast_properties_dialog_finalize):
13852         * podcast/rb-new-podcast-dialog.c:
13853         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13854         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13855         (rb_simple_view_finalize), (rb_simple_view_constructor):
13856         * podcast/rb-podcast-properties-dialog.c:
13857         (rb_podcast_properties_dialog_class_init),
13858         (rb_podcast_properties_dialog_finalize):
13859         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13860         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13861         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13862         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13863         use G_DEFINE_TYPE, instead of doing it manually.
13865 2005-10-26  James Livingston  <jrl@ids.org.au>
13867         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13868         <jrl@ids.org.au>
13870         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13871         (rb_metadata_init): Check that the necessary plugins are present to do
13872         id3 editing.
13873         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13874         corrupted before replacing the original.
13876 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13878         reviewed by: James Livingston <jrl@ids.org.au>
13880         Assign sequential IDs to playlists for DAAP rather than using the
13881         address of the playlist object.  Less flaky, and should work on 64bit
13882         platforms. Closes bug 319304.
13884         * daapsharing/rb-daap-share.c: 
13885         (rb_daap_share_set_property): watch for playlist creation
13886         (_find_by_id), (_find_by_source): playlist list search functions
13887         (rb_daap_share_playlist_created),
13888         (rb_daap_share_process_playlist),
13889         (rb_daap_share_playlist_destroyed):
13890          update playlist list as it changes, use weak refs on 
13891          playlists to get notified on destroy.
13892         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13893          destroy playlist list on shutdown
13894         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13895          DAAP response
13896         (databases_cb): search for playlist ID in list rather than just
13897          converting it to a pointer; return HTTP 404 if playlist not 
13898          found.
13899         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13900          is already used for the main library
13902 2005-10-26  James Livingston  <jrl@ids.org.au>
13904         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13906         * daapsharing/rb-daap-connection.c: (build_message),
13907         (http_response_handler), (http_get), (handle_server_info),
13908         (handle_login), (handle_update), (handle_database_info),
13909         (handle_song_listing), (handle_playlists),
13910         (handle_playlist_entries), (handle_logout),
13911         (rb_daap_connection_new), (rb_daap_connection_logout),
13912         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13913         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13914         * daapsharing/rb-daap-connection.h:
13915         * sources/rb-daap-source.c: (rb_daap_source_activate),
13916         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13917         (rb_daap_source_disconnect): Make connecting to DAAP sources
13918         asynchronous, so that non-responsive servers don't hang the UI. Closes
13919         316225.
13921 2005-10-26  James Livingston  <jrl@ids.org.au>
13923         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13925         * rhythmdb/rhythmdb-query-model.c:
13926         (rhythmdb_query_model_do_reorder): generate the row re-order map
13927         correctly.
13928         
13929         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13930         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13931         Update selection when rows get re-ordered. Closes 319718.
13933 2005-10-26  James Livingston  <jrl@ids.org.au>
13935         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13937         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13938         actually set the db pointer in play orders. Closes 319818.
13940 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13942         Patch by: Renato Araujo <renatox@gmail.com>
13944         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13945         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13946         (rb_podcast_manager_update_synctime),
13947         (rb_podcast_manager_config_changed),
13948         (rb_podcast_manager_insert_feed):
13949         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13950         (save_entry):
13951         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13952         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13953         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13955 2005-10-25  James Livingston  <jrl@ids.org.au>
13957         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13958         (db_entry_deleted_cb): don't share tracks that are hidden because the
13959         file is missing.
13961 2005-10-22  James Livingston  <jrl@ids.org.au>
13963         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13964         crash if an entry couldn't be playerd, without streamer setting an
13965         error.
13967         
13968         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13970         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13971         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13972         is pasted into the dialog.
13973         
13974         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13975         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13976         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13977         (rb_podcast_parse_channel_free):
13978         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13979         feeds
13981 2005-10-22  James Livingston  <jrl@ids.org.au>
13983         * sources/rb-iradio-source.c:
13984         (rb_iradio_source_first_time_changed): Make merging the default
13985         stations actually work.
13986         
13987         * sources/rb-podcast-source.c:
13988         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13989         people weren't seing the percentages in the stats column.
13991 2005-10-21  James Livingston  <jrl@ids.org.au>
13993         Patch from Caio Marcelo <cmarcelo@gmail.com>
13995         * shell/rb-shell.c: (rb_shell_window_state_cb),
13996         (rb_shell_get_visibility), (idle_hide_mainwindow),
13997         (rb_shell_set_visibility): Make the "show window" item in the tray
13998         icon menu show the toggle state correctly. Use a better policy on
13999         deciding whether the window is "visible" or not. Closes bug 308053.
14001 2005-10-21  James Livingston  <jrl@ids.org.au>
14003         * doc/reference/tmpl/rb-shell-preferences.sgml:
14004         * shell/Makefile.am: fix building with gtk-doc
14006         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14007         don't submit podcasts to audioscrobbler
14008         
14009         
14010         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14011         
14012         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14013         (rb_set_item_value): strip spaces surrounding podcast urls
14014         
14016         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14017         
14018         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14020 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14022         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14023          Audioscrobbler/Last.fm support
14025         * configure.ac:
14026         * data/glade/Makefile.am:
14027         * data/glade/audioscrobbler-prefs.glade:
14028         * data/rhythmbox.schemas:
14029         * lib/Makefile.am:
14030         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14031         * lib/md5.h:
14032         * lib/rb-preferences.h:
14033         * po/POTFILES.in:
14034         * shell/Makefile.am:
14035         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14036         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14037         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14038         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14039         (rb_audioscrobbler_timeout_cb), (mkmd5),
14040         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14041         (rb_audioscrobbler_do_handshake),
14042         (rb_audioscrobbler_do_handshake_cb),
14043         (rb_audioscrobbler_submit_queue),
14044         (rb_audioscrobbler_submit_queue_cb),
14045         (rb_audioscrobbler_import_settings),
14046         (rb_audioscrobbler_preferences_sync),
14047         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14048         (rb_audioscrobbler_gconf_changed_cb),
14049         (rb_audioscrobbler_song_changed_cb),
14050         (rb_audioscrobbler_username_entry_changed_cb),
14051         (rb_audioscrobbler_username_entry_activate_cb),
14052         (rb_audioscrobbler_password_entry_changed_cb),
14053         (rb_audioscrobbler_password_entry_activate_cb),
14054         (rb_audioscrobbler_enabled_check_changed_cb),
14055         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14056         (rb_audioscrobbler_load_entry_from_string),
14057         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14058         (rb_audioscrobbler_print_queue),
14059         (rb_audioscrobbler_free_queue_entries):
14060         * shell/rb-audioscrobbler.h:
14061         * shell/rb-shell-preferences.c:
14062         (rb_shell_preferences_append_audioscrobbler_config):
14063         * shell/rb-shell-preferences.h:
14064         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14065         (rb_shell_select_source), (rb_shell_cmd_preferences):
14066         * sources/Makefile.am:
14068 2005-10-21  James Livingston  <jrl@ids.org.au>
14070         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14072         * Makefile.am:
14073         * NEWS:
14074         * configure.ac:
14075         * data/art/Makefile.am:
14076         * data/glade/Makefile.am:
14077         * data/rhythmbox.schemas:
14078         * data/ui/rhythmbox-ui.xml:
14079         * doc/reference/Makefile.am:
14080         * doc/reference/tmpl/rhythmdb.sgml:
14081         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14082         * lib/rb-stock-icons.h:
14083         * po/POTFILES.in:
14084         * podcast/Makefile.am:
14085         + podcast/rb-feed-podcast-properties-dialog.c:
14086         + podcast/rb-feed-podcast-properties-dialog.h:
14087         + podcast/rb-new-podcast-dialog.c:
14088         + podcast/rb-new-podcast-dialog.h:
14089         + podcast/rb-podcast-manager.c:
14090         + podcast/rb-podcast-manager.h:
14091         + podcast/rb-podcast-marshal.list:
14092         + podcast/rb-podcast-parse.c:
14093         + podcast/rb-podcast-parse.h:
14094         + podcast/rb-podcast-properties-dialog.c:
14095         + podcast/rb-podcast-properties-dialog.h:
14096         * rhythmdb/rhythmdb-property-model.c:
14097         (rhythmdb_property_model_set_property),
14098         (rhythmdb_property_model_enable_drag):
14099         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14100         (rhythmdb_tree_parser_end_element), (save_entry),
14101         (rhythmdb_tree_save):
14102         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14103         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14104         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14105         (rhythmdb_entry_podcast_feed_get_type):
14106         * rhythmdb/rhythmdb.h:
14107         * shell/Makefile.am:
14108         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14109         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14110         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14111         (rb_shell_quit):
14112         * sources/Makefile.am:
14113         + sources/rb-podcast-source.c:
14114         + sources/rb-podcast-source.h:
14115         * widgets/Makefile.am:
14116         * widgets/rb-property-view.c: (rb_property_view_class_init),
14117         (rb_property_view_constructor),
14118         (rb_property_view_selection_changed_cb),
14119         (rb_property_view_get_treeview):
14120         * widgets/rb-property-view.h:
14121         + widgets/rb-simple-view.c:
14122         + widgets/rb-simple-view.h:
14124 2005-10-20  James Livingston  <jrl@ids.org.au>
14126         * NEWS: update with changes since 0.9.1
14128         * configure.ac: check whether collate_key_for_filename is available
14129         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14130         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14131         it if it isn't available in glib (i.e. building against 2.6)
14132         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14133         collation to get "natural sorting". Closes bug 158599.
14135 2005-10-20  James Livingston  <jrl@ids.org.au>
14137         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14139         * doc/reference/tmpl/rb-shell-player.sgml:
14140         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14141         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14142         (rb_shell_player_get_playing),
14143         (rb_shell_player_get_playing_time_string),
14144         (rb_shell_player_get_playing_time),
14145         (rb_shell_player_set_playing_time), (tick_cb),
14146         (rb_shell_player_get_playing_path), (filter_mmkeys):
14147         * shell/rb-shell-player.h:
14148         * shell/rb-shell-player.xml:
14149         * shell/rb-shell.c: (rb_shell_constructor),
14150         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14151         (rb_shell_set_window_title), (rb_shell_playing_impl),
14152         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14153         Merge the duration_changed and elapsed_changed DBUS signals into one
14154         elapsed_changed signal. Check that the output argument isn't NULL
14155         before trying to put things in it.
14157 2005-10-20  James Livingston  <jrl@ids.org.au>
14159         * rhythmdb/rhythmdb-query-model.c:
14160         (rhythmdb_query_model_entry_added_cb),
14161         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14162         problem where hidden entries could be shown in playlists.
14163         
14164         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14165         issues when switching in and out of small mode.
14167 2005-10-19  James Livingston  <jrl@ids.org.au>
14169         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14170         (rb_shell_constructor), (rb_shell_window_state_cb),
14171         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14172         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14173         (rb_shell_view_smalldisplay_changed_cb),
14174         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14175         (rb_shell_sync_paned): remove gconf window-state races, prevent
14176         changing small mode too often, fix window event races. Closes 122806.
14178         
14179         Patch from Caio Marcelo <cmarcelo@gmail.com>
14181         * data/rhythmbox.schemas:
14182         * shell/rb-shell.c: (rb_shell_window_state_cb),
14183         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14184         Remember the position of the window. Closes 315289.
14186 2005-10-19  James Livingston  <jrl@ids.org.au>
14188         Patch from Christophe Fergeau  <teuf@gnome.org>
14190         * configure.ac: determine whether libgpod is present when neither
14191         --with-ipod nor --without-ipod is passed
14193 2005-10-19  James Livingston  <jrl@ids.org.au>
14195         Patch from Caio Marcelo <cmarcelo@gmail.com>
14197         * shell/rb-shell-player.c: (do_next_idle),
14198         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14199         (rb_shell_player_do_previous_or_seek),
14200         (rb_shell_player_previous_button_cb),
14201         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14202         (rb_shell_player_cmd_next), (eos_cb):
14203         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14204         end of the playlist is reached.
14206 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14208         * lib/rb-thread.c: fix a few GSource leaks
14210 2005-10-19  James Livingston  <jrl@ids.org.au>
14212         * doc/reference/tmpl/bacon-volume.sgml:
14213         * doc/reference/tmpl/disclosure-widget.sgml:
14214         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14215         * doc/reference/tmpl/eggnotificationbubble.sgml:
14216         * doc/reference/tmpl/eggtrayicon.sgml:
14217         * doc/reference/tmpl/gsequence.sgml:
14218         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14219         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14220         * doc/reference/tmpl/rb-daap-connection.sgml:
14221         * doc/reference/tmpl/rb-daap-dialog.sgml:
14222         * doc/reference/tmpl/rb-daap-mdns.sgml:
14223         * doc/reference/tmpl/rb-daap-share.sgml:
14224         * doc/reference/tmpl/rb-daap-sharing.sgml:
14225         * doc/reference/tmpl/rb-daap-source.sgml:
14226         * doc/reference/tmpl/rb-daap-src.sgml:
14227         * doc/reference/tmpl/rb-daap-structure.sgml:
14228         * doc/reference/tmpl/rb-debug.sgml:
14229         * doc/reference/tmpl/rb-dialog.sgml:
14230         * doc/reference/tmpl/rb-druid.sgml:
14231         * doc/reference/tmpl/rb-entry-view.sgml:
14232         * doc/reference/tmpl/rb-enums.sgml:
14233         * doc/reference/tmpl/rb-file-helpers.sgml:
14234         * doc/reference/tmpl/rb-glade-helpers.sgml:
14235         * doc/reference/tmpl/rb-header.sgml:
14236         * doc/reference/tmpl/rb-history.sgml:
14237         * doc/reference/tmpl/rb-ipod-source.sgml:
14238         * doc/reference/tmpl/rb-iradio-source.sgml:
14239         * doc/reference/tmpl/rb-library-source.sgml:
14240         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14241         * doc/reference/tmpl/rb-metadata.sgml:
14242         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14243         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14244         * doc/reference/tmpl/rb-play-order-linear.sgml:
14245         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14246         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14247         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14248         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14249         * doc/reference/tmpl/rb-play-order-random.sgml:
14250         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14251         * doc/reference/tmpl/rb-play-order.sgml:
14252         * doc/reference/tmpl/rb-player.sgml:
14253         * doc/reference/tmpl/rb-playlist-manager.sgml:
14254         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14255         * doc/reference/tmpl/rb-playlist-source.sgml:
14256         * doc/reference/tmpl/rb-preferences.sgml:
14257         * doc/reference/tmpl/rb-property-view.sgml:
14258         * doc/reference/tmpl/rb-query-creator-private.sgml:
14259         * doc/reference/tmpl/rb-query-creator.sgml:
14260         * doc/reference/tmpl/rb-rating-helper.sgml:
14261         * doc/reference/tmpl/rb-rating.sgml:
14262         * doc/reference/tmpl/rb-recorder.sgml:
14263         * doc/reference/tmpl/rb-refstring.sgml:
14264         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14265         * doc/reference/tmpl/rb-removable-media-source.sgml:
14266         * doc/reference/tmpl/rb-search-entry.sgml:
14267         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14268         * doc/reference/tmpl/rb-shell-glue.sgml:
14269         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14270         * doc/reference/tmpl/rb-shell-player.sgml:
14271         * doc/reference/tmpl/rb-shell-preferences.sgml:
14272         * doc/reference/tmpl/rb-shell.sgml:
14273         * doc/reference/tmpl/rb-song-display-box.sgml:
14274         * doc/reference/tmpl/rb-song-info.sgml:
14275         * doc/reference/tmpl/rb-source-header.sgml:
14276         * doc/reference/tmpl/rb-source.sgml:
14277         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14278         * doc/reference/tmpl/rb-sourcelist.sgml:
14279         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14280         * doc/reference/tmpl/rb-statusbar.sgml:
14281         * doc/reference/tmpl/rb-stock-icons.sgml:
14282         * doc/reference/tmpl/rb-string-helpers.sgml:
14283         * doc/reference/tmpl/rb-thread.sgml:
14284         * doc/reference/tmpl/rb-tray-icon.sgml:
14285         * doc/reference/tmpl/rb-tree-dnd.sgml:
14286         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14287         * doc/reference/tmpl/rb-util.sgml:
14288         * doc/reference/tmpl/rhythmbox-unused.sgml:
14289         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14290         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14291         * doc/reference/tmpl/rhythmdb-tree.sgml:
14292         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14293         
14294         * doc/reference/Makefile.am: make docs build with changed ipod support
14295         
14296         * po/POTFILES.in: remove sources/itunesdb
14298 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14300         * sources/itunesdb.c:
14301         * sources/itunesdb.h: removed now useless files
14303 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14305         * configure.ac:
14306         * shell/Makefile.am:
14307         * sources/Makefile.am:
14308         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14309         code
14310         [1]: http://www.gtkpod.org/libgpod.html
14313 2005-10-18  James Livingston  <jrl@ids.org.au>
14315         patch from Funda Wang <fundawang@linux.net.cn>
14317         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14318         the notification bubble string translatable.
14320 ============ Version 0.9.1
14322 2005-10-16  James Livingston  <jrl@ids.org.au>
14324         * configure.ac: bump version to 0.9.1
14325         * NEWS: update translation credits
14327 2005-10-16  James Livingston  <jrl@ids.org.au>
14329         * rhythmdb/rhythmdb-query-model.c:
14330         (rhythmdb_query_model_class_init),
14331         (rhythmdb_query_model_drag_data_received): 
14332         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14333         notified when things are dropped into the entry view.
14334         
14335         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14336         (rb_playlist_source_add_location_swapped),
14337         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14338         (rb_playlist_source_non_entry_dropped),
14339         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14340         things onto a playlist's entry view work correctly, and doesn't cause
14341         crashes. Allow folders to be dropped as well. (Closes 318308)
14343 2005-10-16  James Livingston  <jrl@ids.org.au>
14345         * NEWS: Update some more
14347         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14348         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14349         with the paned size, so that it doesn't move when the window is
14350         maximised/restored. Closes bug 315852.
14352         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14353         display the playcount column, as it's useless (it never get changed).
14355 2005-10-14  James Livingston  <jrl@ids.org.au>
14357         * Makefile.am:
14358         * data/Makefile.am:
14359         * doc/reference/Makefile.am: get "make distcheck" to pass again
14361 2005-10-11  James Livingston  <jrl@ids.org.au>
14363         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14364         destroy the connection when retrieving the playlists fails, because
14365         tracks have already been added. Closes 318380.
14367 2005-10-11  James Livingston  <jrl@ids.org.au>
14369         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14370         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14371         (source_name_edited_cb): Ask for the columns to be resized when a
14372         source is added, deleted or changes name.
14374 2005-10-11  James Livingston  <jrl@ids.org.au>
14376         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14377         create a thread when processing a directory. This stops up created one
14378         thread for each file in a playlist we're trying to load. Closes
14379         317850.
14381         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14382         typo that made sort-by-artist not work correctly.
14384 2005-10-11  James Livingston  <jrl@ids.org.au>
14386         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14387         support is enabled
14389 2005-10-11  James Livingston  <jrl@ids.org.au>
14391         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14392         * lib/rb-file-helpers.h: add a function to turn uris into our
14393         canonical path-escaped form
14394         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14395         above function when import playlists. This will fix the problem of
14396         duplicate entries due to different representations of the uri (bug
14397         158211).
14399 2005-10-11  James Livingston  <jrl@ids.org.au>
14401         * shell/rb-shell.c: (rb_shell_get_visibility),
14402         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14403         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14404         window hiding so that Alt-F4 works again.
14406         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14407         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14408         (rb_entry_view_string_sort_func): Stop some crashes where a string
14409         property was set to NULL.
14411 2005-10-10  James Livingston  <jrl@ids.org.au>
14413         * doc/reference/rhythmbox.types: fix gtk-doc generation
14415 2005-10-09  James Livingston  <jrl@ids.org.au>
14417         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14418         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14419         accelerators, so that we don't have as many conflicting keys.
14421 2005-10-08  James Livingston  <jrl@ids.org.au>
14423         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14424         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14425         bug 129285.
14427 2005-10-07  James Livingston  <jrl@ids.org.au>
14429         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14430         local path names in the same way as every other URI. This should stop
14431         duplicates occurring due to different escapings. Closes bug 158211.
14433 2005-10-06  James Livingston  <jrl@ids.org.au>
14435         * NEWS: more updates
14436         
14437         patch from Jaap Haitsma <jaap@haitsma.org>:
14439         * configure.ac:
14440         * data/Makefile.am:
14441         * data/art/Makefile.am:
14442         - data/art/rhythmbox-paused.png:
14443         - data/art/rhythmbox-playback-error.png:
14444         - data/art/rhythmbox-playing.png:
14445         - data/art-clearlooks/:
14446         * lib/rb-file-helpers.c: (rb_file):
14447         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14448         * lib/rb-stock-icons.h:
14449         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14450         * widgets/rb-cell-renderer-pixbuf.c:
14451         (rb_cell_renderer_pixbuf_render):
14452         * widgets/rb-entry-view.c: (rb_entry_view_init),
14453         (rb_entry_view_set_playing):
14454         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14455         stock icons instead of custom art. Drop remanents of art-clearlooks.
14457 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14459         * configure.ac: Added ne in ALL_LINGUAS
14461 2005-10-02  James Livingston  <jrl@ids.org.au>
14463         * data/glade/Makefile.am: actually install the daap prefs glade file
14465 2005-09-30  James Livingston  <jrl@ids.org.au>
14467         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14468         translatable files, so that make check works and we don't annoy the
14469         translators.
14470         
14471         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14472         sanity checking, in case a db entry is missing some properties.
14474 2005-09-29  James Livingston  <jrl@ids.org.au>
14476         - lib/rb-string-helpers.c:
14477         - lib/rb-string-helpers.h:
14478         * lib/Makefile.am:
14479         * rhythmdb/rhythmdb-tree.c:
14480         * rhythmdb/rhythmdb.c:
14481         * shell/main.c: (main):
14482         * shell/rb-shell.c:
14483         * widgets/rb-entry-view.c:
14484         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14485         utility functions haven't been used in a while.
14487 2005-09-27  James Livingston  <jrl@ids.org.au>
14489         * data/art-clearlooks/Makefile.am:
14490         - data/art-clearlooks/rhythmbox-album.png:
14491         - data/art-clearlooks/rhythmbox-audiocd.png:
14492         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14493         - data/art-clearlooks/rhythmbox-dnd.png:
14494         - data/art-clearlooks/rhythmbox-ipod.png:
14495         - data/art-clearlooks/rhythmbox-iradio.png:
14496         - data/art-clearlooks/rhythmbox-library.png:
14497         - data/art-clearlooks/rhythmbox-next.png:
14498         - data/art-clearlooks/rhythmbox-pause.png:
14499         - data/art-clearlooks/rhythmbox-play.png:
14500         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14501         - data/art-clearlooks/rhythmbox-playlist.png:
14502         - data/art-clearlooks/rhythmbox-previous.png:
14503         - data/art-clearlooks/rhythmbox-repeat.png:
14504         - data/art-clearlooks/rhythmbox-rewind.png:
14505         - data/art-clearlooks/rhythmbox-shuffle.png:
14506         - data/art-clearlooks/rhythmbox-stop.png:
14507         - data/art-clearlooks/rhythmbox-visuals.png:
14508         - data/art-clearlooks/rhythmbox-volume-max.png:
14509         - data/art-clearlooks/rhythmbox-volume-medium.png:
14510         - data/art-clearlooks/rhythmbox-volume-min.png:
14511         - data/art-clearlooks/rhythmbox-volume-mute.png:
14512         - data/art-clearlooks/rhythmbox-volume-zero.png:
14513         * data/art/Makefile.am:
14514         - data/art/rhythmbox-album.png:
14515         - data/art/rhythmbox-audiocd.png:
14516         - data/art/rhythmbox-automatic-playlist.png:
14517         - data/art/rhythmbox-dnd.png:
14518         - data/art/rhythmbox-ipod.png:
14519         - data/art/rhythmbox-iradio.png:
14520         - data/art/rhythmbox-library.png:
14521         - data/art/rhythmbox-next.png:
14522         - data/art/rhythmbox-pause.png:
14523         - data/art/rhythmbox-play.png:
14524         - data/art/rhythmbox-playlist-menu.png:
14525         - data/art/rhythmbox-playlist.png:
14526         - data/art/rhythmbox-previous.png:
14527         - data/art/rhythmbox-repeat.png:
14528         - data/art/rhythmbox-rewind.png:
14529         - data/art/rhythmbox-shuffle.png:
14530         - data/art/rhythmbox-stop.png:
14531         - data/art/rhythmbox-visuals.png:
14532         - data/art/rhythmbox-volume-max.png:
14533         - data/art/rhythmbox-volume-medium.png:
14534         - data/art/rhythmbox-volume-min.png:
14535         - data/art/rhythmbox-volume-mute.png:
14536         - data/art/rhythmbox-volume-zero.png:
14537         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14538         * lib/rb-stock-icons.h:
14539         * shell/rb-playlist-manager.c:
14540         * shell/rb-shell-player.c:
14541         * sources/rb-daap-source.c: (rb_daap_get_icon):
14542         * sources/rb-ipod-source.c:
14543         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14544         * sources/rb-library-source.c: (rb_library_source_new):
14545         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14546         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14547         that hasn't been used in a LONG time, and also remove art that are
14548         now stock icons.
14550 2005-09-27  James Livingston  <jrl@ids.org.au>
14552         * README: point to the gnome.org web sites, and update the example
14553         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14554         
14555         * rhythmdb/rhythmdb-query-model.c:
14556         (rhythmdb_query_model_set_property),
14557         (rhythmdb_query_model_get_property),
14558         (rhythmdb_query_model_finalize):
14559         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14560         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14561         * rhythmdb/rhythmdb.h:
14562         * sources/rb-iradio-source.c: (impl_search):
14563         * sources/rb-library-source.c: (impl_search): Add query
14564         "preprocessing", which performs operations such as casefolding any
14565         strings that will be compared to any of the *_FOLDED properties.
14566         Closes bug 316039
14568 2005-09-27  James Livingston  <jrl@ids.org.au>
14570         * data/glade/daap-prefs.glade:
14571         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14572         file for the daap preferences pane
14573         
14574         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14575         (rb_sourcelist_append), (rb_sourcelist_remove),
14576         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14577         don't display the column for source expanders unless there is an
14578         expandable source.
14580 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14582         * .cvsignore:
14583         * Makefile.am:
14584         * configure.ac:
14585         * doc/.cvsignore:
14586         * doc/Makefile.am:
14587         * doc/reference/.cvsignore:
14588         * doc/reference/Makefile.am:
14589         * doc/reference/rhythmbox-docs.sgml:
14590         * doc/reference/rhythmbox-sections.txt:
14591         * doc/reference/rhythmbox.types:
14592         * doc/reference/tmpl/bacon-volume.sgml:
14593         * doc/reference/tmpl/disclosure-widget.sgml:
14594         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14595         * doc/reference/tmpl/eggnotificationbubble.sgml:
14596         * doc/reference/tmpl/eggtrayicon.sgml:
14597         * doc/reference/tmpl/gsequence.sgml:
14598         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14599         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14600         * doc/reference/tmpl/rb-daap-connection.sgml:
14601         * doc/reference/tmpl/rb-daap-dialog.sgml:
14602         * doc/reference/tmpl/rb-daap-mdns.sgml:
14603         * doc/reference/tmpl/rb-daap-share.sgml:
14604         * doc/reference/tmpl/rb-daap-sharing.sgml:
14605         * doc/reference/tmpl/rb-daap-source.sgml:
14606         * doc/reference/tmpl/rb-daap-src.sgml:
14607         * doc/reference/tmpl/rb-daap-structure.sgml:
14608         * doc/reference/tmpl/rb-debug.sgml:
14609         * doc/reference/tmpl/rb-dialog.sgml:
14610         * doc/reference/tmpl/rb-druid.sgml:
14611         * doc/reference/tmpl/rb-entry-view.sgml:
14612         * doc/reference/tmpl/rb-enums.sgml:
14613         * doc/reference/tmpl/rb-file-helpers.sgml:
14614         * doc/reference/tmpl/rb-glade-helpers.sgml:
14615         * doc/reference/tmpl/rb-header.sgml:
14616         * doc/reference/tmpl/rb-history.sgml:
14617         * doc/reference/tmpl/rb-ipod-source.sgml:
14618         * doc/reference/tmpl/rb-iradio-source.sgml:
14619         * doc/reference/tmpl/rb-library-source.sgml:
14620         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14621         * doc/reference/tmpl/rb-metadata.sgml:
14622         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14623         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14624         * doc/reference/tmpl/rb-play-order-linear.sgml:
14625         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14626         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14627         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14628         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14629         * doc/reference/tmpl/rb-play-order-random.sgml:
14630         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14631         * doc/reference/tmpl/rb-play-order.sgml:
14632         * doc/reference/tmpl/rb-player.sgml:
14633         * doc/reference/tmpl/rb-playlist-manager.sgml:
14634         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14635         * doc/reference/tmpl/rb-playlist-source.sgml:
14636         * doc/reference/tmpl/rb-preferences.sgml:
14637         * doc/reference/tmpl/rb-property-view.sgml:
14638         * doc/reference/tmpl/rb-query-creator-private.sgml:
14639         * doc/reference/tmpl/rb-query-creator.sgml:
14640         * doc/reference/tmpl/rb-rating-helper.sgml:
14641         * doc/reference/tmpl/rb-rating.sgml:
14642         * doc/reference/tmpl/rb-recorder.sgml:
14643         * doc/reference/tmpl/rb-refstring.sgml:
14644         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14645         * doc/reference/tmpl/rb-removable-media-source.sgml:
14646         * doc/reference/tmpl/rb-search-entry.sgml:
14647         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14648         * doc/reference/tmpl/rb-shell-glue.sgml:
14649         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14650         * doc/reference/tmpl/rb-shell-player.sgml:
14651         * doc/reference/tmpl/rb-shell-preferences.sgml:
14652         * doc/reference/tmpl/rb-shell.sgml:
14653         * doc/reference/tmpl/rb-song-display-box.sgml:
14654         * doc/reference/tmpl/rb-song-info.sgml:
14655         * doc/reference/tmpl/rb-source-header.sgml:
14656         * doc/reference/tmpl/rb-source.sgml:
14657         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14658         * doc/reference/tmpl/rb-sourcelist.sgml:
14659         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14660         * doc/reference/tmpl/rb-statusbar.sgml:
14661         * doc/reference/tmpl/rb-stock-icons.sgml:
14662         * doc/reference/tmpl/rb-string-helpers.sgml:
14663         * doc/reference/tmpl/rb-thread.sgml:
14664         * doc/reference/tmpl/rb-tray-icon.sgml:
14665         * doc/reference/tmpl/rb-tree-dnd.sgml:
14666         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14667         * doc/reference/tmpl/rb-util.sgml:
14668         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14669         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14670         * doc/reference/tmpl/rhythmdb-tree.sgml:
14671         * doc/reference/tmpl/rhythmdb.sgml:
14672         * macros/.cvsignore:
14673         * shell/Makefile.am:
14674         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14675         (rb_source_finalize), (rb_source_set_property),
14676         (rb_source_get_property), (default_get_pixbuf),
14677         (_rb_source_show_popup):
14678         * sources/rb-source.h:
14679         Add support for gtk-doc in rhythmbox.
14680         Convert RBSource to use newer glib functions, such as add_private.
14681         Gives RBSource a default get_pixbuf implementation.
14683 2005-09-25  James Livingston  <jrl@ids.org.au>
14685         * NEWS: Update with about a months worth of changes
14687         * data/glade/song-info-multiple.glade:
14688         * data/glade/song-info.glade:
14689         * data/rhythmbox.schemas:
14690         * lib/rb-preferences.h:
14691         * rhythmdb/rhythmdb.h:
14692         * shell/rb-shell-player.c:
14693         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14694         few remaining parts of autorating.
14696 2005-09-24  James Livingston  <jrl@ids.org.au>
14698         * shell/rb-shell.c: (rb_shell_constructor),
14699         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14700         (rb_shell_window_configure_cb): store window state in the gconf keys,
14701         so that it gets used. Closes bugs 313893 and 137068.
14703 2005-09-20  James Livingston  <jrl@ids.org.au>
14705         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14706         crash if the entry has a NULL string in a property
14707         
14708         * shell/rb-removable-media-manager.c:
14709         (rb_removable_media_manager_load_media): fix some memory leaks
14710         
14711         (rb_removable_media_manager_mount_volume),
14712         (rb_removable_media_manager_eject_medium_cb),
14713         (rb_removable_media_manager_cmd_eject_medium): use
14714         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14715         
14716         * sources/rb-removable-media-source.c:
14717         (rb_removable_media_source_set_property),
14718         (rb_removable_media_source_get_property): use
14719         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14721 2005-09-18  James Livingston  <jrl@ids.org.au>
14723         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14724         column
14726         * data/glade/general-prefs.glade:
14727         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14728         (rb_shell_preferences_column_check_changed_cb),
14729         (rb_shell_preferences_sync): add checkbox to control visibility
14730         of the column
14731         
14732         
14733         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14734         (save_entry):
14735         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14736         (rhythmdb_prop_get_type):
14737         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14738         was as "last played" is handled
14739         
14740         * sources/rb-library-source.c: (rb_library_source_constructor):
14741         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14742         Make the column show in the library and playlists
14743         
14744         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14745         * widgets/rb-entry-view.h: add the column
14746         
14747         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14748         be sorted by the column
14750 2005-09-16  James Livingston  <jrl@ids.org.au>
14752         * shell/rb-shell-player.c: (rb_shell_player_init),
14753         (rb_shell_player_do_previous_or_seek),
14754         (rb_shell_player_previous_button_cb),
14755         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14756         (rb_shell_player_playpause_button_cb): Make the previous button act
14757         the same as the menu item. Fix an inversion of the "previous track or
14758         seek" logic.
14759         
14760         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14761         
14762         (rb_shell_player_playpause): make --play-pause stop source that can't
14763         be paused
14765 2005-09-15  James Livingston  <jrl@ids.org.au>
14767         * configure.ac: increase totem-plparser requirements to 1.1.5
14769         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14770         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14771         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14772         use the newer playlist APIs to save the name of the playlist, and use
14773         the name of a loaded playlist.
14775         Closes bug 309817.
14777 2005-09-15  James Livingston  <jrl@ids.org.au>
14779         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14781         * shell/Makefile.am: stop some linker warnings
14783         * shell/main.c: (main): make --no-registration work with dbus
14785 2005-09-15  James Livingston  <jrl@ids.org.au>
14787         * daapsharing/rb-daap-sharing.c: (create_share):
14788         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14789         reference sinking and counting issues that I caused.
14791 2005-09-15  James Livingston  <jrl@ids.org.au>
14793         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14794         playing" icon in the "now playing" column header.
14796 2005-09-14  James Livingston  <jrl@ids.org.au>
14798         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14799         daap shares, when sharing is turned off.
14801 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14803         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14804         the GConf value's default, especially for badly installed schema
14805         files
14807 2005-09-12  James Livingston  <jrl@ids.org.au>
14809         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14811         Patch from Paolo Borelli <pborelli@katamail.com>
14813         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14814         grip when maximised. Closes bug 316055.
14816 2005-09-11  James Livingston  <jrl@ids.org.au>
14818         Patch from William Jon McCann <mccann@jhu.edu>
14820         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14821         subclass of GtkStatusbar instead of GtkHBox.
14822         (rb_statusbar_construct): Don't set border width.
14823         (rb_statusbar_init): Use resize grip.  Don't use
14824         markup.
14825         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14826         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14827         Connect tooltips for actions.
14828         (rb_statusbar_sync_status): Push new message to statusbar.
14829         (rb_statusbar_set_progress): Don't use markup.
14830         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14831         flag here since it prevents actually showing or hiding.
14832         (rb_statusbar_sync_with_source): Push new message to statusbar.
14834 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14836         * daapsharing/rb-daap-structure.c:
14837         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14838         around debugging definition.
14840 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14841         
14842         * daapsharing/rb-daap-structure.c:
14843         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14844         type = version.
14846         * daapsharing/rb-daap-mdns.c/h:
14847         (resolve_cb): Updated mDNS resolve callback to send service-name &
14848         name (read from Machine Name in the TXT data or equal to service-name
14849         if not in TXT).
14851         * daapsharing/rb-daap-source.c:
14852         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14853         (rb_daap_source_get_property), (rb_daap_source_new),
14854         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14855         (stop_resolver), (start_browsing), (stop_browsing), 
14856         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14857         and added 'host' and 'port' gobject properties.  Updated to use new
14858         mDNS resolve callback sending service-name & name arguments.
14860 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14862         * daapsharing/rb-daap-mdns.c:
14863         (howl_strerror): New function to report errors from Howl
14864         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14865         (get_sw_discovery), (get_avahi_client): Better error reporting from
14866         Howl & Avahi.
14868         * sources/rb-daap-source.:
14869         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14870         not get started or stopped in some situations.
14871         
14872 2005-09-12  James Livingston  <jrl@ids.org.au>
14874         * shell/rb-removable-media-manager.c: add a missing include, that
14875         would stop compilation if ipod support wasn't turned on
14877 2005-09-11  James Livingston  <jrl@ids.org.au>
14879         * daapsharing/rb-daap-dialog.c: (encode_base64),
14880         (rb_daap_password_dialog_new_run),
14881         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14882         it is no broken in to two pieces, and remove a use of a goto
14883         
14884         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14885         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14886         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14887         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14888         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14889         memory leaks, and some code style things.
14890         
14891         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14892         (rb_daap_share_init), (rb_daap_share_set_property),
14893         (rb_daap_share_dispose), (rb_daap_share_new),
14894         (rb_daap_share_get_property): make the DB and the playlist manager
14895         gobject properties.
14896         
14897         (message_add_standard_headers),
14898         (message_set_from_rb_daap_structure), (server_info_cb),
14899         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14900         (server_cb), (add_db_entry), (db_entry_added_cb),
14901         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14902         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14903         style and use CONF_PREFIX in the gconf keys
14904         
14905         * daapsharing/rb-daap-sharing.c: (create_share),
14906         (enable_sharing_changed_cb), (share_name_changed_cb),
14907         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14908         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14909         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14910         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14911         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14912         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14913         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14914         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14915         hasn't actually changed, fix some memory leaks, code style and release
14916         gconf notifications when the object is destroyed.
14917         
14918         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14919         (rb_daap_source_class_init), (rb_daap_source_init),
14920         (rb_daap_source_dispose), (rb_daap_source_set_property),
14921         (rb_daap_source_get_property), (rb_daap_source_new),
14922         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14923         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14924         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14925         (rb_daap_source_activate), (rb_daap_source_disconnect),
14926         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14927         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14928         release gconf notifications, handle gconf callbacks where the key
14929         hasn't changed, make "real name" and "password protected" gobject
14930         properties, fix some code style and fix a memory leak.
14932 2005-09-11  James Livingston  <jrl@ids.org.au>
14934         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14936         * shell/rb-playlist-manager.c:
14937         (rb_playlist_manager_save_playlists),
14938         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14939         when we aren't supposed to. (Closes bug 315886)
14941 2005-09-11  James Livingston  <jrl@ids.org.au>
14943         * shell/rb-removable-media-manager.c:
14944         (rb_removable_media_manager_class_init),
14945         (rb_removable_media_manager_init),
14946         (rb_removable_media_manager_dispose),
14947         (rb_removable_media_manager_set_property),
14948         (rb_removable_media_manager_get_property),
14949         (rb_removable_media_manager_new),
14950         (rb_removable_media_manager_load_media),
14951         (rb_removable_media_manager_volume_mounted_cb),
14952         (rb_removable_media_manager_volume_unmounted_cb),
14953         (rb_removable_media_manager_mount_volume),
14954         (rb_removable_media_manager_unmount_volume),
14955         (rb_removable_media_manager_source_deleted_cb),
14956         (rb_removable_media_manager_append_media_source),
14957         (rb_removable_media_manager_set_uimanager),
14958         (rb_removable_media_manager_eject_medium_cb),
14959         (rb_removable_media_manager_cmd_eject_medium):
14960         * shell/rb-removable-media-manager.h:
14961         * sources/rb-removable-media-source.c:
14962         (rb_removable_media_source_class_init),
14963         (rb_removable_media_source_init),
14964         (rb_removable_media_source_dispose),
14965         (rb_removable_media_source_set_property),
14966         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14967         (impl_delete_thyself):
14968         * sources/rb-removable-media-source.h: Add the four files that I
14969         somehow managed not to add to cvs in the last commit. Oops.
14971 2005-09-11  James Livingston  <jrl@ids.org.au>
14973         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14974         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14975         
14976         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14977         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14978         removable-media-manager on startup, and handle creation of sources.
14979         
14980         * sources/rb-ipod-source.h:
14981         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14982         (rb_ipod_source_init), (rb_ipod_source_constructor),
14983         (rb_ipod_source_dispose), (rb_ipod_source_new),
14984         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14985         the iPod source over to the removable media framework.
14986         
14987         * sources/rb-library-source.c: (paned_size_allocate_cb),
14988         (rb_library_source_get_paned_key): fix a potential bug is a
14989         library-derived source doesn't have a paned-key
14991 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14993         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14994         mp3 when we can't get the suffix of a file (Closes: #315941)
14996 2005-09-10  James Livingston  <jrl@ids.org.au>
14998         * configure.ac: fix the mdns tests, so that it doesn't complain about
14999         not finding one, if daap support isn't being compiled in
15001 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15003         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15005         * daapsharing/rb-daap-dialog.c:
15006         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15007         HIG compliancy & images.
15009         * daapsharing/rb-daap-mdns.c:
15010         (browse_cb), (resolve_cb): Better detection of local services.  
15011         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15012         Howl's limitations.  Fix the way collision handling is done under
15013         Avahi.
15015         * daapsharing/rb-daap-share.c:
15016         (publish_cb): Better name collision handling (at least for Avahi).
15018 2005-09-10  James Livingston  <jrl@ids.org.au>
15020         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15021         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15022         preferences more HIG compliant (Closes #315889)
15023         
15024         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15025         list of files to be translated
15027 2005-09-10  James Livingston  <jrl@ids.org.au>
15029         * configure.ac: fix it so that --enable-daap=no works
15030         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15031         uninstalled
15033 2005-09-10  James Livingston  <jrl@ids.org.au>
15035         Patch from Christophe Fergeau <teuf@gnome.org>
15037         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15038         the ipod code.
15040 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15041         * README.daap: Updating documentation
15043 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15044         * AUTHORS: Added myself.
15046         * daapsharing/rb-daap-connection.c:
15047         (connection_login), (rb_connection_new): Reorganized password
15048         handling.
15050         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15052         * shell/rb-shell.c:
15053         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15055         * sources/rb-daap-source.c:
15056         (rb_daap_source_activate): Better error handling when we are unable to
15057         connect.
15058         
15059 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15060         * README.daap: Fixed some terminology.
15062         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15063         New --with-mdns=auto|howl|avahi flag to specify.
15065         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15066         name collision dialogs.
15068         * daapsharing/rb-daap-connection.c:
15069         (connection_get_password), (build_message), (http_get)
15070         (connection_login): Ask for & use a password if the share demands it.
15072         * daapsharing/rb-daap-connection.h: Changed prototype of
15073         rb_daap_connection_new.
15074         
15075         * daapsharing/rb-daap-mdns.c: 
15076         (resolve_cb): Better detection of your own music share so it doesn't 
15077         appear in the sourcelist.
15079         * daapsharing/rb-daap-share.c:
15080         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15081         that start on any available port.
15083         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15085         * sources/rb-daap-source.c:
15086         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15087         (browse_cb): Handle passworded shares. Resolve the host immediately
15088         instead of when activated.
15089         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15090         (rb_daap_source_new): New GConf keys for UI state.
15091         (rb_daap_source_activate): Use RBPlaylistSource instead of
15092         RBDAAPPlaylistSource
15093         
15094         * sources/rb-daap-playlist-source.c/h: Removed
15096         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15097         if the playlist is local (i.e. not DAAP or iPod).
15098         
15099         * shell/rb-playlist-manager.c:
15100         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15101         wouldn't get saved if the last playlist hadn't changed.  Only save
15102         local playlists.
15103         
15104 2005-09-09  James Livingston  <jrl@ids.org.au>
15106         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15107         iPod preferences pane, as it already uses the browser views as the
15108         library.
15110 2005-09-09  James Livingston  <jrl@ids.org.au>
15112         * sources/rb-library-source.c: (rb_library_source_finalize),
15113         (rb_library_source_constructor): fix gconf monitoring of library
15114         preference keys.
15115         * sources/rb-library-source.h: remove declaration of function that
15116         does not exist
15118 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15120         * player/rb-player-gst.c:
15121         (rb_player_set_time): Fix seeking in daap streams.
15123 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15125         * data/rhythmbox.schemas: Turn music share browsing on by default.
15127 2005-09-07  James Livingston  <jrl@ids.org.au>
15129         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15131 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15132         * player/rb-player-gst.c: 
15133         (rb_player_get_time): Fix for extra << & == that accidentally made
15134         it in.
15136         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15137         
15138 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15139         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15140         it in last time.  Sorry.
15142 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15143         
15144         * player/rb-player-gst.c:
15145         (rb_player_get_time): Fix a small crash appearing when
15146         the uri isn't set in the player, but rb_player_get_time() is
15147         still called.
15149         * configure.ac: Also check for libsoup 2.4, which is what ships with
15150         Gnome 2.12.
15152         * po/POTFILES.in: Added music sharing files that have translatable 
15153         strings.
15155         * README.daap: New file explaining "How Music Sharing Works"  
15157 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15159         * daapsharing/.cvsignore: added
15161 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15163         * daapsharing/*: Music sharing library.
15164         
15165         * sources/rb-daap-source.c/h: Music share RBSource.
15166         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15168         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15169         libsoup and a mutlicast DNS implementation (howl or avahi).
15171         * data/rhythmbox.schemas: New GConf keys for music sharing.
15173         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15174         source right click menu.
15176         * player/rb-player-gst.c: Changes to properly play & seek in remote
15177         music share files.
15179         * shell/rb-playlist-manager.c/h:
15180         (rb_playlist_manager_get_playlists): New function to get a GList * of
15181         the playlists.
15182         (rb_playlist_manager_save_playlists): Don't save music share playlists
15183         and fixed a GObject reference leak.
15185         * shell/rb-shell.c/h:
15186         (rb_shell_append_source): No longer a local function.  Now takes a
15187         parent RBSource * argument, NULL to append a toplevel source.
15188         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15189         source (useful for disconnecting from remote music share,
15190         specifically).
15191         (rb_shell_quit): Stop music sharing/browsing.
15192         (rb_shell_playlist_added_cb): Work with tree source structure.
15193         (rb_shell_get_property): "playlist-manager" property accessor.
15194         (rb_shell_class_init): New "playlist-manager" property.
15195         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15196         daap sharing/browsing.
15197         (rb_shell_select_source): Notify source of activation/deactivation.
15199         * shell/rb-shell-prefernces.c: Music sharing preferences.
15201         * sources/rb-source.c/h: New activate, deactivate and disconnect
15202         class functions.  Activate & deactivate are notification style 
15203         functions that will tell a source when it is selected/unselected.
15204         Disconnect can be hooked up to a UI object to disconnect the source.
15206         * sources/rb-sourcelist-model.c:
15207         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15208         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15209         append a toplevel source.
15211 2005-09-05  James Livingston  <jrl@ids.org.au>
15213         * rhythmdb/rhythmdb-query-model.c:
15214         (rhythmdb_query_model_entry_changed_cb),
15215         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15216         the duration of filesize of an entry changes.  Emit the row-changed
15217         signals that I forgot to put back in, when I was doing query sorting.
15219         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15220         out "0 minutes" or "0 bytes".
15222 2005-09-04  James Livingston  <jrl@ids.org.au>
15224         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15225         remove a leftover bit of the "internal-name" property of sources.
15227 2005-09-03  James Livingston  <jrl@ids.org.au>
15229         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15230         extraneous debug message
15231         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15232         crasher would affect any library-derived sources (which was also a
15233         memory leak).
15235 2005-09-02  Colin Walters  <walters@verbum.org>
15237         * configure.ac: Fix sytnax error.
15239         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15240         code to disable minimization icons - need to figure out
15241         why it doesn't work...
15243 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15245         * data/glade/song-info-multiple.glade:
15246         * data/glade/song-info.glade:
15247         * widgets/rb-song-info.c: (rb_song_info_constructor):
15248         Add a mnemonic to the newly added "Automatically rate" label
15249         in the properties dialog and use a bold typeface like all the 
15250         other labels in the dialog. (Closes bug 315089)
15252 2005-09-03  James Livingston  <jrl@ids.org.au>
15254         * sources/rb-library-source.c: (rb_library_source_class_init),
15255         (rb_library_source_finalize), (rb_library_source_constructor),
15256         (rb_library_source_set_property), (rb_library_source_get_property),
15257         (impl_get_paned_key), (paned_size_allocate_cb),
15258         (rb_library_source_state_prefs_sync), (impl_show_popup),
15259         (rb_library_source_get_paned_key):
15260         * sources/rb-library-source.h: Allow sources derived from
15261         RBLibrarySource to use different gconf keys for sort order, browser
15262         visibility and browser pane position. Fix a crasher if a derived
15263         source overrides _get_pixbuf.
15265 2005-09-02  Colin Walters  <walters@verbum.org>
15267         * shell/rb-shell.c (rb_shell_set_visibility): Move
15268         hint setting which seems to avoid races more.
15269         
15270 2005-09-03  James Livingston  <jrl@ids.org.au>
15272         * shell/rb-shell.c: fix compilation with iPod support enabled
15273         
15274 2005-09-02  Colin Walters  <walters@verbum.org>
15276         * shell/rb-shell.c (struct RBShellPrivate): Add
15277         idle_hide_mainwindow_id.
15278         (rb_shell_constructor): Move taskbar skipping hint into
15279         rb_shell_set_visibility.
15280         (idle_hide_mainwindow): New function.
15281         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15282         racy hack to avoid rb appearing in taskbar when minimized.
15284 2005-09-01  Colin Walters  <walters@verbum.org>
15286         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15288         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15289         from gtkstatusicion.c.
15291         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15293         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15294         TrayShowWindow entry.
15295         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15296         (rb_tray_icon_constructor): Create action group here.
15297         (rb_tray_icon_finalize): Destroy action group.
15298         (rb_tray_icon_set_property): Don't take an action group.
15299         (rb_tray_icon_new): Ditto.
15300         (tray_popup_position_menu): Some mostly boilerplate code
15301         to position menu.
15302         (rb_tray_icon_button_press_event_cb): Position menu.
15303         (rb_tray_icon_get_geom): New function used for the shell
15304         to set minimization hints.
15306         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15308         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15309         (struct RBShellPrivate): Change visible to iconified.
15310         (set_icon_geometry): New function from Søren Sandmann to
15311         tell Metacity where to draw the minimization animiation.
15312         (rb_shell_window_state_cb): Update iconified.
15313         (rb_shell_get_visibility): New function to say whether
15314         or not we're currently visible.
15315         (rb_shell_set_visibility): Update to minimize to
15316         tray or present as appropriate.
15317         (rb_shell_window_delete_cb): On window close, just
15318         minimize to tray if we're deleted.
15319         (rb_shell_set_window_title): Kill old notification code.
15320         (rb_shell_toggle_visibility): Nwe function.
15321         (rb_shell_cmd_toggle_visibility): Call it.
15322         (rb_shell_constructor): Skip the taskbar.
15323         (tray_destroy_cb): Better debugging.
15324         
15325 2005-09-01  Colin Walters  <walters@verbum.org>
15327         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15329         * configure.ac: Enable bonobo by default.
15330         
15331 2005-09-01  Colin Walters  <walters@verbum.org>
15333         * configure.ac: Default to old art.  Add macros subdir.
15335         * Makefile.am (SUBDIRS): Add macros.
15337         * macros/Makefile.am: New.
15338         
15339 2005-09-01  Colin Walters  <walters@verbum.org>
15341         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15342         rb-shell-player.xml.
15344         * remote/dbus/rb-remote-dbus.h: Deleted.
15345         
15346         * remote/dbus/Makefile.am: Delete all the junk, just dist
15347         rb-print-playing.py and rb-set-rating.py.
15349         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15351         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15353 2005-09-02  James Livingston  <jrl@ids.org.au>
15355         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15356         file from cvs
15358         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15359         (rb_shell_constructor): Patches from Jonathan Matthew
15360         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15361         a crash when using "browse this artist".
15363 2005-08-31  Colin Walters  <walters@verbum.org>
15365         * configure.ac: Add --with-old-art configure switch.  Also
15366         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15367         but it doesn't work.
15369         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15370         Don't use eel_create_colorized_pixbuf for new art.
15371         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15373         * data/art-clearlooks: New artwork.
15374         
15375 2005-08-31  Colin Walters  <walters@verbum.org>
15377         * shell/main.c (main): Fix Bastien's commit to continue to focus
15378         the window with GTK+ 2.8 at least.
15379         
15380 2005-08-31  Colin Walters  <walters@verbum.org>
15382         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15383         is already loaded.
15385         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15387 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15389         * README: remove mentions of the xine-lib backend
15390         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15392 2005-08-30  Colin Walters  <walters@verbum.org>
15394         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15395         Make non-visible sources insensitive.
15396         
15397 2005-08-30  Colin Walters  <walters@verbum.org>
15399         * shell/rb-shell.c: Don't use GConf for selected source; it's
15400         confusing to have the selected source change after startup,
15401         and since we don't save other things it's not worth saving this.
15403         * sources/rb-playlist-source.c:
15404         * sources/rb-library-source.c:
15405         * sources/rb-iradio-source.c:
15406         * sources/rb-ipod-source.c: Delete internal-name property usage.
15407         * sources/rb-source.c: Delete internal-name property.
15409         * data/rhythmbox.schemas: Delete selected_source.
15410         
15411 2005-08-30  Colin Walters  <walters@verbum.org>
15413         * sources/rb-sourcelist.c: Make playing source bold instead of
15414         displaying a pixbuf; it's much less ugly.
15415         
15416 2005-08-30  Colin Walters  <walters@verbum.org>
15418         * sources/rb-source.c:
15419         * sources/rb-source.h: New virtual method try_playlist.
15421         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15422         impl_try_playlist.
15423         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15424         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15425         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15426         need to.
15427         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15428         in theory we should though...
15430         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15431         list in rb_shell_construct now.
15432         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15433         RBiPodSource.
15434         (rb_shell_constructor): Create library, iradio, ipod here.
15435         (rb_shell_source_deleted_cb): Use source directly instead of
15436         indirecting through type.
15437         (rb_shell_sync_selected_source): Ditto.
15438         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15439         from the type instead of special-casing.
15440         (rb_shell_guess_type_for_uri) 
15441         (rb_shell_add_uri)
15442         (handle_one_uri_with_possible_metadata): New functions.
15443         (rb_shell_load_uri): Refactor to allow loading playlists again,
15444         also use other URI infrastructure.
15446         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15447         (rb_shell_player_error): Always set entry error on error, instead
15448         of depending on EOF behavior.
15450         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15451         to just invoke rb_shell_add_uri.
15452         (rb_playlist_manager_parse_file): Return error instead of tossing
15453         up dialog box directly.
15454         (load_playlist_response_cb): Display error here.
15455         (add_uri_to_playlist): Delete.
15456         (handle_playlist_entry_into_playlist_cb): Renamed to
15457         handle_playlist_entry_cb.
15459         * shell/rb-playlist-manager.h: Add error, update prototype.
15461         * lib/rb-file-helpers.c:
15462         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15464 2005-08-29  Colin Walters  <walters@verbum.org>
15466         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15467         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15469         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15470         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15471         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15473         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15474         Prototype rb_shell_set_song_property.
15476         * shell/rb-shell.xml: Export setSongProperty.
15478         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15479         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15480         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15482         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15483         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15484         want to notify of the change.
15485         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15487         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15488         logic error; idle functions would be enqueued for each set.
15489         (rhythmdb_entry_set): Fix assertion logic error.
15491         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15492         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15493         Return if the entry already exists.
15494         
15495 2005-08-29  Colin Walters  <walters@verbum.org>
15497         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15498         "inserted" member which we use to keep track of
15499         whether or not an entry is in the DB.  Prototype
15500         rhythmdb_entry_set_uninserted.
15502         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15503         flag.
15504         (rhythmdb_entry_insert): Assert entry is not already inserted.
15505         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15506         just after creating entry.
15507         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15508         (rhythmdb_entry_set_nonotify): Ditto.
15509         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15510         entries.
15511         (rhythmdb_entry_set_internal): Change notify flag to
15512         notify_if_inserted.  Also move notification after assertions.
15514         Update all existing callers of rhythmdb_entry_set_internal
15515         to give TRUE for notify_if_inserted; this should be what
15516         we want but may be an efficiency hit.
15517         
15518 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15520         * shell/rb-shell-player.c: (rb_shell_player_init),
15521         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15522         (rb_shell_player_set_playing_source_internal),
15523         (rb_shell_player_sync_with_selected_source): Notify the player when an
15524         entry has updated the title, album or artist field, and resync the big
15525         display.
15526         
15527         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15528         * sources/rb-library-source.c: (rb_library_source_class_init),
15529         (impl_get_config_widget):
15530         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15531         * sources/rb-source.c:
15532         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15533         get_album functions in rb-source and adapted other sources accordingly.
15534         
15535 2005-08-29  Colin Walters  <walters@verbum.org>
15537         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15538         signal_change member.
15539         (threadsafe_entry_set): New function.
15540         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15541         (rhythmdb_entry_set_nonotify): New function; just call
15542         threadsafe_entry_set with FALSE.
15543         (rhythmdb_entry_set_internal): Take a notify flag; if true
15544         add the change to our pending set.
15546         Also update all internal callers of rhythmdb_entry_set_internal
15547         to pass FALSE.  Some of these may be bugs however and need to
15548         pass TRUE...
15550         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15551         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15552         rhythmdb_entry_set_nonotify.
15554         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15555         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15557         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15559         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15560         * sources/rb-source.c (rb_source_update_play_statistics): 
15561         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15562         * sources/rb-ipod-source.c (entry_set_string_prop) 
15563         (load_ipod_db_idle_cb): 
15564         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15565         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15566         (info_available_cb): 
15567         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15568         (rb_station_properties_dialog_sync_entries): 
15569         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15571         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15572         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15573         
15574 2005-08-29  Colin Walters  <walters@verbum.org>
15576         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15578         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15579         linking insanity.
15581         * widgets/rb-header.c (sanitize_string): New function, extracted
15582         from old info_url.  Be sure to always strip the string.
15583         (info_url): Rewrite to take artist/album, and generate a sane
15584         URL for them from last.fm, which is better than allmusic.com in
15585         that they support Rhythmbox, and have a *SANE* URL scheme.
15586         (artist_info_url, album_info_url): Delete.
15587         (rb_header_sync): Use info_url.
15589 2005-08-29  James Livingston  <jrl@ids.org.au>
15591         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15592         is implemented before calling it. Many sources don't implement the
15593         method.
15595 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15597         * data/glade/create-playlist.glade:  Cleanup the layout,
15598         and add a few more mnemonics.
15599         * shell/rb-playlist-manager.c:
15600         (rb_playlist_manager_cmd_load_playlist),
15601         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15602         capitalization for window titles.
15603         * widgets/rb-query-creator-properties.c: Add mnemonics
15604         to checkbutton labels.
15605         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15606         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15608 2005-08-28  Colin Walters  <walters@verbum.org>
15610         * data/rhythmbox.schemas: Delete search_text for library
15611         and iradio; this isn't a persistent value anymore.
15612         Closes #313757.
15613         
15614         * sources/rb-source.h:
15615         * sources/rb-source.c: Delete impl_can_search.
15617         * sources/rb-iradio-source.c: Delete search_text usage.
15618         * sources/rb-library-source.c: Ditto.
15620         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15621         search when source is set, and just do rb_source_search in
15622         rb_source_header_search_cb.
15624         * shell/rb-shell.c (rb_shell_append_source): Don't
15625         initiate search.
15627         * shell/Makefile.am: Don't dist dashboard.c.
15629 2005-08-28  Colin Walters  <walters@verbum.org>
15631         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15632         
15633 2005-08-28  Colin Walters  <walters@verbum.org>
15635         * data/org.gnome.Rhythmbox.service.in: New.
15637         * data/Makefile.am: Install service file.
15639         * configure.ac: Define DBUS_SERVICES_DIR.
15641         * autogen.sh: Set ACLOCAL_FLAGS.
15643         * macros/acinclude.m4: New.
15644         
15645 2005-08-28  Colin Walters  <walters@verbum.org>
15647         Initial patch from Jonathan Matthew; closes 313684.
15649         * rhythmdb/rhythmdb-tree.c:
15650         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15651         (save_entry): Return on error.
15652         (rhythmdb_tree_save): Handle error when saving the
15653         db; additionally, handle errors from fclose and unlink,
15654         and print error too.
15656 2005-08-28  Colin Walters  <walters@verbum.org>
15658         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15659         extra _.
15660         
15661 2005-08-28  Colin Walters  <walters@verbum.org>
15663         * configure.ac: Change iPod support to --with-ipod;
15664           automatically enable it if we have HAL.  Try to
15665           support both HAL 0.5 and HAL 0.2.  Break out
15666           totem-plparser into its own check so later we
15667           can do version tests there too.
15668           Kill dashboard support.
15669         
15670         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15671         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15672         Closes #310017.
15673         
15674         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15675         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15677         * sources/Makefile.am: Also handle
15678         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15680         * shell/dashboard.c: Delete; someone should just write a little
15681         python shim which lists on the D-BUS interface and writes the
15682         stuff to Dashboard.  Even better Dashboard should be ported
15683         to D-BUS and do the listening itself, perhaps on an abstract
15684         "org.gnome.MusicPlayer" interface or something.
15686         * shell/rb-shell.c: Kill dashboard support.
15688 2005-08-28  Colin Walters  <walters@verbum.org>
15690         * remote/dbus/rb-print-playing.py: New file.
15692 2005-08-28  Colin Walters  <walters@verbum.org>
15694         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15695         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15697         * shell/rb-shell-player.h:
15698         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15699         * shell/rb-shell-player.xml: Export it.
15701         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15702         (rb_shell_error_quark): New.
15704         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15705         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15706         
15707 2005-08-28  Colin Walters  <walters@verbum.org>
15709         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15710         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15711         bonobo_unlock.
15712         (rb_remote_bonobo_preinit): Lock setting moved here.
15713         (rb_remote_bonobo_init): From here.
15715         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15716         Also invoke handle_cmdline in the right place.
15717         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15718         GFunc.
15720 2005-08-28  James Livingston  <jrl@ids.org.au>
15722         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15723         when 0.9.1 comes around.
15725 2005-08-28  James Livingston  <jrl@ids.org.au>
15727         * iradio/rb-new-station-dialog.c:
15728         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15729         bug 314477.
15731 2005-08-28  James Livingston  <jrl@ids.org.au>
15733         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15735         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15736         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15737         is a song is longer than 60 minutes. Closes bug 313311.
15739 2005-08-27  James Livingston  <jrl@ids.org.au>
15741         * data/glade/create-playlist.glade:
15742         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15743         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15744         "minutes" as an option in the playlist limit menu.
15746         * rhythmdb/rhythmdb-query-model.c:
15747         (rhythmdb_query_model_class_init),
15748         (rhythmdb_query_model_set_property),
15749         (rhythmdb_query_model_get_property),
15750         (rhythmdb_query_model_update_limited_entries): Allow query models to
15751         have a time limit
15752         
15753         * shell/rb-playlist-manager.c:
15754         (rb_playlist_manager_set_automatic_playlist),
15755         (rb_playlist_manager_cmd_edit_automatic_playlist):
15756         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15757         (rb_playlist_source_get_query), (impl_receive_drag),
15758         (rb_playlist_source_new_from_xml),
15759         (rb_playlist_source_save_to_xml),
15760         (rb_playlist_source_songs_sort_order_changed_cb),
15761         (rb_playlist_source_do_query):
15762         * sources/rb-playlist-source.h:
15763         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15765 2005-08-27  James Livingston  <jrl@ids.org.au>
15767         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15769         * configure.ac:
15770         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15771         non-standard location. Closes bug 314640.
15773 2005-08-26  Colin Walters  <walters@verbum.org>
15774         
15775         Patch from Olivier Blin <oblin@mandriva.com>
15777         * widgets/eggnotificationbubble.c (draw_bubble): 
15778         Handle extreme-left case as well.
15779         
15780 2005-08-26  Colin Walters  <walters@verbum.org>
15782         * shell/rb-shell.c (idle_save_state): Don't do this.
15783         (rb_shell_construct): Remove idle calls to idle_save_state.
15784         We should save the playlists automatically when they're
15785         modified.
15786         (rb_shell_load_uri): Don't try to re-stat entry if it already
15787         exists.
15789         * shell/rb-shell-player.c: Keep track of entry we are attempting
15790         to play.
15791         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15792         Don't double-free error.
15793         (rb_shell_player_play_entry): Signal errors.
15794         (rb_shell_player_entry_activated_cb): Ditto.
15795         (rb_shell_player_property_row_activated_cb): Ditto.
15796         (rb_shell_player_set_playing_source_internal): Unset attempted
15797         playing entry.
15798         (rb_shell_player_error): Refactor to be usable both sync and
15799         async.  Handle case where displayed entry differs from entry.
15800         (error_cb): Move GDK locking here.
15802         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15803         people can just use dbus-send or python.  We only support focusing
15804         and loading files.
15805         (load_uri_args): New function, extracted from handle_cmdline.
15806         (dbus_load_uri, bonobo_load_uri): New functions.
15808         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15809         appropriate.
15811         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15812         * remote/dbus/rb-remote-dbus.c: Deleted.
15814         * player/rb-player-gst.c: Clear any pending idle handlers when we
15815         close the player.  Signal errors generated during open/play etc
15816         as synchronous errors.
15818         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15819         
15820 2005-08-26  Colin Walters  <walters@verbum.org>
15822         * shell/rb-shell.c (rb_shell_present): Try harder.
15824 2005-08-26  Colin Walters  <walters@verbum.org>
15826         * shell/rb-shell.c (rb_shell_present): Try to handle
15827         GTK_MINOR_VERSION < 8.
15829 2005-08-26  James Livingston  <jrl@ids.org.au>
15831         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15832         <pbrobinson@gmail.com>
15834 2005-08-26  Colin Walters  <walters@verbum.org>
15836         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15838 2005-08-25  Colin Walters  <walters@verbum.org>
15840         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15841         Delete.
15842         (rb_shell_player_do_next_with_rating): Move back into
15843         rb_shell_player_do_next.
15844         (rb_shell_player_entry_activated_cb): Remove call to
15845         rb_shell_player_auto_adjust_rating.
15846         (do_next_idle): Just call rb_shell_player_do_next.
15848         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15850 2005-08-25  Colin Walters  <walters@verbum.org>
15852         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15853         before gtk_window_present_with_time.
15854         
15855 2005-08-25  Colin Walters  <walters@verbum.org>
15857         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15858         default.
15860         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15861         rb_shell_construct.  This is so we only have to do g_object_new.
15862         (rb_shell_get_player): New function.
15863         (rb_shell_get_player_path): Ditto.
15864         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15865         
15866         * shell/rb-shell.h: Prototype them.
15868         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15869         export over D-BUS.
15870         (reemit_playing_signal): New function.
15871         (rb_shell_player_open_playlist_location): Use return values from
15872         rb_player_open, rb_player_close, etc. instead of checking "error".
15873         Return a gboolean on failure.
15874         (rb_shell_player_open_entry): Just open entry location, don't
15875         print to stderr.
15876         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15877         a gboolean.
15878         (do_next_idle): Move logic for handling of end of playlist here.
15879         (rb_shell_player_set_playing_entry): Take a GError, return a
15880         gboolean.  Update to use gboolean return values.
15881         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15882         logic.  Signal an error on end of playlist.  Also signal error if
15883         we're not playing.  Move heuristic for replaying the song into
15884         rb_shell_player_cmd_previous.
15885         (rb_shell_player_do_next_with_rating): Signal error on end of
15886         playlist.
15887         (rb_shell_player_do_next): Return errors.
15888         (rb_shell_player_cmd_previous): Heuristic for restarting song
15889         moved here; the idea is you generally only want that from the GUI.
15890         (rb_shell_player_cmd_play): Handle error.
15891         (rb_shell_player_playpause): Signal errors.
15892         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15893         rb_shell_player_cmd_next in favor of the internal _do functions.
15894         
15895         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15896         errors.  Update prototypes for above changes.
15898         * shell/main.c: More tightly integrate D-BUS; register various
15899         major singleton objects here.  Fix handle_cmdline so we only
15900         process extra arguments, not every argument.
15902         * shell/Makefile.am: Generate D-BUS glue headers.
15904         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15905         into shell/main.c.  Now this file just acts as a client library.
15906         Not heavily tested.
15908         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15909         Moved here.
15910         (rb_remote_bonobo_init): Move long CORBA rant here along with
15911         setting of lock functions.
15913         * player/rb-player-gst.c (rb_player_construct)
15914         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15915         on error.
15917         * player/rb-player.h: Update prototypes.
15919         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15920         rb-remote-bonobo.c.
15921         (rb_threads_init): Don't set gdk lock functions here.
15923 2005-08-25  James Livingston  <jrl@ids.org.au>
15925         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15927         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15928         * lib/rb-tree-dnd.h:
15929         * rhythmdb/rhythmdb-property-model.c:
15930         (rhythmdb_property_model_class_init),
15931         (rhythmdb_property_model_drag_source_init),
15932         (rhythmdb_property_model_iter_parent),
15933         (rhythmdb_property_model_row_draggable),
15934         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15935         (rhythmdb_property_model_drag_data_get),
15936         (rhythmdb_property_model_enable_drag):
15937         * rhythmdb/rhythmdb-property-model.h:
15938         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15939         (rb_playlist_manager_set_property), (append_new_playlist_source),
15940         (rb_playlist_manager_save_playlists):
15941         * shell/rb-shell.c: (rb_shell_construct),
15942         (sourcelist_drag_received_cb):
15943         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15944         * sources/rb-playlist-source.c: (impl_receive_drag):
15945         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15946         (rb_sourcelist_model_drag_dest_init),
15947         (rb_sourcelist_model_set_dnd_targets),
15948         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15949         (rb_sourcelist_model_row_drop_position),
15950         (rb_sourcelist_model_get_drag_target),
15951         (rb_sourcelist_model_drag_data_get):
15952         * sources/rb-sourcelist-model.h:
15953         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15954         (rb_sourcelist_init), (rb_sourcelist_get_property),
15955         (rb_sourcelist_selection_changed_cb):
15956         * sources/rb-sourcelist.h:
15957         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15958         improve drag-n-drop support. Allow dragging of item from property
15959         views to the source list, to create new automatic playlists. Allow
15960         playlist re-ordering. Fix dragging from Rhythmbox to other
15961         applications. (Closes bug 147337)
15963 2005-08-24  Colin Walters  <walters@verbum.org>
15965         Patch from Olivier Blin <oblin@mandriva.com>
15967         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15968         correctly in the case where the window is next to monitor edge.
15970 2005-08-24  James Livingston  <jrl@ids.org.au>
15972         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15973         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15974         a gobject property to get the query model that backs the playlist.
15976 2005-08-24  James Livingston  <jrl@ids.org.au>
15978         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15979         (handle_playlist_entry_into_playlist_cb),
15980         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15981         audio cd" menu item when a non-playlist source is selected, or the
15982         playlist is empty. (Closes Bug 313253)
15984 2005-08-24  James Livingston  <jrl@ids.org.au>
15986         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15987         Fix the playlist length checkso it doesn't report 0 for automatic
15988         playlists. This was stopping automati playlists being burnt to cd.
15990 2005-08-24  James Livingston  <jrl@ids.org.au>
15992         * configure.ac:
15993         * sources/rb-playlist-source-recorder.c: (burn_cd):
15994         * sources/rb-playlist-source.c:
15995         (rb_playlist_source_songs_sort_order_changed_cb):
15996         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15997         more warnings that occur when compiling RPMs on Fedora.
15999 2005-08-24  James Livingston  <jrl@ids.org.au>
16001         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16002         was stopping some distros gcc version compiling.
16004 2005-08-24  James Livingston  <jrl@ids.org.au>
16006         * NEWS:
16007         * data/glade/create-playlist.glade:
16008         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16009         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16010         (rhythmdb_query_free), (rhythmdb_query_serialize),
16011         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16012         * rhythmdb/rhythmdb.h:
16013         * shell/rb-playlist-manager.c:
16014         (rb_playlist_manager_set_automatic_playlist),
16015         (rb_playlist_manager_cmd_edit_automatic_playlist):
16016         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16017         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16018         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16019         (rb_playlist_source_save_to_xml),
16020         (rb_playlist_source_songs_sort_order_changed_cb),
16021         (rb_playlist_source_do_query):
16022         * sources/rb-playlist-source.h:
16023         * widgets/Makefile.am:
16024         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16025         (rb_entry_view_set_sorting_order):
16026         * widgets/rb-query-creator-private.h:
16027         * widgets/rb-query-creator-properties.c:
16028         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16029         (stringCriteriaGetWidgetData),
16030         (escapedStringCriteriaSetWidgetData),
16031         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16032         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16033         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16034         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16035         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16036         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16037         (relativeTimeCriteriaCreateWidget),
16038         (relativeTimeCriteriaSetWidgetData),
16039         (relativeTimeCriteriaGetWidgetData):
16040         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16041         (rb_query_creator_class_init), (rb_query_creator_constructor),
16042         (rb_query_creator_dispose), (rb_query_creator_set_property),
16043         (rb_query_creator_get_property), (rb_query_creator_load_query),
16044         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16045         (get_entry_for_property), (rb_query_creator_get_query),
16046         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16047         (limit_toggled_cb), (lookup_row_by_widget),
16048         (remove_button_click_cb), (append_row),
16049         (get_property_index_from_proptype), (select_criteria_from_value),
16050         (property_option_menu_changed), (create_property_option_menu),
16051         (create_criteria_option_menu), (sort_option_menu_changed),
16052         (setup_sort_option_menu):
16053         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16054         playlists. The two most notable improvements are 1) adding more
16055         properties to the query creator, making it much easier to add more in
16056         the future, and 2) allow playlists to be sorted, from the query editor
16057         if they gave limits, and by clicking on column headers if they don't.
16059         Files added: widgets/rb-query-creator-private.h,
16060         sources/rb-query-creator-properties.c
16062 2005-08-21  James Livingston  <jrl@ids.org.au>
16064         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16065         error=NULL. This stops some crashes.
16067 2005-08-19  Colin Walters  <walters@verbum.org>
16069         Patch from Olivier Blin <oblin@mandriva.com>
16071         * widgets/eggnotificationbubble.c (force_window): Support top
16072         orientation.
16073         * widgets/eggnotificationbubble.h: Remove
16074         egg_notification_bubble_force_window from header.
16075         
16076 2005-08-18  James Livingston  <jrl@ids.org.au>
16078         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16079         with the changes since then.
16081 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16083         * shell/rb-shell-player.c: (rb_shell_player_init),
16084         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16085         (rb_shell_player_volume_widget_changed_cb):
16086         * sources/rb-iradio-source.c:
16087         * sources/rb-library-source.c:
16088         * sources/rb-playlist-source.c:
16089         * widgets/Makefile.am:
16090         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16091         (bacon_volume_button_class_init), (bacon_volume_button_init),
16092         (bacon_volume_button_dispose), (bacon_volume_button_new),
16093         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16094         (bacon_volume_button_scroll), (bacon_volume_button_press),
16095         (cb_button_timeout), (cb_button_press), (cb_button_release),
16096         (bacon_volume_release_grab), (cb_dock_press),
16097         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16098         (bacon_volume_scale_new), (bacon_volume_scale_press),
16099         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16100         * widgets/bacon-volume.h:
16101         * widgets/rb-volume.c:
16102         * widgets/rb-volume.h:
16103           Use BaconVolumeButton (#300867).
16105 2005-08-17  James Livingston  <jrl@ids.org.au>
16107         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16108         (rhythmdb_process_metadata_load): don't reset the First Seen time
16109         whenever we recheck the metadata.
16111 2005-08-17  James Livingston  <jrl@ids.org.au>
16113         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16114         temporary workaround to stop crashes when trying to burn an empty
16115         playlist. Doesn't disable the menu item which is the better solution
16116         (Bug 313253).
16118 2005-08-15  James Livingston  <jrl@ids.org.au>
16120         * shell/rb-source-header.c: (rb_source_header_init),
16121         (rb_source_header_sync_control_state),
16122         (rb_source_header_search_activate_cb):
16123         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16124         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16125         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16126         (rb_search_entry_init), (rb_search_entry_searching),
16127         (rb_search_entry_activate_cb):
16128         * widgets/rb-search-entry.h: Move focus to the entry view when user
16129         presses enter in the search box. Patch from Paolo Borelli
16130         <pborelli@katamail.com> (Closes bug 128110)
16132 2005-08-15  James Livingston  <jrl@ids.org.au>
16134         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16135         (rb_playlist_manager_new_playlist):
16136         * shell/rb-playlist-manager.h:
16137         * shell/rb-shell.c: (rb_shell_construct),
16138         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16139         the source list to be shown when a new playlist is created. (Closes
16140         bug 161935)
16142 2005-08-15  James Livingston  <jrl@ids.org.au>
16144         * widgets/rb-header.c: (rb_header_init),
16145         (rb_header_set_show_timeline): disable the seek slider, rather than
16146         hiding it, which more closely follows the HIG. (Closes bug 139102)
16148 2005-08-13  Colin Walters  <walters@verbum.org>
16150         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16151         rb_shell_hidden_notify.
16152         (rb_shell_hidden_notify): Notify if the shell is hidden.
16153         (rb_shell_set_visibility_impl): Debug goo.
16155         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16157         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16158         when the user clicks on notification.
16160         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16161         CD burn is complete.
16162         (rb_playlist_source_recorder_finalize): Unref shell.
16163         (rb_playlist_source_recorder_new): Take shell.
16165         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16166         Pass shell to RBPlaylistSourceRecorder.
16167         
16168 2005-08-13  Colin Walters  <walters@verbum.org>
16170         * lib/rb-thread.c:
16171         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16172           time to convert.
16174 2005-08-13  Colin Walters  <walters@verbum.org>
16176         * widgets/eggnotificationbubble.h:
16177         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16178         * widgets/eggtrayicon.c:
16179         * widgets/eggtrayicon.h: Add notification API.
16180         * shell/rb-tray-icon.c:
16181         * shell/rb-tray-icon.h: Add notification API.
16182         * shell/rb-shell.c: Notify on song change.
16184 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16186         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16187         Correct an inversion of two lines causing NULL to be unreffed
16189 ============ Version 0.9.0
16191 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16193         * configure.ac: 0.9.0, whee!
16194         * NEWS: badly updated
16195         * remote/bonobo/Makefile.am:
16196         * remote/bonobo/rb-remote-bonobo.h:
16197         * shell/Makefile.am:
16198         * shell/main.c: make distcheck fixes